Переход с платформы «1С:Предприятие 8.2» (УТ 10.3) на современную «1С:Предприятие 8.3» (УТ 11.4) — это сложный процесс, который часто сопровождается техническими трудностями. Одной из наиболее распространенных проблем является ошибка: «Обнаружен некорректный суммовой остаток на складе... по товару... при выгрузке по правилу: Собственные товары на складах». В этой статье мы подробно разберем, почему возникает эта ошибка и какие шаги необходимо предпринять для успешного переноса остатков.
Для начала проанализируем архитектуру хранения данных в УТ 10.3. В этой конфигурации складской учет и стоимостный (партионный) учет разделены на разные регистры накопления. Основная причина ошибки кроется в рассинхронизации данных между этими регистрами:
ТоварыНаСкладах отвечает за количественный остаток в разрезе складов.ПартииТоваровНаСкладах отвечает за количество и стоимость товаров в разрезе партий (документов поступления).Стандартная обработка перехода при выгрузке остатков выполняет проверку: если в количественном регистре товар есть, а в партионном регистре его стоимость равна нулю или отрицательна (либо отсутствует сама запись о партии), алгоритм считает такие данные некорректными. В УТ 11.4 партионный учет более строгий, поэтому правила обмена блокируют выгрузку «битых» данных, чтобы не допустить хаоса в новой базе.
Прежде чем приступать к выгрузке, нам необходимо локализовать проблемные позиции номенклатуры. Рассмотрим, как это сделать с помощью консоли запросов в УТ 10.3. Нам нужно сравнить остатки по двум регистрам. Проанализируем пример логики запроса, который поможет выявить расхождения:
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура,
ТоварыНаСкладахОстатки.Склад,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КолСклад,
ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0) КАК КолПартии,
ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, 0) КАК СуммаПартии
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков, ) КАК ТоварыНаСкладахОстатки
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаОстатков, ) КАК ПартииТоваровНаСкладахОстатки
ПО
ТоварыНаСкладахОстатки.Номенклатура = ПартииТоваровНаСкладахОстатки.Номенклатура
И ТоварыНаСкладахОстатки.Склад = ПартииТоваровНаСкладахОстатки.Склад
ГДЕ
ТоварыНаСкладахОстатки.КоличествоОстаток <> ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0)
ИЛИ ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, 0) <= 0
Если запрос возвращает строки, это означает, что по данным позициям есть расхождение. Вам необходимо либо создать документ КорректировкаЗаписейРегистров, чтобы выровнять остатки, либо перепровести первичные документы.
Часто проблема решается стандартными средствами конфигурации. Разберем порядок действий для «причесывания» партионного учета:
Если база данных огромная, а сроки перехода «горят», и у вас нет возможности выправлять каждую копейку в старой базе, можно пойти по пути изменения правил обмена. Для этого нам понадобится конфигурация «Конвертация данных 2.0».
Рассмотрим алгоритм действий:
\Convert) в базу Конвертации данных.СобственныеТоварыНаСкладах.Пример кода в обработчике может выглядеть так:
Если ПараметрыОбъекта <> Неопределено Тогда
Для Каждого СтрокаОстатка Из ПараметрыОбъекта.ТаблицаОстатков Цикл
Если СтрокаОстатка.Количество > 0 И СтрокаОстатка.Сумма <= 0 Тогда
СтрокаОстатка.Сумма = 0.01; // Устанавливаем фиктивную стоимость для прохождения валидации
КонецЕсли;
КонецЦикла;
КонецЕсли;
После внесения изменений сохраним правила и используем их в обработке УниверсальныйОбменДаннымиXML на стороне УТ 10.3.
Стандартный «Помощник перехода» в УТ 11 часто работает как «черный ящик». Если он выдает ошибку, трудно понять, на каком объекте произошел сбой. Мы рекомендуем использовать обработку «Универсальный обмен данными в формате XML» на стороне УТ 10.3.
Преимущества этого метода:
Существует и более простой, «народный» метод переноса, который часто оказывается эффективнее штатных правил. Это перенос остатков через промежуточный файл Excel. Рассмотрим его плюсы и минусы.
Алгоритм действий:
Ввод начальных остатков и заполним его данными из файла.Важное предостережение: Метод через Excel не переносит данные о номерах ГТД и странах происхождения. Если вы торгуете импортным товаром и вам критично ведение учета по номерам ГТД, этот способ вам не подойдет. Также этим способом сложно перенести остатки в разрезе характеристик и серий, если их очень много.
Разберем еще несколько нюансов, которые помогут упростить процесс:
ОприходованиеТоваров), в которых данные будут уже нормализованы. Выгружать такие документы гораздо проще, чем остатки из накопленных за 10 лет регистров.Ввод остатков. Убедитесь, что типы цен в правилах переноса сопоставлены корректно.Подводя итог, можно сказать, что решение проблемы «некорректного суммового остатка» всегда кроется в качественной подготовке данных в исходной базе. Используйте консоль запросов для аудита, не бойтесь корректировать регистры вручную и всегда делайте резервную копию перед любыми массовыми операциями.