Массовое создание штрихкодов по приходной накладной в УНФ, редакция 1.6 (1.6.26.185), УНФ, редакция 3.0 (3.0.2.178)

14.03.23

Учетные задачи - Логистика, склад и ТМЦ

Для ускорения работы с номенклатурой в УНФ есть возможность автоматизировать массовое создание штрихкодов для номенклатуры.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Массовое создание штрихкодов по приходной накладной в УНФ, редакция 1.6 (1.6.26.185), УНФ, редакция 3.0 (3.0.2.178):
.epf 9,23Kb
12
12 Скачать (1 SM) Купить за 1 850 руб.

За последние несколько лет, очень сильно распространилась  маркировка товаров и во многих случаях, работа на складе и в магазине происходит уже по кодам маркировки. Но, всеми любимые коды типа EAN13, ещё долгое время не будут вытеснены полностью и будут служить надежным вариантом учета складских остатков. Регулярно для всех программистов возникает задача по ускорению и оптимизации работы складских работников путем сокращения ручных операции. Сделать оптимизацию работы можно различными способами, например, загрузить необходимую информацию о номенклатуре по обмену или через файл загрузки. Но иногда поставщикам лень делать какие-либо дополнительные действия. Поставщики отправляют через ЭДО документ и считают на этом свою миссию законченной, а между тем кладовщику кроме приемки самого товара и кодов маркировки надо завести штрихкоды «от производителя» или сформировать и записать собственные.

В данной статье мы рассмотрим вариант с приходом маркированного товара от производителя и формирования штрихкодов по коду маркировки с выделением из него GTIN, который поставщик использовал для заказа кода маркировки. Полученный GTIN используем для формирования штрихкода EAN13. GTIN является уникальным идентификатором товара и именно его производители, очень часто использую для печати своих EAN13.

Пример протестирован на Управление нашей фирмой, редакция 1.6 (1.6.26.185), Управление нашей фирмой, редакция 3.0 (3.0.2.178).

Задача обработки после принятия маркированного товара и проверки кодов маркировки, сформировать по полученным кодам маркировки штрихкоды EAN13. Если, товар не маркированный, то чтобы не заходить в каждую карточку товара для формирования и записи штрихкода, сформировать и записать свои штрихкоды штучного товара сразу для всех «Приходной накладной». Разберем код маркировки, взятый как случайный пример с сайта честного знака (01)04660068212768(21)JfdaC6MeDQEMz91ffd0929ymi3p633GKY5Vv1T6olD8LdVe0g+jSquYWSP4bDZU53OIkf8Mqbnhu1guGXz8FN6IRrsWThu/DOGdoQ5D6DcA==

Нажимаем на кнопку обработки «Вычислить штрихкоды» и получаем результат. Обратите внимание на начало кода как он должен быть напечатан по всем правилам «(01)04660068212768», GTIN 04660068212768, если убрать у него вначале ноль, тогда как раз и получается EAN13 4660068212768. Я сделал очень простой код, который в запросе использует «Подстроку» и начиная с 6 символа отрезает 13 символов «ПОДСТРОКА(ПриходнаяНакладнаяШтрихкодыУпаковок.ШтрихкодУпаковки.ЗначениеШтрихкода, 6, 13)». Если у поставщика не правильно сформированы коды маркировка, тогда потребуется обрабатывать ошибки отдельно. Не забудьте нажать кнопку «Записать штрихкоды», только после этого они сохранятся! С формированием штрихкода по коду маркировки разобрались, теперь посмотрим, что делать, если к нам пришел не маркированный товар, а нам нужно быстро присвоить штрихкоды. Для начала формирования собственных штрихкодов, так же нажимаем на кнопку обработки «Вычислить штрихкоды», в обработку загружается номенклатура и характеристика, но штрихкоды не заполнены. Для работы потребуется,чтобы в программе было включено формирование собственных штрихкодов. Если формирование собственных штрихкодов включено, нажимаем на кнопку «Сгенерировать и записать свои штрихкоды. Стандартный механизм генерации штрихкодов учитывает только записанные штрихкоды и благодаря этому достигается уникальность штрихкодов в базе данных, поэтому сразу после формирования нового штрихкода, его приходится записывать, чтобы сформировать новый. После выполнения записи штрихкодов, они появятся на форме обработки, повторно записывать их в базу данных не нужно. Ниже я приведу весь код использованный в обработке. Если вы хотите, вставить в 1С как внешнею обработку не забудьте в «модуль объекта» добавить  «СведенияОВнешнейОбработке». Текст «СведенияОВнешнейОбработке» будет приведен после текста модуля формы с соответствующим комментарием.

