Как перенести «Внутренние перемещения» из 1С:Розница 2.2 в 1С:Управление торговлей 11.4 и избежать расхождения остатков?

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

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

Анализ причин проблемы: почему документы игнорируются?

Для начала проанализируем архитектурную разницу между двумя конфигурациями. В 1С:Розница реализована иерархическая структура «Магазин — Склады». Документ Внутреннее перемещение предназначен для перемещения товаров между складами (например, со склада приема на торговый зал) внутри одного магазина. С точки зрения Розницы, это не меняет общих остатков по магазину в целом.

В 1С:Управление торговлей 11 сущности «Магазин» как контейнера не существует. Справочник Склады в УТ является плоским списком. Типовые правила обмена, разработанные специалистами 1С, исходят из логики: если в Рознице магазин сопоставлен с одним складом в УТ, то внутренние перемещения внутри этого магазина — это перемещения «из склада А в склад А», что не имеет смысла для учета в УТ. Именно поэтому документ Внутреннее перемещение исключен из состава плана обмена по умолчанию.

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

Решение №1: Конвертация документов в Рознице перед выгрузкой

Этот способ считается самым безопасным с точки зрения целостности правил обмена. Идея заключается в том, чтобы программно заменить в Рознице документы Внутреннее перемещение на документы Перемещение товаров (которые между магазинами), так как последние штатно выгружаются в УТ.

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

  1. Создание резервной копии: Любые массовые изменения документов в Рознице должны начинаться с бэкапа.
  2. Написание обработки: Необходимо создать внешнюю обработку, которая будет выполнять следующие действия:
    • Выбирать документы Внутреннее перемещение за нужный период.
    • Создавать на их основании документ Перемещение товаров.
    • Важно: в новом документе «Магазин-отправитель» и «Магазин-получатель» будут одинаковыми (тот самый ваш единственный магазин), а склады — разными.
    • Помечать старое Внутреннее перемещение на удаление и проводить новое Перемещение товаров.
  3. Регистрация изменений: После проведения новых документов они автоматически зарегистрируются в плане обмена и при следующей синхронизации «улетят» в УТ как стандартные документы Перемещение товаров.

Пример логики кода для такой обработки (упрощенно):


// Выборка документов
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ВнутреннееПеремещение ГДЕ Проведен";
Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
    
    // Создаем новое Перемещение товаров
    НовоеПеремещение = Документы.ПеремещениеТоваров.СоздатьДокумент();
    НовоеПеремещение.Дата = ДокОбъект.Дата;
    НовоеПеремещение.МагазинОтправитель = ДокОбъект.Магазин;
    НовоеПеремещение.МагазинПолучатель = ДокОбъект.Магазин;
    НовоеПеремещение.СкладОтправитель = ДокОбъект.СкладОтправитель;
    НовоеПеремещение.СкладПолучатель = ДокОбъект.СкладПолучатель;
    
    // Перенос табличной части
    Для Каждого Стр Из ДокОбъект.Товары Цикл
        НоваяСтр = НовоеПеремещение.Товары.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтр, Стр);
    КонецЦикла;
    
    НовоеПеремещение.Записать(РежимЗаписиДокумента.Проведение);
    ДокОбъект.УстановитьПометкуУдаления(Истина);
КонецЦикла;

Решение №2: Модификация правил обмена через «Конвертацию данных 2.0»

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

Порядок действий:

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

Риски этого метода: При обратном обмене (УТ -> Розница) может возникнуть ситуация дублирования. Если кто-то перепроведет этот документ в УТ, он может вернуться в Розницу уже как документ Перемещение товаров, при этом старое (оригинальное) Внутреннее перемещение останется в базе. Чтобы этого избежать, необходимо в ПКО прописать поиск по уникальному идентификатору (GUID) и блокировать создание новых типов документов в Рознице, если источником было внутреннее движение.

Решение №3: Корректировка остатков и работа с «чистого листа»

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

Методика выполнения:

  1. Завершите все текущие продажи и обмены.
  2. В УТ 11 создайте зеркальную структуру складов (если в Рознице у одного магазина было 10 складов, в УТ также должно быть 10 складов, а не один).
  3. Используйте документ Ввод остатков в УТ на дату начала работы.
  4. Если обмен уже работает и остатки некорректны, используйте документы Оприходование излишков и Списание недостач в УТ, чтобы привести их в соответствие с фактическими данными каждого склада Розницы.
  5. С этого момента в Рознице используйте только документы Перемещение товаров (между магазинами), даже если это фактически один физический объект. Это обеспечит бесперебойную выгрузку данных.

Технические тонкости: Склады и Цены

При реализации любого из решений помните о типах складов в УТ 11. Если склад в УТ имеет тип Розничный, то документ Перемещение товаров при проведении потребует наличия установленных розничных цен (документ Установка цен номенклатуры). Если цены не установлены, документ не сформирует движения по регистру Товары на складах в части суммового учета, и остатки снова не сойдутся.

Также проверьте ордерную схему. Если в Рознице включена настройка «Использовать ордерную схему при перемещении», то помимо самого документа перемещения, в обмене должны участвовать Расходный ордер на товары и Приходный ордер на товары. Убедитесь, что в настройках синхронизации в УТ включена опция приемки ордерных складов, иначе финансовый документ (Перемещение) придет, а фактические остатки на складе не изменятся до момента оформления ордеров.

Итоги и рекомендации

Мы выяснили, что причина «поплывших» остатков — в игнорировании специфичного для Розницы документа Внутреннее перемещение. Для исправления ситуации мы рекомендуем:

Помните, что архитектура УТ 11.4 гораздо строже относится к складским движениям, чем Розница, поэтому правильная предварительная настройка структуры складов — залог успешной синхронизации.

← На главную