Как исправить ошибку некорректного суммового остатка при переносе данных из УТ 10.3 в УТ 11.4?

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

Переход с платформы «1С:Предприятие 8.2» (УТ 10.3) на современную «1С:Предприятие 8.3» (УТ 11.4) — это сложный процесс, который часто сопровождается техническими трудностями. Одной из наиболее распространенных проблем является ошибка: «Обнаружен некорректный суммовой остаток на складе... по товару... при выгрузке по правилу: Собственные товары на складах». В этой статье мы подробно разберем, почему возникает эта ошибка и какие шаги необходимо предпринять для успешного переноса остатков.

Выясним причину возникновения ошибки

Для начала проанализируем архитектуру хранения данных в УТ 10.3. В этой конфигурации складской учет и стоимостный (партионный) учет разделены на разные регистры накопления. Основная причина ошибки кроется в рассинхронизации данных между этими регистрами:

  1. Регистр ТоварыНаСкладах отвечает за количественный остаток в разрезе складов.
  2. Регистр ПартииТоваровНаСкладах отвечает за количество и стоимость товаров в разрезе партий (документов поступления).

Стандартная обработка перехода при выгрузке остатков выполняет проверку: если в количественном регистре товар есть, а в партионном регистре его стоимость равна нулю или отрицательна (либо отсутствует сама запись о партии), алгоритм считает такие данные некорректными. В УТ 11.4 партионный учет более строгий, поэтому правила обмена блокируют выгрузку «битых» данных, чтобы не допустить хаоса в новой базе.

Шаг 1: Проверка и исправление данных через консоль запросов

Прежде чем приступать к выгрузке, нам необходимо локализовать проблемные позиции номенклатуры. Рассмотрим, как это сделать с помощью консоли запросов в УТ 10.3. Нам нужно сравнить остатки по двум регистрам. Проанализируем пример логики запроса, который поможет выявить расхождения:


ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КолСклад,
    ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0) КАК КолПартии,
    ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, 0) КАК СуммаПартии
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков, ) КАК ТоварыНаСкладахОстатки
ЛЕВОЕ СОЕДИНЕНИЕ 
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаОстатков, ) КАК ПартииТоваровНаСкладахОстатки
ПО 
    ТоварыНаСкладахОстатки.Номенклатура = ПартииТоваровНаСкладахОстатки.Номенклатура
    И ТоварыНаСкладахОстатки.Склад = ПартииТоваровНаСкладахОстатки.Склад
ГДЕ
    ТоварыНаСкладахОстатки.КоличествоОстаток <> ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0)
    ИЛИ ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, 0) <= 0

Если запрос возвращает строки, это означает, что по данным позициям есть расхождение. Вам необходимо либо создать документ КорректировкаЗаписейРегистров, чтобы выровнять остатки, либо перепровести первичные документы.

Шаг 2: Восстановление партионного учета

Часто проблема решается стандартными средствами конфигурации. Разберем порядок действий для «причесывания» партионного учета:

  1. Убедимся, что в базе нет отрицательных остатков. Используйте отчет «Ведомость по товарам на складах». Отрицательные остатки — главная причина сбоев в расчете партий.
  2. Запустим обработку «Проведение по партиям» (меню «Документы» — «Запасы (склад)» — «Проведение по партиям»). Это необходимо делать в монопольном режиме. Процедура пересчитает стоимость списания и остатков.
  3. Проверим настройки параметров учета. В меню «Сервис» — «Настройка параметров учета» на вкладке «Запасы» должна быть установлена галочка «Вести партионный учет по складам». Если она была выключена, а вы её включили только сейчас, обязательно потребуется полное перепроведение документов, иначе суммовые остатки в разрезе складов не появятся.

Шаг 3: Модификация правил в «Конвертации данных 2.0»

Если база данных огромная, а сроки перехода «горят», и у вас нет возможности выправлять каждую копейку в старой базе, можно пойти по пути изменения правил обмена. Для этого нам понадобится конфигурация «Конвертация данных 2.0».

Рассмотрим алгоритм действий:

Пример кода в обработчике может выглядеть так:


Если ПараметрыОбъекта <> Неопределено Тогда
    Для Каждого СтрокаОстатка Из ПараметрыОбъекта.ТаблицаОстатков Цикл
        Если СтрокаОстатка.Количество > 0 И СтрокаОстатка.Сумма <= 0 Тогда
            СтрокаОстатка.Сумма = 0.01; // Устанавливаем фиктивную стоимость для прохождения валидации
        КонецЕсли;
    КонецЦикла;
КонецЕсли;

После внесения изменений сохраним правила и используем их в обработке УниверсальныйОбменДаннымиXML на стороне УТ 10.3.

Шаг 4: Использование универсальной выгрузки вместо помощника

Стандартный «Помощник перехода» в УТ 11 часто работает как «черный ящик». Если он выдает ошибку, трудно понять, на каком объекте произошел сбой. Мы рекомендуем использовать обработку «Универсальный обмен данными в формате XML» на стороне УТ 10.3.

Преимущества этого метода:

  1. Вы можете выгружать данные частями: сначала справочники, затем остатки по одному складу за раз. Это позволит быстро вычислить проблемный склад или группу товаров.
  2. В обработке можно включить режим отладки, который покажет конкретную строку кода в правилах, на которой спотыкается выгрузка.
  3. Можно настроить фильтры (отборы) по конкретной номенклатуре или организации.

Шаг 5: Альтернативный метод через Excel

Существует и более простой, «народный» метод переноса, который часто оказывается эффективнее штатных правил. Это перенос остатков через промежуточный файл Excel. Рассмотрим его плюсы и минусы.

Алгоритм действий:

  1. В УТ 10.3 сформируем отчет «Остатки товаров на складах» с ценами и штрихкодами.
  2. Сохраним отчет в формате Excel.
  3. В УТ 11.4 воспользуемся стандартной обработкой «Загрузка данных из табличного документа».
  4. Создадим документ Ввод начальных остатков и заполним его данными из файла.

Важное предостережение: Метод через Excel не переносит данные о номерах ГТД и странах происхождения. Если вы торгуете импортным товаром и вам критично ведение учета по номерам ГТД, этот способ вам не подойдет. Также этим способом сложно перенести остатки в разрезе характеристик и серий, если их очень много.

Дополнительные советы по миграции

Разберем еще несколько нюансов, которые помогут упростить процесс:

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

← На главную