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