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 не будет опубликован. Обязательные поля помечены *