Имя: Пароль:
1C
1C 7.7
v7: ШТРИХ М, банковский платежный агент, передача тегов в ККМ
0 kupec
 
29.05.23
16:00
Всем доброго дня

Помогите передать правильно этот тег через 1С 7.7
http://www.consultant.ru/document/cons_doc_LAW_362322/ffc2071e4b7f2d12acc8872998eb9b35011d7a3b/
делая вот так

FR.Password=30;
FR.TagNumber = 1222;                                                                        
FR.TagType = 0;
FR.TagValueInt = ВотТутВотЧтоПоставить??; мне нужен БПА (БАНК. ПЛ. АГЕНТ)
FR.FNSendSTLVTag();

Заранее спасибо
1 dedmoroz777
 
29.05.23
17:13
В гугле же первой строкой ответ, не?
2 kupec
 
29.05.23
19:00
Через тест драйвера и лог понял, что в моем случае надо вот так

FR.Password=30;
FR.TagNumber = 1222;                                                                        
FR.TagType = 0;
FR.TagValueInt = 1;
FR.FNSendSTLVTag();

Но все равно ничего не добавляет. Пишет что некорректные параметры в команде.
3 victuan1
 
30.05.23
07:36
FR.Password=30;
FR.TagNumber = 1222;                                                                        
FR.TagType = 0;
FR.TagValueInt = 64; //1 в 6-ом бите
FR.FNSendTagOperation(); //передать просто тег в позицию чека

Если FR.ResultCode <> 0 Тогда
    ОписаниеРезультата = сокрлп(FR.ResultCode)+": "+FR.ResultCodeDescription;
    Сообщить("Ошибка записи тега "+FR.TagNumber+": "+ОписаниеРезультата)
КонецЕсли;


Ну и не забыть, что еще нужно передать какие-то из этих тегов:
Данные агента    1223
Адрес оператора перевода    1005
ИНН оператора перевода    1016
Наименование оператора перевода    1026
Операция платежного агента    1044
Телефон платежного агента    1073
Телефон оператора по приему платежей    1074
Телефон оператора перевода    1075
Данные поставщика    1224
Наименование поставщика    1225
Телефон поставщика    1171
ИНН поставщика    1226
Признак агента    1057    (отменен с ФФД 1.2)
4 kupec
 
30.05.23
08:11
(3) а почему в шестом бите если я банковский платежный агент? В договоре так и написано.

Вроде получилось у меня передать 1222. Пытаюсь теперь передать 1226 1223 и 1224. Делаю вот так. Но все равно что то ругается на неверный тип данных

    //Данные агента 1223
    ТаблицаТэгов=СоздатьОбъект("ТаблицаЗначений");
    ТаблицаТэгов.НоваяКолонка("НомерТега");
    ТаблицаТэгов.НоваяКолонка("ТипТега");
    ТаблицаТэгов.НоваяКолонка("ЗначениеТега");
    //телефон оператора перевода
    ТаблицаТэгов.НоваяСтрока();
    ТаблицаТэгов.НомерТега=1075;ТаблицаТэгов.ТипТега=7;
    ТаблицаТэгов.ЗначениеТега="88005555550";
    //операция банковского платежного агента
    ТаблицаТэгов.НоваяСтрока();
    ТаблицаТэгов.НомерТега=1044;ТаблицаТэгов.ТипТега=7;
    ТаблицаТэгов.ЗначениеТега="Выдача наличных";
    //телефон платежного агента
    ТаблицаТэгов.НоваяСтрока();
    ТаблицаТэгов.НомерТега=1073;ТаблицаТэгов.ТипТега=7;
    ТаблицаТэгов.ЗначениеТега="84935421148";
    //телефон оператора по приему платежей                                
    ТаблицаТэгов.НоваяСтрока();
    ТаблицаТэгов.НомерТега=1074;ТаблицаТэгов.ТипТега=7;
    ТаблицаТэгов.ЗначениеТега="88005555550";
    //наименование оператора перевода
    ТаблицаТэгов.НоваяСтрока();
    ТаблицаТэгов.НомерТега=1026;ТаблицаТэгов.ТипТега=7;
    ТаблицаТэгов.ЗначениеТега="ПАО Сбербанк России";
    //адрес оператора перевода
    ТаблицаТэгов.НоваяСтрока();
    ТаблицаТэгов.НомерТега=1005;ТаблицаТэгов.ТипТега=7;
    ТаблицаТэгов.ЗначениеТега="117312, г.Москва, ул.Вавилова, д.19";
    //ИНН оператора перевода
    ТаблицаТэгов.НоваяСтрока();
    ТаблицаТэгов.НомерТега=1016;ТаблицаТэгов.ТипТега=7;
    ТаблицаТэгов.ЗначениеТега="7707083893";
    ЗаписатьSTLVТег(1223, ТаблицаТэгов, 1);


