Поговорим об особенностях формирования внешних отчетов в программе 1С Предприятие 8.3 с применением схемы компоновки данных (кратко: СКД). В нашем примере мы будем использовать конфигурацию 1С Бухгалтерия предприятия 3.0 За исходную информацию примем необходимость: «Составить таблицу цен номенклатуры на произвольный период. Обязательно добавить пользователю возможность выбирать дату, за которую будет составлен отчет».
Создание внешнего отчета в 1С
Прежде всего, перейдем в режим Конфигуратора и выберем строку Внешний отчет в перечне.
Даём имя отчёту согласно правилам именования переменных в 1С. В нашем случае это будет «ЦеныНоменлатуры». Больше ничего не меняем и нажимаем «Открыть схему компоновки данных»
В следующем окне, ничего не меняя, жмём «Готово». Перед нами появится тело схемы компоновки данных, чтобы мы могли совершить все необходимые настройки.
Настройка Схемы компоновки данных
В первую очередь для любого отчета нужны какие-то данные. В СКД за это отвечают наборы данных. Давайте создадим один. Жмём правой кнопкой мыши на «Наборы данных» и выбираем «Добавить набор данных - запрос»
Справа от наборов данных две больших области: «Поля» и «Запросы». Их настройка это долгий и сложный процесс, благо есть инструмент, который позволит нам упростить эту работу. Он называется «Конструктор запросов», нажмём на него.
По условию задачи можно догадаться, что нам понадобится регистр сведений, а именно «ЦеныНоменклатуры». У нас на выбор 3 схожих регистра сведений: «ЦеныНоменклатуры», «ЦеныНоменклатуры.СрезПервых» и «ЦеныНоменклатуры.СрезПоследних».
На выбранную дату нам понадобится цена номенклатуры: из всех цен - самая свежая на выбранную дату. Поэтому наш выбор останавливается на «ЦеныНоменклатуры.СрезПоследних».
В первой колонке под названием «База данных» нам надо будет выбрать «Регистр сведений» и в нём найти регистр сведений «ЦеныНоменклатуры.СрезПоследних»
Выбранный регистр попадает во вторую колонку «Таблицы». У него есть определённое количество реквизитов, в том числе вложенных. Не все из них нам нужны. Раскрываем регистр, нажав на плюсик слева от имени. Выбираем минимальное количество реквизитов, которые обеспечат полное решение нашей задачи. В нашем случае это «Период», «Номенклатура» и «Цена». На первый взгляд, может показаться, что попадая в третью колонку, элементы меняют имена – но если присмотреться, станет понятно, что это просто расширенное имя элемента, которое необходимо, потому что мы вынесли его из родителя. Можете проверить правильность выполнения: выглядит это всё должно как на картинке ниже.
Нажимаем «Ок».
Все необходимые нам данные мы получили. Теперь давайте настроим их вывод. Переходим на вкладку «Настройки».
Настроим отображение отчета. Жмём правой кнопкой на «Отчет» и выбираем «Новая группировка»
В появившемся окне, ничего не меняя, нажимаем «Ок»
Проверяем, что у нас в нижней таблице открыта вкладка «Параметры», в таблице параметров присутствует «Период».
Как мы помним, нам необходимо дать пользователю возможность самостоятельно выбирать дату, за которую необходимо показать отчет. Именно этим мы сейчас и займёмся. Нажимаем на кнопку «Свойства элемента пользовательских настроек».
Отмечаем настройку «Включать в пользовательские настройки» и жмём «Ок».
Теперь выберем поля, которые непосредственно будут показаны в отчете. Переходим на вкладку «Выбранные поля». Из списка «Доступные поля» в список «Поле» переносим элементы «Номенклатура», «Период» и «Цена».
Закрываем схему компоновки данных.
Дальше мы воспользуемся программным кодом. Заострять внимание на строении функции мы не будем. На данном этапе вам достаточно знать, что этот код нужен, чтобы отчет представился конфигурации, и она сохранила его. Это позволит нам загрузить файл отчета лишь один раз, а в дальнейшем вызывать отчет в самой конфигурации.
Код программы хранится в модулях объектов. Так как будет работать с отчетом, поэтому мы откроем именно модуль нашего отчета.
В пустое окно вставляем без кавычек:
«
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
ПараметрыРегистрации.Наименование = НСтр("ru='Цены номенлатуры за определённую дату'");
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.Версия = "29.11.2023";
ПараметрыРегистрации.Информация = НСтр("ru='Цены номенлатуры за определённую дату'");
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Идентификатор = "Цены номенлатуры за определённую дату";
Команда.Представление = "Цены номенлатуры за определённую дату";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Возврат ПараметрыРегистрации;
КонецФункции
___
«
Должно получится как на картинке ниже. Обратите внимание не зелёные строки – их текст непосредственно будет отображаться в конфигурации. В будущем, при желании вы можете соотнести этот код и отображение в программе и даже попытаться что-то поменять – но это уже на ваш страх и риск, одна случайно удалённая кавычка может полностью сломать весь отчет. А сейчас мы переносим текст как есть и закрываем.
Сохраняем наш отчет нажав на дискетку, либо нажав на клавиатуре «Ctrl + S». Если вы забудете сохранить, то при попытке закрыть отчет, конфигуратор сам предложит вам сохранить изменения.
На этом наша работа в конфигураторе заканчивается.
Настройка конфигурации
Запускаем программу в режиме предприятия. В нашем случае это Бухгалтерия предприятия 3.0.
В главном меню нажимаем «Администрирование»
В списке «Настройки программы» ищем пункт «Печатные формы, отчеты и обработки»
По умолчанию возможность использовать дополнительные отчеты и обработки отключена. Чтобы активировать её, надо отметить чекбокс «Дополнительные отчеты и обработки» и нажимаем на одноимённое меню
Перед нами будет список уже добавленных дополнительных отчетов. По умолчанию там будет лишь один отчет «Путеводитель по демонстрационной базе», который был предустановлен самой конфигурацией. В будущем именно тут будут все добавленные нами дополнительные отчеты.
Жмём «Добавить из файла».
Несмотря на то, что мы создаём отчет – в меню написано, что мы создаём обработку. Бояться этого не стоит – программа поймёт, что мы передаём ей отчет и загрузит его правильно.
Видим предупреждение безопасности - так как это наш собственный отчет, смело жмём продолжить.
Находим папку, куда мы сохраняли наш отчет, выбираем его и жмём «Открыть».
Здесь вы можете увидеть те названия, которые мы прописывали в коде. Если мы все сделали правильно, у нас будет доступна команда к выполнению. Выполним её.
Мы попадаем непосредственно в созданный нами внешний отчет. Выбираем дату и жмём сформировать.
Если мы всё сделали правильно, мы увидим список номенклатуры с ценами и датами, когда была установлена цена.
В дальнейшем наш отчет будет доступен по пути: «Администрирование» – «Печатные формы, отчеты и обработки» – «Дополнительные отчеты и обработки».
Поздравляю, вы научились создавать внешние отчеты и добавлять их в конфигурацию! Если вам понадобиться помощь в создании внешнего отчета в 1С - закажите консультацию наших специалистов.