54-ФЗ: Онлайн-кассы для 1С 8.1 УТ 10.2. Поддержка Native драйверов Атол



Доработан и адаптирован функционал работы ККТ по 54_ФЗ на УТ 10.2 платформы 8.1. Поддержка драйверов Атол версии 9 (native) и эмулятора ККТ. Код полностью открыт и внесены комментарии для самостоятельной доработки. Протестировано на Атол 11Ф. Распространяется как есть.

Установка

  1. Установить последние драйвера ДТО от Атол по ссылке http://fs.atol.ru или https://exam.shtrih-m-partners.ru/base/ для Штрих-М;

  2. Зарегистрировать компоненту: regsvr32 FprnM1C82_54FZ.dll для Атол дравер V8 или regsvr32 SMDrvFR1CLib20.dll для ШТРИХ-М. Для использования драйверов Атол V9(Nftive) необходимо зарегистрировать компоненту regsvr32 ATOLWrapper.dll и положить рядом с файлом архив с драйверами Атол "ATOL_KKT_9.zip", обычно архив находится тут "C:Program FilesATOLDrivers9KKT1Cv83". Для установки эмулятора необходимо зарегистрировать regsvr32 "FPEmulatorKKT1C2.dll".

  3. Загрузить обработку ATOLKKT81.epf/ATOLKKT81_V9.epf/ShtrihMkkt81.epf/EmulatorKKT_ProgID81.epf в справочник "Обработки обслуживания ТО".

4. Внести запись в справочник "Торговое оборудование" указав обработку обслуживания и модель.

5. Внести запись в регистр сведений "Торговое оборудование" и настроить ККТ.

Внесены следующие изменения в конфигурацию 

  1. Модуль приложения;
  2. Изменены документы:
    1. "ПриходныйКассовыйОрдер";
    2. "РасходныйКассовыйОрдер";
    3. "ЧекККМ".
  3. Добавлены общие модули:
    1. "РаботаСТорговымОборудованием";
    2. "КассовыеСменыВызовСервера";
    3. "МенеджерОборудованияКлиентСервер";
    4. "МенеджерОборудованияВызовСервера";
    5. "СтроковыеФункцииКлиентСервер";
    6. "ОбщегоНазначенияКлиентСервер";
    7. "ПодключаемоеОборудованиеУниверсальныйДрайверКлиент".
  4. Добавлена общая форма "ФормаНастройкиУниверсальныйДрайвер".
  5. Добавлен справочник "ОбработкиОбслуживанияТО".
  6. Изменены справочники:
    1. "ТорговоеОборудование";
    2. "КассыККМ".
  7. Добавлены перечисления:
    1. "ТООшибкиОбщие";
    2. "ТООшибкиФР";
    3. "ТипыРасчетаДенежнымиСредствами";
    4. "ТипыСистемНалогообложенияККТ";
    5. "СпособыФорматоЛогическогоКонтроля";
    6. "ВидыОперацийОплатаОтПокупателяПлатежнойКартой";
    7. "СистемыНалогообложения";
    8. "ОбъектыНалогообложенияПоУСН";
    9. "ТипыОплатыККТ";
    10. "ПризнакиСпособаРасчета";
    11. "ПризнакиПредметаРасчета".
  8. Изменено перечисление "ВидыТорговогоОборудования", добавлено значение "ККТ".
  9. Добавлена обработка "ТОСервер".
  10. Изменен регистр сведений "ТорговоеОборудование", "УчетнаяПолитикаНалоговыйУчет".

В приложенном файле архив с доработками и компонентами, предназначенный для объединения с конфигурацией УТ.

69 Comments

  1. karpik666

    Ааа, понял, то есть доработка до ут 10.3 понятно

    Reply ↓
  2. karpik666

    Идея хорошая, только обновите пожалуйста скриншоты, а то вообще не читаемо

    Reply ↓
  3. windows98a

    Здравствуйте. Реализован ли функционал по поводу отправки чеков на email и sms?

    Reply ↓
  4. Atom74

    Функционал отправки чеков на e-mail и sms не реализован, т.к. не понятно кто должен отправлять ОФД или продавец.

    Reply ↓
  5. user738495

    Добрый день! У нас очень старая УТ 10.2.2.5 нет справочника «Обработки обслуживания ТО», вместо него обработка «Торговое оборудование». С какого релиза будет работать ваша обработка?

    Reply ↓
  6. user738495

    (5) вопрос отпал, не внимательно прочитала описание.

    Reply ↓
  7. user738495

    При выполнении тестирования выходит сообщение:

    «Тест не пройден. Порт недоступен (‘5 555’ is not a valid integer value)»

    Оказалось, что компонента подключается, но драйвер (см. код ниже) определяется как НеизвестныйОбъект. Можете подсказать в каком направлении двигаться?

    попытка
    ПрогИД = «AddIn.ATOL_KKM_1C82_54FZ»;
    ПодключитьВнешнююКомпоненту(ПрогИД);
    Драйвер = Новый (ПрогИД);
    исключение
    ….
    конецПопытки
    Reply ↓
  8. karpik666

    (7) видимо неправильно задается порт в настройках, либо там просто ошибка, плюс скорее всего нужно переделать механизм подключения на внешнюю DLL. Также следует помнить, что при изменении формата обмена с ОФД, вам нужно опять дорабатывать ут 10.2, плюс нужно добавить форму для ввода email или телефона покупателя.

    Reply ↓
  9. Atom74

    1.Параметры подключения надо взять из настройки родных драйверов от ККМ. Проходит ли тест на родных драйверах?

    2.Зарегистрировать компоненту FprnM1C82_54FZ.dll.

    3.Все новшества можно взять из последней редакции 10.3.

    Reply ↓
  10. user738495

    спасибо, разобрались. был не верно указан порт.

    Reply ↓
  11. user738495

    Я так понимаю, что смена открывается пробитием первого чека, а как закрыть смену? обработка Закрытие смены не работает в данной конфигурации?

    Reply ↓
  12. Atom74

    Закрытие и отчеты через драйвера ККМ.

    Reply ↓
  13. kat__

    добрый день!

    для Атол 55Ф подойдет?

    Reply ↓
  14. Atom74

    Должно, не проверял.

    Reply ↓
  15. L33tBot1

    Никто не знает как печатать чеки по отделам. В таблицах ККТ он есть, а в модулях 1с не могу найти.

    Reply ↓
  16. L33tBot1

    (15) Разобрался! В модуль добавил, чеки печатает по отделам. Вот только с гашением по отделам не выводит. Как быть?

    Reply ↓
  17. kat__

    Как должна выглядеть строка параметров в регистре? приведите пример? автоматическое формирование ее не работает.

    Reply ↓
  18. Atom74

    {«#»,4238019d-7e49-4fc9-91db-b6b951d5cf8e,

    {13,

    {

    {«S»,»P_MachineName»},

    {«S»,»»}

    },

    {

    {«S»,»P_PortNumber»},

    {«N»,1003}

    },

    {

    {«S»,»P_BaudRate»},

    {«N»,3}

    },

    {

    {«S»,»P_Model»},

    {«N»,67}

    },

    {

    {«S»,»P_AccessPassword»},

    {«S»,»»}

    },

    {

    {«S»,»P_Password»},

    {«S»,»30″}

    },

    {

    {«S»,»P_PrintTax»},

    {«B»,1}

    },

    {

    {«S»,»P_PrintBarCodeText»},

    {«B»,1}

    },

    {

    {«S»,»P_Scale»},

    {«S»,»200″}

    },

    {

    {«S»,»P_ScaleQR»},

    {«S»,»300″}

    },

    {

    {«S»,»P_WriteLogFile»},

    {«B»,0}

    },

    {

    {«S»,»P_IPAddress»},

    {«S»,»127.0.0.1″}

    },

    {

    {«S»,»P_IPPort»},

    {«S»,»6 220″}

    }

    }

    }

    Reply ↓
  19. Denver322

    При попытке печатать чек из чека ККМ выдает ошибку

    {Документ.ЧекККМ(1659)}: Значение не является значением объектного типа (ФискализироватьЧек)

    ОшибкаТО = ОбработкаОбслуживания.ФискализироватьЧек(ОбъектДрайвера, ПараметрыЧека);

    Проверил в отладчике , на момент вывода процедуры , не заполнена таблица

    мДанныеСервера.Оборудование , соответственно не находит обработку обслуживания, закрепленную за кассой. Функция находится в Обработке ТОСервер.ПолучитьПараметрСервераТО(ИмяПараметра, ТипПараметра)

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

    Reply ↓
  20. Atom74

    «ПриОткрытии()» формы документа «ЧекККМ» надо добавить:

    ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);

    Reply ↓
  21. Atom74
    Reply ↓
  22. Atom74

    Поправил архив касательно документа «ЧекККМ».

    Не хватало в модуле документа:

    1.В процедуре «ПриОткрытии()» строчки «ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);»

    2.Добавил «Процедура ПодготовитьДанныеДляФискализацииЧека(ЧекККМ, ОбщиеПараметры, ДопДанные)»

    3.Добавил «Функция ПоддерживаетсяВидТО(Вид) Экспорт»

    Reply ↓
  23. Denver322

    Не совсем понятно зачем вы добавили процедуру ПодготовитьДанныеДляФискализацииЧека, если она не является экспортной и ни где не вызывается, скорее всего она должна быть в модуле документа, но это мелочи . Гораздо более тяжелый момент в следующем. У вас при каждом вызове чека подключается весь спектр оборудования, зарегистрированный в регистре сведений. За это отвечает «ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма) которая была добавлена в процедуру «ПриОткрытии». Когда выдается один чек в течении часа и зарегистрирован один ККМ это ещё терпимо, а если чеки идут потоком и ККМ штук 10-15, то постоянная задержка 5-8 секунд (замерял, разница во времени зависит от кол-ва оборудования) мягко говоря напрягает. Почему нельзя сформировать таблицу оборудования при старте системы и потом к ней обращаться ?

    Reply ↓
  24. Denver322

    У вас есть ошибка в общей форме ФормаНастройкиУниверсальныйДрайвер. Запись внесенных изменений не происходит. Там в процедуре ОбновитьНастраиваемыйИнтерфейс(ОписаниеИнтерфейса, ДополнительныеДействия, ПервыйЗапуск) необходимо изменить код

    Неправильно

    на

    Правильно

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

    Reply ↓
  25. Atom74

    (23) Да, Вы правы «ПодготовитьДанныеДляФискализацииЧека» есть в модуле документа в модуле формы документа она не нужна.

    Вызывать «ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма)» при каждом открытии чека надежней, мало ли что случилось с оборудованием во время работы, но если напрягает производительность то можно сформировать таблицу оборудования при старте.

    Reply ↓
  26. Atom74

    (24)Спасибо, учтем.

    Reply ↓
  27. Denver322

    Вопрос. При печати чека наблюдается расхождение номера чека на ленте и номера чека, фиксируемого в ККТ и документе 1С. Как я понимаю, это происходит из за того, что на этом ККТ уже били чеки и счетчик отличается от начального значения. Каким образом можно выставить номер чека на ленте равным номеру фиксируемому в документе 1С ЧекККМ ? Поскольку этот номер в 1С возвращает непосредственно ККТ.

    Reply ↓
  28. kucher_v

    Здравствуйте. Будет ли поддерживать ваш продукт аппарат Атол FPrint-22ПТК?

    Reply ↓
  29. solomon7

    Здравствуйте! Очень хочу скачать ваше решение по 54-ФЗ: Онлайн-кассы для 1С 8.1 УТ 10.2, но стартмани в наличии всего 4,88, можно ли как то договориться о скидке на скачивание.

    Reply ↓
  30. bav

    Подскажите, где взять FprnM1C82_54FZ.dll посвежее ?

    Всё скачал с атоловского сайта — там нету

    Reply ↓
  31. Atom74

    После установки пакета ДТО с сайта http://fs.atol.ru (Программное обеспечениеДТО8.x — KKT_8_14_02_02_Full.exe)

    По умолчанию лежит тут: C:Program Files (x86)ATOLDrivers81Cv82FR-ATOL_54FZ.zip

    Еще должен распространять 1С с новыми конфигурациями полной установки.

    Reply ↓
  32. Tarlich

    а есть ли для Штрих М ?

    Reply ↓
  33. Atom74

    Добавил ShtrihMkkt81.epf для Штрих-М, надо тестировать.

    Reply ↓
  34. Zixxx

    А документ КассоваяСмена есть или там он не нужен?

    Reply ↓
  35. Atom74

    Не вижу необходимости в нем. Закрыть открыть смену можно и через драйвер ККТ.

    Reply ↓
  36. Zixxx

    (35) А пользователям как быть? Если пользователи работают с 1с лучше из нее делать. Например если запуск сторонних приложений залочен то смену уже не открыть

    Reply ↓
  37. Atom74

    Если так, то нужен документ «Кассовая смена».

    Reply ↓
  38. Zixxx

    По требованиям еще вроде как список товаров должен печататься, это как-то тоже реализовано в типовых если не говорить о розничных продажах и чеках ККМ

    Reply ↓
  39. Atom74

    Если сумма и ставка НДС по ПКО совпадает с суммой и ставкой НДС из документа основания, то табличная часть берется из этого документа.

    Reply ↓
  40. Vagner_Hate

    Здравствуйте! Все подключили, но столкнулись с проблемой — при нажатии кнопки Настроить в форме списка регистра сведений «Торговое оборудование», если зайти внутрь и нажать кнопку «Тест устройства» выходит ошибка «Тест не пройден. Ошибка подключения к удаленному серверу: не указан IP-порт», хотя порт задан. Не подскажите, с чем может быть связано? Драйвера АТОЛ стоят версии 8.14.2.0

    Reply ↓
  41. Vagner_Hate

    (40)Извиняюсь, разобрался. Помогло указание в поле Компьютер «127.0.0.1:6220».

    Reply ↓
  42. branday

    Платформа 8.3.9.2033. При открытии конфигурации просит произвести конвертацию и умирает.

    Reply ↓
  43. Atom74

    Используйте платформу 8.1.

    Reply ↓
  44. seva1405

    Автор подскажи плиз, на розницу 1.0 не планируешь обработку?

    Reply ↓
  45. Atom74

    Нет.

    Reply ↓
  46. Vidok

    Добрый день!

    Подскажите куда копать, все настроил, но при тестировании выдает

    Тест не пройден. Нет связи

    Настройки, как в драйвера.

    Reply ↓
  47. Atom74

    Тест на родных драйверах проходит? Может драйвера заблокировали порт.

    Reply ↓
  48. Vidok

    (47)

    Хм, сейчас стал писать

    Ответ = ОбъектДрайвера.ТестУстройства(РезультатТеста, АктивированДемоРежим);
    

    Тест не пройден. Ошибка подключения к удалённому серверу: не указан IP-порт

    хотя по коду в дллку порт передается 5555

    Reply ↓
  49. Atom74

    Посмотри пост (41)

    Reply ↓
  50. Vidok

    (50) Спасибки!

    Reply ↓
  51. 21volk21

    Можно ли не меняя платформы и конфигурации установить Онлайн-кассы для 1С 8.2.12.96 УТ 10.3.12.3

    Reply ↓
  52. user623040_likhtin

    Добрый день!

    РегистрСведений.ТорговоеОборудование

    При нажатии на кнопку «Настроить» вываливается ошибка

    ***********************************************************************

    {ОбщаяФорма.ФормаНастройкиУниверсальныйДрайвер(336)}: Тип не определен (ГруппаФормы)

    БазоваяГруппа = Элементы.Добавить(«Группа» + ИндексГруппы, Тип(«ГруппаФормы»), ТекущаяСтраница);

    ***********************************************************************

    Настраиваю аппарат ШТРИХ-М

    Reply ↓
  53. Atom74

    Добрый день.

    Замените «ОбщаяФорма.ФормаНастройкиУниверсальныйДрайвер».

    Reply ↓
  54. user623040_likhtin

    (54) На что заменить?

    Reply ↓
  55. Atom74

    Платформа 8.1?

    Reply ↓
  56. user623040_likhtin

    (56)

    да, 8.1.15.14

    Reply ↓
  57. Atom74

    К сожалению нет возможности проверить на Штрих-М.

    Удалите все что связано с обработкой: «Если ЧтениеXML.Имя = «Page»» и Если «ЧтениеXML.Имя = «Group»»

    Reply ↓
  58. user623040_likhtin

    (58)

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

    Не пойму почему, но ошибка вываливается из за функции Тип(«ГруппаФормы») (Тип не определен (ГруппаФормы))

    Такое ощущение, платформа 8.1 не понимает этот синтаксис…

    Во вложении ошибка после действий по Вашей рекомендации

    Reply ↓
  59. Atom74

    Это построение «ДополнительноеДействие», тоже удаляйте.

    Reply ↓
  60. user623040_likhtin

    (60) ККТ пришлось отдать, как вернется — продолжу попытки прикрутить.. Пока ставлю на паузу вопросы. Благодарю

    Reply ↓
  61. evstafjev

    Добрый день!

    Мы пользуемся полностью «самописной» конфигурацией для розничной торговли на платформе 1С 8.1

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

    Подскажите возможно ли подключить ваше решение для пробития чека через онлайн кассу?

    Reply ↓
  62. ivpivp

    Добрый день! У нас старая(доработанная) 10.3 УТ 8.1 (8.1.15.14) Подключать будем Штрих М Онлайн. Скажите пожалуйста заработает ли обработка?

    Reply ↓
  63. Atom74

    Если возьмется программист 1С то заработает.

    Reply ↓
  64. user1012023

    Данная обработка работает с УТ 11.3 и выше??? И нужно ли будет фиксальный аппарат к ней???

    Reply ↓
  65. imarok

    НДС почему то выдает 18%, 1с 0 передает. Драйвер 8.16.3. может кто победил?

    Reply ↓
  66. imarok

    отвечу сам себе

    https://onedrive.live.com/View.aspx?resid=189C614ED00D4C23!128&app=OneNote&wd=target(//54-%D0%A4%D0%97.one%7C27377c95-2928-4aa8-8fd7-4b03b801c6ef/%D0%9D%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2%D1%8­B%D0%B5%20%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8%7C78fc8a06-eee2-4706-a5a6-122eeee98f69/)&authkey=!ABE4IM6eOvPtlrQ

    Reply ↓
  67. imarok

    Как быть со сканером штрихкода? если он в режиме com?

    Reply ↓
  68. Atom74

    Сканер настраивается через старые механизмы настройки оборудования. Эти механизмы не изменялись.

    Reply ↓
  69. tanat74

    Здравствуйте.

    А есть способ доработать текущую публикацию, для соответствия правилам:

    с 1 июля 2019 года добавляются новые данные в кассовый чек, который оформляется при расчетах между организациями и ИП наличными и (или) с предъявлением электронного средства платежа, т.е. платежной карты (пп. «д» п. 15 ст. 1 Закона № 192-ФЗ):

    наименование покупателя (клиента) (наименование организации, Ф. И. О. предпринимателя);

    ИНН покупателя (клиента);

    сведения о стране происхождения товара – при расчете за товар;

    сумма акциза;

    регистрационный номер таможенной декларации

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *