|
проверка КМ Честного Знака при печати чека "отсутствует полный код маркировки" | ☑ | ||
---|---|---|---|---|
0
zinzillya
04.10.24
✎
14:33
|
БП 3.0 последняя
очень нужна консультация по загрузке КонтрольныхМарок (КМ) ЧестногоЗнака (ЧЗ) из внешней программы в документ Розничные продажи (чек). посмотрите пожалуйста кусочек кода загрузки, насколько он корректен с точки зрения добавления элементов в систему. спрШУТ = Справочники.ШтрихкодыУпаковокТоваров; ... //заполнение кодов ЧЗ Шк64 = РезультатЗаполнения[Количество-1].Штрихкод; Шк32 = ШтрихкодированиеИСКлиентСервер.ШтрихкодВФорматеGS1(ШтрихкодированиеОбщегоНазначенияИСКлиентСервер.Base64ВШтрихкод(Шк64)); //Шк28 = Лев(Шк32,28); НовСтр.Штрихкод = Шк32; НовСтр.КодАкцизнойМарки = Шк32;//Шк64; ссСпрШУТ = СпрШУТ.ПолучитьПоЗначениюШтрихкода(Шк32);//(Шк28); Если ссСпрШУТ = Неопределено Тогда ДанныеШтрихкода = СпрШУТ.СтруктураСозданияШтрихкодаУпаковки(); ДанныеШтрихкода.ТипУпаковки = Перечисления.ТипыУпаковок.МаркированныйТовар; ДанныеШтрихкода.Номенклатура = НовСтр.Номенклатура; ДанныеШтрихкода.Количество = 1; ДанныеШтрихкода.ТипШтрихкода = Перечисления.ТипыШтрихкодов.GS1_DataMatrix; ДанныеШтрихкода.Штрихкод = Шк32; //ДанныеШтрихкода.ХешСуммаНормализации = ИнтеграцияИС.ХешированиеДанныхSHA256(ШтрихкодыУпаковокКлиентСервер.ШтрихкодGS1(Шк32)); НовСтр.АкцизнаяМарка = СпрШУТ.СоздатьШтрихкодУпаковки(ДанныеШтрихкода); сообщить("создан штрихкод"+Шк32+"."); Иначе НовСтр.АкцизнаяМарка = ссСпрШУТ; КонецЕсли; визуально, создаваемые этим алгоритмом загрузки Розничные продажи (чек) элементы Справочника "ШтрихкодыУпаковокТоваров" выглядят однообразно с создаваемыми через ранее работающий алгоритм загрузки РеализацииТиУ, но при попытке отправки чеков происходит ошибка "отсутствует полный код маркировки" выскакивает при попытке печати чека в Результаты проверки штрихкодов. хелп плз! |
|||
1
zinzillya
04.10.24
✎
16:52
|
попробовал ещё так:
//Шк32 = ШтрихкодированиеИСКлиентСервер.ШтрихкодВФорматеGS1(ШтрихкодированиеОбщегоНазначенияИСКлиентСервер.Base64ВШтрихкод(Шк64)); Шк32 = ИнтерфейсИСМП.РазобратьИНормализоватьКодМаркировки(ШтрихкодированиеОбщегоНазначенияИСКлиентСервер.Base64ВШтрихкод(Шк64)); то же самое, ещё перестал открываться список спрШУТ - ругается на непечатаемый символ. |
|||
2
НаборДанных
04.10.24
✎
20:37
|
"отсутствует полный код маркировки" - никакие мысли не возникают? Например о том, что в твоей конфе некорректно обрабатывается КМ без криптохвоста.
|
|||
3
Звездец
04.10.24
✎
20:22
|
ты когда марки записываешь в справочник штрихкоды упаковок, или как там он в БСП называется, у кода маркировки потерял скобки и возможно еще указал не верный тип кода.
|
|||
4
zinzillya
09.10.24
✎
13:05
|
попробовал вариант с МонотоварнаяУпаковка и ТипыШтрихкодов.GS1_128
//заполнение кодов ЧЗ Шк64 = РезультатЗаполнения[Количество-1].Штрихкод; Шк32 = ШтрихкодированиеИСКлиентСервер.ШтрихкодВФорматеGS1(ШтрихкодированиеОбщегоНазначенияИСКлиентСервер.Base64ВШтрихкод(Шк64)); НовСтр.Штрихкод = Шк32; НовСтр.КодАкцизнойМарки = Шк32; ссСпрШУТ = СпрШУТ.ПолучитьПоЗначениюШтрихкода(Шк32); Если ссСпрШУТ = Неопределено Тогда ДанныеШтрихкода = СпрШУТ.СтруктураСозданияШтрихкодаУпаковки(); ДанныеШтрихкода.ТипУпаковки = Перечисления.ТипыУпаковок.МонотоварнаяУпаковка; ДанныеШтрихкода.Номенклатура = НовСтр.Номенклатура; ДанныеШтрихкода.Количество = 1; ДанныеШтрихкода.ДатаУпаковки = Док.Дата; ДанныеШтрихкода.ТипШтрихкода = Перечисления.ТипыШтрихкодов.GS1_128; ДанныеШтрихкода.Штрихкод = Шк32; НовСтр.АкцизнаяМарка = СпрШУТ.СоздатьШтрихкодУпаковки(ДанныеШтрихкода); сообщить("создан штрихкод"+Шк32+"."); Иначе НовСтр.АкцизнаяМарка = ссСпрШУТ; КонецЕсли; получается создавать длинные Штрихкоды, вида (01)04600680014005(21)5Geh3X(93)sGQg. нормально открывается, но при попытке печати система печати вообще не реагирует. просто игнор команды. есть у меня вариант получать Штрихкод из формы документа Розничная продажа(чек) и передавать в Команду Формы ОбработатьКодМаркировки(ИсходныеДанные, ДополнительныеПараметры) Экспорт. В этом случае ЗначениеШтрихкода - короткое (вида (01)04600680014005(21)5Geh3X), но происходит сцепление с регистром "Пул кодов маркировки СУЗ (Регистр)". ошибка при печати в этом случае: Поле объекта не обнаружено (ИдентификаторЗапросаГИСМТ) {Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(2237)}:РезультатРаспределения.РазрешительныйРежимИдентификаторЗапросаГИСМТ = ЭлементПроверки.ИдентификаторЗапросаГИСМТ; {Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(2252)}:Если РезультатПроверки <> Неопределено {EF_00_00641180_2 ОбщийМодуль.ШтрихкодированиеОбщегоНазначенияИСМПКлиент.Модуль(231)}:ВыполнитьОбработкуОповещения(ПараметрыПроверки.ОповещениеОЗавершении, ПараметрыПроверки.Результат); {ОбщийМодуль.ШтрихкодированиеОбщегоНазначенияИСМПКлиент.Модуль(1466)}:ОбработкаРезультатаПроверкиСредствамиККТ(ПараметрыПроверки); {ОбщийМодуль.ОбщегоНазначенияБПОКлиент.Модуль(845)}:ВыполнитьОбработкуОповещения(КонтекстЗамера.ПользовательскоеОповещение, Результат); {ОбщийМодуль.МенеджерОборудованияКлиент.Модуль(4190)}:ВыполнитьОбработкуОповещения(ПараметрыВыполнениеКоманды.ОповещениеПриЗавершении, РезультатОперации); {ОбщийМодуль.МенеджерОборудованияКлиент.Модуль(2410)}:ЗавершениеВыполнениеКоманды(РезультатОперации, ПараметрыВыполнениеКоманды); {ОбщийМодуль.МенеджерОборудованияКлиент.Модуль(2376)}:ОтключитьОборудованиеПослеВыполнениеКоманды_ОтключитьПечатающееУстройствоЗавершение(Неопределено, КонтекстВыполнения); {ОбщийМодуль.МенеджерОборудованияКлиент.Модуль(2110)}:ОтключитьОборудованиеПослеВыполнениеКоманды(ПараметрыВыполнениеКоманды, РезультатВыполнения); {ОбщийМодуль.МенеджерОборудованияМаркировкаКлиент.Модуль(663)}:ВыполнитьОбработкуОповещения(Оповещение, РезультатПакета); {ОбщийМодуль.МенеджерОборудованияМаркировкаКлиент.Модуль(646)}:ЗавершитьВыполнениеВсехОпераций(КонтекстОперации); {ОбщийМодуль.МенеджерОборудованияМаркировкаКлиент.Модуль(616)}:ЗавершитьВыполнениеОперации(КонтекстОперации); {ОбщийМодуль.МенеджерОборудованияМаркировкаКлиент.Модуль(427)}:СледующаяОперация(КонтекстОперации); [ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка] |
|||
5
zinzillya
09.10.24
✎
14:34
|
получилось натянуть сову на глобус с ПуломМаркировки при создании же спрШУТ
//заполнение кодов ЧЗ Шк64 = РезультатЗаполнения[Количество-1].Штрихкод; Шк32 = ШтрихкодированиеИСКлиентСервер.ШтрихкодВФорматеGS1(ШтрихкодированиеОбщегоНазначенияИСКлиентСервер.Base64ВШтрихкод(Шк64)); //Шк32 = ИнтерфейсИСМП.РазобратьИНормализоватьКодМаркировки(ШтрихкодированиеОбщегоНазначенияИСКлиентСервер.Base64ВШтрихкод(Шк64));// может так... НовСтр.Штрихкод = Шк32; НовСтр.КодАкцизнойМарки = Шк64; ссСпрШУТ = СпрШУТ.ПолучитьПоЗначениюШтрихкода(Шк32); Если ссСпрШУТ = Неопределено Тогда ДанныеШтрихкода = СпрШУТ.СтруктураСозданияШтрихкодаУпаковки(); ДанныеШтрихкода.ТипУпаковки = Перечисления.ТипыУпаковок.МаркированныйТовар; ДанныеШтрихкода.Номенклатура = НовСтр.Номенклатура; ДанныеШтрихкода.Количество = 1; ДанныеШтрихкода.ДатаУпаковки = Док.Дата; ДанныеШтрихкода.ТипШтрихкода = Перечисления.ТипыШтрихкодов.GS1_DataMatrix; ДанныеШтрихкода.Штрихкод = Шк32; НовСтр.АкцизнаяМарка = СпрШУТ.СоздатьШтрихкодУпаковки(ДанныеШтрихкода); сообщить("создан штрихкод"+Шк32+"."); //пул СУЗ ПараметрыСканирования = ШтрихкодированиеОбщегоНазначенияИСКлиентСервер.БазовыеПараметрыСканирования(); ШтрихкодированиеОбщегоНазначенияИСКлиентСервер.ЗаполнитьБазовыеПараметрыСканирования(ПараметрыСканирования, Док); ШтрихкодированиеОбщегоНазначенияИСМПКлиентСервер.ЗаполнитьПараметрыСканирования(Док,Перечисления.ВидыПродукцииИС.ПустаяСсылка(),ПараметрыСканирования,Неопределено); ДанныеШтрихкодаПолные = ШтрихкодированиеОбщегоНазначенияИС.ИнициализироватьДанныеШтрихкода(ПараметрыСканирования); ДанныеШтрихкодаПолные.Штрихкод = Шк32; ДанныеШтрихкодаПолные.ШтрихкодBase64 = Шк64; ДанныеШтрихкодаПолные.МаркируемаяПродукция = Истина; ДанныеШтрихкодаПолные.ТипУпаковки = Перечисления.ТипыУпаковок.МаркированныйТовар; ДанныеШтрихкодаПолные.ТипШтрихкода = Перечисления.ТипыШтрихкодов.GS1_DataMatrix; ДанныеШтрихкодаПолные.Номенклатура = НовСтр.Номенклатура; ДанныеШтрихкодаПолные.Вставить("ЕстьВПулеКодовМаркировки", Ложь); //иначе ошибка... ДанныеШтрихкодаПолные.Вставить("ПолныйКодМаркировки", ""); //иначе ошибка... РегистрыСведений.ПулКодовМаркировкиСУЗ.ЗаписатьДанныеКодаМаркировки(ДанныеШтрихкодаПолные,ПараметрыСканирования); Иначе НовСтр.АкцизнаяМарка = ссСпрШУТ; КонецЕсли; но ошибка та же "Поле объекта не обнаружено (ИдентификаторЗапросаГИСМТ)" сохраняется при попытке печати. |
|||
6
Максим Нижегородец
10.10.24
✎
12:20
|
Вложи скан DataMatrix. У разных типов товаров он отличается.
|
|||
7
zinzillya
11.10.24
✎
16:13
|
(6) да блин у меня нет доступа к ТСД склада. только по хттп-сервису прилетает ШК
|
|||
8
zinzillya
27.10.24
✎
05:34
|
UPD!
после установки БП 3.0.162.22, обновления драйвера АТОЛ 10.10.5.0 и подгрузки в драйвер оборудования свежей компоненты из 10.10.5.0 (ATOL_KKT_10.zip) заработало! на Честный знак данные о выбытии передались, статус разрешительного режима "Пройден". но появилась новая говня - касса печатает только чеки не больше 2 позиций с ЧЗ. Иначе сброс связи. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |