Как настроить движение документов по регистрам?
Настройка движения документов по регистрам в 1С — это важная часть проектирования бизнес-логики. Она позволяет отражать изменения в регистрах накопления, бухгалтерии, сведений и расчета при проведении документов. Процесс состоит из нескольких этапов: создание регистра, настройка документа, написание кода проведения и обеспечение корректного взаимодействия.
1. Создание регистра
В конфигураторе:
-
Откройте «Регистр накопления» (или другой нужный тип).
-
Создайте новый регистр, например: РегистрНакопления.Продажи.
-
Укажите:
-
Имя регистратора — тип: Документ.Продажа (или любой другой документ).
-
Ресурсы — значения, которые будут накапливаться (например, Количество, Сумма).
-
Измерения — ключевые параметры (например, Номенклатура, Склад, Контрагент, Дата).
-
Если нужен остаточный регистр — установите флаг "Поддержка остатков".
2. Подключение регистра к документу
Откройте документ, который должен вносить движения в регистр (например, Документ.Продажа).
Перейдите во вкладку "Движения":
-
Нажмите «Добавить» → выберите нужный регистр.
-
Назначьте ему имя: Движения.Продажи.
После этого станет доступен модуль процедуры ОбработкаПроведения.
3. Написание кода в модуле объекта
В модуле объекта документа реализуйте логику создания движения:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Для Каждого ТЧ Из ТаблицаТоваров Цикл
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ТЧ.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ТЧ.Количество;
Движение.Сумма = ТЧ.Сумма;
КонецЦикла;
КонецПроцедуры
В этом коде формируется запись в регистр накопления по каждой строке табличной части документа.
4. Проверка наличия движений и их отражение
Проверьте, чтобы:
-
Регистратор регистра соответствовал типу документа.
-
В конфигурации были включены все нужные свойства (движения, поля).
-
Документ был проведен без ошибок.
Можно дополнительно реализовать проверку остатков, блокировки, отмену проведения:
Если Не Движения.Продажи.Пустой() Тогда
// действия с уже сформированными движениями
КонецЕсли;
5. Использование движений в отчетах
Данные, занесенные в регистр, могут использоваться в:
-
СКД-отчетах.
-
Запросах (через РегистрНакопления.Продажи.Остатки() или Обороты()).
-
Планах и отчетности.
Пример запроса для получения остатков:
ВЫБРАТЬ
Остатки.Номенклатура,
Остатки.Склад,
Остатки.КоличествоОстаток КАК Количество
ИЗ
РегистрНакопления.Продажи.Остатки(
&ДатаКонец,
Номенклатура В &СписокНоменклатуры
) КАК Остатки
6. Проведение и отмена проведения
Чтобы снять движение из регистра при отмене проведения, в документе должна быть возможность «Отменить проведение»:
-
Это делается автоматически, если вы используете встроенные механизмы.
-
При снятии проведения система удалит записи из регистра, связанные с этим документом (по регистратору и дате).
7. Дополнительные возможности
-
Условные движения — можно делать проверку перед добавлением записи, например, если сумма > 0.
-
Аналитика — используйте дополнительные измерения для детализации учета (например, проект, договор, статья бюджета).
-
Виртуальные таблицы — использовать регистры в запросах через .Остатки(), .Обороты() и т.п.
Таким образом, для настройки движения документа по регистрам нужно:
-
Создать нужный регистр.
-
Связать его с документом.
-
Написать логику движения в ОбработкаПроведения.
-
Убедиться в корректности заполнения всех полей.
-
Проверить проводки, отчеты и логику снятия проведения.