Каждый начинающий пользователь или администратор системы 1С сталкивается с задачей быстрого наполнения базы данных информацией. Одной из наиболее рутинных процедур является привязка штрихкодов к существующим позициям номенклатуры. Пытаться решить эту задачу через Конфигуратор напрямую — распространенная ошибка новичков. Конфигуратор предназначен для изменения структуры базы данных (метаданных) и написания кода программных модулей, но не для прямого импорта пользовательских данных в таблицы.
Для массового добавления штрихкодов в программу 1С:Управление торговлей 11 (УТ 11) существуют гораздо более простые, быстрые и безопасные способы, не требующие программирования и прямого вмешательства в структуру базы данных — для этих целей есть обработка загрузки и обновления номенклатуры и штрихкодов из Excel в 1С:УТ. Проанализируем ситуацию и разберем по шагам три наиболее эффективных метода решения этой задачи.
В первом сообщении темы автор пытается открыть форму списка регистра сведений ШтрихкодыНоменклатуры через Конфигуратор. Однако интерфейс Конфигуратора не поддерживает массовую вставку (Ctrl+C / Ctrl+V) строк из сторонних буферов обмена напрямую в таблицы. Прямое редактирование таблиц через SQL или Конфигуратор может нарушить ссылочную целостность базы данных, так как у каждого элемента номенклатуры в системе есть уникальный внутренний идентификатор (GUID), а не просто текстовое наименование.
Чтобы штрихкоды корректно привязались к товарам, нам необходимо сопоставить текстовые данные или артикулы из прайс-листа Excel с реальными объектами базы данных 1С — также для этого подойдёт универсальный импорт товарного каталога и его параметров из Excel. Рассмотрим, как это сделать штатными средствами предприятия.
В современных релизах конфигурации «1С:Управление торговлей 11» присутствует мощный встроенный инструмент, который позволяет загружать информацию напрямую из таблиц Excel — ускорить процесс поможет обработка автоматической загрузки штрихкодов и номенклатуры из Excel. Рассмотрим подробнее этот процесс:
Ctrl+V.ШтрихкодыНоменклатуры для каждой сопоставленной позиции.Этот классический инструмент от разработчиков фирмы 1С является незаменимым помощником любого администратора. Обработка позволяет загружать данные в любые справочники, документы и регистры сведений напрямую из файлов форматов .xls, .xlsx или .mxl — для этой задачи также есть универсальная загрузка любых данных в справочники и регистры 1С из Excel.
Разберем этот метод по шагам:
ЗагрузкаДанныхИзТабличногоДокумента.epf (ее можно легально скачать с портала ИТС или найти в каталоге шаблонов установленной конфигурации).ШтрихкодыНоменклатуры.Если вы хотите последовать совету из сообщения №1 на форуме и научиться создавать простейшие внешние обработки, рассмотрим пример программного кода, который можно использовать для записи штрихкодов в базу данных.
Для записи данных в независимый регистр сведений используется объект типа РегистрСведенийМенеджерЗаписи. Посмотрим на пример кода, выполняющего запись штрихкода для конкретного товара:
// Создаем менеджер записи для регистра "ШтрихкодыНоменклатуры"
НоваяЗапись = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи();
// Заполняем измерения регистра (уникальные ключи записи)
НоваяЗапись.Штрихкод = "4601234567890"; // Строковое значение штрихкода
// Найдем товар в базе по артикулу
НайденныйТовар = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", "ART-10025");
Если НЕ НайденныйТовар.Пустая() Тогда
НоваяЗапись.Номенклатура = НайденныйТовар;
// Если характеристики не используются, записываем пустую ссылку
НоваяЗапись.Характеристика = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
НоваяЗапись.Упаковка = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка();
Попытка
// Записываем данные в информационную базу с замещением старых записей
НоваяЗапись.Записать(Истина);
Сообщить("Штрихкод успешно привязан к товару: " + НайденныйТовар.Наименование);
Исключение
Сообщить("Не удалось записать штрихкод. Причина: " + ОписаниеОшибки());
КонецПопытки;
Иначе
Сообщить("Внимание! Товар с указанным артикулом не найден в базе данных.");
КонецЕсли;
При написании собственной внешней обработки вы можете поместить данный код внутрь цикла, обходящего строки загруженного файла Excel или созданного на форме табличного документа. Это позволит гибко управлять процессом загрузки и логировать любые нестандартные ситуации.
Чтобы избежать ошибок при массовом импорте данных, проанализируем ключевые особенности работы платформы 1С со штрихкодами:
СЖПРОБЕЛЫ() или воспользоваться программными функциями очистки строк СокрЛП() в 1С.4,60123E+12. Перед началом загрузки обязательно выделите колонку со штрихкодами в Excel, нажмите правой кнопкой мыши, выберите пункт «Формат ячеек» и установите Текстовый формат.Используя описанные выше штатные инструменты, вы сможете быстро решить задачу наполнения базы штрихкодами без привлечения дорогостоящих специалистов и риска повредить данные в информационной базе — также решить этот вопрос поможет готовое решение для загрузки номенклатуры и штрихкодов в 1С:УТ 11.