Но 1С 7.7 не воспринимает тип данных «С-строка». Выход был найден через компоненту-посредника (обертку) WSC.
В комплект поставки входят:
1) Архив с полным комплектом поставки компоненты "CARDPAY POSAPI – Версия 1.8" для windows x32,
с примерами, справкой и описанием
2) Компонента-обертка posapi2wsc.wsc
3) Тестовая внешняя обработка в качестве примера работы с posapi через компоненту-обертку wsc.
Информация выводится на форму обработки и полностью дублируется в окне сообщений.
Обработка предназначена для теститрования и отладки, и на законченность не претендует.
Может пригодится кому-нибудь в качестве примера.
В ближайшем будущем функционал данной обработки будет оформлен в виде отдельного класса 1cpp
и добавлен в эту публикацию для скачивания. В комментариях к его методам и свойствам будет подробное описание
всех известных мне аспектов и нюансов.
Все отладочные работы проводились на тестовом ПОС терминале банка "Аваль" (Украина). Для других банков — не тестировалось. Предполагаю, что существенных отличий не будет.
Особенности установки:
Для установки необходимо зарегистрировать (regsvr32) в системе файлы:
— posapi2.dll и
— posapi2wsc.wsc
Ни какие другие внешние компоненты (1cpp, formex) для тестирования — не требуется.
P.S.: Для работы из 1С v8.x данная компонента-посредник не нужна, т.к. 8.х с С-строкой работает корректно, как и с типами данных SQL. ИМХО, наконец то!
Цель данной публикации — просто поделиться.
P.S. (13.08.2025): Проблема, из-за которой я был вынужден написать WSC-обертку: — 1С 7.7 не понимает строковое значение, возвращаемое методами pos_get*(). DLL-ка возвращает значение типа VARIANAGR. Только что получил от разроботчиков информацию, что у COM-объекта есть недокументированные методы, специально для старых версий 1С — pos_get2(), pos_get_first2() и pos_get_next2()!
Пользоваться ими нужно по такому принципу: val = obj.pos_get_first2(param)
Эмоции: сколько времени потеряно в пустую …
P.S. (27.09.2025): Добавил версию компоненты 1.21
Когда занимался внедрением «1С Розница» в супермаркетах мне эта тема была очень интересна.
Добрый день.
А, подскажите, пожалуйста, есть ли описание синтаксиса этих методов?
Столкнулся с такой же задачей: под 8-ку «взлетело». А вот под 7.7 — голову ломал, почему параметры получает, а значений нет.
Второй вопрос. Версии более ранние (мне предоставили posapi 1.25) также содержат недокументированные инструкции, или нужна более свежая?
P.S. Хорошо, здесь:
val = obj.pos_get_first2(param)
я получу значение параметра.
А как получить его «Имя»?
Или можно задавать Имя параметра, и получать его значение, как в методе pos_get?
Что делать, если при попытке регистрации WSC файла система (Windows 10) ругается «Не удается преобразовать текст в кодировку Юникод для обработки»?
(4)
А делать следующее: посмотреть внутрь файла на предмет наличия незакрытых тегов и (возможно) символов кириллицы, которые неадекватно понимаются при регистрации этой компоненты.
А вот, возможно ли получать имя порта, к которому подключено оборудование? Чтоб не привязывать жестко в теле обработки «COM9», например?
(7) Добрый день! Прошу прощения что не отвечал так долго. Не получал уведомлений об сообщениях. Ваши вопросы еще актуальны?
Спасибо за отклик.
Обработка обслуживания уже примерно полгода работает. Нареканий нет. Но, если у Вас есть ответы, буду рад ознакомиться и обсудить.
(2) Добрый день!
7.7 не понимает типы значений, возвращаемые компонентой, в отличии от 8-ки. Поэтому был вынужден сделать wsc-прослойку. В постскриптумах описания подробно описано.
У меня версии выше 1.21 нет. Добавил ее в список файлов.
(3) да, «param» и есть его имя
(4) Вы искали эту проблему на форумах?
У меня все ОС русскоязычные. От XP до Windows 10 Pro x64. Никогда такой ошибки не было.
Нюанс регистрации под х64: нужно регистрировать дважды — первый, как обычно (для 32 бит), а второй (для 64 бит) — c:windowsSysWOW64
egsvr32 …путьКфайлуфайл.wsc
(7) имя храню в элементе справочника Терминала
(9)Да, идея!
Спасибо. Отмечу на будущее.
Пока что, велел тех. поддержке устанавливать жестко по указанным «партией и правительством» параметрам.
добрый день. под 1с 8 не адаптировали ?
(15) Добрый день! Есть в планах на этот год