//// Текст для модуля формы обработки

&НаКлиенте

Процедура ВычислитьШтрихкоды(Команда)

               //// очищаем таблицу 

               МаркировкаТаб.Очистить(); 

               //// запросом находим номенклатуру и если есть коды маркировки вычисляем по ним штрихкод для записи EAN13

               ВычислитьШтрихкодыНаСервере();

               ///// создаем переменную для проверки дублей штрихкодов

               КоличествоВ1С = 0;

               //// готовим данные для сообщения количества дублей штрихкодов

               Для каждого Строка Из МаркировкаТаб Цикл

                              Если Строка.ЕстьВ1С = ИСТИНА Тогда

                                            КоличествоВ1С = КоличествоВ1С +1;  

                              КонецЕсли;

               КонецЦикла;

               //// выводим предупреждение если есть дубли штрихкодов

               Если КоличествоВ1С >0 Тогда

                              //// формируем текст для предупреждения, чтобы не использовать модальный режим 

                              ТекстПредупрежденияКарта = "В 1С уже есть " + КоличествоВ1С + " штрихкодов. Для отмеченых строк штрихкоды создаваться не будут.";

                              //// выводим предупреждение для пользователя       

                              ПоказатьПредупреждение(,ТекстПредупрежденияКарта, 100,"Проверьте таблицу,есть дубли штрихкодов!");

               КонецЕсли;

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



&НаСервере

Процедура ВычислитьШтрихкодыНаСервере()

               //// в запросе используем левое соединение таблиц приходной накладной "Запасы" и "ШтрихкодыУпаковок".             

               Запрос = Новый Запрос;

               Запрос.Текст =

               "ВЫБРАТЬ РАЗЛИЧНЫЕ

               |             ПриходнаяНакладнаяЗапасы.Номенклатура КАК Номенклатура,

               |             ПриходнаяНакладнаяЗапасы.Характеристика КАК Характеристика,

               |               ПОДСТРОКА(ПриходнаяНакладнаяШтрихкодыУпаковок.ШтрихкодУпаковки.ЗначениеШтрихкода, 6, 13) КАК ШтрихкодУпаковкиЗначениеШтрихкода

               |ПОМЕСТИТЬ ШтрихкодыПоПриходнойТаб

               |ИЗ

               |             Документ.ПриходнаяНакладная.Запасы КАК ПриходнаяНакладнаяЗапасы

               |                            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная.ШтрихкодыУпаковок КАК ПриходнаяНакладнаяШтрихкодыУпаковок

               |                            ПО (ПриходнаяНакладнаяШтрихкодыУпаковок.Ссылка = ПриходнаяНакладнаяЗапасы.Ссылка)

               |                                          И ПриходнаяНакладнаяЗапасы.Номенклатура = ПриходнаяНакладнаяШтрихкодыУпаковок.ШтрихкодУпаковки.Номенклатура

               |                                          И ПриходнаяНакладнаяЗапасы.Характеристика = ПриходнаяНакладнаяШтрихкодыУпаковок.ШтрихкодУпаковки.Характеристика

               |ГДЕ

               |             ПриходнаяНакладнаяЗапасы.Ссылка = &Ссылка

               |;

               |

               |////////////////////////////////////////////////////////////////////////////////

               |ВЫБРАТЬ

               |             ШтрихкодыПоПриходнойТаб.Номенклатура КАК Номенклатура,

               |             ШтрихкодыПоПриходнойТаб.Характеристика КАК Характеристика,

               |             ШтрихкодыПоПриходнойТаб.ШтрихкодУпаковкиЗначениеШтрихкода КАК ШтрихкодУпаковкиЗначениеШтрихкода,

               |             ВЫБОР

               |                            КОГДА ШтрихкодыПоПриходнойТаб.ШтрихкодУпаковкиЗначениеШтрихкода = ШтрихкодыНоменклатуры.Штрихкод

               |                                          ТОГДА ИСТИНА

               |                            ИНАЧЕ ЛОЖЬ

               |             КОНЕЦ КАК ЕстьВ1С

               |ИЗ

               |             ШтрихкодыПоПриходнойТаб КАК ШтрихкодыПоПриходнойТаб

               |                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры

               |                            ПО ШтрихкодыПоПриходнойТаб.ШтрихкодУпаковкиЗначениеШтрихкода = ШтрихкодыНоменклатуры.Штрихкод";

              

               //// устанавливаем параметры запроса. В нашем случаи, это ссылка на выбранный документ

               Запрос.УстановитьПараметр("Ссылка", Объект.ПриходнаяНакладная);

               //// выполняем запрос

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

               //// выгружаем полученные данные для загрузки в таблицу

               ДляВыгрузкиТаб = РезультатЗапроса.Выгрузить();

               //// загружаем результат выгрузки в табличную часть обработки

               МаркировкаТаб.Загрузить(ДляВыгрузкиТаб);

              

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



&НаКлиенте

Процедура ЗаписатьШтрихкоды(Команда)

               //// вызываем серверную процедуру

               ЗаписатьШтрихкодыНаСервере();

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



&НаСервере

Процедура ЗаписатьШтрихкодыНаСервере()

               //// из табличной части обработки получем: номенклатуру ,характеристику и штрихкод для записи в регистр сведений

               Для каждого Строка Из МаркировкаТаб Цикл

                              //// по условию отбираем строки только которые не являются дублями штрихкодов

                              Если  Строка.ЕстьВ1С = ЛОЖЬ Тогда

                                            //// в УНФ штрихкоды храняться в регистре сведений "ШтрихкодыНоменклатуры", создаем запись

                                            НовыйШтрихкод = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи();   

                                            НовыйШтрихкод.Номенклатура = Строка.Номенклатура;

                                            НовыйШтрихкод.Характеристика = Строка.Характеристика;

                                            НовыйШтрихкод.Штрихкод = Строка.ШтрихкодУпаковкиЗначениеШтрихкода;

                                            //// используем "попытку", чтобы в случаи ошибки знать подробности без захода в журнал регистрации

                                            Попытка

                                                           НовыйШтрихкод.Записать();

                                            Исключение

                                                           //// ОписаниеОшибки() получает краткое описание для сообщения пользователю

                                                           ОшибкаДляПользователя = ОписаниеОшибки();

                                                           Сообщить("Запись не удалась. " + ОшибкаДляПользователя);

                                            КонецПопытки;

                              КонецЕсли;

               КонецЦикла;

               //// для пользователя выводим сообщение об окончании работы

               Сообщить("Обработка закончена.");

              

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

//// команда устанавливает отметку во всей табличной части обработки

&НаКлиенте

Процедура УстановитьОтметку(Команда)

               Для каждого Строка Из МаркировкаТаб Цикл

                              Строка.ЕстьВ1С = ИСТИНА;

               КонецЦикла;

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

//// команда снимает отметку во всей табличной части обработки

&НаКлиенте

Процедура СнятьОтметку(Команда)

               Для каждого Строка Из МаркировкаТаб Цикл

                              Строка.ЕстьВ1С = ЛОЖЬ;

               КонецЦикла;

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

//// команда использует стандартный механизм генерации штрихкодов для штучного товара УНФ,

//// так как следующий уникальный штрихкод можно получить только после записи, записываем полученный до генерации следующего

&НаКлиенте

Процедура СгенерироватьСвоиШтрихкоды(Команда)

               //// генерируем штрихкоды по табличной части обработки

               Для каждого Строка Из МаркировкаТаб Цикл

                              Если Строка.ЕстьВ1С = ЛОЖЬ Тогда

                                            //// говоим данные для записи штрихкода

                                            НоменклатураДляЗаписи = Строка.Номенклатура;

                                            ХарактеристикаДляЗаписи = Строка.Характеристика;

                                            ШтрихкодДляЗаписи = СформироватьШтрихкодEAN13();

                                            Строка.ШтрихкодУпаковкиЗначениеШтрихкода =ШтрихкодДляЗаписи;

                                            //// записываем штрихкод

                                             ЗаписатьСвоиШтрихкодыНаСервере(НоменклатураДляЗаписи,ХарактеристикаДляЗаписи,ШтрихкодДляЗаписи);

                              КонецЕсли;

               КонецЦикла;

               //// сообщаем пользователю об окончании работы

               Сообщить("Обработка закончена.");

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



