![]() |
|
Получить статус из регистра сведений и вернуть в справочник | ☑ | ||
---|---|---|---|---|
0
Evetady
06.04.20
✎
10:12
|
&НаСервере
Функция ПолучитьСтатус(Сотрудник) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КадровыеПеремещенияСрезПоследних.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния |ИЗ | РегистрСведений.КадровыеПеремещения.СрезПоследних КАК КадровыеПеремещенияСрезПоследних |ГДЕ | КадровыеПеремещенияСрезПоследних.Сотрудник = &Сотрудник"; Запрос.УстановитьПараметр("Сотрудник", Сотрудник); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Статус = ""; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Статус = ВыборкаДетальныеЗаписи.ПричинаИзмененияСостояния; КонецЦикла; Возврат Статус КонецФункции &НаКлиенте Процедура ПриОткрытии() Объект.Статус = ПолучитьСтатус(Сотрудник); КонецПроцедуры Подскажите как правильно организовать запрос и получение данных, совсем не давно с этим столкнулся. Не бейте, совсем новичок XD |
|||
1
RomaH
naïve
06.04.20
✎
10:25
|
Сотрудник- в параметры виртуальной таблицы
дату среза не надо? записей будущим периодом нет? Функция ПолучитьСтатус(Знач Сотрудник) - сотрудник не меняется ведь? контекст зачем в функции? |
|||
2
Evetady
06.04.20
✎
10:36
|
Контекс где то подглядел, но не вышло.
Если я использую срезПоследних, для чего дата среза? |
|||
3
RomaH
naïve
06.04.20
✎
11:12
|
(2) потому-что данные полученные на 1 января и на 31 декабря - у тебя будут одинаковыми
|
|||
4
Ненавижу 1С
гуру
06.04.20
✎
11:23
|
вот так вот раз и поменять документ просто при открытии его формы?
|
|||
5
Evetady
06.04.20
✎
11:24
|
Понял.
Ну создать ещё виртуальную табл? Сотрудник не изменяется в регистре. Как правильно вызвать этот запрос при открытии |
|||
6
RomaH
naïve
06.04.20
✎
11:27
|
(5) виртуальная <> временная
|
|||
7
Evetady
06.04.20
✎
11:30
|
3 документа, принятие, увольнение и перевод на другую должность, а это к справочнику сотрудников, где добавил статус одноимённый с документом
|
|||
8
Начинающий_13
06.04.20
✎
11:36
|
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Дата" , КонецДня(Дата)); Запрос.УстановитьПараметр("ФизическоеЛицо" , Ссылка); Запрос.Текст = "ВЫБРАТЬ | Данные.ФизическоеЛицо КАК ФизическоеЛицо, | Данные.ТрудовойДоговор КАК ТрудовойДоговор, | Данные.Подразделение КАК Подразделение, | Данные.Отдел КАК Отдел, | Данные.Должность КАК Должность, | Данные.ВидЗанятости КАК ВидЗанятости, | Данные.ГрафикРаботы КАК ГрафикРаботы |ИЗ | РегистрСведений.РаботникиОрганизации.СрезПоследних(&Дата, ФизическоеЛицо = &ФизическоеЛицо) КАК Данные"; ТаблицаКадровыеДанныеФизическогоЛица = Запрос.Выполнить().Выгрузить(); Если ТаблицаКадровыеДанныеФизическогоЛица.Количество() > 0 Тогда Информация = ТаблицаКадровыеДанныеФизическогоЛица[0]; СтруктураВозврата.ТрудовойДоговор = Информация.ТрудовойДоговор; СтруктураВозврата.Подразделение = Информация.Подразделение; СтруктураВозврата.Отдел = Информация.Отдел; СтруктураВозврата.Должность = Информация.Должность; СтруктураВозврата.ВидЗанятости = Информация.ВидЗанятости; СтруктураВозврата.ГрафикРаботы = Информация.ГрафикРаботы; КонецЕсли; Возврат СтруктураВозврата; |
|||
9
Evetady
06.04.20
✎
18:58
|
Окей, а как грамотно вызвать эту функцию в процедуре?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |