Каталог решений - Интеграция 1С:Зарплата и управление персоналом со сторонним сервисом по API (на примере сервиса MedInspector)

Интеграция 1С:Зарплата и управление персоналом со сторонним сервисом по API (на примере сервиса MedInspector)

Интеграция 1С:Зарплата и управление персоналом со сторонним сервисом по API (на примере сервиса MedInspector)

В наличии

Реализация интеграции «Зарплата и управление персоналом» с сервисом учета и контроля медицинских книжек сотрудников МедИнспектор.

Описание

Автоматизация контроля актуальности данных о медицинских книжках на предприятии общественного питания имеет огромное значение для обеспечения безопасности и качества предоставляемых услуг.

Медицинские книжки являются обязательным документом для сотрудников предприятий общественного питания. В них содержатся данные о прохождении работниками медицинских осмотров, гигиенического обучения и аттестации. Однако контроль актуальности этих данных может быть затруднён из-за большого количества сотрудников и необходимости постоянного обновления информации.

Автоматизация контроля актуальности данных о медицинских книжках позволяет:

  • упростить процесс сбора и хранения информации о медицинских осмотрах и аттестациях;

  • своевременно выявлять сотрудников, у которых истек срок действия медицинских книжек или возникли проблемы со здоровьем;

  • снизить риск возникновения санитарных нарушений и связанных с ними штрафов и санкций;

  • повысить уровень доверия потребителей к предприятию общественного питания.

Ниже рассмотрен пример интеграции конфигурации "Зарплата и управление персоналом" с сервисом учета и контроля медицинских книжек сотрудников MedIspector.


Задача: реализовать отправку личных данных сотрудника в сервис посредством API

Ниже несколько решений, использованных при реализации задачи:

1. Для сохранения настроек подключения выбрано БезопасноеХранилище

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

2. Вывод вспомогательных данных на форму справочника Физические лица реализовано программно

// Массив для новых реквизитов
ДобавляемыеРеквизиты	= Новый Массив;

// Опишем ревизиты формы
Реквизит_НомерМедицинскойКнижки = Новый РеквизитФормы("НомерМедицинскойКнижки", Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(150)), , "Номер медицинской книжки");
Реквизит_СтатусМединспектор = Новый РеквизитФормы("СтатусМединспектор", Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(150)), , "Статус в системе МедИнспектор");
Реквизит_НеВыгружатьМединспектор = Новый РеквизитФормы("НеВыгружатьМединспектор", Новый ОписаниеТипов("Булево"), , "Не выгружать в систему МедИнспектор");

// Заполним массив после описания реквизитов формы
ДобавляемыеРеквизиты.Добавить(Реквизит_НомерМедицинскойКнижки);
ДобавляемыеРеквизиты.Добавить(Реквизит_СтатусМединспектор);
ДобавляемыеРеквизиты.Добавить(Реквизит_НеВыгружатьМединспектор);

// Добавим новые реквизиты в форму
Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);

// Элементы
ИмяГруппы = "ГруппаДополнительныеРеквизиты";
ГруппаФормы = Форма.Элементы.Найти(ИмяГруппы);
Если ГруппаФормы <> Неопределено Тогда
	
	ИмяЭлемента = "НомерМедицинскойКнижки";
	Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
		ЭлементФормы = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);        
		ЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
		ЭлементФормы.ПутьКДанным = "ФизическоеЛицо.НомерМедицинскойКнижки";
	КонецЕсли;
	
	ИмяЭлемента = "СтатусМединспектор";
	Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
		ЭлементФормы = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);        
		ЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
		ЭлементФормы.ПутьКДанным = "ФизическоеЛицо.СтатусМединспектор";
		ЭлементФормы.Подсказка = "0 - значение по умолчанию, 1 - работает, 5 - уволен";
		ЭлементФормы.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
	КонецЕсли;
	
	ИмяЭлемента = "НеВыгружатьМединспектор";
	Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
		ЭлементФормы = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);        
		ЭлементФормы.Вид = ВидПоляФормы.ПолеФлажка;
		ЭлементФормы.ПутьКДанным = "ФизическоеЛицо.НеВыгружатьМединспектор";
		ЭлементФормы.Подсказка = "В случае установки галочки, физлицо не будет выгружаться в систему";
		ЭлементФормы.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
	КонецЕсли;
	
КонецЕсли;

// Заполнение данных
Форма.НомерМедицинскойКнижки 	= Форма.ФизическоеЛицо.НомерМедицинскойКнижки;
Форма.СтатусМединспектор 	= Форма.ФизическоеЛицо.СтатусМединспектор;
Форма.НеВыгружатьМединспектор 	= Форма.ФизическоеЛицо.НеВыгружатьМединспектор;

Вся интеграция реализована через универсальное расширение (применимое к версии КОРП и ПРОФ) с удобным интерфейсом для настройки и тестирования обмена