Артикулы из Excel и другой базы в номенклатуру 1С 8.3: четыре рабочих способа

· 11 мин

Содержание

Загрузить артикулы в 1С 8.3 проще всего штатной командой загрузки из файла в списке номенклатуры: в БП 3.0 это Справочники → Товары и услуги → Номенклатура, в УТ 11 и ERP — НСИ и администрирование → НСИ → Номенклатура. Так вы создаёте новые позиции с артикулами из Excel. Если товары в базе уже есть и нужно только дописать или заменить им артикулы, удобнее внешняя обработка «Загрузка данных из табличного документа».

Выбор способа зависит от источника. Таблица от поставщика — штатная загрузка или обработка. Другая база 1С — обмен в формате XML. Регулярная выгрузка с сайта или из складской программы — своя обработка, COM-соединение или OData.

СпособКогда подходитРиск
Штатная загрузка из файлаНовые позиции из Excel, до нескольких тысяч строкДубли, если не настроено сопоставление
Обработка табличного документаМассово обновить артикулы у существующих товаровПерезапись не тех элементов при плохом ключе поиска
Обмен XML между базамиПеренос справочника из одной базы 1С в другуюПерезапись реквизитов целиком, а не только артикула
Своя обработка, COM, ODataРегулярная загрузка, интеграция с сайтомНужен программист и тестовая база

Подготовка файла для загрузки артикулов

Девять из десяти проблем при загрузке рождаются в файле, а не в 1С. Потратьте десять минут на таблицу до того, как открывать базу.

Какой формат выбрать

  • 📗 XLSX — основной вариант. Читается и штатной загрузкой, и обработками.
  • 📄 CSV — подходит для скриптов и больших объёмов. Кодировку держите UTF-8, разделитель — точка с запятой, чтобы не путаться с запятыми в наименованиях.
  • 📋 Копирование через буфер — штатная загрузка в БП 3.0 и УТ 11 принимает вставку прямо в таблицу формы. Удобно для сотни строк.
  • 🗂 XML — только для обмена между базами 1С, вручную его не готовят.

Как разложить колонки

Минимальный набор колонок:

  1. Наименование — как в карточке товара в 1С или как будет записано.
  2. Артикул — ровно то значение, которое должно попасть в поле.
  3. Ключ сопоставления — код 1С, штрихкод или старый артикул, если вы обновляете существующие позиции.
  4. По необходимости: единица измерения, вид номенклатуры, группа, ставка НДС.

Первая строка — заголовки, без объединённых ячеек. Ни одной пустой строки внутри таблицы: многие обработки считают её концом данных.

Формат ячеек с артикулами

Excel портит артикулы молча. 00451 превращается в 451, 12345678901234 — в 1,23457E+13, а 3-12 — в дату.

Перед вставкой данных выделите колонку артикулов и задайте ей формат «Текстовый». Если данные уже испорчены, формат задним числом нули не вернёт — выгрузите файл заново из исходной системы.

Ещё три проверки:

  • 🔍 Пробелы. Уберите пробелы в начале и конце формулой =СЖПРОБЕЛЫ(B2). Неразрывный пробел она не трогает, его меняйте через «Найти и заменить».
  • 🔤 Похожие буквы. Латинская A и кириллическая А выглядят одинаково, но для 1С это разные артикулы. Если артикулы буквенные, выберите один алфавит и проверьте заменой.
  • 🧮 Формулы. Замените формулы значениями (Вставить → Значения), иначе в 1С может уйти текст формулы или пустота.

Длину поля «Артикул» сверьте с вашей конфигурацией: откройте карточку товара и попробуйте ввести самое длинное значение из файла. Если поле обрезает строку, загрузка тоже обрежет — без предупреждения.

Штатная загрузка артикулов из Excel в список номенклатуры

В БП 3.0, УТ 11 и ERP есть встроенный механизм загрузки из табличного файла. Внешние обработки для него не нужны.

КонфигурацияГде открыть списокЧто нажать
Бухгалтерия предприятия 3.0Справочники → Товары и услуги → НоменклатураКнопка «Загрузить» в командной панели списка
Управление торговлей 11, ERP 2НСИ и администрирование → НСИ → НоменклатураКоманда загрузки из файла в командной панели или в меню «Ещё»

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

  1. Откройте список номенклатуры и встаньте в группу, куда должны попасть новые товары.
  2. Запустите команду загрузки. Откроется форма с пустой таблицей.
  3. Вставьте данные из Excel через буфер или выберите файл с диска.
  4. Сопоставьте колонки: укажите, что колонка B — это «Артикул», колонка A — «Наименование» и так далее. Лишние колонки оставьте без сопоставления.
  5. Перейдите к следующему шагу. Программа покажет, какие строки нашла в базе, а какие создаст заново.
  6. Просмотрите строки, которые программа сопоставила с существующими позициями. Если сопоставление неверное, исправьте его вручную в таблице.
  7. Завершите загрузку и откройте список: добавьте колонку «Артикул» через настройку формы и проверьте результат.

Сначала загрузите 10–20 строк. Если всё легло правильно, грузите остальное. Откатить тысячу криво созданных карточек намного дольше, чем проверить пробную партию.

Ограничения штатной загрузки

  • Механизм в первую очередь создаёт новые элементы. Массово поменять артикулы у существующих товаров им неудобно.
  • Сопоставление по наименованию ненадёжно: «Болт М8х30» и «Болт М8 х 30» — разные строки.
  • Для десятков тысяч строк форма работает медленно. Режьте файл на части по 2–5 тысяч.

Обработка «Загрузка данных из табличного документа»: обновление артикулов

Главный приём практиков для задачи «у нас 3000 товаров без артикулов, вот файл» — универсальная обработка ЗагрузкаДанныхИзТабличногоДокумента.epf. Она распространяется с дисками ИТС и годится для любой конфигурации на управляемых формах.

Её сила — поле поиска. Вы говорите обработке: найди товар по коду (или по наименованию, штрихкоду) и запиши ему значение из колонки «Артикул». Новых элементов при этом не создаётся, если не включить такой режим.

Пошагово

  1. Сделайте резервную копию базы . Обработка пишет прямо в справочник, кнопки «Отменить» нет.
  2. Откройте файл обработки через Файл → Открыть (в интерфейсе «Такси» — через главное меню, значок с тремя полосками).
  3. Выберите режим загрузки в справочник и укажите справочник «Номенклатура».
  4. На закладке реквизитов оставьте пометку загрузки только у двух полей: у ключевого (например, «Код») и у «Артикул».
  5. У ключевого поля включите флажок «Поле поиска». Именно по нему обработка найдёт товар.
  6. Укажите номер первой строки с данными (обычно 2, если в первой заголовки) и номера колонок для каждого поля.
  7. Вставьте данные из Excel в табличный документ обработки или откройте файл.
  8. Нажмите «Контроль заполнения». Обработка покажет строки, где товар не найден или значение не подходит.
  9. Если ошибок нет, запускайте загрузку.

Какой ключ поиска выбрать

КлючНадёжностьКомментарий
Код 1СВысокаяВыгрузите список из 1С с кодами, допишите артикулы, загрузите обратно
ШтрихкодВысокаяВ УТ 11 штрихкоды хранятся в отдельном регистре, обработка по ним напрямую не ищет
Старый артикулСредняяПодходит для замены одной системы артикулов на другую
НаименованиеНизкаяЛюбой лишний пробел — товар не найден или найден чужой

Самый надёжный сценарий: выгрузите из 1С список номенклатуры с колонкой «Код» (Ещё → Вывести список в командной панели), допишите артикулы в Excel рядом и загрузите обратно с поиском по коду. Ошибка сопоставления в такой схеме почти исключена.

Перенос артикулов из другой базы 1С через обмен XML

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

  • 🔁 Одинаковые конфигурации (две базы БП 3.0, две базы УТ 11) — обработка «Выгрузка и загрузка данных XML». Выгружаете справочник «Номенклатура», загружаете во вторую базу. Элементы сопоставляются по внутреннему идентификатору, поэтому одна и та же позиция не задваивается.
  • 🔀 Разные конфигурации (например, из УТ 11 в БП 3.0) — обработка «Универсальный обмен данными в формате XML» плюс правила обмена. Правила пишутся в конфигурации «Конвертация данных » и задают, какое поле куда переходит.

В БП 3.0 и УТ 11 обработка универсального обмена встроена. Найти её можно через Все функции → Обработки; если пункта «Все функции» в меню нет, включите его в параметрах программы, флажок «Отображать команду “Все функции”».

Обмен переносит элемент целиком: наименование, единицу, вид номенклатуры. Если в базе-приёмнике эти поля уже правили вручную, правки перезапишутся. Когда нужен только артикул, выгрузите из источника пары «код — артикул» в Excel и загрузите обработкой из предыдущего раздела.

Своя обработка, COM-соединение и OData для регулярной загрузки

Когда артикулы приходят каждый день — с сайта, из WMS, от поставщика по почте, — ручная загрузка не годится. Нужна автоматика.

Внешняя обработка

Программист пишет обработку под ваш формат файла. Её можно запускать вручную или по расписанию через регламентное задание. Каркас серверной части выглядит так:

&НаСервере
Процедура ЗагрузитьАртикулыНаСервере(АдресФайла)

    ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
    ПолучитьИзВременногоХранилища(АдресФайла).Записать(ИмяФайла);

    ТД = Новый ТабличныйДокумент;
    ТД.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);

    Для НомерСтроки = 2 По ТД.ВысотаТаблицы Цикл

        Стр = Формат(НомерСтроки, "ЧГ=0");
        Код     = СокрЛП(ТД.Область("R" + Стр + "C1").Текст);
        Артикул = СокрЛП(ТД.Область("R" + Стр + "C2").Текст);

        Если ПустаяСтрока(Код) Или ПустаяСтрока(Артикул) Тогда
            Продолжить;
        КонецЕсли;

        Ссылка = Справочники.Номенклатура.НайтиПоКоду(Код);
        Если Ссылка.Пустая() Тогда
            Сообщить(СтрШаблон("Строка %1: товар с кодом %2 не найден", Стр, Код));
            Продолжить;
        КонецЕсли;

        Если Ссылка.Артикул = Артикул Тогда
            Продолжить; // не перезаписываем без изменений
        КонецЕсли;

        Объект = Ссылка.ПолучитьОбъект();
        Объект.Артикул = Артикул;
        Объект.Записать();

    КонецЦикла;

    УдалитьФайлы(ИмяФайла);

КонецПроцедуры

Колонка 1 — код 1С, колонка 2 — артикул. Проверка «значение не изменилось» экономит запись и не плодит лишние версии объекта и регистрации к обмену. Если ключом должен быть штрихкод или старый артикул, меняется только строка поиска.

COM-соединение

Внешняя программа на Windows подключается к базе через V83.COMConnector и работает с объектами 1С так же, как код выше. Строка подключения для файловой базы — File="D:\Bases\Trade";Usr="Загрузка";Pwd="...", для серверной — Srvr="srv1c";Ref="trade";Usr="Загрузка";Pwd="...".

  • ⚙️ Разрядность программы и зарегистрированной компоненты comcntr.dll должна совпадать.
  • 👤 Заведите для загрузки отдельного пользователя с правами только на нужный справочник.
  • 🔢 Версия comcntr.dll должна совпадать с версией платформы сервера, иначе соединение не установится.