Процедура ЗаписатьSTLVТег(НомерСоставногоТега,ТЗЗначенийВнутреннихТегов,ЭтоОперация)
    Если ТипЗначенияСТР(ТЗЗначенийВнутреннихТегов)<>"ТаблицаЗначений" Тогда
        Возврат;
    КонецЕсли;    
    Если ТЗЗначенийВнутреннихТегов.КоличествоСтрок()=0 Тогда
        Возврат;
    КонецЕсли;    
    FR.Password = 30;
    FR.TagNumber = НомерСоставногоТега;
    TagID = FR.FNBeginSTLVTag(); //начало ввода составного тега
    ТЗЗначенийВнутреннихТегов.ВыбратьСтроки();
    Пока ТЗЗначенийВнутреннихТегов.ПолучитьСтроку()=1 Цикл
        НомерТега = ТЗЗначенийВнутреннихТегов.НомерТега;
        ТипТега = ТЗЗначенийВнутреннихТегов.ТипТега;
        ЗначениеТега = ТЗЗначенийВнутреннихТегов.ЗначениеТега;
        FR.TagID = TagID;
        FR.TagNumber = НомерТега;
        FR.TagType = ТипТега;
        Если ТипТега = 0 Тогда // ttByte
            FR.TagValueInt = ЗначениеТега;
        ИначеЕсли ТипТега = 1 Тогда // ttUint16
            FR.TagValueInt = ЗначениеТега;
        ИначеЕсли ТипТега = 2 Тогда // ttUint32
            FR.TagValueInt = ЗначениеТега;
        ИначеЕсли ТипТега = 3 Тогда // ttVLN
            FR.TagValueBin = ЗначениеТега;
        ИначеЕсли ТипТега = 4 Тогда // ttFVLN
            FR.TagValueFVLN = ЗначениеТега;
        ИначеЕсли ТипТега = 5 Тогда // ttBitMask
            FR.TagValueBin = ЗначениеТега;
        ИначеЕсли ТипТега = 6 Тогда // ttUnixTime
            FR.TagValueDateTime = ЗначениеТега;
        ИначеЕсли ТипТега = 7 Тогда // ttString
            FR.TagValueStr = СокрЛП(ЗначениеТега);
        КонецЕсли;
        FR.FNAddTag();ОшибкаПередачиТега("Обычный тег: "+СокрЛП(НомерТега));
    КонецЦикла;
    //если это составной тег строки чека то ЭтоОперация = 1, если В общие реквизиты ЭтоОперация = 0
    Если ЭтоОперация=1 Тогда
        FR.FNSendSTLVTagOperation();
    Иначе
        FR.FNSendSTLVTag();
    КонецЕсли;
    ОшибкаПередачиТега("Составной тег: "+СокрЛП(НомерСоставногоТега));
КонецПроцедуры
5 kupec
 
30.05.23
08:11
ОшибкаПередачиТега() проверяет ответ драйвера
6 kupec
 
30.05.23
08:40
Не получается передать составные тэги

https://ibb.co/mRr5Ss6

Хотя передать пытаюсь.
При этой команде FR.FNAddTag() ошибок НЕТ
Ошибка с кодом 51 тут FNSendSTLVTagOperation - не верные параметры в команде
7 kupec
 
30.05.23
09:00
Есть вероятность, что касса не перерегистрирована на работу с выдачей наличных через БПА?
8 kupec
 
30.05.23
09:15
Поставил последнюю прошивку, поставил последний драйвер, передаю данные через тест драйвеа, все равно пишет ошибку 51. Не корректные данные в команде. Сделал перерегитсрацию ККМ. Перевел в режим, когда можно выдавать деньги агентом или субагентом. Все равно ничего не понимаю
9 kupec
 
30.05.23
10:18
Оказывается телефон надо передавать в формате +71234567890 вроде заработало
10 victuan1
 
30.05.23
10:30
Ну и лады
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший