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