Почему при обмене между 1С:Управление торговлей и 1С:Розница не переносятся остатки и как это исправить?

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

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

Анализ ситуации: так задумано или это ошибка настройки?

Для начала проанализируем ситуацию и обратимся к официальной методологии разработчиков фирмы «1С». Ответ на этот вопрос кроется в сопроводительной документации, а именно в файле совместного использования конфигураций. Найти его можно в каталоге шаблонов установленных обновлений на вашем компьютере. Файл обычно называется Совместное использование конфигураций УТ 11 и Розница 2.htm.

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

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

Способ 1: Штатный помощник первоначального заполнения ИБ (Рекомендуемый)

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

Для выполнения этой процедуры нам понадобятся шаблоны конфигураций, которые устанавливаются на диск компьютера при обновлении программ. Разберем этот процесс по шагам:

  1. Поиск внешней обработки выгрузки: Перейдите в каталог шаблонов конфигурации «1С:Розница» на вашем сервере или локальном компьютере. Обычно он находится по пути вида C:\Users\<ИмяПользователя>\AppData\Roaming\1C\1cv8\tmplts\1c\retail\<НомерРелиза>\. Найдите там внешнюю обработку для выгрузки остатков из «1С:Управление торговлей» (файл с расширением .epf).
  2. Выгрузка данных из УТ: Откройте базу-источник «1С:Управление торговлей» в режиме «1С:Предприятие». Через меню «Файл» -> «Открыть» запустите найденную внешнюю обработку.
    • Укажите организацию и розничные склады, по которым необходимо выгрузить остатки.
    • Задайте дату, на которую будут зафиксированы остатки товаров.
    • Укажите имя и путь к XML-файлу, в который запишутся данные.
    • Нажмите кнопку «Выгрузить». Программа сформирует XML-выгрузку, содержащую справочники, цены, штрихкоды и остатки товаров.
  3. Загрузка в «1С:Розница»: Перейдите в базу-приемник «1С:Розница». Убедитесь, что база чистая или в ней еще не настроен активный регулярный обмен.
    • Перейдите в раздел «Администрирование» -> «Первоначальное заполнение ИБ».
    • Выберите пункт «Загрузка данных из УТ».
    • Укажите путь к созданному на предыдущем шаге XML-файлу.
    • Запустите процесс импорта.

После завершения загрузки в «1С:Розница» будут автоматически созданы и проведены документы ВводНачальныхОстатковУзлаРегистрации или документы оприходования. Все элементы справочника СправочникСсылка.Номенклатура будут перенесены с сохранением оригинальных GUID.

Посмотрим на пример концептуального кода, который используется в правилах конвертации для сопоставления объектов по GUID при загрузке данных:


// Схематичный пример поиска объекта по уникальному идентификатору при импорте
СсылкаНаНоменклатуру = Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаGUID));
ОбъектНоменклатуры = СсылкаНаНоменклатуру.ПолучитьОбъект();

Если ОбъектНоменклатуры = Неопределено Тогда
    // Если объект не найден, создаем новый с тем же GUID
    НовыйОбъект = Справочники.Номенклатура.СоздатьЭлемент();
    НовыйОбъект.УстановитьСсылкуНового(СсылкаНаНоменклатуру);
    НовыйОбъект.Наименование = ЗагруженноеНаименование;
    НовыйОбъект.Записать();
КонецЕсли;

Использование этого механизма гарантирует корректную связку данных между базами.

Способ 2: Полуавтоматический перенос через Excel

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

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

Разберем алгоритм работы по шагам:

  1. Формирование отчета в УТ: Откройте «1С:Управление торговлей», перейдите в отчеты по складу и сформируйте отчет ВедомостьПоТоварамНаСкладах (или «Остатки товаров на складах») на текущую дату.
  2. Экспорт данных: Сохраните сформированный отчет в формате Excel (.xlsx). Отредактируйте полученную таблицу: удалите лишние строки («шапку» отчета, промежуточные итоги), оставив только чистые колонки: «Номенклатура», «Артикул», «Количество» и, при необходимости, «Характеристика» и «Штрихкод».
  3. Загрузка в Розницу: Откройте «1С:Розница». Создайте новый документ ОприходованиеТоваров или ВводНачальныхОстатковУзлаРегистрации.
  4. В табличной части документа воспользуйтесь стандартной кнопкой «Загрузить из внешнего файла» (или откройте сервисную обработку ЗагрузкаДанныхИзТабличногоДокумента.epf).
  5. Настройте сопоставление колонок файла Excel с реквизитами табличной части документа. В качестве ключевого поля для поиска номенклатуры выберите Артикул или Штрихкод (поиск по наименованию менее надежен из-за возможных лишних пробелов или опечаток).
  6. Нажмите «Загрузить». После заполнения табличной части обязательно проведите созданный документ.

Способ 3: Ручной ввод остатков

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

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

Важные рекомендации по дальнейшей работе

После того как остатки в базе «1С:Розница» успешно выровнены одним из предложенных способов, обратите внимание на следующие важные моменты:

Мы проанализировали особенности интеграции двух популярных конфигураций и выяснили, что отсутствие остатков при первом обмене — это не ошибка настройки программы, а штатная особенность архитектуры обмена данными 1С. Следуя приведенным инструкциям, вы сможете корректно запустить совместную работу конфигураций и избежать расхождений в учете.

← На главную