|
Разработать штрихкод. | ☑ | ||
---|---|---|---|---|
0
Solitar
18.09.11
✎
16:52
|
Есть код номенклатур, например, 000001105 и есть штрих код 2301105000000.
штрих код формируется так "23"+5 последних символов кода + 5 нулей + случайная цифра . мб у кого нить есть похожие наработки или кто знает как все эта данные соединить в штрих код? какая процедура или функция уже есть в 1с для соединения строк? |
|||
1
DSSS
18.09.11
✎
16:54
|
(0) в типовой УТ смотри процедуру формирования нового ШК для номенклатуры.
|
|||
2
muffol
18.09.11
✎
16:55
|
Зачем изобретать велик? В УТ глянь
|
|||
3
vudo
18.09.11
✎
17:18
|
||||
4
vudo
18.09.11
✎
17:26
|
Вот так у меня было. Где взял не помню...
// Функция осуществляет преобразование PLU в штрихкод. // // Параметры: // ПЛУ - <Строка> // - PLU товара. // // Возвращаемое значение: // <Строка> - Штрихкод. // Функция ПолучитьШтрихкодПЛУ(ПЛУ,ЭтоКод = Ложь) Если ЭтоКод Тогда Возврат Формат(Число(ПЛУ), "ЧДЦ=0; ЧГ="); КонецЕсли; Штрихкод = ПЛУ; Если СтрДлина(Штрихкод) < 8 Тогда Попытка Штрихкод = Формат(Число(Штрихкод), "ЧЦ=7; ЧДЦ=0; ЧН=0; ЧВН=; ЧГ=0"); Штрихкод = Штрихкод + КонтрольныйСимволEANТО(Штрихкод, 8); Исключение ШтрихКод = "Error"; КонецПопытки; ИначеЕсли СтрДлина(Штрихкод) < 13 И Не ТипШтрихкодаEAN8(Штрихкод) Тогда Попытка Штрихкод = Формат(Число(Штрихкод), "ЧЦ=12; ЧДЦ=0; ЧН=0; ЧВН=; ЧГ=0"); Штрихкод = Штрихкод + КонтрольныйСимволEANТО(Штрихкод, 13); Исключение ШтрихКод = "Error"; КонецПопытки; КонецЕсли; Возврат Штрихкод; КонецФункции // ПолучитьШтрихкодПЛУ() ////////////////////////////////////////////////////////////////////////////// // ФУНКЦИИ РАБОТЫ СО ШТРИХКОДАМИ // Функция возвращает результат проверки строки на предмет соответствия // штрихкоду формата EAN8. // // Параметры: // Штрихкод - <Строка> // - Проверяемый штрихкод. // // Возвращаемое значение: // <Булево> - Результат проверки. // Функция ТипШтрихкодаEAN8(Штрихкод) Результат = Ложь; Сумма = 0; Коэффициент = 3; Если СтрДлина(Штрихкод) = 8 Тогда Индекс = Неопределено; Для Индекс = 1 По 7 Цикл КодСимв = КодСимвола(Штрихкод, Индекс); Если КодСимв < 48 Или КодСимв > 57 Тогда Возврат Результат; КонецЕсли; Сумма = Сумма + Коэффициент * (КодСимв - 48); Коэффициент = 4 - Коэффициент; КонецЦикла; Сумма = (10 - Сумма % 10) % 10; Результат = (КодСимвола(Штрихкод, 8) = Сумма + 48); КонецЕсли; Возврат Результат; КонецФункции // ТипШтрихкодаEAN8ТО() // Функция вычисляет контрольный символ кода EAN // // Параметры: // ШтрихКод - штрих-код (без контрольной цифры) // Тип - тип штрих-кода: 13 - EAN13, 8 - EAN8 // // Возвращаемое значение: // Контрольный символ штрих-кода // Функция КонтрольныйСимволEANТО(ШтрихКод, Тип) Четн = 0; Нечетн = 0; КоличествоИтераций = ?(Тип = 13, 6, 4); Для Индекс = 1 По КоличествоИтераций Цикл Если (Тип = 8) и (Индекс = КоличествоИтераций) Тогда Иначе Четн = Четн + Сред(ШтрихКод, 2 * Индекс, 1); КонецЕсли; Нечетн = Нечетн + Сред(ШтрихКод, 2 * Индекс - 1, 1); КонецЦикла; Если Тип = 13 Тогда Четн = Четн * 3; Иначе Нечетн = Нечетн * 3; КонецЕсли; КонтЦифра = 10 - (Четн + Нечетн) % 10; Возврат ?(КонтЦифра = 10, "0", Строка(КонтЦифра)); КонецФункции // КонтрольныйСимволEAN() |
|||
5
Solitar
18.09.11
✎
20:35
|
vudo огромное спасибо за листинг.
глянул ут, переделал под себя. огромное спасибо всем) х3 вроде правильно. Функция ШтрихКодНаСервере(Парам1,ПрефиксВнутреннегоШтрихкода = "00000") Штрихкод = "23"+Формат(Число(Парам1), "ЧЦ=5; ЧВН=; ЧГ=")+ПрефиксВнутреннегоШтрихкода; Штрихкод = Штрихкод + КонтрольныйСимволEANТО(Штрихкод, 13); Возврат Штрихкод; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |