Доработка отчетов СКД требует комбинации технических навыков и понимания бизнес-задач. Это не типовая задача, а процесс, требующий анализа, изобретательности и трудоемких размышлений. В отличие от типовых программистских задач, где можно найти готовые решения в интернете, настройка и оптимизация отчетов часто сталкивается с уникальными требованиями бизнеса, сложной логикой типовых конфигураций и различными ограничениями.
Поиск в интернете редко дает быстрое и однозначное решение, потому что:
Каждая конфигурация 1С имеет свою специфику.
Настройки отчетов зависят от структуры данных и версии платформы.
Ошибки при переносе настроек требуют ручного анализа и экспериментов.
В результате успешная доработка отчета — это синтез технических знаний, логического мышления и понимания бизнес-процессов. Прежде чем погружаться в код - проведите анализ, разберитесь, что именно нужно бизнесу – это сэкономит часы правок. В этой статье соберем несколько практических кейсов, как подходить к таким задачам системно, избегая типичных ошибок и находя оптимальные решения. Часто тексты запросов и настройки формируются при выполнении типовых отчетов программно, что на Инфостарт освящено уже в более глубоких публикациях.
Как провести анализ требований к отчету СКД
Важно четко понять бизнес-задачу. Неправильно сформулированные требования приводят к:
Бесконечным правкам («Мы хотели не это!»)
Ненужной сложности (отчет делается «на всякий случай» с избыточными данными)
Разочарованию пользователей (отчет есть, но им неудобно пользоваться)
Задайте правильные вопросы
a) Кто будет использовать отчет?
Менеджеры → нужна краткая сводка с ключевыми показателями.
Бухгалтерия → важна детализация и точность.
Аналитики → требуются гибкие фильтры и возможность экспорта.
b) Как часто будет запускаться отчет?
Ежедневно → оптимизируйте скорость работы.
Раз в месяц → допустима более сложная обработка данных.
c) Какие решения будут принимать на основе отчета?
Пример:
Если отчет нужен для контроля дебиторки, ключевые данные: сроки просрочки, суммы, контрагенты.
Если для анализа продаж – динамика по периодам, товарные категории, регионы.
Проанализируйте текущие данные
Какие справочники и документы участвуют? (Номенклатура, Контрагенты, Реализация и т.д.)
Есть ли в них нужные поля? Если нет – может потребоваться доработка конфигурации.
Как связаны данные? Например:
«Продажи» → «Номенклатура» → «Группы товаров».
Уточните детали вывода
Группировки: По периодам, подразделениям, товарам?
Отборы: Какие фильтры должны быть у пользователя (например, «Только непроведенные документы»)?
Дополнительные расчеты: Нужны ли итоги, проценты, сравнение с прошлым периодом?
Проведите прототипирование
Создайте «черновик» отчета в 1С (можно на временной копии базы).
Покажите пользователям и спросите:
«Какие данные лишние?»
«Чего не хватает?»
«Удобен ли этот формат?»
Зафиксируйте требования письменно
Пример таблицы:
Параметр
Значение
Цель отчета
Контроль оплат от клиентов за последний месяц.
Данные
Контрагент, Сумма, Дата оплаты, Номер документа, Статус (оплачено/нет).
Группировки
По контрагентам → по неделям.
Отборы
Период (обязательный), Контрагент (по выбору), Статус.
Особенности
Выделять красным просрочку > 14 дней.
Избегайте типичных ошибок
«Сделайте как в Excel» → Переносить сложные таблицы в 1С часто неэффективно.
«Пусть будет всё, а мы потом разберёмся» → Это приводит к бесполезным отчетам-«монстрам».
Игнорирование производительности → Большие отчеты с множеством связей могут тормозить.
Проблематика типовых отчетов
Отчеты в стандартных конфигурациях 1С часто перегружены функционалом, который не востребован на конкретном предприятии. Сложность их структуры может:
Затруднять понимание логики работы.
Создавать избыточную нагрузку на систему.
Усложнять доработку под нужды пользователей.
При этом сотрудники нередко запрашивают изменения, которые технически неудобно реализовывать в рамках типового отчета. В таких случаях иногда проще разработать новый отчет с нуля, чем адаптировать существующий.
Алгоритм доработки отчета
1. Определение исходного варианта отчета
Сохраните типовой отчет (сохранить как внешний отчет). Обязательно измените имя отчета. В противном случае возникнут проблемы с отладкой.
При совпадении имени отлаживаемого отчета с записанным отчетом в справочник внешних отчетов и обработок настройки отлаживаемого отчета подменяются на настройки сохраненного в базу отчета вот так:
2. Получите ссылку на отчет, который требуется модифицировать.
В справочнике «Отчеты» найдите соответствующий вариант отчета.
Примечание: Вариант отчета в конкретной конфигурации перенастроенного под себя пользователем может существенно отличаться от типового.
3. Переноесите настройки из предприятия в конфигуратор
Попробуйте сохранить настройки отчета в режиме предприятия (через меню «Еще» → «Настройки для технического специалиста»).
Затем Еще - Сохранить настройки
Загрузите сохраненный файл (обычно в формате XML) в конфигураторе через «Загрузить из файла».
4. Обход ошибок при загрузке (легко забыть эту особенность, чтобы не искаль - решил ликвидировать пробел). Если загрузка не удается:
Откройте XML-файл настроек СКД в текстовом редакторе.
Удалите блок:
<additionalProperties>…</additionalProperties>
Сохраните файл и повторите попытку загрузки.
Важно: Этот метод не всегда срабатывает из-за различий в структуре данных между версиями платформы.
Ручная адаптация настроек
Если автоматический перенос невозможен:
Изучите настройки образца в режиме предприятия (поля, группировки, отборы).
Вручную воспроизведите их в конфигураторе, используя схему СКД.
Если отчет работает некорректно:
Сравните типовые и измененные настройки (можно использовать diff-инструменты для XML).
Проверьте запросы СКД – иногда ошибки кроются в условиях отбора или соединениях таблиц.
Важно!
Можно скопировать себе в отчет типовую форму отчета и модифицировать ее, ошибок нет!
Вставив эту форму при открытии формы отчета у нас появляется возможность продиагностировать внутреннее устройство данного отчета, например его структуру - узнать не изменилась ли структура, заложенная в схеме компоновки данных в момент инициализации отчета:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
#Если ВебКлиент Тогда
Если ЗначениеЗаполнено(ПутьКФайлуВнешнегоОтчетаНаКлиенте) Тогда
ТекстОшибки = НСтр("ru = 'Для этого действия требуется запустить клиентское приложение'");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
#КонецЕсли
Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
ВывестиСтруктуруНастроек(Настройки);
...
КонецПроцедуры
&НаСервере
Процедура ВывестиСтруктуруНастроек(Настройки, Уровень = 0)
Для Каждого Элемент Из Настройки.Структура Цикл
Отступ = "";
Для Н = 1 По Уровень Цикл
Отступ = Отступ + " ";
КонецЦикла;
Сообщить(Отступ + Элемент.Имя + " - " + ?(Элемент.Использование, "Используется", "Не используется"));
Если ТипЗнч(Элемент) = Тип("ГруппировкаКомпоновкиДанных") Тогда
Для Каждого Поле Из Элемент.ПоляГруппировки.Элементы Цикл
Сообщить(Отступ + " " + "Поле: " + СокрЛП(Поле.Поле));
КонецЦикла;
КонецЕсли;
Если Элемент.Структура.Количество() > 0 Тогда
ВывестиСтруктуруНастроек(Элемент, Уровень + 1);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Так же возможно программно сохранить настройки отчета в файл для сравнения.
Пример кода для сохранения настроек отчета:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
#Если ВебКлиент Тогда
Если ЗначениеЗаполнено(ПутьКФайлуВнешнегоОтчетаНаКлиенте) Тогда
ТекстОшибки = НСтр("ru = 'Для этого действия требуется запустить клиентское приложение'");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
#КонецЕсли
СохранитьНастройкиНаСервере();
...
КонецПроцедуры
// Сохранение настроек отчета в файл
&НаСервере
Процедура СохранитьНастройкиНаСервере()
Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
Текст = Новый ТекстовыйДокумент;
Попытка
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("D:\Obmen1c\log_skd.xml");
СериализаторXDTO.ЗаписатьXML(Запись, Настройки);
Запись.Закрыть();
// Читаем записанный XML для проверки и записи в текстовый документ
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл("K:\Obmen1c\log_skd.xml");
Текст.УстановитьТекст(Чтение.Прочитать());
Чтение.Закрыть();
// Дополнительно сохраняем в текстовый файл для просмотра
Текст.Записать("K:\Obmen1c\log_skd.txt");
Исключение
Сообщить("Ошибка сохранения настроек: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Под спойлером привожу пример сохраненных данным кодом настроек
Может быть интересен файл с сохраненными настройками в самом начале, при создании на сервере - для понимания процесса его можно сравнить с тем, что выводится при открытии:
5. Если требуется разработать программный код отчета
В свойствах отчета для свойства "Форма настроек" понадобится указать "ВспомогательнаяФормаНастроекОтчета". Форму настроек нужно именно выбрать из имеющихся общих форм, а не создать новую.
6. Нейросети не заменяют доработку сложного отчета
У нейросети можно получить сравнение двух вариантов настроек СКД - типового и доработанного, в целях выявления проблем, если что-то идет не так, как должно быть, или не удается получить ожидаемого поведения. Они помогают путем редактирования XML-файла настроек схемы компоновки данных копировать (размножать и изменять) или добавлять новые элементы структуры, отборов, условного оформления и т.д. Автоматизация таких задач исходя из практических попыток ограничена:
Необходимостью глубокого понимания структуры СКД.
Зависимостью от специфики конфигурации и данных предприятия.
Сложности текста запроса и специфики деталей XML-настроек. Запросы из типовых отчетов нейросети понимают и дорабатывают довольно плохо.
Пример помощи нейросети в доработке отчета.
Текст запроса к нейросети:
Удалось добиться верной работы отчета "Вторая версия".
Теперь стоит задача перенести оформление варианта отчета из исходного варианта во вторую версию.
Прошу помочь на основе сравнения XML схем СКД.
Ответ нейросети.
Для переноса оформления из исходного варианта (ИсходныйВариант.xml) во вторую версию (ВтораяВерсия.xml) необходимо выполнить следующие шаги:
1. Перенос настроек условного оформления
В исходном варианте присутствует детальное условное оформление для полей Подразделение и Менеджер на основе значения поля СоотношениеПроцент. Это оформление задано в секции <conditionalAppearance>.
Скопируйте все блоки <conditionalAppearance> из исходного варианта (из секций Подразделение и Менеджер) и вставьте их в соответствующие места во второй версии.
2. Перенос форматов и заголовков полей
Убедитесь, что во второй версии все поля имеют те же заголовки и форматы, что и в исходном варианте. Например, поле СоотношениеПроцент во второй версии должно иметь формат с 2 знаками после запятой, как в исходном варианте.
3. Перенос параметров отчета
Проверьте, что все параметры (например, ДатаНачала, ДатаОкончания, ТекущийПериодНачало, ТекущийПериодОкончание, Свойство) правильно перенесены и настроены во второй версии.
4. Перенос шаблонов и группировок
Убедитесь, что шаблоны (Макет1, Макет2) и группировки (например, группировка по периоду) правильно перенесены и работают во второй версии.
Примечание: группировки находятся в теге <dcsset:item xsi:type="dcsset:StructureItemGroup">
5. Проверка итоговых выражений
Проверьте, что выражения для итогов (например, для СоотношениеПроцент) correctly calculate значения во второй версии.
После внесения этих изменений сохраните файл и проверьте работу отчета в 1С.
Если вам нужна помощь с конкретными блоками XML, предоставьте их, и я помогу с переносом.
Заключение
Типовые отчеты могут быть сложны и избыточны.
Работа с отчетами СКД требует знания технологий и гибкости мышления.
Потратьте 30 минут на обсуждение с пользователями – и вам не придется переделывать отчет 5 раз.
Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard.
Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране.
Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!
Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).
Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.
Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна
Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.
5. Если требуется разработать программный код отчета
В свойствах отчета для свойства "Форма настроек" понадобится указать "ВспомогательнаяФормаНастроекОтчета". Форму настроек нужно именно выбрать из имеющихся общих форм, а не создать новую.
О чем идет речь? Каким образом разрабатывать программный код и как он связан с "формой настроек"?
(1) Если создаем форму отчета на основе типового отчета (или даже в своем отчете с использованием механизма дополнительных отчетов БСП) - в публикации имелась ввиду форма отчета как контейнер программного кода с описанием нового функционала, то без формы настроек не обойтись. Потому, что при нажатии "Настройка" пользователь будет получать ошибку. В типовых конфигурациях уже существует "ВспомогательнаяФормаНастроекОтчета", выбор которой задействует механизм БСП, позволяющий видеть и изменять настройки отчета.
(2) Теперь понятнее стало, посмотрел в ЗУП "ВспомогательнаяФормаНастроекОтчета" -
Это какая-то "заготовка" почти пустая, там в реквизитах "КомпоновщикНастроек",
а на форме только группа для них. БСП все программно заполняет? Или мы где-то должны
код писать?
(3) ВспомогательнаяФормаНастроекОтчета автоматически сформируется по умолчанию механизмом БСП в соответствии с данными отчета, но замысел уточнить настройки приведет к необходимости делать свою форму настроек. ВспомогательнаяФормаНастроекОтчета проще, чем "Еще - Изменить вариант". Форма "Изменить вариант" максимально полная, и она становится доступной, если создать форму отчета. Но кнопка "Настройка" выдает ошибку, если ее не переопределить.