При переходе с конфигурации 1С:Розница 2.2 на 1С:Управление торговлей 11.4 (УТ) пользователи часто сталкиваются с критической проблемой: документы Внутреннее перемещение, которые активно использовались в Рознице, попросту не переносятся в УТ при штатной синхронизации. Это приводит к тому, что остатки товаров «плывут», так как движения между складами внутри одного магазина не отражаются в управленческой базе. В данной статье мы подробно разберем, почему это происходит и какими способами можно восстановить корректный учет.
Для начала проанализируем архитектурную разницу между двумя конфигурациями. В 1С:Розница реализована иерархическая структура «Магазин — Склады». Документ Внутреннее перемещение предназначен для перемещения товаров между складами (например, со склада приема на торговый зал) внутри одного магазина. С точки зрения Розницы, это не меняет общих остатков по магазину в целом.
В 1С:Управление торговлей 11 сущности «Магазин» как контейнера не существует. Справочник Склады в УТ является плоским списком. Типовые правила обмена, разработанные специалистами 1С, исходят из логики: если в Рознице магазин сопоставлен с одним складом в УТ, то внутренние перемещения внутри этого магазина — это перемещения «из склада А в склад А», что не имеет смысла для учета в УТ. Именно поэтому документ Внутреннее перемещение исключен из состава плана обмена по умолчанию.
Однако, если в вашей Рознице структура была настроена нестандартно (например, один магазин на десять реальных торговых точек с разными складами), проблема становится масштабной. Рассмотрим три основных сценария решения задачи.
Этот способ считается самым безопасным с точки зрения целостности правил обмена. Идея заключается в том, чтобы программно заменить в Рознице документы Внутреннее перемещение на документы Перемещение товаров (которые между магазинами), так как последние штатно выгружаются в УТ.
Рассмотрим алгоритм действий по шагам:
Внутреннее перемещение за нужный период.Перемещение товаров.Внутреннее перемещение на удаление и проводить новое Перемещение товаров.Перемещение товаров.Пример логики кода для такой обработки (упрощенно):
// Выборка документов
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ВнутреннееПеремещение ГДЕ Проведен";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
// Создаем новое Перемещение товаров
НовоеПеремещение = Документы.ПеремещениеТоваров.СоздатьДокумент();
НовоеПеремещение.Дата = ДокОбъект.Дата;
НовоеПеремещение.МагазинОтправитель = ДокОбъект.Магазин;
НовоеПеремещение.МагазинПолучатель = ДокОбъект.Магазин;
НовоеПеремещение.СкладОтправитель = ДокОбъект.СкладОтправитель;
НовоеПеремещение.СкладПолучатель = ДокОбъект.СкладПолучатель;
// Перенос табличной части
Для Каждого Стр Из ДокОбъект.Товары Цикл
НоваяСтр = НовоеПеремещение.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтр, Стр);
КонецЦикла;
НовоеПеремещение.Записать(РежимЗаписиДокумента.Проведение);
ДокОбъект.УстановитьПометкуУдаления(Истина);
КонецЦикла;
Если документов слишком много и вы не хотите менять структуру данных в Рознице, придется лезть в «движок» обмена. Рассмотрим, как проанализировать и изменить правила.
Порядок действий:
ВнутреннееПеремещение правила либо отсутствуют, либо пустые.ВнутреннееПеремещение из Розницы, а приемником — ПеремещениеТоваров в УТ.ПеремещениеТоваров требует заполнения статуса (например, «Принято»). В правилах конвертации свойств (ПКС) для поля Статус установите фиксированное значение.Внутреннее перемещение, установив режим Авторегистрация.Риски этого метода: При обратном обмене (УТ -> Розница) может возникнуть ситуация дублирования. Если кто-то перепроведет этот документ в УТ, он может вернуться в Розницу уже как документ Перемещение товаров, при этом старое (оригинальное) Внутреннее перемещение останется в базе. Чтобы этого избежать, необходимо в ПКО прописать поиск по уникальному идентификатору (GUID) и блокировать создание новых типов документов в Рознице, если источником было внутреннее движение.
Иногда объем накопленных ошибок в исторической базе настолько велик, что проще не тянуть старые документы, а выровнять ситуацию в точке «здесь и сейчас». Проанализируем этот вариант.
Методика выполнения:
Ввод остатков в УТ на дату начала работы.Оприходование излишков и Списание недостач в УТ, чтобы привести их в соответствие с фактическими данными каждого склада Розницы.Перемещение товаров (между магазинами), даже если это фактически один физический объект. Это обеспечит бесперебойную выгрузку данных.При реализации любого из решений помните о типах складов в УТ 11. Если склад в УТ имеет тип Розничный, то документ Перемещение товаров при проведении потребует наличия установленных розничных цен (документ Установка цен номенклатуры). Если цены не установлены, документ не сформирует движения по регистру Товары на складах в части суммового учета, и остатки снова не сойдутся.
Также проверьте ордерную схему. Если в Рознице включена настройка «Использовать ордерную схему при перемещении», то помимо самого документа перемещения, в обмене должны участвовать Расходный ордер на товары и Приходный ордер на товары. Убедитесь, что в настройках синхронизации в УТ включена опция приемки ордерных складов, иначе финансовый документ (Перемещение) придет, а фактические остатки на складе не изменятся до момента оформления ордеров.
Мы выяснили, что причина «поплывших» остатков — в игнорировании специфичного для Розницы документа Внутреннее перемещение. Для исправления ситуации мы рекомендуем:
Помните, что архитектура УТ 11.4 гораздо строже относится к складским движениям, чем Розница, поэтому правильная предварительная настройка структуры складов — залог успешной синхронизации.