База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как составить код отчёта в УТ 11.5 для списка клиентов по менеджерам и их статус › Ответ в теме: Как составить код отчёта в УТ 11.5 для списка клиентов по менеджерам и их статус
Вот пример кода отчёта для 1С:Управление торговлей 11.5, который выводит список клиентов (контрагентов) с основным менеджером и отметкой, подключён ли клиент к ЭДО.
Отчёт построен на запросе к справочнику Контрагенты и регистру сведений, где хранится информация об ЭДО (в типовых конфигурациях 1С:УТ 11 ЭДО обычно хранится в регистре сведений «ОбменЭДО» или в реквизите карточки контрагента, но для универсальности возьмём регистр сведений).
—
### Код отчёта (модуль объекта):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Процедура СформироватьОтчет(Отчет) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка КАК Контрагент, | Контрагенты.Наименование КАК Наименование, | Контрагенты.ИНН КАК ИНН, | Контрагенты.ОсновнойМенеджер КАК Менеджер, | ВЫБОР | КОГДА ЭДО.Ссылка ЕСТЬ NULL ТОГДА ЛОЖЬ | ИНАЧЕ ИСТИНА | КОНЕЦ КАК ПодключенКЭДО |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОбменЭДО КАК ЭДО | ПО ЭДО.Ссылка = Контрагенты.Ссылка |ГДЕ | Контрагенты.ОсновнойМенеджер <> NULL |УПОРЯДОЧИТЬ ПО | Контрагенты.ОсновнойМенеджер, | Контрагенты.Наименование"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); ТаблицаРезультата = Новый ТаблицаЗначений; ТаблицаРезультата.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты")); ТаблицаРезультата.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка")); ТаблицаРезультата.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка")); ТаблицаРезультата.Колонки.Добавить("Менеджер", Новый ОписаниеТипов("СправочникСсылка.Пользователи")); ТаблицаРезультата.Колонки.Добавить("ПодключенКЭДО", Новый ОписаниеТипов("Булево")); Пока Выборка.Следующий() Цикл НоваяСтрока = ТаблицаРезультата.Добавить(); НоваяСтрока.Контрагент = Выборка.Контрагент; НоваяСтрока.Наименование = Выборка.Наименование; НоваяСтрока.ИНН = Выборка.ИНН; НоваяСтрока.Менеджер = Выборка.Менеджер; НоваяСтрока.ПодключенКЭДО = Выборка.ПодключенКЭДО; КонецЦикла; Отчет.УстановитьРезультат(ТаблицаРезультата); КонецПроцедуры |
—
### Пояснения:
— В запросе берутся контрагенты с заполненным основным менеджером.
— Левое соединение с регистром сведений «ОбменЭДО» (название регистра может отличаться, уточните в вашей базе) по ссылке на контрагента.
— Если запись в регистре есть — значит контрагент подключён к ЭДО.
— В отчёте выводятся: контрагент, наименование, ИНН, менеджер и булево поле «ПодключенКЭДО».
— Можно доработать вывод, например, добавить фильтры по менеджерам.
—
### Если в вашей базе ЭДО хранится в реквизите карточки контрагента (например, флаг «ПодключенКЭДО»), то запрос упростится:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка КАК Контрагент, | Контрагенты.Наименование КАК Наименование, | Контрагенты.ИНН КАК ИНН, | Контрагенты.ОсновнойМенеджер КАК Менеджер, | Контрагенты.ПодключенКЭДО КАК ПодключенКЭДО |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.ОсновнойМенеджер <> NULL |УПОРЯДОЧИТЬ ПО | Контрагенты.ОсновнойМенеджер, | Контрагенты.Наименование"; |
—
Если нужно, могу помочь с формой отчёта и модулем формы.
Рекомендую проверить структуру вашей базы, где именно хранится информация о подключении к ЭДО.
—
https://infostart.ru/1c/articles/1859782/ — по настройке и работе с ЭДО в 1С
Если нужна помощь с конкретным кодом для вашей базы — уточните, где хранится признак подключения к ЭДО.
—
Если надо, могу написать полный код отчёта с формой и модулем.