Работа с данным видом немного отличается от других видов подключаемых обработок. Здесь точно также используется процедура Инициализировать, но в ней нет параметров. Необходимые параметры передаются через структуру ДополнительныеПараметры. Т.е. в обработке должен быть реквизит ДополнительныеПараметры типа Произвольный.
В данную структуру передается следующие параметры:
- Отчет – ОтчетОбъект, из которого осуществляется вызов внешней обработки.
- ТабличныйДокумент — ТабличныйДокумент, в который осуществляется вывод отчета.
- Отказ — флаг, определяющий необходимость дальнейшего построения отчета.
Процедура Инициализировать() Экспорт
Форма = ПолучитьФорму("Форма");
Ответ = Форма.ОткрытьМодально();
Если Ответ <> Истина Тогда
Возврат;
КонецЕсли;
МакетПодписей = ПолучитьМакет("Макет");
ОбластьПробел = МакетПодписей.ПолучитьОбласть("Пробел");
ДополнительныеПараметры.ТабличныйДокумент.Вывести(ОбластьПробел);
Область = МакетПодписей.ПолучитьОбласть("Подписи");
Для Каждого стр из Подписи Цикл
Если НЕ стр.Пометка Тогда Продолжить КонецЕсли;
ДополнительныеПараметры.ТабличныйДокумент.Вывести(ОбластьПробел);
Область.Параметры.Должность = стр.Должность;
Область.Параметры.ФИО = стр.ФИО;
ДополнительныеПараметры.ТабличныйДокумент.Вывести(Область);
КонецЦикла;
КонецПроцедуры
Т.е. для грамотного программиста тут можно много чего натворить со стандартными отчетами без изменения конфигурации.
Данные для вывода вводятся через форму, которая появляется при возове обработки. Данные можно сохранить, чтобы не набирать каждый раз. Так как списки подписывающих меняются, то есть колонка, которой можно включить/отключить использование конкретной строки.
Добавлять можно во многие типовые отчеты на основе универсальных отчетов. В отчете должен быть реквизит УниверсальныйОтчет с типом Отчеты.УниверсальныйОтчет и отчет должен формироваться с помощью процедуры УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент,,, ЭтотОбъект);
Принимаю заказы на разработку и доработку.
Очень жаль, что 1С зажала эту фичу для Бухгалтерии предприятия.
Это ж надо было такое пропустить..
Очень интересно, спасибо! Это мы не проходили. Как говорится: «Век живи, век учись!»
М-да, рано радовался. В типовых конфах для України описаный механизм не реализирован. Очень жаль.
))
(5) (4) (1) Действительно, очень странно, что 1с забросило это направление.
Процедура Инициализировать() Экспорт
Форма = ПолучитьФорму(«Форма»);
Ответ = Форма.ОткрытьМодально();
Если Ответ <> Истина Тогда
Возврат;
КонецЕсли;
МакетПодписей = ПолучитьМакет(«Макет»);
ОбластьПробел = МакетПодписей.ПолучитьОбласть(«Пробел»);
ДополнительныеПараметры.ТабличныйДокумент.Вывести(ОбластьПробел);
Область = МакетПодписей.ПолучитьОбласть(«Подписи»);
Для Каждого стр из Подписи Цикл
Если НЕ стр.Пометка Тогда Продолжить КонецЕсли;
ДополнительныеПараметры.ТабличныйДокумент.Вывести(ОбластьПробел);
Область.Параметры.Должность = стр.Должность;
Область.Параметры.ФИО = стр.ФИО;
ДополнительныеПараметры.ТабличныйДокумент.Вывести(Область);
КонецЦикла;
(7) это что?
«неуправляемый интерфейс», это конечно жесть. Из оперы: Перепровести, пересоздать, перевойти, перполучить ЗП. 😎