"В процедуре глЗаполнитьТаблицуСотрудниковСОсобымиПериодами() устаналивается признак неких периодов. При свертывании таблицы получается, если было несколько периодов, например больничный, признак ЕстьБЛБудет олличен от 1, а дальше он анализируется на 1. При формировании ИС, если у сотрудника в периоде БЛ было больше 1, он автоматически попадет в СЗВ-6-2!!!<br> <br>Процедура глЗаполнитьТаблицуСотрудниковСОсобымиПериодами(ТаблицаСотрудниковСОсобымиПериодами, СписокСотрудников, ДатаНачала, ДатаОкончания,<br> СписокВРБольничныеЛисты,СписокВРОтпускаБезСохранения,СписокВРОтпускаИсключаемыеИзСтажа,СписокВРОтсутствиеПоБолезни,СписокВРПрочиеИсключаемыеИзСтажа = """")<br> <br> // <br> <br> ДатаЗапросаС = ДатаНачала;<br> ДатаЗапросаПо = ДатаОкончания; <br> <br> Если ПустоеЗначение(СписокВРПрочиеИсключаемыеИзСтажа)=1 Тогда<br> СписокВРПрочиеИсключаемыеИзСтажа = СоздатьОбъект("СписокЗначений"); <br> КонецЕсли;<br> СписокВР = СоздатьОбъект("СписокЗначений");<br> СписокВРБольничныеЛисты.Выгрузить(СписокВР);<br> Для Ном =1 По СписокВРОтпускаБезСохранения.РазмерСписка() Цикл<br> СписокВР.ДобавитьЗначение(СписокВРОтпускаБезСохранения.ПолучитьЗначение(Ном)); <br> КонецЦикла;<br> Для Ном =1 По СписокВРОтпускаИсключаемыеИзСтажа.РазмерСписка() Цикл<br> СписокВР.ДобавитьЗначение(СписокВРОтпускаИсключаемыеИзСтажа.ПолучитьЗначение(Ном)); <br> КонецЦикла; <br> Для Ном =1 По СписокВРОтсутствиеПоБолезни.РазмерСписка() Цикл<br> СписокВР.ДобавитьЗначение(СписокВРОтсутствиеПоБолезни.ПолучитьЗначение(Ном)); <br> КонецЦикла;<br> Для Ном =1 По СписокВРПрочиеИсключаемыеИзСтажа.РазмерСписка() Цикл<br> СписокВР.ДобавитьЗначение(СписокВРПрочиеИсключаемыеИзСтажа.ПолучитьЗначение(Ном)); <br> КонецЦикла;<br> Запрос=СоздатьОбъект("Запрос");<br> ТекстЗапроса = "//{{ЗАПРОС(ТаблицаПериодовДействия)<br> |с ДатаЗапросаС по ДатаЗапросаПо;<br> |Сотрудник = ЖурналРасчетов.Зарплата.Объект;<br> |ВидРасч = ЖурналРасчетов.Зарплата.ВидРасч;<br> |ТекущийДокумент = ЖурналРасчетов.Зарплата.ТекущийДокумент;<br> |ТекущаяЗапись = ЖурналРасчетов.Зарплата.ТекущаяЗапись;<br> |Группировка Сотрудник без групп;<br> |Группировка ТекущаяЗапись;<br> |Условие(Сотрудник в СписокСотрудников);<br> |Условие(ВидРасч в СписокВР);<br> |"//}}ЗАПРОС<br> ; <br> <br> Если Запрос.Выполнить(ТекстЗапроса) =1 Тогда<br> Пока Запрос.Группировка("Сотрудник")=1 Цикл <br> Пока Запрос.Группировка("ТекущаяЗапись")=1 Цикл <br> <br> ВР = Запрос.ВидРасч;<br> Если СписокВРБольничныеЛисты.Принадлежит(ВР) = 1 Тогда<br> ТаблицаСотрудниковСОсобымиПериодами.НоваяСтрока();<br> ТаблицаСотрудниковСОсобымиПериодами.Сотрудник = Запрос.Сотрудник;<br> ТаблицаСотрудниковСОсобымиПериодами.ЕстьБЛ = 1;<br> ИначеЕсли СписокВРОтпускаБезСохранения.Принадлежит(ВР) = 1 Тогда<br> ТаблицаСотрудниковСОсобымиПериодами.НоваяСтрока();<br> ТаблицаСотрудниковСОсобымиПериодами.Сотрудник = Запрос.Сотрудник;<br> ТаблицаСотрудниковСОсобымиПериодами.ЕстьОтпускЗаСвойСчет = 1;<br> ИначеЕсли СписокВРОтпускаИсключаемыеИзСтажа.Принадлежит(ВР) = 1 Тогда<br> ТаблицаСотрудниковСОсобымиПериодами.НоваяСтрока();<br> ТаблицаСотрудниковСОсобымиПериодами.Сотрудник = Запрос.Сотрудник;<br> ТаблицаСотрудниковСОсобымиПериодами.ЕстьОтпуск = 1;<br> ИначеЕсли СписокВРОтсутствиеПоБолезни.Принадлежит(ВР) = 1 Тогда<br> ТаблицаСотрудниковСОсобымиПериодами.НоваяСтрока();<br> ТаблицаСотрудниковСОсобымиПериодами.Сотрудник = Запрос.Сотрудник;<br> ТаблицаСотрудниковСОсобымиПериодами.ОтсутствиеПоБолезни = 1; <br> ИначеЕсли СписокВРПрочиеИсключаемыеИзСтажа.Принадлежит(ВР) = 1 Тогда<br> Док = Запрос.ТекущийДокумент;<br> Если Док.Вид() = "Невыходы" Тогда<br> Если Док.ПричинаОтсутствия = Перечисление.ПричинаОтсутствия.ПростойПоВинеРаботника Тогда<br> ТаблицаСотрудниковСОсобымиПериодами.НоваяСтрока();<br> ТаблицаСотрудниковСОсобымиПериодами.Сотрудник = Запрос.Сотрудник;<br> ТаблицаСотрудниковСОсобымиПериодами.ПрочиеИсключенияИзСтажа = 1; <br> КонецЕсли;<br> <br> КонецЕсли; <br> КонецЕсли;<br> <br> КонецЦикла;<br> КонецЦикла;<br> КонецЕсли; <br> <br> ТаблицаСотрудниковСОсобымиПериодами.Свернуть("Сотрудник","ЕстьБЛ,ЕстьОтпускЗаСвойСчет,ЕстьОтпуск,ОтсутствиеПоБолезни, ПрочиеИсключенияИзСтажа");<br> //natl здесь добавлено<br> ТаблицаСотрудниковСОсобымиПериодами.ВыбратьСтроки();<br> Пока ТаблицаСотрудниковСОсобымиПериодами.ПолучитьСтроку()=1 Цикл<br> ТаблицаСотрудниковСОсобымиПериодами.ЕстьБЛ=Мин(ТаблицаСотрудниковСОсобымиПериодами.ЕстьБЛ,1);<br> ТаблицаСотрудниковСОсобымиПериодами.ЕстьОтпускЗаСвойСчет=Мин(ТаблицаСотрудниковСОсобымиПериодами.ЕстьОтпускЗаСвойСчет,1);<br> ТаблицаСотрудниковСОсобымиПериодами.ЕстьОтпуск=Мин(ТаблицаСотрудниковСОсобымиПериодами.ЕстьОтпуск,1);<br> ТаблицаСотрудниковСОсобымиПериодами.ОтсутствиеПоБолезни=Мин(ТаблицаСотрудниковСОсобымиПериодами.ОтсутствиеПоБолезни,1);<br> ТаблицаСотрудниковСОсобымиПериодами.ПрочиеИсключенияИзСтажа=Мин(ТаблицаСотрудниковСОсобымиПериодами.ПрочиеИсключенияИзСтажа,1);<br> КонецЦикла;<br> //natl- здесь добавлено<br>КонецПроцедуры //глЗаполнитьТаблицуСотрудниковСОсобымиПериодами"