Как исправить ошибку «Несоответствие типов» при проведении по партиям в 1С?

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

При выполнении регламентной процедуры «Проведение по партиям» в конфигурациях с классическим партионным учетом (например, «Управление торговлей», редакция 2.2 / 10.3) может возникать критическая ошибка следующего вида:

Ошибка при вызове конструктора (МоментВремени) ДокументМоментВремени = Новый МоментВремени(СтруктураДата.Дата, ОбрабатываемыйДокумент); по причине: Несоответствие типов (параметр номер '1')

Проанализируем техническую причину этой неисправности и разберем по шагам, как правильно восстановить нормальную работу базы данных.

Причина возникновения ошибки на уровне платформы

Разберем, почему возникает данное исключение. Конструктор платформы 1С Новый МоментВремени(Дата, Ссылка) строго требует, чтобы первым параметром передавалось значение типа Дата.

Если в информационной базе проводилась свертка (обрезание) или неполное удаление документов, в таблицах последовательности ПартионныйУчет или регистре сведений СписанныеТовары могут остаться «битые ссылки» — записи, указывающие на удаленный документ (отображаются как «Объект не найден»). При попытке алгоритма партионного учета получить дату такого несуществующего документа система возвращает Неопределено или Null. Передача этого значения в конструктор МоментВремени и приводит к аварийному завершению обработки с ошибкой «Несоответствие типов».

Простая ручная корректировка дат напрямую в регистрах накопления (например, в Партии товаров на складах) не решает проблему, так как не удаляет некорректную запись из самой таблицы последовательности.

Способ 1. Очистка базы от битых ссылок через Тестирование и исправление

Самым надежным способом устранения битых ссылок является выполнение штатной процедуры проверки ссылочной целостности в Конфигураторе.

  1. Создадим резервную копию информационной базы (обязательный шаг перед любыми регламентными операциями).
  2. Откроем информационную базу в режиме Конфигуратор.
  3. Перейдем в меню Администрирование — Тестирование и исправление...
  4. Установим флаг напротив пункта «Проверка ссылочной целостности информационной базы».
  5. В нижней части окна в переключателях «При наличии ссылок на несуществующие объекты» обязательно выберем режим «Очищать ссылки» (если выбрать «Создавать объекты», система сгенерирует пустые документы, которые продолжат нарушать последовательность).
  6. Нажмем кнопку «Выполнить» и дождемся завершения процесса.

Способ 2. Установка границы последовательности на актуальную дату

Если дата свертки базы давно прошла (например, свертка делалась по 2015 или 2018 год), а граница последовательности партионного учета слетела на более ранний период, проведение по партиям попытается перепровести документы за несколько лет, что приведет к ошибкам и искажению закрытых периодов.

Для решения этой проблемы сдвинем границу последовательности вручную:

  1. Откроем обработку проведения по партиям или форму настройки границ последовательностей.
  2. Установим границу последовательности ПартионныйУчет на первый реальный проведённый документ текущего (или актуального) периода.
  3. Если в обработке проведения по партиям присутствует возможность выбора интервала, снимем флаг «Выполнять с границы последовательности» и явно укажем период проведения (например, с начала текущего месяца).

Способ 3. Очистка служебного регистра «Списанные товары»

Алгоритмы партионного учета перед расчетом себестоимости анализируют регистр сведений СписанныеТовары. Если в нем присутствуют записи с регистратором «Объект не найден», их необходимо удалить.

  1. Откроем регистр сведений СписанныеТовары.
  2. Проверим наличие записей, где в качестве регистратора или документа списания указана битая ссылка.
  3. Удалим обнаруженные битые записи с помощью групповой обработки или программного очищения набора записей регистра.

Рекомендации по выполнению проведения по партиям

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

← На главную