// Формирует штрихкод EAN13.

//

&НаСервереБезКонтекста

Функция СформироватьШтрихкодEAN13()

              

               Возврат РегистрыСведений.ШтрихкодыНоменклатуры.СформироватьШтрихкодEAN13();

              

КонецФункции // Сформировать   

//// записываем штрихкоды, которые уже были сгенерированы стандартной функцией УНФ

&НаСервере

Процедура ЗаписатьСвоиШтрихкодыНаСервере(НоменклатураДляЗаписи,ХарактеристикаДляЗаписи,ШтрихкодДляЗаписи)

               //// из полученных данных готовим необходимые поля для записи: Номенклатура, Характеристика, Штрихкод.

               НовыйШтрихкод = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи();   

               НовыйШтрихкод.Номенклатура = НоменклатураДляЗаписи;

               НовыйШтрихкод.Характеристика = ХарактеристикаДляЗаписи;

               НовыйШтрихкод.Штрихкод = ШтрихкодДляЗаписи;

               //// используем "попытку", чтобы в случаи ошибки знать подробности без захода в журнал регистрации

               Попытка

                              НовыйШтрихкод.Записать();

               Исключение

                              //// ОписаниеОшибки() получает краткое описание для сообщения пользователю

                              ОшибкаДляПользователя = ОписаниеОшибки();

                              Сообщить("Запись не удалась. " + ОшибкаДляПользователя);

               КонецПопытки;

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

//// текст для модуля объекта обработки

Функция СведенияОВнешнейОбработке() Экспорт

              

               ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.1.3.1");

              

               ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();

               ПараметрыРегистрации.Версия = "1.0";

               ПараметрыРегистрации.БезопасныйРежим = Ложь;

              

               НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();

               НоваяКоманда.Представление = НСтр("ru = 'Создание штрихкодов по приходной'");

               НоваяКоманда.Идентификатор = "Создание штрихкодов по приходной";

               НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();

               НоваяКоманда.ПоказыватьОповещение = Истина;

              

               Возврат ПараметрыРегистрации;

              

КонецФункции

 

обработка штрихкоды массовое формирование УНФ Приходная накладная

См. также

Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

89900 руб.

09.06.2020    38692    28    59    

64

SALE! 10%

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

55778 50200 руб.

24.04.2015    194967    150    243    

280

Логистика, склад и ТМЦ Платформа 1С v8.3 Россия Платные (руб)

Подсистема автоматизированного управления складом AS WMS для конфигураций на платформе 1С 8. AS WMS – готовое решение для эффективного управления, хранения и учета на адресном складе. Внедрение системы AS WMS способствует быстрому отбору товара, ускорению инвентаризации, снижению зависимости от персонала, исключению пересорта. AS WMS встраивается в любую конфигурацию на платформе 1С 8 и работает как единая система без обменов. В учетной системе нет необходимости менять процессы под AS WMS (например, вводить ордерную схему), AS WMS использует стандартные документы по товародвижению вашей учетной системы.

40000 руб.

26.07.2023    6081    21    0    

12

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.10.2024, версия 9.8 - 9.13)

15600 руб.

20.11.2015    156090    376    378    

513

Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Сельское хозяйство и рыболовство Строительство Горнодобывающая промышленность Розничная и сетевая торговля (FMCG) Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Лесное и деревообрабатывающее хозяйство Управленческий учет Платные (руб)

Позволяет автоматизировать процесс взвешивания ТМЦ в организациях, осуществляющих приемку и отгрузку различным транспортом, для ведения складского учета и контроля остатков на складах. Конфигурация позволяет фиксировать вес вручную, напрямую с весов, а также управлять дополнительным оборудованием и контролировать движение транспорта.

35000 руб.

24.03.2015    125674    300    114    

136

SALE! 15%

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

11100 9435 руб.

29.10.2014    216757    657    527    

456

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Пользователь Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

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

28500 руб.

21.04.2017    96387    125    40    

214
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1684662 12.05.23 11:10 Сейчас в теме
Обработка только по приходной работает? А если мне нужно просто для всей номенклатуры с отбором?
Оставьте свое сообщение