Версия драйвера ККТ Атол 8.16.5.9221
Обработка предназначена для корректной передачи СНО при пробитии чека.
Для 1с 7.7 ТиС 7.70.999 пришлось написать обработку подключаемого оборудования для новых драйверов Атол версии 8.16.5.9221, которая может работать с разными СНО и ставкой НДС 20 % (если ККТ прошит до последней прошивки 7733 и получена лицензия).
Для работы необходимо скопировать файлы из каталога драйвера "C:Program FilesATOLDrivers8Bin"с расширением *.dll в каталога ИБ или платформы и зарегистрировать "FprnM1C.dll" с помощью regsvr32.exe.
Скопировать обработку обслуживания "frATOL54_comm_105.efd" в [каталог ИБ]ExtFormsEquip
Если необходимо, то измененяем файл описания оборудования с расширением *.efd.
Например:
Модель оборудования АТОЛ 55Ф, то изменяем содержимое файла "fr_Atol55F_105.efd" на следующее:
Вид=фр
Модель=АТОЛ 55Ф 1.05
Компонента=FprnM1C.dll
ПрогИд=FprnM8
Обработка=frATOL54_comm_105.ert
В 1с 7.7 Сервис-Настройки торгового оборудования-Фискальный регистратор необходимо выбрать модель ККТ, в настройках подключения выбрать ВК "FprnM1C.dll", обработку обслуживания "frATOL54_comm_105.ert", программный идентификатор "FprnM8"
Для печати скидок в таблицу значений товаров необходимо добавить колонки и заполнить "ЦенаСоСкидками" и "СуммаСкидок".
Пример функции ПробитьЧекНаККМ() в форме документа ЧекККМ:
Функция ПробитьЧекНаККМ()
Перем НомерЧека;
СписокТоваров = СоздатьОбъект("ТаблицаЗначений");
СписокТоваров.НоваяКолонка("ТовНаим" , "Строка");
СписокТоваров.НоваяКолонка("Цена" , "Число");
СписокТоваров.НоваяКолонка("Количество", "Число");
СписокТоваров.НоваяКолонка("Сумма" , "Число");
СписокТоваров.НоваяКолонка("СтавкаНДС" , "Строка");
//Изменения нового формата
СписокТоваров.НоваяКолонка("СуммаСкидок" , "Число");
СписокТоваров.НоваяКолонка("ЦенаСоСкидками" , "Число");
СписокТоваров.НоваяКолонка("НомерСекции" , "Число");
СписокТоваров.НоваяКолонка("СуммаНДС" , "Число");
//Изменения нового формата
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
СписокТоваров.НоваяСтрока();
СписокТоваров.ТовНаим = Номенклатура.Наименование;
СписокТоваров.Цена = Цена;
СписокТоваров.Количество = Количество;
СписокТоваров.Сумма = Сумма;
//Изменения нового формата
Если Скидка.Процент <> 0 Тогда
СписокТоваров.ЦенаСоСкидками = Сумма / Количество;
СписокТоваров.СуммаСкидок = Окр(Цена * Количество, 2, 1) - Сумма;
Иначе
СписокТоваров.ЦенаСоСкидками = Цена;
СписокТоваров.СуммаСкидок = 0;
КонецЕсли;
//Изменения нового формата
//Тип системы налогообложения
//0 Общая ОСН
//1 Упрощенная Доход УСН доход
//2 Упрощенная Доход минус Расход УСН доход - расход
//3 Единый налог на вмененный доход ЕНВД
//4 Единый сельскохозяйственный налог ЕСН
//5 Патентная система налогообложения Патент
Если Номенклатура.СтавкаНДС = Перечисление.СтавкиНДС.БезНДС Тогда
СписокТоваров.СтавкаНДС = "none";
//Изменения нового формата
ПУП = 3;
СписокТоваров.НомерСекции = 1;
СписокТоваров.СуммаНДС = 0;
//Изменения нового формата
Иначе
////Изменения нового формата
//СписокТоваров.СтавкаНДС = 100 * глНачисляемыйНДС(Номенклатура.СтавкаНДС);
ПроцентНДС = глНачисляемыйНДС(Номенклатура.СтавкаНДС);
СписокТоваров.СтавкаНДС = 100 * ПроцентНДС ;
ПУП = 0;
СписокТоваров.НомерСекции = 8;
СписокТоваров.СуммаНДС = Окр(Сумма * ПроцентНДС / (ПроцентНДС + 1), 2, 1);
//Изменения нового формата
КонецЕсли;
КонецЦикла;
ПризнВозврата = ?(ВидОперации = Перечисление.ВидыОперацийЧекККМ.Чек, 0, 1);
ВыбКасса = глЗначениеПоУмолчанию("ОсновнаяКасса");
ВыбКассир = "";
Если ПустоеЗначение(ВыбКасса) = 0 Тогда
ВыбКассир = ВыбКасса.КассирККМ.Получить(ДатаДок);
Если ПустоеЗначение(ВыбКассир) = 1 Тогда
ВыбКассир = Фирма.ЮрЛицо.Кассир.Получить(ДатаДок);
КонецЕсли;
КонецЕсли;
Кассир = глФамилияИмяОтчество(ВыбКассир);
ЧекПробитККМ = глФРПечататьЧек(СписокТоваров, Итог("Сумма"), ?(Получено=0,Итог("Сумма"),Получено), Скидка.Процент, ПризнВозврата, Склад.НомерСекции, НомерЧека, ПУП, Кассир);
Если ЧекПробитККМ = 1 Тогда
ПриЗаписиПерепроводить(0);
НомерЧекаККМ = НомерЧека;
Записать();
ПриЗаписиПерепроводить(1);
// Откроем денежный ящик, если он подключен
глДПОткрытьДенежныйЯщик();
КонецЕсли;
Возврат ЧекПробитККМ;
КонецФункции // ПробитьЧекНаККМ()
Обработку frATOL54_comm_105.ert надо допилить на НДС20%
ИначеЕсли СписокТоваров.СтавкаНДС = «18» Тогда
Объект.TaxTypeNumber = 3;
ИначеЕсли СписокТоваров.СтавкаНДС = «20» Тогда
Объект.TaxTypeNumber = 3; // добавляем для НДС20%;
И настоить ФР по картинке, будет работать, печатать в чеке услугу а не товар….
(1) условие на 20 % и так есть в обработке
Это в типовой из последнего релиза R770999, чтобы не писать конфу, как вариант….
(3) для этой обработки тоже конфу пилить не нужно. Если нужны скидки, то нужно. Новый драйвер сам не рассчитывает скидку по проценту
Да я не претендую, возможно у меня релиз ТиС староват…. Вы исправляете в чеке ККМ Функцию ПробитьЧекНаККМ(), а в глобальном модуле функци. глФРПечататьЧек () наверняка придется исправлять (у меня)?
(5) изменяется таблица значений с товарами и присваивается нужное значение ПУП. Эти значения и в типовой передаются, а в тз проверяются новые колонки, если нет, то подставляется просто сумма и цена
Проблема была в том, что ФР после предновогодней прошивке перестал работать при ОСН, товар и НДС 20%…после этих манипуляций работает ….только печатает в чеке не товар а услуга…
попробовал подключить сыпет кучу ошибок.
Показать
(8)Торговля+Склад, редакция 9.2 (7.70.999) — есть все глобальные переменные.
У Вас какая версия?
Торговля+Склад, редакция 9.2 (7.70.999) — есть все глобальные переменные.
У Вас какая версия?
В типовой, в документе «ЧекККМ» только одна форма оплаты (наличная). Пришлось ещё добавить выбор формы оплаты ( нал/безнал).
А при печати из ПКО ИНН печатается, передается ?
(12) Если речь идет про ИНН кассира, то возможность передать в обработку обслуживания есть, но необходима доработка в документе ПКО.
клиент говорит что если оплата не от физ лица то должен быть параметр инн организации
(14) Если в ПКО не будет заполнен реквизит «Документ основания», то можно в реквизите «Принято от» вписать ИНН покупателя и в строках выведется все, что написано в реквизитах ПКО: «Принято от» и «Основание» . При заполненном реквизите «Документ основания» данные будут заполнены из его табличной части.
(14) Еще конечно можно выводить не фискальные строки с этой информацией
(16) Летом 2019 г. будут введены новые реквизиты в чеках, которые оформляются между организациями и ИП при наличном или безналичном расчете (пп. «д» п. 15 ст. 1 Закона № 192-ФЗ). Эти реквизиты предназначены для детального определения покупателя. Необходимо будет указывать наименование организации или ФИО предпринимателя, ИНН клиента. Если для расчетов выставляется счет-фактура, в кассовый чек должны входить реквизиты, относящиеся к предмету расчета (сумма акциза, код страны, рег. номер таможенной декларации).
Также, с 1 июля 2019 в чеке будет обязательно указывать:
сведения о стране происхождения товара
сумму акциза и регистрационный номер таможенной декларации (если применимо)
(17) Проверю документацию к библиотеке. Если такая возможность появилась, то обновлю обработку.
Конфигурацию типовую используете?
(19) да …
Подробнее с назначением новых тегов можно ознакомиться по ссылкеhttps://its.1c.ru/db/newscomm#content:458995:hdoc
(21) Новую обработку нет возможности проверить. Пока уберу из публикации
(21)
И значения брать из партии, если авто, то получить из движения документов
Акциз тоже можно добавить в свойство партии
(23) а можно прислать tarlich@mail.ru -))
(Я так думаю)
Акциз нужен только если маркируемая продукция (сигареты обувь аптеки и т.д) (где посмотреть какой у каого код ?)
а в поле АКЦИЗ сканируем 2Д сканером ШК . так ?
(25) Отправлю
Проверьте устанавливаются атрибуты для ст строк товара.
Есть версия с печатью ИНН покупателя?
(28) Есть доработанная, но проверить пока не на чем. И для передачи ИНН покупателя нужна доработка конфигурации. В начале месяца в последнем релизе этого не было.
//Покупатель
Объект.AttrNumber = 1227;
Объект.AttrValue = Покупатель; //281218
Объект.AttrPrint = 1;
Объект.WriteAttribute();
//ИНН
Объект.AttrNumber = 1228;
Объект.AttrValue = ПокупательИНН; //281218
Объект.AttrPrint = 1;
Объект.WriteAttribute();
(30) проверил этот код, на последнем 8 драйвере работает
Тогда сейчас обновлю обработку
(30) последняя версия это 8.16.4? на сайте атола он спрятан или я как-то неправильно открываю. почему-то захожу у них там в «архив», а там пусто
(33)все же нашел последнюю 8.16.6. почему-то передаю ИНН покупателя и наименование, но на печать они не выходят (все делаю так же). у меня АТОЛ FPrint-22ПТК, прошивка (ID серии) 10-7733
может быть в кассовом аппарате (т.е. его софте) есть какая-то настройка
(34)
добрый день. Есть возможность выложить драйвер 8.16.6 или ссылку на драйвер на фс.атол?
(35)добрый день! написал сообщение, где я брал обработку, но у меня в 8-й версии не работает печать ИНН (чтобы не бросать тень на обсуждаемую обработку, может быть я где-то что-то сделал неправильно, к данной обработке это отношения не имеет, я просто использовал изложенные здесь идеи, за что спасибо Автору)
поставил 10-ю версию, там у меня выходит ИНН и наименование…
(36) мне нужен был просто дккм 8.16.6. к обработке отношения не имею ни какого. сорян за оффтоп.
Подскажите, пожалуйста, получилось реализовать на 8-м драйвере печать ИНН и название покупателя?
(38) Да получилось. Нужна доработка в конфигурации. Есть описание в комментарии выше
Какая нужна версия ДТО 8 чтобы печатался ИНН покупателя?
Повисает при загрузке внешней компоненты
Если ЗагрузитьВнешнююКомпоненту(Компонента) = 0 Тогда
ОписаниеРезультата = «не удалось загрузить внешнюю компоненту «»» + Компонента + «»»»;
вот здесь наглухо и всё
(40) Точно не скажу. В комментариях пишут, что используют 8.16.6
(41) Это пункт проделывали из описания: Для работы необходимо скопировать файлы из каталога драйвера «C:Program FilesATOLDrivers8Bin»с расширением *.dll в каталога ИБ или платформы и зарегистрировать «FprnM1C.dll» с помощью regsvr32.exe.
(43)да, конечно
(44)установите 8 драйвер последней версии и повтори все действия из описания
У меня АТОЛ 11 Ф драйвер 8.16.6 и тоже не печатает ИНН и покупателя хотя обработке пишу :
Покупатель = «ИП Немирова Татьяна Владиславовна»; //для отладки
Объект.AttrNumber = 1227;
Объект.AttrValue = Покупатель;
Объект.WriteAttribute();
ПокупательИНН = «781415113282»; //для отладки
Объект.AttrNumber = 1228;
Объект.AttrValue = ПокупательИНН;
Объект.WriteAttribute();
Вот думаю 10-ый драйвер поставить.
т.к. в логе читаю следующее:
14.08.2019 16:32:16.777 0000002637 Driver.Set_AttrNumber 1227
14.08.2019 16:32:23.736 0000006957 Driver.Set_AttrValue ИП Немирова Татьяна Владиславовна
14.08.2019 16:33:11.616 0000047877 Driver.WriteAttribute
14.08.2019 16:33:11.616 0000057471 TCustomTechThread.SetResult -1:
14.08.2019 16:33:11.616 0000000000 Посылка пакета: C1 01 2F 00 00 E8 01 01 00 CB 04 0C 00 90 E3 E1 AA A5 A0 AB A0 20 8E 8E 8E
14.08.2019 16:33:11.672 0000000062 TCustomTechThread.SetResult -1: (InProgress)
14.08.2019 16:33:11.680 0000000000 TCustomTechThread.SetResult 0:
14.08.2019 16:33:11.680 0000000000 AsyncResult: STATUS_AsyncError
14.08.2019 16:33:11.680 0000000000 Посылка пакета: C4
14.08.2019 16:33:11.681 0000000000 Received async err answer: 55 9A 00
14.08.2019 16:33:11.681 0000000000 Посылка пакета: C4
14.08.2019 16:33:11.682 0000000000 TCustomTechThread.SetResult 0:
14.08.2019 16:33:11.682 0000000062 Ошибка! ResultCode = -3801 ResultDescription = «Чек закрыт — операция невозможна» BadParam = 0 BadParamDescription = «Ошибок в параметрах нет»
14.08.2019 16:33:22.268 0000010593 Driver.Set_AttrNumber 1228
14.08.2019 16:33:23.016 0000000749 Driver.Set_AttrValue 781415113282
14.08.2019 16:33:31.444 0000008424 Driver.WriteAttribute
14.08.2019 16:33:31.444 0000019766 TCustomTechThread.SetResult -1:
14.08.2019 16:33:31.444 0000000000 Посылка пакета: C1 01 30 00 00 E8 01 01 00 CC 04 0C 00 37 38 31 36 35 31 31 39 36 35 20 20
14.08.2019 16:33:31.501 0000000062 TCustomTechThread.SetResult -1: (InProgress)
14.08.2019 16:33:31.510 0000000000 TCustomTechThread.SetResult 0:
14.08.2019 16:33:31.510 0000000000 AsyncResult: STATUS_AsyncError
14.08.2019 16:33:31.510 0000000000 Посылка пакета: C4
14.08.2019 16:33:31.510 0000000000 Received async err answer: 55 9A 00
14.08.2019 16:33:31.510 0000000000 Посылка пакета: C4
14.08.2019 16:33:31.511 0000000000 TCustomTechThread.SetResult 0:
14.08.2019 16:33:31.511 0000000062 Ошибка! ResultCode = -3801 ResultDescription = «Чек закрыт — операция невозможна» BadParam = 0 BadParamDescription = «Ошибок в параметрах нет»
ЗАРАБОТАЛО !!!
Надо это писать после списка товаров.