INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Баданов Владимир | Старший программист | 1С-Коннект

«Роль платформы 1С:Предприятие в сервисе 1С-Коннект»

- Сервис 1С-Коннект использует почти вся партнерская сеть 1С: 500 тыс. пользователей, 120+ тыс. ежедневно, рост трафика 2+ раза ежегодно. - Используемые продукты и технологии: xmpp, erlang, go, python, rabbitMQ, телефония, туннелирование, 4 СУБД: 1С: Предприятие (PostgreSQL+MSSQL), PostgreSQL, REDIS, MongoDB, описание ролей. - Администрирование сервиса осуществляется через конфигурацию 1С: написана с нуля, эксплуатация как SaaS, на одном сервере, без использования БСП, регламентные задания, PUSH-Sync, PartnerAPI, рассылки, отчёты. - Нагрузка, размер БД, способы оптимизации запросов: используем отбор по индексам, виртуальные таблицы, СКД в динамических списках, регистры сведений, разделение ИБ не используем. - RLS пережил два поколения. Система доступа оперирует сотней микро-ролей и назначает только нужные. - Интеграция: взаимодействие с другими частями инфраструктуры, API, проблемы первой версии, найденные решения - журналирование, ограничения на вызовы, гибкие входные параметры, пакетные вызовы. - Цикл производства: параллельная разработка выпусков. Ручное тестирование и автотесты (сценарные + API), обновление через механизм поставок, EDT+GIT. Трекер.

Программа для управления терминалами Ingenico

Оборудование - POS терминал

1
Простенькая программка для управления эквайринговыми терминалами ingenico, с установленным комплексом acrus2.

Волею судьбы пришлось обновить все эквайринговые терминалы в своей организации. Раньше были неуправляемые терминалы, поэтому об актуальности библиотеки драйверов в 1С я не беспокоился. Сумма в терминалы вводилась вручную, они сами себе печатали чек, все было хорошо. А сейчас я решил взять новенькие ingenico ipp320, управляемые с компьютера, и не имеющие в себе принтеров слипов. Встроенного драйвера в моей конфигурации не было, с наскоку импортировать новую версию библиотеки подключаемого оборудования не удалось, так как версия конфигурации старая, очень сильно допиленная, и конфликты вылезали в самых неожиданных местах. И так получилось, что терминал оказался нужен вот прямо вчера.

Пришлось вспомнить молодость, и быстренько написать программку для управления терминалом, и печати слипа, минуя 1С.

Тут надо прерваться, и описать, как ожно работать с терминалом. Есть программный комплекс arcus2, который, как правило, дает представитель банка. Есть какой то com-интерфес, и для олдскулла - специальная программка CommandLineTool, которая работает из командной строки. Свойства платежа ей задаются большим набором параметров командной строки. Дальше программа связывается с терминалом, и когда тот заканчивает, записывает результат rc.out, и чек, внешний вид которого кодируется в банке, в файл cheq.out. Дальше в общем то просто - надо посмотреть в этот самый rc.out и узнать, что собственно, у нас получилось, и напечатать слип из cheq.out.

Как видно, ничего сложного. Но без нормально UI интерфейса тут делать нечего. 

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

Настройки программы хранятся в файле arccomm.ini, там есть два радела - параметры командной строки CommandLineTool, и настройки самой программы. Необходимо выбрать принтер для печати, я купил для этой цели noname принтер чеков, и если принтер поддреживает автоообрезку, поставить соответствующую галочку.

Штатные параметры CommandLineTool уже записаны в параметрах, если у вашей версии терминала они отличаются - можно поправить. Место, куда вставляется сумма, кодировано XXX, место, куда вставляется код авторизации для возврата - VVV.

Важный момент - в arcus2 расшифровки результата операции записаны в файл INI\rc_res.ini. Файл не совсем соответствует стандарту ini, так как у него нет заголовка секции. Поэтому перед запуском надо дописать там первой строчкой вот такое значение: [general], в противном случае программа не сможет получать оттуда информацию. На функционировании самого arcus2 это не скажется.

1

Скачать файлы

Наименование Файл Версия Размер
ArcComm
.zip 36,63Kb
11.03.17
6
.zip 36,63Kb 6 Скачать

См. также

Комментарии
Сортировка: Древо
1. pakko 11 13.07.18 07:10 Сейчас в теме
А с каким банком сея приблуда работает? А то у нас Газпромбанк
2. kolabaister 1 13.07.18 14:43 Сейчас в теме
Это зависит не от банка, а от драйвера терминала. Писалось и тестировалось под банк россии.
3. Benefactor88 64 23.07.18 16:30 Сейчас в теме
Правильно ли я понял - эта прога для ввода вручную и прицепить ее к 1С никак - например сформировать текстовый файл и потом посмотреть результат - и послать чек на кассу? У нас тоже нетиповая и очень старая конфа где в помине ент торгового оборудования.
4. kolabaister 1 23.07.18 19:46 Сейчас в теме
Да, правильно. Это была первая разработка такого плана, и рассчитана она была исключительно на ручную работу.

Я в итоге написал полноценный кассовый фронтэнд - здоровый программный комплекс на VC, которому 1с при проведении заказа отправляет данные по нему, и который после оплаты скидывает инфу про нее базе. Получилось довольно громоздко, но очень быстро, и при необходимости легко дописываю без возни с обновлением БПО.
Оставьте свое сообщение