Как в ЗУПе выбрать всех сотрудников, когда-либо работавших в выбранном подразделении? Как в ЗУПе выбрать всех сотрудников, когда-либо работавших в выбранном подразделении и изменить у них значение указанного реквизита.
Код 1C v 8.х Запрос=Новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаботникиОрганизаций.Сотрудник,
| РаботникиОрганизаций.Сотрудник.Физлицо КАК Физлицо,
| РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
| РаботникиОрганизаций.Период
|ИЗ
| РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
|ГДЕ
| РаботникиОрганизаций.Сотрудник.Физлицо В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаботникиОрганизаций.Сотрудник.Физлицо
| ИЗ
| РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
| ГДЕ
| РаботникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ (&ПодразделениеОрганизации))
| И РаботникиОрганизаций.ЗанимаемыхСтавок > 0
| И РаботникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ(&ПодразделениеОрганизации)
|
|УПОРЯДОЧИТЬ ПО
| Физлицо
|АВТОУПОРЯДОЧИВАНИЕ
|";
Запрос.УстановитьПараметр("ПодразделениеОрганизации",Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Дирекция");
Результат = Запрос.Выполнить();
Результат = Результат.Выбрать();
н=0;
Пока Результат.Следующий() Цикл
//Получим элемент справочника для изменения
ОбъектСотр=Результат.Сотрудник.ПолучитьОбъект();
//Изменим реквизит
ОбъектСотр.КлассПринадлежности = Перечисления.КлассСотрудников.АппаратУправления;
//Запишем результат
ОбъектСотр.Записать();
//Выведем сообщение для пользователя о том, что обработали
н=н+1;
Сообщить(строка(н)+" "+Строка(ОбъектСотр));
КонецЦикла;
Опубликовано на сайте: https://HelpF.pro Прямая ссылка: https://HelpF.pro/faq/view/613.html