|   |   | 
| 
 | Передача данных как параметр из ВТ в другую ВТ | ☑ | ||
|---|---|---|---|---|
| 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) Допёрло, да.
 Пробну как-нибудь ВТ ДатаУв и СтавкиУв, но пока не вижу логики, как вытащить ставки на дату увала, буду думать. Спасибо | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |