Атол 55Ф + терминал эквайринга VeriFone 802, ошибка 4321

При проведении эквайринговой операции 1С Розница 2.2 выводит ошибку:

При выполнении операции возникла ошибка:
«Ошибка отмены операции транзакции. Обратитесь в банк. Ошибка при выполнении функции АварийнаяОтменаОперации, ответ терминала — Ошибка 4321».
Оплата по карте не была произведена.

1) Тест драйверов кассы ККМ проходит
2) Тест драйверов терминала проходит
2) SBRFCOM.dll зарегистрирована regsvr на 7 параметров (пробовал и на 3)

Ошибка происходит только при выводе чека экваринговой операции на ККМ. Деньги с карточки снимаются.

Решение: заработало когда переставили терминал в порт USB3.0 (синенький). Возможно и правда не хватало питания, а может быть особенность реализации конкретно на этой материнской плате. Т.к. на других ПК всё работало в любых портах. 

В чем опасность использовать прямую работу с БД если есть API

Жил был скрипт, который использовал вот таакой запрос к БД Zabbix:

select sendto from media where userid in (select userid from (select users_groups.userid from operations inner join opmessage_grp on opmessage_grp.operationid=operations.operationid inner join users_groups on opmessage_grp.usrgrpid=users_groups.usrgrpid where operations.actionid in (select actionid from conditions where conditiontype=2 and value=%s union all select actionid from conditions where conditiontype=0 and value in (SELECT groups.groupid FROM triggers INNER JOIN functions ON triggers.triggerid=functions.triggerid INNER JOIN items ON items.itemid=functions.itemid INNER JOIN hosts ON hosts.hostid=items.hostid INNER JOIN hosts_groups ON hosts_groups.hostid=hosts.hostid INNER JOIN groups ON groups.groupid=hosts_groups.groupid WHERE triggers.triggerid=%s) union all select actionid from conditions where conditiontype=1 and value in (SELECT hosts.hostid FROM triggers INNER JOIN functions ON triggers.triggerid=functions.triggerid INNER JOIN items ON items.itemid=functions.itemid INNER JOIN hosts ON hosts.hostid=items.hostid INNER JOIN hosts_groups ON hosts_groups.hostid=hosts.hostid INNER JOIN groups ON groups.groupid=hosts_groups.groupid WHERE triggers.triggerid=%s)) union all select opmessage_usr.userid from operations inner join opmessage_usr on opmessage_usr.operationid=operations.operationid where operations.actionid in (select actionid from conditions where conditiontype=2 and value in (select triggers.triggerid from triggers where triggers.triggerid = %s union all select triggers.templateid from triggers where triggers.triggerid = %s) union all select actionid from conditions where conditiontype=0 and value in (SELECT groups.groupid FROM triggers INNER JOIN functions ON triggers.triggerid=functions.triggerid INNER JOIN items ON items.itemid=functions.itemid INNER JOIN hosts ON hosts.hostid=items.hostid INNER JOIN hosts_groups ON hosts_groups.hostid=hosts.hostid INNER JOIN groups ON groups.groupid=hosts_groups.groupid WHERE triggers.triggerid=%s) union all select actionid from conditions where conditiontype=1 and value in (SELECT hosts.hostid FROM triggers INNER JOIN functions ON triggers.triggerid=functions.triggerid INNER JOIN items ON items.itemid=functions.itemid INNER JOIN hosts ON hosts.hostid=items.hostid INNER JOIN hosts_groups ON hosts_groups.hostid=hosts.hostid INNER JOIN groups ON groups.groupid=hosts_groups.groupid WHERE triggers.triggerid=%s))) as us group by userid union all select userid from users_groups where usrgrpid=18) and mediatypeid=5

Единственной функцией котого было дать список телефонов пользователей по id триггера. И работал бы этот скрипт еще долго, если бы не случилось обновление Zabbix с 3.4 до 4.4 Структура БД изменилась. Запрос работать перестал. Посмотрел я на него, посмотрел.. И понял, я наверное был не в себе когда его писал, и повторить такой подвиг больше не смогу. Решил переписать его использую API Zabbix. Вышло много понятнее 😉

Работа с API Zabbix из PHP

Поискал, поискал, ничего толкового не нашел. Пришлось написать самому. Выложил на GitHub. Описание актуального API Zabbix тут.

Пример использования:

1C управляемые формы, выбор из списка значений

1С удивительная платформа. Иногда спотыкаешься на ровном месте на пару часов и не знаешь ты дурак или нет.. Ну вот казалось бы простая вещь — сделать список выбора на управляемой форме (выбор из списка значений), а застрял из-за одного нюанса, из-за которого то что выбрал в списке не отображалось в поле выбора..

Теперь воспроизведу всё пошагово:

Создаем реквизит, например «Категория». ВАЖНО! — тип — произвольный:

выбор из списка значений


У меня был длительный затык именно на этом месте.

Далее ставим галочку «Режим выбора из списка» и назначаем обработку начала выбора на клиенте

Ну и собственно заполнение списка:

В чём была моя ошибка? Тип реквизита выбирал текст. Ну да, только когда я добавлял в список выбора цифры в Элементы.Категория.СписокВыбора.Добавить(0,»1″), то 1С их преобразовывала с цифры..

Update: 02/04/2024:

Для того чтобы получить выбранное значение или индекс можно воспользоваться:

На этом задача «выбор из списка значений» будем считать завершеной. Еще больше всяких шпаргалок по 1С, легко найдется здесь.

Простейшая http авторизация на PHP

Иногда проще бывает встроить «базовую» авторизацию (так называемая http авторизация) в скрипт, чем «пилить» что-то специальное под авторизацию. К счастью протокол HTTP позволяет это сделать — а именно перед открытием страницы можно спросить у пользователя…ну например банальное логин-пароль. Например так:




1 108 109 110 111 112 293