К статье
Практический материал

Отчеты и Аналитика · 12 мин

Как добавить регистратор в отчет 1С

Разбираем, как добавить регистратор в отчет 1С на СКД: настройка запроса, связей наборов данных, вывода документа-регистратора и расшифровки.

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

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

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

Что такое регистратор и когда он нужен в отчете

Регистратор — это ссылка на документ, который создал движение по регистру. В таблицах регистров накопления и сведений (подчиненных регистратору) это служебное поле присутствует всегда, даже если в отчете оно не выводится. Поэтому технически «добавить регистратор» означает не создать данные, а достать уже существующее поле и показать его пользователю.

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

Как понять, на чем построен отчет

Перед доработкой определите механизм отчета. Откройте отчет в режиме 1С:Предприятие и посмотрите на кнопку «Изменить вариант» или «Настройки»: если она есть и открывает форму с вкладками «Отбор», «Группировка», «Поля» — отчет на СКД, и у вас есть шанс решить задачу без конфигуратора. Если настроек нет или они минимальны — вероятно, вывод запрограммирован вручную.

В конфигураторе проверка еще проще: найдите отчет в дереве конфигурации и посмотрите, есть ли у него макет типа «Схема компоновки данных» (обычно называется «ОсновнаяСхемаКомпоновкиДанных»). Его наличие подтверждает, что доработка пойдет через СКД.

Есть кнопка «Изменить вариант»Отчет на СКД

Попробуйте добавить регистратор через пользовательские настройки

Настройки недоступны или пустыеПрограммный вывод

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

Отчет типовой, конфигурация на поддержкеИзменение ограничено

Используйте расширение конфигурации или внешний отчет

Добавление регистратора через настройки СКД без конфигуратора

Сначала попробуйте самый простой путь. Откройте отчет, нажмите «Изменить вариант» (или «Настройки» → «Расширенные») и перейдите на вкладку «Поля» или «Группировка». Если в списке доступных полей есть «Регистратор» — просто перетащите его в выбранные поля или добавьте группировку по этому полю. После нажатия «Сформировать» в отчете появится колонка с документами.

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

Порядок действий в пользовательском режиме
  1. 1
    Откройте отчет и нажмите «Изменить вариант»
  2. 2
    Перейдите на вкладку «Поля» и найдите «Регистратор» в доступных полях
  3. 3
    Добавьте поле в структуру отчета или создайте группировку по нему
  4. 4
    Сформируйте отчет и проверьте, что документы выводятся и открываются двойным кликом
  5. 5
    Сохраните вариант отчета, чтобы настройка не потерялась

Добавление регистратора в запрос набора данных

Основной сценарий доработки: откройте конфигуратор, найдите отчет и откройте его основную схему компоновки данных. На вкладке «Наборы данных» откройте запрос. Если данные берутся из виртуальной таблицы регистра (например, ТоварыНаСкладах.ОстаткиИОбороты), добавьте в выборку поле Регистратор — оно доступно в виртуальных таблицах Обороты и ОстаткиИОбороты.

Пример фрагмента запроса:

ВЫБРАТЬ

ТоварыОбороты.Номенклатура КАК Номенклатура,

ТоварыОбороты.Регистратор КАК Регистратор,

СУММА(ТоварыОбороты.КоличествоОборот) КАК Количество

ИЗ

РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ТоварыОбороты

СГРУППИРОВАТЬ ПО

ТоварыОбороты.Номенклатура,

ТоварыОбороты.Регистратор

Обратите внимание на третий параметр виртуальной таблицы — периодичность. Чтобы поле Регистратор было доступно, укажите значение «Регистратор» или «Запись» (в зависимости от таблицы). Если оставить периодичность «Авто» или «Месяц», платформа не вернет регистраторы, и поле в запросе вызовет ошибку или останется пустым.

После изменения запроса перейдите на вкладку «Настройки» схемы компоновки: добавьте группировку по Регистратору под нужной группировкой (например, под Номенклатурой) или включите поле в выбранные поля детальных записей. Обновите конфигурацию базы данных, если меняли структуру, и сформируйте отчет для проверки.

Если данные собираются из нескольких наборов

В сложных отчетах данные объединяются из нескольких наборов данных со связями. Тогда регистратор нужно добавить в каждый набор, а на вкладке «Связи наборов данных» добавить связь по полю Регистратор. Без связи СКД перемножит строки, и в отчете появятся дубли с неверными суммами — это самая частая ошибка при такой доработке.

Настройка расшифровки до документа

Вывести колонку с регистратором — половина задачи. Чтобы пользователь мог открыть документ из ячейки отчета, СКД обычно справляется сама: если в поле выводится ссылка на документ, двойной клик по ячейке открывает его форму стандартной расшифровкой. Проверьте, что в настройках поля не отключен параметр «Расшифровка».

Если нужна расшифровка одного отчета другим (например, из оборотной ведомости — в карточку счета с регистраторами), настройте это на вкладке «Настройки» схемы компоновки в поле «Расшифровка» у группировки, либо обработайте событие ОбработкаРасшифровки в модуле формы отчета. Для типовых конфигураций часто проще использовать универсальный отчет, где детализация до регистратора включается настройкой.

Альтернативы: универсальный отчет и расширение конфигурации

Если дорабатывать типовой отчет нельзя или нецелесообразно, рассмотрите готовые альтернативы. В конфигурациях на БСП (Библиотека стандартных подсистем) есть «Универсальный отчет»: выберите в нем нужный регистр, укажите периодичность «Регистратор» — и получите данные с документами без всякой разработки. Это быстрый способ проверить, какие регистраторы формируют конкретные обороты.

Второй вариант — расширение конфигурации. Оно позволяет заимствовать типовой отчет, изменить его схему компоновки и не затрагивать основную конфигурацию. При обновлении типовой версии расширение сохранится, хотя его корректность после обновления нужно проверять. Третий путь — внешний отчет (файл .erf), который подключается через «Дополнительные отчеты и обработки» и вообще не влияет на конфигурацию.

Сравнение вариантов

Пользовательские настройки

Подходит, если поле Регистратор уже есть в наборе данных. Ограничение: не работает, когда поле скрыто разработчиком

Доработка в конфигураторе

Полный контроль над запросом и структурой. Ограничение: снимает объект с поддержки, требует прав разработчика

Расширение конфигурации

Сохраняет поддержку типовой конфигурации. Ограничение: требует проверки после каждого обновления

Универсальный отчет

Быстро и без доработок. Ограничение: простая структура, нет сложных связей и оформления

Проверка результата и типичные ошибки

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

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

Типичные ошибки
01
Не указана периодичность «Регистратор» в параметрах виртуальной таблицы — поле недоступно или пустое
02
Добавлен регистратор во второй набор данных без связи — строки перемножаются, суммы задваиваются
03
Поле добавлено в запрос, но не включено в настройки СКД — в отчете колонки нет
04
Группировка по регистратору размещена выше группировки по измерению — структура отчета становится нечитаемой
05
Изменен типовой отчет напрямую — конфигурация снята с поддержки, обновления требуют ручного сравнения

Ограничения и границы самостоятельной работы

Самостоятельно безопасно делать три вещи: менять пользовательские настройки варианта отчета, строить универсальный отчет и работать с внешним отчетом в копии базы. Эти действия не затрагивают данные и легко откатываются.

К доработке в конфигураторе и расширениям переходите, если понимаете устройство СКД и имеете резервную копию. Риск здесь не в порче данных (отчеты данные не меняют), а в неверных цифрах, по которым примут решение: задвоенные суммы в отчете по продажам могут привести к ошибкам в управленческом учете. Если отчет используется для регламентированной отчетности, любую доработку проверяйте на тестовой базе и сверяйте с эталонными данными.

Итог

Что важно запомнить

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

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

Почему поле «Регистратор» не появляется в списке доступных полей настройки?

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

Можно ли добавить регистратор в отчет по регистру сведений?

Да, но только если регистр сведений подчинен регистратору (режим записи «Подчинение регистратору»). У независимых регистров сведений поля Регистратор нет в принципе — записи туда вносятся напрямую или обработками, и привязать их к документу невозможно.

Добавил регистратор, и суммы в отчете удвоились. Что делать?

Классический признак перемножения строк. Проверьте, нет ли в запросе соединения с таблицей, где одному регистратору соответствует несколько строк (например, с табличной частью документа). Если наборов данных несколько — откройте вкладку «Связи наборов данных» и добавьте связь по полю Регистратор.

Как открыть документ-регистратор прямо из ячейки отчета?

Если в ячейке выводится ссылка на документ, двойной клик обычно открывает его форму через стандартную расшифровку СКД. Если вместо этого появляется меню расшифровки — выберите пункт «Открыть». Когда открытие не работает, проверьте, что поле имеет тип ссылки, а не строковое представление документа.

Изменится ли типовой отчет после обновления конфигурации?

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

Нужен ли регистратор в отчете, где показываются только остатки?

Нет, и технически это невозможно: таблица остатков хранит свернутые значения без привязки к документам. Если нужно понять, какие документы сформировали остаток, используйте виртуальную таблицу ОстаткиИОбороты с периодичностью «Регистратор» или стройте отчет по физической таблице движений регистра.