База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как написать готовый код запроса для отчёта в 1С:ЗУП? › Ответ в теме: Как написать готовый код запроса для отчёта в 1С:ЗУП?
Вот пример простого запроса и кода для отчёта в 1С:Зарплата и Управление Персоналом (ЗУП), который выводит полное наименование организации и ФИО генерального директора.
Предполагается, что:
— Организации берутся из справочника «Организации»
— Генеральный директор хранится в реквизите «Руководитель» справочника «Организации» (тип — СправочникСсылка.Сотрудники или ФизическиеЛица)
— Для ФИО директора используется стандартная функция ФорматФИО()
Код запроса (текст запроса):
|
1 2 3 4 5 6 7 8 9 10 11 12 |
Запрос.Текст = "ВЫБРАТЬ | Организации.НаименованиеПолное КАК НаименованиеОрганизации, | РуководительФизЛицо.Фамилия КАК Фамилия, | РуководительФизЛицо.Имя КАК Имя, | РуководительФизЛицо.Отчество КАК Отчество |ИЗ | Справочник.Организации КАК Организации | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК РуководительФизЛицо | ПО Организации.Руководитель = РуководительФизЛицо.Ссылка |ГДЕ | Организации.ЭтоГруппа = ЛОЖЬ"; |
Пример процедуры формирования отчёта (в модуле объекта отчёта):
|
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 |
Процедура СформироватьОтчет(Команда) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Организации.НаименованиеПолное КАК НаименованиеОрганизации, | РуководительФизЛицо.Фамилия КАК Фамилия, | РуководительФизЛицо.Имя КАК Имя, | РуководительФизЛицо.Отчество КАК Отчество |ИЗ | Справочник.Организации КАК Организации | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК РуководительФизЛицо | ПО Организации.Руководитель = РуководительФизЛицо.Ссылка |ГДЕ | Организации.ЭтоГруппа = ЛОЖЬ"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); ТаблицаРезультата = Новый ТаблицаЗначений; ТаблицаРезультата.Колонки.Добавить("НаименованиеОрганизации"); ТаблицаРезультата.Колонки.Добавить("ФИОГенеральногоДиректора"); Пока Выборка.Следующий() Цикл ФИО = ФорматФИО(Выборка.Фамилия, Выборка.Имя, Выборка.Отчество); ТаблицаРезультата.Добавить(Новый Структура("НаименованиеОрганизации, ФИОГенеральногоДиректора", Выборка.НаименованиеОрганизации, ФИО)); КонецЦикла; // Вывод результата в форму отчёта ЭлементыФормы.ТабличноеПолеРезультат.Значение = ТаблицаРезультата; КонецПроцедуры |
Если в вашей конфигурации поле «Руководитель» в справочнике «Организации» называется иначе, или хранится в другом формате, подкорректируйте запрос соответственно.
Если директор хранится в справочнике «Сотрудники», то нужно будет делать соединение с ним и брать ФИО оттуда.
—
Если нужен готовый отчет с формой, то можно создать отчет с одним табличным полем и кнопкой «Сформировать», в обработчике кнопки вызвать процедуру выше.
—
https://infostart.ru/public/1739214/ (пример с ответственным лицом, можно адаптировать под директора)
—
Если нужно, могу помочь с готовым файлом отчёта или более сложным вариантом с фильтрами.