![]() |
|
Честный знак + БП3.0, коды маркировки чз из внешней БД. | ☑ | ||
---|---|---|---|---|
0
zinzillya
20.10.22
✎
13:19
|
Надо передавать в чек для выбытия кодов маркировки ЧЗ. Товарищи маузеры, кто сталкивался, ваше мнение куда впихивать код.
Есть вроде Обработка.ПроверкаИПодборПродукцииИСМП из Реализации, а с другой стороны пробовать в чек при формировании СформироватьXMLПакетДляФискализацияЧека (ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(ТекущаяПозиция.КонтрольнаяМарка));) Но и там и там столько накулябано, да и с обновами могут перекрывающие патчи заходить. В общем, кто чем может... |
|||
1
zinzillya
20.10.22
✎
15:51
|
ап
|
|||
2
zinzillya
28.10.22
✎
13:45
|
Какие-то замороки с требуемым Символ(29) - не сериализуется, следовательно в общие модули не передаётся. как пристраивать непонятно.
|
|||
3
OldCondom
28.10.22
✎
15:10
|
Протрезвей. Куда и для чего ЧЗ ты в курсе?
|
|||
4
zinzillya
31.10.22
✎
08:18
|
(3) Как стекло. Молочка.
|
|||
5
zinzillya
02.11.22
✎
19:07
|
Схема на сегодня такая. Есть Складская программа ВМС, в которой есть КИЗы (контрольно-идентификационный знак). Синхронизация с нашей базой по номеру документа.
В ВМС организован http-сервис, который по запросу с входящими параметрами (ИдБазы, НомерДокумента) отдаёт xml-пакет с КИЗами номенклатуры. Соответственно Оператор из 1С открывает док. Реализация с маркированным товаром и через форму Обработка.ПроверкаИПодборПродукцииИСМП.Форма.ПроверкаИПодбор (гиперссылка на форме документа Реализация) нажимает добавленную Кнопку(Команду) "ЗаполнениеИзВМС_21". Программа делает запрос в сервис: СоединениеHTTP = Новый HTTPСоединение(стрСоединения,,"Ex****","a******6",,,); //НомерДокументаРеализация = СокрП(Сред(ЭтотОбъект.ПроверяемыйДокумент.Номер,2)); не тот номер... ДС_НомерВКампании = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "_НомерВКампании_7fdc219e29ba4b1f9a2f786b8c5bfdef"); зн_НомерВКампании = УправлениеСвойствами.ЗначениеСвойства(ЭтотОбъект.ПроверяемыйДокумент, ДС_НомерВКампании); // Получение текста главной страницы через запрос. ЗапросHTTP = Новый HTTPЗапрос("?BaseID=92&KizList&DocType=001&DocNumber="+СокрЛП(зн_НомерВКампании)); //?BaseID=92&KizList&DocType=001&DocNumber=348684,352032, Ответ = СоединениеHTTP.ВызватьHTTPМетод("POST",ЗапросHTTP); ТекстХМЛ = Ответ.ПолучитьТелоКакСтроку(); //получим xml-пакет После этого перебор структур пакета: ... Для Каждого ДокументРеализациямKiz_list из ДокументРеализациямGoods_kiz.Kiz_list Цикл //массив //стрТчДВKiz = ДокументРеализациямKiz_list; //из ОбщаяФорма.ЗагрузкаКодовМаркировкиИС ПоляСтроки = Новый Структура; ПоляСтроки.Вставить("Штрихкод", СокрЛП(ДокументРеализациямKiz_list)); ПоляСтроки.Вставить("Количество", 1); ПоляСтроки.Вставить("ШтрихкодМаркиАлкогольнойПродукции", ""); ПоляСтроки.Вставить("ШтрихкодУпаковки", ""); ПоляСтроки.Вставить("ФорматBase64", Ложь); Результат.Добавить(ПоляСтроки); КонецЦикла; КонецЦикла; Возврат(Результат) напихали соответствующий требованиям массив структур и после отдаём в типовой модуль нашей обработки Обработка.ПроверкаИПодборПродукцииИСМП.Форма.ПроверкаИПодбор ПараметрыОбработкиТСД = НовыеПараметрыОбработкиТСД(); // Формат загрузки из внешнего файла полностью соответствует формату загрузки из ТСД Подключаемый_ПолученыДанныеИзТСД(РезультатЗаполнения, ПараметрыОбработкиТСД); всё. дальше программа сама фрагментирует полученные КИЗы и запускает сервис проверок Чистого знака. (пока всё отключили, т.к. не проходим проверки, но вроде и нормально пока - по молочке только сериальный учёт). Ну и печать чека, по идее надо обновить прошивку кассы, после чего она умеет передать КИЗы в ОФД, а он отправляет данные в ЧЗ на списание КИЗов. Пока это не проверили - касса что-то не проходит в ОФД - разбираемся. |
|||
6
zinzillya
11.11.22
✎
13:23
|
Всё-таки Символ(29) долбил мозг.
Шк = СокрЛП(ДокументРеализациямKiz_list); Шк = СтрЗаменить(Шк,"(93)",""+Символ(29)+"(93)"); Шк = СтрЗаменить(Шк,"(",""); Шк = СтрЗаменить(Шк,")",""); ПоляСтроки = Новый Структура; ПоляСтроки.Вставить("Штрихкод", ШтрихкодированиеИСКлиентСервер.ШтрихкодВBase64(Шк)); ПоляСтроки.Вставить("Количество", 1); ПоляСтроки.Вставить("ШтрихкодМаркиАлкогольнойПродукции", ""); ПоляСтроки.Вставить("ШтрихкодУпаковки", ""); ПоляСтроки.Вставить("ФорматBase64", Истина); Результат.Добавить(ПоляСтроки); |
|||
7
lucbak
11.11.22
✎
13:40
|
(0) слишком много всего написано (вникать не стал), но раз конфа БП то скорее всего используется БПО а там в чеке есть КиЗ - вот в него код маркировки и устанавливай, дальше система сама отработает. По поводу символа(29) - заменяй на какой нибудь другой (для передачи между клиент\сервером) а при установке в чек возвращай его на место.
|
|||
8
zinzillya
14.11.22
✎
11:19
|
(7) да не хотел я лезть в формирование чека. вроде есть же функционал приёма КиЗов - туда запихал. да и с редактированием и прочими проверками именно там работает Обработка.ПроверкаИПодборПродукцииИСМП.Форма.ПроверкаИПодбор.
для передачи м-ду клиент-сервером 1С использует перегонку в ШтрихкодированиеИСКлиентСервер.ШтрихкодВBase64 и обратно. но тоже косяки разнообразные лезут. например если подгрузились в документ КиЗы, перезаписать уже не получается - бред какой-то. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |