Проверка марок из ЛК ФСРАР




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

99 Comments

  1. M_W_W
    Reply
  2. Alexei_fox

    Обработка еще актуальна ? работает ? А то там что бы войти в ЛК требуется ЭЦП.

    Reply
  3. knstanta

    (2) Alexei_fox,

    Обработка продолжает работать.

    Для проверки марки достаточны только ИНН и пароль.

    Reply
  4. Alexei_fox

    (3) Сканер в какой режим загонять для работы с обработкой ?USB HID COM пойдет ?

    Reply
  5. knstanta

    (4) Alexei_fox,

    Отдельной процедуры обработки событий от сканера в представленной обработке нет. Все тестировалось со сканером подключенным в режиме «Клавиатура». Также можно вставлять акцизные штрихи копипастом.

    Reply
  6. tarzan654

    Добрый день. А есть ли возможность удалить марку из списка проверенных через POST запрос?

    Reply
  7. knstanta

    (6) tarzan654,

    Спасибо за предложение.

    Функционал расширил.

    1. Удаление марок из списка с одновременным удалением из ЛК ФСРАР, также предусмотрен.

    2. Добавлена конвертацию с русской на английскую раскладку (по наводке M_W_W).

    3. Добавил отдельную обработку событий сканера. Теперь можно сканировать сразу в обработку. Следить за количеством марок на проверку необязательно. Необходимое число запросов будет сформировано автоматически.

    Файл обработки обновил.

    Reply
  8. 1c-vihr

    будет ли добавлен функционал ввода серии/номера/типа АМ?

    чтобы проверка была самой жесткой — дабы у фсрар при обнаружении нелегала не было претензий насчет того что проверяли марки «по-простому»

    спасибо

    Reply
  9. knstanta

    (8) 1c-vihr,

    Проверка по жесткому не предусматривалась. Возможно в следующих версиях будет предусмотрена. Спасибо за предложение к развитию.

    Reply
  10. SergBA

    Скажите, а сейчас этот сервис функционирует? 15/04/16 проверял — марки проверялись, а теперь в процессе отладки вижу ответ сервера, что документ перемещен

    <head><title>Документ перемещен</title></head>

    <body><h1>Объект перемещен</h1>Документ теперь находится здесь</body>

    и марки не проверяются 🙁

    Reply
  11. k_petrovich

    говорят, что проверка марок через ЛК имеет ограничение на количество запросов. через обработку таких ограничений нет?

    Reply
  12. knstanta

    (11) k_petrovich,

    Для обхода этого ограничения организована передача данных допустимыми пакетами N-ого количества.

    Reply
  13. knstanta

    Очередное обновление.

    Добавлена проверка по жесткому.

    Для сканирования марок с сериями, переходим на закладку «Жесткий».

    Выбираем тип марки, активируем таблицу штрих-кодов и сканируем большой-маленький штрих.

    Reply
  14. arabesca

    при запуске обработки выходит ошибка:

    «СканерШтрихКода<<?>>.ПосылкаДанных = 0;

    {ПРОВЕРКАМАРОКИЗЛК_ФСРАР.ERT(771)}: Переменная не определена (СканерШтрихКода)»

    Переменная вызывается в процедуре: ОбработкаВнешнегоСобытия

    Но сама переменная нигде не определена.

    Что это за переменная, как ее определить?

    Reply
  15. knstanta

    (14) arabesca,

    Эта переменная сканера. Обычно определяется в глобальном модуле.

    Можно дописать к примеру такой код из глобального модуля:

    Перем СканерШтрихКода   Экспорт;
    //….
    //….
    Процедура ПриНачалеРаботыСистемы()
    Если ЗагрузитьВнешнююКомпоненту(«Scaner1C.dll»)<>0 Тогда
    Попытка
    СканерШтрихКода = СоздатьОбъект(«AddIn.Scaner45»);
    Исключение Сообщить(«Сканер: «+ОписаниеОшибки(), «i»)
    КонецПопытки;
    КонецЕсли;
    //….
    //….
    КонецПроцедуры

    Показать

    Reply
  16. malinko.vasiliy

    Обработку капчи сделаете? (спасибо фсрару за дополнительное удобство…)

    Reply
  17. knstanta

    (16) malinko.vasiliy,

    следите за обновлением

    Reply
  18. beresnata

    Приобрели обработку «Проверка марок из ЛК ФСРАР», установили, но при нажатии кнопки «Передать» в легком режиме передача не происходит — в личном кабинете не появляются марки и в обработке по кнопке обновить тоже нет изменений. Если забить марку в самом личном кабинете ФСРАР и потом нажать в обработке «Обновить», то информация появляется. То есть связь из ФСРАР есть, а в ФСРАР не уходит. Подскажите пожалуйста, может мы что-то не так установили, или не доустановили.

    Reply
  19. knstanta

    (18) beresnata,

    ФСРАР для ограничений действий сторонних приложений в автоматическом режиме, ввел капчи.

    Необходимо, обновиться до последней версии.

    Reply
  20. espero2000

    Пытался на 4-х компьютерах запустить обработку, везде подключение к сайту ФСРАР, безуспешно 🙁

    С Windows ХР работа поддерживается? Я запускал на работе, там после нажатия кнопки «Подключить» вываливается ошибка: (532)}: WinHttp.WinHttpRequest: The server name or address could not be resolved

    На работе используется прокси, может в этом проблема. Решил попробовать дома, на прямом соединении. В этом случае другая ошибка: (532)}: WinHttp.WinHttpRequest: Отсутствует пакет безопасности.

    Запускал на двух компьютеров с Win 7, там после нажатия «Подключить» ничего не происходит, внизу написано «Выполняется обработка», закрыть нельзя. Приходилось через диспетчер задач снимать 1С.

    Как у всех работает, ума не приложу..

    Reply
  21. knstanta

    (20) espero2000,

    Необходимо обновить обработку до последней версии.

    ФСРАР внес исправления в работу личного кабинета.

    Reply
  22. knstanta

    Есть несколько запросов на встраивание в обработку возможности авторизации по Сертификату.

    На сколько актуален данный функционал?

    Стоит ли этим заниматься?

    Reply
  23. natanvidja

    Добрый день.

    Скачал обработку… кое как понял как отправлять «лёгкую» проверку марки, оказалось капчу надо обновлять при нажатии «передать» и вводить соответственно, если капча не правильная просто ничего не происходит при нажатии «передачи» . Не получается внести данные сканером для «Жёсткой проверки», при сканировании ничего кроме звукового сигнала не выдаёт.

    Reply
  24. knstanta

    (23) natanvidja,

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

    Для работы «Жесткой проверки», необходимо полноценное подсоединение сканера к конфигурации (через драйвер).

    При отсутствии такого подключения смотреть ответ (15)

    Reply
  25. Yurgis57

    Здравствуйте,

    Установил Вашу обработку. Все было ОК, но в какой-то момент в ответ на первый запрос сервер ФС РАР перестал возвращать мне раздел скрипта id=f5_cspm.

    Соответственно, «Что-то не так…». Это у меня что-то не так, или у них что-то поменялось?

    Reply
  26. knstanta

    (25) Yurgis57,

    Необходимо обновиться до версии 1.3.0

    Reply
  27. kumi2012

    Добрый день.

    У меня тоже самое. Выходит на сообщение «что-то не так..»

    Reply
  28. knstanta

    (27) kumi2012,

    Обновление на 28.06.16

    Файл версии 1.3.0 — авторизация по ИНН-пароль

    Файл версии 1.3.1 — авторизация по ИНН-пароль, или по цифровой подписи (необходимо наличие CAPICOM)

    Reply
  29. SerSinelnik

    Отлично все работает.

    Эта обработка, просто шедевр!!!

    Автор — гений. Огромное спасибо за труд от всех с ЕГАИСом мучающихся!!!

    Reply
  30. knstanta

    (29) SerSinelnik,

    Спасибо на добром слове.

    Reply
  31. HollyRoller

    А через прокси-сервер она работать будет?

    Reply
  32. knstanta

    (31) HollyRoller,

    Не проверял. Нет в наличии. 😉

    Reply
  33. M_W_W

    Все работает, автору спасибо большое! И процедура авторизации, перенесенная отсюда в обработку получения лицензий из ЛК тоже.

    Но, вопрос скорее методически-правового характера — если при проверке ФСМ пишет «данных не найдено», это однозначный левак, или что-то в консерватории не правильно???

    Уж больно много таких бутылок, бОльшая часть… Особенно по ФСМ, по АМ пока все правильные попадаются… Думал, может обработка что-то не так передает, перевел сканер в режим KB, зашел «пешком» в ЛК на сайте, попробовал — все аналогично… Фигня какая-то, не верю, такого не может быть, что-то в ФСРАРе косячит ИМХО… Как у остальных с этим дела обстоят?

    Reply
  34. knstanta

    (33) M_W_W,

    На сколько я понял из вопроса, сканирование происходит по «жесткому» сценарию, при этом необходимо указывать тип марки, серию, номер и PDF417-код. Серия и номер выдергивается из QR-кода, вероятно не совсем верно формируются эти данные. Не проверяли цифирьки на бутылке? Определяется ли марка вообще по «легкому» режиму?

    Может действительно левак….

    Reply
  35. M_W_W

    (34)

    Да, по «жесткому» сценарию. По легкому — проходит нормально, как и в старых версиях проходило.

    Тип марки, естественно указываю правильно, визуально считывая с бутылки, серию/номер получаю из ДатаМатрикс… Для «чистоты эксперимента» попробовал серию/номер ввести в ЛК вручную, а ПДФ считал сканером в клавиатурном режиме, результат тот-же…

    При проверке «по легкому» тип марки показывает правильный, такой как в «жестком режиме» вручную выбираю…

    И, как уже писал, проблемы в основном с ФСМ, АМ по жесткому проверяется нормально…

    Может у самого ФСРАРа проблемы с БД марок? У них вечно не пойми-что творится… Форум третий день «лежит» на «регламентных работах», может и по БД ФСМ какие-то работы, а я тут напрягаюсь???

    Reply
  36. knstanta

    (35) M_W_W,

    Интересно, а если посмотреть протокол «легкой» проверки, есть там серия-номер. Совпадают они с реальными?

    Reply
  37. M_W_W

    Ну, как-бы да… Все совпадает… На скриншоте в этом сообщении, более полная картина. Самая верхняя строка в верхнем окошке — жесткая проверка марки — «данных не найдено», выделенная строка в том-же окне — легкая проверка той-же марки, в нижнем окне информация по ней. Видно хорошо, что серия и номер одни и те-же…

    И ладно-бы, единичный случай, можно было-бы подумать, что контрофакт, а таких большинство, и именно по ФСМ. 🙁

    Reply
  38. knstanta

    (37) M_W_W,

    Тип марки выбран «ФСМ. Водка до 0,5 л». В списке присутствует и «ФСМ. Водка 0,5 л». Может дело в неправильном указании типа….

    Reply
  39. M_W_W

    Да, сам дурак… Разобрался еще днем, действительно, в списке есть и «до 0.5» и «0.5»… Сразу и не заметил… После того, когда понял, что не проверяются только пол-литровки, внимательнее посмотрел список, и нашел ровно 0.5. После этого, стало все проверяться:-)

    Reply
  40. knstanta

    (39) M_W_W,

    Бывает….из всего этого, родилась идея «Псевдо Жесткой» проверки. Отправляем на проверку PDF417, а затем по протоколу проверяем схожесть серии-номера марки. При этом не заносим тип марки(слишком уж большой этот список). Может реализую в очередных обновлениях. Как вы думаете?

    Reply
  41. M_W_W

    Думаю, это правильно. Я тоже уже об этом подумал — зачем указывать тип марки, когда он в ПДФе есть?

    А вообще, у них похоже разные, отдельные базы для разных типов марок:-) Была-бы общая база, могли бы выводить сообщение, что считанная марка не соответствует выбранному типу… А так, не найдена, и все тут…

    Reply
  42. knstanta

    (41) M_W_W,

    К каким цифрам из штрихкодов можно подвязать список «тип марки» (001011, 001012,…002013, 002014…) ?

    вот цитата с форума РАРа

    Цитата:

    Re: Расшифровка штрих-кода PDF-417 акцизной марки

    Сообщение operator9 » 11 дек 2015, 13:02

    Данные полученные из марки ФСМ, пример:

    136-102719868197240715410498397226

    136- тип марки — в данном случае ФСМ, так как первая цифра «1» (если первые три цифры начинаются на «2», то это АМ)

    Далее идет последовательность цифр, составляющая серию + номер марки + контрольная сумма.

    Для ФСМ 12 цифр (серия + номер)

    136- тип марки ФСМ

    102- серия марки

    719868197 — номер марки

    240715410498397226 — контрольная сумма гознака

    20N00001CGUMZYCB99J1NKN31105001000056NQQMS5VP4HTF5SB46ZSQQJD­­8BNJP891

    20 – Номер Версии ПС ЕГАИС

    00001CGUMZYCB99J – Зашифрованный в кодировке Base36 код продукции(алккод)

    1NKN31105001 – Номер заявки на печать.

    000056 – номер марки на печать

    NQQMS5VP4HTF5SB46ZSQQJD8BNJP891 — защитная последовательность

    Reply
  43. M_W_W
    К каким цифрам из штрихкодов можно подвязать список «тип марки»

    При «легкой проверке» в протокол выводится тип марки. Значит, он возвращается из сервиса, как они его там определяют, ИМХО не принципиально…

    Отсюда идея — отсканировали список марок, как по жесткому, с номерами, сериями и ШК, запустили «легкую» проверку, если что-то не проверилось — сразу отсеяли, с соответствующим результатом, на оставшиеся — из протоколов «легкой проверки», вытащили типы марок и дозаполнили таблицу. И только после этого, разрешить запуск «жесткой проверки». Изначально, до проведения «легкой проверки» кнопку «жесткой» сделать недоступной. Тогда, по идее, таких ошибок уже не будет.

    Как Вам такой алгоритм?

    Reply
  44. knstanta

    (43) M_W_W,

    Действительно, на жесткую проверку выводить только те марки, что не сошлись при легкой проверке.

    Алгоритм ловкий…попробовать реализовать и испытать.

    Reply
  45. M_W_W
    на жесткую проверку выводить только те марки, что не сошлись при легкой проверке

    Не! Наоборот… Не сошлись при «легкой» проверке, какая может быть «жесткая»-??? Уже и так ясно, что левак. А вот если «легкая» прошла, получаем из нее протокол, и в «жесткую» передаем тип марки из него(он там есть), что-бы не выбирать руками.

    Как-бы «жесткая» проверка в два этапа, сначала предварительная проверка, с отсевом того, что не проверилось «по легкому»(с одновременным получением типов марок на прошедшие проверку марки из протокола), а потом уже сама «жесткая» проверка, с использованием данных, полученных при легкой…

    Так понятнее?

    Reply
  46. M_W_W

    Можно, конечно, и после «легкой» устроить еще и «промежуточную» проверку, со сверкой отсканированных кода и номера с полученными из протокола «легкой» проверки, но, не знаю, стоит ли… Я так понимаю, смысл «жесткой» проверки — это поиск мрки в базе данных ФСРАР… Найдено — «Проверено», «Данных не найдено» — контрафакт…

    Reply
  47. knstanta

    (46) M_W_W,

    На сколько я себе представляю, смысл «жесткой» проверки заключен в проверке (нахождении соответствия) трех составляющих, полученных от реальных штампов (тип марки, серия-номер, PDF417). Если брать тип марки из протокола «легкой проверки» уже заведомо обманываемся с реальным типом марки бутылки.

    Двухуровневая проверка наверно не имеет смысла. Каждому PDF417 соответствует только один комплект «серия-номер», повторов PDF417 не может быть. И задача передать на проверку, как можно больше реальных данных, а не перебрасывая их из одного протокола в другой. Протоколы «легкой» и «жесткой» проверки не различимы, только присутствуют ответы «Не проверялась — Совпадает». Вопрос определения типа марки, остается открытым.

    Reply
  48. M_W_W
    смысл «жесткой» проверки заключен в проверке (нахождении соответствия) трех составляющих, полученных от реальных штампов (тип марки, серия-номер, PDF417)

    Если так — то да.

    Но, мне показалось, что при проверке ищется марка в базе фиксации марок ФСРАР… Иначе какой смысл «жесткого» запроса, когда все данные и в «легком» есть, только сравнить с отсканированными?

    Reply
  49. knstanta

    (48) M_W_W,

    Вот и получается, что быстро (без типа марки) можно обойтись и «легкой» проверкой, добавив для себя анализ данных из протокола. Но при этом в ЛК ФСРАР останется метка о не полной проверке, что может дать некоторое преимущество Росалко в обвинении в распространении нелегала.

    «Золотая середина» — ….. со сверкой отсканированных кода и номера с полученными из протокола «легкой» проверки….

    Reply
  50. boev

    Если нужен прокси

    Если ПроксиСервер = 1 Тогда

    WinHttp.SetProxy(2,»192.168.110.126:3128″);

    WinHttp.SetCredentials(«admin»,»pass»,1);

    КонецЕсли;

    Reply
  51. HollyRoller

    Добрый день.

    До сегодняшнего дня Ваша проверка работала безупречно.

    Начиная с 28-09-2016 при попытке подключения к ЛК ФСРАР получаем ошибку —

    WinHttp.SetRequestHeader(«Cookie»,Кука);

    {\XXXXXXXYYYYYYZZZZZZZZEXTFORMSПРОВЕРКАМАРОКИЗЛК_ФСРАР.ERT(945)}: WinHttp.WinHttpRequest: The requested header was not found

    Что могло произойти?

    Заранее благодарен.

    Reply
  52. knstanta

    (52) HollyRoller,

    Очередное изменение cookie со стороны ФСРАР, файлы обработки подправлены.

    Reply
  53. user631592_rs148

    Акцизные марки надо сканировать в обработку, или можно с файла загрузить?

    Таблицу проверенных штрихкодов, названия алкоголя можно выгрузить в эл таблицу, чтобы далее проверять на дубликаты акцизных марок?

    Еще не понял. Для жесткой проверки надо указывать вручную тип акцизной марки — это же неудобно!

    Reply
  54. knstanta

    (54) user631592_rs148,

    1. Список штрих-кодов можно скопировать из текстового файла в окно ввода марок. В связи с этим не вижу особой надобности в отдельной кнопке-загрузки из файла. Единственное ограничение, каждый штрих на своей строке.

    2. Выгрузки проверенных марок из ЛК обратно в текстовой файл нет. Хотя реализовать не сложно и своими силами при должном умении. Хотя бы командой ЗначениеВФайл(КаталогПользователя()+»МаркиОбратно.txt»,Марки)

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

    Reply
  55. M_W_W

    Похоже опять что-то поменяли…

    До этого, работало исправно.

    WinHttp.Send();
    {Îáðàáîòêà.ÏðîâåðêàÀÌâËÊ.Ôîðìà.Ìîäóëü(634)}: WinHttp.WinHttpRequest: An error occurred in the secure channel support
    
    WinHttp.SetRequestHeader(«Cookie»,Êóêà);
    {Îáðàáîòêà.ÏðîâåðêàÀÌâËÊ.Ôîðìà.Ìîäóëü(930)}: WinHttp.WinHttpRequest: The requested header was not found

    Извиняюсь, нечем перекодировать в удобочитаемый текст… Но, я думаю, и так понятна ошибка.

    Reply
  56. M_W_W

    Ложная тревога. Сейчас — все отлично работает, как и раньше. Видимо, днем были какие-то проблемы… При этом, по той-же связке ИНН и пароль, «пешком» в ЛК заходило нормально. А из программы — ни в какую… И в получение лицензий — тоже.

    Reply
  57. M_W_W

    (55)

    Автоматом вычислять тип марки не представляется возможным.

    Ну, на самом деле, ничего невозможного нет… Первые три символа «маленького» ШтрихКода, которые до «-«, это и есть тип марки…

    Вот только, или я чего-то не понял, или ФСРАР как всегда «в своем репертуаре», надо же намутить воды на пустом месте…

    Вот пример:

    То, что Вы получаете из ЛК ФСРАР:

    ArrayМарки = «001013»

    ArrayРасшифровка = «ФСМ. ВОДКА ДО 0,1 Л»

    Первые три символа ШК этой марки — «133».

    Если заглянуть в схему «EGCommonEnum.xsd» из УТМ, то видим:

    <xs:enumeration value=»133″>
    <xs:annotation>
    <xs:documentation>ФСМ. Водка до 0,1 л</xs:documentation>
    </xs:annotation>
    </xs:enumeration>
    

    То есть, первые три символа ШК с бутылки однозначно идентифицирует тип марки, с точки зрения УТМ ЕГАИС.

    Но, получается, что в ЛК ФСРАР код совсем другой — «001013»… Бред какой-то… Две разных базы, с совершенно разной организацией справочников?

    В принципе, можно подгрузить список кодов из XSD схемы УТМ, находить отсканированный код(первые три символа) в этом списке, и потом как-то сопоставлять найденый тип марки с типом, полученным из ЛК ФСРАР… Только, пока не понятно, как их связать — по строковому наименованию(приведя их к одному регистру так, как написаны они тоже по разному — в ЛК все большие буквы, а в УТМ нет), но, как-то это криво получается — а вдруг они там не только регистром отличаются, а где-то еще и какую нибудь точку пропустили…

    Может есть какой-то другой способ сопоставить коды из ЛК и из схемы XSD УТМ — ?

    Reply
  58. M_W_W
    Reply
  59. M_W_W
    Reply
  60. M_W_W

    Во, блин… Форум извратил код… В двух местах, там где Array.ТекущаяСтрока(1); и глСканерПосылкаДанных(1); он какую-то html строку вписал… Наверное надо для кода 1С не тег Code использовать, а просто как цитату вставлять…

    Reply
  61. M_W_W

    (60)»Пока, можно перед сканированием первой марки просто выбрать первую строку списка типов(Выберите тип марки) или щелкнуть мышкой на таблице, чтобы она была активная.»

    Хотя, если в функции Функция АктивизацияСканераДляШтрих_Серия()

    закомментировать:

    //Если ПустоеЗначение(Array.ПолучитьЗначение(Array.ТекущаяСтрока()))=1Тогда

    // Возврат 0;

    //КонецЕсли;

    То работает и так, можно сразу после перехода на закладку «Жесткий» начинать сканировать «маленький» ШК…

    Reply
  62. knstanta

    (62,(62) M_W_W,

    Все правильно и логично….Если нет формулы нахождения соответствия, то остается искать его на «Кошках». Единственное…в этой темной комнате кошки каждый раз могут разными….

    Спасибо, за моральную поддержку.

    Reply
  63. M_W_W

    Да, запросто могут… И отследить мы это никак не сможем. Единственное, если «вдруг, не с того ни с сего» протокол проверки будет отрицательный, будет повод сразу, без паники(ААА!!!! Контрафакт!!! :-)) обратить внимание на визуальное соответствие автоматически полученного типа марки — марке на соответствующей бутылке.

    Reply
  64. M_W_W

    Да, еще кстати…

    В XSD схемах ЕГАИС, недавно появились еще новые коды для «старых» марок, с 001 по 031. Буквально пару недель назад, делал документ запроса нового ШК для не читаемых марок, их не было, а вчера заглянул в схему — уже есть.

    Что по старым маркам возвращает сайт ФСРАР — ? Вроде их там тоже нет… Для таблицы соответствия, я их из Array вытащил, может они где-то опубликованные есть?

    Хотя, для этой задачи толку от них не много — их все равно негде взять, второго то ШК нет…

    Reply
  65. M_W_W

    (57) M_W_W,

    «Ложная тревога. Сейчас — все отлично работает, как и раньше. Видимо, днем были какие-то проблемы…»

    У меня — все нормально работает. А на том компе, где тогда не работало — так и не работает. Стал разбираться — оказалось, там древний Windows XP SP2! Скорее всего, в этом причина. Не находит поддержку какого-то протокола наверное… Хотя, раньше, одна из первых версий обработки еще до «фокусов» ФСРАР, там вроде работала.

    PS Обновил винду, установил SP3, все заработало!:-)

    Reply
  66. knstanta

    (66) M_W_W,

    Протестировал на Windows XP SP3, в ЛК входит отлично, марки отправляет и получает результаты.

    Что может быть на SP2 такое, что не переваривает обработка???

    Reply
  67. M_W_W

    Ну, когда я сегодня обновил винду до SP3, то тоже все отлично и сразу заработало.

    Вот это:

    WinHttp.WinHttpRequest: An error occurred in the secure channel support

    наводит на мысль, что что-то с защищенным протоколом не то… Да и фиг с ним, пора вообще забывать об XP, а тем более без обновлений.

    Просто, вдруг еще кто-то наступит на эти грабли, будет хоть понятно, что посоветовать проверить.

    Reply
  68. knstanta

    (68) M_W_W,

    Согласен, а то весь мозг изъел этот баг…

    Reply
  69. Xeromant

    а для версии 1с8 на управляемых формах это есть ?

    Reply
  70. Xeromant

    как удалить все марки из ЛК ? (там их 995)

    Reply
  71. knstanta

    (71)

    При должной сноровке можно организовать кнопку с циклическим удалением.

    Reply
  72. knstanta

    (70)

    На 1с8 нет.

    Можно постучаться туда: Проверка марок из 1с8. Антидубль продаж https://youtu.be/fBu4w8gwhxI

    Reply
  73. M_W_W

    А зачем их удалять? То, что Вы проверяете марки, Вам только плюс! Коснись чего, не дай бог конечно, а у Вас будет дополнительный аргумент — «а мы марки проверяем, вся история в ЛК-!».

    PS Но, конечно, если Вас захотят поиметь, то все равно поимеют, не зависимо от истории проверки марок 🙁

    Reply
  74. arkada2009

    Здравствуйте. Во время сканирования марки не заполняется поле. Сканер пикает и дергается графа.Подскажите пожалуйста что делаю не так ? Заранее благодарен

    Reply
  75. M_W_W

    А он у Вас в режиме «эмуляция COM порта», или «эмуляция клавиатуры» — ?

    По тому, что Вы пишете, похоже второе… А должно быть первое.

    Reply
  76. M_W_W

    Похоже, опять ФСРАРовцы чего-то нахимичили… Подключение на этот раз проходит нормально, капча появляется, но после нажатия кнопки «Передать на проверку» ничего не происходит. Марка не появляется в списке. На сайте в ЛК она тоже не добавляется. В самом ЛК проверка работает. Такое обычно происходило, когда при вводе капчи ошибались. Но, тут точно правильно — раз десять пробовал, с перегенерацией капчи, выбирал самые легкие, где ошибок быть не может… Что-то поломали, видимо…

    Reply
  77. SerSinelnik

    Там новая проверка » Я не робот»

    Мож пожаловаться на них в антимонопольный?)

    Реально достали своей неугомонной фантазией.

    Reply
  78. meis2000@newmail.ru

    А эту новую проверку «Я не робот» как-то в обработке реализовать можно?

    Reply
  79. arkada2009

    «Подключение на этот раз проходит нормально, капча появляется, но после нажатия кнопки «Передать на проверку» ничего не происходит. Марка не появляется в списке. На сайте в ЛК она тоже не добавляется.»

    Такая же проблема во всех наших торговых точках. Подскажите , может ест какой нить способ !!!

    Reply
  80. SergN77

    Достал ФС РАР, не дает вообще работать, удалось кому-нибудь «Я не робот» в обработку прикрутить?

    Reply
  81. Taburovdm

    (78)

    уже жаловались. нам антимонопольная служба так не чего и не ответила

    Reply
  82. Taburovdm

    а есть какие-то другие сервисы для проверки легальности марок? кроме как через ЛК ФСРАР может что есть в открытых источниках?

    Reply
  83. Stas-ch

    (83) Других сервисов похоже нет и не будет, ибо тогда «злоумышленники» начнут такими сервисами активно пользоваться для наклейки на нелегальную продукцию якобы легальных марок, проверка которых проходит успешно.

    Reply
  84. M_W_W
    добавлена авторизация по ЦифровойПодписи

    Добрый день! А подпись только через внешние криптопровайдеры(Крипто-Про, VipNet CSP) — ? Использовать аппаратную «криптографию на борту» с ДжаКарты или Рутокен ЭЦП-2.0 не получается?

    Было-бы очень интересно…

    Reply
  85. M_W_W

    И еще один «нюанс»… Попробовал проверить марку, заведомо проданную(в свете грядущего «помарочного» учета, их ШК у меня в программе сохраняются), секцию «продажи» вывело, ИНН правильный, нашей организации, дату проверки сегодняшнюю поставила, а даты и времени продажи нет. При проверке в ЛК они выводятся. Для «разбора полетов» с нерадивыми продавцами, информация очень даже нужная.

    Reply
  86. M_W_W

    (86)А нет… Извиняюсь. Не показывает в таблице на форме, а в печатную форму протокола проверки все выводит нормально.

    Reply
  87. knstanta

    (87) Из протокола вырвать можно любые данные. На тот момент такая задача не стояла.

    Reply
  88. M_W_W

    Да нет, с этим все нормально, ничего не надо, а будет надо, сам допишу.

    Меня больше волнует вопрос — можно ли как-то ДжаКарту или РуТокен ЭЦП 2.0 прикрутить…

    Боюсь, что через КапиКом не получится. Там есть какая-то новая примочка, сейчас не помню какая, можно поискать.

    Reply
  89. M_W_W

    Просто у многих клиентов, кроме ЕГАИсовских ключей ничего нет. Декларации подписывают с помощью КриптоАРМ-Стандарт Плюс, он умеет с ними работать, и в ЛК тоже можно с ними заходить. Было-бы интересно и в обработке проверки марок использовать.

    Reply
  90. knstanta

    Так как вход в личный кабинет реализован ФСРАР и с помощью ключей Jacarta и Рутокен. То это можно сделать и в обработке.

    Reply
  91. M_W_W

    Не все так просто… Вот скриншот. Сертификаты на компе видны, которые через VipNet созданы.

    По первому из списка, даже заходит в ЛК. По остальным не зайдет — они не «Алкогольные», я их

    просто для регистрации ККТ в ФНС и ОФД делал.

    А поверху окна 1С, окно единого клиента ДжаКарты. На ней есть сертификат, естественно «алкогольный».

    Но, как видите — он не виден в обработке. Но, «пешком» по нему я спокойно захожу в ЛК на сайте ФСРАР.

    Тут есть небольшая тонкость — при входе выбирается в меню сайта не «По сертификату», а «По аппаратному ключу».

    Это другой принцип входа. VipNet или CriptoPro не может получить ключи с ДжаКарты или Рутокен ЭЦП 2.0, потому,

    как они в них «неизвлекаемые». Для работы с ними используются встроенные в токен криптопровайдеры, внешние

    не используются. Поэтому CapiCom и не может до этих сертификатов добраться.

    Как-то так…

    Reply
  92. M_W_W

    Вот что удалось сразу найти, о чем писал в (89):

    PKCS#11

    Библиотека PKCS#11 предоставляет универсальный кроссплатформенный программный интерфейс к USB-токенам и смарт-картам.

    Функции делятся на:

    Функции доступа к устройству;

    Функции записи/чтения произвольных данных;

    Функции работы с ключами (поиск, создание, удаление, импорт, экспорт);

    Функции работы с сертификатами (поиск, импорт, экспорт);

    Функции ЭЦП;

    Функции хэширования;

    Функции шифрования;

    Функции вычисления имитовставки;

    Функции выработки ключа согласования (Диффи-Хeллман);

    Функции экспорта/импорта сессионного ключа;

    Источник: https://habrahabr.ru/company/aktiv-company/blog/241221/

    Reply
  93. knstanta

    Я со своим Рутокеном захожу спокойно из обработки в ЛК. Правда, если память не изменяет, единожды делал регистрацию сертификата в системе, с помощью КриптоАРМ.

    Reply
  94. M_W_W

    Сертификат вроде скопирован в хранилище… Он к ключам обратиться не может.

    А у Вас РуТокен именно «ЭЦП-2.0» — ? Просто, их там куча до этого была разных,

    у которых не было «криптографии на борту», просто ключи и сертификаты хранились…

    Как в еТокене…

    Попробую сегодня перепроверить, есть ли сертификат в хранилище «Личные», отпишусь.

    Reply
  95. knstanta

    Для ЕГАИСных дел используется Рутокен ЭЦП 2.0

    Reply
  96. knstanta

    А сертификат PKI не пробовали зарегистрировать в системе? Вроде через него находит сертификат ГОСТ….

    Reply
  97. M_W_W

    Попробовал. Сертификаты добавил в хранилище «Личные».

    В итоге, ГОСТ стал видиться в списке, но не работает:

    Произошла ошибка при подписи файла!

    Описание ошибки: : The signer’s certificate is not valid for signing.

    Произошла ошибка при подписи файла!

    Описание ошибки: : The signer’s certificate is not valid for signing.

    Зацикливается, и без остановки пишет эту ошибку.

    Дальше, если прервать по Esc, то выдает такое:

    WinHttp.SetRequestHeader(«Cookie»,Кука);

    {D:BASA_1CПРОВМАРОК2018ПРОВЕРКАМАРОКИЗЛК_ФСРАР-ПОДПИСЬ.ERT(1359)}: WinHttp.WinHttpRequest: Параметр задан неверно.

    Установка PKI ничего не меняет, его просто не видно в списке, и его наличие/отсутствие никак не влияет на работу ГОСТа.

    Но, это ДжаКарта, и с тестовым PKI. Сейчас, под рукой, нет РуТокена с «боевыми» сертификатами, вечером, после 10, смогу зайти к клиенту по удаленке и проверить с РуТокеном…

    Reply
  98. knstanta

    (98) В личку бросьте адрес почты, пришлю работающий у меня вариант

    Reply
  99. Kostt

    (99) Вопрос не много не по теме. Правильно я понял что больше нельзя отправлять возвраты чеков задним числом в случае двойных продаж? можно в лс, если есть возможность отправки)

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *