При выполнении регламентной процедуры «Проведение по партиям» в конфигурациях с классическим партионным учетом (например, «Управление торговлей», редакция 2.2 / 10.3) может возникать критическая ошибка следующего вида:
Ошибка при вызове конструктора (МоментВремени) ДокументМоментВремени = Новый МоментВремени(СтруктураДата.Дата, ОбрабатываемыйДокумент); по причине: Несоответствие типов (параметр номер '1')
Проанализируем техническую причину этой неисправности и разберем по шагам, как правильно восстановить нормальную работу базы данных.
Разберем, почему возникает данное исключение. Конструктор платформы 1С Новый МоментВремени(Дата, Ссылка) строго требует, чтобы первым параметром передавалось значение типа Дата.
Если в информационной базе проводилась свертка (обрезание) или неполное удаление документов, в таблицах последовательности ПартионныйУчет или регистре сведений СписанныеТовары могут остаться «битые ссылки» — записи, указывающие на удаленный документ (отображаются как «Объект не найден»). При попытке алгоритма партионного учета получить дату такого несуществующего документа система возвращает Неопределено или Null. Передача этого значения в конструктор МоментВремени и приводит к аварийному завершению обработки с ошибкой «Несоответствие типов».
Простая ручная корректировка дат напрямую в регистрах накопления (например, в Партии товаров на складах) не решает проблему, так как не удаляет некорректную запись из самой таблицы последовательности.
Самым надежным способом устранения битых ссылок является выполнение штатной процедуры проверки ссылочной целостности в Конфигураторе.
Если дата свертки базы давно прошла (например, свертка делалась по 2015 или 2018 год), а граница последовательности партионного учета слетела на более ранний период, проведение по партиям попытается перепровести документы за несколько лет, что приведет к ошибкам и искажению закрытых периодов.
Для решения этой проблемы сдвинем границу последовательности вручную:
ПартионныйУчет на первый реальный проведённый документ текущего (или актуального) периода.Алгоритмы партионного учета перед расчетом себестоимости анализируют регистр сведений СписанныеТовары. Если в нем присутствуют записи с регистратором «Объект не найден», их необходимо удалить.
СписанныеТовары.Чтобы избежать искажения учета при восстановлении последовательности, придерживаемся следующих правил: