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