Больничный лист / Форма списка / Модуль формы

файл
#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Перечисления.ПричиныНетрудоспособности.ДобавитьВФормуСпискаПредставлениеСтарыхПричин(
		Список,
		"ПричинаНетрудоспособности",
		"ПричинаНетрудоспособности",
		"ДатаНачалаСобытия");
	
	Если Параметры.Свойство("РежимВыбораПервичногоБольничногоЛиста") 
		И Параметры.РежимВыбораПервичногоБольничногоЛиста Тогда
		
		Элементы.Список.РежимВыбора = Истина;
		
		СписокИсключаемых = Новый СписокЗначений;
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	БольничныйЛист.ПервичныйБольничныйЛист КАК Ссылка
		|ИЗ
		|	Документ.БольничныйЛист КАК БольничныйЛист
		|ГДЕ
		|	БольничныйЛист.Ссылка <> &ТекущийДокумент
		|	И (&Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
		|			ИЛИ БольничныйЛист.Организация = &Организация)
		|	И (&Сотрудник = ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)
		|			ИЛИ БольничныйЛист.Сотрудник = &Сотрудник)
		|	И (&ФизическоеЛицо = ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)
		|			ИЛИ БольничныйЛист.ФизическоеЛицо = &ФизическоеЛицо)
		|	И БольничныйЛист.ПервичныйБольничныйЛист <> ЗНАЧЕНИЕ(Документ.БольничныйЛист.ПустаяСсылка)
		|	И БольничныйЛист.ПометкаУдаления = ЛОЖЬ";
		Если Параметры.Отбор.Свойство("Организация") Тогда
			Запрос.УстановитьПараметр("Организация", Параметры.Отбор.Организация);
		Иначе
			Запрос.УстановитьПараметр("Организация", Справочники.Организации.ПустаяСсылка());
		КонецЕсли;
		Если Параметры.Отбор.Свойство("Сотрудник") Тогда
			Запрос.УстановитьПараметр("Сотрудник", Параметры.Отбор.Сотрудник);
		Иначе	
			Запрос.УстановитьПараметр("Сотрудник", Справочники.Сотрудники.ПустаяСсылка());
		КонецЕсли;
		Если Параметры.Отбор.Свойство("ФизическоеЛицо") Тогда
			Запрос.УстановитьПараметр("ФизическоеЛицо", Параметры.Отбор.ФизическоеЛицо);
		Иначе	
			Запрос.УстановитьПараметр("ФизическоеЛицо", Справочники.ФизическиеЛица.ПустаяСсылка());
		КонецЕсли;
		Если Параметры.Свойство("ТекущийДокумент") Тогда
			Запрос.УстановитьПараметр("ТекущийДокумент", Параметры.ТекущийДокумент);
		Иначе	
			Запрос.УстановитьПараметр("ТекущийДокумент", Документы.БольничныйЛист.ПустаяСсылка());
		КонецЕсли;
		
		Результат = Запрос.Выполнить();
		МассивИсключаемых = Результат.Выгрузить().ВыгрузитьКолонку("Ссылка");
		
		СписокИсключаемых.ЗагрузитьЗначения(МассивИсключаемых);
		Если Параметры.Свойство("ТекущийДокумент") Тогда
			СписокИсключаемых.Добавить(Параметры.ТекущийДокумент);
		КонецЕсли;	
		
		Если СписокИсключаемых.Количество() > 0 Тогда
			ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ЭлементОтбора.ВидСравнения 		= ВидСравненияКомпоновкиДанных.НеВСписке;
			ЭлементОтбора.ЛевоеЗначение 	= Новый ПолеКомпоновкиДанных("Ссылка");
			ЭлементОтбора.ПравоеЗначение 	= СписокИсключаемых;
		КонецЕсли;
		
		ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбора.ВидСравнения 		= ВидСравненияКомпоновкиДанных.Равно;
		ЭлементОтбора.ЛевоеЗначение 	= Новый ПолеКомпоновкиДанных("ПометкаУдаления");
		ЭлементОтбора.ПравоеЗначение 	= Ложь;
			
	ИначеЕсли Параметры.РежимВыбора Тогда
		Элементы.Список.РежимВыбора = Истина;
	КонецЕсли;
	
	МногофункциональныеДокументыБЗКФормы.УстановитьВидимостьКомандыУтвердитьВСписке(ЭтотОбъект);
	ЗарплатаКадрыРасширенный.УстановитьУсловноеОформлениеСпискаМногофункциональныхДокументов(ЭтаФорма);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
	ПараметрыРазмещения.КоманднаяПанель = Элементы.КоманднаяПанельФормы;
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	СтруктураПараметровОтбора = Новый Структура();
	ЗарплатаКадры.ДобавитьПараметрОтбора(СтруктураПараметровОтбора, "Подразделение",
		Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"), НСтр("ru = 'Подразделение'"));
	
	ЗарплатаКадры.ПриСозданииНаСервереФормыСДинамическимСписком(ЭтотОбъект, "Список",,
		СтруктураПараметровОтбора, "СписокКритерииОтбора");
		
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ШтрихкодыБольничныхЛистов") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("ШтрихкодыБольничныхЛистов");
		Модуль.НастроитьСканерШтрихкода(ЭтаФорма);
	КонецЕсли;
	
	// СтандартныеПодсистемы.КонтрольВеденияУчета
	КонтрольВеденияУчетаБЗК.ПриСозданииНаСервереФормыСписка(ЭтотОбъект, "Список");
	// Конец СтандартныеПодсистемы.КонтрольВеденияУчета

	// СтандартныеПодсистемы.ВерсионированиеОбъектов
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
	
	ОбновитьЭлементыПособий();
	
	// БлокировкаИзмененияОбъектов
	БлокировкаИзмененияОбъектов.ПриСозданииНаСервереФормыСписка(ЭтотОбъект, Элементы.КоманднаяПанельФормы);
	// Конец БлокировкаИзмененияОбъектов
	
	// ЭДОБЗК
	ЭДОБЗК.ПриСозданииНаСервереФормыСписка(ЭтотОбъект, Список);
	// Конец ЭДОБЗК
	
	// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
	Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
		МодульУчетОригиналовПервичныхДокументов = ОбщегоНазначения.ОбщийМодуль("УчетОригиналовПервичныхДокументов");
		МодульУчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаСписка(ЭтотОбъект, Элементы.Список, Элементы.Комментарий);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
	
	// ПроцессыОбработкиДокументов
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
		МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
		МодульПроцессыОбработкиДокументовЗарплата.ПриСозданииНаСервереФормыСписка(ЭтотОбъект, "Список");
	КонецЕсли;	
	// Конец ПроцессыОбработкиДокументов

	// ИнтеграцияС1САрхивом 
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ИнтеграцияС1САрхивомЗарплатаКадры") Тогда
		МодульИнтеграцияС1САрхивом = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияС1САрхивом");
		МодульИнтеграцияС1САрхивом.ПриСозданииНаСервереФормыСписка(ЭтотОбъект);
	КонецЕсли;
	// Конец ИнтеграцияС1САрхивом

КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ШтрихкодыБольничныхЛистов") Тогда 
		Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("ШтрихкодыБольничныхЛистовКлиент");
		Модуль.НачатьПодключениеОборудованиеПриОткрытииФормы(ЭтаФорма);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ШтрихкодыБольничныхЛистов") Тогда 
		Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("ШтрихкодыБольничныхЛистовКлиент");
		Модуль.НачатьОтключениеОборудованиеПриЗакрытииФормы(ЭтаФорма);
	КонецЕсли;
	
КонецПроцедуры

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

#КонецОбласти


#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	ОценкаПроизводительностиКлиент.ЗамерВремени("ОткрытиеФормыДокументаБольничныйЛист");
		
	// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
		МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент");
		МодульУчетОригиналовПервичныхДокументовКлиент.СписокВыбор(Поле.Имя, ЭтотОбъект, Элементы.Список, СтандартнаяОбработка);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
	
КонецПроцедуры

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
	
	ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьДоступностьКомандыУтвердитьВМногофункциональныхДокументах(ЭтаФорма);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

&НаСервере
Процедура СписокПередЗагрузкойПользовательскихНастроекНаСервере(Элемент, Настройки)
	ЗарплатаКадры.ПроверитьПользовательскиеНастройкиДинамическогоСписка(ЭтотОбъект, Настройки);
КонецПроцедуры

&НаСервере
Процедура СписокПриОбновленииСоставаПользовательскихНастроекНаСервере(СтандартнаяОбработка)
	
	ЗарплатаКадры.ПроверитьПользовательскиеНастройкиДинамическогоСписка(ЭтотОбъект, , СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
	
	ОценкаПроизводительностиКлиент.ЗамерВремени("ОткрытиеФормыНовогоДокументаБольничныйЛист");

КонецПроцедуры

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

&НаКлиенте
Процедура СписокПриИзменении(Элемент)
	Оповестить("Запись_БольничныйЛист", Новый Структура, Неопределено);
КонецПроцедуры

#КонецОбласти


#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Утвердить(Команда)
	
	ЗарплатаКадрыРасширенныйКлиент.УтвердитьВыделенныеМногофункциональныеДокументы(ЭтаФорма);
	
КонецПроцедуры

// БлокировкаИзмененияОбъектов

&НаКлиенте
Процедура Подключаемый_РазблокироватьОбъекты(Команда)
	БлокировкаИзмененияОбъектовКлиент.РазблокироватьОбъектыСписка(ЭтотОбъект, Список, Элементы.Список.ВыделенныеСтроки);
КонецПроцедуры

// Конец БлокировкаИзмененияОбъектов

#КонецОбласти


#Область СлужебныеПроцедурыИФункции

#Область КонтрольВеденияУчета

// СтандартныеПодсистемы.КонтрольВеденияУчета
&НаКлиенте
Процедура Подключаемый_Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) Экспорт
	
	КонтрольВеденияУчетаКлиентБЗК.ОткрытьОтчетПоПроблемамИзСписка(ЭтотОбъект, "Список", Поле, СтандартнаяОбработка);
	
КонецПроцедуры
// Конец СтандартныеПодсистемы.КонтрольВеденияУчета

#КонецОбласти

#Область ПодключаемыеКоманды

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

#КонецОбласти

#Область ПособияСоциальногоСтрахования

// ЗарплатаКадрыРасширеннаяПодсистемы.ПособияСоциальногоСтрахования
&НаКлиенте
Процедура Подключаемый_ОбновитьЭлементыПособийНаКлиенте()
	ОбновитьЭлементыПособий();
КонецПроцедуры

&НаСервере
Процедура ОбновитьЭлементыПособий()
	УчетПособийСоциальногоСтрахованияРасширенный.ОбновитьФорму(ЭтотОбъект);
КонецПроцедуры
// Конец ЗарплатаКадрыРасширеннаяПодсистемы.ПособияСоциальногоСтрахования

#КонецОбласти

&НаКлиенте
Процедура Подключаемый_ПараметрОтбораПриИзменении(Элемент)
	ЗарплатаКадрыКлиент.ПараметрОтбораНаФормеСДинамическимСпискомПриИзменении(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры

&НаСервере
Процедура НастроитьДинамическийСписокНаСервере(ОписаниеМодификации) Экспорт
	ЗарплатаКадрыРасширенный.НастроитьДинамическийСписокПоОписаниюМодификации(ЭтаФорма, ОписаниеМодификации);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПараметрМодификацииВыбор(Элемент, ИмяПараметра, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ЗарплатаКадрыРасширенныйКлиент.ПараметрМодификацииОбработкаНавигационнойСсылки(
		ЭтотОбъект, Элемент.Родитель.Имя, ИмяПараметра);
	
КонецПроцедуры

// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
&НаКлиенте
Процедура Подключаемый_ОбновитьКомандыСостоянияОригинала()
	
	ОбновитьКомандыСостоянияОригинала()
	
КонецПроцедуры
&НаСервере
Процедура ОбновитьКомандыСостоянияОригинала()
	
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	
КонецПроцедуры
//Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов

#КонецОбласти

Связанные материалы