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

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

В практике работы с 1С:ERP часто возникает задача: необходимо провести документ в оперативном (управленческом) контуре, чтобы он изменил остатки на складах или зафиксировал факт перемещения, но при этом документ не должен формировать проводок в бухгалтерском и налоговом учете. Стандартная попытка просто очистить движения в модуле документа часто приводит к тому, что процедура «Закрытие месяца» все равно «видит» документ и пытается отразить его в регламентированном учете. Разберем подробно, почему так происходит и как правильно реализовать подобную доработку.

Почему обычное удаление проводок не помогает?

Проанализируем архитектуру 1С:ERP. В отличие от простых конфигураций, в ERP реализовано отложенное отражение в регламентированном учете. Это означает, что проводки по плану счетов формируются не в момент нажатия кнопки «Провести», а специальным фоновым заданием или в рамках этапа закрытия месяца. Система ориентируется на специальные служебные регистры, которые содержат очередь документов, ожидающих отражения. Если вы просто программно удалите проводки, система зафиксирует расхождение и при очередном запуске регламентных операций создаст их заново.

Шаг 1. Работа с регистром сведений «Отражение документов в регл. учете»

Выясним причину, по которой «Закрытие месяца» находит ваш документ. За это отвечает регистр сведений ОтражениеДокументовВРеглУчете. При проведении любого финансово значимого документа система делает запись в этот регистр со статусом «К отражению».

Чтобы документ игнорировался механизмом закрытия месяца, нам необходимо исключить его из этого регистра или изменить его состояние. Рассмотрим пример кода, который можно разместить в обработке проведения или в подписке на событие ПриЗаписи:


// Пример исключения записи из регистра сведений
НаборЗаписей = РегистрыСведений.ОтражениеДокументовВРеглУчете.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокумент);
НаборЗаписей.Записать(); // Записываем пустой набор, удаляя очередь на отражение

Однако помните, что при перепроведении документа стандартные механизмы могут снова создать эту запись. Поэтому надежнее использовать расширение для модификации логики формирования этой очереди.

Шаг 2. Модификация запроса в модуле менеджера

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

Проанализируем алгоритм действий:

  1. Найдем в модуле менеджера документа (например, ПеремещениеТоваров) процедуру, отвечающую за подготовку данных для формирования проводок.
  2. Используя механизм Расширения, применим префикс &Вместо или &После к процедуре формирования временных таблиц.
  3. Добавим в текст запроса условие, которое будет отсекать документы, если у них установлен ваш новый реквизит (например, флаг НеОтражатьВРеглУчете).

Пример изменения текста запроса в расширении:


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

Шаг 3. Устранение «красноты» в регистрах себестоимости

Это самый критичный момент. Даже если вы отключите проводки, в регистрах накопления (таких как СебестоимостьТоваров или ВыручкаИСебестоимостьПродаж) данные по регламентированному учету все равно могут остаться. В 1С:ERP ресурсы этих регистров часто разделены: Стоимость (УУ) и СтоимостьРегл (БУ/НУ).

Если в регистре накопления зафиксирована СтоимостьРегл, но проводок по счету 10 или 41 нет — вы получите разрыв в отчете «Сверка данных оперативного и регламентированного учета». Разберем, как этого избежать:

  1. При проведении документа необходимо программно обнулять ресурсы, относящиеся к регламентированному учету.
  2. Найдите в модуле документа формирование движений по регистру СебестоимостьТоваров.
  3. Убедитесь, что при установленном флаге «Не отражать в регл. учете» суммы в колонки СтоимостьРегл, НДСРегл, СтоимостьЗатратРегл записываются как 0.

Важно: Если вы оставите количественный учет в БУ, но уберете суммовой, это может привести к ошибкам при расчете себестоимости в конце месяца, так как система не сможет определить стоимость списания для партий, не имеющих оценки в регламентированном контуре.

Методологические альтернативы

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

Использование Управленческой организации

В 1С:ERP можно создать организацию и установить ей признак «Управленческая организация». Документы, оформленные от имени такой организации, отражаются в управленческом балансе, но не попадают в регламентированную отчетность компании. Это наиболее безопасный путь, не требующий вмешательства в программный код.

Настройка Групп финансового учета (ГФУ)

Посмотрим на настройки ГФУ номенклатуры или складов. Для специфических операций (например, учет отходов) можно создать отдельную ГФУ, где в качестве счетов учета будут указаны забалансовые счета (например, счет 003 или специально созданный субсчет). В этом случае документ будет формировать проводки, но они не будут влиять на основные счета баланса и не «раздуют» налогооблагаемую базу.

Риски и последствия ручного вмешательства

Проанализируем возможные проблемы при обновлении и эксплуатации:

Подведем итог: наиболее корректным техническим решением является сочетание очистки регистра ОтражениеДокументовВРеглУчете и обнуления ресурсов СтоимостьРегл в регистрах накопления через механизмы расширений. Однако перед внедрением такой доработки обязательно рассмотрите вариант с использованием функционала «Управленческой организации».

← На главную