Имя: Пароль:
1C
1С v8
Решаем проблему долгой печати чеков из терминальных сеансов Windows Server

, ,
0 bainov-evgeniy
 
30.08.18
15:31
При работе с ККМ из терминальных сеансов приходится пользоваться перенаправлением последовательных портов рабочей станции в терминальный сеанс. На сервере устанавливается драйвер ККМ и производится подключение через виртуальный COM-порт, проброшенный в терминальный сеанс. На рабочей станции к этому порту подключен ККМ.
При таком подключении частно наблюдается огромная задержка печати чеков. Бывает, что чек печатается по несколько минут. Особенно актуальна проблема при подключении к терминальному серверу через интернет.
Когда у нас возникла такая проблема много лет назад, мы придумали метод печати через промежуточную программу - сервер ККМ. Мы записывали задание печати в текстовый файл, передавали на рабочую станцию, на которой сервер ККМ считывал файл и печатал на локально подключенный к программе ККМ. Данная схема вполне сносно работала, но были все таки неудобства при работе с файлами. Например, при подключении через интернет.
Мы разработали новую версию сервера ККМ. Она работает теперь в виде сетевой службы, управляет ККМ при помощи драйверов Атол, Штрих, Дримкас. Соответственно может управлять всей линейкой ККМ этих производителей.
Типовые 1С могут печатать чеки, просто подключив драйвер виртуального ККМ, или обработку обслуживания. Принцип работы похож на принцип продуктов Screwdrivers. 1С формирует задание печати, передает его нашему драйверу ККМ, который передает задание печати серверу ККМ по протоколу http. Сервер ККМ при получении задания - печатает чек, пишет логи.
Можно подключать, конечно, и к нетиповым конфигурациям. Для этого можно модифицировать конфигурацию 1С.
В результате - скорость печати чеков практически неотличима от печати на локально подключенном ККМ.
Надеюсь, наша работа окажется полезной многим.
Программу можно свободно скачать и протестировать перед покупкой.
Сайт программы: http://serverkkm.ru
1 bainov-evgeniy
 
30.08.18
15:34
Программа также позволяет печатать чеки с нескольких рабочих мест. И даже с нескольких баз 1С. Для этого обычно требуется немного подправить конфигурацию 1С.
2 Trotter
 
30.08.18
15:56
реклама без согласования что ли ?
3 Garykom
 
гуру
30.08.18
15:59
(0) Через инет когда у rdp клиента (ккт тут) нет белого ip будет работать?
4 bainov-evgeniy
 
30.08.18
16:12
(2) Все нормально, согласовано.
(3) Для работы без белого ip придется использовать VPN.
Его легко поднять, например, прямо на терминальном сервере.
Или использовать другие способы.
Мы часто пользуемся роутером Микротик для подобных целей.
5 Trotter
 
30.08.18
16:44
(4) Ничего нового Вы не предлагаете.
Неужто остались такие клиенты которые сами не в стостоянии поднять VPN ? странно прям.
6 bainov-evgeniy
 
30.08.18
16:52
(5) VPN- средство достучаться до рабочей станции с терминального сервера. Я же человеку объясняю как это сделать.
Новое - это ускорение печати чеков. Периодически возникает на форумах вопрос. Даже подобные решения от Атол и Штрих проигрывают нашей программе по скорости и по функционалу многопользовательской печати.
7 Trotter
 
30.08.18
17:00
(6) Даже ДТО 10 от Атола проигрывает ?
8 bainov-evgeniy
 
30.08.18
17:10
(7) Попробуйте и убедитесь :)
Не знаю, почему так, но факт. Видимо реализация сетевого сервера у нас немного удачнее.
9 bainov-evgeniy
 
30.08.18
17:15
(7) Особенно заметна разница при печати с нескольких ПК на общий ККМ. С серверами ККМ от Штрих и Атол постоянные проблемы с печатью.
10 Garykom
 
гуру
30.08.18
17:20
(9) Руки кривые, никаких проблем с дровами атол и штрих нет.

Даже штатный проброс портов через RDP вполне нормально работает при правильной настройке и нормальных каналах связи.
11 Cyberhawk
 
30.08.18
17:22
Я правильно понял, что:
1. 1С в терминале через вашу обработку обсуживания отправляет команду печати по ХТТП-протоколу на вашу службу-сервер
2. Ваша служба-сервер крутится на локальном ПК и дергает локальный (по отношению к ней) СОМ-порт подключенной кассы
3. Профит
?
12 arsik
 
гуру
30.08.18
17:25
А чего не сделали передачу данных через штатный РДП как Screwdrivers?
13 Garykom
 
гуру
30.08.18
17:38
(12) Кста я такое пробовал делать, через штатные драйвера принтера пробрасывать команды на ККТ.

В принципе работает и довольно неплохо, но вот обратной связи нет, ответ не получить успешно или ошибка и какая.
Номер чека не получить пробитого и т.д.
14 Garykom
 
гуру
30.08.18
17:40
(13)+ В 1С это прикольно выглядит, никаких драйверов (кроме драйвера win-принтера обычного) не надо.

Табличный документ делается с XML и печатается на принтер, там документ перехватывает прога и пробивает на ККТ через драйвер распарсив XML из входного потока.
15 Cyberhawk
 
30.08.18
17:54
(13) "обратной связи нет" // А у этих, что в ветке, тогда как обратная связь достигается?
16 bainov-evgeniy
 
30.08.18
18:38
(11) Да, все просто.
(15) Обратная связь достигается просто. HTTP запрос может возвращать данные.
В программе применяется технология .Net WCF. Там многое упрощается при разработке.
Скоро будет поддержка JSON. Можно будет с сайтов чеки печатать. Ну или из 1С без драйверов, если захочется. :)
17 bainov-evgeniy
 
30.08.18
18:46
(12) А мы не знаем как cделать двухстороннюю связь через RDP :)
Сделали напрямую через сеть. Зато нет привязки к RDP.
Думаем добавить связь через промежуточный сервер в интернете.
Тогда не придется иметь обязательно белый IP, поднимать VPN или прочие сетевые фокусы.
Про принципу управлялок типа TeamViewer, AmmyAdmin.
18 Сияющий в темноте
 
30.08.18
19:03
А через виртуальные каналы нн удалось сделать?
Просто,можнл и хттп сервер в качестве приемника заданий делать,но двухсторонней связи нет,чтобы потом пнули после печати чека.
19 spectre1978
 
30.08.18
19:22
(6) FDSVC от атола - проблем не вижу по скорости. Также год работал по VPN с удаленным офисом - чеки приходили тут же...
20 spectre1978
 
30.08.18
19:23
при этом совершенно бесплатно, т.е. даром
21 bainov-evgeniy
 
30.08.18
19:23
(18) не пробовали виртуальные каналы.
22 bainov-evgeniy
 
30.08.18
19:35
(19) Драйвер Атола работает со Штрихами за деньги, а наш - бесплатно.
По скорости я же и пишу, что заметно при одновременной печати с нескольких ПК.
При печати с одного ПК тоже есть какая-то небольшая задержка.
И насколько я помню - сетевая печать у Атола была платной функцией. И стоила недешево. Сейчас разве не так?
23 Garykom
 
гуру
30.08.18
20:46
(22) Нет сейчас сетевая от АТОЛ в комплекте.
Платный драйвер от АТОЛ для Штриха не так дорого стоит кстати, дешевше чем ваше решение.
24 Cyberhawk
 
30.08.18
22:02
(16) "HTTP запрос может возвращать данные" // Т.е. запросы синхронные?
Что происходит, если 1С инициировала ХТТП-запрос, получила отлуп по таймауту, а на той стороне чек все-таки упешщно распечатался?
25 bainov-evgeniy
 
31.08.18
04:08
(24) каждая задача печати получает свой id . Если случился обрыв связи во время печати можно запросить статус исполнения задачи по id.
Обычно люди в таком случае жмут повторно кнопку печати чека.
При попытке повторной печати документа сначала проверяется статус прошлой печати. Если обнаруживается что документ был уже успешно распечатан, просто возвращаются в 1с фискальные данные.
26 Il19
 
31.08.18
06:33
судя по цене - лучше этих решений?
http://catalog.mista.ru/public/408922/
http://catalog.mista.ru/public/345395/
27 bainov-evgeniy
 
31.08.18
08:14
(26) Чей продукт лучше - предлагаю выбирать пользователям.
Ценовая политика у указанных продуктов просто другая. Если авторы считают, что их программа должна стоить дешевле - это их личное дело. Возможно, и мы тоже снизим цену, если того захотят наши клиенты :)
Позволю немного написать об указанных программах-конкурентах.
http://catalog.mista.ru/public/345395/
Это решение в виде обработки для 1С и требует наличия у вас платформы 1С. Думаю, тут правильнее сравнивать общую стоимость владения. Мы тоже проходили через такую стадию и отказались от дальнейшего развития продукта в виде обработки, т.к. увидели возможность более технологичного решения в виде сетевой службы.

Наше решение больше похоже на ККМ сервер. Это тоже хороший продукт. Так же сделан на C#.
Но я думаю, что наш продукт все же легче интегрировать в 1С.
В обычном функционале не приходится ничего менять в типовой 1С. Мы поставляем драйверы ККМ и обработки торгового оборудования, которые совместимы с 1С API разных версий. Например, можно подключить онлайн-кассу к 1С Торговля и склад 7.7 без изменений конфигурации. Т.е. 1С видит онлайн-кассу как фискальный регистратор.
Такой метод позволил многим клиентам сократить затраты при переходе на онлайн-кассы.
28 AneJIbcuH
 
31.08.18
09:34
(27) Цена космос. На просторах есть аналогичное очень не плохое решение, дешевле на 35-40%
29 bainov-evgeniy
 
31.08.18
10:31
(28) хмм. Придется подумать о пробном снижении цены...
30 Shabai
 
31.08.18
14:36
Подскажите. работает ли ваш модуль вот с такой конфигурацией 1С:

Платформа: 1С:Предприятие 8.3 (8.3.10.2561)
Конфигурация: Розница 2.
Режим: Серверный
Приложение: Тонкий клиент

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

Есть ли возможность протестировать ваше решение на нашей конфигурации?
31 bainov-evgeniy
 
31.08.18
15:38
(30) Требуются уточнения:
Какая версия Windows Server?
Какой релиз конфигурации Розница?
Какие модели ККМ? Как подключены к компьютеру?(USB,COM,TCP)

Можем выдать тестовую лицензию для проверки возможностей.
Поможем с подключением.
32 Cyberhawk
 
31.08.18
15:47
А как сервер ККМ печатает пришедший ему по ХТТП чек? Некоторые драйвера касс умеют понимать xml-строку (т.н. "пакет"), а с некоторыми нужно через СОМ-модель взаимодействовать.
Ваш локально устаналиваемый сервер, что на C# написан, тоже по СОМу общается с драйверами касс?
33 Garykom
 
гуру
31.08.18
15:53
(29) Лучше сделайте чтобы для популярных типовых конф 1С без допила работало из коробки, тогда и цена нормальная.

И да свой внешний сервер/сервис чтобы без белого ip работало.
34 Garykom
 
гуру
31.08.18
15:54
(33)+ И не только для ККТ но и других видов ТО (сканеры, эквайринговые терминалы и т.д.) тоже работало, причем для любых платформ 1С (ос, разрядность).
35 bainov-evgeniy
 
31.08.18
18:55
(32) Мы работаем с драйверами по COM.
xml описание под 1с API было заманчиво использовать. НО обнаружилось что в этом виде драйверы намного менее функциональны.
(33) Под ВСЕ текущие типовые наш драйвер подключается нормально без допилов.
Иногда приходится допиливать, если совсем уж старый релиз.
В большинстве таких случаев тоже обходится без допилов. Есть драйвер для 1С, работающий по API для фискальных регистраторов.
В этом виде можно подключать старые типовые 8-ки и ТиС7.7.
Единственное, когда допиливать приходится - это когда надо печатать из нескольких рабочих мест на общую ККМ. Но тут уже мы никак не можем без этого обойтись, т.к. код 1С не предполагает многопользовательской печати.
36 bainov-evgeniy
 
31.08.18
18:58
(34) Есть у нас в планах добавить печать на чековые принтеры и принтеры этикеток. А остальное оборудование зачем? Вы наверное шутите! :)
37 bainov-evgeniy
 
31.08.18
19:04
(30) Если у вас любой ККМ от Атол или Штрих, или Вики 57 - ускорение печати будет. Просто подключите в 1С наш драйвер и настроите серверы ККМ на рабочих местах.
На торговых точках: если белый ip - надо будет на роутере сделать проброс порта 4398 на соответствующий порт кассового компьютера.
Поставить на кассовый комп сервер ККМ, драйвер Атол 10 или Штрих. С Вики работает через встроенный в программу драйвер.
Для печати чеков с нескольких компов - надо немного допилить 1С.
Все делается за пару часов. Через удаленку естественно.
38 bainov-evgeniy
 
31.08.18
19:07
(30) Если используете Windows Server 2003 - надо будет поставить .Net Framework 4
Без него драйвер для 1С не взлетит.
В 2008-2016 .Net 4 уже есть.
39 Shabai
 
03.09.18
06:23
(31) У нас установлена операционная система Windows Server 2008 R2 стандарт, оперативки 16 гб, raid5 из 4 sas  
Розница, редакция 2.2 (2.2.7.32), файловый вариант, 12 пользователей
Имеем три торговых точки.
Первая торговая точка находится в одной локальной сети с терминальным сервером.
А две торговых точки соединены c главным офисом через интернет по VPN.
В каждой торговой точке по одному ККМ.
Модели ККМ: Aтол 25Ф, Aтол 11Ф, Штрих-M 02Ф.
40 Shabai
 
03.09.18
06:31
(31) При печати в локальной сети чеки печатаются удовлетворительно до 5 секунд.
Но при печати на удалённых торговых точках чек может печататься минуту или даже две минуты.
У руководства есть планы добавить по второму рабочему месту кассира на каждую торговую точку. При этом чеки хотелось бы печатать на той же ККМ, которая уже установлена в торговой точке.
Каким образом мы можем применить вашу программу для наших задач?
41 bainov-evgeniy
 
03.09.18
08:04
(40) По вопросам внедрения можете обращаться по почте: [email protected]
Запросить тестовую лицензию можно на сайте: http://serverkkm.ru
Консультации и вопросы можно задать по телефону: +79025650460
На номере также Viber, Whatsapp, Telegram.
42 bainov-evgeniy
 
03.09.18
08:11
(40) Для решения задачи быстрой печати - покупается на каждую кассовый комп по 1 лицензии.
3шт*5000р = 15000р.
По видеоинструкции для Розницы подключаете.
Инструкции здесь: http://www.rbsoft.ru/product/devicenet/video

Для добавления дополнительного оператора в торговой точке, с печатью чеков на общий ККМ - надо внести изменения в код.
Оплачивается услуга отдельно, 5000р единоразово.
Получаете возможность печатать чеки с любого рабочего места 1С на любой кассовый комп. Кому и куда можно печатать - настраивается конечно заранее.
На сервере надо будет установить наш драйвер для ККТ и подключить его к вашей Рознице штатным методом.
43 Shabai
 
05.09.18
07:45
(42) Благодарим автора за внедрение программы. Проблема долгой печати наконец-то решена. Время печати чека от 2 до 5 секунд. Примерно как на локальном компе!
И теперь без косяков печатает с разных компов на общий ККМ.
Реально сэкономили на покупке 3-х касс.
Работы по трем магазинам провели примерно за полтора часа!
44 Sharovarov
 
10.09.18
13:00
Евгений, посмотрев видео по установке вашего ПО "Сервер ККМ" у меня возник вопрос:

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

- На каждой торговой точке необходимо будет произвести установку серверной части?

- Работает ли ваше решение в режиме фискального регистратора?
45 bainov-evgeniy
 
10.09.18
21:10
(44)
- Имеется четыре торговых точки, на каждой установлено по одной ККМ. Сколько нам необходимо лицензий?
Нужно будет 4 лицензии

- На каждой торговой точке необходимо будет произвести установку серверной части?
Сервер ККМ управляет печатью чеков на локально подключенный ККМ, через драйвер производителя.
Устанавливается на компьютер, к которому физически подключен ККМ. Или, если ККМ подключен по сети, то в той же локальной сети.

- Работает ли ваше решение в режиме фискального регистратора?
Да. Для этого надо к 1С подключить драйвер виртуального фискального регистратора. Это клиентская часть программы.
46 bainov-evgeniy
 
10.09.18
21:17
(44) Вот видео для подключения онлайн-ккм в режиме фискального регистратора: https://youtu.be/6Be7cJEuznA
47 karpik666
 
10.09.18
21:37
Вы в этом видео https://www.youtube.com/watch?time_continue=47&v=HYWJr-5tn8M сравниваете старую версию моей разработки, и свое решение.
Чтобы сравнение было "полным", подскажите:
Поддерживет ли передачу информации о "признаках предмета расчета"?
Поддерживает ли печать из приходного кассового ордера, и других кассовых документов, где не задан список номенклатуры?
Возможно ли передача данных об авансах и оплаты в кредит.
Поддерживает ли передачу данных об агенте?
Можно ли задать собственный шаблон чека при печати?
Можно ли через сервер разделить чек на несколько систем налогообложения.
Можно ли ввести email или номер телефона для передачи их в ОФД?
Можно ли через "сервер ККМ" отправить чек на почту или смс, минуя сервер ОФД
Можно ли просмореть предварительный чек перед печатью?
Можно ли проверить печать чека через эмулятор?
Можно ли отредактировать содержимое чека перед тем, как он будет передан на ККТ?
Можно ли напечатать дубль фискального чека?
Работает ли на системах Linux?
Можно ли разделить содержимое чека на несколько фискальных регистраторов?
Я правильно понимаю, что сервер ККМ рабоет только на последних версиях конфигураций, где есть поддержка ККТ?
48 bainov-evgeniy
 
10.09.18
21:45
(47) Ну вообще-то это клиент нам отправил видео после решения проблемы с печатью. :)
49 bainov-evgeniy
 
10.09.18
21:48
(47) Жесть как много вопросов! :)
Отвечу по порядку.

Поддерживает ли передачу информации о "признаках предмета расчета"?
Да. Есть возможность "допилить" старую 1С и использовать функционал для онлайн-касс.
50 bainov-evgeniy
 
10.09.18
21:52
(47) Поддерживает ли печать из приходного кассового ордера, и других кассовых документов, где не задан список номенклатуры?

Сервер ККМ - это просто инструмент ускорения печати чеков через сеть.
Прикладная часть, например печать чеков с товарными позициями из кассового документа, лежит на стороне кода 1С.
Тут и должна пригодиться разработка типа вашей.
51 bainov-evgeniy
 
10.09.18
21:53
Возможно ли передача данных об авансах и оплаты в кредит.

Да
52 karpik666
 
10.09.18
21:55
(48) значит это клиент добавил секундомер, и логотип вашей компании, и выложил как пример скорости работы вашей программы?

"Да. Есть возможность "допилить" старую 1С и использовать функционал для онлайн-касс."
т.е. чтобы ваша программа работало с поддержкой ффд 1.05 нужно дорабатывать конфигурацию, либо постоянно обновлять ее на последние релизы, на уровне программы есть возможность передачи данных сведений, но сама она их не заполняет.
По сути вы предлагаете только передачу уже готового чека до фискального регистратора, но не заменяете механизм его заполнения, и мое и ваше решение пересекаются
только в механизме взаимодействия с драйверами, я правильно понимаю?
53 bainov-evgeniy
 
10.09.18
22:01
(52) Мы добавили только логотип и заставку.
54 karpik666
 
10.09.18
22:02
(53) ок, спасибо за ответ.
55 bainov-evgeniy
 
10.09.18
22:02
(52) Да, мы делаем транспортировку чека до фискальника.
Если конфа старая - то есть возможность печатать по старому API. При этом можно включить режим показа диалога для отправки чека по СМС или по почте.
56 bainov-evgeniy
 
