Каталог решений - Загрузка ЭЛН (электронных листов нетрудоспособности) из файлов

Загрузка ЭЛН (электронных листов нетрудоспособности) из файлов

Загрузка ЭЛН (электронных листов нетрудоспособности) из файлов

В наличии

Что делать, если по каким-то причинам нет возможности разместить 1С и Крипто-Про на одном рабочем месте?
Правильно — открывать конфигуратор и пилить. Благо, там не сложно.
Непосредственно решение для УПП 1.3.
Для ЗиК 2.5 и Комплексной автоматизации должно быть аналогично.

Категория:

Описание

Крипто-Про не ставится,

Не растет кокос.

Итак, по какому-то стечению обстоятельств у вас нет никакой возможности организовать рабочее место, где одновременно есть

а) 1С

б) КриптоПро

в) доступ в интернет

но, слава Тенгри, вы научились добывать файлы ЭЛН из личного кабинета ФСС.

 

Что остается делать? Правильно — курить код и думать. 

По сути, нужно найти место, где 1Ска УЖЕ получила зашифрованный/подписанный файл ЭЛН, расшифровала его, но ЕЩЕ не успела загрузить — и попробовать аккуратно вклиниться туда.

ВНЕЗАПНО, оказывается, что нужная нам точка находится в модуле формы докумета НачислениеПоБольничномуЛисту:

В процедуре КнопкаПолучитьДанныеИзФССНажатие (это обработчик кнопки "ЭЛН из ФСС"):

вызов функции ОбменСведениямиОПособияхСФСС.ПолучитьДанныеЭЛНИзСервисаФСС(…)  в третий параметр (ФайлЗашифрованногоОтветаSOAP) возвращает путь к временному файлу с зашифрованным/подписанным ЭЛН,

следом идет вызов ПроверитьПодписьSOAPОтветаЭЛНВФСС(…) — собственно, проверка валидности подписи

и дальше — то самое ценное — непосредственно загрузка данных из файла в документ ОбменСведениямиОПособияхСФСС.ПолучитьДанныеЭЛНИзСервисаФСС(), где третьим параметром (РезультатПроверки.ФайлРасшифрованногоОтветаSOAP) передается путь к расшифрованному XML-файлу. 

ВНИМАНИЕ! Эта этот вызов функции приводит к удалению файла после загрузки данных! Просто имейте это ввиду.

 

В общем, дальше дело за малым. Я сделал так:

Процедура КнопкаПолучитьДанныеИзФССНажатие(Элемент)
    ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ВыборФайла.Фильтр = "XML файлы ЭЛН (*.xml)|*.xml";
    ВыборФайла.МножественныйВыбор = Ложь;
    ВыборФайла.Заголовок = "Укажите файл с ЭЛН из ФСС";
    Если ВыборФайла.Выбрать() Тогда
        ИмяФайлаЭЛН = ПолучитьИмяВременногоФайла();
        КопироватьФайл(ВыборФайла.ВыбранныеФайлы[0], ИмяФайлаЭЛН);
        
        ОбменВыполненУспешно = ОбменСведениямиОПособияхСФСС.ПолучитьДанныеЭЛНИзСервисаФСС(ДокументОбъект, Неопределено, ИмяФайлаЭЛН, Ложь, Истина);
        Если ОбменВыполненУспешно Тогда
            ПричинаНетрудоспособностиПриИзменении(ЭлементыФормы.ПричинаНетрудоспособности);
            ДатаНачалаСобытияПриИзменении(ЭлементыФормы.ДатаНачалаСобытия);
            ДатаНачалаПриИзменении(ЭлементыФормы.ДатаНачала);
            КнопкаРассчитатьВсеНажатие(ЭлементыФормы.КнопкаРассчитатьВсе);
            
        Иначе
            Сообщить("Ошибка загрузки файла!", СтатусСообщения.Важное);
        КонецЕсли;
        
        Состояние();
        
    Иначе
        Сообщить("Файл не выбран!");
        Возврат;
    КонецЕсли;
    
    Возврат;

    // далее сохранен оригинальный код процедуры для упрощения последующей поддержки

 

has been added to your cart:
Оформление заказа