Как программно отразить документы в регламентированном учете 1С:ERP?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Бухгалтерский учет IT и автоматизация бизнеса
← На главную

В типовых конфигурациях на платформе «1С:Предприятие 8.3», таких как «1С:ERP Управление предприятием» и «1С:Комплексная автоматизация 2», механизм формирования бухгалтерских проводок принципиально отличается от классической схемы «1С:Бухгалтерии». При обычном проведении документ не формирует проводок в регистре бухгалтерии Хозрасчетный, а делает движения только по оперативным регистрам накопления и регистрируется к обработке. Разберем, как программно запустить механизм формирования проводок для одного документа или целого массива данных.

Архитектура регламентированного учета в 1С:ERP

Прежде чем переходить к программному коду, проанализируем, как устроен механизм отражения изнутри:

  1. Разделение контуров: В момент оперативного проведения документ формирует запись в регистре сведений ОтражениеДокументовВРеглУчете со статусом «К отражению в регл. учете».
  2. Формирование проводок: Проводки по регистру бухгалтерии Хозрасчетный формируются отдельным процессом на основе правил из регистра сведений ПорядокОтраженияНаСчетахУчета (настройки групп финансового учета — ГФУ). Логика получения данных вынесена в модуль менеджера документов в процедуры и функции ДанныеДокументаДляПроведения и ТекстОтраженияВРеглУчете.
  3. Опасность ручных проводок: Если попытаться вручную записать набор записей регистра Хозрасчетный в модуле объекта документа, эти проводки будут полностью перезаписаны при первом же регламентном отражении, если у набора записей не выставлен признак РучнаяКорректировка = Истина.

Программное отражение одного документа

Рассмотрим, как точечно отразить конкретный документ с помощью типового общего модуля РеглУчетПроведениеСервер. Для этой задачи предназначена процедура ОтразитьДокумент.

Посмотрим на пример вызова:


ПараметрыДокумента = Новый Структура;
ПараметрыДокумента.Вставить("Ссылка", СсылкаНаДокумент);
ПараметрыДокумента.Вставить("Дата", СсылкаНаДокумент.Дата);
ПараметрыДокумента.Вставить("Организация", СсылкаНаДокумент.Организация);

ВыполнитьПересчеты = Ложь;

РеглУчетПроведениеСервер.ОтразитьДокумент(ПараметрыДокумента, ВыполнитьПересчеты);

Разберем параметры процедуры подробнее:

  1. ПараметрыДокумента: В качестве первого аргумента можно передать как прямую ссылку на документ (Ссылка), так и структуру с реквизитами документа (Ссылка, Дата, Организация).
  2. ВыполнитьПересчеты: Флаг типа Булево. Если передать Истина, система перед формированием проводок выполнит актуализацию оперативных расчетов (например, взаиморасчетов и партий). Это может существенно увеличить время выполнения операции.

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

Массовое программное отражение документов за период

Если необходимо отразить все накопившиеся документы по организации за определенный период (например, при пакетной загрузке данных или интеграциях), воспользуемся методом ОтразитьВсе из того же модуля РеглУчетПроведениеСервер.

Посмотрим на пример кода:


ДатаКонцаПериода = КонецМесяца(ТекущаяДата());
Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "7701234567");

РеглУчетПроведениеСервер.ОтразитьВсе(ДатаКонцаПериода, Организация);

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

Штатные альтернативы без изменения конфигурации

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

  1. Обработка «Отражение документов в регламентированном учете»: Находится в разделе Регламентированный учет -> Бухгалтерский и налоговый учет. С ее помощью можно отслеживать документы с ошибками настройки счетов и запускать групповое отражение вручную по кнопке.
  2. Автоматическое фоновое задание: В указанной выше обработке можно включить тумблер «Автоматическое отражение по расписанию». Система активирует типовое регламентное задание, которое будет отражать документы в фоновом режиме по мере их проведения пользователями.

Ограничения и возможные риски

Проанализируем важные нюансы, о которых следует помнить при автоматизации отражения:

  1. Блокировки данных: Принудительный вызов отражения в момент проведения документа (например, через подписку на событие ОбработкаПроведения) приводит к росту времени транзакции и увеличивает вероятность взаимоблокировок при одновременной работе пользователей.
  2. Неполнота данных до закрытия месяца: Важно понимать, что ряд проводок (например, списание себестоимости по средневзвешенной оценке, расчет курсовых разниц, корректировка партий) формируется только в процессе регламентных операций процедуры закрытия месяца. Мгновенное отражение сформирует только предварительные проводки, доступные на момент проведения.
← На главную