Добрый день, Коллеги!
Используем конфиг Бухгалтерия предприятия 3.0, последний релиз.
Стоит задача автоматизировать печать чеков на онлайн ККМ.
Аппарат Атол FPrint-22ПТК.
На предприятии нет кассира с доступом в 1С.
Сотрудник кассы банка в нашем отделении при расчете клиента сканирует бланк заказа.
В 1С по полученному штрихкоду должен автоматически подтянуться чек (чеки загружаются в 1С тоже автоматически из внешней системы) и этот чек должен автоматически распечататься на ККМ. Сотрудник банка к нашему 1С отношения не имеет.
Коллеги, вопрос в том, как программно заставить 1С распечатать чек, если известен документ "Розничная продажа (чек)", из которого его нужно распечатать?
Используем конфиг Бухгалтерия предприятия 3.0, последний релиз.
Стоит задача автоматизировать печать чеков на онлайн ККМ.
Аппарат Атол FPrint-22ПТК.
На предприятии нет кассира с доступом в 1С.
Сотрудник кассы банка в нашем отделении при расчете клиента сканирует бланк заказа.
В 1С по полученному штрихкоду должен автоматически подтянуться чек (чеки загружаются в 1С тоже автоматически из внешней системы) и этот чек должен автоматически распечататься на ККМ. Сотрудник банка к нашему 1С отношения не имеет.
Коллеги, вопрос в том, как программно заставить 1С распечатать чек, если известен документ "Розничная продажа (чек)", из которого его нужно распечатать?
По теме из базы знаний
- ККМ сервер (KKMServer): 54-ФЗ, разрешительный режим, очередь печати с нескольких ПК, быстрая печать чеков из терминального сеанса
- Печать кассовых чеков на одну ККМ с нескольких рабочих мест для 1С:УТ11.х, КА2.х, ERP 2.х
- Печать покупателя в чеке ККМ с 01.07.2019
- Печать чеков ККТ для двух систем налогообложения. Розница 2.2
- Рабочее место кассира (ФФД 1.2, Маркировка, Онлайн-касса АТОЛ, ДТО WEB-сервер + ДТО WEB Requests)
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)сейчас нет возможности посмотреть, но могу сказать что принцип действия будет такой :
Сканирование
Получение ссылки на чек
Подключение оборудования (взять из формы чека)
Получить параметры фискализации чека (функция в модуле объекта, почти так и называется)
Запустить функцию фискализоватьчек (в модуле объекта)
Отключить оборудование (взять из формы чека)
Сканирование
Получение ссылки на чек
Подключение оборудования (взять из формы чека)
Получить параметры фискализации чека (функция в модуле объекта, почти так и называется)
Запустить функцию фискализоватьчек (в модуле объекта)
Отключить оборудование (взять из формы чека)
(2) Проблема в том, что при нажатии кнопки "Выполнить операцию" на форме оплаты, после которой вручную запускается печать чека, задано выполнение непонятной команды, в которой нет следов обращения к функциям ККМ:
&НаКлиенте
Процедура ВыполнитьОперацию(Команда)
Если НЕ ПроверитьЗаполнение() Тогда
Возврат;
КонецЕсли;
СтруктураРезультата = СтруктураРезультата();
Закрыть(СтруктураРезультата);
КонецПроцедуры
Показать
Удалось разработать модуль, в котором выполняются функции подключения оборудования и печати чека.
Но! В результате выполнения выдаётся сообщение:
При подключении устройства произошла ошибка.
Чек не напечатан на фискальном устройстве.
Дополнительное описание:
При подключении оборудования произошла ошибка: Выбранное устройство не может использоваться для подключения. Укажите другое устройство.
Хотя вручную чеки печатаются. В чём может быть проблема?
Но! В результате выполнения выдаётся сообщение:
При подключении устройства произошла ошибка.
Чек не напечатан на фискальном устройстве.
Дополнительное описание:
При подключении оборудования произошла ошибка: Выбранное устройство не может использоваться для подключения. Укажите другое устройство.
Хотя вручную чеки печатаются. В чём может быть проблема?
Новая проблема.
В модулях конфигурации при печати чека вводится переменная ОбъектДрайвера.
Свойства этой переменной переданы правильно, вопросов нет.
Но в модулях используются методы, например
Ответ = ОбъектДрайвера.ПолучитьПараметрыККТ(ПараметрыПодключения.ИДУстройства, ПараметрыККТ);
В этом месте вылетает ошибка, что метод не определен.
Продолжаю разбираться, почему ОбъектДрайвера без методов
В модулях конфигурации при печати чека вводится переменная ОбъектДрайвера.
Свойства этой переменной переданы правильно, вопросов нет.
Но в модулях используются методы, например
Ответ = ОбъектДрайвера.ПолучитьПараметрыККТ(ПараметрыПодключения.ИДУстройства, ПараметрыККТ);
В этом месте вылетает ошибка, что метод не определен.
Продолжаю разбираться, почему ОбъектДрайвера без методов
У нас онлайн касса.
ККМ есть в справочнике "Подключаемое оборудование".
При создании чека ссылка на оборудование передаётся в документ, в поле ИдентификаторУстройства.
ККМ уже полгода нормально функционирует в "ручном" режиме.
ККМ есть в справочнике "Подключаемое оборудование".
При создании чека ссылка на оборудование передаётся в документ, в поле ИдентификаторУстройства.
ККМ уже полгода нормально функционирует в "ручном" режиме.
(12)
Оборудование описано в справочнике и имеет свой идентификатор.
В интерактивном интерфейсе оно привязано к рабочему месту конкретного пользователя.
Распечатка чека программно подразумевает, что:
1. Фискальный регистратор определен и подключен.
2. Пользователь с нужными правами определен и рабочее место имеет тот же фискальник.
3. Объект печати определен.
Оборудование описано в справочнике и имеет свой идентификатор.
В интерактивном интерфейсе оно привязано к рабочему месту конкретного пользователя.
Распечатка чека программно подразумевает, что:
1. Фискальный регистратор определен и подключен.
2. Пользователь с нужными правами определен и рабочее место имеет тот же фискальник.
3. Объект печати определен.
(12)
Вообще логика печати чека в бухгалтерии следующая:
1. Чек печатается на основании документа (Приходный кассовый ордер - при приеме выручки, и расходный кассовый ордер - при возвратах товара и выдаче ДС покупателю)
2. В документах есть специальный реквизит "Номер чека ККМ", который заполняется только если чек пробит на ККТ из программы корректно.
Если вы хотите распечатать на ККТ произвольный чек без использования правил программы (создание документа, проведение, пробитие), то вам нужно писать полностью свой алгоритм.
Вариант "Вот массив с данными чека, распечатай его на ККТ" не прокатит.
Вообще логика печати чека в бухгалтерии следующая:
1. Чек печатается на основании документа (Приходный кассовый ордер - при приеме выручки, и расходный кассовый ордер - при возвратах товара и выдаче ДС покупателю)
2. В документах есть специальный реквизит "Номер чека ККМ", который заполняется только если чек пробит на ККТ из программы корректно.
Если вы хотите распечатать на ККТ произвольный чек без использования правил программы (создание документа, проведение, пробитие), то вам нужно писать полностью свой алгоритм.
Вариант "Вот массив с данными чека, распечатай его на ККТ" не прокатит.
Логика печати чеков вручную у нас никак не привязана к приходным кассовым ордерам.
Приходные кассовые ордера не создаются в 1С в принципе.
Создаются расходные документы по 41 счету и вместе с ними создаются документы Розничная реализация (чек).
Из этого документа кассир вручную запускает печать чека на ККМ.
Конфигурация БП у нас типовая, но в ней происходит какая-то непонятная мне лажа.
В общем модуле ПодключаемоеОборудованиеУниверсальныйДрайверКлиент есть вызовы:
Ответ = ОбъектДрайвера.ПолучитьПараметрыККТ(ПараметрыПодключения.ИДУстройства, ПараметрыККТ);
НО!
Глобальный поиск по конфигурации находит функцию ПолучитьПараметрыККТ только в том же самом модуле, но с другими параметрами:
Функция ПолучитьПараметрыККТ(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры)
В конфигурации нет больше такой функции и совсем не понятно, к чему обращается модуль при выполнении команды ОбъектДрайвера.ПолучитьПараметрыККТ(...)
Поиск ссылки (F12) ссылается на свою же функцию общего модуля ПолучитьПараметрыККТ, которая с другими параметрами...
Кстати, в том же общем модуле есть функция ВыполнитьКоманду(...), в которой вызывается нормальная (своя) функция с правильными параметрами
ИначеЕсли Команда = "GetDataKKT" ИЛИ Команда = "ПолучитьПараметрыККТ" Тогда
Результат = ПолучитьПараметрыККТ(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры);
Приходные кассовые ордера не создаются в 1С в принципе.
Создаются расходные документы по 41 счету и вместе с ними создаются документы Розничная реализация (чек).
Из этого документа кассир вручную запускает печать чека на ККМ.
Конфигурация БП у нас типовая, но в ней происходит какая-то непонятная мне лажа.
В общем модуле ПодключаемоеОборудованиеУниверсальныйДрайверКлиент есть вызовы:
Ответ = ОбъектДрайвера.ПолучитьПараметрыККТ(ПараметрыПодключения.ИДУстройства, ПараметрыККТ);
НО!
Глобальный поиск по конфигурации находит функцию ПолучитьПараметрыККТ только в том же самом модуле, но с другими параметрами:
Функция ПолучитьПараметрыККТ(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры)
В конфигурации нет больше такой функции и совсем не понятно, к чему обращается модуль при выполнении команды ОбъектДрайвера.ПолучитьПараметрыККТ(...)
Поиск ссылки (F12) ссылается на свою же функцию общего модуля ПолучитьПараметрыККТ, которая с другими параметрами...
Кстати, в том же общем модуле есть функция ВыполнитьКоманду(...), в которой вызывается нормальная (своя) функция с правильными параметрами
ИначеЕсли Команда = "GetDataKKT" ИЛИ Команда = "ПолучитьПараметрыККТ" Тогда
Результат = ПолучитьПараметрыККТ(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры);
(16)
ОбъектДрайвера.ПолучитьПараметрыККТ(...)
Это вызов функции объекта ОбъектДрайвера.
У вас установлены драйвера ККТ от АТОЛ. В 1С есть обработка обслуживания ТО для драйвера АТОЛ.
ОбъектДрайвера вызывает методы именно драйвера, а не процедуры и функции текущего модуля.
ОбъектДрайвера.ПолучитьПараметрыККТ(...)
Это вызов функции объекта ОбъектДрайвера.
У вас установлены драйвера ККТ от АТОЛ. В 1С есть обработка обслуживания ТО для драйвера АТОЛ.
ОбъектДрайвера вызывает методы именно драйвера, а не процедуры и функции текущего модуля.
В дополнение ко всему мне написала кассир:
"Сегодня не получается выбить нормально чек, т.к. ККМ выдает ошибку.... но если я выключу-включу, чек выбивается..."
Судя по всему связь с ККМ пропадает после выполнения моего модуля...
"Сегодня не получается выбить нормально чек, т.к. ККМ выдает ошибку.... но если я выключу-включу, чек выбивается..."
Судя по всему связь с ККМ пропадает после выполнения моего модуля...
Прикрепленные файлы:
![](/upload/forum/upload/79d/79de5789539218be030ef9a3d6a3b3c9.png)
(17) похоже на то, что при попытке печати, идет обращение к ККТ, которая не была освобождена до этого.
Идея следующая. Получаем драйвер, подключаем устройство, печатаем, освобождаем устройство.
Значит где-то не было освобождение устройства, при новой попытке подключить устройство.
Идея следующая. Получаем драйвер, подключаем устройство, печатаем, освобождаем устройство.
Значит где-то не было освобождение устройства, при новой попытке подключить устройство.
В моём модуле при попытке освобождения устройства происходит ошибка из-за не возможности выполнить ОбъектДрайвера.ПолучитьПараметрыККТ
Получается, каждый запуск моего модуля блокирует ККТ для дальнейшей работы.
Это подверждается еще и тем, что два раза подряд модуль не запускается. Второй раз при попытке получить оборудование возвращается пустой список.
Получается, каждый запуск моего модуля блокирует ККТ для дальнейшей работы.
Это подверждается еще и тем, что два раза подряд модуль не запускается. Второй раз при попытке получить оборудование возвращается пустой список.
Несколько дней безуспешных попыток меня утомили.
Может быть, тут есть специалисты, которые легко разбираются с печатью фискальных чеков.
Цепляю к сообщению модуль, который получился у меня за несколько дней работы.
Задача модуля - запустить печать чека к документу Чек на ККМ. Номер документа пока фиксированно задается в модуле. Ссылка на оборудование ККМ есть в документе Чек.
Если кто-то сможет настроить печать чека на ККМ в этом модуле без блокировки ККМ, отдам ему с благодарностью 5 СтартМани.
У меня есть СтартМани на другой учетной записи, которая временно заблокирована для написания новых сообщений, поверьте.
Может быть, тут есть специалисты, которые легко разбираются с печатью фискальных чеков.
Цепляю к сообщению модуль, который получился у меня за несколько дней работы.
Задача модуля - запустить печать чека к документу Чек на ККМ. Номер документа пока фиксированно задается в модуле. Ссылка на оборудование ККМ есть в документе Чек.
Если кто-то сможет настроить печать чека на ККМ в этом модуле без блокировки ККМ, отдам ему с благодарностью 5 СтартМани.
У меня есть СтартМани на другой учетной записи, которая временно заблокирована для написания новых сообщений, поверьте.
Прикрепленные файлы:
ПечатьЧекаПроба.epf
По всей видимости беда в том, что драйвера ККТ стоят на компьютере кассира, а не на сервере, где запускается обработка.
А нет ли возможности инициировать печать чека на сервере, чтобы на компьютере кассира ККМ в итоге напечатал чек?
А нет ли возможности инициировать печать чека на сервере, чтобы на компьютере кассира ККМ в итоге напечатал чек?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот