новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

подскажите пожалуйста 1с из которой взят код :

    • #1
    • 09.12.2018 10:01
    0
    подскажите пожалуйста 1с из которой взят код : Функция БарКод(Вход, БазаМодеС = 6) Если Вход = "" Тогда Возврат ""; КонецЕсли; АскиБар = "155515551449485845458494854548584944056416452065425461560506542164524212245605641254614650" + "11919191108980988109881889018890898001:0928120290:18212211829021281:0122209281:01218290:10" + "2305<0;0004=0<540=4<1<05<4105<0=441<4=0<14<50=4050<320=04830047407443074434470344704740113" + "13131100;0838030380;0308380023032203302"; мсВых = Новый Массив; Дл = СтрДлина(СокрЛП(Вход)); ТекСимвол = КодСимвола(Сред(Вход, 1, 1)); ТипТекСимвол = ТипСимвол(ТекСимвол); Если Дл > 1 тогда СлСимвол = КодСимвола(Сред(Вход, 2, 1)); ТипСлСимвол = ТипСимвол(СлСимвол); Иначе ТипСлСимвол = 2; КонецЕсли; Моде = ТипТекСимвол; Если (ТипТекСимвол = 3) И (ТипСлСимвол = 3) Тогда Моде = 3; КонецЕсли; мсВых.Добавить(102 + Моде); Вых = Символ(64 + Моде); Для Сч = 1 По Дл Цикл ТекСимвол = КодСимвола(Сред(Вход, Сч, 1)); Если ТекСимвол > 127 тогда Продолжить; КонецЕсли; ТипТекСимвол = ТипСимвол(ТекСимвол); Если ТипТекСимвол <> Моде Тогда Если ТипТекСимвол < 3 Тогда Если Моде = 1 Тогда мсВых.Добавить(100); Иначе мсВых.Добавить(101); КонецЕсли; Моде = ТипТекСимвол; Иначе ДлМ = ?(Дл < Сч + БазаМодеС - 1, Дл, Сч + БазаМодеС - 1); СчЦ = 0; Для СчМ = Сч По ДлМ Цикл МодМ = ТипСимвол(КодСимвола(Сред(Вход, СчМ, 1))); Если МодМ = 3 Тогда СчЦ = СчЦ + 1; Продолжить; Иначе СчЦ = 0; Прервать; КонецЕсли; КонецЦикла; Если СчЦ - БазаМодеС = 0 Тогда Моде = 3; мсВых.Добавить(99); КонецЕсли; КонецЕсли; КонецЕсли; Если Моде = 3 Тогда СлСимвол = КодСимвола(Сред(Вход, Сч + 1, 1)); ТипСлСимвол = ТипСимвол(СлСимвол); Если (Сч = Дл) Или (ТипТекСимвол <> 3)Или (ТипСлСимвол <> 3) тогда Моде = 2; мсВых.Добавить(100); Иначе Если (ТипТекСимвол <> 3) Или (ТипСлСимвол <> 3) Тогда Сообщить("Ош." + Сч + " " + ТекСимвол+" " + СлСимвол); Иначе мсВых.Добавить(Число(Символ(ТекСимвол) + Символ(СлСимвол))); Сч = Сч + 1; Продолжить; КонецЕсли; КонецЕсли; КонецЕсли; Если Моде = 1 Тогда мсВых.Добавить(ТекСимвол + 64); Иначе мсВых.Добавить(ТекСимвол - 32); КонецЕсли; КонецЦикла; Сум = 0; Ном = 0; Для Каждого элВых Из мсВых Цикл Если Ном > 0 Тогда Сум = (Сум + элВых * Ном) % 103; Вых = Вых + Сред(АскиБар,(элВых + 1) * 3 - 2, 3); Иначе Сум = элВых % 103; КонецЕсли; Ном = Ном + 1; КонецЦикла; Возврат Вых + Сред(АскиБар, (Сум + 1) * 3 - 2, 3) + "@"; КонецФункции
    • #2
    • 10.02.2019 14:23
    +1
    https://kb.mista.ru/article.php?id=404
    • #3
    • 10.02.2019 15:43
    0
    ну да :) код оказался с мисты. это пять Васильев Евгений
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться