Работа с внешними отчетами в современных конфигурациях на базе 1С:Предприятие 8.3, таких как «Комплексная автоматизация 2.5», требует понимания не только основ программирования, но и механизмов работы подсистемы «Дополнительные отчеты и обработки». В данной статье мы подробно разберем процесс внесения изменений во внешний отчет, на примере добавления новой колонки «Снят с производства».
Прежде чем приступать к редактированию кода или макета, нам необходимо получить физический файл отчета с расширением .erf. В конфигурации «Комплексная автоматизация 2.5» внешние отчеты не хранятся в дереве конфигурации, они находятся в специальном справочнике. Проанализируем, как его найти.
Важно помнить, что редактирование внешнего файла напрямую не изменит отчет в самой базе до тех пор, пока мы не загрузим его обратно. Рассмотрим этот процесс далее.
Теперь, когда у нас есть файл .erf, запустим систему 1С:Предприятие в режиме Конфигуратор. Выполним следующие действия:
Выберем в главном меню Файл — Открыть и укажем путь к нашему выгруженному файлу. Перед нами откроется окно внешнего отчета. В этом окне нас больше всего интересует объект Основная схема компоновки данных (сокращенно СКД). Именно здесь в 99% случаев описывается логика получения данных и внешний вид отчета в современных конфигурациях.
Нажмем на иконку «лупы» (открыть) рядом с полем выбора основной схемы. Перед нами откроется Конструктор схемы компоновки данных.
Чтобы в отчете появилась новая колонка (например, признак «Снят с производства»), этот признак сначала нужно извлечь из базы данных. Разберем по шагам, как это сделать во вкладке Набор данных:
НаборДанных1 с типом «Запрос»).Справочник.Номенклатура. Нам нужно найти поле, отвечающее за статус производства. Часто это может быть поле Статус или специфический реквизит, добавленный разработчиками ранее.Пример изменения текста запроса в конструкторе может выглядеть так:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Номенклатура,
Номенклатура.Код КАК Код,
Номенклатура.Наименование КАК Наименование,
// Добавляем наше поле
ВЫБОР
КОГДА Номенклатура.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыНоменклатуры.СнятаСПроизводства)
ТОГДА "Снят с производства"
ИНАЧЕ ""
КОНЕЦ КАК СтатусПроизводства
ИЗ
Справочник.Номенклатура КАК Номенклатура
Добавление поля в запрос — это только половина дела. Теперь выясним, как заставить отчет отображать это поле пользователю. Перейдем на вкладку Настройки в нижней части конструктора СКД.
СтатусПроизводства.Проанализируем ситуацию, если поле не появилось сразу. В КА 2.5 настройки отчетов часто сохраняются в пользовательских настройках. Чтобы изменения вступили в силу для всех, иногда требуется сбросить настройки отчета в режиме «1С:Предприятие» до стандартных.
Иногда отчеты в КА 2.5 строятся с использованием БСП (Библиотеки стандартных подсистем). В этом случае часть настроек может переопределяться программно. Рассмотрим, где это проверить:
В окне внешнего отчета (в Конфигураторе) нажмем кнопку Действия — Открыть модуль объекта. Посмотрим, нет ли там процедур типа ПриКомпоновкеРезультата. Если такая процедура есть, изучим ее код. Иногда разработчики жестко прописывают список доступных полей или программно меняют структуру компоновщика.
Если вы видите код, подобный приведенному ниже, убедитесь, что ваше новое поле не исключается из обработки:
Процедура ПриКомпоновкеРезультата(ДанныеРасшифровки, СтандартнаяОбработка)
// Здесь может быть программная модификация настроек СКД
// Если СтандартнаяОбработка = Ложь, то отчет формируется полностью программно
КонецПроцедуры
После внесения всех правок сохраним файл (нажмем Ctrl + S или иконку дискеты). Теперь нам нужно вернуть обновленную версию отчета в информационную базу, чтобы пользователи могли с ним работать.
.erf на диске.Теперь проверим результат. Откроем отчет, нажмем «Сформировать». Если колонка не появилась, зайдем в меню Настройки (в форме отчета), переключимся в режим Расширенный, перейдем на вкладку Поля и сортировки и проверим, стоит ли галочка напротив нашего нового поля. Если галочки нет — поставим ее и нажмем «Закрыть и сформировать».
Рассмотренный алгоритм является универсальным для большинства внешних отчетов в системе «1С:Предприятие 8.3». Помните, что при работе с типовыми конфигурациями важно соблюдать структуру запросов и использовать стандартные реквизиты объектов, чтобы избежать ошибок при обновлении программы.