IE2017

Получение Алкокода из PDF417

Обработки - Обработка справочников

Обработка получает алкокод из кода акцизной марки.

В процессе поиска алгоритма получения алкокода из из кода акцизной марки, на одном из форумов увидел код для 1С77.

Перенес в 1С8, надеюсь кому-то пригодится.

Добавлен контроль кода акцизной марки и преобразования символов кода в верхний регистр.

Скачать файлы

Наименование Файл Версия Размер
Получение алкокода из PDF417 (Код акцизной марки)
.epf 7,18Kb
11.01.17
5
.epf 7,18Kb 5 Скачать

См. также

Комментарии
1. Алексей (pablo_escobar) 26.12.16 10:11 Сейчас в теме
Если весь алгоритм представлен на скрине, то он не полный. Охватывает не все возможные ситуации.
2. Олег Зубрицкий (user607480_elsystem2000) 2 26.12.16 10:46 Сейчас в теме
Возможно.
Делал под конкретную задачу.
Так как алгоритм не мой, хотел разместить бесплатно в варианте "Как есть", но не вышло...
Если не сложно, подскажите какие ситуации не охвачены?
3. ValeriTim (ValeriTim) 20 26.12.16 11:06 Сейчас в теме
А вот так? Это не мое творчество - тоже где то подсмотрел.

// получен код специальной марки ЕГАИС
КодАлкогольнойПродукции = Формат(ДополнительныеПроцедурыФункцииСервер.ИзХСчислВЧисло(Сред(Штрихкод, 8, 12), "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "ЧЦ=19; ЧВН=; ЧГ=");

Функция ИзХСчислВЧисло(аф, Шаблон) Экспорт
	
    аф = ВРег(аф); // на всякий случай.
    ДлинаШаблона = СтрДлина(Шаблон);

    ДлинаСтроки = СтрДлина(аф);
    Результат = 0;

    Для ТекСимвол = 1 По ДлинаСтроки Цикл
        ОбрабатываемыйСимвол = Сред(аф, ТекСимвол,1);
        ПозицияВШаблоне = Найти(Шаблон,ОбрабатываемыйСимвол)-1;
        Результат = Результат * ДлинаШаблона + ПозицияВШаблоне;
    КонецЦикла;

    Возврат(Результат);

КонецФункции
...Показать Скрыть
4. Олег Зубрицкий (user607480_elsystem2000) 2 26.12.16 11:09 Сейчас в теме
Нет предела совершенству .
У меня стояла задача помощи при инвентаризации остатков продукции поступившей до 2016 года. После выполнения инвентаризации, перспективы использование обработки весьма туманны ...
Поэтому это просто внешняя обработка.
5. Алексей (pablo_escobar) 26.12.16 16:24 Сейчас в теме
Нужен отсев старых цифровых марок, делать Врег обязательно, (встречались марки с маленькими буквами)

Если сред(Значение,4,5) = "00000" тогда

		Значение = Сред(Значение,9,11);
		итр =11;

		Иначе

		Значение = Сред(Значение,8,12);
		итр =12;

		конецЕсли;

		Результат=0;

		Для Х=1 По итр Цикл

		М=1;
		Для У=1 По итр-Х Цикл 

		М=М*36 

		КонецЦикла;

		Результат=Результат+(Найти("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Сред(Значение,Х,1))-1)*М;

		КонецЦикла;

		AlcCode = Формат(Результат, "ЧЦ=19; ЧВН=; ЧГ=0");
...Показать Скрыть
6. Алексей (pablo_escobar) 26.12.16 16:28 Сейчас в теме
И шк является ли он шк с марки можно проверять xsd схемой
ТипДляПроверкиБарКода=ФабрикаXDTO.Тип("http://fsrar.ru/WEGAIS/My_Cheque","BK");
Попытка
		ТипДляПроверкиБарКода.Проверить(ШтрихКод);
	Исключение	
		ЭтоБарКод=Ложь;
		Предупреждение("Считанный штрихкод не является ШК с акцизной марки!");
		
		Сигнал();
конецпопытки;
...Показать Скрыть
7. Олег Зубрицкий (user607480_elsystem2000) 2 26.12.16 23:44 Сейчас в теме
Для моих задач такие сложности не требовались, но всё же стало интересно..
Если можно поясните пожалуйста строку
ТипДляПроверкиБарКода=ФабрикаXDTO.Тип("http://fsrar.ru/WEGAIS/My_Cheque","BK");

Как реализуется "/My_Cheque"?

Попробовал написать по вашему тексту, но "My_Cheque" подвел ..

Прикрепленные файлы:
8. Олег Зубрицкий (user607480_elsystem2000) 2 27.12.16 00:04 Сейчас в теме
Просматривал егаис - XDTO пакеты в УТ11, наткнулся на используемый Тип значения PDF417.


Прикрепленные файлы:
9. Алексей (pablo_escobar) 27.12.16 09:25 Сейчас в теме
(7) My_Cheque это XDTO пакет из стандартной xsd схемы розничного чека. В типовых решениях 1С делала свои схемы, можно их использовать, мне проще пользоваться стандартными от ЕГАИС.
10. Алексей (pablo_escobar) 27.12.16 09:40 Сейчас в теме
(8) Маленькие буквы нужно переобразовывать потому что в алгоритме идет сравнение на большие буквы и цифры, можно доработать алгоритм под маленькие буквы, но проще поднять регистр.
11. Олег Зубрицкий (user607480_elsystem2000) 2 27.12.16 13:35 Сейчас в теме
Спасибо за разъяснения.
По My_Cheque интересно. В мой код смотрели? Почему не работает можете на мысль натолкнуть?
12. Олег Зубрицкий (user607480_elsystem2000) 2 27.12.16 13:39 Сейчас в теме
Проверку на корректность КодаМарки интересно сделать, если пойму как, добавлю в обработку. Заодно и буквы к верхнему регистру приведу.
13. Алексей (pablo_escobar) 27.12.16 13:46 Сейчас в теме
(11)
My_Cheque
потому что My_Cheque это моя схема, созданная на основе схемы egaischeque.joint.2.xsd от ЕГАИС. На основе потому что она единственная стандартная от ЕГАИС не загружается в 1С. Используйте тот тип который есть в Ваших схемах.
14. Олег Зубрицкий (user607480_elsystem2000) 2 27.12.16 14:32 Сейчас в теме
:) Когда увидел строку с "My_Cheque" так и думал, что халявы не будет .!! :)
15. Олег Зубрицкий (user607480_elsystem2000) 2 27.12.16 16:23 Сейчас в теме
Внесены изменения на основе предложений от Алексей (pablo_escobar)
Оставьте свое сообщение