Фрилансеры предложат решение вашей задачи уже через несколько минут!

Публикация заказа на фриланс бирже не займет много времени.

9 месяцев назад
Игорь
48 лет, Россия
14 лет в сервисе
Был онлайн 2 месяца назад
28 отзывов(-1)
86% фрилансеров рекомендуют 89% заказов с выбором исполнителя
9 месяцев назад

Персональный заказ для Qulac

Задача для Алексея Панкова https://www.weblancer.net/users/Qulac, интеграция с ЧЗ
.
С 01.07.2020 в РФ вводится обязательная маркировка лекарств. Занимается этим https://честныйзнак.рф/ (далее ЧЗ). 
Нужно сделать виндовую службу, которая обеспечит обмен данными между расположенным в интернете сервером ЧЗ, и расположенным в локальной сети MS SQL Server.
.
Т.е. служба работает, раз в Х секунд проверяет наличие новых документов в определенных таблицах в SQL Server. Если я в SQL Server добавил в заданную таблицу xml документ, например "Накладная приема лекарств", то служба должна передать его на сервер ЧЗ. 
Раз в Y минут служба проверяет наличие новых документов на сервере ЧЗ, и при наличии, загружает их, и кладет в SQL Server.
При появлении в таблице в SQL Server новой записи "получить справочник Х", служба получает из ЧЗ справочник Х.
Визуализация, обработка и формирование документов не нужна, нужен транспортный уровень. Т.е. авторизация, УКЭП, сертификаты, получение данных, отправка данных, постраничное получение, интервалы между запросами, логирование, устойчивость к ошибкам, обработка ошибок, преобразование в/из base64, и т.п.
.
Язык разработки MS C#. В качестве базы данных используется MS SQL Server 2008R2 Express.
Совместимость - винды, кроме совсем уж древних, типа ХР, и мобильных. 
.
Требуемые навыки, и используемые инструменты:
• Бесплатная редакция MS C# (нужно будет поднять и настроить на предоставленном компе)
• MS SQL Server 2008 R2 Express (добавление объектов в существующую базу)
• Клиентская часть REST API сервисов, HTTP, HTTPS, SSL (RSA и ГОСТ), УКЭП
.
Есть доступ к Песочнице ЧЗ. Заказчик предоставляет компьютер, с установленной УКЭП, и работающим личным кабинетом ЧЗ, и установленной базой MS SQL. Тестирование производится на этом компьютере.
Когда Заказчик собирает проект из исходного кода у себя на компьютере, в случае проблем Исполнитель помогает Заказчику с ними разобраться.
.
Собственником кода является Заказчик.
Инструменты общения во время разработки - телеграмм и скайп.
В случае использования каких-либо внешних компонентов в C#, обязательно их согласование.
Требуется аккуратное оформление кода, наличие комментариев, при необходимости - пояснения что и как в коде работает.
Правила оформления кода - будут предоставлены отдельным документом, если в этом будет необходимость.
Потребуются пояснения и, возможно, демонстрация, по настройке сертификатов, ЭЦП, и прочей обвязки, нужной для работы службы.
По времени, я предполагаю, на работу нужно около недели рабочего времени. Это моя оценка объема работ, а не требование по срокам.
.
Насколько я понимаю описание https://честныйзнак.рф/upload/iblock/200/IS-_Markirovka_.-MDLP.-Protokol-obmena-interfeysnogo-urovnya.pdf, логика ЧЗ такая, что во всех многообразных функциях и обращениях к серверу ЧЗ, все значимые данные компонуются в json/xml, и передаются как одно целое. Это означает, что мы можем вынести формирование xml / json / get строки за пределы разрабатываемой службы. То есть Вам, как Разработчику, не надо будет отдельно программировать каждый из упомянутых в "Протоколе обмена" методов. Допустим, есть метод 7.5.1. "Получение объекта ФИАС по идентификатору адресного объекта". Служба берет из MS Sql: Адресную строку "Endpoint: GET <endpoint>/<version>/reestr/fias/addrobj/{addrobj}", тип метода get/post, json со всеми параметрами (подготовленный за пределами службы, в данном случае пустой). И посылает в ЧЗ, не зная, что это за метод, и не кодируя его параметры. Ответ тоже приходит в формате json, и разборку полученного json на отдельные параметры тоже выносим за пределы службы.
Отдельно стоят методы, в которых отсылаются xml документы, потому что <xml> надо преобразовать в base64 и подписать, и это преобразование желательно возложить на службу.
в "Протоколе обмена..." говорится, что документы большого объема пересылаются через WebDAV. В этом же документе в п. "5.5. Получение информации об ограничении размера небольших документов" говорится, что сейчас большим считается документ размером более 1 Мб. Накладные, и т.п. документы в формате xml занимают в разы меньше места, чем 1 Мб. Соответственно, исходим из предположения, что WebDAV НЕ нужен.
.
Перечисление что нужно от службы:
1. base64 кодировка xml, раскодировка, подписание xml УКЭП
2. Всякое разное логирование
3. Задержка между однотипными запросами, как это прописано в правилах ЧЗ. Т.е. например если в chz_out лежит 5 однотипных документов, которые надо отправить в ЧЗ, то отправлять их все одновременно, по правилам ЧЗ, нельзя, надо не чаще чем 1 документ в Х секунд.
4. Обработка ошибок отправки/получения данных, и повторные попытки отправки/получения тех же данных
5. Для обновления справочников по расписанию, проверке наличия в ЧЗ новых документов и т.п. - запуск заданной хранимки(ок) по расписанию. Сами хранимки пишет Заказчик
6. Возможность простейшего xor шифрования паролей из настроечного файла
7. Настроечный файл желателен ini, чтобы техподдержку не переучивать на xml
8. Черновая структура данных MS SQL готова. Нужен будет скрипт для создания структуры данных MS SQL, для возможности быстрой установки на новых компьютерах. Могу с этим помочь
9. Скорее всего, я что-нибудь забыл, список может пополняться, но я стараюсь не злобствовать. 
.
Этапы:
1. Коннект к ЧЗ, авторизация
2. Получение ответа на любой запрос по https. Ошибки сертификатов при этом не должны гаситься. Для простоты, можно не в виде службы, а в виде приложения
3. Вся обвязка. Общение с MS Sql, логирование, настройки, и т.п.
.
Оплата:
Первый этап 20%, второй и третий по 40%
Исполнитель показывает работу этапа на тестовой машине, если все ОК, то этап оплачивается. Исходный код передается после оплаты этапа, хотя может передаваться и до - на усмотрение Исполнителя. Этап считается завершенным после успешной сборки проекта на компьютере Заказчика, и устранения выявленных недостатков, т.е. после оплаты.
Оплата в рублях, со Сбера на Альфабанк. Безопасная сделка не используется.
Стоимость 30 тыс ($400).
.
Краткая инструкция по быстрому старту для изучения API, инструкция по подключению к тестовому стенду.
https://честныйзнак.рф/upload/iblock/25b/Kratkaya_instruktsiya_po_bystromu_startu_dlya_izucheniya_API.pdf
.
ИС "Маркировка". МДЛП. Протокол обмена интерфейсного уровня. Настройка сертификатов и т.п. описано в разделе 4.5
https://честныйзнак.рф/upload/iblock/200/IS-_Markirovka_.-MDLP.-Protokol-obmena-interfeysnogo-urovnya.pdf
.
Подборка документов от ЧЗ для разработчиков
https://честныйзнак.рф/business/projects/medicines/documents/for_developers/

Выбранный исполнитель
Алексей П.
47 лет, Россия
4 года в сервисе
Был онлайн 1 месяц назад
9 месяцев назад

$400

14 дней

ТОП-10 — Прикладное ПО
Отзыв заказчика
Без проблем справился с задачей, с которой не справился до него другой программист. Были проблемы со сроками, работа длилась в несколько раз дольше чем планировалось, но я Алексея и не торопил особо.
Отзыв фрилансера
Игорь - отличный, адекватный заказчик, Сотрудничеством с ним доволен, всем рекомендую.
Алексей П.
47 лет, Россия
4 года в сервисе
Был онлайн 1 месяц назад
9 месяцев назад
ТОП-10 — Прикладное ПО

Другие заказы в категории «Прикладное ПО»

Здесь заказчик и фрилансеры могут обсуждать заказ до начала его выполнения.
Фрилансеры могут участвовать в обсуждении только после подачи заявки.
Здесь заказчик будет контролировать выполнение заказа и общаться с исполнителем.
Доступ к этому разделу имеют только заказчик и выбранный исполнитель.
Все материалы этого раздела закрыты от поисковых систем.