Пример разработки регламентированного отчета

09.10.24

Разработка - Инструментарий разработчика

Мотивом для публикации послужило создание серии регламентированных отчетов для одной отраслевой конфигурации на базе БП 3. Так что, хотя задача, может быть, имеет отвлечённый характер (кому может понадобиться делать регламентированные отчеты), столкнуться с ней довелось на практике, каковую с некоторой доработкой было решено воспроизвести в формате учебного примера — некоего простого выдуманного отчета.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример разработки регламентированного отчета:
.cfe 177,13Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

Отчет проектируем в расширении (в нашем случае префикс — реготч).

Создаем у обработки ОбновлениеРегламентированнойОтчетности новый макет по аналогии с существующим. Модифицируем метод обработки ПолучитьСписокОтчетов, метод общего модуля РегламентированнаяОтчетностьПереопределяемый ПолучитьСписокРегламентированныхОтчетов.
 

 

Создаем в расширении новый отчет РегламентированныйОтчет_реготч_КлассификацияОбязательств. Начинаться наименование источника должно так. Теперь его можно зарегистрировать в базе данных через команду обновления рег. отчетов.

Формы отчета (основную форму и форму редакции, а также форму настроек) мы копировали с типового регламентированного отчета, выбор которого тоже является задачей, поскольку они бывают разные.

Собственно, изучение механизма формирования отчета, понимание того, что нужно оставить, что — доработать занимает длительное время, по истечении которого мы получаем какую-то заготовку.

Скажем, что в нашем случае в итоге код формы редакции отчета сократился примерно (в тысячах строк) с 14 до 3, модуля объекта — с 4 до менее 1 (был взят такой немаленький отчет).

В контексте нашего примера типичная структура отчета состоит из:

— Основная форма отчета — то служебное окошко, в котором при создании отчета выбирается организация, период и соответствующая редакция отчета.

— Форма редакции отчета. Здесь происходит заполнение отчета. На форме расположен табличный документ, куда выводятся данные отчета.

— Макет(ы) редакции отчета. Табличные документы с именованными ячейками.

— Экземпляр документа Регламентированный отчет, где хранятся данные отчета.

Кроме того, отчет может иметь различные служебные формы и макеты.

Вместе с тем по своей архитектуре отчеты могут порядочно отличаться друг от друга.

Добавим в метод ТаблицаФормОтчета модуля менеджера отчета его редакции, и также добавим их в метод ДеревоФормИФорматов.

 

 

 

Настроим основную форму отчета (например, периодичность).


 

Пусть наш отчет будет отображать информацию о дебиторской и кредиторской задолженности контрагентов, и пусть отчет состоит из трех разделов: титульного, первой таблицы и второй таблицы. Первая таблица будет с заданным количеством колонок и строк, вторая — с заданным количеством колонок, но произвольным числом строк. Зададим имена ячеек и тип их значения там, где это необходимо. У второй таблицы имена ячеек таблицы будут сформированы программно.

 


 

Где-то в закромах формы мы заместили типовой код по формированию структуры разделов.


 

На форме редакции отчета данные отчета будут храниться в реквизите СтруктураДанных. Формат структуры претерпевал некоторые изменения по мере разработки и окончательный вид принял после реализации выгрузки, повторяя структуру пакета XDTO.

Для хранения показателей первой таблицы мы используем структуру ЯчейкаОтчета, а для хранения второй таблицы — массив СтрокаОтчета.

 

 

При создании нового отчета именованные ячейки макетов инициализируют часть структуры данных. У первой таблицы будут созданы элементы ячеек отчета, строки отчета второй таблицы будут сформированы при заполнении. Реквизиты шапки создаются у каждого раздела.


 

При выводе раздела в табличный документ происходит обратный процесс — значения структуры данных помещаются в области ячеек табличного документа.


 

Табличный документ второй таблицы, в силу того, что количество строк неизвестно, конструируется динамически.


 

Условно взаимодействие структуры данных можно представить следующим образом.


 

Для заполнения отчета создадим обычный отчет на СКД реготч_КлассификацияОбязательств. Текст запроса отчета будем использовать для заполнения отчета в модуле менеджера.


 

Итоговые показатели рассчитываются на форме, так как пользователь может вручную изменить значение любой доступной ячейки.

Для расчета итогов первой таблицы (в том числе) создан дополнительный макет. Итоги первой таблицы хранятся как ячейки таблицы, не отличаясь от обычных. Итоги второй таблицы рассчитываются проще и хранятся как структура итогов.


 

Поскольку состав строк второй таблицы не фиксирован, добавлена возможность добавления / удаления строк.


 

Логично, что раз отчет формируется на основании другого отчета, то второй используется для расшифровки первого. Для открытия отчета с заданными параметрами, отбором и проч. созданы 2 общих модуля: реготч_ОтчетыСервер и реготч_ОтчетыКлиентСервер.


 

Для выгрузки и загрузки отчета был создан пакет XDTO с нехитрой структурой. Стоит заметить, что процедуры выгрузки и загрузки отчета в нашем случае интегрированы с механизмом рег. отчетности, так что мы просто заместили код оригинального отчета своим. Впрочем, не обошлось без модификации формы справочника ЭлектронныеПредставленияРегламентированныхОтчетов.



 

Пример отчета был реализован, как сказано, копированием компонентов типового отчета с их последующей модификацией — в том числе чтобы не переносить с нуля элементы инфраструктуры взаимодействия с блоком рег. отчетности. Он содержит три раздела с двумя таблицами, может быть сохранен в список рег. отчетов, выгружен / загружен (в своем формате xml), распечатан, а также у него может быть изменен статус. При редактировании зависимых ячеек выполняется расчет итогов. В настройках отчета может быть выбрана единица измерения.

Протестировано на конфигурации Бухгалтерия предприятия, редакция 3.0 (3.0.158.23).

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    155268    845    398    

851

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    5813    41    22    

50

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    21821    65    43    

111

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    9858    37    16    

61

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    14630    36    7    

70

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    186522    1133    0    

906

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    17005    6    32    

42

Инструментарий разработчика Программист Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Конфигурации 1cv8 Платные (руб)

Программист - это человек, непрерывно принимающий решения. Написание кода не является процессом принятия решения - это всего лишь трансляция ваших желаний. Если вас периодически тяготит написание сотен строк кода ради решения задач, то прошу обратить внимание. Данный продукт позволит существенно сократить время на рутинные операции при разработке. За счет библиотечной реализации сокращается объём кода, а его читаемость повышается. К библиотеке прилагается документация API и шаблоны кода для наиболее популярных методов.

4200 руб.

16.04.2021    15257    6    10    

18
Оставьте свое сообщение