|
ЗУП 2.5. Вопрос по запросу. | ☑ | ||
---|---|---|---|---|
0
Target1025
06.05.20
✎
11:44
|
регистр сведений РаботникиОрганизаций имеет измерение Сотрудник и ресурс "ПричинаИзмененияСостояния": ПриемНаРаботу, Перемещение, Увольнение. Как отобрать СрезПоследних на определенную дату, исключив из таблицы сотрудников, у кого на данную дату ПричинаИзмененияСостояния = Увольнение?
Так запрос не работает: "ВЫБРАТЬ | РаботникиОрганизаций.Сотрудник |ПОМЕСТИТЬ СотрудникиНаРаботе |ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(ДАТАВРЕМЯ(2018, 12, 31, 23, 59, 59), ПричинаИзменениясостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)) КАК РаботникиОрганизаций" В более широком плане, требуется отобрать работающих сотрудников на нужную дату, при этом взять запись приема на работу. |
|||
1
Target1025
06.05.20
✎
11:59
|
(0) Либо, как сделать выборку тех сотрудников, у кого среди записей данного регистра нет записи с причиной изменения = увольнение, т.е., отобрать работающих на данную дату?
|
|||
2
RomaH
naïve
06.05.20
✎
12:04
|
... зачем ты отбор в параметры виртуальной таблицы в этом случае засовываешь?
так ты получаешь именно срез последних у которых не уволен там есть еще причина изменения состояния завершение ... но для увольнения она не важна |
|||
3
RomaH
naïve
06.05.20
✎
12:04
|
засовывай в "ГДЕ"
|
|||
4
Target1025
06.05.20
✎
12:08
|
(2) Какое-то сильное колдунство...
|
|||
5
Target1025
06.05.20
✎
12:33
|
(0) В развитие вопроса. Вот этот запрос почему-то в результат возвращает таблицу значений, где ровно одна колонка "Количество" и ровно одна строка с числом 784 (количество записей):
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ЗАпрос.Текст = "ВЫБРАТЬ | РаботникиОрганизаций.Сотрудник, | РаботникиОрганизаций.Должность КАК ДолжностьНа3112, | РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизацииНа3112 |ПОМЕСТИТЬ СотрудникиНаРаботе |ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(ДАТАВРЕМЯ(2018, 12, 31, 23, 59, 59), ) КАК РаботникиОрганизаций |ГДЕ | РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | РаботникиОрганизаций.Период, | РаботникиОрганизаций.ПервичныйДокумент, | РаботникиОрганизаций.Сотрудник, | РаботникиОрганизаций.Организация, | РаботникиОрганизаций.ПодразделениеОрганизации, | РаботникиОрганизаций.Должность, | СотрудникиНаРаботе.ДолжностьНа3112, | СотрудникиНаРаботе.ПодразделениеОрганизацииНа3112 |ПОМЕСТИТЬ СотрудникиПринятые |ИЗ | РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций | ВНУТРЕННЕЕ СОЕДИНЕНИЕ СотрудникиНаРаботе КАК СотрудникиНаРаботе | ПО РаботникиОрганизаций.Сотрудник = СотрудникиНаРаботе.Сотрудник |ГДЕ | РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)"; результаты = Запрос.ВыполнитьПакет(); ТЗ = Результаты[1].Выгрузить(); САма таблица не "выдергивается". Что-то сделал не так? ps. Если ответа не видите, то не парьтесь, я выдерну сведения через Менеджервременныхтаблиц, но это уже способ "удаляем гланды через ж..."ю |
|||
6
RomaH
naïve
06.05.20
✎
13:18
|
ПОМЕСТИТЬ СотрудникиПринятые
|
|||
7
Target1025
06.05.20
✎
14:21
|
(6) запись же есть... При чем, там в пакете создаются две таблицы, и ни одна через результаты[X].выгрузить() не читаются.ю
|
|||
8
RomaH
naïve
06.05.20
✎
14:23
|
удали строку
|
|||
9
ИУБиПовиц
06.05.20
✎
14:40
|
(7) А если так Запрос.МенеджерВременныхТаблиц.Таблицы["СотрудникиПринятые"].ПолучитьДанные().Выгрузить()
|
|||
10
Gucci76
06.05.20
✎
16:54
|
А по реквизиту ДатаУвольнения сотрудника не проще?
Знаю что 1с так не рекомендует, но думаю прокатит и достаточно надежно. |
|||
11
RomaH
naïve
06.05.20
✎
17:12
|
(10) отменя проведения документа увольнения чистит реквизит?
|
|||
12
Gucci76
06.05.20
✎
21:11
|
(11) Отменяет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |