Как настроить движение документов по регистрам?

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

1. Создание регистра

В конфигураторе:

  • Откройте «Регистр накопления» (или другой нужный тип).

  • Создайте новый регистр, например: РегистрНакопления.Продажи.

  • Укажите:

    • Имя регистратора — тип: Документ.Продажа (или любой другой документ).

    • Ресурсы — значения, которые будут накапливаться (например, Количество, Сумма).

    • Измерения — ключевые параметры (например, Номенклатура, Склад, Контрагент, Дата).

Если нужен остаточный регистр — установите флаг "Поддержка остатков".

2. Подключение регистра к документу

Откройте документ, который должен вносить движения в регистр (например, Документ.Продажа).

Перейдите во вкладку "Движения":

  • Нажмите «Добавить» → выберите нужный регистр.

  • Назначьте ему имя: Движения.Продажи.

После этого станет доступен модуль процедуры ОбработкаПроведения.

3. Написание кода в модуле объекта

В модуле объекта документа реализуйте логику создания движения:

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Для Каждого ТЧ Из ТаблицаТоваров Цикл
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ТЧ.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ТЧ.Количество;
Движение.Сумма = ТЧ.Сумма;
КонецЦикла;
КонецПроцедуры

В этом коде формируется запись в регистр накопления по каждой строке табличной части документа.

4. Проверка наличия движений и их отражение

Проверьте, чтобы:

  • Регистратор регистра соответствовал типу документа.

  • В конфигурации были включены все нужные свойства (движения, поля).

  • Документ был проведен без ошибок.

Можно дополнительно реализовать проверку остатков, блокировки, отмену проведения:

Если Не Движения.Продажи.Пустой() Тогда
// действия с уже сформированными движениями
КонецЕсли;

5. Использование движений в отчетах

Данные, занесенные в регистр, могут использоваться в:

  • СКД-отчетах.

  • Запросах (через РегистрНакопления.Продажи.Остатки() или Обороты()).

  • Планах и отчетности.

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

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

6. Проведение и отмена проведения

Чтобы снять движение из регистра при отмене проведения, в документе должна быть возможность «Отменить проведение»:

  • Это делается автоматически, если вы используете встроенные механизмы.

  • При снятии проведения система удалит записи из регистра, связанные с этим документом (по регистратору и дате).

7. Дополнительные возможности

  • Условные движения — можно делать проверку перед добавлением записи, например, если сумма > 0.

  • Аналитика — используйте дополнительные измерения для детализации учета (например, проект, договор, статья бюджета).

  • Виртуальные таблицы — использовать регистры в запросах через .Остатки(), .Обороты() и т.п.

Таким образом, для настройки движения документа по регистрам нужно:

  • Создать нужный регистр.

  • Связать его с документом.

  • Написать логику движения в ОбработкаПроведения.

  • Убедиться в корректности заполнения всех полей.

  • Проверить проводки, отчеты и логику снятия проведения.