К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

1C7.7: Полный цикл работы с маркировкой Честного Знака (табак, обувь, МДЛП и пр.)

0 - 25.10.2019 - 07:08
Что у нас есть из готовых решений по работе с маркировкой ЦРПТ из 1С 7.7?

Вообще есть ли спрос на данное направление, или все будут переходить на 1С8?



Гость
41 - 17.01.2020 - 01:37
хотя.. хрен его знает что там в двумерных ШК могут запихнуть.. туда же килобайт инфы влезть может а то и больше
Гость
42 - 17.01.2020 - 07:30
37-android >Рассчитываю приходы подтверждать на сайте Честный знак.
Гость
43 - 08.02.2020 - 14:26
А на 8-ых дровах атола это все будет работать ? и какая нужна минимальная прошивка для печати признака маркировки "М" ?
Гость
44 - 09.02.2020 - 21:34
а про лиспеты будет?
https://buh.ru/news/uchet_nalogi/95621/
45 - 14.02.2020 - 13:08
Пробую в УТ11 на последнем релизе потестировать работу с маркировкой. Сделал заказ на выпуск марок. Все пришло. Напечатал ее. Тип кода стоит GS1 DataMatrix. Пробую привязать марку к товару. Ругается что штрихкод марки имеет неверный формат.
Сканер Newland-Nls-Hr200c. Подключен как "клавиатура". Еще пробовал какойто китайский дешевый сканер. Аналогично. Как проверить что марка напечана корректно? Или как сканер проверить? На сайте ЧЗ есть проверка сканера. Оба сканера ее проходят успешно. Может сканер не может работать как клавиатурный и надо включать эмуляцию ком-порта?
46 - 15.02.2020 - 11:31
43-USSR >Будет, прошивка 83хх
47 - 15.02.2020 - 11:58
45-SergeyY >Проверка содержимого ШК парой приложений:
1) Приложение от коллег из Клеверенс
2) barValid- GS1 Barcode scanner & Verifier
48 - 16.02.2020 - 14:39
47-victuan > ШК свой проверил. Он норм сделан
Оказалось все дело все-таки в сканере. Его надо подключать как эмуляция ком-порта. Тогда он передает данные корректно. Через эмуляцию клавиатуры отрезает спец-символы внутри ШК.
49 - 28.02.2020 - 13:09
Чем перевести в 7ке ШК обувной в последовательность байт для ккт? Для 8ки примеров кучу вижу. Для 7ки только платное от товарища Виктуана :(
Поделитесь решением.
Гость
50 - 28.02.2020 - 13:19
(45)Сканер скорее всего надо еще и обучать )
51 - 28.02.2020 - 13:59
50-USSR >Со сканером то проблем нет. В режим эмуляции перевел и добавил префикс чтоб формировал.
Вот не могу пока победить передачу в ккт. Как перевести в байты этот код. Все перелопатил уже.
Гость
52 - 02.03.2020 - 03:42
49-SergeyY > просто вырезать часть строки из КМ

GTIN = Сред(КМ,3,14);
SerialNumber = Сред(КМ,19,13);

// тип маркировки для обуви
MarkingType = 5408;
53 - 02.03.2020 - 07:49
52-zveruga > ДТО 8 атола не передает строку в тег 1162. Ему нужна последовательность в байтах.
Нашел на форуме атола вариант:

NetObject = Новый COMОбъект("NetObjectToIDispatch45");
NetObject.ПолучитьТип("System.Text.Encoding").UTF8 .GetBytes(СокрЛП(КодМаркировки)));

Вроде получает массив байт как и надо. Буду пробовать его передать
Гость
54 - 02.03.2020 - 12:04
53-SergeyY > Если всё равно мучаешься с программирование драйвера, перепиши для ДТО 10
http://integration.atol.ru/api/?pasc...a-informatsiya
Гость
55 - 02.03.2020 - 12:09
Цитирую текст из вышеуказанной ссылки:
При использовании COM-объекта ваш язык может не поддерживать получение из драйвера параметра типа bytearray. В этом случае можно использовать обходной вариант. Нужно запросить такой параметр через getParamStringHex(), он вернет строку с последовательностью байтов вида "01 02 FF AA". Далее, эту строку можно записать во входной параметр любого метода через методы setParamStrHex() или setNonPrintableParamStrHex(), и она запишется в драйвер как bytearray.
Гость
56 - 02.03.2020 - 12:15
т.е. сначала конвертишь в HEX через Объект.getParamStringHex()
а затем передаешь параметр 1162 через
Объект.setParamStrHex(1162, "44 4D .......... ")
Гость
57 - 02.03.2020 - 12:16
там же еть вот такой вариант (описан доп.параметр позиции)

LIBFPTR_PARAM_MARKING_CODE - массив с данными штрихкода маркировки. По умолчанию не передается в ККТ. В этом параметре можно передать данные от сканера. ККТ их разберет в реквизит 1162 самостоятельно.
Гость
58 - 02.03.2020 - 12:18
Для разбора кода маркировки, полученного от сканера, необходимо вызвать метод parseMarkingCode() и указать в параметре LIBFPTR_PARAM_MARKING_CODE значение штрихкода. Если передаётся марки ЕГАИС 2.0 или ЕГАИС 3.0, это нужно указать в параметре LIBFPTR_PARAM_MARKING_CODE_TYPE. Он принимает следующие значения:

LIBFPTR_MCT_EGAIS_20 - ЕГАИС 2.0
LIBFPTR_MCT_EGAIS_30 - ЕГАИС 3.0
LIBFPTR_MCT_OTHER - другая марка, кроме перечисленных выше

Сформированное значение реквизита 1162 будет записано в параметр 1162.
Гость
59 - 02.03.2020 - 12:18
Этот метод не записывает значение в ФН, а только возвращает пользователю значение реквизита 1162, расчитанное на базе переданных данных. Для записи кода маркировки в ФН нужно использовать метод регистрации позиции и параметр LIBFPTR_PARAM_MARKING_CODE.
Гость
60 - 02.03.2020 - 12:27
Для затравки:
54-ФЗ: Онлайн-кассы для 1С 7.7 нетиповая
https://infostart.ru/public/991465/
Гость
61 - 02.03.2020 - 12:33
Обработка для ККТ Атол 10.Х
https://infostart.ru/public/1093323/
Гость
62 - 02.03.2020 - 12:40
Вот здесь, думаю, более конкретно расписано, с двумя вариантами
http://forum.foxclub.ru/read.php?29,819747

1 вариант:
*-* cFullKod - считанный маркировочный код
*-* cGtin - первые 14 байт кода, т.н. GTIN

cGtin = LEFT(cFullKod, 14)

cSerial = SUBSTR(cFullKod, 15, 13) - код товара (для лекарств - 13 байт)

*-* FP - это объект, полученный при инициализации драйвера:
FP = CREATEOBJECT("AddIn.Fptr10")

*-* Идет формирование тэга 1162 для последующей отправки на ОФД:

FP.setParam(LIBFPTR_PARAM_NOMENCLATURE_TYPE, LIBFPTR_NT_MEDICINES)
FP.setParam(LIBFPTR_PARAM_GTIN, cGtin)
FP.setParam(LIBFPTR_PARAM_SERIAL_NUMBER, cSerial)
FP.utilFormNomenclature()
cTag1162 = FP.getParamString(LIBFPTR_PARAM_TAG_VALUE)


При этом cTag1162 получает значение типа "03 02 01 ..."

.... далее регистрируется товарная позиция наименование, цена, количество...налоги, виды оплат...

*-* отправка на ОФД:
FP.setParamStrHex(1162, cTag1162)
Гость
63 - 02.03.2020 - 12:43
Второй вариант:

FP.setParamStrHex(LIBFPTR_PARAM_MARKING_CODE, cFullKod) - для данного метода cFullKod должен быть записан в виде последовательности байтов типа "03 02 01 ..."

Документация атола , мягко говоря, выдает неверную инфу . getParamString() вернет не строку вида "01 02 FF AA" , а исходную строку текста.


Я делаю так - преобразовываю текст марки к виду "03 02 01 ..." ( делаю через Strconv(marka,15) и добавление пробелов) и записать полученный результат в LIBFPTR_PARAM_MARKING_CODE через метод setParamStrHex. Более ничего делать не надо , parseMarkingCode не нужен , но только устанавливать LIBFPTR_PARAM_MARKING_CODE нужно после задания LIBFPTR_PARAM_COMMODITY_NAME. Считать тег 1162 в фоксе для проверки можно так Transform(.getParamByteArray(1162))
Гость
64 - 02.03.2020 - 12:55
0-victuan > Немного запоздалый ответ, однако...

Считаю, что спрос на 7.7 будет отчасти порождаться предложением со стороны программистов.

У меня есть несколько клиентов на ТиС 9.2, Бух 3.5!!!, и переход на платформу 8.3 для них будет просто адом.
Там столько понавернуто...

Очень удобно бы было получать товар сразу через api в 7.7., проверять наличие, и отправлять сообщение о его приемке в ЧЗ.

Так что повозиться смысл есть, тем более что переход на маркировку будет массовым для всех категорий.

Кроме того, зная методы Api и общую логику процесса, можно это потом внедрять и на v8 в обычных формах.
А уж на них точно много народа сидит.
65 - 02.03.2020 - 16:18
64-zveruga >Да, делаем сейчас работу с ЧЗ из 1С 7.7 через АПИ. По готовности, выложим универсальное тиражное решение.
66 - 02.03.2020 - 16:27
63-zveruga >Не первый ни второй вариант не могут передать общий префикс маркированных товаров 44 4D.
Хотя новая прошивка Атола (85хх) по слухам, умеет сама конвертировать все переданные из кода префиксы в 44 4D.
Но не проверял, т.к. сразу передаю в тег 1162 подготовленную в нужном виде последовательность байт.

Букву [М] в чек также можно выводить нефискальным текстом.

Всё сделано для того, чтобы пользователи могли не нарушая работать с 01.03.20, даже на старых прошивках ККТ.
67 - 03.03.2020 - 08:04
66-victuan > Про букву М - вы ее после вывода товара печатаете? Штатно атол выводит при продаже маркированного товара строку КТ после товара. Вроде как в новых прошивках вместо этой строки и выводит букву М. Не? Или одно другому не будет мешать и чек будет соответствовать новым требованиям?
68 - 04.03.2020 - 06:35
67-SergeyY >В требованиях не сказано где именно должен выводиться признак [М] относительно напечатанного в чеке товара. Поэтому любое расположение этой буквы будет законно, если видно к какой именно позиции он относится.

Прошивка Атола никогда не выводила сама в чек КТ, а вот новая прошивка 8502 выводит текст [М].

Если прошивка не обновлена, то можно через нефискальную строку выводить этот признак. Раньше мое ПО выводило КТ, теперь добавил в него настройку, чтобы выводить нефискальной строкой на выбор:
0 - ничего (прошивка ККТ обновлена, сама выведет [М])
1 - печатать [М] (если прошивка ККТ не обновлена и не умеет печатать [М])
2 - печатать [М] и КТ (для того чтобы визуально контролировать по чеку выбытие КТ, например для контроля возвратов, если покупатель принесет товар, на котором будет указан чужой КТ, не тот что распечатан в чеке продажи).
69 - 04.03.2020 - 12:42
Вот поборол. Вдруг кому пригодится ШтрихкодМарки=СокрЛП(СписокТоваров.Товар.Маркировк а);

ГТИН = Сред(ШтрихкодМарки,3,14);
Серия = Сред(ШтрихкодМарки,19,13);

Попытка
ГТИНЧислом = Число(ГТИН);
ГТИНБайтами = "";
Пока ГТИНЧислом > 0 Цикл
ГТИНБайтами = Сред("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", ГТИНЧислом%16 + 1, 1) + ГТИНБайтами;
ГТИНЧислом = Цел(ГТИНЧислом/16) ;
КонецЦикла;
Исключение
ОписаниеРезультата = "Ошибка получения кода маркировки";
Возврат -1;
Конецпопытки;
Пока СтрДлина(ГТИНБайтами)<12 Цикл
ГТИНБайтами = "0"+ГТИНБайтами;
КонецЦикла;

sc=СоздатьОбъект("MSScriptControl.ScriptControl");
sc.language="VBscript";
СерияБайтами="";
Для ид=1 по СтрДлина(Серия) Цикл
СерияБайтами=СерияБайтами+sc.eval("hex("+КодСимв(С ред(Серия,ид,1))+")");
КонецЦикла;

Марка = "444D"+ГТИНБайтами+СерияБайтами;
МассивБайт = "";
Для ид=1 По СтрДлина(Марка) Цикл
Если ид/2=Окр(ид/2) Тогда
МассивБайт = МассивБайт+Сред(Марка,ид,1);
Иначе
МассивБайт = МассивБайт+" "+Сред(Марка,ид,1);
КонецЕсли;
КонецЦикла;

МассивБайт=СокрЛП(МассивБайт);


Объект.StreamFormat = 5;
Объект.AttrValue = МассивБайт;
Объект.AttrNumber = 1162;
Объект.WriteAttribute();

На прошивке 8502 буква М выводится. Данные в ЧЗ уходят.
70 - 04.03.2020 - 13:47
Правительство перенесло сроки перехода на обязательную маркировку обуви

Источник: https://buh.ru/news/uchet_nalogi/105334/
71 - 04.03.2020 - 17:49
69-SergeyY >VBscript то зачем, можно же простую функцию на языке 1с написать для перевода в Hex (на мисте есть).
72 - 05.03.2020 - 12:54
71-victuan > Дак я спрашивал тут - все молчат. У вас же есть решение явно, но вы его в общее обозрение не выкладываете - понимаю что это ваш хлеб.
Искал везде - нашел только такой вариант через скрипт.
В переводах из систему в систему не силен - не тру-программист я - я 1Сник :)))
73 - 05.03.2020 - 20:11
72-SergeyY >Напишите в личку, я вам вышлю.
74 - 10.03.2020 - 10:45
73-victuan > Не отправляет в личку. Пишу, жму отправить, окошко закрывается и в отправленных пусто.
Кстати в УТ 11 в крайнем релизе пробовал сделать возврат товара от покупателя. УТ марку не спрашивает даже. И естественно она в оборот не возвращается. По ходу даже не предусмотрено такая возможность.
В моей самописке в возвратном чеке я марку указал которая возвращается и она прошла через офд и в ЧЗ прошла операция возврат товара в оборот.
Гость
75 - 16.03.2020 - 17:32
А бухсправками в БП можно пользоваться? Все регистры правильно заполнятся? Требуется отразить реализацию нескольким сотням физических лиц, без НДС и печати первички, но с детализацией по физикам
Гость
76 - 16.03.2020 - 17:33
Не в ту тему попала с телефона:( но если кто сможет ответить...
77 - 24.06.2020 - 19:12
Сегодня выложили решение для работы с маркированным товаров через ЭДО на приемку и отгрузку из 1С 7.7, есть бесплатная демо-версия.
Видео-инструкция https://youtu.be/t48Fo_dDyX4
78 - 09.07.2020 - 13:30
77-victuan > Здравствуйте, только видео выложили?
Гость
79 - 13.07.2020 - 16:18
розница отказывается продавать сиги, трудозатраты несоизмеримы с финансовым выхлопом
80 - 13.07.2020 - 17:34
Цитата:
Сообщение от Зелёный тролль Посмотреть сообщение
розница отказывается продавать сиги, трудозатраты несоизмеримы с финансовым выхлопом
Замечательно. Меньше станут курить, больше бегать трусцой.

зы:
а у нас не то что цыгане из-под полы (про этих вообще молчу) Киоск!!! нагло стоит на улице и торгует контрабандными сигами из Украины (ДНР?) и Армении.
И плевать и цыганчатам и киоску под крышей на вообще маркировку.


К списку вопросов






Copyright ©, Все права защищены