10.09.18
22:13
Можно ли задать собственный шаблон чека при печати?
Нет. Этим может управлять 1С. Выводить произвольный текст, штрихкоды. Выбор шрифта не поддерживается.

Можно ли через сервер разделить чек на несколько систем налогообложения.
Да.

Можно ли ввести email или номер телефона для передачи их в ОФД?
Да.

Можно ли через "сервер ККМ" отправить чек на почту или смс, минуя сервер ОФД
Нет. Хорошая идея. Надо бы добавить :)

Можно ли просмотреть предварительный чек перед печатью?
Нет.

Можно ли проверить печать чека через эмулятор?
Нет.

Можно ли отредактировать содержимое чека перед тем, как он будет передан на ККТ?
Нет.
Думаем добавить в ближайшее время для режима эмуляции ФР. Не хватает иногда этой функции.

Можно ли напечатать дубль фискального чека?
Да.

Работает ли на системах Linux?
Нет.

Можно ли разделить содержимое чека на несколько фискальных регистраторов?
1С может отправить несколько чеков, каждый на свой фискальный регистратор.

Я правильно понимаю, что сервер ККМ работает только на последних версиях конфигураций, где есть поддержка ККТ?
Нет.
Можно подключать к старым конфигурациям в режиме фискального регистратора. Функционал при этом очень ограниченный - только тот, что предлагает старая 1С - продажа да возврат.
С новыми типовыми конфигурациями мы постоянно проверяем совместимость. Со старыми - только при необходимости.
57 bainov-evgeniy
 
10.09.18
22:25
(52)
и мое и ваше решение пересекаются
только в механизме взаимодействия с драйверами, я правильно понимаю?
Я честно говоря не вникал глубоко в суть вашего решения.
Но, как я понимаю, вы предоставляете полный функционал для печати онлайн-чеков из старых конфигураций. При этом используете драйвер производителя ККМ.
Проблема долгой печати из терминальных сеансов не в вашей обработке печати, а в работе драйвера ККМ через проброс портов. Тут уж ничего не поделаешь - это физика. Большие пинги приводят к большим таймаутам при обмене сообщениями протокола обмена драйвера с ККМ.
Мы решаем проблему таймаутов просто - драйвер производителя используется не на терминальном сервере, а на локальной машине. Передача задания печати - производится по http-протоколу. Почти мгновенно, за доли секунды. Отсюда и скорость печати.
58 bainov-evgeniy
 
10.09.18
22:28
(52) Кстати, может нам объединить разработки? Если добавить в вашу обработку печать через наш драйвер - получится двойной профит - и куча функционала для 1С, и скорость!
:)
59 Сияющий в темноте
 
10.09.18
22:36
Просто,надо бы доделать так,чтобы со стороны 1с был вызов драйвера,а чек печатался уже через проброс.
у меня,например,для семерки готов эмулятор старого драйвера атол,который умееи в памяти формировать чек,а потом по команде закрытия выполняет отправку его на печать,но я пока с терминалом не додружился,т.к.виртуальные каналы еще не докопал,но в тесте рдп сам на клиенте срздает обьект и фигачит к нему поток с сервера и обратно причем а родном рдп соединении.
единственное,что не получается,это перехватить клавиатурный сканер
60 karpik666
 
10.09.18
22:38
(58) в принципе поддержку можно добавить через одну из библиотек каталог, я как раз собираюсь недели через 2 добавить поддержку онлайн сервисов для печати чеков, но пока не возьмусь
61 bainov-evgeniy
 
10.09.18
22:46
(60) Мы в течение 2-х недель выпустим релиз с поддержкой JSON-запросов. Такой же примерно функционал, как у Атол 10.
62 Sharovarov
 
29.09.18
10:00
Евгений, мы протестировали вашу программу.
Работает отлично!
Скорость печати просто супер!!!
Ваш сотрудник рассказал нам про все возможности программы, произвёл установку и настройку.

Нас очень обрадовало что есть web-интерфейс. Благодаря этому, наш системный администратор примерно за 15 минут произвёл установку на трёх оставшихся торговых точках.

Огромно вам спасибо!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс