Артикулы из Excel и другой базы в номенклатуру 1С 8.3: четыре рабочих способа
Содержание
Загрузить артикулы в 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С, штрихкод или старый артикул, если вы обновляете существующие позиции.
- По необходимости: единица измерения, вид номенклатуры, группа, ставка НДС.
Первая строка — заголовки, без объединённых ячеек. Ни одной пустой строки внутри таблицы: многие обработки считают её концом данных.
Формат ячеек с артикулами
Excel портит артикулы молча. 00451 превращается в 451, 12345678901234 — в 1,23457E+13, а 3-12 — в дату.
Перед вставкой данных выделите колонку артикулов и задайте ей формат «Текстовый». Если данные уже испорчены, формат задним числом нули не вернёт — выгрузите файл заново из исходной системы.
Ещё три проверки:
- 🔍 Пробелы. Уберите пробелы в начале и конце формулой
=СЖПРОБЕЛЫ(B2). Неразрывный пробел она не трогает, его меняйте через «Найти и заменить». - 🔤 Похожие буквы. Латинская
Aи кириллическаяАвыглядят одинаково, но для 1С это разные артикулы. Если артикулы буквенные, выберите один алфавит и проверьте заменой. - 🧮 Формулы. Замените формулы значениями (
Вставить → Значения), иначе в 1С может уйти текст формулы или пустота.
Длину поля «Артикул» сверьте с вашей конфигурацией: откройте карточку товара и попробуйте ввести самое длинное значение из файла. Если поле обрезает строку, загрузка тоже обрежет — без предупреждения.
Штатная загрузка артикулов из Excel в список номенклатуры
В БП 3.0, УТ 11 и ERP есть встроенный механизм загрузки из табличного файла. Внешние обработки для него не нужны.
| Конфигурация | Где открыть список | Что нажать |
|---|---|---|
| Бухгалтерия предприятия 3.0 | Справочники → Товары и услуги → Номенклатура | Кнопка «Загрузить» в командной панели списка |
| Управление торговлей 11, ERP 2 | НСИ и администрирование → НСИ → Номенклатура | Команда загрузки из файла в командной панели или в меню «Ещё» |
Порядок действий
- Откройте список номенклатуры и встаньте в группу, куда должны попасть новые товары.
- Запустите команду загрузки. Откроется форма с пустой таблицей.
- Вставьте данные из Excel через буфер или выберите файл с диска.
- Сопоставьте колонки: укажите, что колонка B — это «Артикул», колонка A — «Наименование» и так далее. Лишние колонки оставьте без сопоставления.
- Перейдите к следующему шагу. Программа покажет, какие строки нашла в базе, а какие создаст заново.
- Просмотрите строки, которые программа сопоставила с существующими позициями. Если сопоставление неверное, исправьте его вручную в таблице.
- Завершите загрузку и откройте список: добавьте колонку «Артикул» через настройку формы и проверьте результат.
Сначала загрузите 10–20 строк. Если всё легло правильно, грузите остальное. Откатить тысячу криво созданных карточек намного дольше, чем проверить пробную партию.
Ограничения штатной загрузки
- Механизм в первую очередь создаёт новые элементы. Массово поменять артикулы у существующих товаров им неудобно.
- Сопоставление по наименованию ненадёжно: «Болт М8х30» и «Болт М8 х 30» — разные строки.
- Для десятков тысяч строк форма работает медленно. Режьте файл на части по 2–5 тысяч.
Обработка «Загрузка данных из табличного документа»: обновление артикулов
Главный приём практиков для задачи «у нас 3000 товаров без артикулов, вот файл» — универсальная обработка ЗагрузкаДанныхИзТабличногоДокумента.epf. Она распространяется с дисками ИТС и годится для любой конфигурации на управляемых формах.
Её сила — поле поиска. Вы говорите обработке: найди товар по коду (или по наименованию, штрихкоду) и запиши ему значение из колонки «Артикул». Новых элементов при этом не создаётся, если не включить такой режим.
Пошагово
- Сделайте резервную копию базы . Обработка пишет прямо в справочник, кнопки «Отменить» нет.
- Откройте файл обработки через
Файл → Открыть(в интерфейсе «Такси» — через главное меню, значок с тремя полосками). - Выберите режим загрузки в справочник и укажите справочник «Номенклатура».
- На закладке реквизитов оставьте пометку загрузки только у двух полей: у ключевого (например, «Код») и у «Артикул».
- У ключевого поля включите флажок «Поле поиска». Именно по нему обработка найдёт товар.
- Укажите номер первой строки с данными (обычно 2, если в первой заголовки) и номера колонок для каждого поля.
- Вставьте данные из Excel в табличный документ обработки или откройте файл.
- Нажмите «Контроль заполнения». Обработка покажет строки, где товар не найден или значение не подходит.
- Если ошибок нет, запускайте загрузку.
Какой ключ поиска выбрать
| Ключ | Надёжность | Комментарий |
|---|---|---|
| Код 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). Она учитывает регистр и находит расхождения, которые глазом не видны: потерянный ноль, лишний пробел, латинскую букву вместо кириллической.