Маркировка лекарственных препаратов. Часть вторая "Регистраторы выбытия"

02.11.20

Учетные задачи - Розничная торговля

Данная статья является второй статьей в цикле, посвященном маркировке лекарственных препаратов. В данной статья я постараюсь поделиться собственным опытом работы с РВ, описанием работы с АПИ (для разработчиков), интересные моменты выявленные в ходе эксплуатации и уделить часть статьи пользователям, а именно ошибочным ситуациям и что с ними делать.

Данная статья является второй статьей в цикле посвященном маркировке лекарственных препаратов. Ссылка на первую статью Маркировка лекарственных препаратов. Часть первая "Быстрая интеграция" //infostart.ru/1c/articles/1254468/ .

В данной статья я постараюсь поделиться собственным опытом работы с РВ, описанием работы с АПИ (для разработчиков), интересные моменты выявленные в ходе эксплуатации и уделить часть статьи пользователям, а именно ошибочным ситуациям и что с ними делать.

Регистратор выбытия (далее РВ) устройство для вывода лекарственных препаратов (далее ЛП) из оборота. На текущий момент нами используются две модели РВ – Штрих и АТОЛ. (Инструкции https://честныйзнак.рф/upload/iblock/2f6/Registrator_3.0.pdf, https://честныйзнак.рф/upload/iblock/c53/ATOL-RV-v.1.0.PDF ).

 

 

Настоятельно рекомендую регулярно проверять обновление документации на сайте Честного знака https://честныйзнак.рф/business/projects/medicines/documents/for_developers/ во избежание ошибок при разработке.

Порядок использования и основные моменты привожу по ссылке Честного Знака https://честныйзнак.рф/upload/iblock/33f/is_mp_opisanie_v2.2.0.pdf , чтобы не перегружать статью справочной информацией.

На текущий момент работа с РВ поддерживается библиотекой МДЛП (работа под веб не поддерживается) и если Вы не разработчик или Вам не актуально корректировать этот механизм можете пропустить часть статьи по разработке. Для всех интересующихся опишу свой опыт по данному вопросу.

 

Разработка

Взаимодействие с АПИ РВ я реализовывал еще до того как библиотека МДЛП начала поддержку РВ в своем составе, поэтому на текущий момент используются в коде те самописные методы что были реализованы ранее.

За работу с РВ отвечает документ Уведомление о выдаче в отделения. Перед отправкой документа выполняется несколько проверок во избежание ошибок обработки документа РВ.

Первая проверка это запакованность SGTIN. Если отправите не разупакованный SGTIN все равно по итогу получите ошибку. Данную проверку например можно выполнять методом АПИ МДЛП по запросу информации о SGTIN (https://честныйзнак.рф/upload/iblock/200/IS-_Markirovka_.-MDLP.-Protokol-obmena-interfeysnogo-urovnya-v3.11.pdf  ) с помощью 8.3.3. Метод поиска по общедоступному реестру КИЗ по списку значений Endpoint: POST <endpoint>/<version>/reestr/sgtin/public/sgtins-by-list.

В таком случае перед отправкой будет необходимо выполнять лишний запрос в МДЛП, чего я рекомендую избегать по возможности. Альтернативой может являться ведение регистра накопления в который пишутся все движения нужных документов (в нем же хранить запакованность). Либо же можно использовать типовой регистр сведений УпаковкиМДЛП, однако в силу специфичности этого регистра и некоторых ошибок записи в него в типовой библиотеке я стараюсь избегать строить решения с его использованием. 

Вторая проверка это заполнение Base64 в ТЧ упаковки. Так как в РВ отправляется SGTIN упакованный вместе с криптохвостом, то отправка документа где есть незаполненные значения приведет к ошибке.

Третья проверка это наличие и длина криптохвоста. 92 часть SGTIN должна присутствовать и иметь длину строго 44 символа (на текущий момент имеется небольшой процент ЛП на которые производители нанесли неверный криптохвост).

Четвертая проверка наличие этого SGTIN на данном Месте деятельности (далее МД). Позволяет избежать ошибок если например у организации есть 2 и более МД или выдача была уже произведена другим документом. Аналогично пункту 1 либо запросом, либо хранить в базе состояния упаковок, либо через УпаковкиМДЛП.

Пятая проверка относится к первичным упаковкам. МДЛП позволяет выдавать SGTIN частично. В АПИ за это отвечает ключ sold_part который представляет собой дробь, например 1/2, где 2 количество блистеров в упаковке, как на рисунке. Выдали из них в документе 1 блистер.

 

 

Осуществляется контроль не превышения этого количества по нескольким документам (остатки в регистре собираются по частям упаковок). Так как МДЛП не контролирует эти дробные части контроль остается на стороне 1С. Также нельзя передавать в РВ дроби типа 1/1, 5/5 и подобные, будет возвращена ошибка.

Любопытный факт – по одному SGTIN можно например выдать 5/10, 5/15, 14/15 последовательно разными документами и это не вернет ошибку. Упаковка по итогу спишется целиком если последняя отправка перекроет остаток в МДЛП на больше или равно.

Данные проверки уже позволят избежать множественных ошибок при отправке в РВ. Реализованы они на этапе Выполните проверку в документе. Пример кода проверок ниже. Вы можете адаптировать его под свои базы. Проверки количества и первичных упаковок не привожу, т.к. они работают только при наличии регистра накопления, отсутствующего в библиотеке МДЛП.

Для каждого стр из Объект.НомераУпаковок Цикл
	Если Объект.ПередачаСведенийЧерезСКЗКМ Тогда
		Если НЕ ЗначениеЗаполнено(стр.ШтрихкодBase64) Тогда
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "У КИЗ: " + стр.НомерКИЗ + " - не заполнен штрихкод BASE64";
			Сообщение.Поле = "НомераУпаковок[" + (стр.НомерСтроки - 1) + "].НомерКИЗ";
			Сообщение.КлючДанных = Объект.Ссылка;
			Сообщение.ПутьКДанным = "Объект"; 														
			Сообщение.Сообщить();
			ОшибкиПроверки = ОшибкиПроверки + 1;
			Продолжить;
		КонецЕсли;
		// Удаление лишних символов.
		стр.ШтрихкодBase64 = СтрЗаменить(стр.ШтрихкодBase64, Символы.ВК, "");
		стр.ШтрихкодBase64 = СтрЗаменить(стр.ШтрихкодBase64, Символы.ПС, "");
		//проверка Base64 на наличие и корректность криптохвоста
		ДвоичныеДанныеСтроки = Base64Значение(стр.ШтрихкодBase64);
		Если ДвоичныеДанныеСтроки <> Неопределено Тогда
			Штрихкод = ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанныеСтроки);
			СтруктураШтрихкода = ИнтеграцияМДЛПКлиентСервер.ДанныеШтрихкода(Штрихкод);						
			КриптохвостЗначение = "";
			Для каждого ЧастьШтрихкода Из СтруктураШтрихкода.ДанныеШтрихкода Цикл 							 							
				Если ЧастьШтрихкода.ИдентификаторПрименения = "92" Тогда 
					КриптохвостЗначение = ЧастьШтрихкода.Значение;
					Если НЕ СтрДлина(ЧастьШтрихкода.Значение) = 44 Тогда
						ЗаполненоBase64 = Ложь;
						Сообщение = Новый СообщениеПользователю;
						Сообщение.Текст = "КИЗ: " + стр.НомерКИЗ + " - имеет ошибочный криптохвост(92)";
						Сообщение.Поле = "НомераУпаковок[" + (стр.НомерСтроки - 1) + "].НомерКИЗ";
						Сообщение.КлючДанных = Объект.Ссылка;
						Сообщение.ПутьКДанным = "Объект"; 														
						Сообщение.Сообщить();
					КонецЕсли;
				КонецЕсли;  
			КонецЦикла;
			Если ЗначениеЗаполнено(КриптохвостЗначение) = Ложь Тогда
				Сообщение = Новый СообщениеПользователю;
				Сообщение.Текст = "У КИЗ: " + стр.НомерКИЗ + " - отсутствует криптохвост(92)";
				Сообщение.Поле = "НомераУпаковок[" + (стр.НомерСтроки - 1) + "].НомерКИЗ";
				Сообщение.КлючДанных = Объект.Ссылка;
				Сообщение.ПутьКДанным = "Объект"; 														
				Сообщение.Сообщить();
				ОшибкиПроверки = ОшибкиПроверки + 1;
			КонецЕсли;
		Иначе
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "У КИЗ: " + стр.НомерКИЗ + " - некорректный BASE64";
			Сообщение.Поле = "НомераУпаковок[" + (стр.НомерСтроки - 1) + "].НомерКИЗ";
			Сообщение.КлючДанных = Объект.Ссылка;
			Сообщение.ПутьКДанным = "Объект"; 														
			Сообщение.Сообщить();
			ОшибкиПроверки = ОшибкиПроверки + 1;
		КонецЕсли;
	КонецЕсли;
КонецЦикла;

Также перед отправкой в РВ требуется проверить не заблокирован ли РВ (данная проверка реализована на текущий момент в библиотеке МДЛП). Осуществляется методами «Запросить состояние РВ» (RequestStatusRv) и «Получить информацию об устройстве» (GetInformationRv) (документация https://честныйзнак.рф/upload/iblock/92b/TC-RV-v25_07.06.2019_Publichnaya-versiya.pdf ). Здесь нас интересует ключ «timeBlock» в котором хранится время до блокировки. Если отправить документ в заблокированный РВ, а после этого его разблокировать, то с большой долей вероятности документ так и останется висеть в очереди.

После выполнения проверок документ упаковывается в json и отправляется методом «Записать задание в очередь» (QueueUp).

Рекомендация – хранить эти идентификаторы запроса, многократно возникала ситуация когда один из документов вешал очередь в РВ и все остальные документы повисали в ожидании. Исправляется либо перезагрузками РВ, либо что более надежно очисткой очереди методом «Отменить задание» (Delete). Для очистки очереди (а также очистки задания после успешного запроса статуса) и необходимо хранить все ранее переданные идентификаторы.

В случае положения успешного ответа следом отправляется запрос статуса задания методом «Запросить статус задания» (RequestStatus), где rvRequestId это идентификатор запроса, который присваивается в 1С (GUID). При успешном запросе статуса будет получено значение ключа «mdlpRequestId» по которому этот документ в дальнейшем можно найти в ЛК и получить квитанцию(и).

Важное замечание – на один документ выдачи в 1С через РВ может быть создано несколько документов в ЛК. Документы могут быть разбиты по типам ошибок, если таковые имеются в квитанциях, либо на текущий момент разбиение по 50 SGTIN, либо по различным GTIN.

После получения mdlpRequestId рекомендуется очистить очередь от этого документа в РВ методом «Отменить задание» (Delete).

Следующий метод является не обязательным и вариативным для каждого типа РВ. Речь о методе «Получить отчёты о выбытии» (GetReports) который поддерживается РВ Штрих и на момент написания статьи не поддерживается РВ АТОЛ. Данный метод позволяет получить ответ от РВ по каждому заданию и по каждому SGTIN прошла ли проверка этих SGTIN в РВ будут ли они отправлены в МДЛП (к сожалению это не всегда так, возможна ситуация - для ЛП выпущенных до 01.07.2020 будет написано, что выдача подтверждена, а по факту они так и не уйдут в МДЛП).

Для получения квитанции последовательно реализованы несколько методов АПИ МДЛП (документация https://честныйзнак.рф/upload/iblock/200/IS-_Markirovka_.-MDLP.-Protokol-obmena-interfeysnogo-urovnya-v3.11.pdf ) .

Для начала используется метод 5.18. Прослеживание документов по отчёту из СУЗ в фильтр которого передается mdlp_request_id. Данный метод вернет список document_id которые требуется загрузить методом 5.14. Получение документа по идентификатору. После получения списка требуется методом 5.16. Получение квитанции по номеру исходящего документа получить link по которому скачивается квитанция.

Важный момент – так как один документ в 1С может разделиться на несколько в МДЛП, причем каждый из этих документов будет иметь свою квитанцию, то по части документов может уже пройти обработка, а по части нет. Соответственно на какой-то момент времени документ будет находиться в статусе частичного получения квитанции. Но может возникнуть ситуация когда РВ некоторые SGTINы не отправил и не отправит уже в МДЛП. В таком случае необходим анализ документов в ЛК и правка документа в 1С. Для упаковок которые не выдались потребуется либо повторная отправка новым документом через РВ, либо в обход РВ (по 531 схеме). В таком случае документ отправится напрямую и будет видна квитанция по нему после обработки.

Как я писал ранее работа под веб типовой библиотекой МДЛП не поддерживается, но это не значит, что данная задача не решаема. Небольшая доработка напильником и методы работы с РВ становятся доступны в браузере.

 

Ошибочные ситуации

При работе с РВ возможны ошибочные ситуации, как по причине ошибок в 1С, так и по причине проверок в РВ или МДЛП.

Часть проверок реализована библиотекой МДЛП, разбор ошибочных ответов от РВ так же должен разбираться корректно.  При этом, как я обозначал выше, могут быть проблемные ситуации не самые очевидные.

Самой часто встречающейся ошибкой на текущий момент является ошибочность КМ при создании его поставщиком. Зачастую это относится к КМ выпущенным до 01.07.2020, но изредка встречаются КМ выпущенные позже, но имеющие те же самые проблемы.

Что происходит в данной ситуации? Документ с такими КМ отправляется в РВ, тот возвращает успешный ответ постановки в очередь, после запроса статуса он тоже будет возвращен успешный. Для РВ ШТРИХ можно запросить статусы выбытия и там они тоже будут как «Выбытие подтверждено». Но в ЛК эти КМ так и не придут.

Что предпринять в данном случае?

Первое подождать от 1 часа до 24 пока документ не появится в ЛК (возможны задержки обработки очереди).

Второе проверить КМ в ЛК на дату их выпуска на вкладке Товары и если имеются выпущенные ранее 01.07.2020, которые так и не появились в ЛК после отправки в РВ, необходимо рассмотреть возможность создания нового документа выдачи с отправкой по схеме 531, минуя РВ.

Следующая ошибка относится исключительно к РВ АТОЛ. Отправка документа вызывает ошибку – срок действия пин-кода истек, требуется ввести заново. Тут все просто, как и в ситуации с заблокированным РВ. Просто вводится новый пин-код с перезагрузкой или восстанавливается связь со спутниками.

Также есть частая ошибка, одна из самых непонятных для пользователя на текущий момент возврат ошибки из МДЛП «Недопустимый переход в товаропроводящей цепочке». Под этой ошибкой может пониматься целое подмножество ошибок:

- КМ находился не в статусе «В обороте» на момент выдачи (выдан ранее, не принят);

- КМ выбывается не с того МД на котором находится (если МД у организации несколько);

- нарушена временная последовательность выдачи (ситуация когда приемка была позже чем выдача).

Тут надо остановиться подробнее с конкретным примером. Допустим, есть ситуация когда приемка зафиксирована в 12.00, но поставщик не учел рекомендации по указанию часового пояса и отправил без +03.00 в дате. РВ игнорирует передаваемое время в json и выставляет свое время фактическое. Таким образом любая выдача до 15.00 будет приводить к ошибке. Ситуация к счастью довольно редкая, но возможная.

В такой ситуации рекомендую обратить на время указанное в xml документа приемки, а именно передал ли поставщик часовой пояс в дате.

Возможно Вы наталкиваетесь на другие ошибки при использовании РВ, которые я забыл или не встречал. Напишите, пожалуйста, о них в комментариях и возможно решения по ним я смогу включить в статью для помощи другим пользователям.

Если Вас интересуют какие-то определенные темы напишите, пожалуйста, в комментариях. Возможно я включу их в последующие статьи. Также приветствуется здоровая критика статьи, которая поможет сделать ее лучше.

P.S. Довольно часто наталкиваюсь на обвинения что маркировка ухудшает работу, Честный Знак работает плохо и т.д. Тут выражу исключительно собственное мнение по данной ситуации. Идея маркировки ЛП исходит из уменьшения контрафактных ЛП и прослеживаемости каждого этапа жизненного цикла ЛП, что в целом приведет к улучшению медицины. За маркировку требуют денег – когда Вы начнете работать бесплатно можем вернуться к этому вопросу. РВ организациям выдают бесплатно. Нестабильная работа Честного Знака – я занимаюсь маркировкой ЛП уже 3й год и хорошо видел развитие с точки зрения разработчика. Служба поддержки всегда реагировала на мои заявки адекватно, некоторые пожелания были действительно учтены в новых релизах. Документация для разработчиков очень удобная и детальная. Я брал ее за образец при написании собственных АПИ например. Нестабильная работа и ошибки – да имеют место, но как разработчик я прекрасно понимаю какой объем работы необходимо проделывать чтобы система работала стабильно по всей нашей весьма немаленькой стране.

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

P.P.S. Хочу поблагодарить свою проектную команду, благодаря которой мы успешно развиваемся. Спасибо. Эта статья и ваша заслуга.

1С:МДЛП Честный знак Маркировка лекарственных препаратов Регистратор выбытия Интеграция Ошибка Разработка Товаропроводящей цепочке криптохвост схема Место деятельности Код маркировки

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

6000 руб.

27.02.2017    799623    4928    9557    

2863

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Пользователь Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом. ВНИМАНИЕ! 09.01.25 г. планируется повышение цен на 20%!

28500 руб.

21.04.2017    96876    133    42    

215

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    171037    958    364    

401

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Программист Бухгалтер Пользователь Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение конфигурации для УТ 11.5, КА 2.5 ,ERP 2.5 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

5000 руб.

27.08.2018    122995    1039    586    

874

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима.

5880 руб.

25.05.2015    336328    1967    3064    

1033

Управление взаимоотношениями с клиентами (CRM) Оптовая торговля Розничная торговля Пользователь Платформа 1С v8.3 Оперативный учет Управляемые формы 1С:Управление торговлей 10 1С:Розница 2 Россия Управленческий учет Платные (руб)

Подсистема призвана упростить и автоматизировать процесс расчета и начисления бонусов покупателей. Бонусная система работает с конфигурациями 1С:УТ 10.3, 1С:Розница. Механизм реализован в начале 2013г. и работает до сих пор с постоянными совершенствованиями.

30000 руб.

02.11.2015    112570    101    88    

185
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1752 03.11.20 09:54 Сейчас в теме
цитирую из первоисточника
1.Для чего используется регистратор выбытия?Регистратор выбытия (далее –РВ) предназначен для отправки в национальную систему маркировкии прослеживаниятоваров (далее –ИСМП, ИС МДЛП является одной из частей ИСМП) информации о выводе лекарственных препаратов (далее –ЛП) из оборота при отпуске лекарств по льготным рецептам со 100% льготой (без оплаты получателем) и при отпуске ЛП в медицинских организациях для оказания медицинской помощи.РВНЕпредназначен для отправки в ИСМП сведений о приемке товара, операциямвнутреннего перемещения и другим логистическим операциям. Также РВ НЕ предназначен для отправки в ИСМП сведений по операциям вывода из оборота ЛП, если они не заканчиваются применением ЛП (передача на уничтожение, списание в ходе инвентаризации и т.п.)и по продаже ЛП с частичной льготой (в этом случае должна использоваться контрольно-кассовая техника –ККТ).РВ можетиспользоваться для проверки информации по упаковкам ЛП, имеющейся в ИС МДЛП и для автоматизации работы с маркированными ЛП в информационной системе медорганизацииили аптеки. Такие функции предусмотрены в РВ, но их использование необязательно.Важно понимать, что выполнить требования законодательствапо правилам оборота ЛП в отношении маркированных ЛП невозможнобез отправки сведений о выводе из оборота в ИСМП (ИС МДЛП)•Для 7ВЗН –начиная с 01.10.2019•Для прочих ЛП –начиная с 01.01.2020Для этого существует 2 способа:
•для вывода из оборота при продаже и при оказании медицинской помощи это ККТ или РВ (там, где нет ККТ), •для всех прочих операций –прямое обращение к ИС МДЛП с использованием электронной подписи участника оборота (для этого требуется компьютер с подключением к сети Интернет и установленным на нем средством криптографической защиты информации).

ссылка на первоисточник также указана в статье https://честныйзнак.рф/upload/iblock/33f/is_mp_opisanie_v2.2.0.pdf
2. IssakN 45 03.11.20 10:07 Сейчас в теме
(1)Да спасибо. Думаю стоит обратить внимание читателей на эти пункты. Мне просто не хотелось перегружать статью общей информацией.
3. muskul 04.11.20 11:04 Сейчас в теме
А зачем туда что то отправлять? что бы не сканировать с самого РВ?
4. IssakN 45 05.11.20 09:07 Сейчас в теме
(3)Если я Вас правильно понял, отправлять через АПИ в РВ? Для автоматизации и удобства отправки при работе из 1С. В целом можно работать напрямую с РВ если объемы небольшие. Аналогично и с МДЛП. Можно сформировать xml вручную в блокноте и загрузить в ЛК. Если это единичный случай можно использовать такой способ.
В АПИ РВ кстати есть возможность отправить документ шаблон, получив который можно в него только досканировать упаковки. Я создавал механизм выгрузки шаблонов и загрузки заполненных документов обратно в 1с. Но данный механизм так никому и не пригодился, и в статью его добавлять не стал.
5. Tron77 16.11.20 13:26 Сейчас в теме
Здравствуйте.
Подскажите пожалуйста.
Такая ситуация:
Аптека больницы.
По ошибке выдали для лечения больных несколько коробок маркированного препарата, не пропустив их при этом через РВ для выбытия.
Используем 1С Больничную аптеку.
Как можно их вывести из оборота.
Самих коробок уже нет. Но есть GTINы.
6. IssakN 45 16.11.20 13:32 Сейчас в теме
(5)Добрый день. Для выдачи через РВ Вам обязательно нужен весь код вместе с криптохвостом. В противном случае РВ их не примет. Но также существует схема 531 - выдаче ЛП в отделение без использования РВ. Данная схема доступна при отключении галочки использовать РВ (в больничной аптеке она вроде также называется). Там достаточно указать SGTINы без криптохвоста. Думаю так как теперь режим работы МДЛП уведомительный Вас вряд ли накажут за использование схемы 531 вместо 10531(выдаче через РВ). Другой вариант этот вывод из оборота (отдельный документ), но думаю в Вашем случае это лишнее.
7. Tron77 16.11.20 13:50 Сейчас в теме
(6)
Уточнял в честном знаке сейчас.
Сказали уведомительный режим не распространяется на схему 531.
И выбытие без РВ невозможно.
Теперь вот думаю что делать.
8. IssakN 45 16.11.20 14:22 Сейчас в теме
(7)Думаю тогда необходимо договариваться с ЧЗ на эту тему, объясняя что физической возможности отсканировать упаковки нет. Это вполне решаемый вопрос.
9. Tron77 16.11.20 15:59 Сейчас в теме
(8)
Хммм.
Второй раз позвонил, сказал так мол и так, нету упаковок, выдали в суматохе коронавируса.
Ответили, "Ну тогда ладно, закрывайте выбытие через 531-ю схему".
14. starvg 08.12.20 11:16 Сейчас в теме
(6) Мне в поддержке категорично сообщили, что использование этих схем приведет к штрафам при рабочем РВ.
10. inikita2004 23.11.20 13:19 Сейчас в теме
Как определить, что РВ сбоит временами?
11. IssakN 45 23.11.20 14:00 Сейчас в теме
(10)Смотря что Вы подразумеваете под сбоит временами?РВ вообще не работает, РВ не отправляет некоторые документы, РВ не отправляет части некоторых документов?
12. user1503721 04.12.20 19:45 Сейчас в теме
Здравствуйте. Больничная аптека большие объемы выдачи растворов, сканировать по 5000 флаконов в день очень долго и тяжело физически. Выбытие с использованием группового кода упаковки (это уже было бы 500 кодов, вместо 5000) на Честном знаке ответили нет такой возможности. Как можно выдать в отделения (вывести из оборота через МДЛП) большое количество SGTIN и при этом не сканировать ТСД каждый флакон?!
15. IssakN 45 08.12.20 14:37 Сейчас в теме
(12)Ну тут ситуация технически проста, а вот пользовательски сложна.
Вот у Вас 500 ТУ и в них 5000 КМ.
Вопрос номер один как Вы получаете - приход ТУ, дальнейшая разагрегация и выдача через РВ?
Примечание: выдача ТУ через РВ на текущий момент невозможна(тут так МДЛП решает).
Вопрос номер два - сканируете ли Вы в приемке КМ или исключительно ТУ.

Если Вас интересует отсутствие сканирования упаковок вообще у нас есть уже готовое решение, но тут необходимо обсуждать в личной переписке.
17. user1503721 08.12.20 16:03 Сейчас в теме
(15) Приходуем по ТУ и потом разагрегируем упаковки. И выдаём через РВ. При приёмке сканирует только ТУ.
(15)
18. IssakN 45 08.12.20 17:03 Сейчас в теме
(17)Главный момент который необходим для РВ это BASE64 КМ с криптохвостом. Чтобы не сканировать упаковки в выдаче нужно где то взять этот Base64 - вот тут как раз таки могут быть разные варианты. Но самый главный момент кто то когда то должен хотя бы раз отсканировать этот КМ. Могу предложить решение как потом вытягивать в Уведомление о выдаче эти КМ, но тут необходимо условие - BASE64 уже есть в системе.
60. user1771306 12.04.22 14:51 Сейчас в теме
(15)Добрый день. Та же проблема, что у user1503721. При приемке мы не сканируем, а ставим все в наличии в ручную, ибо сканировать по 5000 флаконов одного только физ.р-ра очень долго. Далее расформировываем ТУ, если они есть. Все коды флаконов есть. Сейчас вручную копируем из прихода каждый код и вставляем в выдачу на отделение. При этом мы работаем не самим РВКМ, а сканером обычным как в рознице(у нас он настроен как стационарный, мы снимаем галочку "использовать РВ") Это занимает очень много времени и у нас все равно висят флаконы, т.к. мы не успеваем за день, в который выдали, вывести все упаковки. Тот же вопрос: как можно выдать в отделения большое количество кодов и при этом не сканировать каждый флакон?
69. mart-sha 296 05.05.24 16:55 Сейчас в теме
(60) Возникла такая идея по списанию лекарств без сканирования. Если мы по коду SGTIN который 24 знака создадим QR код на экране и его сканируем с экрана "Регистратором выбытия".
Основа тут https://infostart.ru/1c/articles/1346208/ Задал вопрос автору.
67. mart-sha 296 22.04.24 13:26 Сейчас в теме
(15) ОЧЕНЬ НУЖНО С ВАМИ СВЯЗАТЬСЯ ! ДАЙТЕ КООРДИНАТЫ !
13. starvg 08.12.20 11:05 Сейчас в теме
Добрый день. Может вы подскажете, в чем у меня оши, раз подключали оба РВ.
Пытаюсь сделать подключение из 1С 7.7 к РВ.
На v1.0 нормально отрабатывают команды состояния РВ, отправляет документ, только не проходит команда requests. А v3.0 ни в какую не хочет общаться. Дает ошибку на команде Send(). WinHttp.WinHttpRequest: Не удается установить соединение с сервером
Через РВ выводить ЛП очень не удобно: приходится нажимать кучу ненужных кнопок.

	URL = "https://"+СокрЛП(Фирма.IP_РВ)+":"+СокрЛП(Фирма.Порт_РВ)+"/v1/state";
	WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
	
	WinHttp.Open("GET", URL, 0);
	// ************************** Начало блока по отключению защищенного соединения **********
	Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl");
	Скрипт.language="javascript";
	Скрипт.AddObject("WinHttp",WinHttp);
	Скрипт.Eval("WinHttp.Option(2)=65001"); 
	Скрипт.Eval("WinHttp.Option(4)=13056");
	Скрипт.Eval("WinHttp.Option(6)=true");
	Скрипт.Eval("WinHttp.Option(12)=true");
	// ************************** Конец блока по отключению защищенного соединения **********	

	WinHttp.setRequestHeader("Content-type", "application/json; charset=UTF-8");
	WinHttp.setRequestHeader("Authorization", глКодироватьBase64("operator:123456"));
	WinHttp.Send();
	Если WinHttp.Status = 200 Тогда
		//Сообщить(WinHttp.ResponseText);
	Иначе
		Сообщить("HTTP " + WinHttp.Status + " " + WinHttp.StatusText);
		Возврат ;
	КонецЕсли;
Показать
16. IssakN 45 08.12.20 14:44 Сейчас в теме
(13)Добрый день. Постараюсь помочь. Прикрутить РВ на 7ке очень интересно. Если получится пишите свою статью.
Как я понимаю Вы пытаетесь запросить статус документа который уже отправлен в РВ и тут падает по ошибке на этапе соединения с РВ?
19. starvg 09.12.20 05:14 Сейчас в теме
(16) Да так и есть. Я ему отправляю rvRequestId и ни чего не получаю в ответ.
Я уже думаю, что можно и без этого обойтись. Можно проверить двумя способами результат:
- запросить документы напрямую из МДЛП (не пробовал, я пишу для лечебного учреждения, а там пока немного такого товара), проверить наличие самого документа;
- пока сделал проверку статуса товара. отправленный документ можно проверить в личном документе, статус товара меняется через 15-30 минут.
20. IssakN 45 09.12.20 09:30 Сейчас в теме
(19)Смотрите как это реализовано:
- отправить документ в РВ, присвоив это запросу Новый УИД(я его храню в регистре сведений, так как бывают ситуации что документ отправляется несколько раз);
- взять метод запроса статуса и подставить этот УИД в него (пример ниже);
- отправить его и обработать ответ от РВ;
	
//здесь получаю свой РВ - хранится в отдельном справочнике со всеми настройками и указывается в документе
//Получаю Номер и тот самый УИД что был при отправке
РегистраторВыбытияДок = АТМ_МетодыРВСервер.ПолучитьЗначениеРеквизитаОбъекта(Документ,"РегистраторВыбытия",Истина);
	Номер 	= АТМ_МетодыРВСервер.ПолучитьЗначениеРеквизитаОбъекта(Документ,"НомерДокумента",Истина);
	УИДдок 	= АТМ_МетодыРВСервер.ПолучитьУИДДокумента(Документ); 	
	Метод 	= "/v1/requests/" + УИДдок;

			СтруктураПодключения = СформироватьСоединениеИЗапрос("Get",РегистраторВыбытияДок,Номер,УИДдок,Метод);
						
			HTTPGET	= СтруктураПодключения.Соединение;
			Запрос 	= СтруктураПодключения.Запрос;
			
			Каталог = КаталогВременныхФайлов();
			ИмяФайла = Строка(Новый УникальныйИдентификатор);
			ФайлОтвет = Каталог + ИмяФайла;

                        //в Ответ хранится уже нужная информация которую можно обработать
			Попытка
				Ответ = HTTPGET.Получить(Запрос, ФайлОтвет);			
			Исключение
				Инфо = "Не удалось отправить запрос, проверьте регистратор выбытия";;
				Сообщить(Инфо);
				Прервать;
			КонецПопытки;

Показать


В функции СформироватьСоединениеИЗапрос я формирую структуру для запроса в РВ
//здесь укажите свои настройки, у меня они хранятся в справочнике
HTTP = Новый HTTPСоединение(НастройкиПодключения.Айпи,НастройкиПодключения.Порт,,,,,Новый ЗащищенноеСоединениеOpenSSL);
	
	Запрос = Новый HTTPЗапрос(Метод);
	Если ТипЗапроса = "Post" Тогда
		Запрос.Заголовки.Вставить("Content-Type", "application/json"); 	
	КонецЕсли;
	Если ТипЗапроса = "Get" Тогда
		Запрос.Заголовки.Вставить("Accept", "application/json");
	КонецЕсли;
//здесь стандартная авторизация Basic
	Если НастройкиПодключения.Свойство("СтрокаАвторизации") Тогда 				
		Запрос.Заголовки.Вставить("Authorization", НастройкиПодключения.СтрокаАвторизации);
	КонецЕсли; 			

	СтруктураВозврата.Вставить("Соединение",HTTP);
	СтруктураВозврата.Вставить("Запрос",Запрос);
	СтруктураВозврата.Вставить("Ошибка",Ложь);
	Возврат СтруктураВозврата;

Показать

Попробуйте такой пример.
21. starvg 09.12.20 11:00 Сейчас в теме
Спасибо, с v1.0 все прокатило. я просто с запроса POST скопировал "Content-Type" вместо "Accept"
и метод /v1/requests/ выполняется.

Теперь осталось разобраться с v3.0
Такое ощущение, что он не принимает пароль и пользователя.
Порт и IP я храню в справочнике организаций: порт 8080, IP пингуется.
Логин и пароль какие только не пробовал:
эти мне сказали использовать в поддержке ЧЗ
user1:Pas$w0rd
user2:qwE123xx
эти я уже взял с форума и не только
operator:123456
administrator:654321
проверял результат кодировки на сайтах, строка получается такая же.
результат один HTTP 404 Not Found
22. starvg 09.12.20 11:02 Сейчас в теме
Можете выложить строку в кодировке base64 с логином и паролем для сравнения?
23. IssakN 45 09.12.20 13:27 Сейчас в теме
(22)В РВ КМ используется два пользователя:
− Оператор - логин: user1, пароль: Pas$w0rd; − Администратор - логин: user2, пароль: qwE123xx.
Пароли могут быть изменены через меню РВ КМ.
Какой у Вас РВ - Штрих или АТОЛ?
И если ошибка авторизации это будет не 404 ошибка.
Скорее всего тут не находит саму УРЛ.
Вам еще может помочь обработка которая на самом РВ находится - подключите его в настройках через юсб, скачайте ее. Там можно будет настроить и логины и пароли и запросить все методы доступные в АПИ.
Пример кодировки:
user2 и qwE123xx
basic dXNlcjI6cXdFMTIzeHg=
Вот как в коде:
                        ЛогинПароль = "" + СтруктураПодключения.Логин + ":" + СтруктураПодключения.Пароль;
			СтрокаДвоичная = ПолучитьДвоичныеДанныеИзСтроки(ЛогинПароль,КодировкаТекста.UTF8);
			СтрокаКодированная = Base64Строка(СтрокаДвоичная);
			СтрокаАвторизации = "Basic " + СтрокаКодированная;
			СтруктураПодключения.Вставить("СтрокаАвторизации", СтрокаАвторизации);
			Ошибка = Ложь;
24. starvg 11.12.20 10:49 Сейчас в теме
У меня не соединяется с РВ v3.0 от Штриха.
Я не обратил внимания, просто скопировал, там на команду GET была строка
WinHttp.setRequestHeader("Content-type", "application/json; charset=UTF-8");
РВ 1.0 проглатывал ))
поменял на
WinHttp.setRequestHeader("Accept", "application/json");
сразу получаю ответ:
WinHttp.WinHttpRequest: Не удается установить соединение с сервером

Обработку TestRv я запускал - там все работает.
25. IssakN 45 11.12.20 13:09 Сейчас в теме
(24)Странно в чем там может быть проблема - если вообще без заголовков отправлять какой будет результат?
26. starvg 11.12.20 13:39 Сейчас в теме
то же самое.
попробую в понедельник взять другой РВ (у меня их пара)
27. IssakN 45 14.12.20 09:14 Сейчас в теме
(26)Какая версия прошивки РВ?У нас 0.5.46 сейчас. Может нужно обновить?Подключен по вайфаю.
35. starvg 17.02.21 06:34 Сейчас в теме
(27) Дошли руки до РВ. Сделал я другой вариант и все заработало.

WinHttp = СоздатьОбъект("Msxml2.XMLHTTP.6.0");
URL = "https://"+СокрЛП(Фирма.IP_РВ)+":"+СокрЛП(Фирма.Порт_РВ)+"/v1/deviceInfo";
WinHttp = СоздатьXMLHttpRequest(URL);
WinHttp.Open("GET", URL, 0);
WinHttp.SetRequestHeader("Accept", "application/json");
WinHttp.SetRequestHeader("Authorization", "Basic "+глКодироватьBase64("user1:Pas$w0rd"));
WinHttp.Send();
28. starvg 15.12.20 09:40 Сейчас в теме
Подключен кабелем. Прошивка последняя.

Еще вопрос можно:
Я находил, но что-то сейчас не могу вспомнить, каким методдом можно информацию о производителе получить?
29. пользователь 15.12.20 10:23
Сообщение было скрыто модератором.
...
30. starvg 15.12.20 17:40 Сейчас в теме
Хотел Вам задать вопрос не относящийся к данной теме, личка закрыта, написал свой п/я - сообщения не появились. Вы занимались интеграцией товаров легкой промышленности в ЧЗ?
31. IssakN 45 16.12.20 09:12 Сейчас в теме
(30)Странно вроде все открыто. Нет к сожалению не занимался.
32. user1523842 15.01.21 10:01 Сейчас в теме
Здравствуйте!Через РВ выбываем препарат. Регистратор выбытия выдает ошибку:проверка формата не пройдена:Не удалось определить тип шифрования марки. Помогите разобраться, что это означает?
33. big9val 29.01.21 08:39 Сейчас в теме
Доброго дня! Регистратор при сканировании отправляет данные в ЧЗ. Чуть позже в товароучетной системе на базе 1с создается уведомление о выбытии. Это уведомление списывает товар в количестве выбытого. Создается ли у вас при этом документ расхода, который можно выгрузить в 1с:Бухгалтерия?
34. IssakN 45 29.01.21 15:10 Сейчас в теме
(33)Уведомление о выдаче уже может являться документом который можно выгрузить в 1с:Бухгалтерию. Тут вопрос обмена между базами. У нас на текущий момент обмены с 1с:Бухгалтерией не реализованы.
55. Erel 27.08.21 14:01 Сейчас в теме
(33) Здравствуйте, меня тоже этот момент интересовал. Но я заметил что нет, не создаются. Мы пока снимаем остатки документом реализации товаров, но теперь программа просит создать уведомление продажи (это логично). Но тут проблема, нельзя связать документ реализации с уведомлением отпуска по рецепту. Короче бардак
56. IssakN 45 30.08.21 14:29 Сейчас в теме
(55)Я несколько не понимаю как у Вас не создается уведомление, если вы отправили в РВ коды маркировки? Или вы выбываете напрямую из РВ, а потом пытаетесь эти коды загрузить? Если это так, то необходимо соответствующим метод запросить такие документы из РВ в базу, создать из них уведомления и эти уведомления связать со складскими документами. Опять же если я правильно Вас понял. Если нет объясните, пожалуйста, поподробнее.
36. starvg 18.02.21 07:14 Сейчас в теме
Выложил я чуть выше код для семерки, с которым оба РВ заработали.
Только постоянно требуют подтверждения сертификата. С этим некогда возиться.
Проще один раз нажать кнопку "да" мышкой, чем сканировать и выводить ЛП с помощью РВ. ))


А почему, после отправки данных в РВ, проверку выбытия не проверять методом 8.3.3.?
Если status - "in_medical_use" у всех позиций, то можно дальше ведь не проверять.
Если нет, тогда уже заморачиваться с поиском квитанций и ошибок.
37. IssakN 45 18.02.21 10:15 Сейчас в теме
(36)Если я не ошибаюсь то это проверка самого РВ, а не МДЛП. Хотя возможны Вы правы и надо пересмотреть алгоритм в сторону упрощения. Я думаю Вам стоит описать работу в 7ке с РВ в своей статье, наверняка есть организации которых это заинтересует. Или если не возражаете могу добавить этот пункт по работе РВ в 7й версии в эту статью от вашего имени. Возможно это поможет коллегам и пользователям.
38. starvg 18.02.21 11:10 Сейчас в теме
(37) Сам РВ, вроде, проверяет только отправку документа. А квитанцию, как у вас в статье описано, нужно получать поиском документов (их перебором).
Я у себя сделал контроль приемки и вывода товара - запросом из общего КИЗ (8.3.3.).
Если после отправки документов по схеме приемки товара (601,602,702) получаю статус "в обороте" и МД организации, то товар нормально перемещен. Если нет - нужно разбираться и смотреть квитанции.
При выводе через РВ создается куча документов по каждому виду ЛП. Чтобы их не искать и не анализировать,
я тем же запросом проверяю статус sgtin`ов в КиЗ (8.3.3.). Как правило, если нет тормозов в МДЛП, то у них в течение 10 минут статус становится "выведен из оборота". Если ЛП не выводится из оборота, то в 90% случаев виноват РВ, что не отправляет документ. Были такие проблемы - документ в МДЛП не появлялся. Тогда только удаление документа и отправка по новой.

Я статью писать не буду - можете выложить код.
39. IssakN 45 18.02.21 15:54 Сейчас в теме
(38)Я понял Вашу мысль. Возможно стоит попробовать. Можете написать чуть более развернуто код я помещу его в статью?
40. Tron77 27.05.21 09:46 Сейчас в теме
Довольно часто стали появляться следующие ошибки:

Отправляем Уведомление о выдаче для оказания медпомощи - все нормально.
В Кабинете ЧЗ все приходит, принято успешно.
В 1С в самом документе нажатие кнопки "Получите статус задания от РВ" ни к чему не приводит - Изменено объектов 0.

При выполнении общего обмена вылетает ошибка:
Остаток упаковки [КИЗ] меньше требуемого. Возможно, в информационной базе, упаковка (или ее часть) была выведена из оборота ранее.

При этом отправляли полную упаковку, не дробленую и в очереди обработки входящих документов МДЛП висят квитанции об успешном приеме уведомлений с этими КИЗ-ами

РВ - Штрих-М, подключен в сеть.
41. IssakN 45 27.05.21 13:36 Сейчас в теме
(40)
1. Могу посоветовать проверить регистр сведений УпаковкиМДЛП (установить фильтры по нужной упаковке и посмотреть ее движения по базе) - это по частичной отправке. Обратите внимание что при полном обмене может быть ошибка и на другой документ, так как происходит обмен всеми документами.
2. Посмотреть по идентификатору МДЛП что в документе(xml в протоколе обмена) и что в МДЛП (идентификатор отчета СУЗ - по нему ищутся квитанции к документу, его должен вернуть РВ).
3. Проверить настройки периодов загрузки в 1с (в карточке организации и в константах ГраницаЗагрузкиВходящихДокументовМДЛП и ГраницаЗагрузкиИсходящихДокументовМДЛП).

Вряд ли поможет в конкретно этой ситуации, но рекомендую:
- запросить обновления РВ и перезагрузить его.
- обновить библиотеку МДЛП до свежей версии (были изменения по обменам,1.2.4.3 актуальная на 27.05.2021)
42. Tron77 27.05.21 22:07 Сейчас в теме
(41)
Я не указал сразу. Мы в 1С Медицина. Больничная аптека ведем учет. Потому возможн оен в той теме вопрос задаю(
Библиотека обновлена вместе в с конфигурацией.
Самое странное что часть КИЗов-уведомлений проходит без проблем. Вот например сегодня большая часть прошла - 3 зависли.
Тоесть квитанции на них пришли, висят в очереди обработки входящих документов МДЛП, но не сопоставляются с имеющимися документами. Сообщение с ошибкой не нехватке количества.

В карточке организации настройку периодов выгрузки не нашел, в константах обе границы - пустые

Странно то, что часть проходит без проблем документов, лишь некоторые подвисают. И ответы на них - квитанции приходят, но не стыкуются.
43. IssakN 45 28.05.21 09:18 Сейчас в теме
(42)Тут важный момент есть, вероятно у вас в этой ситуации некоторые коды повисают в РВ. Там был добавлен новый тег на проверку КИЗ (у нас это дописано по коду, в инструкции к РВ этого пока нет). Например, документ на 10 КИЗ, отправили в РВ, он их обработал и 2 КИЗ пометил ошибочными. В МДЛП у Вас появиться только 8 КИЗ, а 2х других Вы никогда не дождетесь. Это можно проверить скачав отправленный 10531 документ в МДЛП (чтобы посмотреть сколько КИЗ в отправленном документе). Если это Ваша ситуация то все просто - у Вас скорее всего бракованные упаковки (либо списание, либо возврат, либо вывод по 531 схеме если разрешат).
44. Tron77 28.05.21 21:09 Сейчас в теме
(43)
В том то и проблема - в МДЛП все отлично - приходят все документы, все квитанции образуются со статусом:

<operation_comment>Успешное завершение операции</operation_comment>

Эти квитанции потом загружаются в 1С и оказываются в Очереди обработки входящих документов МДЛП, но вот дальше...

Есть Уведомление о выбытии с КИЗ, есть квитанция об успешной обработке в ЧЗ, но видимо при попытке их совместить (провести уведомление в статус "Исполнено") и вылетает эта ошибка в 1С, что КИЗ якобы уже частично или полностью выведен из оборота.

Сегодня проверял - РВ Штрих-М обновлен до последней версии ПО - перезагрузил его.

Нигде в 1С этот КИЗ ранее не выбывал (да и мало у нас документов в день), "Доли упаковок МДЛП (Регистры сведений)" пусто.
в "Реестр выбытия упаковок МДЛП (Регистры сведений)" Данная упаковка в единственном экземпляре с "Доля упаковки" = 1,00000"

Четкое ощущение, что при проверке на остатки долей он неправильно считает количество.

Вчера вечер ковырялся в конфигураторе, пытаясь понять, где он ошибку находит, но не осилил. УФ для меня темный лес.

Нашел только, что ошибка вылетает вот в этом куске модуля:

В общем модуле "ИндеграцияМДЛП"

|	ВЫБОР
	|		КОГДА ЕСТЬNULL(ОстаткиДолейУпаковок.ДоляУпаковки, 1) + ЕСТЬNULL(ОстаткиДолейУпаковокВРеестреВыбытия.ДоляУпаковки, 1) - 1 < НомераУпаковок.ДоляУпаковки
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК ЕстьОшибкаОтсутствуетДостаточноеКоличество


Вот это вот ЕстьОшибкаОтсутствуетДостаточноеКоличество и выводит ошибку.

Так что в общем со стороны ЧЗ и РВ проблем нет - все регистрируется и выводится.
Косяк в момент изменения статума Уведомления в 1С на "Исполнено"

Приходится в 1С вручную эти Уведомления переводить через регистры в статус "Исполнено" и через "Реестр выбытия" упаковки переводить в статус "выбыли"

Писал недавно в техподдержку прислали ответ "Возможно вы пытаетесь вывести упаковку из оборота повторно"
45. IssakN 45 31.05.21 11:28 Сейчас в теме
(44)Тут к сожалению без отладчика я Вам уже не смогу помочь. Надо смотреть результаты запроса и входные данные и данные регистра. Пройтись запросом по наличию этой упаковки в других документах 1С.
46. Tron77 31.05.21 11:55 Сейчас в теме
(45)
Спасибо. Буду ковыряться дальше.
Даже базу не переслать посмотреть ибо без РВ и сертификатов обмен не совершить.
Может техподдержка чем все же поможет, хотя сомневаюсь.
47. Tron77 31.05.21 14:32 Сейчас в теме
(45)
Поковырявшись с отладчиком выяснил, при обработке глючных упаковок идет сравнение с Уведомлением с другим номером.

Тоесть допустим в базе номер уведомления (документ резерва )1440 а сравнение по КИЗу идет с уведомлением номер 1486 (последний созданный в базе при этом имеет нмоер 1485).
При этом дата и время совпадают полностью.
49. IssakN 45 31.05.21 17:10 Сейчас в теме
50. Tron77 08.06.21 18:59 Сейчас в теме
(49)
В продолжении темы - общение с техподдержкой пока ничего не дало. Кроме просьб записать видео и повторения вопросов.

Нашел такой вот костыль - может у кого повторится ситуация:

Если перед обменом - Запросом статуса задания от РВ запросить через обработку "Реестр выбытия" информацию об упаковках, а потом уже запрашивать статус задания от РВ - Нажимать кнопку Выполнить обмен - проблема не появляется. тестирую пока третий день - пока еще ни разу не было - хотя раньше каждый день два-три уведомления застревали.

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

В итоге кнопка "Получите статус задания от РВ"ничего не дает больше - и в ЖР никаких записей при ее нажатии не появляется. В протоколе обмена с МДЛП только одна строчка висит активная "Регистрация выдачи ЛП для оказания медицинской помощи в СКЗКМ, Версия 1" и с пиктограммой "Часы", а не "Зеленая стрелка". Тоесть нет сообщения от РВ об удачной отправке. Но и повторно его не подгрузить ибо система считает, что оно подгружено. А поскольку квитанции об отправке нет - и квитанция о приеме не подвязывается и висит в очереди обработки выдавая ошибку - "Остаток упаковки КИЗ-упаковки меньше требуемого. Возможно, в информационной базе, упаковка (или ее часть) была выведена из оборота ранее."

Почему так происходит - возможно сбой сети или РВ подвисает и не всегда корректно пересылает данные об отправке. А система не может повторно их с него подгрузить. При этом использование обработки "Реестр выбытия" тормошит (будит) РВ и последующий обмен с ним идет уже без ошибок.

Неясно в общем, но костыль воде работает.

Начались такие проблемы месяца два назад, при этом месяца четыре назад нам РВ поменяли - старый безвозвратно завис.
Так что скорее всего проблемы из-за РВ, но доказать это техподдерке ЧестноЗнака будет наверно невозможно, ибо - "работайте в Фарма-просто, а в 1С мы не знаем как процессы идут.

Хорошо бы какую обработку, насильно запрашивающую статус от РВ несмотря ни на что, но тут моих знаний точно нехватит.
Может все же техподдержка 1С медицины поможет. Надежда, как говорится, умирает последней.
mart-sha; +1 Ответить
51. IssakN 45 09.06.21 09:27 Сейчас в теме
(50)Любопытное поведение. Сложности по запросу статуса РВ нет. Этот метод типовой и выполняется через форму самого регистратора выбытия. Справочник Регистраторы МДЛП, форма элемента кнопка Получить информацию об устройстве. У нас перед каждым обменом с РВ этот метод запрашивается, чтобы понять что РВ не заблокирован. Если нужно могу дать код проверки состояния РВ или можете посмотреть под кнопкой в справочнике.
59. user1768487 06.04.22 17:07 Сейчас в теме
Подскажите пожалуйста, где найти обработку "Реестр выбытия"? не могу найти(
53. nastyaxa 25.08.21 09:25 Сейчас в теме
(44) у нас ситуация 1 в 1 с вашей. Устала переписываться с тех поддержкой 1с и пытаться объяснить им что мы делаем все правильно. Они только и отвечают, что упаковка была выведена ранее, а на самом деле никто ничего с ней не делал, ее только что получили.
54. Tron77 25.08.21 21:49 Сейчас в теме
(53)
Победил свою проблему тем, что заставил оператора после первичной отправки данных через минуту запрашивать состояние квитанции у РВ.
Если этого сразу не делать в некоторых случаях квитанции теряются между ЧЗ РВ и 1С.
48. Tron77 31.05.21 15:26 Сейчас в теме
С 1С все в порядке.
Похоже все же не стыкует РВ квитанции.
Буду ЧЗ пытать.
52. user1613212 14.06.21 20:02 Сейчас в теме
Добрый день ! Такая ситуация по ошибке было выбытие по льгтному рецепту, а не для мед. организации ( у нас стоматология) чем это грозит ? Спасибо !
57. user1669184 23.09.21 19:20 Сейчас в теме
Здравствуйте.В медицинской организации не проходит документ по схеме 531 ,статус документа Ошибка обработки ,Техническая ошибка,Обработка запроса провалилась: ошибка на этапе первичной обработки документа: Указанная версия схемы не поддерживается.Как списать препараты?
58. user1708578 01.12.21 15:23 Сейчас в теме
здравствуйте, регистратор выбытия РВКМ-01 находится в мед.организации , не можем провести загрузку базы номенклатуры. регистратор отказывается это делать, последняя загрузка более недели назад. А вообще эти базы (остатков и номенклатуры) требуется обновлять при каждом выбытии?.
61. alexcw@list.ru 20.03.23 10:47 Сейчас в теме
Добрейшего времени суток!

Пытаемся интегрировать библиотеку МДЛП в ERP 2.0. Вроде как сделали все по инструкции, настройку регистратора выбытия выполнили.
Теперь получается что в документе "Уведомление о выдаче для оказания медицинских услуг" пытаемся сканировать код упаковки регистратором - нет никакой реакции, при попытке сканировать подключенным сканером штрих кода - получаем в строке поиска полный SGITN, включающий секурный хвост.
Вопроса как обычно два, кто виноват и что делать? В смысле как лечить :))
Как я понял, оно, в данном документе должно работать из коробки, или нужно дописывать свои обработчики событий?
Телефонная поддержка 1с отправляет в почту, почта упорно молчит.
62. IssakN 45 20.03.23 12:14 Сейчас в теме
(61) Добрый день. На момент написания статьи библиотека МДЛП не поддерживала работу с РВ. Поэтому был написан механизм работы с нуля.
Сейчас же библиотека уже умеет работать по 2 схемам (10531 и 531) и оборудованием РВ. Рекомендую настроить справочники ОрганизацияМДЛП, МестадеятельностиМДЛП, Рабочие места, РегистраторыМДЛП и использовать функционал библиотеки МДЛП "из коробки". На скриншоте порядок настройки. Само собой РВ по сети должен быть настроен согласно инструкции из ФГИС МДЛП.
Прикрепленные файлы:
alexcw@list.ru; +1 Ответить
63. alexcw@list.ru 20.03.23 13:09 Сейчас в теме
(62) День добрый!
ну вроде как настройки сделаны аналогично, интеграция с "Честным знаком" настроена и работает. Сами остатки получаются. Не получается оформить документ "Уведомление о выдаче для оказания медицинских услуг" (пример на скриншоте). Может что-то не то делаю совместно с тамошней барышней. Как я понял в этом окошке, при сканировании упаковок должна заполняться таблица справа. Однако по сканированию кода его значение попадает в поле "поиск" правой табличной части.
РВ Атол версии 1 (кнопочный).
Возможно на нем что-то не донастроено?
Прикрепленные файлы:
64. IssakN 45 20.03.23 13:27 Сейчас в теме
(61) Верно эта ТЧ должна заполняться при сканировании. Сканер настроен в в com режиме? Тест стандартный проходит сканер? В других документах нормально при сканировании подтягивается?
alexcw@list.ru; +1 Ответить
65. alexcw@list.ru 22.03.23 08:40 Сейчас в теме
(64) Сотни нефти Вам, Уважаемый!!!!!! И посыпаю голову пеплом, действительно сканер был подключен как разрыв клавиатуры :(. И ума сразу проверить не хватило, сто лет таким подключением не пользовался :)))
Еще раз спасибо и извините за беспокойство!
66. user1342132 11.04.23 11:09 Сейчас в теме
Здравствуйте. Наша организация участник системы маркировки, мы отпускаем ЛП для оказания медпомощи. Используем облачную версию 1С:МДЛП. Буквально на днях выяснилось, что мы в документе "Уведомление о выдаче ЛП для медпомощи" снимали галку "Использовать РВ". Дело в том, что при установке этой галки у нас не сканируются ЛП и , видимо, фармацевт решила обойти этот угол таким образом. Случайно она не сняла галку в очередном документе, это документ висит 4 день в статусе "К передаче" и "Выполните обмен". Как заставить работать схему с РВ, почему наш скан не видит ЛП при установленной галке? Может быть, кто-нибудь подскажет? Вчера весь день убила на общение с техподдержкой, в результате решений ноль.
68. mart-sha 296 22.04.24 17:20 Сейчас в теме
Автор как с вами связаться ? Вы были на сайте в 23 году летом !
70. IssakN 45 27.06.24 08:08 Сейчас в теме
(68)Добрый день. Да давненько не заходил. Что вы хотели?
71. mart-sha 296 27.06.24 20:11 Сейчас в теме
(70) хотели вот что. Иногда упаковка с лекарством где штрих код дата матрикс теряется и нам списать можно только без Регистратора выбытия, документом. Что вроде как нарушение. Можно ли имея код такого вида 035829100309421163V1CDE2A9N сформировать квадратный Дата матрикс код чтобы распечатать его на бумагу и отсканировать Регистратором выбытия, как будто это упаковка с лекарством ? Если можно то свяжемся !
72. IssakN 45 27.06.24 20:35 Сейчас в теме
(71)Можно, но это незаконно)
Оставьте свое сообщение