Доработка отчёта в 1С 8.3: от настроек в форме до правки схемы компоновки
Содержание
Отчёт в 1С меняют на одном из четырёх уровней. Переставить колонки, добавить отбор и группировку — прямо в форме отчёта через Настройки → Расширенный вид. Добавить вычисляемую колонку или условное оформление — в конструкторе варианта, там же. Взять поле из другой таблицы или переписать запрос — правкой схемы компоновки данных (СКД) в конфигураторе или расширении. Подключить готовую доработку со стороны — через внешний отчёт.
Выбор уровня зависит от задачи. Около восьми из десяти «хочу изменить отчёт» закрываются настройками без единой строки кода: пользователь сам настраивает вид, фильтры и сортировку. Программировать приходится, только когда в типовом отчёте нет нужного поля или логики — тогда дорабатывают схему компоновки или пишут внешний отчёт. Ниже — каждый способ с точными путями меню для интерфейса «Такси» на платформе 8.3.
Какой способ изменения выбрать
Прежде чем лезть в конфигуратор, проверьте, нельзя ли получить нужный вид обычными настройками. В 90% случаев можно — а правка типовой конфигурации лишает базу автоматического обновления по тем объектам, которые вы изменили.
Настройки → Расширенный вид, вкладка «Поля и сортировки». Код не нужен.== Любую доработку типовой конфигурации делайте в расширении, а не правкой самого отчёта: так база сохранит автообновление. == Прямую правку конфигурации оставьте для нетиповых баз, которые и так сняты с поддержки.
Настройки отчёта прямо в форме — без программирования
Откройте любой стандартный отчёт (например, Отчеты → Стандартные отчеты → Оборотно-сальдовая ведомость). В верхней командной панели есть кнопка Настройки. По умолчанию открывается простой вид — пара полей и период. Чтобы получить полный доступ, переключите вид настроек на расширенный: в форме настроек есть переключатель Простой / Расширенный вид (в части отчётов — кнопка Ещё → Прочее → Изменить вариант отчёта).
В расширенном виде появляются вкладки:
- 🔎 Отбор — условия, по которым отчёт отсекает лишние строки. Добавьте поле, выберите вид сравнения (
Равно,В списке,Больше) и значение. - 🧱 Структура — группировки и их вложенность. Здесь отчёт превращают из плоского списка в дерево: например, «Номенклатура» внутри «Склада».
- 📊 Поля и сортировки — какие колонки выводить, в каком порядке, по какому полю сортировать.
- 🎨 Оформление (условное оформление) — подсветка строк по условию: отрицательный остаток красным, просрочка жёлтым.
Настроив вид, нажмите Завершить редактирование, затем Сформировать. Чтобы не настраивать заново каждый раз, сохраните вид как отдельный вариант: Ещё → Варианты отчёта → Сохранить вариант отчёта, задайте имя. Вариант будет виден только вам, пока вы не откроете к нему доступ другим пользователям в том же окне.
Кнопка Ещё (три точки или надпись «Ещё» в правой части панели) — главный вход во все расширенные действия с отчётом. Если не находите нужную команду в основной панели, она почти наверняка там.
Вычисляемые колонки и условное оформление в конструкторе
Конструктор варианта отчёта — это те же вкладки настроек, открытые на полную. Две вещи, ради которых в него заходят чаще всего, — пользовательское поле и подсветка.
Пользовательское поле-выражение. Нужна колонка, которой в отчёте нет, но её можно посчитать из существующих. На вкладке полей (или через Ещё → Изменить вариант отчёта → Пользовательские поля) добавьте Новое поле выражение. В формуле используйте уже доступные поля отчёта и арифметику: умножение, сложение, функции. Например, наценку считают выражением вида Цена - Себестоимость, а долю — делением с умножением на 100.
Поле-выбор — вторая разновидность пользовательского поля. Оно подставляет значение по условию, как ВЫБОР … КОГДА … ТОГДА в запросе: например, помечает строки «Дорого» и «Дёшево» в зависимости от суммы.
Условное оформление. На вкладке оформления задайте условие (Остаток < 0) и формат (цвет текста, фон, шрифт). Укажите, к каким полям и строкам применять. Один отчёт может нести несколько правил оформления — они срабатывают в порядке сверху вниз.
Эти изменения не трогают конфигурацию: они хранятся в варианте отчёта и переносятся между базами выгрузкой настроек.
Правка схемы компоновки данных в конфигураторе и расширении
Когда нужного поля нет в самом отчёте, настройками его не добыть — источник данных задаётся в схеме компоновки данных. Это макет внутри объекта «Отчёт», где описано, откуда отчёт берёт данные.
Порядок работы в конфигураторе:
- Откройте конфигуратор (
Конфигурация → Открыть конфигурацию). Для доработки типового отчёта база должна быть на поддержке с возможностью изменения либо, что правильнее, используйте расширение. - Найдите отчёт в дереве: ветка
Отчеты, нужный объект, узелМакеты, элементОсновнаяСхемаКомпоновкиДанных. - Откроется конструктор СКД с вкладками
Наборы данных,Связи наборов данных,Вычисляемые поля,Ресурсы,Параметры,Настройки. - На вкладке
Наборы данныхлежит запрос. Его правят конструктором запроса (Конструктор запросав командной панели набора) или руками на языке запросов 1С — добавляют поле из нужной таблицы, при необходимости новое соединение. - Новое поле добавьте в список полей набора, затем в
Настройки— в выводимые поля варианта.
Для доработки типовой конфигурации правильный путь — расширение, а не изменение основной конфигурации:
Конфигурация → Расширения конфигурации, создайте расширение (назначение «Адаптация»).- Добавьте в него нужный отчёт командой заимствования, затем заимствуйте макет схемы компоновки.
- Правьте схему в расширении. Исходный отчёт остаётся нетронутым, обновления типовой конфигурации продолжают применяться.
Расширения конфигурации работают с платформы 8.3.6 и новее. После внесения изменений выполните Конфигурация → Обновить конфигурацию базы данных (F7) — до этого правки не вступят в силу. Загрузка готового файла расширения (.cfe) и обновление базы данных — два отдельных шага.
Язык запросов 1С здесь — основной инструмент: именно запросом в наборе данных определяется, какие таблицы соединяются и какие поля доступны отчёту. Если в запросе нет поля, никакими настройками оно в отчёте не появится.
Отдельная вкладка Вычисляемые поля в схеме компоновки нужна для полей, которые нельзя получить запросом к базе: суммы по условию, курсы, обращение к общим модулям. В отличие от пользовательского поля-выражения (оно живёт в варианте и доступно пользователю), вычисляемое поле схемы задаёт разработчик, и оно есть во всех вариантах отчёта. На вкладке Ресурсы настраивают, как сворачиваются числовые поля в итогах — сумма, максимум, среднее. Если после доработки итоговая строка считается неверно, проверяют в первую очередь ресурсы.
Внешние отчёты: доработка без правки конфигурации
Внешний отчёт — отдельный файл .erf, который не хранится внутри конфигурации. Его удобно использовать, когда менять типовую базу нежелательно, а отчёт нужен нестандартный.
Создают внешний отчёт в конфигураторе: Файл → Новый → Внешний отчёт. Внутри — та же схема компоновки данных и тот же конструктор, что у встроенного отчёта. Готовый файл сохраняют и передают пользователям.
Подключить внешний отчёт в рабочую базу можно двумя путями:
- Через механизм дополнительных отчётов (требует «Библиотеки стандартных подсистем»):
Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки, кнопкаСоздать, выбрать файл.erf. Отчёт появится у пользователей в списке дополнительных и не требует прав конфигуратора при каждом запуске. - Открытием файла:
Файл → Открытьв режиме «Предприятие» и выбрать.erf. Способ разовый — для проверки или редкого запуска.
== Внешние отчёты из непроверенных источников не открывайте: файл .erf содержит исполняемый код и может навредить базе. == Запускайте только то, что получено от своего программиста или проверенного поставщика.
У внешнего отчёта есть ограничение совместимости: он должен поддерживать режим совместимости не выше, чем у базы, и опираться только на те объекты конфигурации, что в базе есть. Отчёт, написанный под другую конфигурацию (скажем, под «Управление торговлей»), в «Бухгалтерии» обратится к несуществующим таблицам и не запустится. Поэтому универсальных внешних отчётов «на любую 1С» не бывает — их делают под конкретную конфигурацию или на универсальных источниках вроде запроса к произвольной таблице.
Производительность доработанного отчёта
После доработки отчёт иногда начинает «думать» минутами. Причина почти всегда в запросе набора данных, а не в настройках вывода.
Что проверить, если отчёт стал медленным:
- 🧩 Соединения таблиц. Лишнее соединение с большим регистром или левое соединение без отбора — главный источник тормозов. Соединяйте по индексируемым полям.
- 🗓 Отбор по периоду передавайте в параметры виртуальной таблицы (в скобках после имени таблицы остатков/оборотов), а не фильтруйте уже выбранные строки условием в настройках. Виртуальная таблица отберёт данные на уровне СУБД — это в разы быстрее.
- 🔁 Подзапросы в полях. Вычисление через вложенный запрос на каждую строку — частая причина, по которой отчёт на тысяче строк работает минуту.
- 📉 Объём данных. Если отчёт строят за год по всей номенклатуре, разумно заранее сузить период или добавить обязательный отбор.
На сервере тяжёлый отчёт диагностируют через технологический журнал и замер времени запроса. Без доступа к серверу ориентир проще: сравните время с отбором за один день и за год — резкий рост почти всегда означает, что отбор по периоду не доходит до виртуальной таблицы.
Частые ошибки при изменении отчёта
- Правят основную конфигурацию вместо расширения. База снимается с поддержки по изменённым объектам, и типовое обновление перестаёт их трогать. Почти всё, что делают с отчётом, выражается расширением.
- Забывают обновить конфигурацию базы данных. Изменили схему в конфигураторе, но не нажали F7 — в режиме «Предприятие» отчёт остаётся прежним.
- Ищут поле в настройках, когда его нет в запросе. Настройки показывают только то, что отдаёт набор данных. Нет поля в схеме — добавлять надо на уровне запроса, а не на вкладке полей.
- Теряют вариант отчёта. Настроили вид, но не сохранили вариант — при следующем открытии отчёт вернётся к стандартному. Сохраняйте через
Ещё → Варианты отчёта. - Путают пользовательские настройки и вариант. Пользовательские настройки — быстрые фильтры поверх варианта. Структуру (группировки, поля) меняет именно вариант, а не пользовательские настройки.
Частые вопросы
Чем отличается изменить вариант отчёта от пользовательских настроек?
Нужен ли программист, чтобы изменить отчёт?
Сохранятся ли мои изменения отчёта после обновления 1С?
Как перенести настроенный отчёт в другую базу?
Ещё → Варианты отчёта, функции сохранения/загрузки настроек). Внешний отчёт переносят просто файлом .erf.