-
Notifications
You must be signed in to change notification settings - Fork 0
/
Новый текстовый документ (2).txt
48 lines (45 loc) · 2.56 KB
/
Новый текстовый документ (2).txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// ++ Яковлев 30.03.2021 Проверка нет ли среди исполнителей в заказ-наряде уволенных сотрудников (по данным из регистра "Данные Для Подбора Сотрудников")
СтрокаУволенных=""; // Строка ФИО
ДатаДок=ТекущийОбъект.Дата; // Дата проверяемого документа
Компания=ТекущийОбъект.Организация; // Организация
НадоПредупредить=false; // Флаг необходимости вывести предупреждение
МассивСтрокИсполнители = ТекущийОбъект.Исполнители;
Для Каждого Стр из МассивСтрокИсполнители Цикл
Если СотрудникУволен (ДатаДок,Стр.Исполнитель,Компания) Тогда // Самописная Функция проверки был ли сотрудник уволен из указанной организации на указанную дату
НадоПредупредить=true;
СтрокаУволенных = СтрокаУволенных + " " + Стр.Исполнитель;
КонецЕсли;
КонецЦикла;
Если НадоПредупредить Тогда ОбщегоНазначения.СообщитьПользователю ("Внимание! Следущие сотрудники числятся уволенными на дату документа: " + СтрокаУволенных);
КонецЕсли;
// -- Яковлев
// ++ Яковлев Функция СотрудникУволен. Проверка уволен ли сотрудник по данным из регистра Данные Для Подбора Сотрудников
&НаСервере
Function СотрудникУволен (Дата, ФизическоеЛицо, Организация)
Запрос =Новый Запрос;
Запрос.УстановитьПараметр("Начало",Дата);
Запрос.УстановитьПараметр("ФизическоеЛицо",ФизическоеЛицо);
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.Текст="ВЫБРАТЬ ПЕРВЫЕ 1
| ДанныеДляПодбораСотрудников.Начало КАК Начало,
| ДанныеДляПодбораСотрудников.ВидСобытия КАК ВидСобытия,
| ДанныеДляПодбораСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
| ДанныеДляПодбораСотрудников.Организация КАК Организация
|ИЗ
| РегистрСведений.ДанныеДляПодбораСотрудников КАК ДанныеДляПодбораСотрудников
|ГДЕ
| ДанныеДляПодбораСотрудников.ФизическоеЛицо = &ФизическоеЛицо
| И ДанныеДляПодбораСотрудников.Организация = &Организация
| И ДанныеДляПодбораСотрудников.Начало <= &Начало
|
|УПОРЯДОЧИТЬ ПО
| Начало УБЫВ,
| ВидСобытия";
РезультатЗапроса=Запрос.Выполнить();
Выборка=РезультатЗапроса.Выбрать();
IF Выборка.Следующий() и (Выборка.ВидСобытия=Перечисления.ВидыКадровыхСобытий.Увольнение) then
Возврат True;//and (Selection.ВидСобытия.Наименование="Увольнение") then Возврат True; // Если запрос вернул не пустой ответ и в ответе Значение "Уволен", то Возвращаем положительный ответ
Else Возврат False; // иначе возвращаем Отрицательный
EndIf;
EndFunction
// -- Яковлев