Доработка статистического отчёта в 1С 8.3 через расширение и СКД

· 9 мин

Содержание

Чтобы обновить шаблон статистики в 1С 8.3 и не потерять правки при следующем обновлении конфигурации, меняйте отчёт не в основной конфигурации, а в расширении. Заимствуете отчёт, правите его схему компоновки данных (СКД) и макет, сохраняете расширение в файл .cfe и подключаете в рабочей базе через Администрирование → Печатные формы, отчеты и обработки → Расширения.

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

Если под «шаблоном статистики» вы имеете в виду формы Росстата в 1С-Отчетности — это другая задача. Такие шаблоны загружаются в журнале Отчеты → Регламентированные отчеты, а не правятся в Конфигураторе. Эта страница — про доработку собственного или типового отчёта со статистикой.

1. Разбор текущего отчёта: где живёт шаблон и что в нём сломалось

Сначала выясните, что именно нужно обновить. «Шаблон» статистического отчёта в 1С 8.3 — это обычно три слоя, и правятся они по-разному.

СлойГде находитсяЧто меняют
Схема компоновки данныхМакет отчёта ОсновнаяСхемаКомпоновкиДанныхЗапрос, поля, ресурсы, параметры
Вариант отчётаНастройки внутри СКД или сохранённые варианты пользователейГруппировки, отборы, сортировки
ОформлениеУсловное оформление, макеты на закладке «Макеты» СКДЦвета, шапка, формат чисел

Если не хватает только группировки или отбора, Конфигуратор не нужен. Откройте отчёт, нажмите Настройки, переключите вид на расширенный и поменяйте структуру. Затем сохраните вариант под своим именем.

Если же нужно новое поле из регистра, другой расчёт или изменить запрос — это правка СКД, и тут без расширения не обойтись.

Перед правкой соберите факты:

  • 🔍 какой отчёт: типовой (из конфигурации), внешний (.erf) или уже доработанный в расширении;
  • 🔍 какие поля и показатели должны появиться или исправиться;
  • 🔍 на каком периоде и с какими отборами видна проблема — запишите пример с цифрами;
  • 🔍 какой релиз конфигурации стоит сейчас и какой будет после обновления.

Пример из практики: отчёт «Статистика продаж по менеджерам» после обновления показывает пустую колонку «Маржа». Причина — в новом релизе поменялся источник себестоимости, а запрос в доработке остался старым. Такие вещи видно только при сравнении запроса со свежей типовой схемой.

2. Подготовка базы и создание расширения конфигурации

Все правки делайте на копии рабочей базы, не на самой рабочей. Выгрузите базу в .dt или сделайте копию средствами СУБД и разверните её отдельно.

Порядок подготовки:

  1. Убедитесь, что релиз конфигурации в копии совпадает с рабочим (Справка → О программе).
  2. Откройте копию в Конфигураторе.
  3. Перейдите в Конфигурация → Расширения конфигурации.
  4. Нажмите «Добавить» и задайте имя, например ДоработкаОтчетовСтатистики. Префикс задайте коротким, например стат_: им будут помечаться новые объекты.
  5. В свойствах расширения выберите назначение «Адаптация» — это вариант для доработок под задачи конкретной организации.

Расширения появились в платформе 8.3.6, но для правки отчётов лучше работать на актуальной версии 8.3.2x. В ней корректнее работают заимствование макетов и сравнение с основной конфигурацией.

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

Как заимствовать отчёт

  1. В дереве основной конфигурации найдите отчёт: Отчеты → <ИмяОтчета>.
  2. Щёлкните правой кнопкой и выберите «Добавить в расширение».
  3. В дереве расширения раскройте заимствованный отчёт, затем его макеты.
  4. Заимствуйте макет схемы компоновки тем же способом — через контекстное меню.

Теперь в расширении есть своя копия схемы. Основную конфигурацию вы не трогаете, поддержка поставщика не снимается.

Если отчёт внешний

Внешний отчёт .erf расширение не требует. Откройте файл в Конфигураторе через Файл → Открыть, правьте схему так же, как описано ниже, и сохраните под новым именем с датой. В рабочей базе замените файл в списке дополнительных отчётов и обработок. Старую версию не удаляйте с диска, пока не проверите новую на реальных данных.

3. Правка схемы компоновки данных: запрос, поля, ресурсы

Откройте заимствованный макет схемы двойным щелчком. Откроется редактор СКД с закладками: «Наборы данных», «Связи наборов данных», «Вычисляемые поля», «Ресурсы», «Параметры», «Макеты», «Вложенные схемы», «Настройки».

Запрос набора данных

На закладке «Наборы данных» выберите набор-запрос и нажмите «Конструктор запроса». Добавляйте поля через конструктор, а не правкой текста вручную — так меньше шансов опечататься в имени таблицы.

Пример добавления числа документов в статистику продаж:

ВЫБРАТЬ
	Продажи.Менеджер КАК Менеджер,
	Продажи.Номенклатура КАК Номенклатура,
	СУММА(Продажи.Сумма) КАК Сумма,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.Регистратор) КАК ЧислоДокументов
ИЗ
	РегистрНакопления.Продажи КАК Продажи
ГДЕ
	Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
	Продажи.Менеджер,
	Продажи.Номенклатура

Имена регистров и реквизитов у разных конфигураций свои. Сверяйте их по дереву метаданных, а не по примеру.

Ресурсы и вычисляемые поля

Статистика — это почти всегда итоги и доли. Числовые показатели переносите на закладку «Ресурсы» и задавайте выражение итога: Сумма(Сумма), Количество(Различные Регистратор).

Долю или средний чек считайте вычисляемым полем, а итог для него — отдельным выражением ресурса. Пример ресурса «Средний чек»:

ВЫБОР
	КОГДА Сумма(ЧислоДокументов) = 0 ТОГДА 0
	ИНАЧЕ Сумма(Сумма) / Сумма(ЧислоДокументов)
КОНЕЦ

Проверка на ноль обязательна. Без неё отчёт падает с ошибкой деления на ноль на группировке, где нет документов.

Не суммируйте средние значения. Ресурс «средний чек» как Сумма(СреднийЧек) даёт в итоге бессмыслицу: при двух менеджерах со средним чеком 1 000 и 3 000 ₽ итог покажет 4 000 ₽ вместо реального среднего.

Параметры

На закладке «Параметры» проверьте, что у НачалоПериода и КонецПериода задан тип «Дата» и включена доступность для пользователя. Если в отчёте один параметр периода (тип «Стандартный период»), а в запросе два, свяжите их выражениями &Период.ДатаНачала и &Период.ДатаОкончания.

4. Макет вывода и параметры оформления статистики

Внешний вид отчёта задаётся на закладке «Настройки» СКД. Там же хранится вариант по умолчанию, который видит пользователь при открытии.

Что обычно настраивают:

  • 📊 структуру — группировки строк (менеджер → номенклатура) и колонок (месяцы периода);
  • 📊 выбранные поля — порядок колонок и заголовки;
  • 📊 условное оформление — например, красный цвет для строк, где план выполнен меньше чем на 80%;
  • 📊 другие настройки — заголовок отчёта, вывод отборов, расположение общих итогов.

Формат чисел задавайте в условном оформлении через параметр «Формат»: ЧДЦ=0; ЧГ=3 для рублей без копеек, ЧДЦ=1 для процентов.

Когда нужна закладка «Макеты»

Закладка «Макеты» нужна, если стандартного вывода недостаточно: нестандартная шапка из нескольких строк, объединённые ячейки, фиксированная форма для руководства. Макеты привязываются к группировке или к полю.

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

Варианты отчёта

Если пользователям нужны разные срезы — по менеджерам, по складам, по месяцам — создайте несколько вариантов на закладке «Настройки» вместо нескольких отчётов. В типовых конфигурациях варианты сразу появляются в панели отчётов раздела.

5. Обновление шаблона после выхода нового релиза

Это главный приём, о котором забывают. Заимствованный макет в расширении полностью заменяет типовой. Поставщик выпустил релиз с исправленным запросом — а у вас по-прежнему работает старая схема из расширения.

Поэтому после каждого обновления конфигурации:

  1. Обновите копию базы до нового релиза.
  2. Откройте расширение в Конфигураторе и найдите заимствованный макет.
  3. Сравните его схему с типовой: выгрузите обе схемы в файлы и сравните текст запросов любой программой сравнения.
  4. Перенесите в свою схему изменения поставщика: новые поля, переименованные регистры, исправленные условия.
  5. Или наоборот: возьмите свежую типовую схему и заново внесите в неё свои 3–5 правок. Если правок немного, так быстрее.

Чтобы второй путь занимал минуты, ведите список своих изменений: какие поля добавлены, какие ресурсы, какое условное оформление. Список удобно держать прямо в комментарии к объекту расширения.

Чем меньше вы меняете в заимствованной схеме, тем проще обновление. Новые показатели часто выгоднее вынести в отдельный набор данных и связать с основным, чем переписывать типовой запрос.

После обновления релиза
Выполнено: 0 / 6

6. Ошибки при обновлении шаблона и как их устранить

Большинство сбоев после обновления видны сразу при открытии отчёта или при сохранении расширения. Выберите симптом:

Диагностика: выберите симптом

Ещё одна частая ситуация — расширение загружено в рабочую базу, но изменений нет. Скорее всего, пользователи не перезапускали сеанс: расширение подключается при входе в программу.

7. Проверка и перенос изменений в рабочую базу

Проверку делайте на копии и на реальных данных, а не на пустом периоде.

Как проверить

  1. Запустите копию в режиме отладки (F5 в Конфигураторе).
  2. Сформируйте отчёт за период с известными цифрами — например, прошлый закрытый месяц.
  3. Сверьте итог с независимым источником: оборотно-сальдовой ведомостью или типовым отчётом по тем же данным.
  4. Проверьте граничные случаи: пустой период, один документ, группировку без данных — особенно для вычисляемых полей с делением.
  5. Сформируйте отчёт за год и замерьте время. Если оно выросло в разы, ищите в запросе соединение без условий или лишний вложенный запрос.

Как перенести

  1. В Конфигураторе откройте Конфигурация → Расширения конфигурации, выделите расширение и сохраните его в файл .cfe через меню «Действия».
  2. В рабочей базе перейдите в Администрирование → Печатные формы, отчеты и обработки → Расширения.
  3. Если расширение уже подключено — выберите его и обновите из файла. Если нет — добавьте из файла.
  4. Проверьте флаг «Безопасный режим». Для отчёта, который только читает данные, его обычно оставляют включённым.
  5. Попросите пользователей перезапустить 1С.

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

Храните каждую версию .cfe с датой и номером релиза в имени файла, например стат_2026-10-07_3.0.xxx.cfe. Если новая версия окажется ошибочной, вы вернёте прошлую за минуту.

Частые вопросы

Можно ли обновить шаблон отчёта без Конфигуратора?
Да, если меняются только группировки, отборы, колонки и оформление. Это делается в форме отчёта через «Настройки» и сохранение своего варианта. Новое поле или расчёт без правки СКД не добавить.
Чем расширение лучше внешнего отчёта?
Расширение подменяет типовой отчёт на месте: пользователи открывают его из привычного раздела. Внешний отчёт .erf — отдельный файл, его подключают как дополнительный отчёт. Для совсем нового отчёта внешний файл проще, для доработки типового удобнее расширение.
Слетят ли правки при обновлении конфигурации?
Нет, расширение остаётся. Но заимствованный макет не получит исправлений поставщика: их нужно перенести вручную после каждого обновления.
Нужно ли выгонять пользователей, чтобы подключить расширение?
Для загрузки расширения в пользовательском режиме монопольный доступ не нужен. Изменения увидят те, кто перезапустит сеанс.
Почему отчёт стал формироваться дольше после доработки?
Чаще всего из-за запроса к таблице регистра без отбора по периоду или из-за вложенного запроса в соединении. Используйте виртуальные таблицы регистров с параметрами периода — они работают быстрее.