Как настроить отражение проводок в регламентированном учете сразу при проведении документа в 1С:Комплексная автоматизация 2.4?

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

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

Причины разделения оперативного и регламентированного учета

Проанализируем причины, по которым 1С вынесла формирование проводок из транзакции проведения документа:

  1. Производительность и отсутствие блокировок: Исключение тяжелых расчетов бухгалтерского учета из транзакции проведения позволяет операторам и менеджерам быстро вносить первичку без взаимных блокировок таблиц базы данных.
  2. Зависимость от отложенных расчетов: Итоговые суммовые оценки по многим операциям (расчет себестоимости списания номенклатуры, распределение косвенных расходов, расчет партий и курсовых разниц) формируются в окончательном виде только в рамках процедур закрытия месяца.
  3. Разделение контуров работы: Ввод документов производят сотрудники оперативных служб, от которых не требуется квалификация бухгалтера и знание плана счетов.

Способ 1. Включение опции «Отражать в учете при открытии»

Рассмотрим самый простой штатный вариант, не требующий вмешательства в программный код. В форме просмотра проводок регламентированного учета предусмотрена специальная настройка.

  1. Откроем проводимый документ и перейдем по кнопке Проводки регламентированного учета (или гиперссылке status-отражения).
  2. В верхней части открывшейся формы установим флаг Отражать в учете при открытии.
  3. После этого при каждом открытии окна проводок программа автоматически выполнит процедуру отражения документа в регламентированном учете.

Способ 2. Сокращение интервала регламентного задания

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

  1. Перейдем в раздел НСИ и администрирование — Обслуживание — Регламентные и фоновые задания.
  2. Найдем задание Отражение документов в регламентированном учете.
  3. Настроим расписание выполнения с минимальным интервалом (например, каждые 30 секунд).

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

Способ 3. Программная доработка автоматического отражения при проведении

Разберем ситуацию, когда требуется жестко привязать вызов процедуры формирования проводок к транзакции записи/проведения документа. Для этого можно внести доработку в общий модуль через расширение конфигурации.

Проанализируем пример кода для процедуры ПослеЗаписиНаСервере в модуле ОбщийМодуль.МодификацияКонфигурацииПереопределяемый:


// Автоматическое отражение в регламентированном учете при проведении документа
Если ПараметрыЗаписи.Свойство("РежимЗаписи") Тогда
    Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение 
        И Метаданные.Обработки.ОтражениеДокументовВРеглУчете.Команды.ПроводкиРеглУчета.ТипПараметраКоманды.СодержитТип(ТипЗнч(ТекущийОбъект.Ссылка))
    Тогда
        // Проверим, что по документу есть запись в регистре в статусе "К отражению"
        мЗаписи = РегистрыСведений.ОтражениеДокументовВРеглУчете.СоздатьНаборЗаписей();
        мЗаписи.Отбор.Регистратор.Установить(ТекущийОбъект.Ссылка);
        мЗаписи.Прочитать();
        Для каждого мЗапись Из мЗаписи Цикл
            Если мЗапись.Статус = Перечисления.СтатусыОтраженияДокументовВРеглУчете.КОтражениюВРеглУчете Тогда
                СтруктураРеквизиты = Новый Структура("Ссылка, Дата, Организация", ТекущийОбъект.Ссылка, ТекущийОбъект.Дата, Неопределено);
                РеглУчетПроведениеСервер.ОтразитьДокумент(СтруктураРеквизиты, Истина);
            КонецЕсли;
            Прервать;
        КонецЦикла;
    КонецЕсли;
КонецЕсли;

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

← На главную