Имя: Пароль:
1C
1С v8
ЗУП КОРП 3.1 Актуальная позиция штатного расписания
0 rowvg
 
04.09.23
10:31
В ЗУПе 2.5 штатное расписание было выполнено в виде периодического регистра сведений. Получить актуальные данные на заданную дату можно было просто обратившись к виртуальной таблице среза последних.

В ЗУПе КОРП 3.1 штатное расписание - это справочник. Как там можно получить актуальные данные для заданной должности и подразделения?
1 vicof
 
04.09.23
10:35
УправлениеШтатнымРасписанием.ДанныеПозицийШтатногоРасписания(...);
2 rowvg
 
04.09.23
10:37
(1) Не получится, там первым параметром надо передать позицию штатного расписания

А мне как раз и надо найти эту актуальную позицию, так как по заданной должности их несколько
3 rowvg
 
04.09.23
10:38
2+ И надо получить это все в запросе
4 vicof
 
04.09.23
10:40
ВЫБРАТЬ Позиция из Справочник.Позиции ГДЕ Должность = &Должность
5 rowvg
 
04.09.23
10:43
(4) Нет в КОРПе такого справочника.....
6 vicof
 
04.09.23
10:44
Блеать, я условно написал. Посмотри, как он у тебя называется.
7 rowvg
 
04.09.23
10:46
Что посмотреть? Есть справочник Штатное расписание, в нем несколько позиций по заданной должности и подразделению. Как мне среди этих нескольких записей найти одну актуальную?
8 vicof
 
04.09.23
10:52
В описании позиции есть поля ДатаОткрытия и ДатаЗакрытия.
9 SleepyHead
 
04.09.23
10:54
(7) Нужно смотреть регистр сведений "История " точное название не помню
Ищи в списке регистров, где позиция в измерении
10 rowvg
 
04.09.23
10:56
(9) Есть непериодический регистр сведений ИсторияИспользованияШтатногоРасписания, но он опять мне ничем не поможет, так как у него в измерении позиция которую мне и нужно найти.
11 vicof
 
04.09.23
10:58
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

ПараметрыПостроения = ПараметрыПостроенияВТШтатноеРасписание(ДатаАктуальности, , , Позиции);
ПараметрыПостроения.ВключаяЗакрытые = Ложь;
    
СоздатьВТШтатноеРасписание(Запрос.МенеджерВременныхТаблиц, ТолькоРазрешенные, ПараметрыПостроения);
    
Запрос.Текст = "ВЫБРАТЬ Т.* ИЗ ВТШтатноеРасписание КАК Т";
    
Выборка = Запрос.Выполнить().Выбрать();
12 rowvg
 
04.09.23
11:00
(11) Вот оно похоже
Спасибо, попробую
13 vicof
 
04.09.23
11:05
(12) Достаточно было посмотреть на (1) поближе