OData и HTTP-сервисы

Для сайта и облачных систем удобнее стандартный интерфейс OData. Базу публикуют на веб-сервере, в составе OData отмечают справочник «Номенклатура», и внешняя система меняет артикул запросом PATCH к объекту Catalog_Номенклатура. HTTP-сервис — вариант, когда нужна своя логика: проверки, журнал, поиск по артикулу поставщика.

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

Артикулы в разных конфигурациях 1С: что учесть

Поле «Артикул» в карточке номенклатуры есть во всех трёх типовых решениях. Отличается то, что вокруг него.

  • 📦 Бухгалтерия предприятия 3.0. Артикул — обычный реквизит карточки. Он выводится в списке и в печатных формах, если включить его показ в настройках печати. Отдельного справочника артикулов поставщиков нет.
  • 🛒 Управление торговлей 11 и ERP 2. Кроме своего артикула есть номенклатура поставщиков: у каждого поставщика свой артикул для того же товара. Его ведут в карточке поставщика, а не в карточке товара. Если вы грузите прайс поставщика, артикулы из него обычно нужно класть туда, а не затирать ими свои.
  • 🎨 Характеристики в УТ 11 и ERP. Артикул принадлежит номенклатуре, не характеристике. Если у каждого размера свой артикул, это решают либо отдельными карточками, либо штрихкодами на характеристики — выбор делают до загрузки, а не после.

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

Проверка загруженных артикулов

После загрузки проверьте три вещи: у всех ли товаров есть артикул, нет ли дублей и не обрезались ли значения.

Пустые артикулы

Откройте список номенклатуры, добавьте колонку «Артикул» и установите отбор: «Артикул» — «Не заполнено». Сравните количество строк с тем, сколько позиций должно было остаться без артикула.

Дубли артикулов

Быстрее всего — запросом в консоли запросов (обработка с дисков ИТС или встроенная в инструменты разработчика):

ВЫБРАТЬ
    Номенклатура.Артикул КАК Артикул,
    КОЛИЧЕСТВО(Номенклатура.Ссылка) КАК Количество
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Артикул <> ""
    И НЕ Номенклатура.ПометкаУдаления
СГРУППИРОВАТЬ ПО
    Номенклатура.Артикул
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Номенклатура.Ссылка) > 1

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

Обрезанные и искажённые значения

Выгрузите список с колонками «Код» и «Артикул» обратно в Excel и сравните с исходным файлом формулой =СОВПАД(B2;C2). Она учитывает регистр и находит расхождения, которые глазом не видны: потерянный ноль, лишний пробел, латинскую букву вместо кириллической.

Проверка после загрузки артикулов
Выполнено: 0 / 5

Что идёт не так при загрузке артикулов

Диагностика: выберите симптом

Частые вопросы

Можно ли загрузить артикулы в 1С без внешних обработок?
Да. В БП 3.0, УТ 11 и ERP загрузка из файла встроена в список номенклатуры. Внешняя обработка нужна, когда меняете артикулы у уже существующих товаров.
Как заменить старые артикулы на новые сразу у всех товаров?
Подготовьте файл «старый артикул — новый артикул», укажите старый артикул полем поиска в обработке табличного документа и загрузите новые значения. Перед этим проверьте, что старые артикулы уникальны.
Влияет ли смена артикула на остатки и документы?
Нет. Остатки и документы ссылаются на карточку товара, а не на её артикул. В проведённых документах артикул подтянется новый при следующем открытии и печати.
Нужен ли монопольный режим для загрузки артикулов?
Не нужен. Загрузка пишет элементы справочника как обычный пользователь. Лучше запускать её вне рабочего времени, чтобы никто не держал карточки открытыми.
Сколько строк можно загрузить за раз?
Жёсткого ограничения нет, но штатная форма на десятках тысяч строк работает медленно. Делите файл на части по 2–5 тысяч строк или используйте обработку.