8.х Функция!

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Romik, 25 ноя 2008.

  1. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Как написать функцию ... которая по входному параметру Контрагент определяет в какой папке он находится и возвращает соответствующего менеджера.

    Это необходимо потому что в документк РеализацияТоваровУслуг нет реквизита Менеджер.
  2. Sdyav
    Offline

    Sdyav

    Регистрация:
    14 ноя 2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Конфигурация какая? Если УТ 10.3, то там в документе "РеализацияТоваровУслуг" есть реквизит "Ответственный" (ссылка на справочник "Пользователи").
  3. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Да,конфа 10.3 ! Но зачем мне справочник пользователи,если менеждер находится в справочнике Физические лица!
    А через контрагента я хочу получить потому,что в справочнике Контрагентов есть папки с именем Менеджера например Иванова и в ней элементы - контрагенты,если узнать в какой папке контрагент,то по наименованию папки можно узнать менеджера!!!
  4. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Как то так в общем:)

    НовыйМенеджер = Менеджер;
    ФИО = Справочники.ФизическиеЛица.НайтиПоКоду("10563");
    ФИО = Справочники.ФизическиеЛица.НайтиПоКоду("11502");

    Если ... Тогда
    НовыйМенеджер = Поздеева;
    КонецЕсли;

    Если ... Тогда
    НовыйМенеджер = Коняева ;
    КонецЕсли;

    Возврат НовыйМенеджер;
  5. Sdyav
    Offline

    Sdyav

    Регистрация:
    14 ноя 2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Теперь понятно :unsure:

    Код:
    Функция ПолучитьНаименованиеРодителяКонтрагента(КонтрагентСсылка)
    Если КонтрагентСсылка.Родитель <> Справочники.Контрагенты.ПустаяСсылка() Тогда
    Возврат КонтрагентСсылка.Родитель.Наименование;
    Иначе
    Возврат Неопределено;
    КонецЕсли;
    КонецФункции
    
    
    В качестве параметра функции необходимо передать ссылку на запись справочника "Контрагенты".
    Если контрагент находится в какой-либо папке, то функция возвращает наименование папки данного контрагента. В противном случае функция возвращает "Неопределено".
    Вызов данной функции выглядит примерно так:
    Код:
    Процедура Кнопка1Нажатие(Элемент)
    МенеджерКонтрагента = ПолучитьНаименованиеРодителяКонтрагента(Контрагент);
    Если МенеджерКонтрагента <> Неопределено Тогда
    Сообщить(МенеджерКонтрагента);
    Иначе
    Сообщить("У контрагента '" + Контрагент.Наименование + "' нет родителя.");
    КонецЕсли;
    КонецПроцедуры
    
    
    Вместо операторов "Сообщить" прикрутить Ваши действия.
  6. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Хм..давай по подробней,ругается что-то!

    На примере давай разберём...
    Вот есть два менеджера Иванов,Петров из справочника ФизическиеЛица
    В Справочнике Контрагенты две папки родитель с Наименование Иванов123 и Петров123
    в этих папках хранятся контрагенты соответсвующих менеджеров...
    Дак как же зная контрагента отсортировать список так чтобы в списке остались только контрагенты которые находятся именно в этих папках...
  7. Sdyav
    Offline

    Sdyav

    Регистрация:
    14 ноя 2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Сформулируйте задачу конкретнее. Опишите подробно, что должно происходить. Вы просили функцию, возвращающую имя папки заданного контрагента. Но, видимо, задачая немного другая. Правильная постановка задачи - залог успеха. И не забудьте пояснить, куда и каким способом Вы хотите вставить функцию. Иногда нюансы многое меняют.
  8. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Вот полностью идентичный пример моей проблемы:
    В Справочнике Контрагенты две папки родитель с Наименование Иванов123 и Петров123
    в этих папках хранятся контрагенты соответсвующих менеджеров...


    Код:
           Область.Параметры.СуммаНакладной     = Док.СуммаДокумента;
    Область.Параметры.Контрагент         = Док.Контрагент;
    Область.Параметры.НомерНедели        = (НеделяГода(НачДата));
    Область.Параметры.Менеждер         = ??? (вот сюда надо получить менеджера)
    
    
    Заране получил контрагента Док.Контрагент ,зная это поле по нему мы находим его родителя и по наименованию папки определяем и выводим менеджера!
  9. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    аууу
  10. Sdyav
    Offline

    Sdyav

    Регистрация:
    14 ноя 2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Попробуйте так:
    Код:
      
    Область.Параметры.СуммаНакладной = Док.СуммаДокумента;
    Область.Параметры.Контрагент = Док.Контрагент;
    Область.Параметры.НомерНедели = (НеделяГода(НачДата));
    МенеджерКонтрагента = ПолучитьНаименованиеРодителяКонтрагента(Док.Контрагент);
    Если МенеджерКонтрагента <> Неопределено Тогда
    Область.Параметры.Менеждер = МенеджерКонтрагента;
    КонецЕсли;
    
    
    Функция "ПолучитьНаименованиеРодителяКонтрагента" та же. Располагаться она должна обязательно в том же модуле, в котором расположена процедура вывода в табличный документ.
    У меня работает. Убедитесь, что в области есть ячейка, для которой свойство "Заполнение" установлено в значение "Параметр", а в свойство "Параметр" внесено слово "Менеждер".
  11. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Тема закрыта:)
  12. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26

    А не пробовали к пользователю привязать ФизЛицо? или это не устраивает?

Поделиться этой страницей