Загрузка GTIN (Global Trade Item Number) в 1С:Предприятие стала обязательным требованием для работы с большинством маркетплейсов — от Ozon и Wildberries до Яндекс Маркет и зарубежных площадок. Без корректно указанных идентификаторов товары не пройдут модерацию, а вы рискуете потерять видимость в каталогах. В этой статье разберём, как правильно добавить GTIN в 1С, избежать типичных ошибок и автоматизировать процесс для тысяч номенклатур.
Проблема в том, что стандартные конфигурации 1С (например, 1С:Управление торговлей 11 или 1С:Розница 2.3) изначально не имеют отдельного поля для GTIN. Его нужно либо добавлять вручную через дополнительные реквизиты, либо настраивать обмен данными с маркетплейсами через специализированные обработки. Мы рассмотрим оба варианта — от простого к сложному, с учётом нюансов для разных версий платформы.
Особое внимание уделим автоматической проверке GTIN на валидность прямо в 1С — это сэкономит время при выгрузке товаров на площадки. Также разберём, как избежать дублирования кодов и что делать, если у товара нет GTIN (спойлер: для некоторых категорий это допустимо, но требует подтверждения).
Что такое GTIN и почему его требуют маркетплейсы
GTIN (Global Trade Item Number) — это международный стандарт идентификации товаров, который включает в себя:
- 📦 EAN-13 — самый распространённый формат для розничных товаров (13 цифр, например,
4607001234567) - 📦 UPC — американский аналог EAN (12 цифр, используется в США и Канаде)
- 📦 ISBN — для книг, ISSN — для периодики
- 📦 ITF-14 — для транспортной упаковки (коробов, паллет)
Маркетплейсы требуют GTIN по трём причинам:
- Унификация каталога — чтобы избежать дублирования одного товара от разных продавцов.
- Борьба с контрафактом — по GTIN можно проверить подлинность бренда через базы GS1.
- Автоматизация логистики — сканирование штрихкодов на складах ускоряет обработку заказов.
На практике это означает, что без GTIN:
- ❌ Ozon и Wildberries не примут карточку товара на модерацию.
- ❌ Яндекс Маркет снизит позиции в выдаче или скрывает товар.
- ❌ Amazon и eBay могут заблокировать аккаунт за нарушение правил.
Исключения делаются для:
- 🛠️ Уникальных товаров ручной работы (например, авторские украшения).
- 📦 Комплектов, собранных продавцом (если в комплекте нет оригинального GTIN).
- 📄 Цифровых товаров (программ, электронных книг).
⚠️ Внимание: Правила маркетплейсов меняются чаще, чем обновления 1С. Например, Ozon в 2026 году ужесточил требования к GTIN для категорий "Электроника" и "Бытовая техника". Перед выгрузкой проверяйте актуальные условия в личном кабинете площадки.
Подготовка 1С: где хранить GTIN в стандартных конфигурациях
В базовых конфигурациях 1С (УТ 11, Розница 2.3, КА 2) нет отдельного поля для GTIN. Его можно добавить тремя способами:
| Способ | Плюсы | Минусы | Подходит для |
|---|---|---|---|
| Дополнительный реквизит в справочнике "Номенклатура" | ✅ Быстро настраивается ✅ Не требует доработок конфигурации |
❌ Ручное заполнение для каждого товара ❌ Нет автоматической проверки формата |
Малого бизнеса (до 1000 товаров) |
| Отдельный справочник "GTIN" с привязкой к номенклатуре | ✅ Можно хранить историю изменений ✅ Удобно для аналитики |
❌ Требует доработки конфигурации ❌ Сложнее поддерживать |
Крупных компаний с широким ассортиментом |
| Использование поля "Артикул" или "Штрихкод" | ✅ Не нужно ничего дорабатывать | ❌ Конфликт с внутренними кодами ❌ Невозможно хранить несколько GTIN для одного товара |
Временного решения (не рекомендуется) |
Мы рекомендуем первый способ — дополнительный реквизит — как самый сбалансированный. Вот как его добавить:
- Откройте справочник
Номенклатура(разделСправочники → Товары и услуги → Номенклатура). - Перейдите в меню
Все действия → Изменить форму(или нажмитеCtrl+Shift+F2). - В конструкторе формы добавьте новый реквизит:
- 📌 Имя:
GTIN - 📌 Тип:
Строка (20 символов) - 📌 Подсказка: "Укажите EAN-13, UPC или другой стандарт GTIN"
- 📌 Имя:
- Сохраните форму и обновите конфигурацию (
Конфигуратор → Обновление конфигурации базы данных).
Добавить реквизит GTIN в справочник "Номенклатура"|
Настроить права доступа для пользователей|
Проверить формат хранения (строка 13-14 символов)|
Создать резервную копию базы перед изменениями-->
После добавления реквизита поле GTIN появится в карточке каждого товара. Теперь его можно заполнять вручную или через выгрузку из Excel.
⚠️ Внимание: Если вы используете 1С:УНФ (Управление небольшой фирмой), поле для GTIN уже может быть предусмотрено в типовой конфигурации под названием "Код маркировки" или "Идентификатор товара". Проверьте это в справочнике номенклатуры перед доработками.
Автоматическое заполнение GTIN: выгрузка из Excel и обработки
Заполнять GTIN вручную для сотен товаров неэффективно. Рассмотрим два способа автоматизации:
1. Импорт из Excel через "Универсальный обмен данными"
Если у вас есть таблица с GTIN (например, от поставщика или из личного кабинета GS1), её можно загрузить в 1С:
- Подготовьте файл Excel с колонками:
- 📄
Артикул(для сопоставления с 1С) - 📄
GTIN(13 или 14 цифр) - 📄
Наименование(опционально, для проверки)
- 📄
Администрирование → Обмен данными → Универсальный обмен.- 📌 Тип: "Табличный документ (Excel)"
- 📌 Назначение: "Импорт данных"
Источник: Колонка "GTIN" → Приёмник: Реквизит "GTIN" (Номенклатура)
Источник: Колонка "Артикул" → Приёмник: Поле "Артикул" (Номенклатура)
Если при загрузке возникают ошибки типа "Не найден объект для загрузки", значит:
- ❌ Артикулы в Excel не совпадают с артикулами в 1С.
- ❌ В таблице есть пустые ячейки в колонке
GTIN. - ❌ Формат ячеек в Excel установлен как "Текстовый", а не "Числовой" (GTIN не должен терять ведущие нули!).
2. Обработка для массового заполнения GTIN
Для ускорения работы можно использовать готовые обработки, например:
- 🔧 "Загрузка GTIN из файла" (доступна на Инфостарт или 1С-Софт).
- 🔧 "Пакетное редактирование номенклатуры" (входит в некоторые дистрибутивы 1С).
- 🔧 "GTIN-менеджер" (платное решение с проверкой валидности кодов).
Пример кода для простой обработки (можно вставить в Конфигуратор → Модули → Новый модуль):
Процедура ЗаполнитьGTIN()
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Артикул");
Таблица.Колонки.Добавить("GTIN");
// Загрузка данных из файла (путь укажите свой)
ПутьКФайлу = "C:\GTIN\коды.xlsx";
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ПутьКФайлу);
Для Каждого Строка Из ТабличныйДокумент.Область("A2:C1000").ВыбратьСтроки() Цикл
Артикул = Строка.Ячейки.Артикул.Значение;
КодGTIN = Строка.Ячейки.GTIN.Значение;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Артикул = &Артикул";
Запрос.УстановитьПараметр("Артикул", Артикул);
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
Товар = Результат.Получить(0).Ссылка;
Товар.GTIN = КодGTIN;
Товар.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Этот скрипт:
- Читает данные из Excel-файла.
- Ищет товар в 1С по артикулу.
- Записывает GTIN в соответствующее поле.
⚠️ Внимание: Перед запуском массовых обработок обязательно сделайте резервную копию базы! Ошибки в коде могут привести к потере данных или дублированию GTIN.
Проверка GTIN на валидность прямо в 1С
Один из самых частых проблем при работе с GTIN — невалидные коды. Маркетплейсы отказывают в модерации, если:
- ❌ Код содержит буквы или символы (должны быть только цифры).
- ❌ Неправильная длина (EAN-13 должен быть ровно 13 цифр, UPC — 12).
- ❌ Некорректная контрольная цифра (последний символ кода).
- ❌ Код начинается с
0(для EAN-13) или2(зарезервировано для внутреннего использования).
Чтобы избежать ошибок, добавьте в 1С проверку GTIN при сохранении карточки товара. Для этого:
- Откройте конфигуратор (
Файл → Конфигуратор). - Найдите справочник
Номенклатураи откройте модуль объекта. - Добавьте процедуру
ПередЗаписью:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроводки)
Если НЕ ЗначениеЗаполнено(GTIN) Тогда
Возврат; // Если GTIN не заполнен, пропускаем проверку
КонецЕсли;
// 1. Проверяем формат (только цифры)
Если НЕ СтрочныеФункции.ТолькоЦифры(GTIN) Тогда
Сообщить("GTIN должен содержать только цифры!", СтатусСообщения.Важное);
Отказ = Истина;
Возврат;
КонецЕсли;
// 2. Проверяем длину
ДлинаGTIN = СтрочныеФункции.Длина(GTIN);
Если НЕ (ДлинаGTIN = 13 ИЛИ ДлинаGTIN = 12 ИЛИ ДлинаGTIN = 14) Тогда
Сообщить("Некорректная длина GTIN! Допустимо: 12 (UPC), 13 (EAN-13) или 14 (ITF-14) символов.", СтатусСообщения.Важное);
Отказ = Истина;
Возврат;
КонецЕсли;
// 3. Проверяем контрольную цифру (для EAN-13)
Если ДлинаGTIN = 13 Тогда
КонтрольнаяЦифра = Прав(GTIN, 1);
ОсновнаяЧасть = Лев(GTIN, 12);
РассчитаннаяЦифра = РассчитатьКонтрольнуюЦифруEAN13(ОсновнаяЧасть);
Если КонтрольнаяЦифра <> РассчитаннаяЦифра Тогда
Сообщить("Неверная контрольная цифра в GTIN! Ожидалось: " + РассчитаннаяЦифра, СтатусСообщения.Важное);
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция РассчитатьКонтрольнуюЦифруEAN13(Код12Цифр)
Сумма = 0;
Для Индекс = 1 По 12 Цикл
Цифра = Сред(Код12Цифр, Индекс, 1);
Если Индекс % 2 = 1 Тогда
Сумма = Сумма + Цифра * 1; // Нечётные позиции умножаем на 1
Иначе
Сумма = Сумма + Цифра * 3; // Чётные позиции умножаем на 3
КонецЕсли;
КонецЦикла;
Остаток = Сумма % 10;
Если Остаток = 0 Тогда
Возврат "0";
Иначе
Возврат 10 - Остаток;
КонецЕсли;
КонецФункции
Теперь при попытке сохранить товар с некорректным GTIN 1С покажет ошибку и не даст записать изменения.
Если вы не уверены в правильности GTIN, проверьте его через официальный сервис GS1 (введите код в поле поиска). Это поможет избежать ошибок при модерации на маркетплейсах.
Выгрузка GTIN на маркетплейсы: настройка обмена данными
После заполнения GTIN в 1С нужно настроить его передачу на маркетплейсы. Рассмотрим два варианта:
1. Стандартный обмен через "Коммерческую информацию" (для Ozon, WB, Яндекс Маркет)
Большинство маркетплейсов поддерживают выгрузку через формат CommerceML (или его модификации). Вот как настроить обмен:
- В 1С перейдите в
Администрирование → Обмен с сайтом → Настройка обмена. - Создайте новый обмен с параметрами:
- 📌 Тип обмена: "Выгрузка каталога товаров"
- 📌 Формат: "CommerceML 2.0"
- 📌 Файл выгрузки: укажите путь (например,
C:\Exchange\ozon.xml)
<Предложение>
<Ид>{Номенклатура.Ид}</Ид>
<Наименование>{Номенклатура.Наименование}</Наименование>
<GTIN>{Номенклатура.GTIN}</GTIN> <!-- Добавляем эту строку -->
<Цены>...</Цены>
</Предложение>
Пример корректного блока с GTIN в XML:
<Товар>
<Ид>12345</Ид>
<Наименование>Смартфон Xiaomi Redmi Note 12</Наименование>
<GTIN>6941059602374</GTIN>
<Штрихкод>6941059602374</Штрихкод>
</Товар>
2. Прямая интеграция через API (для крупных продавцов)
Если вы работаете с большими объёмами, лучше использовать прямую выгрузку через API маркетплейса. Например, для Ozon:
- Получите
Client-IDиAPI-Keyв личном кабинете Ozon Seller. - В 1С создайте HTTP-запрос (можно через
HTTPСоединениеили внешнюю обработку). - Формат JSON для передачи GTIN:
{
"items": [
{
"offer_id": "12345",
"name": "Смартфон Xiaomi Redmi Note 12",
"barcode": "6941059602374" // Поле для GTIN
}
]
}
- 🔹 Название поля для GTIN (
barcodeу Ozon,gtinу WB). - 🔹 Формат авторизации (WB использует
Bearer Token). - 🔹 Ограничения на количество запросов в минуту.
- 📌 Указать в настройках обмена, что поле
GTINне обязательно. - 📌 Использовать исключения по категориям (например, для "Handmade").
- 📌 Заменить GTIN на внутренний артикул (но это может не пройти модерацию!).
Пример кода для выгрузки на Ozon (упрощённая версия):
Процедура ВыгрузитьНаOzon()
URL = "https://api-seller.ozon.ru/v2/product/import";
ClientID = "ваш_client_id";
APIKey = "ваш_api_key";
HTTPСоединение = Новый HTTPСоединение(URL);
HTTPСоединение.ДобавитьЗаголовок("Client-ID", ClientID);
HTTPСоединение.ДобавитьЗаголовок("API-Key", APIKey);
HTTPСоединение.ДобавитьЗаголовок("Content-Type", "application/json");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ид КАК offer_id,
| Номенклатура.Наименование КАК name,
| Номенклатура.GTIN КАК barcode
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
JSONData = Новый Структура;
JSONData.Вставить("items", Новый Массив);
Пока Выборка.Следующий() Цикл
ТоварJSON = Новый Структура;
ТоварJSON.Вставить("offer_id", Выборка.offer_id);
ТоварJSON.Вставить("name", Выборка.name);
ТоварJSON.Вставить("barcode", Выборка.barcode);
JSONData.items.Добавить(ТоварJSON);
КонецЦикла;
ТелоЗапроса = Новый ЗаписьJSON;
ТелоЗапроса.УстановитьСтроку(JSONЗапись(JSONData));
Ответ = HTTPСоединение.ОтправитьДляОбработки(ТелоЗапроса, "POST");
Если Ответ.КодСостояния <> 200 Тогда
Сообщить("Ошибка выгрузки: " + Ответ.ПолучитьТекст(), СтатусСообщения.Важное);
Иначе
Сообщить("Выгрузка успешна!", СтатусСообщения.Информация);
КонецЕсли;
КонецПроцедуры
Для Wildberries и Яндекс Маркет логика аналогична, но отличаются:
Перед настройкой обмена проверьте требования маркетплейса к формату GTIN. Например, Wildberries принимает только EAN-13, а Ozon — также UPC и ITF-14.
Типичные ошибки при работе с GTIN в 1С и как их исправить
Даже после настройки обмена продавцы сталкиваются с ошибками. Разберём самые частые:
| Ошибка | Причина | Решение |
|---|---|---|
Invalid GTIN format (на маркетплейсе) |
❌ Неправильная длина кода или контрольная цифра. | ✅ Используйте проверку из раздела про валидацию. |
GTIN not found in GS1 database |
❌ Код не зарегистрирован в GS1 или принадлежит другому производителю. | ✅ Проверьте код на gepir.gs1.org. |
Duplicate GTIN |
❌ Один и тот же код присвоен нескольким товарам. | ✅ Проведите аудит номенклатуры в 1С (см. запрос ниже). |
Missing GTIN для обязательной категории |
❌ Не все товары имеют GTIN (например, в категории "Электроника"). | ✅ Запросите коды у поставщика или получите в GS1 Russia. |
Чтобы найти дубли GTIN в 1С, выполните запрос:
ВЫБРАТЬ
Номенклатура.GTIN КАК GTIN,
КОЛИЧЕСТВО(*) КАК Количество
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.ПометкаУдаления
И ЗначениеЗаполнено(Номенклатура.GTIN)
СГРУППИРОВАТЬ ПО
Номенклатура.GTIN
ИМЕЮЩИЕ
КОЛИЧЕСТВО(*) > 1
Если дубли найдены, исправьте их вручную или с помощью обработки:
Процедура ИсправитьДублиGTIN()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.GTIN КАК GTIN
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления
| И ЗначениеЗаполнено(Номенклатура.GTIN)
|УПОРЯДОЧИТЬ ПО
| GTIN";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
ПредыдущийGTIN = "";
Пока Выборка.Следующий() Цикл
Если Выборка.GTIN = ПредыдущийGTIN Тогда
Товар = Выборка.Ссылка.ПолучитьОбъект();
Товар.GTIN = ""; // Очищаем дублирующий GTIN
Товар.Записать();
Сообщить("Очищен GTIN у товара: " + Товар.Наименование);
КонецЕсли;
ПредыдущийGTIN = Выборка.GTIN;
КонецЦикла;
КонецПроцедуры
Для товаров без GTIN (например, для уникальных позиций) можно:
Что делать, если поставщик не предоставил GTIN?
Если производитель не дал вам GTIN, у вас есть три варианта:
1. Получить код самостоятельно через GS1 Russia (платно, от 5000 руб/год).
2. Использовать исключение (для уникальных товаров или комплектов) — уточните у маркетплейса список категорий, где GTIN не обязателен.
3. Сгенерировать внутренний код в формате EAN-13 (но это нарушает стандарты и может привести к блокировке на некоторых площадках).
Ozon и Wildberries иногда разрешают использовать артикул вместо GTIN для ограниченного списка категорий (например, "Сувениры" или "Товары для творчества"). Но это временное решение — лучше урегулировать вопрос с поставщиком или зарегистрироваться в GS1.GTIN для комплектаций и модификаций: сложные случаи
Особую сложность представляют:
- 📦 Комплекты (наборы из нескольких товаров).