public object ОбработатьСобытиеОтСканераШтрихкода(/*ОписаниеСобытия, ОписаниеОшибки = ""*/)
{
if(true/*Не ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Документы.НачислениеПоБольничномуЛисту)*/)
{
//ОписаниеОшибки = НСтр("ru = 'У текущего пользователя нет прав на ввод начислений по больничному листу!'");
}
//СписокПараметров = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Сред(ОписаниеСобытия.Данные, 7), "!");
if(true/*СписокПараметров.Количество() = 0*/)
{
//ОписаниеОшибки = НСтр("ru = 'В считанном штрихкоде отсутствуют сведения о листке нетрудоспособности!'");
}
/*// Прочитаем и заполним структуру реквизитов в зависимости от версии
*/
/*// Имена полей в структуре должны совпадать с именами реквизитов документа
*/
//СтруктураРеквизитов = Новый Структура;
if(true/*СписокПараметров[0] = "01"*/)
{
//СтруктураРеквизитов.Вставить("НомерВходящегоДокумента", СписокПараметров[1]);
//ВходящийНомерПервичногоЛистка = СписокПараметров[2];
//СтруктураРеквизитов.Вставить("ЯвляетсяПродолжениемБолезни", СписокПараметров[3] = "0");
//СтруктураРеквизитов.Вставить("ЯвляетсяДубликатом", СписокПараметров[4] = "1");
//СтруктураРеквизитов.Вставить("ДатаВыдачиБольничного", ДатаИзСтроки(СписокПараметров[5]));
//СтруктураРеквизитов.Вставить("НаименованиеЛПУ", СписокПараметров[6]);
//СтруктураРеквизитов.Вставить("АдресЛПУ", СписокПараметров[7]);
//СтруктураРеквизитов.Вставить("ОГРН_ЛПУ", СписокПараметров[8]);
//СтруктураРеквизитов.Вставить("Фамилия", СписокПараметров[9]);
//СтруктураРеквизитов.Вставить("Имя", СписокПараметров[10]);
//СтруктураРеквизитов.Вставить("Отчество", СписокПараметров[11]);
//ДатаРожденияСотрудника = ДатаИзСтроки(СписокПараметров[12]);
//ВидЗанятостиСотрудника = ?(СписокПараметров[15] = "0", Перечисления.ВидыЗанятостиВОрганизации.Совместительство, Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы);
//НаименованиеОрганизации = СписокПараметров[14];
//СтруктураРеквизитов.Вставить("КодПричиныНетрудоспособности", СписокПараметров[16]);
//СтруктураРеквизитов.Вставить("ДополнительныйКодПричиныНетрудоспособности", СписокПараметров[17]);
//СтруктураРеквизитов.Вставить("ВторойКодПричиныНетрудоспособности", СписокПараметров[18]);
//СтруктураРеквизитов.Вставить("НомерЛисткаПоОсновномуМестуРаботы", СписокПараметров[19]);
//СтруктураРеквизитов.Вставить("ДатаИзмененияКодаПричиныНетрудоспособности", ДатаИзСтроки(СписокПараметров[21]));
//СтруктураРеквизитов.Вставить("ДатаОкончанияПутевки", ДатаИзСтроки(СписокПараметров[22]));
//СтруктураРеквизитов.Вставить("НомерПутевки", СписокПараметров[23]);
//СтруктураРеквизитов.Вставить("ОГРН_Санатория", СписокПараметров[24]);
//УходЗаБольнымЧленомСемьи = Новый Массив;
if(true/*СписокПараметров[28] <> ""*/)
{
//УходЗаБольнымЧленомСемьи.Добавить(Новый Структура("ВозрастЛет, ВозрастМесяцев, РодственнаяСвязь, ФИО", СписокПараметров[25], СписокПараметров[26], СписокПараметров[27], СписокПараметров[28]));
}
if(true/*СписокПараметров[32] <> ""*/)
{
//УходЗаБольнымЧленомСемьи.Добавить(Новый Структура("ВозрастЛет, ВозрастМесяцев, РодственнаяСвязь, ФИО", СписокПараметров[29], СписокПараметров[30], СписокПараметров[31], СписокПараметров[32]));
}
//СтруктураРеквизитов.Вставить("УходЗаБольнымЧленомСемьи", УходЗаБольнымЧленомСемьи);
//СтруктураРеквизитов.Вставить("ПоставленаНаУчетВРанниеСрокиБеременности", СписокПараметров[33] = "1");
//СтруктураРеквизитов.Вставить("ПериодНахожденияВСтационареСРебенкомС", ДатаИзСтроки(СписокПараметров[34]));
//СтруктураРеквизитов.Вставить("ПериодНахожденияВСтационареСРебенкомПо", ДатаИзСтроки(СписокПараметров[35]));
//СтруктураРеквизитов.Вставить("КодНарушенияРежима", СписокПараметров[36]);
//СтруктураРеквизитов.Вставить("ДатаНарушенияРежима", ДатаИзСтроки(СписокПараметров[37]));
//СтруктураРеквизитов.Вставить("ДатаНаправленияВБюроМСЭ", ДатаИзСтроки(СписокПараметров[38]));
//СтруктураРеквизитов.Вставить("ДатаРегистрацииДокументовМСЭ", ДатаИзСтроки(СписокПараметров[39]));
//СтруктураРеквизитов.Вставить("ДатаОсвидетельствованияМСЭ", ДатаИзСтроки(СписокПараметров[40]));
//СтруктураРеквизитов.Вставить("ГруппаИнвалидности", СписокПараметров[41]);
//СтруктураРеквизитов.Вставить("УстановленаИзмененаГруппаИнвалидности ", СписокПараметров[41] <> "");
//СтруктураРеквизитов.Вставить("ДатаНачала", ДатаИзСтроки(СписокПараметров[42]));
//СтруктураРеквизитов.Вставить("ДатаНачалаОплаты", ДатаИзСтроки(СписокПараметров[42]));
//СтруктураРеквизитов.Вставить("ДатаНачалаСобытия", ?(Не СтруктураРеквизитов.ЯвляетсяПродолжениемБолезни, ДатаИзСтроки(СписокПараметров[42]), Дата(1, 1, 1)));
//СтруктураРеквизитов.Вставить("ДатаОкончания", ДатаИзСтроки(СписокПараметров[43]));
//ОсвобождениеОтРаботыВЛисткеНетрудоспособности = Новый Массив;
if(true/*СписокПараметров[42] <> ""*/)
{
//ОсвобождениеОтРаботыВЛисткеНетрудоспособности.Добавить(Новый Структура("ДатаНачала, ДатаОкончания, ДолжностьВрача, ФИОВрача", ДатаИзСтроки(СписокПараметров[42]), ДатаИзСтроки(СписокПараметров[43]), СписокПараметров[44], СписокПараметров[45]));
}
if(true/*СписокПараметров[46] <> ""*/)
{
//ОсвобождениеОтРаботыВЛисткеНетрудоспособности.Добавить(Новый Структура("ДатаНачала, ДатаОкончания, ДолжностьВрача, ФИОВрача", ДатаИзСтроки(СписокПараметров[46]), ДатаИзСтроки(СписокПараметров[47]), СписокПараметров[48], СписокПараметров[49]));
}
if(true/*СписокПараметров[50] <> ""*/)
{
//ОсвобождениеОтРаботыВЛисткеНетрудоспособности.Добавить(Новый Структура("ДатаНачала, ДатаОкончания, ДолжностьВрача, ФИОВрача", ДатаИзСтроки(СписокПараметров[50]), ДатаИзСтроки(СписокПараметров[51]), СписокПараметров[52], СписокПараметров[53]));
}
//СтруктураРеквизитов.Вставить("ОсвобождениеОтРаботыВЛисткеНетрудоспособности", ОсвобождениеОтРаботыВЛисткеНетрудоспособности);
//СтруктураРеквизитов.Вставить("НовыйСтатусНетрудопособного", СписокПараметров[54]);
//СтруктураРеквизитов.Вставить("ДатаНовыйСтатусНетрудопособного", ДатаИзСтроки(СписокПараметров[55]));
//СтруктураРеквизитов.Вставить("ДатаВыходаНаРаботу", ДатаИзСтроки(СписокПараметров[56]));
//СтруктураРеквизитов.Вставить("НомерЛисткаПродолжения", СокрЛП(СписокПараметров[57]));
if(true/*СтруктураРеквизитов.КодПричиныНетрудоспособности = "01" Или СтруктураРеквизитов.КодПричиныНетрудоспособности = "02"*/)
{
//СтруктураРеквизитов.Вставить("ПричинаНетрудоспособности", Перечисления.ПричиныНетрудоспособности.ОбщееЗаболевание);
//СтруктураРеквизитов.Вставить("СлучайУходаЗаБольнымРебенком", Перечисления.СлучаиУходаЗаБольнымиДетьми.ПустаяСсылка());
}
}
if(true/*СтруктураРеквизитов.Свойство("ОГРН_ЛПУ")*/)
{
//СтруктураРеквизитов.Вставить("ЛПУ", Справочники.МедицинскиеОрганизации.НайтиПоРеквизиту("ОГРН",СтруктураРеквизитов.ОГРН_ЛПУ));
}
/*// Проверим наличие документа в ИБ
*/
//СтруктураБольничных = ПолныеПраваЗК.НайтиБольничныеЛистыПоВходящемуНомеру(СтруктураРеквизитов.НомерВходящегоДокумента, ВходящийНомерПервичногоЛистка);
//БольничныйЛист = СтруктураБольничных.БольничныйЛист;
//СтруктураРеквизитов.Вставить("ПервичныйБольничныйЛист", СтруктураБольничных.ПервичныйЛист);
/*// Проверим, есть ли у текущего пользователя доступ к этому документу, а заодно прочитаем существующие значения документа
*/
//СтруктураРеквизитовСуществующегоДокумента = Новый Структура("Сотрудник,Физлицо,ПервичныйБольничныйЛист,ЯвляетсяПродолжениемБолезни,ДатаНачала,ДатаОкончания,ПричинаНетрудоспособности");
if(true/*БольничныйЛист <> Неопределено*/)
{
//Запрос = Новый Запрос;
//Запрос.УстановитьПараметр("БольничныйЛист", БольничныйЛист);
/*Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| НачислениеПоБольничномуЛисту.Сотрудник,
| НачислениеПоБольничномуЛисту.Физлицо,
| НачислениеПоБольничномуЛисту.ПервичныйБольничныйЛист,
| НачислениеПоБольничномуЛисту.ЯвляетсяПродолжениемБолезни,
| НачислениеПоБольничномуЛисту.ДатаНачала,
| НачислениеПоБольничномуЛисту.ДатаОкончания,
| НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности
|ИЗ
| Документ.НачислениеПоБольничномуЛисту КАК НачислениеПоБольничномуЛисту
|ГДЕ
| НачислениеПоБольничномуЛисту.Ссылка = &БольничныйЛист
| И (НЕ НачислениеПоБольничномуЛисту.ПометкаУдаления)
|
|УПОРЯДОЧИТЬ ПО
| НачислениеПоБольничномуЛисту.ПериодРегистрации УБЫВ,
| НачислениеПоБольничномуЛисту.МоментВремени УБЫВ";*/
//Результат = Запрос.Выполнить();
if(true/*Результат.Пустой()*/)
{
//ОписаниеОшибки = "Документ начисления по больничному листу с входящим номером '" + СтруктураРеквизитов.НомерВходящегоДокумента + "' найден в базе, но не доступен текущему пользователю.";
}
//Выборка = Результат.Выбрать();
//Выборка.Следующий();
//ЗаполнитьЗначенияСвойств(СтруктураРеквизитовСуществующегоДокумента, Выборка);
}
/*// Проверим доступ к первичному больничному листу
*/
if(true/*Не СтруктураБольничных.ПервичныйЛист.Пустая()*/)
{
//Запрос = Новый Запрос;
//Запрос.УстановитьПараметр("БольничныйЛист", СтруктураБольничных.ПервичныйЛист);
/*Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| НачислениеПоБольничномуЛисту.Сотрудник,
| НачислениеПоБольничномуЛисту.Физлицо
|ИЗ
| Документ.НачислениеПоБольничномуЛисту КАК НачислениеПоБольничномуЛисту
|ГДЕ
| НачислениеПоБольничномуЛисту.Ссылка = &БольничныйЛист
| И (НЕ НачислениеПоБольничномуЛисту.ПометкаУдаления)
|
|УПОРЯДОЧИТЬ ПО
| НачислениеПоБольничномуЛисту.ПериодРегистрации УБЫВ,
| НачислениеПоБольничномуЛисту.МоментВремени УБЫВ";*/
//Результат = Запрос.Выполнить();
if(true/*Результат.Пустой()*/)
{
//ОписаниеОшибки = "Первичный документ начисления по больничному листу с входящим номером '" + СтруктураРеквизитов.НомерВходящегоДокумента + "' найден в базе, но не доступен текущему пользователю.";
}
//Выборка = Результат.Выбрать();
//Выборка.Следующий();
//ЗаполнитьЗначенияСвойств(СтруктураРеквизитовСуществующегоДокумента, Выборка);
}
//Запрос = Новый Запрос;
//Запрос.УстановитьПараметр("Фамилия", СтруктураРеквизитов.Фамилия);
//Запрос.УстановитьПараметр("Имя", СтруктураРеквизитов.Имя);
//Запрос.УстановитьПараметр("Отчество", СтруктураРеквизитов.Отчество);
//Запрос.УстановитьПараметр("ДатаРождения", ДатаРожденияСотрудника);
//Запрос.УстановитьПараметр("ВидЗанятости", ВидЗанятостиСотрудника);
/*Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| Сотрудники.Ссылка КАК Сотрудник,
| Сотрудники.Физлицо,
| Сотрудники.ТекущееОбособленноеПодразделение КАК Организация
|ИЗ
| Справочник.СотрудникиОрганизаций КАК Сотрудники
|ГДЕ
| Сотрудники.Физлицо В
| (ВЫБРАТЬ
| ФИОФизЛицСрезПоследних.ФизЛицо
| ИЗ
| РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
| ГДЕ
| ФИОФизЛицСрезПоследних.Фамилия = &Фамилия
| И ФИОФизЛицСрезПоследних.Имя = &Имя
| И ФИОФизЛицСрезПоследних.Отчество = &Отчество
| И ФИОФизЛицСрезПоследних.ФизЛицо.ДатаРождения = &ДатаРождения)
| И Сотрудники.ВидЗанятости = &ВидЗанятости
| И (НЕ Сотрудники.ПометкаУдаления)
| И Сотрудники.Актуальность
|
|УПОРЯДОЧИТЬ ПО
| Сотрудники.ДатаПриемаНаРаботу УБЫВ";*/
//Выборка = Запрос.Выполнить().Выбрать();
if(true/*Выборка.Следующий()*/)
{
//СтруктураРеквизитов.Вставить("Сотрудник", Выборка.Сотрудник);
//СтруктураРеквизитов.Вставить("Физлицо", Выборка.Физлицо);
//СтруктураРеквизитов.Вставить("Организация", Выборка.Организация);
}
/*// Проверим реквизиты существующего больничного на расхождения с данными сканера
*/
//ПерезаполнитьДокумент = Истина;
if(true/*БольничныйЛист <> Неопределено*/)
{
//ЕстьРазличия = Ложь;
//ТекстВопроса = "Найденный документ по начислению больничного листа имеет следующие расхождения:";
//ТекстВопроса = ТекстВопроса + Символы.ПС + "Выполнить перезаполнение документа?";
if(true/*ЕстьРазличия*/)
{
//Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
//ПерезаполнитьДокумент = Ответ = КодВозвратаДиалога.Да;
}
}
//Запрос.УстановитьПараметр("НаименованиеОрганизации", НаименованиеОрганизации);
/*Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Организации.Ссылка КАК Организация
|ИЗ
| Справочник.Организации КАК Организации
|ГДЕ
| (Организации.НаименованиеСокращенное = &НаименованиеОрганизации
| ИЛИ Организации.Наименование = &НаименованиеОрганизации)
|
|УПОРЯДОЧИТЬ ПО
| Организации.ПометкаУдаления УБЫВ";*/
//Выборка = Запрос.Выполнить().Выбрать();
if(true/*Выборка.Следующий()*/)
{
//СтруктураРеквизитов.Вставить("Организация", Выборка.Организация);
}
if(true/*БольничныйЛист = Неопределено*/)
{
/*// Создадим новый документ
*/
//Форма = Документы.НачислениеПоБольничномуЛисту.ПолучитьФормуНовогоДокумента(, , СтруктураРеквизитов.НомерВходящегоДокумента);
}
if(true/*ПерезаполнитьДокумент*/)
{
//ЗаполнитьЗначенияСвойств(Форма, СтруктураРеквизитов);
//Форма.УходЗаБольнымЧленомСемьи.Очистить();
//Форма.ОсвобождениеОтРаботыВЛисткеНетрудоспособности.Очистить();
//Форма.ЗаполнитьОтсканированныйДокумент();
}
//Форма.Открыть();
//Форма.Модифицированность = ПерезаполнитьДокумент;
return null;
}