При выполнении регламентных операций закрытия месяца в 1С:ERP (включая ошибки по товарам в пути) пользователи нередко сталкиваются с ошибками целостности данных. Одной из наиболее частых является сообщение: Заполнение упр. сумм в движениях не соответствует значению функциональной опции "ВестиУправленческийУчетОрганизаций". Эта ошибка указывает на то, что в движениях документов по регистрам накопления, например, в ПрочиеРасходы или СебестоимостьТоваров, зафиксированы суммы, которые противоречат текущим настройкам системы.
Прежде чем приступать к исправлению, давайте разберемся, почему система выдает такое предупреждение. Чаще всего причина кроется в одном из следующих факторов:
РасчетПартий, РасчетСебестоимости и наличия сумм УУ (управленческого учета) в регистрах.Первым делом нам необходимо выяснить, какой именно документ или какая запись регистра вызывает сбой. Для этого найдем точку в коде, которая генерирует данное сообщение. В типовых конфигурациях 1С:ERP проверка выполняется при закрытии месяца. Проанализируем пример логики проверки, которая используется в механизмах закрытия:
// Проверка соответствия заполненности суммы упр./регл. значениям функциональных опций.
РасшифровкаКодовОшибок = Новый Соответствие;
РасшифровкаКодовОшибок.Вставить(1, НСтр("ru = 'Заполнение упр. сумм в движениях не соответствует значению функциональной опции ""ВестиУправленческийУчетОрганизаций""'"));
// ... дальнейшая логика проверки
Используя отладчик или просмотрев текст запроса, который система использует для выявления некорректных движений, мы сможем получить ссылку на конкретный документ-регистратор, вызвавший проблему.
Часто параллельно с данной проблемой возникают ненулевые остатки по суммам при нулевом количестве. Существует несколько основных подходов к решению данной проблемы. Давайте рассмотрим каждый из них.
Самый правильный с точки зрения логики 1С:ERP способ — это перепроведение документов, сформировавших некорректные движения. Если ошибка вызвана документом Сторно или Приобретение услуг и прочих активов, попробуйте перепровести их. Если период закрыт, может потребоваться временное снятие запрета редактирования данных для корректировки цепочки документов.
В случаях, когда перепроведение не помогает, нам нужно напрямую вмешаться в записи регистра. Ошибка часто связана с тем, что флаги РасчетПартий или РасчетСебестоимости установлены неверно. Посмотрим на структуру запроса, который анализирует некорректные движения:
ВЫБРАТЬ РАЗЛИЧНЫЕ
"СебестоимостьТоваров" КАК ИмяРегистра,
Т.Регистратор КАК Ссылка,
Т.Организация КАК Организация,
1 КАК КодОшибки
ИЗ
РегистрНакопления.СебестоимостьТоваров КАК Т
ГДЕ
Т.Период МЕЖДУ &НачалоПериода И &КонецПериода
И НЕ Т.РасчетПартий // Ошибка часто похожа на отрицательные остатки партий в регистре себестоимости
И НЕ Т.РасчетСебестоимости
Чтобы исправить данные, нам нужно установить корректные значения в поля РасчетПартий или РасчетСебестоимости. Для этого можно воспользоваться внешними обработками — «Консолью кода» или «Портативными инструментами разработчика» (например, 1С:DeveloperTools), которые позволяют редактировать движения документов напрямую.
При работе с регистрами накопления всегда следуйте правилам безопасности:
СуммаУУ и связанные с ним поля. Иногда для решения задачи достаточно сдвинуть дату документа или скорректировать аналитику финансового учета.Если проблема сохраняется, проанализируйте вызовы процедур, подобных РасчетСебестоимостиПрикладныеАлгоритмы.ПерепровестиДокументыПоОтдельнымРегистрамНакопления. Этот метод позволяет точечно пересчитать движения по нужным регистрам, что часто помогает «протолкнуть» зависшее закрытие месяца без глобального перепроведения всей базы.