Как выгрузить номенклатуру со штрихкодами из УТ 10.3 в БП 3.0?

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

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

В рамках данной статьи мы разберем несколько эффективных способов решения этой задачи: от простого использования таблиц Excel до программной выгрузки с использованием объектов XDTOSerializer и ЗаписьXML.

Анализ структуры данных в исходной и целевой базах

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

В «Бухгалтерии предприятия 3.0» также существует регистр сведений Штрихкоды, но его структура может иметь отличия в зависимости от версии. Основная задача при переносе — обеспечить корректное сопоставление номенклатуры, чтобы штрихкод «привязался» к правильному объекту в целевой базе. Если мы работаем с простым штучным товаром без серий и характеристик, задача существенно упрощается.

Способ 1. Использование обработки «Загрузка данных из файла» (Самый простой путь)

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

Шаг 1. Выгрузка из УТ 10.3
Воспользуемся консолью запросов или построим универсальный отчет по регистру сведений Штрихкоды. Нам необходимо получить таблицу со следующими колонками: Номенклатура.Наименование, Номенклатура.Артикул (или Код) и сам Штрихкод. Сохраним полученный результат в формате .xlsx. Чтобы упростить этот процесс, можно применить готовую обработку выгрузки товаров со свойствами и штрихкодами в Эксель, которая сразу формирует файл нужной структуры.

Шаг 2. Подготовка данных в БП 3.0
Перейдем в раздел Администрирование — Обслуживание — Загрузка данных из файла. Выберем вариант загрузки в справочник Номенклатура или напрямую в регистр штрихкодов, если система позволяет сопоставить владельца по артикулу.

Шаг 3. Сопоставление
Современная «Бухгалтерия 3.0» при загрузке данных из файла умеет распознавать колонку «Штрихкод». Если номенклатура уже перенесена стандартным обменом, система найдет ее по наименованию или артикулу.

Способ 2. Программная выгрузка через XML или JSON

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

Для этого в запросе мы будем использовать ЛЕВОЕ СОЕДИНЕНИЕ. Посмотрим на пример кода для формирования выборки:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Номенклатура.Ссылка КАК Товар,
    |	Номенклатура.Артикул КАК Артикул,
    |	Штрихкоды.Штрихкод КАК Штрихкод,
    |	Штрихкоды.ТипШтрихкода КАК Тип
    |ИЗ
    |	Справочник.Номенклатура КАК Номенклатура
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
    |		ПО Штрихкоды.Владелец = Номенклатура.Ссылка
    |ГДЕ
    |	Номенклатура.ЭтоГруппа = ЛОЖЬ";

РезультатЗапроса = Запрос.Выполнить();

Далее, чтобы передать эти данные в БП 3.0, воспользуемся сериализацией. Проанализируем использование ЗаписьXML и СериализаторXDTO для выгрузки данных. В качестве альтернативы XML сегодня часто применяется выгрузка и загрузка данных по номенклатурам в формате JSON, что позволяет более гибко управлять структурой передаваемых объектов.


ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\temp\barcodes.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();

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

Способ 3. Редактирование правил обмена в «Конвертации данных 2.0»

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

  1. Загрузим конфигурации УТ 10.3 и БП 3.0 в программу «1С:Конвертация данных 2.0».
  2. Найдем или создадим Правило Конвертации Объектов (ПКО) для регистра сведений Штрихкоды.
  3. В ПКО укажем правила сопоставления полей: Владелец (в УТ) -> Номенклатура (в БП). Важно настроить поиск номенклатуры по Уникальному Идентификатору (GUID), чтобы избежать дублей.
  4. Добавим ПКО в список выгружаемых правил. Иногда при настройке обмена возникают технические сбои, например, может потребоваться исправление ошибки "Недостаточно фактических параметров" в синхронизации.

Важные нюансы при переносе

Проанализируем специфические моменты, на которые стоит обратить внимание:

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

Типы штрихкодов: Не забывайте переносить тип кода (например, EAN13). В некоторых случаях в БП 3.0 это поле является обязательным для корректной работы механизмов подбора в документах.

Работа со сканером в БП 3.0: Как было отмечено в обсуждении, работа со сканером в бухгалтерии имеет свои особенности. Часто для эффективного использования штрихкодов приходится открывать форму «Подбор», где сканирование работает максимально стабильно. Выясним это заранее, чтобы проинструктировать пользователей после успешного переноса данных.

Подводя итог, можно сказать, что выбор способа зависит от ваших навыков. Если нужно «быстро и сейчас» — выбирайте Excel. Если планируется регулярный обмен — используйте Конвертацию данных. Для сложных случаев, когда нужно передать дополнительные реквизиты или специфическую логику — поможет программная выгрузка через XML/JSON.

← На главную