Доброго времени суток программисты
с 09.11.2023 в офд начали возникать ошибки и в чеке надпись что нужно типа отправлять тег 2108
не пойму где именно это прописать т.к. программа досталась мне кастомизированная и интеграцию по кассе писал кто то до меня (((
Если честно вообще не понимаю где этот тег передается в каком месте.
Кто что знает откройте тайну плиз, касса ФР АТОЛ 27
(1) я открыл мануал в гугле ищется. Закрыл ссылку.
Там 4 пункта.
Скачать ПО для тестирования.
Настроить драйвер версии 1.2. Проверить, что настройки правильные и тест прошел (менять ничего не нужно кроме настроек подключения юсб или ком). 1.1 будет без части настроек со скрина мануала, это первый признак проблемы.
Если тест прошел, значит драйвер работает.
Осталось его в оборудование добавить и настроить рабочее место.
Касса должна быть закрыта. На всякий придется перезапустить 1С. Перезагрузить ПК (скорее всего не обязательно).
Файлик настрое проверяем, если не корректно настроен, то тест не пройдет. Я менял с 5 на 4 переставало работать. В мануале 5 стояла, думал это номер ком порта, а похоже что-то другое.
В скаченном ПО выяснил что на кассе стоит 1.2.
Проблема была в 1С, старый драйвер был 1.1. После перенастройки стал 1.2. Я забыл его в оборудовании указать.
После всего этого ошибка ушла без доработок в коде.
Но и конфигурация была ноябрем 2023. Если у вас старая, то возможно код придется править!
(7)Компонента интеграционная в 1С тоже 1.2?
В общем, проверяйте, что-то одно не выполняется
1. В XML, формируемом в 1С и передаваемом в кассу должен быть тег MeasureOfQuantity
2. Касса должна быть ФФД 1.2
3. Драйвер с поддержкой ФФД 1.2
4. Интеграционная компонента ФФД 1.2
Решил проблему так. Скачал самый последний драйвер Атола (на сегодня это 10.10). Переустановил драйвер ККТ в 1С. После этого появился тег MeasureOfQuantity (можно посмотреть в РС Фискальные операции).
Так же есть галка в свойствах ККТ "Автоматически передавать меру количества тег 2108 на позицию" (ее установка мне не помогла, может кому-нибудь поможет)
Может кому пригодится код по установке тега. Находится в общем модуле МенеджерОборудованияВызовСервера.СформироватьXMLПакетДляФискализацияЧека
....
Если ПараметрыФискализации.РевизияИнтерфейса >= 3004 Тогда
Если Не ПустаяСтрока(ТекущаяПозиция.КонтрольнаяМарка) Тогда
ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(ТекущаяПозиция.КонтрольнаяМарка));
КонецЕсли;
МераКоличестваПредметаРасчета = МенеджерОборудованияКлиентСервер.МераКоличестваПредметаРасчетаПоКодуЕдиницыИзмерения(ТекущаяПозиция.КодЕдиницыИзмерения);
МераКоличестваПредметаРасчета = МенеджерОборудованияКлиентСервер.КодМерыКоличестваПредметаРасчетаККТ(МераКоличестваПредметаРасчета);
ЗаписьXML.ЗаписатьАтрибут("MeasureOfQuantity", XMLСтрока(МераКоличестваПредметаРасчета));
(11) Добавил в xml поле "MeasureOfQuantity" как описано в (4). Возвращает ошибку "Ошибка программирования реквизита 1228" (что странно, т.к. это тег информации о покупателе)...
Версия драйвера 10.5.0.0. Этот драйвер не поддерживает передачу тега "2108" ?
22.12.2023 15:47 !!! Очень важно
Уважаемые пользователи!
Если вы используете кассы производителя АТОЛ, пожалуйста, обновите драйвер основной поставки до версии не ниже 10.9.5.0 и на интеграционный драйвер "АТОЛ:ККТ с передачей данных в ОФД 10.Х (ФФД 1.2)", а также прошивку ККТ до версии не ниже 5.8.100.
Драйвер "АТОЛ:ККТ с передачей данных в ОФД 10.Х (ФФД 1.2)" поддерживает работу с ККТ ФФД 1.05, 1.1, 1.2.
Драйвер "АТОЛ:ККТ с передачей данных в ОФД 10.Х" устарел и снят с поддержки согласно информационному письму. В связи с предстоящими серьезными изменениями законодательства следите за актуальными версиями драйверов ККТ на сайте."
(13) Спасибо. После обновления драйверов все заработало.
Но, как в том анекдоте "есть ньюанс": данные в ОФД отправляются, но чек на кассе не печатается. Описание протокола от драйверов Атола не нашел, но руководствуясь документом от ИТС (https://its.1c.ru/db/metod8dev/content/4829/hdoc/checkpackage), вижу, что параметр "Электронно", передаваемый в процедуру "СформироватьЧек" определяет как раз необходимость печати чека. А в нашей конфе он определяет безналичную оплату ("Электронно" = Истина – значит, оплата безналом). Это у нас некорректно написано, или этот параметр новым драйвером обрабатывается иначе ? Если кто знает, развейте, пожалуйста, эти сомнения
интеграционный драйвер "АТОЛ:ККТ с передачей данных в ОФД 10.Х (ФФД 1.2)"
а где его взять? если данным давно работаем на УТ 10.3 под себя писали ничего не обновлять и что делать теперь незнаем, кто может помочь готовы опалить
Здравствуйте! Могу дополнить ко всему сказанному. Тестировал в одинаковых тех .условиях (Атол 30Ф, прошивка 5.8.1, фн версии 1.2, драйвера Атола 10.9.3, 10.9.5) на разных конфигурациях от фирмы 1С.
1. Для "новых" торговых конфигурациях в управляемых формах (УТ 11.5, Розница 2.3.10 и выше) все работает. В бумажных чеках единица измерения (мера) показывается в строке с количеством. В ОФД уходит верные значения тэга 2108.
2. В конфигурации УТ 10.3.85.1 остается проблема с неверным выводом значения данного тэга и вывода в бумажный чек. Хотя в данной конфигурации уже имеются модули для записи в XML, но по какой-то причине всегда пишет значение тэга 2108 = "255" - Иные Единицы Измерения.
Решение:
1) Проверить в классификаторе единиц измерения верно ли стоят коды единиц, согласно ОКЕИ. К примеру код у "штуки" 796, код у "кг" =166 и т.д.
2) Доработать модули что-бы наверняка было правильное соответствие
Общий модуль РозничныеПродажи, Функция КодЕдиницыИзмеренияПараметраЧека(ЕдиницаИзмерения) Экспорт
КодЕдиницыИзмерения = "";
//Если ТипЗнч(ЕдиницаИзмерения) = Тип("Строка")
// И ЕдиницаИзмерения = "шт." Тогда
//
// КодЕдиницыИзмерения = "796";
//
//ИначеЕсли ТипЗнч(ЕдиницаИзмерения) = Тип("СправочникСсылка.КлассификаторЕдиницИзмерения")
// И НЕ ЕдиницаИзмерения.Пустая() Тогда
//
// ЕдиницаИзмеренияКлассификатора = ЕдиницаИзмерения;
// КодЕдиницыИзмерения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЕдиницаИзмеренияКлассификатора, "Код");
//
//КонецЕсли;
Если ТипЗнч(ЕдиницаИзмерения) = Тип("Строка") И СтрНайти(ЕдиницаИзмерения, "шт")>0 Тогда
КодЕдиницыИзмерения = "796";
ИначеЕсли ТипЗнч(ЕдиницаИзмерения) = Тип("Строка") И СтрНайти(ЕдиницаИзмерения, "кг")>0 Тогда
КодЕдиницыИзмерения = "166";
ИначеЕсли ТипЗнч(ЕдиницаИзмерения) = Тип("Строка") И СтрНайти(ЕдиницаИзмерения, "упак")>0 Тогда
КодЕдиницыИзмерения = "778";
ИначеЕсли ТипЗнч(ЕдиницаИзмерения) = Тип("СправочникСсылка.КлассификаторЕдиницИзмерения")
И НЕ ЕдиницаИзмерения.Пустая() Тогда
ЕдиницаИзмеренияКлассификатора = ЕдиницаИзмерения;
КодЕдиницыИзмерения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЕдиницаИзмеренияКлассификатора, "Код");
КонецЕсли;
Возврат КодЕдиницыИзмерения;
Показать
Общий модуль "МенеджерОборудованияКлиентСервер" , Функция МераКоличестваПредметаРасчетаПоКодуЕдиницыИзмерения(КодЕдиницыИзмерения) Экспорт
Здесь добавим соответствие единицы измерения "упаковка" , если конечно используете и в случае если код единицы не распознали, тогда возвращаем значение для штук (было прочее 255). Изменяем последний кусок кода.
МерыКоличества.Вставить("778", ПредопределенноеЗначение("Перечисление.МераКоличестваПредметаРасчетаККТ.ИныеЕдиницыИзмерения"));
//************
МерыКоличества = МерыКоличества.Получить(Строка(КодЕдиницыИзмерения));
Если МерыКоличества = Неопределено Тогда
//МерыКоличества = ПредопределенноеЗначение("Перечисление.МераКоличестваПредметаРасчетаККТ.ИныеЕдиницыИзмерения");
МерыКоличества = ПредопределенноеЗначение("Перечисление.МераКоличестваПредметаРасчетаККТ.Штука");
КонецЕсли;
Возврат МерыКоличества;
Оставлю тут: тоже поймали проблему - пришлось допилить в МП 1с:мобильная касса 3.16 аналогично. И там взлетело с штатным драйвером 10.9.2 в МП и прошивкой 5.8.1.
Истории из серий как создать проблему из ничего, ну и кто при наличие тега в ффд 1.2 не проверял (или хотя бы тупо туда ставил 0 для шт) его наличие отдельное место в аду
Касса Атол 22Ф, скачали/поставили драйвер 10.10.0.0. Драйвер оказался проблемным:
1. Почему-то он возвращал версию ФФД "???", вместо "1.2" - поправили расширением
2. Из-за того что он возвращал РевизиюИнтерфейса 2005, в xml-структуре чека не формировался тег MeasureUnit, который как раз и является тегом 2108.
Решение: скачали и установили более старый драйвер 10.9.2.5, все проблемы ушли.
Атол 11Ф (прошивка 5.8.1, Формат ФД 1.2),
УТ 11.5.12.270,
Драйвер АТОЛа 10.10.3.0,
интеграционный пакет в 1с загружен с сайта АТОЛа от этого же драйвера.
Результат: 1с определяет Формат ФД как 1.1. Никакие настройки не помогают. Написал расширение.
С расширением начал выгружать тэг 2108, но 1с его заполняет всегда кодом 255. Хотя вся номенклатура имеет едницу измерения. Все единицы измерения в общем справочнике подобраны из ОКЕИ, дубликатов нет.
Снова писал расширение.
Сейчас все работает, но так и не понял где я ошибся. Судя по отзывам все должно работать и без всяких доработок.
(32) Согласен. 796 - это штуки по ОКЕИ. 1с, при формировании чека, 796 код видимо преобразует в 0. Не проверял, т.к. чек проверили сразу через онлайн ОФД и он был нормальный с указанной единицей измерения "шт".
В любом случае 1с почему-то для любого товара передает пустой код ед.измерения, из-за чего сама же и преобразует его для чека в 255. Что неверно.
Если тема не закрыта, то хотел бы спросить о проблеме передачи тега 2108. Просмотрел присутствующие комментарии. Заметил два момента. Первый: проблема возникла у всех на кассах АТОЛ. Второй: кассы АТОЛ работают в связке с программой 1С Управление торговлей (УТ). И решения вроде есть, но у нас это не работает. Касса АТОЛ 30Ф(прошивка 5.10.0) , программа 1С Бухгалтерия предприятия 3.0(релиз 8.3.25.1394, конфиг. 3.0.160.22). Недавно сменили ФН до формата 1.2, обновили драйвер и интеграционный компонет до 10.10.3.5. Но тег 2108 в чеке не передается. Похоже на случай, описанный выше. 1с для любого товара передает пустой код меры количества, или не опознает его, преобразуя его для чека в 255. Конфигурации БП и УТ не совпадают по разделам, поэтому где искать там решение не знаем. Может кто-то имел дело с БП и сталкивался с такой ситуацией? Подскажите решение.