Генерация штрихкодов для весового (дробного) товара. Далион УНО

28.12.24

Задачи пользователя - Этикетки, ценники

Для пользователей Софтбаланс Далион УНО. Обработка генерирует весовой штрихкод для выбранного товара, по введенному количеству. Есть возможность добавить сгенерированный штрихкод к выбранной номенклатуре, с базовой единицей измерения.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Генерация ШК для весового (дробного) товара для Далион УНО:
.epf 8,37Kb
0
0 Скачать (1 SM) Купить за 1 850 руб.

При автоматизации пивного магазина возникла необходимость печати этикеток с определенным заказчиком объемом пива, например 1,5 л, 2 литра и т.д.. Этикетка должна быть со штрихкодом, чтобы кассир мог быстро внести товар в чек сканером штрихкода.

Оказалось, что такого функционала в Далионе нет. Есть возможность набрать штрихкод вручную, но контрольный символ нужно генерировать на сторонних сайтах, что не вполне удобно, пользователи путаются. Решил проблему написанием обработки. Для тех кто в теме прилагаю текст модулей. Спасибо разработчикам Далиона, за алгоритм расчета контрольного символа. Все остальные могут скачать готовый вариант для EAN 13.

Процедура ГенерироватьШКНажатие(Элемент)
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Номенклатура.Код КАК Артикул
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	Номенклатура.Ссылка = &Номенклатура";
	
	Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
	
	ТЗ = Запрос.Выполнить().Выгрузить();
	
	Артикул = ТЗ[0].Артикул;
	
	
	
	Артикул = ДобитьСтрокуНулями(Артикул,5); 
	
	
	Количество = ВесОбъемИзЧисла(ОбъемВес);
	Количество = ДобитьСтрокуНулями(Количество,5);
	
	Префикс = Справочники.ФорматыШтрихКодов.ВключаетКоличество.ПрефиксШК;
	
	ШК = Префикс+Артикул+Количество;
	
	ШК = Префикс+Артикул+Количество+КонтрольныйСимволEAN1(ШК,13); 
	
	
КонецПроцедуры

Процедура ДобавитьШККНоменклатуреНажатие(Элемент)
	ТекЗапись = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
	ЕдиницаИзмеренияДляШтрихКода = Номенклатура.БазоваяЕдиницаИзмерения; 
	
	ТекЗапись.Номенклатура     = Номенклатура;
	ТекЗапись.НеИспользуется   = Ложь;
	ТекЗапись.ТипШтрихКода     = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
	ТекЗапись.ЕдиницаИзмерения = ЕдиницаИзмеренияДляШтрихКода;
	
	ТекЗапись.ШтрихКод = ШК;
	ТекЗапись.Записать(Истина);
КонецПроцедуры


// Добить строку до нужной длины нулями

Функция ДобитьСтрокуНулями(Строка,ДлинаСтр)
	Инд = ДлинаСтр - СтрДлина(Строка);
	
	Пока Инд <> 0  Цикл
		
		Строка = "0"+Строка;
		Инд = Инд - 1;
		
	КонецЦикла;
	Возврат Строка
КонецФункции

// Функция вычисляет контрольный символ кода EAN
//
// Параметры:
//  ШтрихКод     - штрих-код (без контрольной цифры)
//  Тип          - тип штрих-кода: 13 - EAN13, 8 - EAN8
//
// Возвращаемое значение:
//  Контрольный символ штрих-кода
//
Функция КонтрольныйСимволEAN1(ШтрихКод, Тип) 
	
	Четн   = 0;
	Нечетн = 0;
	
	КоличествоИтераций = ?(Тип = 13, 6, 4);
	
	Для Индекс = 1 По КоличествоИтераций Цикл
		Если (Тип = 8) и (Индекс = КоличествоИтераций) Тогда
		Иначе
			Четн   = Четн   + Сред(ШтрихКод, 2 * Индекс, 1);
		КонецЕсли;
		Нечетн = Нечетн + Сред(ШтрихКод, 2 * Индекс - 1, 1);
	КонецЦикла;
	
	Если Тип = 13 Тогда
		Четн = Четн * 3;
	Иначе
		Нечетн = Нечетн * 3;
	КонецЕсли;
	
	КонтЦифра = 10 - (Четн + Нечетн) % 10;
	
	Возврат ?(КонтЦифра = 10, "0", Строка(КонтЦифра));
	
КонецФункции // КонтрольныйСимволEAN()

Функция ВесОбъемИзЧисла(Число)
	
	Инд = СтрНайти(Число,",");
	Если Инд > 0 Тогда
		Стр = Сред(Число,Инд+1);
		Если СтрДлина(Стр) = 2 Тогда  //0,53
			Стр = СтрЗаменить(Число,",","");
			Стр = Стр + "0";
		ИначеЕсли СтрДлина(Стр) = 1 Тогда   //0,5
			Стр = СтрЗаменить(Число,",","");
			Стр = Стр + "00";
		ИначеЕсли СтрДлина(Стр) = 3 Тогда   //0,555
			Стр = СтрЗаменить(Число,",","");
		КонецЕсли;
	Иначе // запятая не найдено, значит у нас целое число  1,000
		СтрЧисло = Строка(Число); 
		Стр = СтрЧисло + "000";	
	КонецЕсли;
	
	Возврат Стр
	
КонецФункции // ВесОбъемИзЧисла()


Проверялось на ДАЛИОН: Управление магазином. ПРО, ред. 2.0 (2.0.37.02).

Обработка на обычных формах.

генерация штрихкода весового товара

См. также

Этикетки, ценники Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Беларусь Украина Россия Управленческий учет Платные (руб)

Простая в использовании обработка для формирования и печати ценников и этикеток со штрих-кодом, с дополнительной ценой, для 1С8.х Большое разнообразие шаблонов печатных форм. Управляемая форма (Такси) + Обычный режим.

3588 руб.

11.11.2020    50110    63    48    

72

Этикетки, ценники Пользователь Платформа 1С v8.3 1С:Розница 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Абонемент ($m)

Расширение "Контроль ценников". Позволяет автоматизировать контроль над устаревшими ценниками в магазине при изменении цен на товары. Продавцы или товароведы получают список товаров с измененными ценами для замены ценников в режиме онлайн.

10 стартмани

30.10.2024    468    4    Miket78    4    

5

Этикетки, ценники Пользователь Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Внешняя обработка для 1С Розница 2.2.ХХХ - 2.3.ХХХ для печати формирования штрихкодов весового товара и печати на принтере термоэтикеток или кассовом аппарате.

1 стартмани

29.10.2024    486    7    independ    1    

6

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

Выводит при печати этикетки складской ячейки в качестве штрихкода адрес ячейки вместо уникального идентификатора

1 стартмани

20.06.2024    1437    3    Alexei_Siva    4    

6

Этикетки, ценники Программист Мобильная платформа Бесплатно (free)

Печать этикеток на принтер WiFi без драйвера.

20.01.2023    2760    aldar    0    

12

Этикетки, ценники Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Абонемент ($m)

Внешняя печатная форма для принтера этикеток. В отличие от базовой обработки для печати этикеток эта может выводить на печать дополнительные свойства справочника Номенклатура, а также в ней несложный программный код, что позволяет легко дорабатывать обработку под свои нужды.

2 стартмани

03.01.2023    4338    32    AndreyPonom    9    

11

Этикетки, ценники Пользователь Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Абонемент ($m)

Архив с экспортными шаблонами этикеток (ценников) формата 58х40. Для тех, кто не хочет сам рисовать их.

4 стартмани

04.05.2022    16445    57    aximo    3    

12
Оставьте свое сообщение