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