Форум OlegON > Программы и оборудование для автоматизации торговли > Маркировка

Передача маркировки товара в драйвер ККМ Штрих-М : Маркировка

14.01.2025 14:44


24.12.2024 02:01
Всем привет!
Появилась необходимость передавать маркированную продукцию, пока (неалкогольные напитки), для того чтобы это все отправлялось в ЧЗ
есть вот такой код
MarkingCode := vList[I + 3]; // Получаем код маркировки

DrvFR2.ItemStatus := 1; // Планируемый статус - штучный товар, Реализован
DrvFR2.TLVData := '';

// Проверка маркировки товара
DrvFR2.Barcode := MarkingCode; // Устанавливаем код маркировки
ResultCode := DrvFR2.FNCheckItemBarcode;
if ResultCode <> 0 then
begin
// Если маркировка не прошла проверку
exit('Ошибка проверки маркировки: ' + DrvFR2.ResultCodeDescription);
end;

// Принятие маркировки
ResultCode := DrvFR2.FNAcceptMakringCode;
if ResultCode <> 0 then
begin
// Если произошла ошибка при принятии маркировки
exit('Ошибка при принятии маркировки: ' + DrvFR2.ResultCodeDescription);
end;

ResultCode := DrvFR2.FNOperation;
if ResultCode <> 0 then
begin
// Если маркировка не прошла FNOperation
exit('Ошибка FNOperation маркировки: ' + DrvFR2.ResultCodeDescription);
end;

DrvFR2.MarkingType := 17485;
DrvFR2.GTIN := copy(MarkingCode, 1, 14);
DrvFR2.SerialNumber := copy(MarkingCode, 15, 13);

ResultCode := DrvFR2.FNSendItemCodeData;
if ResultCode <> 0 then
begin
exit('Ошибка при привязке маркировки: ' + DrvFR2.ResultCodeDescription);
end;
end;

получаю ошибку в последней проверке «Ошибка при привязке маркировки: Некорректные параметры в команде», вроде все сделал в соответствии с правилами, но все равно что то не так
24.12.2024 03:10
Цитата:
Артем199 DrvFR2.MarkingType := 17485;
DrvFR2.GTIN := copy(MarkingCode, 1, 14);
DrvFR2.SerialNumber := copy(MarkingCode, 15, 13);
Это код для ФФД 1.05.

Для ФФД 1.2 он другой, позже гляну какой.
24.12.2024 12:34
с этим вроде как разобрался и оно проходит, но после есть так же
// Пробиваем товар (с маркой или без)
DrvFR2.Tax2 := 0;
DrvFR2.Tax3 := 0;
DrvFR2.Tax4 := 0;
DrvFR2.StringForPrinting := vList[I + 2]; // Текст на чеке
ResultCode := DrvFR2.Sale;
if ResultCode <> 0 then
begin
ShowMessage('Ошибка пробития товара: ' + DrvFR2.ResultCodeDescription);
end;

и тут уже «ошибка пробития товара: Команда не поддерживается в данной реализации»
24.12.2024 13:01
Sale нельзя, нужно FNOperation.

Мануал программиста по Штрих-М дать?
24.12.2024 13:08
Откуда это:
Цитата:
Артем199 ResultCode := DrvFR2.Sale;
Это что-то древнее, раньше, до маркировки вроде так было...
Сейчас:
ФискальныйРегистратор.FNBeginOpenSession();

Здесь, делаем все что нужно с чеком, строки, марки, оплаты и т.д...

И завершаем чек командой:
Рез = ФискальныйРегистратор.FNCloseCheckEx();

PS Я где-то тут выкладывал полную выборку команд, для Штриха с маркировкой, прямо фрагмент кода процедуры формирования чека с проверкой в ОИСМ, поищите, если не разберетесь.
24.12.2024 13:11
Ну, да,
Рез = ФискальныйРегистратор.FNOperation();
Это внутри того, что я выше написал, в цикле, для каждой позиции.
24.12.2024 22:58
Код старый, сейчас нужно переписать на рабочий ход уже для маркированного товара, пока дошел до «Сумма всех типов оплаты меньше итога чека» на этапе:
И завершаем чек командой:
Рез = ФискальныйРегистратор.FNCloseCheckEx();

с мануалом ознакомился, но трудности в том чтобы передать все в правильном алгоритме и ничего не забыть, а то почти на каждом шагу спотыкаюсь на ошибки)
24.12.2024 23:49
Ну, если это Вам чем-то поможет, вся процедура печати чека из 1с77...
Только в "сыром виде", выдрал из рабочей конфы, сами разбирайтесь что там к чему... Но, общий принцип и последовательность команд понять можно.
В текстовом файле, что-бы тут не загромождать.
Будет не понятно - вставляйте сюда строки не понятные из моего кода, прокомментирую.

PS Там много лишнего, но... Есть и полезные моменты, в том чисде и передача тегов РР...
Вложения
Тип файла: txt Процедура ПечататьЧек.txt (10.2 Кб, 23 просмотров)
25.12.2024 18:33
Спасибо, вроде разобрался.
Подскажите, как можно проверить в ЧЗ, что маркировка моего товара который у меня успешно пробился на самом деле успешно и дошла до ЧЗ
25.12.2024 19:01
Цитата:
Артем199 Спасибо, вроде разобрался.
Подскажите, как можно проверить в ЧЗ, что маркировка моего товара который у меня успешно пробился на самом деле успешно и дошла до ЧЗ
Смотрите в Лк Чз в разделе "Чеки"
Часовой пояс GMT +3, время: 14:44.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.