Как написать функцию ... которая по входному параметру Контрагент определяет в какой папке он находится и возвращает соответствующего менеджера. Это необходимо потому что в документк РеализацияТоваровУслуг нет реквизита Менеджер.
Конфигурация какая? Если УТ 10.3, то там в документе "РеализацияТоваровУслуг" есть реквизит "Ответственный" (ссылка на справочник "Пользователи").
Да,конфа 10.3 ! Но зачем мне справочник пользователи,если менеждер находится в справочнике Физические лица! А через контрагента я хочу получить потому,что в справочнике Контрагентов есть папки с именем Менеджера например Иванова и в ней элементы - контрагенты,если узнать в какой папке контрагент,то по наименованию папки можно узнать менеджера!!!
Как то так в общем НовыйМенеджер = Менеджер; ФИО = Справочники.ФизическиеЛица.НайтиПоКоду("10563"); ФИО = Справочники.ФизическиеЛица.НайтиПоКоду("11502"); Если ... Тогда НовыйМенеджер = Поздеева; КонецЕсли; Если ... Тогда НовыйМенеджер = Коняева ; КонецЕсли; Возврат НовыйМенеджер;
Теперь понятно :unsure: Код: Функция ПолучитьНаименованиеРодителяКонтрагента(КонтрагентСсылка) Если КонтрагентСсылка.Родитель <> Справочники.Контрагенты.ПустаяСсылка() Тогда Возврат КонтрагентСсылка.Родитель.Наименование; Иначе Возврат Неопределено; КонецЕсли; КонецФункции В качестве параметра функции необходимо передать ссылку на запись справочника "Контрагенты". Если контрагент находится в какой-либо папке, то функция возвращает наименование папки данного контрагента. В противном случае функция возвращает "Неопределено". Вызов данной функции выглядит примерно так: Код: Процедура Кнопка1Нажатие(Элемент) МенеджерКонтрагента = ПолучитьНаименованиеРодителяКонтрагента(Контрагент); Если МенеджерКонтрагента <> Неопределено Тогда Сообщить(МенеджерКонтрагента); Иначе Сообщить("У контрагента '" + Контрагент.Наименование + "' нет родителя."); КонецЕсли; КонецПроцедуры Вместо операторов "Сообщить" прикрутить Ваши действия.
Хм..давай по подробней,ругается что-то! На примере давай разберём... Вот есть два менеджера Иванов,Петров из справочника ФизическиеЛица В Справочнике Контрагенты две папки родитель с Наименование Иванов123 и Петров123 в этих папках хранятся контрагенты соответсвующих менеджеров... Дак как же зная контрагента отсортировать список так чтобы в списке остались только контрагенты которые находятся именно в этих папках...
Сформулируйте задачу конкретнее. Опишите подробно, что должно происходить. Вы просили функцию, возвращающую имя папки заданного контрагента. Но, видимо, задачая немного другая. Правильная постановка задачи - залог успеха. И не забудьте пояснить, куда и каким способом Вы хотите вставить функцию. Иногда нюансы многое меняют.
Вот полностью идентичный пример моей проблемы: В Справочнике Контрагенты две папки родитель с Наименование Иванов123 и Петров123 в этих папках хранятся контрагенты соответсвующих менеджеров... Код: Область.Параметры.СуммаНакладной = Док.СуммаДокумента; Область.Параметры.Контрагент = Док.Контрагент; Область.Параметры.НомерНедели = (НеделяГода(НачДата)); Область.Параметры.Менеждер = ??? (вот сюда надо получить менеджера) Заране получил контрагента Док.Контрагент ,зная это поле по нему мы находим его родителя и по наименованию папки определяем и выводим менеджера!
Попробуйте так: Код: Область.Параметры.СуммаНакладной = Док.СуммаДокумента; Область.Параметры.Контрагент = Док.Контрагент; Область.Параметры.НомерНедели = (НеделяГода(НачДата)); МенеджерКонтрагента = ПолучитьНаименованиеРодителяКонтрагента(Док.Контрагент); Если МенеджерКонтрагента <> Неопределено Тогда Область.Параметры.Менеждер = МенеджерКонтрагента; КонецЕсли; Функция "ПолучитьНаименованиеРодителяКонтрагента" та же. Располагаться она должна обязательно в том же модуле, в котором расположена процедура вывода в табличный документ. У меня работает. Убедитесь, что в области есть ячейка, для которой свойство "Заполнение" установлено в значение "Параметр", а в свойство "Параметр" внесено слово "Менеждер".