Минздрав Российской Федерации предупреждает (1):
Спирт этиловый – жизненно важен и необходим!
В
Возможности обработки:
- Скачивание файлов с реестром зарегистрированных цен производителей с сайта ГРЛС (http://grls.rosminzdrav.ru) по динамически вычисляемой ссылке (Рис.10, Рис.11).
- Загрузка цен ЖНВЛП в каталог аптечных товаров (КАТ) в ручном режиме на стороне клиента из указанного файла с реестром цен (Рис.1, Рис.2, Рис.3).
- Автоматическая загрузка цен ЖНВЛП в каталог аптечных товаров (КАТ) на стороне сервера из актуального реестра цен (в прямом серверном вызове или в фоновом задании) (Рис.5, Рис.6, Рис.7).
- Обработка адаптирована для использования в регламентном задании. При этом имеются рекомендуемые параметры обработки в регламентном задании, которые хранятся в хранилище общих настроек в настройках пользователя с фиксированным именем "SA" и доступны для изменения в специальной форме обработки.
- Обработка поддерживает стандартный интерфейс подключения дополнительных отчетов и обработок. При этом рекомендуется запускать обработку под полными правами или не включать для нее безопасный режим (для доступа к параметрам обработки в регламентном задании).
Обработка загружает информацию о зарегистрированных ценах производителей лекарственных препаратов наиболее оперативным способом — напрямую из первоисточника информации, минуя информационные системы посредников (поставщиков данных каталога аптечных товаров).
Обработка не выполняет загрузку данных самого каталога аптечных товаров (КАТ), рекомендуется делать это отдельно — штатными средствами поставщиков данных (с диска ИТС и т.п.) или заполнять каталог вручную (согласно описанным ниже рекомендациям).
Обработка предоставляется конечному пользователю "как есть". Функционал обработки подробно задокументирован. Недостатки функционала и возможные проблемы при его использовании описаны ниже. Все риски, связанные с использованием функционала, несет конечный пользователь.
В обработке имеются дополнительные возможности, предполагающие небольшие доработки конфигурации УАС. Полный список доработок перечислен в справочной информации к обработке.
Используемая терминология:
- Конфигурация УАС (Управление аптечной сетью) – Прикладное решение от центра разработки "ОКСи" (http://www.1capteka.ru/) на базе типового решения “Управление торговли ред. 11”. Предназначено для автоматизации оптовой и розничной торговли на фармацевтическом рынке с учетом законодательства Российской Федерации.
- ГРЛС (Государственный Реестр Лекарственных Средств) — Нормативно-справочная информация, регулирующая в Российской Федерации деятельность в фармацевтической области. Поддерживается информационным ресурсом http://grls.rosminzdrav.ru Министерства Здравоохранения Российской Федерации. Часть информации на этом ресурсе (включая сведения о зарегистрированных ценах производителей лекарственных препаратов) находятся в общем доступе.
- Перечень ЖНВЛП (Жизненно Необходимые и Важнейшие Лекарственные Препараты) – Утвержденный министерством здравоохранения список лекарственных препаратов, оптовые и розничные наценки на которые регулируются государством в соответствии с действующим законодательством Российской Федерации.
- Реестр цен ГРЛС – Утвержденные министерством здравоохранения зарегистрированные цены производителей лекарственных препаратов. Служат в Российской Федерации отправной точкой для ценообразования лекарственных средств из перечня ЖНВЛП.
Реестр цен доступен для скачивания с веб странички http://grls.rosminzdrav.ru/pricelims.aspx . - КАТ (Каталог Аптечных Товаров) – Нормативно-справочная информация, распространяемая информационным ресурсом РЛС (http://www.rlsnet.ru/ ). Первоисточником для каталога КАТ является ГРЛС. Основные каналы распространения каталога — программное обеспечение и веб сервисы от самого ресурса РЛС, диски ИТС:Медицина от фирмы 1С, веб сервисы сайта www.its.1c.ru от фирмы 1С.
В конфигурации УАС каталог КАТ представлен справочником “Каталог аптечных товаров” и связанными с ним справочниками и регистрами сведений. - “Цены ЖНВП”: в конфигурации УАС это регистр сведений (часть каталога КАТ), хранящий историю зарегистрированных цен производителей на лекарственные препараты из перечня ЖНВЛП.
- “Принадлежность аптечных товаров к спискам” — В конфигурации УАС это регистр сведений (часть каталога КАТ), хранящий историю принадлежности лекарственных препаратов к различным регламентированным спискам (в том числе признаков принадлежности к перечню ЖНВЛП).
- “Статусы действия аптечных товаров” — В конфигурации УАС это регистр сведений (часть каталога КАТ), хранящий историю информации о статусе действия аптечных товаров в соответствии с нормативными документами.
- Платформа 1С версии 8.3 (в обработке используются асинхронные методы).
- Приложение Excel, доступное как на стороне клиента, так и на стороне сервера
(для чтения данных из файла реестра ГРЛС через COM-соединение с приложением). - Приложения Excel можно заменить установкой провайдера OLEDB "Microsoft.Jet.OLEDB.4.0" (при использовании чтения данных из файла реестра цен ГРЛС через соединение ADODB.Connection).
Обработка тестировалась на конфигурации "Управление аптечной сетью, редакция 1.1" (релиз 11.1.9.70/1.1.9.16) под платформой 1С:Предприятие 8.3 (релиз 8.3.6.2332).
В
Общее описание функционала обработки:
Скачивание файлов актуального реестра цен ГРЛС с сайта ГРЛС (http://grls.rosminzdrav.ru) выполняется по динамически вычисляемым ссылкам. Так сделано по причине того, что на сайте ГРЛС нет фиксированных ссылок для скачивания файлов актуального реестра цен.
Файл реестра цен предоставляется сайтом ГРЛС или непосредственно в формате (*.xls) или в архиве формата (*.zip). Ссылки на файлы реестра цен вычисляются по разобранным данным html веб формы для их скачивания http://grls.rosminzdrav.ru/pricelims.aspx (Рис.12, Рис.13).
Недостаток использованного способа скачивания файлов состоит в том, что в будущем при изменении разработчиками сайта указанной выше веб формы, возможно, потребуется изменение используемого алгоритма вычисления ссылок.
Чтение данных файла реестра в зависимости от выбранных параметров загрузки может быть выполнено двумя способами:
- Через COM-соединение с приложением Excel.
- Через соединение ADODB.Connection (рекомедуется, поскольку ускоряет чтение данных).
Синхронизация данных файла реестра со справочником "КАТ" выполняется по сочетанию следующих значений (ключу синхронизации):
- Штрихкод производителя — соотносится с реквизитом "Штрихкод" справочника “КАТ “ (пустые значения и в файле реестра цен и в справочнике “КАТ” игнорируются!).
- Торговое наименование — соотносится с реквизитом "Торговое наименование" справочника (с наименованием выбранного в реквизите элемента справочника "Торговые наименования").
- Количество в потребительской упаковке — соотносится с реквизитом "Количество препарата во всех упаковках" справочника “КАТ” (нулевые значения интерпретируются как единица).
При этом поиск по строке торговых наименований нечеткий, допускаются 16 вариаций в строке торгового наименования из файла реестра ГРЛС (подробности описаны в справочной информации к обработке).
В информационную базу записывается срез последних данных файла ГРЛС по описанному выше ключу синхронизации и дате принятия решения.
При этом:
- Сначала записываются данные основного списка реестра цен ГРЛС (с первого листа файла Excel реестра цен).
- Затем, если установлена опция загрузки "Обрабатывать список исключений", записываются данные списка исключений из реестра цен (со второго листа файла Excel).
- После записи данных из файла реестра цен в информационную базу можно вручную или автоматически обновить данные номенклатуры по каталогу аптечных товаров.
При записи данных реестра цен в базу выполняются следующие действия:
- Зарегистрированные цены производителей среза данных файла реестра записывается в регистр сведений "Цены ЖНВП" на дату реестра цен.
- При записи данных основного списка реестра цен в регистре сведений "Принадлежность аптечных товаров к спискам " на дату реестра цен устанавливаются признаки принадлежности к "ЖНВП" с копированием остальных значений ресурсов.
Предполагается, что все лекарственные препараты из этого списка включены в перечень ЖНВЛП. - При опциональной записи данных списка исключений из реестра ГРЛС признаки принадлежности к "ЖНВП" наоборот сбрасываются на дату реестра цен.
Предполагается, что все лекарственные препараты из этого списка временно или постоянно исключены из перечня ЖНВЛП. - Дата принятия решения и номер регистрационного решения среза из файла реестра цен записывается в регистр сведений "Статусы действия аптечных товаров" на дату реестра цен.
При этом одинаковые данные записываются для всех дублей в справочнике "КАТ", удовлетворяющие одному ключу синхронизации, что может приводить к некорректной записи данных в базу для некоторых из дублей. Эта некорректность обусловлена описанными ниже недостатками предлагаемого способа синхронизации данных.
Достоинство предлагаемого способа синхронизации состоит в его независимости от кодов поставщиков данных каталога аптечных товаров. Это позволяет загружать цены ЖНВЛП как для позиций каталога, загруженных с диска ИТС, так и для заведенных вручную позиций каталога (при правильном указании штрихкода, торгового наименования и количества в упаковке).
Недостаток предлагаемого способа синхронизации состоит в некоторой его неоднозначности, приводящей к проблеме некорректных дублей в справочнике "КАТ":
- В файле реестра ГРЛС нет идентификатора, однозначно определяющего зарегистрированный в реестре аптечный товар. Поэтому приходится срез последних данных строить по описанному выше ключу синхронизации.
- В файле реестра ГРЛС имеются строки с одинаковыми штрихкодами, торговыми наименованиями и количеством в упаковке, в которых могут быть разные описания формы выпуска зарегистрированного в реестре аптечного товара.
Различия в описаниях могут быть незначительными (одна и та же форма выпуска) и существенными (явно разные формы выпуска).
По-хорошему предлагаемый способ синхронизации необходимо дополнить синхронизацией данных файла реестра по форме выпуска. Но эта задача представляется неподъёмной из-за неформального характера и изменчивости описания формы выпуска в файле реестра.
Управление списком дублей по штрихкодам в справочнике “КАТ” (Рис.2):
В качестве компромиссного решения проблемы некорректных дублей при синхронизации данных из файла реестра ГРЛС в обработке предусмотрена возможность в списке дублей указывать правила загрузки данных реестра, которые задаются числовыми значениями из списка:
- +1, "Загружать (ГРЛС)" — загружать данные по дублю из реестра ГРЛС.
- 0, "Не указано (ГРЛС с оповещением)" — загружать данные по дублю из реестра ГРЛС с оповещением (правило по умолчанию).
- -1, "Загружать (ITS.1C.RU)" — загружать цены ЖНВЛП для дубля из прайса с сайта www.its.1c.ru.
- -2, "Не загружать" — не загружать данные по дублю
Предполагается, что правила загрузки для дублей хранятся в числовом реквизите справочника "КАТ" с определенным именем, что требует небольшой доработки конфигурации УАС (подробности смотрите в справочной информации к обработке).
Использование правила загрузки "Загружать (ITS.1C.RU)" требует указания параметров авторизации на www.its.1c.ru и приводит к некоторому увеличению общего времени записи данных в базу, поскольку предполагает каждый раз скачивание и разбор актуального прайса зарегистрированных цен поставщиков с сайта www.its.1c.ru.
При этом загрузка цен ЖНВЛП возможна только для позиций в справочнике "КАТ" с заполненным кодом РЛС. То есть только для позиций справочника КАТ загруженных штатными средствами с информационного ресурса РЛС (например, с диска ИТС:Медицина), а не созданных вручную.
Рекомендуемый способ использования обработки:
- Штатными средствами загрузить каталог аптечных товаров с диска ИТС или из прочих источников, предоставляемых поставщиками данных. Следует загружать сам каталог без зарегистрированных цен производителей.
Обновление каталога актуально при появлении в реестре ГРЛС большого количества новых зарегистрированных позиций. - Вручную добавить в каталог аптечных товаров интересуемые позиции.
При этом необходимо правильно указать реквизиты, используемые при синхронизации:- “Штрихкод”.
- “Торговое наименование”.
- “Количество препарата”, “Количество упаковок 1”, “Количество упаковок 2” (количество в потребительской упаковке равно произведению этих количеств, нулевое количество считается равным единице).
- После этого загружать зарегистрированные цены производителей данной обработкой
Основные формы обработки:
Основная форма обработки, служит для следующих целей:
- Загрузка/синхронизация данных из указанного файла реестра ГРЛС вручную на стороне клиента (Рис.1).
- Управление правилами загрузки дублей в КАТ по штрихкодам (доступно при дополнительных доработках конфигурации УАС) (Рис.2).
- Запись загруженных на стороне клиента данных файла реестра в информационную базу на стороне клиента (Рис.3).
- Обновление данных номенклатуры по каталогу аптечных товаров вручную на стороне клиента (Рис.4).
- Доступ к прочим служебным формам обработки:
- "АвтозагрузкаЦенЖНВПНаСервере"
- "ЗагрузкаФайловРеестраЦенССайта"
Служебная форма, служащая для выполнения в автоматическом режиме на стороне сервера загрузки актуального файла реестра ГРЛС с последующей записью данных из файла в информационную базу.
После записи данных реестра, если это предусмотрено опциями автозагрузки, может быть выполнено обновление данных номенклатуры по каталогу аптечных товаров согласно параметрам учета, установленных в "Настройках дополнительных параметров учета".
Поддерживается два варианта выполнения:
По окончании автозагрузки в специальном текстовом поле формы показывается статистика автозагрузки (Рис.7).
Форма также позволяет:
- Просмотреть ход выполнения автозагрузки на сервере в журнале регистрации (если при запуске автозагрузки в форме был установлен флаг “Логировать ход выполнения в журнале регистрации”).
- Сформировать код функции для выполнения обработки в регламентном задании рекомендуемой реализации.
- Открыть диалог редактирования параметров выполнения обработки в регламентном задании (Рис.8).
- Просмотреть список файлов реестров цен и файлов прайсов цен ЖНВЛП (Рис.7), когда-либо загружавшихся при выполнении обработки в режиме автозагрузки на стороне сервера.
- "ФормаПараметрыРегламента" (Рис.8):
Служебная форма, служит для указания настроек выполнения обработки в регламентном задании рекомендуемой реализации.
Настройки обработки выполнения сохранятся в хранилище общих настроек в настройках пользователя с фиксированным именем "SA" (для чтения-записи настроек требуется административные права).
- "ФормаАвторизацияСайтИТС1С" (Рис. 9):
Вспомогательная форма, служит в различных случаях для указания параметров авторизации на сайте WWW.ITS.1C.RU , используемых при загрузке цен ЖНВЛП для отмеченных дублей в КАТ по штрихкодам с правилом загрузки "Загружать (ITS.1C.RU)" .
Служебная форма, выполняющая следующие функции:
- Скачивания файлов актуального реестра ГРЛС с сайта ГРЛС (http://grls.rosminzdrav.ru) по динамически вычисляемым ссылкам.
- Выбора скаченного файла реестра с копированием в каталог загрузки, указанный в основной форме обработки.
- Проверка целостности скаченных файлов вручную или автоматически при выборе. Проверка выполняется тестовым открытием скаченного файла разными способами.
Поддерживается следующие варианты скачивание файлов реестра (Рис.10):
- в формате эксель (*.xls)
- в формате эксель в архиве (*.zip)
- оба файла — в формате эксель (*.xls) и в архиве (*.zip)
Поддерживаются следующие способы проверки целостности скаченных файлов (Рис.11):
- Открыть в Excel (на клиенте).
- Открыть в Excel (на сервере).
- Подключиться ч/з ADO (на сервере).
Так же форма предоставляет специалисту разработчику отладочные средства (Рис.12, Рис.13), позволяющие при необходимости скорректировать алгоритм вычисления ссылок файлов.
Для использования измененного алгоритма поиска ссылок файлов необходимо в конфигураторе внести соответствующие изменения в функцию ТекстВстроенныйАлгоритмПоискаДанных() модуля обработки.
БЛАГОДАРНОСТИ:
- Выражаю огромную признательность руководству группы компаний "Витамакс" — за предоставленную возможность плодотворного сотрудничества.
- И особенно признателен руководителю отдела ИТО компании Пашкову Алексею — на первоначальную постановку задачи.
АКТУАЛЬНАЯ ВЕРСИЯ ОБРАБОТКИ:
ИСТОРИЯ ВЕРСИЙ:
Версия: 8.3.1.3 от 05.05.2024
— Реализован поиск ссылок в web-форме скачивания файлов реестра ГРЛС новой структуры, дествующей с Апреля 2024 г.
— Реализована поддержка загрузки файла реестра ГРЛС нового формата (2.00), действующего с Апреля 2024 г.
При этом загрузка старых файлов предыдущего формата (1.00) — временно не поддерживается.
Версия: 8.3.1.2 от 02.01.2024
— Исправлена ошибка HTTP запросов ресурсов по относительным адресам, начинающимся с обратного "бэкслеша"
(в данном случае в данном случае "/pricelims.aspx" из полного адреса "http://grls.rosminzdrav.ru/pricelims.aspx").
Версия: 8.3.1.1 от 15.01.2024 (начальная).
Предупреждение в эпиграфе к статье касается юридических лиц и частных предпринемателей, занимающихся на территории России фармацевтической деятельностью.
(1) Производством, оптовой и розничной торговлей лекарственными препаратами
Вот смотрите, Шура, что можно сделать из обычной швейной машинки Зингер!
Очень полезная вещь. Вот если было бы еще такое же для «1С Розница Аптека»…
Разбор xml/html ч/з объект ДокументDOM
Добрый. Автору спасибо.
Возникли проблемы ресурс переехал на ssl и теперь получить данные не получается. Обновление кода планируете?
(6) Обновление вряд ли будет: автор уволился, прихватив с собой свою обработку)
Но обработка продолжает работать. Нужно только в ее модуле сделать такие изменения:
1) в процедуре ВыделитьДоменРесурсаHTTP() добавить АдресДомена = СтрЗаменить(АдресДомена,»www.»,»»);
2) в процедуре ПолучитьРесурсHTTPВСтрокуНаСервере() переменной ЗащищенноеПодключение присвоить Новый ЗащищенноеСоединениеOpenSSL() до инициализации СоединениеХТТП.
(7) На счет «уволился«, MoneG, — это правда. На счет «прихватил с собой» — это преувеличении ;))
Выложил версию обработки в которой подправлена ошибка при скачивании реестра ГРЛС с сайта
и возможные ошибки из отсутствия некоторых пиктограмм в библиотеке картинок.
По существу ошибка при скачивании возникла из-за того, что при HTTP-запросе из 1С
http://grls.rosminzdrav.ru/pricelims.aspx » .
веб-сервер перестал воспринимать относительные адреса ресурсов, начинающиеся с обратного «бэкслеша»,
в данном случае «/pricelims.aspx» из полного адреса «
Поскольку возможности поддержки стали ограничены из-за с занятости на новой работе
(а главное — из-за отсутствия доступа к последним релизам УАС)
цена обработки сделана минимальной.
(8) PS
Как я понял возможны еще проблемы с синхронизацией загружаемых данных со справочником «УАС_КАТ».
Проанализировать это я не смог из-за старого релиза тестовой базы.
(ключу синхронизации):
Штрихкод производителя
— соотносится с реквизитом «Штрихкод» справочника
(пустые значения и в файле и в справочнике игнорируются!).
Торговое наименование
— соотносится с реквизитом «ТорговоеНаименование» справочника
(с наименованием выбранного элемента справочника «УАС_КАТТорговыеНаименования»).
Количество в потребительской упаковке
— соотносится с реквизитом «Коэффициент03» справочника
(нулевые значения интерпретируются как единица).
Показать
Возможно при загрузке КАТа с диска ИТС-Медицина как-то изменилось заполнение этих реквизитов.
Думаю эти проблема легко решаема исправлением текста запроса для синхронизации данных
(и/или корректировкой записи данных КАТа при загрузке).
(9) (8) PS PS
Не удалось решить критическую проблему при работе обработки в файловой базе
(из-за возросшего размера файла реестра ГРЛС):
При попытке в запросе уложить считанную из файла таблицу значений во временную таблицу
шызоидному файловому серверу 1С нехватает памяти и он выкидывает исключение.
Так что для тех, кто мыкается с УАСом в файловых базах,
эта обработка в текущем виде — к сожалению бесполезна.
Надеюсь что таких несчастных мало.
Единственное решение этой проблемы я вижу в том,
чтобы вырезать как-то из файла реестра строки со старыми датами (ранее не знаю какой)
на стадии считывания данных в таблицу значений.
Если будут особые пожелания на счет работы в файловом режиме
— могу заняться этим вопросом.
Добрый день , вот такая ошибка, файл реестра не загружается можете посмотреть, разбираться самостоятельно к сожалению нет времени. Спасибо
Еще одна ошибка , {Обработка.УАС_ЗагрузкаРеестраЦенГРЛС.Форма.ЗагрузкаЦенЖНВП.Форма(5001)}: Получение элемента по индексу для значения не определено
СсылкаНаФайл = РезультатЗапроса[«Ссылка»];
(11) (12)
Вижу вы сильно переделали обработку или встраиваете ее функционал куда-то еще.
Судя по картинке — делаете некий пошаговый помощник выполняемых действий.
Если такое дело,
то вам все-таки следует найти время, чтобы «самостоятельно» разобраться 😉 .
1) По поводу ошибок в окне сообщений на картинке:
Сообщения типа
Обнаружены незаполненные алгоритмом ссылки:
Не определена ссылка с ключем «Ссылка»
выводятся экспортной функцией ДанныеПоАлгоритмуНайти() модуля обработки,
когда исполняемый код поиска ссылок в разобранных html-данных web-формы скачивания с сайта ГРЛС
не устанавливает в возвращаемом соответствии Результат значения с указанными ключами.
2) По поводу второй ошибки:
Подсказать что-то мне трудно. Это исключительно что-то в ваших изменениях.
Строки с номером 5001 в исходной форме ЗагрузкаЦенЖНВП нет.
Также нет вхождения строк
СсылкаНаФайл = РезультатЗапроса[«Ссылка»];
в исходном коде обработки.
(12)
Однако web-форма для скачивания реестра ГРЛС изменилась.
Старый алгоритм ссылок файлов сейчас не находит — о чем и выводятся сообщения.
Сейчас осталась одна ссылка для скачивания реестра в архиве zip.
В ближайшее время постараюсь поправить алгоритм и выложить подправленную обработку.
В обработке мы ничего не меняли, весь механизм ваш «как есть» , добавили ваш код в регламентное задание, только это . Причем до февраля это работало, и проблем никакх не было. Этот помощник в исходной обработке, можно убедиться. Что касается ошибок , то ошибка № 1 не скачивается файл, ошибка № 2, если его подставить вручную как «РеестрЦенГРЛС», то после синхронизации вот такая ошибка , как на скрине, как будто не может прочитать лист 1 файла.
ZIP не работает
ошибка на строке 5001 связана с регламентным заданием, где есть процедура, которая обращается к «срезу последних» , но до этого момента все ошибки связаны с загрузкой файла и синхронизацией, там разобраться самостоятельно сложно, поэтому ждем исправление
(17) Если на скорую руку, то в экспортной функции ТекстВстроенныйАлгоритмПоискаДанных()
модуля обработки строковый литерал, присваиваемый переменной СтрКодАлгоритма,
нужно заменить на следующий:
Показать
С таким алгоритмом поиска ссылки в данных web-формы реестр вроде бы раскачивается.
При этом доступны опции скачивания файлов
«Реестр цен в формате (*.zip)» и «<Все доступные форматы>«.
Опция скачивания «Реестр цен в формате (*.xls)» — недоступна в связи с отсутствием
соответствующих ссылок на сайте ГРЛС.
Обновленную версию обработки выложу позже.
Надо посмотреть, что нужно поменять еще и понаблюдать, как ведет себя сайт.
благодарю за информацию
можете скинуть на почту рабочую версию?
(21) Да, но перед тем как выложить.
Скинь почтовый адрес в личку.
(18) Правка — помогла ???
я вам пишу , вы не отвечаете
почта в скрине