Вероятно, должен выйти новый релиз, исправляющий ошибки, но для подстраховки предлагаю вариант самостоятельного исправления некоторых ошибок.
Будет рассмотрен простейший вариант продажи обуви.
Т.е., до выхода релиза, организация зарегистрировалать на сайте Честного знака, были получены коды маркировки на остатки товара, распечатаны и наклеены без участия 1С.
Наша задача, чтобы при пробитии чека, отсканированный код маркировки попадал в чек для обработки оператором фискальных данных. Обратите внимание, Ваша ККМ должна поддерживать передачу кода маркировки!!!
Настраиваем учет маркировки обуви в обновленной УТ 10.3.59.2.
Открываем обработку в меню «Обмен с ГосИС» - «Обмен в ИС МП».
Далее «Настройки и справочники» - «Настройки интеграции с ИС МП»
Устанавливаем флаг «Вести учет обувной продукции» и «Дата ввода обязательной маркировки» - 01.03.2020.
В карточке номенклатуры появляется возможность указать признак «Обувная продукция».
Групповой обработкой устанавливаем этот признак для обуви.
Подключаем сканер штрихкода (с поддержкой считывания двумерных кодов).
Меню «Сервис» - «Настройка учета» - «Настройка параметров учета» - закладка «Настройка торгового оборудования» - установить флаг «Использовать подключаемое оборудование».
Далее меню «Сервис» - «Торговое оборудование» - «Настройка подключаемого оборудования (тонкий клиент)».
Добавляем новое рабочее место и для него сканер штрихкода.
Чек будет пробиваться из интерфейса кассира.
Далее в конфигураторе испраляем ошибки, которые не дадут пробить чек с кодом маркировки.
Измененные модули во вложении.
1. При пробитии чека возврата, в базе фиксируется чек возврата, а в ККМ чек продажи.
Общий модуль ТорговоеОборудованиеУТВызовСервера
в функции ПараметрыОперацииФискализацииЧекаЧекККМ
меняем строку
ПараметрыФискализацииЧека = ПодключаемоеОборудованиеУТВызовСервера.ПараметрыФискализацииЧека(ДанныеДокументаДляЧека, , , Ложь);
На
ПараметрыФискализацииЧека = ПодключаемоеОборудованиеУТВызовСервера.ПараметрыФискализацииЧека(ДанныеДокументаДляЧека, ,ДокументСсылка.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат , Ложь);
2. При выборе в чеке товара с признаком обувной продукции, выдает ошибку открытия формы ввода кода маркировки.
Общий модуль ШтрихкодированиеИСКлиент
В процедуре ОткрытьФормуСчитыванияКодаМаркировки
Перед строкой
ОткрытьФорму("Обработка.ПроверкаИПодборПродукцииИСМП.Форма.ФормаВводаКодаМаркировки",ПараметрыОткрытия, ФормаВладелец,,,,ОповещениеОЗавершении);
Добавляем строку
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОбработатьКодМаркировки", ФормаВладелец, ОповещениеОЗавершении);
3. После сканирования кода маркировки, в реквизит Штрихкод в документа чекККМ все равно устанавливается линейный штрихкод товара.
Документ ЧекККМ модуль формы ФормаРегистрацииПродаж
В процедуре ПриИзмененииНоменклатурыТоваров
Добавляем условие
Если СокрЛП(СтрокаТабличнойЧасти.ШтрихКод) = "" Тогда
ШтрихКод = "";
Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.Номенклатура) Тогда
СтрокаШтрихкода = УправлениеРозничнойТорговлей.ПолучитьШтрихКод(СтрокаТабличнойЧасти.Номенклатура,
СтрокаТабличнойЧасти.ЕдиницаИзмерения,
СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры,
СтрокаТабличнойЧасти.СерияНоменклатуры,
Справочники.Качество.Новый);
Если СтрокаШтрихкода <> Неопределено Тогда
ШтрихКод = СтрокаШтрихкода.Штрихкод;
КонецЕсли;
КонецЕсли;
СтрокаТабличнойЧасти.ШтрихКод = ШтрихКод;
КонецЕсли;
4. При закрытии чека с обувью, штрихкод не передается с реквизитами в ККМ.
Общий модуль ТорговоеОборудованиеУТВызовСервера
в функции ПараметрыОперацииФискализацииЧекаЧекККМ
меняем второй запрос (добавляем штрихкод)
"ВЫБРАТЬ
| ТабличнаяЧасть.НомерСтроки КАК НомерСтроки,
| ТабличнаяЧасть.КлючСтроки = 0 КАК СверхЗаказа,
| ТабличнаяЧасть.Номенклатура КАК Номенклатура,
| ТабличнаяЧасть.ХарактеристикаНоменклатуры КАК Характеристика,
| ТабличнаяЧасть.СерияНоменклатуры КАК Серия,
| ТабличнаяЧасть.ЕдиницаИзмерения КАК Упаковка,
| ЕСТЬNULL(ТабличнаяЧасть.Номенклатура.ВидНоменклатуры.ТипНоменклатуры, ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.ПустаяСсылка)) КАК ТипНоменклатуры,
| ЕСТЬNULL(ТабличнаяЧасть.Номенклатура.ТабачнаяПродукция
| ИЛИ ТабличнаяЧасть.Номенклатура.АлкогольнаяПродукция
| ИЛИ ТабличнаяЧасть.Номенклатура.ОбувнаяПродукция, ЛОЖЬ) КАК ПодакцизныйТовар,
| ЕСТЬNULL(ТабличнаяЧасть.Номенклатура.НаименованиеПолное, """") КАК НоменклатураНаименование,
| ЕСТЬNULL(ТабличнаяЧасть.ХарактеристикаНоменклатуры.Наименование, """") КАК ХарактеристикаНаименование,
| ТабличнаяЧасть.ЕдиницаИзмерения КАК УпаковкаНаименование,
| ТабличнаяЧасть.Количество КАК Количество,
| ТабличнаяЧасть.Количество КАК КоличествоУпаковок,
| ВЫРАЗИТЬ(ТабличнаяЧасть.Цена КАК ЧИСЛО(31, 2)) КАК Цена,
| ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.ПустаяСсылка) КАК СтавкаНДС,
| 0 КАК СуммаСкидки,
| ТабличнаяЧасть.Сумма КАК СуммаСНДС,
| ЕСТЬNULL(ТабличнаяЧасть.Номенклатура.АлкогольнаяПродукция, ЛОЖЬ) КАК АлкогольнаяПродукция,
| ЕСТЬNULL(ТабличнаяЧасть.Номенклатура.ТабачнаяПродукция, ЛОЖЬ) КАК ТабачнаяПродукция,
| ЕСТЬNULL(ТабличнаяЧасть.Номенклатура.ОбувнаяПродукция, ЛОЖЬ) КАК ОбувнаяПродукция,
| ТабличнаяЧасть.Штрихкод
|ПОМЕСТИТЬ Товары
|ИЗ
| Документ.ЧекККМ.Товары КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Товары.НомерСтроки,
| Товары.СверхЗаказа,
| Товары.ТипНоменклатуры,
| Товары.ПодакцизныйТовар,
| Товары.НоменклатураНаименование,
| Товары.ХарактеристикаНаименование,
| Товары.УпаковкаНаименование,
| Товары.КоличествоУпаковок,
| Товары.Цена,
| Товары.СуммаСкидки,
| Товары.СтавкаНДС,
| Товары.СуммаСНДС,
| Товары.АлкогольнаяПродукция,
| Товары.ТабачнаяПродукция,
| Товары.ОбувнаяПродукция,
| Товары.Штрихкод
|ИЗ
| Товары КАК Товары");
5. При записи реквизитов чека, возникает ошибка записи атрибута MarkingCode
Будем передавать туда значение штрихкода без скобок.
Общий модуль МенеджерОборудованияВызовСервера
Процедура ЗаписатьДанныеКодаТоварнойНоменклатуры
Меняем блок
Если НЕ ПустаяСтрока(ДанныеКодаТоварнойНоменклатуры.РевизитКодаТовара) Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("GoodCodeData");
ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(ДанныеКодаТоварнойНоменклатуры.РевизитКодаТовара));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
на
Если Не ПустаяСтрока(Позиция.Штрихкод) Тогда // Ревизит кода товара.
MarkingCode = Позиция.Штрихкод;
MarkingCode = СтрЗаменить(MarkingCode,"(","");
MarkingCode = СтрЗаменить(MarkingCode,")","");
ЗаписьXML.ЗаписатьНачалоЭлемента("GoodCodeData");
ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(MarkingCode));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
И меняем блок
Если Не ПустаяСтрока(ДанныеКодаТоварнойНоменклатуры.РеквизитКодаТовара) Тогда // Ревизит кода товара.
ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока( ДанныеКодаТоварнойНоменклатуры.РеквизитКодаТовара));
КонецЕсли;
на
Если Не ПустаяСтрока(Позиция.Штрихкод) Тогда // Ревизит кода товара.
MarkingCode = Позиция.Штрихкод;
MarkingCode = СтрЗаменить(MarkingCode,"(","");
MarkingCode = СтрЗаменить(MarkingCode,")","");
ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(MarkingCode));
КонецЕсли;
6. При пробитии обуви в чеке, выводится признак, что это акцизный товар.
Видимо осталось от табачной продукции.
Общий модуль ПодключаемоеОборудованиеУТВызовСервера
Функция ПараметрыФискализацииЧека
Перед блоком
// Общие данные строки чека
Добавляем
Если СтрокаТЧ.ОбувнаяПродукция Тогда
СтрокаТЧ.ПодакцизныйТовар = Ложь;
КонецЕсли;
Все измененные модули во вложении.
Вариант доработок делал для себя, используете на свой страх и риск.