Доработка отчёта в 1С 8.3: от настроек в форме до правки схемы компоновки

· 9 мин

Содержание

Отчёт в 1С меняют на одном из четырёх уровней. Переставить колонки, добавить отбор и группировку — прямо в форме отчёта через Настройки → Расширенный вид. Добавить вычисляемую колонку или условное оформление — в конструкторе варианта, там же. Взять поле из другой таблицы или переписать запрос — правкой схемы компоновки данных (СКД) в конфигураторе или расширении. Подключить готовую доработку со стороны — через внешний отчёт.

Выбор уровня зависит от задачи. Около восьми из десяти «хочу изменить отчёт» закрываются настройками без единой строки кода: пользователь сам настраивает вид, фильтры и сортировку. Программировать приходится, только когда в типовом отчёте нет нужного поля или логики — тогда дорабатывают схему компоновки или пишут внешний отчёт. Ниже — каждый способ с точными путями меню для интерфейса «Такси» на платформе 8.3.

Какой способ изменения выбрать

Прежде чем лезть в конфигуратор, проверьте, нельзя ли получить нужный вид обычными настройками. В 90% случаев можно — а правка типовой конфигурации лишает базу автоматического обновления по тем объектам, которые вы изменили.

Что именно нужно сделать с отчётом?

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

Настройки отчёта прямо в форме — без программирования

Откройте любой стандартный отчёт (например, Отчеты → Стандартные отчеты → Оборотно-сальдовая ведомость). В верхней командной панели есть кнопка Настройки. По умолчанию открывается простой вид — пара полей и период. Чтобы получить полный доступ, переключите вид настроек на расширенный: в форме настроек есть переключатель Простой / Расширенный вид (в части отчётов — кнопка Ещё → Прочее → Изменить вариант отчёта).

В расширенном виде появляются вкладки:

  • 🔎 Отбор — условия, по которым отчёт отсекает лишние строки. Добавьте поле, выберите вид сравнения (Равно, В списке, Больше) и значение.
  • 🧱 Структура — группировки и их вложенность. Здесь отчёт превращают из плоского списка в дерево: например, «Номенклатура» внутри «Склада».
  • 📊 Поля и сортировки — какие колонки выводить, в каком порядке, по какому полю сортировать.
  • 🎨 Оформление (условное оформление) — подсветка строк по условию: отрицательный остаток красным, просрочка жёлтым.

Настроив вид, нажмите Завершить редактирование, затем Сформировать. Чтобы не настраивать заново каждый раз, сохраните вид как отдельный вариант: Ещё → Варианты отчёта → Сохранить вариант отчёта, задайте имя. Вариант будет виден только вам, пока вы не откроете к нему доступ другим пользователям в том же окне.

Кнопка Ещё (три точки или надпись «Ещё» в правой части панели) — главный вход во все расширенные действия с отчётом. Если не находите нужную команду в основной панели, она почти наверняка там.

Вычисляемые колонки и условное оформление в конструкторе

Конструктор варианта отчёта — это те же вкладки настроек, открытые на полную. Две вещи, ради которых в него заходят чаще всего, — пользовательское поле и подсветка.

Пользовательское поле-выражение. Нужна колонка, которой в отчёте нет, но её можно посчитать из существующих. На вкладке полей (или через Ещё → Изменить вариант отчёта → Пользовательские поля) добавьте Новое поле выражение. В формуле используйте уже доступные поля отчёта и арифметику: умножение, сложение, функции. Например, наценку считают выражением вида Цена - Себестоимость, а долю — делением с умножением на 100.

Поле-выбор — вторая разновидность пользовательского поля. Оно подставляет значение по условию, как ВЫБОР … КОГДА … ТОГДА в запросе: например, помечает строки «Дорого» и «Дёшево» в зависимости от суммы.

Условное оформление. На вкладке оформления задайте условие (Остаток < 0) и формат (цвет текста, фон, шрифт). Укажите, к каким полям и строкам применять. Один отчёт может нести несколько правил оформления — они срабатывают в порядке сверху вниз.

Эти изменения не трогают конфигурацию: они хранятся в варианте отчёта и переносятся между базами выгрузкой настроек.

Правка схемы компоновки данных в конфигураторе и расширении

Когда нужного поля нет в самом отчёте, настройками его не добыть — источник данных задаётся в схеме компоновки данных. Это макет внутри объекта «Отчёт», где описано, откуда отчёт берёт данные.

Порядок работы в конфигураторе:

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

Для доработки типовой конфигурации правильный путь — расширение, а не изменение основной конфигурации:

  1. Конфигурация → Расширения конфигурации, создайте расширение (назначение «Адаптация»).
  2. Добавьте в него нужный отчёт командой заимствования, затем заимствуйте макет схемы компоновки.
  3. Правьте схему в расширении. Исходный отчёт остаётся нетронутым, обновления типовой конфигурации продолжают применяться.

Расширения конфигурации работают с платформы 8.3.6 и новее. После внесения изменений выполните Конфигурация → Обновить конфигурацию базы данных (F7) — до этого правки не вступят в силу. Загрузка готового файла расширения (.cfe) и обновление базы данных — два отдельных шага.

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

Отдельная вкладка Вычисляемые поля в схеме компоновки нужна для полей, которые нельзя получить запросом к базе: суммы по условию, курсы, обращение к общим модулям. В отличие от пользовательского поля-выражения (оно живёт в варианте и доступно пользователю), вычисляемое поле схемы задаёт разработчик, и оно есть во всех вариантах отчёта. На вкладке Ресурсы настраивают, как сворачиваются числовые поля в итогах — сумма, максимум, среднее. Если после доработки итоговая строка считается неверно, проверяют в первую очередь ресурсы.

Внешние отчёты: доработка без правки конфигурации

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

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

Подключить внешний отчёт в рабочую базу можно двумя путями:

  • Через механизм дополнительных отчётов (требует «Библиотеки стандартных подсистем»): Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки, кнопка Создать, выбрать файл .erf. Отчёт появится у пользователей в списке дополнительных и не требует прав конфигуратора при каждом запуске.
  • Открытием файла: Файл → Открыть в режиме «Предприятие» и выбрать .erf. Способ разовый — для проверки или редкого запуска.

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

У внешнего отчёта есть ограничение совместимости: он должен поддерживать режим совместимости не выше, чем у базы, и опираться только на те объекты конфигурации, что в базе есть. Отчёт, написанный под другую конфигурацию (скажем, под «Управление торговлей»), в «Бухгалтерии» обратится к несуществующим таблицам и не запустится. Поэтому универсальных внешних отчётов «на любую 1С» не бывает — их делают под конкретную конфигурацию или на универсальных источниках вроде запроса к произвольной таблице.

Производительность доработанного отчёта

После доработки отчёт иногда начинает «думать» минутами. Причина почти всегда в запросе набора данных, а не в настройках вывода.

Что проверить, если отчёт стал медленным:

  • 🧩 Соединения таблиц. Лишнее соединение с большим регистром или левое соединение без отбора — главный источник тормозов. Соединяйте по индексируемым полям.
  • 🗓 Отбор по периоду передавайте в параметры виртуальной таблицы (в скобках после имени таблицы остатков/оборотов), а не фильтруйте уже выбранные строки условием в настройках. Виртуальная таблица отберёт данные на уровне СУБД — это в разы быстрее.
  • 🔁 Подзапросы в полях. Вычисление через вложенный запрос на каждую строку — частая причина, по которой отчёт на тысяче строк работает минуту.
  • 📉 Объём данных. Если отчёт строят за год по всей номенклатуре, разумно заранее сузить период или добавить обязательный отбор.

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

Частые ошибки при изменении отчёта

  • Правят основную конфигурацию вместо расширения. База снимается с поддержки по изменённым объектам, и типовое обновление перестаёт их трогать. Почти всё, что делают с отчётом, выражается расширением.
  • Забывают обновить конфигурацию базы данных. Изменили схему в конфигураторе, но не нажали F7 — в режиме «Предприятие» отчёт остаётся прежним.
  • Ищут поле в настройках, когда его нет в запросе. Настройки показывают только то, что отдаёт набор данных. Нет поля в схеме — добавлять надо на уровне запроса, а не на вкладке полей.
  • Теряют вариант отчёта. Настроили вид, но не сохранили вариант — при следующем открытии отчёт вернётся к стандартному. Сохраняйте через Ещё → Варианты отчёта.
  • Путают пользовательские настройки и вариант. Пользовательские настройки — быстрые фильтры поверх варианта. Структуру (группировки, поля) меняет именно вариант, а не пользовательские настройки.
Перед тем как менять отчёт
Выполнено: 0 / 6

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

Чем отличается изменить вариант отчёта от пользовательских настроек?
Вариант отчёта задаёт структуру: какие поля, группировки и оформление выводятся. Пользовательские настройки — это быстрые фильтры поверх варианта (период, организация, отбор), которые пользователь меняет при каждом запуске. Переставить колонки или добавить группировку — это правка варианта, а не пользовательских настроек.
Нужен ли программист, чтобы изменить отчёт?
Чаще нет. Отбор, группировки, сортировка, условное оформление и даже вычисляемые колонки настраиваются прямо в форме отчёта без кода. Программист нужен, только когда требуется поле, которого нет в схеме компоновки, или логика, невыразимая настройками.
Сохранятся ли мои изменения отчёта после обновления 1С?
Пользовательские варианты и настройки — да, они хранятся в базе отдельно от конфигурации. Правка самой конфигурации — нет, обновление может её перезаписать или снять базу с поддержки по изменённым объектам. Поэтому доработки делают в расширении.
Как перенести настроенный отчёт в другую базу?
Сохраните вариант отчёта, затем выгрузите его через стандартный механизм обмена настройками (Ещё → Варианты отчёта, функции сохранения/загрузки настроек). Внешний отчёт переносят просто файлом .erf.
Где взять новое поле, если его нет в списке настроек?
В схеме компоновки данных отчёта. Поле появляется в настройках только после того, как оно добавлено в запрос набора данных в конфигураторе или расширении. Настройками новое поле из другой таблицы не вытащить.