Вот, дарю. Переделал твою обработку.
Функция ПолучитьСимволыШК_КОДЕ128(ТЗ_СимволыБарКода,ВзялИндекс)
ВзялЭлемент = "" + ТЗ_СимволыБарКода.Получить(ВзялИндекс).Значение;
Результат = "";
Для А = 1 По СтрДлина(ВзялЭлемент)/2 Цикл
Результат = Результат + Символ(37 + Сред(ВзялЭлемент,(А-1)*2+1,2));
КонецЦикла;
Возврат Результат;
КонецФункции
Функция СформироватьШК_КОДЕ128(ИсходнаяСтрока)
ТЗ_СимволыБарКода=ЗначениеИзСтрокиВнутр("{""#"",acf6192e-81ca-46ef-93a6-5a6968b78663,{9,{1,{0,""Значение"",{""Pattern"",{""S""}},"""",0}},{2,1,0,0,{1,107,{2,0,1,{""S"",""212222""},0},{2,1,1,{""S"",""222122""},0},{2,2,1,{""S"",""222221""},0},{2,3,1,{""S"",""121223""},0},{2,4,1,{""S"",""121322""},0},{2,5,1,{""S"",""131222""},0},{2,6,1,{""S"",""122213""},0},{2,7,1,{""S"",""122312""},0},{2,8,1,{""S"",""132212""},0},{2,9,1,{""S"",""221213""},0},{2,10,1,{""S"",""221312""},0},{2,11,1,{""S"",""231212""},0},{2,12,1,{""S"",""112232""},0},{2,13,1,{""S"",""122132""},0},{2,14,1,{""S"",""122231""},0},{2,15,1,{""S"",""113222""},0},{2,16,1,{""S"",""123122""},0},{2,17,1,{""S"",""123221""},0},{2,18,1,{""S"",""223211""},0},{2,19,1,{""S"",""221132""},0},{2,20,1,{""S"",""221231""},0},{2,21,1,{""S"",""213212""},0},{2,22,1,{""S"",""223112""},0},{2,23,1,{""S"",""312131""},0},{2,24,1,{""S"",""311222""},0},{2,25,1,{""S"",""321122""},0},{2,26,1,{""S"",""321221""},0},{2,27,1,{""S"",""312212""},0},{2,28,1,{""S"",""322112""},0},{2,29,1,{""S"",""322211""},0},{2,30,1,{""S"",""212123""},0},{2,31,1,{""S"",""212321""},0},{2,32,1,{""S"",""232121""},0},{2,33,1,{""S"",""111323""},0},{2,34,1,{""S"",""131123""},0},{2,35,1,{""S"",""131321""},0},{2,36,1,{""S"",""112313""},0},{2,37,1,{""S"",""132113""},0},{2,38,1,{""S"",""132311""},0},{2,39,1,{""S"",""211313""},0},{2,40,1,{""S"",""231113""},0},{2,41,1,{""S"",""231311""},0},{2,42,1,{""S"",""112133""},0},{2,43,1,{""S"",""112331""},0},{2,44,1,{""S"",""132131""},0},{2,45,1,{""S"",""113123""},0},{2,46,1,{""S"",""113321""},0},{2,47,1,{""S"",""133121""},0},{2,48,1,{""S"",""313121""},0},{2,49,1,{""S"",""211331""},0},{2,50,1,{""S"",""231131""},0},{2,51,1,{""S"",""213113""},0},{2,52,1,{""S"",""213311""},0},{2,53,1,{""S"",""213131""},0},{2,54,1,{""S"",""311123""},0},{2,55,1,{""S"",""311321""},0},{2,56,1,{""S"",""331121""},0},{2,57,1,{""S"",""312113""},0},{2,58,1,{""S"",""312311""},0},{2,59,1,{""S"",""332111""},0},{2,60,1,{""S"",""314111""},0},{2,61,1,{""S"",""221411""},0},{2,62,1,{""S"",""431111""},0},{2,63,1,{""S"",""111224""},0},{2,64,1,{""S"",""111422""},0},{2,65,1,{""S"",""121124""},0},{2,66,1,{""S"",""121421""},0},{2,67,1,{""S"",""141122""},0},{2,68,1,{""S"",""141221""},0},{2,69,1,{""S"",""112214""},0},{2,70,1,{""S"",""112412""},0},{2,71,1,{""S"",""122114""},0},{2,72,1,{""S"",""122411""},0},{2,73,1,{""S"",""142112""},0},{2,74,1,{""S"",""142211""},0},{2,75,1,{""S"",""241211""},0},{2,76,1,{""S"",""221114""},0},{2,77,1,{""S"",""413111""},0},{2,78,1,{""S"",""241112""},0},{2,79,1,{""S"",""134111""},0},{2,80,1,{""S"",""111242""},0},{2,81,1,{""S"",""121142""},0},{2,82,1,{""S"",""121241""},0},{2,83,1,{""S"",""114212""},0},{2,84,1,{""S"",""124112""},0},{2,85,1,{""S"",""124211""},0},{2,86,1,{""S"",""411212""},0},{2,87,1,{""S"",""421112""},0},{2,88,1,{""S"",""421211""},0},{2,89,1,{""S"",""212141""},0},{2,90,1,{""S"",""214121""},0},{2,91,1,{""S"",""412121""},0},{2,92,1,{""S"",""111143""},0},{2,93,1,{""S"",""111341""},0},{2,94,1,{""S"",""131141""},0},{2,95,1,{""S"",""114113""},0},{2,96,1,{""S"",""114311""},0},{2,97,1,{""S"",""411113""},0},{2,98,1,{""S"",""411311""},0},{2,99,1,{""S"",""113141""},0},{2,100,1,{""S"",""114131""},0},{2,101,1,{""S"",""311141""},0},{2,102,1,{""S"",""411131""},0},{2,103,1,{""S"",""211412""},0},{2,104,1,{""S"",""211214""},0},{2,105,1,{""S"",""211232""},0},{2,106,1,{""S"",""23311121""},0}},0,106},{0,0}}}");
ТЗ_НаборCodeB=ЗначениеИзСтрокиВнутр("{""#"",acf6192e-81ca-46ef-93a6-5a6968b78663,{9,{2,{0,""Индекс"",{""Pattern"",{""N""}},"""",0},{1,""Значение"",{""Pattern"",{""S""}},"""",0}},{2,2,0,0,1,1,{1,95,{2,0,2,{""N"",0},{""S"","" ""},0},{2,1,2,{""N"",1},{""S"",""!""},0},{2,2,2,{""N"",2},{""S"",""""""""},0},{2,3,2,{""N"",3},{""S"",""#""},0},{2,4,2,{""N"",4},{""S"",""$""},0},{2,5,2,{""N"",5},{""S"",""%""},0},{2,6,2,{""N"",6},{""S"",""&""},0},{2,7,2,{""N"",7},{""S"",""'""},0},{2,8,2,{""N"",8},{""S"",""(""},0},{2,9,2,{""N"",9},{""S"","")""},0},{2,10,2,{""N"",10},{""S"",""*""},0},{2,11,2,{""N"",11},{""S"",""+""},0},{2,12,2,{""N"",12},{""S"","",""},0},{2,13,2,{""N"",13},{""S"",""-""},0},{2,14,2,{""N"",14},{""S"","".""},0},{2,15,2,{""N"",15},{""S"",""/""},0},{2,16,2,{""N"",16},{""S"",""0""},0},{2,17,2,{""N"",17},{""S"",""1""},0},{2,18,2,{""N"",18},{""S"",""2""},0},{2,19,2,{""N"",19},{""S"",""3""},0},{2,20,2,{""N"",20},{""S"",""4""},0},{2,21,2,{""N"",21},{""S"",""5""},0},{2,22,2,{""N"",22},{""S"",""6""},0},{2,23,2,{""N"",23},{""S"",""7""},0},{2,24,2,{""N"",24},{""S"",""8""},0},{2,25,2,{""N"",25},{""S"",""9""},0},{2,26,2,{""N"",26},{""S"","":""},0},{2,27,2,{""N"",27},{""S"","";""},0},{2,28,2,{""N"",28},{""S"",""<""},0},{2,29,2,{""N"",29},{""S"",""=""},0},{2,30,2,{""N"",30},{""S"","">""},0},{2,31,2,{""N"",31},{""S"",""?""},0},{2,32,2,{""N"",32},{""S"",""@""},0},{2,33,2,{""N"",33},{""S"",""A""},0},{2,34,2,{""N"",34},{""S"",""B""},0},{2,35,2,{""N"",35},{""S"",""C""},0},{2,36,2,{""N"",36},{""S"",""D""},0},{2,37,2,{""N"",37},{""S"",""E""},0},{2,38,2,{""N"",38},{""S"",""F""},0},{2,39,2,{""N"",39},{""S"",""G""},0},{2,40,2,{""N"",40},{""S"",""H""},0},{2,41,2,{""N"",41},{""S"",""I""},0},{2,42,2,{""N"",42},{""S"",""J""},0},{2,43,2,{""N"",43},{""S"",""K""},0},{2,44,2,{""N"",44},{""S"",""L""},0},{2,45,2,{""N"",45},{""S"",""M""},0},{2,46,2,{""N"",46},{""S"",""N""},0},{2,47,2,{""N"",47},{""S"",""O""},0},{2,48,2,{""N"",48},{""S"",""P""},0},{2,49,2,{""N"",49},{""S"",""Q""},0},{2,50,2,{""N"",50},{""S"",""R""},0},{2,51,2,{""N"",51},{""S"",""S""},0},{2,52,2,{""N"",52},{""S"",""T""},0},{2,53,2,{""N"",53},{""S"",""U""},0},{2,54,2,{""N"",54},{""S"",""V""},0},{2,55,2,{""N"",55},{""S"",""W""},0},{2,56,2,{""N"",56},{""S"",""X""},0},{2,57,2,{""N"",57},{""S"",""Y""},0},{2,58,2,{""N"",58},{""S"",""Z""},0},{2,59,2,{""N"",59},{""S"",""[""},0},{2,60,2,{""N"",60},{""S"",""\""},0},{2,61,2,{""N"",61},{""S"",""]""},0},{2,62,2,{""N"",62},{""S"",""^""},0},{2,63,2,{""N"",63},{""S"",""_""},0},{2,64,2,{""N"",64},{""S"",""`""},0},{2,65,2,{""N"",65},{""S"",""a""},0},{2,66,2,{""N"",66},{""S"",""b""},0},{2,67,2,{""N"",67},{""S"",""c""},0},{2,68,2,{""N"",68},{""S"",""d""},0},{2,69,2,{""N"",69},{""S"",""e""},0},{2,70,2,{""N"",70},{""S"",""f""},0},{2,71,2,{""N"",71},{""S"",""g""},0},{2,72,2,{""N"",72},{""S"",""h""},0},{2,73,2,{""N"",73},{""S"",""i""},0},{2,74,2,{""N"",74},{""S"",""j""},0},{2,75,2,{""N"",75},{""S"",""k""},0},{2,76,2,{""N"",76},{""S"",""l""},0},{2,77,2,{""N"",77},{""S"",""m""},0},{2,78,2,{""N"",78},{""S"",""n""},0},{2,79,2,{""N"",79},{""S"",""o""},0},{2,80,2,{""N"",80},{""S"",""p""},0},{2,81,2,{""N"",81},{""S"",""q""},0},{2,82,2,{""N"",82},{""S"",""r""},0},{2,83,2,{""N"",83},{""S"",""s""},0},{2,84,2,{""N"",84},{""S"",""t""},0},{2,85,2,{""N"",85},{""S"",""u""},0},{2,86,2,{""N"",86},{""S"",""v""},0},{2,87,2,{""N"",87},{""S"",""w""},0},{2,88,2,{""N"",88},{""S"",""x""},0},{2,89,2,{""N"",89},{""S"",""y""},0},{2,90,2,{""N"",90},{""S"",""z""},0},{2,91,2,{""N"",91},{""S"",""{""},0},{2,92,2,{""N"",92},{""S"",""|""},0},{2,93,2,{""N"",93},{""S"",""}""},0},{2,94,2,{""N"",94},{""S"",""~""},0}},1,94},{0,0}}}");
ТЗ_НаборCodeC=ЗначениеИзСтрокиВнутр("{""#"",acf6192e-81ca-46ef-93a6-5a6968b78663,{9,{2,{0,""Индекс"",{""Pattern"",{""N""}},"""",0},{1,""Значение"",{""Pattern"",{""S""}},"""",0}},{2,2,0,0,1,1,{1,100,{2,0,2,{""N"",0},{""S"",""00""},0},{2,1,2,{""N"",1},{""S"",""01""},0},{2,2,2,{""N"",2},{""S"",""02""},0},{2,3,2,{""N"",3},{""S"",""03""},0},{2,4,2,{""N"",4},{""S"",""04""},0},{2,5,2,{""N"",5},{""S"",""05""},0},{2,6,2,{""N"",6},{""S"",""06""},0},{2,7,2,{""N"",7},{""S"",""07""},0},{2,8,2,{""N"",8},{""S"",""08""},0},{2,9,2,{""N"",9},{""S"",""09""},0},{2,10,2,{""N"",10},{""S"",""10""},0},{2,11,2,{""N"",11},{""S"",""11""},0},{2,12,2,{""N"",12},{""S"",""12""},0},{2,13,2,{""N"",13},{""S"",""13""},0},{2,14,2,{""N"",14},{""S"",""14""},0},{2,15,2,{""N"",15},{""S"",""15""},0},{2,16,2,{""N"",16},{""S"",""16""},0},{2,17,2,{""N"",17},{""S"",""17""},0},{2,18,2,{""N"",18},{""S"",""18""},0},{2,19,2,{""N"",19},{""S"",""19""},0},{2,20,2,{""N"",20},{""S"",""20""},0},{2,21,2,{""N"",21},{""S"",""21""},0},{2,22,2,{""N"",22},{""S"",""22""},0},{2,23,2,{""N"",23},{""S"",""23""},0},{2,24,2,{""N"",24},{""S"",""24""},0},{2,25,2,{""N"",25},{""S"",""25""},0},{2,26,2,{""N"",26},{""S"",""26""},0},{2,27,2,{""N"",27},{""S"",""27""},0},{2,28,2,{""N"",28},{""S"",""28""},0},{2,29,2,{""N"",29},{""S"",""29""},0},{2,30,2,{""N"",30},{""S"",""30""},0},{2,31,2,{""N"",31},{""S"",""31""},0},{2,32,2,{""N"",32},{""S"",""32""},0},{2,33,2,{""N"",33},{""S"",""33""},0},{2,34,2,{""N"",34},{""S"",""34""},0},{2,35,2,{""N"",35},{""S"",""35""},0},{2,36,2,{""N"",36},{""S"",""36""},0},{2,37,2,{""N"",37},{""S"",""37""},0},{2,38,2,{""N"",38},{""S"",""38""},0},{2,39,2,{""N"",39},{""S"",""39""},0},{2,40,2,{""N"",40},{""S"",""40""},0},{2,41,2,{""N"",41},{""S"",""41""},0},{2,42,2,{""N"",42},{""S"",""42""},0},{2,43,2,{""N"",43},{""S"",""43""},0},{2,44,2,{""N"",44},{""S"",""44""},0},{2,45,2,{""N"",45},{""S"",""45""},0},{2,46,2,{""N"",46},{""S"",""46""},0},{2,47,2,{""N"",47},{""S"",""47""},0},{2,48,2,{""N"",48},{""S"",""48""},0},{2,49,2,{""N"",49},{""S"",""49""},0},{2,50,2,{""N"",50},{""S"",""50""},0},{2,51,2,{""N"",51},{""S"",""51""},0},{2,52,2,{""N"",52},{""S"",""52""},0},{2,53,2,{""N"",53},{""S"",""53""},0},{2,54,2,{""N"",54},{""S"",""54""},0},{2,55,2,{""N"",55},{""S"",""55""},0},{2,56,2,{""N"",56},{""S"",""56""},0},{2,57,2,{""N"",57},{""S"",""57""},0},{2,58,2,{""N"",58},{""S"",""58""},0},{2,59,2,{""N"",59},{""S"",""59""},0},{2,60,2,{""N"",60},{""S"",""60""},0},{2,61,2,{""N"",61},{""S"",""61""},0},{2,62,2,{""N"",62},{""S"",""62""},0},{2,63,2,{""N"",63},{""S"",""63""},0},{2,64,2,{""N"",64},{""S"",""64""},0},{2,65,2,{""N"",65},{""S"",""65""},0},{2,66,2,{""N"",66},{""S"",""66""},0},{2,67,2,{""N"",67},{""S"",""67""},0},{2,68,2,{""N"",68},{""S"",""68""},0},{2,69,2,{""N"",69},{""S"",""69""},0},{2,70,2,{""N"",70},{""S"",""70""},0},{2,71,2,{""N"",71},{""S"",""71""},0},{2,72,2,{""N"",72},{""S"",""72""},0},{2,73,2,{""N"",73},{""S"",""73""},0},{2,74,2,{""N"",74},{""S"",""74""},0},{2,75,2,{""N"",75},{""S"",""75""},0},{2,76,2,{""N"",76},{""S"",""76""},0},{2,77,2,{""N"",77},{""S"",""77""},0},{2,78,2,{""N"",78},{""S"",""78""},0},{2,79,2,{""N"",79},{""S"",""79""},0},{2,80,2,{""N"",80},{""S"",""80""},0},{2,81,2,{""N"",81},{""S"",""81""},0},{2,82,2,{""N"",82},{""S"",""82""},0},{2,83,2,{""N"",83},{""S"",""83""},0},{2,84,2,{""N"",84},{""S"",""84""},0},{2,85,2,{""N"",85},{""S"",""85""},0},{2,86,2,{""N"",86},{""S"",""86""},0},{2,87,2,{""N"",87},{""S"",""87""},0},{2,88,2,{""N"",88},{""S"",""88""},0},{2,89,2,{""N"",89},{""S"",""89""},0},{2,90,2,{""N"",90},{""S"",""90""},0},{2,91,2,{""N"",91},{""S"",""91""},0},{2,92,2,{""N"",92},{""S"",""92""},0},{2,93,2,{""N"",93},{""S"",""93""},0},{2,94,2,{""N"",94},{""S"",""94""},0},{2,95,2,{""N"",95},{""S"",""95""},0},{2,96,2,{""N"",96},{""S"",""96""},0},{2,97,2,{""N"",97},{""S"",""97""},0},{2,98,2,{""N"",98},{""S"",""98""},0},{2,99,2,{""N"",99},{""S"",""99""},0}},1,99},{0,0}}}");
//--------------------------------------------------------------------//
ТекущийНабор = "";
СЗ_НомернаяПоследовательность = Новый СписокЗначений;
ТекПоз = 1;
Пока ТекПоз<=СтрДлина(ИсходнаяСтрока) Цикл
СтрокаПоиска=ТЗ_НаборCodeC.Найти(Сред(ИсходнаяСтрока,ТекПоз,2),"Значение");
Если СтрокаПоиска<>Неопределено Тогда // последовательность из двух цифр - CODE C
Если ТекущийНабор <> 105 Тогда
Если ПустаяСтрока(ТекущийНабор) Тогда
СЗ_НомернаяПоследовательность.Добавить(105);
Иначе
СЗ_НомернаяПоследовательность.Добавить(99);
КонецЕсли;
ТекущийНабор = 105;
КонецЕсли;
СЗ_НомернаяПоследовательность.Добавить(СтрокаПоиска.Индекс);
ТекПоз = ТекПоз + 2;
Продолжить;
КонецЕсли;
СтрокаПоиска=ТЗ_НаборCodeB.Найти(Сред(ИсходнаяСтрока,ТекПоз,1),"Значение");
Если СтрокаПоиска<>Неопределено Тогда // последовательность CODE B
Если ТекущийНабор <> 104 Тогда
Если ПустаяСтрока(ТекущийНабор) Тогда
СЗ_НомернаяПоследовательность.Добавить(104);
Иначе
СЗ_НомернаяПоследовательность.Добавить(100);
КонецЕсли;
ТекущийНабор = 104;
КонецЕсли;
СЗ_НомернаяПоследовательность.Добавить(СтрокаПоиска.Индекс);
ТекПоз = ТекПоз + 1;
Продолжить;
КонецЕсли;
Возврат ""; // Ошибочка
КонецЦикла;
ШтрихКод = "";
ДляРасчетаКонтрольногоЧисла = 0;
Для А = 0 По СЗ_НомернаяПоследовательность.Количество()-1 Цикл
ВзялНомер = СЗ_НомернаяПоследовательность.Получить(А).Значение;
ШтрихКод = ШтрихКод + ПолучитьСимволыШК_КОДЕ128(ТЗ_СимволыБарКода,ВзялНомер);
Коэффициент = ?(А = 0 , 1 , А);
ДляРасчетаКонтрольногоЧисла = ДляРасчетаКонтрольногоЧисла + (ВзялНомер * Коэффициент);
КонецЦикла;
КонтрольноеЧисло=ДляРасчетаКонтрольногоЧисла%103;
ШтрихКод=ШтрихКод+ПолучитьСимволыШК_КОДЕ128(ТЗ_СимволыБарКода,КонтрольноеЧисло);
ШтрихКод=ШтрихКод+ПолучитьСимволыШК_КОДЕ128(ТЗ_СимволыБарКода,106);
Возврат ШтрихКод;
КонецФункции
Показать