![]() |
![]() |
![]() |
|
Не работает процедура обработкаВыбора | ☑ | ||
---|---|---|---|---|
0
skupidom
30.10.18
✎
18:49
|
Процедура ДопДниБольничныхОтпусковСотрудниковОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.ФизическиеЛица") Тогда Если ДопДниБольничныхОтпусковСотрудников.НайтиСтроки(Новый Структура("ФизЛицо", ВыбранноеЗначение)).Количество() = 0 Тогда НоваяСтрока = ДопДниБольничныхОтпусковСотрудников.Добавить(); ФизЛицо = ВыбранноеЗначение; ФизЛицоНаименование = ФизЛицо.Наименование; СписокЗнНоминалы = Новый СписокЗначений; БердникОлегВладимировичИскл = Справочники.ФизическиеЛица.НайтиПоКоду("ЗП00000074"); СписокЗнНоминалы.Добавить(БердникОлегВладимировичИскл.Наименование); ЗапросТЧ = Новый Запрос; ЗапросТЧ.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | СотрудникиОрганизаций.Ссылка КАК Сотрудник |ПОМЕСТИТЬ ВТСотрудники |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций |ГДЕ | СотрудникиОрганизаций.ПометкаУдаления = ЛОЖЬ | И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ВТСотрудники.Сотрудник.Физлицо КАК Объект, | ЗначенияСвойствОбъектов.Значение КАК ДатаНачалаРаботыВКорпорации |ПОМЕСТИТЬ ВТФЛ |ИЗ | ВТСотрудники КАК ВТСотрудники | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО ВТСотрудники.Сотрудник.Физлицо = ЗначенияСвойствОбъектов.Объект |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &перемСвойство | И НЕ ВТСотрудники.Сотрудник.Физлицо.Наименование В ИЕРАРХИИ (&СЗНоминалы) | И ВТСотрудники.Сотрудник.Физлицо.Наименование = &ФЛНаименование |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТФЛ.ДатаНачалаРаботыВКорпорации КАК ДатаНачРаботыКорп, | ВТФЛ.Объект |ИЗ | ВТФЛ КАК ВТФЛ | |УПОРЯДОЧИТЬ ПО | ВТФЛ.Объект.Наименование"; ЗапросТЧ.УстановитьПараметр("перемСвойство",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00000000108")); ЗапросТЧ.УстановитьПараметр("СЗНоминалы",СписокЗнНоминалы); ЗапросТЧ.УстановитьПараметр("ФизЛицоНаименование",ФизЛицоНаименование); Выборка = ЗапросТЧ.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл // больничный ДопДнейОплаты = 0; // к ежегодному оплачиваемому отпуску за стаж работы в Корпорации по семейным обстоятельствам ОтпускДопДнейОплатыСО = 0; ОтпускДопДнейОплатыРР = 0; ОтпускДопДнейОплатыЮ = 0; ОтпускДопДнейОплатыСБР = 0; // ОтпускДопДнейОплатыЗаСтажРаботыВКорпорации = 0; // к ежегодному оплачиваемому отпуску за стаж работы в Корпорации ОтпускДопДнейОплатыСтажРаботы = 0; // ЗначВозврат = ОбщегоНазначения.ВозвратРазностьДат(Выборка.Объект); Сообщить("Физлицо " + Выборка.Объект + " Лет " + ЗначВозврат.Лет + " Месяцев " + ЗначВозврат.Месяцев + " Дней " + ЗначВозврат.Дней); // Для вида расчета = больничный: Если (ЗначВозврат.Лет = 2) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ДопДнейОплаты = 2; ИначеЕсли (ЗначВозврат.Лет = 3) И ((ЗначВозврат.Месяцев = 0) ИЛИ (ЗначВозврат.Дней = 0)) Тогда ДопДнейОплаты = 2; ИначеЕсли (ЗначВозврат.Лет = 3) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ДопДнейОплаты = 3; ИначеЕсли (ЗначВозврат.Лет = 4) Тогда ДопДнейОплаты = 3; ИначеЕсли (ЗначВозврат.Лет >= 5) Тогда ДопДнейОплаты = 4; КонецЕсли; //Если ДопДнейОплаты > 0 Тогда НоваяСтрТЧ = ДопДниБольничныхОтпусковСотрудников.Добавить(); НоваяСтрТЧ.ФизЛицо = Выборка.Объект; НоваяСтрТЧ.ДатаНачалаРаботыВКорпорации = Выборка.ДатаНачРаботыКорп; НоваяСтрТЧ.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Корпоративная доплата по больничному листу"); НоваяСтрТЧ.КоличесвоДопДней = ДопДнейОплаты; Если Год(Выборка.ДатаНачРаботыКорп) < Год(Дата) Тогда НоваяСтрТЧ.Год = Год(Дата); Иначе НоваяСтрТЧ.Год = Год(Выборка.ДатаНачРаботыКорп); КонецЕсли; //КонецЕсли; // Для вида расчета = отпуск по семейным обстоятельствам: // № 1 Бракосочетание работника Если (ЗначВозврат.Лет = 1) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ОтпускДопДнейОплатыСО = 1; ИначеЕсли (ЗначВозврат.Лет = 2) И ((ЗначВозврат.Месяцев = 0) ИЛИ (ЗначВозврат.Дней = 0)) Тогда ОтпускДопДнейОплатыСО = 1; ИначеЕсли (ЗначВозврат.Лет = 2) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ОтпускДопДнейОплатыСО = 2; ИначеЕсли (ЗначВозврат.Лет = 3) И ((ЗначВозврат.Месяцев = 0) ИЛИ (ЗначВозврат.Дней = 0)) Тогда ОтпускДопДнейОплатыСО = 2; ИначеЕсли (ЗначВозврат.Лет = 3) И (ЗначВозврат.Месяцев > 0 ИЛИ ЗначВозврат.Дней > 0) Тогда ОтпускДопДнейОплатыСО = 3; ИначеЕсли (ЗначВозврат.Лет > 3) Тогда ОтпускДопДнейОплатыСО = 3; КонецЕсли; //Если ОтпускДопДнейОплатыСО > 0 Тогда НоваяСтрТЧ = ДопДниБольничныхОтпусковСотрудников.Добавить(); НоваяСтрТЧ.ФизЛицо = Выборка.Объект; НоваяСтрТЧ.ДатаНачалаРаботыВКорпорации = Выборка.ДатаНачРаботыКорп; НоваяСтрТЧ.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Корпоративная оплата отпуска"); НоваяСтрТЧ.СобытиеОтпуска = Перечисления.СостоянияРаботникаОрганизации.БракосочетаниеРаботника; НоваяСтрТЧ.КоличесвоДопДней = ОтпускДопДнейОплатыСО; Если Год(Выборка.ДатаНачРаботыКорп) < Год(Дата) Тогда НоваяСтрТЧ.Год = Год(Дата); Иначе НоваяСтрТЧ.Год = Год(Выборка.ДатаНачРаботыКорп); КонецЕсли; //КонецЕсли; // № 2 Рождение ребенка Если (ЗначВозврат.Лет = 1) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ОтпускДопДнейОплатыРР = 1; ИначеЕсли (ЗначВозврат.Лет = 2) И ((ЗначВозврат.Месяцев = 0) ИЛИ (ЗначВозврат.Дней = 0)) Тогда ОтпускДопДнейОплатыРР = 1; ИначеЕсли (ЗначВозврат.Лет = 2) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ОтпускДопДнейОплатыРР = 2; ИначеЕсли (ЗначВозврат.Лет = 3) И ((ЗначВозврат.Месяцев = 0) ИЛИ (ЗначВозврат.Дней = 0)) Тогда ОтпускДопДнейОплатыРР = 2; ИначеЕсли (ЗначВозврат.Лет = 3) И (ЗначВозврат.Месяцев > 0 ИЛИ ЗначВозврат.Дней > 0) Тогда ОтпускДопДнейОплатыРР = 3; ИначеЕсли (ЗначВозврат.Лет > 3) Тогда ОтпускДопДнейОплатыРР = 3; КонецЕсли; //Если ОтпускДопДнейОплатыРР > 0 Тогда НоваяСтрТЧ = ДопДниБольничныхОтпусковСотрудников.Добавить(); НоваяСтрТЧ.ФизЛицо = Выборка.Объект; НоваяСтрТЧ.ДатаНачалаРаботыВКорпорации = Выборка.ДатаНачРаботыКорп; НоваяСтрТЧ.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Корпоративная оплата отпуска"); НоваяСтрТЧ.СобытиеОтпуска = Перечисления.СостоянияРаботникаОрганизации.РождениеРебенка; НоваяСтрТЧ.КоличесвоДопДней = ОтпускДопДнейОплатыРР; Если Год(Выборка.ДатаНачРаботыКорп) < Год(Дата) Тогда НоваяСтрТЧ.Год = Год(Дата); Иначе НоваяСтрТЧ.Год = Год(Выборка.ДатаНачРаботыКорп); КонецЕсли; //КонецЕсли; // № 3 Юбилей (дата,кратная 10) Если (ЗначВозврат.Лет = 1) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ОтпускДопДнейОплатыЮ = 1; ИначеЕсли (ЗначВозврат.Лет = 2) Тогда ОтпускДопДнейОплатыЮ = 1; ИначеЕсли (ЗначВозврат.Лет = 3) И (ЗначВозврат.Месяцев = 0) И (ЗначВозврат.Дней = 0) Тогда ОтпускДопДнейОплатыЮ = 1; ИначеЕсли (ЗначВозврат.Лет = 3) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ОтпускДопДнейОплатыЮ = 2; ИначеЕсли (ЗначВозврат.Лет > 3) Тогда ОтпускДопДнейОплатыЮ = 2; КонецЕсли; //Если ОтпускДопДнейОплатыЮ > 0 Тогда НоваяСтрТЧ = ДопДниБольничныхОтпусковСотрудников.Добавить(); НоваяСтрТЧ.ФизЛицо = Выборка.Объект; НоваяСтрТЧ.ДатаНачалаРаботыВКорпорации = Выборка.ДатаНачРаботыКорп; НоваяСтрТЧ.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Корпоративная оплата отпуска"); НоваяСтрТЧ.СобытиеОтпуска = Перечисления.СостоянияРаботникаОрганизации.ЮбилейДатаКратная10; НоваяСтрТЧ.КоличесвоДопДней = ОтпускДопДнейОплатыЮ; Если Год(Выборка.ДатаНачРаботыКорп) < Год(Дата) Тогда НоваяСтрТЧ.Год = Год(Дата); Иначе НоваяСтрТЧ.Год = Год(Выборка.ДатаНачРаботыКорп); КонецЕсли; //КонецЕсли; // № 4 Смерть близкого родственника Если (ЗначВозврат.Лет = 1) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ОтпускДопДнейОплатыСБР = 1; ИначеЕсли (ЗначВозврат.Лет = 2) И ((ЗначВозврат.Месяцев = 0) ИЛИ (ЗначВозврат.Дней = 0)) Тогда ОтпускДопДнейОплатыСБР = 1; ИначеЕсли (ЗначВозврат.Лет = 2) И ((ЗначВозврат.Месяцев > 0) ИЛИ (ЗначВозврат.Дней > 0)) Тогда ОтпускДопДнейОплатыСБР = 2; ИначеЕсли (ЗначВозврат.Лет = 3) И ((ЗначВозврат.Месяцев = 0) ИЛИ (ЗначВозврат.Дней = 0)) Тогда ОтпускДопДнейОплатыСБР = 2; ИначеЕсли (ЗначВозврат.Лет = 3) И (ЗначВозврат.Месяцев > 0 ИЛИ ЗначВозврат.Дней > 0) ИЛИ (ЗначВозврат.Лет > 3) Тогда ОтпускДопДнейОплатыСБР = 3; ИначеЕсли (ЗначВозврат.Лет > 3) Тогда ОтпускДопДнейОплатыСБР = 3; КонецЕсли; //Если ОтпускДопДнейОплатыСБР > 0 Тогда НоваяСтрТЧ = ДопДниБольничныхОтпусковСотрудников.Добавить(); НоваяСтрТЧ.ФизЛицо = Выборка.Объект; НоваяСтрТЧ.ДатаНачалаРаботыВКорпорации = Выборка.ДатаНачРаботыКорп; НоваяСтрТЧ.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Корпоративная оплата отпуска"); НоваяСтрТЧ.СобытиеОтпуска = Перечисления.СостоянияРаботникаОрганизации.СмертьБлизкогоРодственника; НоваяСтрТЧ.КоличесвоДопДней = ОтпускДопДнейОплатыСБР; Если Год(Выборка.ДатаНачРаботыКорп) < Год(Дата) Тогда НоваяСтрТЧ.Год = Год(Дата); Иначе НоваяСтрТЧ.Год = Год(Выборка.ДатаНачРаботыКорп); КонецЕсли; //КонецЕсли; // № 5 Доп.дни к ежегодному оплачиваемому отпуску за стаж работы в Корпо-рации Если (ЗначВозврат.Лет = 2) Тогда Если (ЗначВозврат.Месяцев > 0) или (ЗначВозврат.Дней > 0) Тогда ОтпускДопДнейОплатыЗаСтажРаботыВКорпорации = 1; КонецЕсли; ИначеЕсли (ЗначВозврат.Лет = 3) и (ЗначВозврат.Месяцев = 0) и (ЗначВозврат.Дней = 0) Тогда ОтпускДопДнейОплатыЗаСтажРаботыВКорпорации = 1; ИначеЕсли (ЗначВозврат.Лет = 3) Тогда Если (ЗначВозврат.Месяцев > 0) или (ЗначВозврат.Дней > 0) Тогда ОтпускДопДнейОплатыЗаСтажРаботыВКорпорации = 2; КонецЕсли; ИначеЕсли (ЗначВозврат.Лет = 4) Тогда ОтпускДопДнейОплатыЗаСтажРаботыВКорпорации = 2; ИначеЕсли (ЗначВозврат.Лет >= 5) Тогда ОтпускДопДнейОплатыЗаСтажРаботыВКорпорации = 3; КонецЕсли; //Если ОтпускДопДнейОплатыЗаСтажРаботыВКорпорации > 0 Тогда НоваяСтрТЧ = ДопДниБольничныхОтпусковСотрудников.Добавить(); НоваяСтрТЧ.ФизЛицо = Выборка.Объект; НоваяСтрТЧ.ДатаНачалаРаботыВКорпорации = Выборка.ДатаНачРаботыКорп; НоваяСтрТЧ.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Корпоративная оплата отпуска"); НоваяСтрТЧ.СобытиеОтпуска = Перечисления.СостоянияРаботникаОрганизации.ДопДниЗаСтажРаботыВКорпорации; НоваяСтрТЧ.КоличесвоДопДней = ОтпускДопДнейОплатыЗаСтажРаботыВКорпорации; Если Год(Выборка.ДатаНачРаботыКорп) < Год(Дата) Тогда НоваяСтрТЧ.Год = Год(Дата); Иначе НоваяСтрТЧ.Год = Год(Выборка.ДатаНачРаботыКорп); КонецЕсли; //КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура КоманднаяПанель1ОчиститьТП(Кнопка) ДопДниБольничныхОтпусковСотрудников.Очистить(); КонецПроцедуры Процедура ОткрытьФормуВыбораФЛ(Владелец, Ключ, ЗакрыватьПриВыборе) Экспорт СтандартнаяОбработка = Ложь; ЗакрыватьПриВыборе = Ложь; Форма = Справочники.ФизическиеЛица.ПолучитьФормуВыбора(,,); Форма.ЗакрыватьПриВыборе = ЗакрыватьПриВыборе; Форма.Заголовок = "Выберите Физических лиц: "; Форма.Открыть(); КонецПроцедуры Процедура КоманднаяПанельПодбор(Кнопка) //ОткрытьФормуВыбораФЛ(ЭлементыФормы.ДопДниБольничныхОтпусковСотрудников,ЭтотОбъект,Ложь); ОткрытьФормуВыбораФЛ(ЭлементыФормы.ДопДниБольничныхОтпусковСотрудников,ЭтотОбъект,Ложь); КонецПроцедуры |
|||
1
skupidom
30.10.18
✎
18:50
|
из документа подбор множественный в таб. часть из справочника физ. лиц
|
|||
2
skupidom
30.10.18
✎
18:50
|
УПП 1.3
|
|||
3
hhhh
30.10.18
✎
19:24
|
(1) ПолучитьФормуВыбора(,,)
где тут владелец? одни запятые |
|||
4
skupidom
30.10.18
✎
21:36
|
не зависимо
|
|||
5
ДНН
30.10.18
✎
21:39
|
(4) чтобы автоматически отрабатывала обработка выбора должен быть указан владелец, иначе нужно "оповестить о выборе"
|
|||
6
skupidom
30.10.18
✎
22:38
|
спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |