|
Передача данных как параметр из ВТ в другую ВТ | ☑ | ||
---|---|---|---|---|
0
oqser
21.03.25
✎
09:41
|
Добрый день!
Есть запрос в СКД камин 5.5. //Получение даты увольнения сотрудников в периоде ВЫБРАТЬ КадровыеСведения.Сотрудник КАК Сотрудник, КадровыеСведения.ДатаУвольнения КАК ДатаУвольнения ПОМЕСТИТЬ ВтДатаУвольнения ИЗ РегистрСведений.КадровыеСведения КАК КадровыеСведения ГДЕ КадровыеСведения.ДатаУвольнения МЕЖДУ ДОБАВИТЬКДАТЕ(&ДатаНач, СЕКУНДА, -1) И ДОБАВИТЬКДАТЕ(&ДатаКон, СЕКУНДА, 1) И КадровыеСведения.ДатаУвольнения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ; //////////////////////////////////////////////////////////////////////////////// //Получение ставки на день увольнения ВЫБРАТЬ КадровыеСведенияСрезПоследних.КоличествоСтавок КАК СтавокНаДеньУвольнения ПОМЕСТИТЬ ВтСтавокНаДатуУвольнения ИЗ РегистрСведений.КадровыеСведения.СрезПоследних("ЗДЕСЬ ДАТА УВАЛА",) КАК КадровыеСведенияСрезПоследних ; Не получается передать ДатуУвольнения, как параметр даты в другую временную таблицу, пробовал через подзапрос как параметр и скд ругается на синтаксис. Подскажите, пожалуйста, возможно ли это вообще или как правильно можно это сделать? |
|||
1
arsik
гуру
21.03.25
✎
08:42
|
(0) Или самому собирать срез последних или передавать в СКД уже готовую дату
|
|||
2
StarSoft777
21.03.25
✎
08:48
|
(0) В первом запросе возможно будет много строк, поэтому вложенный запрос, С текстом ВЫБРАТЬ ПЕРВЫЕ 1,или свернуть его группировкой , смотря что нужно.
|
|||
3
Мультук
гуру
21.03.25
✎
08:55
|
(0)
Допустим у вас список Катя 01.03.2025 Программист Маша 10.03.2025 Тестер Петя 12.03.2025 Менеджер Почему второй запрос возвращает кол-во ставок без учёта должности ? В простейшем случае СКД связь наборов данных по параметру (2) А можно примерный текст запроса, пожалуйста ? |
|||
4
Garykom
гуру
21.03.25
✎
11:49
|
(0) какой пипец
начиная с ДОБАВИТЬКДАТЕ +/- 1 секунду и заканчивая лишним разделением на два запроса нафига тебе именно виртуальная таблица СрезПоследних? да, в параметр виртуальной таблицы сложно засунуться, но с обычной-то проблем нет |
|||
5
Eiffil123
21.03.25
✎
13:05
|
(0) нет, это невозможно технически.
Параметры Дата в виртуальных таблицах должны вычисляться на момент трансляции запроса сервером 1С в SQL. Можно использовать только функции, которые эту дату как-то модифицируют (например естьnull, добавитькдате, датавремя) |
|||
6
StarSoft777
21.03.25
✎
13:39
|
(0) Самое простое, Выполняешь запрос 1, далее перебор результата ,Для каждой строки запроса1 , выполняешь запрос2 , куда подставляешь дату из запроса1 ( берешь из текущей строки запроса1 )
|
|||
7
Garykom
гуру
21.03.25
✎
13:49
|
(6) у ТСа СКД, можно только связь наборов как написано в (3)
|
|||
8
oqser
21.03.25
✎
13:58
|
Спасибо в целом за мнения и советы. Про ДОБАВИТЬКДАТЕ прочитал тоже)
Пытаюсь пока реализовать наборами |
|||
9
StarSoft777
21.03.25
✎
13:58
|
(6) ПриКомпоновкеРезультата() можно исп
|
|||
10
Garykom
гуру
21.03.25
✎
14:03
|
(8) Не нужны тебе наборы
Перепиши запрос без использования СрезПоследних С ним никак не выйдет - у тебя много разных ДатаУвольнения для разных Сотрудник Для которых надо получить КоличествоСтавок на дату увольнения каждого |
|||
11
Garykom
гуру
21.03.25
✎
14:05
|
(10)+ Для простоты тебе нужна ВТ:
ДатаУвольнения | КоличествоСтавок Вот сваяй ее |
|||
12
Garykom
гуру
21.03.25
✎
14:07
|
(11)+ Она получается запросом с группировкой по Период
|
|||
13
Garykom
гуру
21.03.25
✎
14:13
|
кстати тупо так что не правильно выдает?
//Получение даты увольнения сотрудников в периоде ВЫБРАТЬ КадровыеСведения.Сотрудник КАК Сотрудник, КадровыеСведения.ДатаУвольнения КАК ДатаУвольнения, КадровыеСведения.КоличествоСтавок КАК СтавокНаДеньУвольнения ПОМЕСТИТЬ ВтДатаУвольнения ИЗ РегистрСведений.КадровыеСведения КАК КадровыеСведения ГДЕ КадровыеСведения.ДатаУвольнения МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНач, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ) И КадровыеСведения.ДатаУвольнения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ; |
|||
14
oqser
21.03.25
✎
14:15
|
(13) так он не видит ставки вообще
|
|||
15
oqser
21.03.25
✎
14:24
|
(10) срез последних нужен, потому что нужна ставка именно на ДатаУвольнения то есть КС.срезпоследних(ДатаУвольнения,) потому что если не задавать дату, то ставок в начале может быть 0, потом его приняли, потом в середине уволили и в конце месяца снова 0. Изначально и пытаюсь подставить эту ДатаУвольнения в параметр ВтСтавокНаДатуУвольнения, потому что запрос не видит считай ставки на начало и конец.
|
|||
16
oqser
21.03.25
✎
14:26
|
Но тут да, возможно правильнее всё-таки соединить ВТ-шки, но не могу продумать логику эту правильную
|
|||
17
Garykom
гуру
21.03.25
✎
14:27
|
(15) попробуй понять последние две строки в (10)
не получится у тебя срезом ну никак! ибо дата не одна а много! |
|||
18
oqser
21.03.25
✎
14:32
|
(17) Допёрло, да.
Пробну как-нибудь ВТ ДатаУв и СтавкиУв, но пока не вижу логики, как вытащить ставки на дату увала, буду думать. Спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |