Пособия за счет ФСС / Форма / Модуль формы

файл

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

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

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

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

&НаКлиенте
Процедура ОформитьЗаявлениеНаВыплатуБольничного(Команда)
	МассивСсылок = Элементы.БольничныеЛисты.ВыделенныеСтроки;
	Если МассивСсылок.Количество() > 0 Тогда
		ОформитьНедостающиеЗаявленияПоСпискуДокументов(МассивСсылок);
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОформитьЗаявлениеНаВыплатуОтпускаПоУходу(Команда)
	МассивСсылок = ЭтаФорма.Элементы.ОтпускаПоУходуЗаРебенком.ВыделенныеСтроки;
	Если МассивСсылок.Количество() > 0 Тогда
		ОформитьНедостающиеЗаявленияПоСпискуДокументов(МассивСсылок);
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура СоздатьБольничныйЛист(Команда)
	ОткрытьФорму("Документ.БольничныйЛист.ФормаОбъекта");	
КонецПроцедуры

&НаКлиенте
Процедура ОформитьНедостающиеЗаявления(Команда)
	ОформитьНедостающиеЗаявленияПоСпискуДокументов();
КонецПроцедуры

&НаКлиенте
Процедура СоздатьОтпускПоУходуЗаРебенком(Команда)
	ОткрытьФорму("Документ.ОтпускПоУходуЗаРебенком.ФормаОбъекта");
КонецПроцедуры

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

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

&НаКлиенте
Процедура УстановитьРееструСтатусПринят(Команда)
	МассивСсылок = Элементы.Реестры.ВыделенныеСтроки;
	Если МассивСсылок.Количество() > 0 Тогда
		УстановитьНовыйСтатусРеестру(МассивСсылок, ПредопределенноеЗначение("Перечисление.СтатусыЗаявленийИРеестровНаВыплатуПособий.ПринятФСС"));
	КонецЕсли;
КонецПроцедуры  

&НаКлиенте
Процедура СоздатьЗаявление(Команда)
	ОткрытьФорму("Документ.ЗаявлениеСотрудникаНаВыплатуПособия.ФормаОбъекта");	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьВсе(Команда)
	ОбновитьВсеНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ВключитьВРеестр(Команда)
	МассивСсылок = Элементы.ЗаявленияНаВыплатуПособия.ВыделенныеСтроки;
	Если МассивСсылок.Количество() > 0 Тогда
		ВключитьВРеестрНаСервере(МассивСсылок);
	КонецЕсли;
КонецПроцедуры

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

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

&НаКлиенте
Процедура СоздатьОплатуДнейУходаЗаДетьмиИнвалидами(Команда)
	ОткрытьФорму("Документ.ОплатаДнейУходаЗаДетьмиИнвалидами.ФормаОбъекта");
КонецПроцедуры

&НаКлиенте
Процедура СоздатьЗаявлениеОВозмещенииДополнительныхВыходныхДней(Команда)
	ОткрытьФорму("Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.ФормаОбъекта");
КонецПроцедуры

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

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

&НаКлиенте
Процедура СоздатьВозмещениеБольничныхВЧастиФБ(Команда)
	ОткрытьФорму("Документ.ВозмещениеБольничныхВЧастиФБ.ФормаОбъекта");
КонецПроцедуры

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

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


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


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

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

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

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

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

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

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

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

#Область ВключитьВРеестрНаСервере

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

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

&НаСервере
Процедура ДобавитьЗаявленияВРеестр(Реестр, ЗаявленияДляДобавления)
	
	Если ЗаявленияДляДобавления.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;
	
	РеестрДокумент = Реестр.ПолучитьОбъект();
	
	Для Каждого ЗаявлениеДляДобавления Из ЗаявленияДляДобавления Цикл
		НоваяСтрокаРеестра 						= РеестрДокумент.СведенияНеобходимыеДляНазначенияПособий.Добавить();
		НоваяСтрокаРеестра.Заявление 			= ЗаявлениеДляДобавления.Заявление;
		НоваяСтрокаРеестра.ПервичныйДокумент 	= ЗаявлениеДляДобавления.Основание;
	КонецЦикла;
	
	РеестрДокумент.Записать();
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	ОрганизацияПриИзмененииНаСервере();
КонецПроцедуры

&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
	УстановитьОтборыВДинамическихСписках();
КонецПроцедуры

&НаСервере
Процедура УстановитьОтборыВДинамическихСписках()
	МассивИмен = ИменаДинамическихСписков();
	Для Каждого ИмяСписка Из МассивИмен Цикл
		УстановитьОтборыПоОрганизацииВТаблице(ИмяСписка);
	КонецЦикла;
КонецПроцедуры

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

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

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

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