Имя: Пароль:
1C
 
СКД. Связи наборов данных. Как в подчиненную связь передать параметры?
0 arsik
 
гуру
12.11.25
16:19
Не могу понять.
Набор данных:
1) Основной набор - ТаблицаЗначений (Заказ, Индентификатор)
2) Подчиненный - периодический регистр Статусы.

В основной таблице может быть 2 строки, а в срезе несколько сот тысяч.
Работает медленно, т.к. очевидно не накладываются фильтры на срез.
Почитал статью ( https://infostart.ru/1c/articles/1095405/ ) и там описано, что можно передавать данные но не могу понять как.
1 toypaul
 
гуру
12.11.25
16:33
(0) не надо делать через наборы. это древняя технология, после того как стало можно в набор передавать временные таблицы (МВТ)
2 toypaul
 
гуру
12.11.25
16:35
отборы может ты и сможешь передать, но работать это будет не лучше - построчно из основного будет выполняться подчиненный.

вообще лучше забыть про набор объект, если его нужно связывать с чем-то, как страшный сон
3 arsik
 
гуру
12.11.25
17:00
(1) (2) Это не я придумал. Это штатная приблуда каргорана. Тут проверки на СКД сделаны и там всегда передается ТЗ.
Короче разобрался. Нужно просто параметр в подчиненной указать, а не в настройках СКД подчиненной. Ну и можно список указывать, тогда не будет запроса в цикле.
Вот хороший видос - спасибо автору.
https://www.youtube.com/watch?v=1KPMP6_ISqY

PS: Там конечно свой нюанс есть (соединение становится внутренним :)) ), но это можно обойти
4 arsik
 
гуру
12.11.25
17:23
+(3) Ну вот так еще можно обойти внутреннее соединение
ВЫБРАТЬ
	уатЗаказГрузоотправителя.Ссылка КАК Заказ,
	ЕСТЬNULL(СрезСтатусы.Статус, ЗНАЧЕНИЕ(Справочник.уатСтатусы_уэ.ПустаяСсылка)) КАК Статус
ИЗ
	Документ.уатЗаказГрузоотправителя КАК уатЗаказГрузоотправителя
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.уатСтатусыГрузов_уэ.СрезПоследних(, Заказ В (&Заказ)) КАК СрезСтатусы
		ПО (уатЗаказГрузоотправителя.Ссылка = СрезСтатусы.Заказ)
ГДЕ
	уатЗаказГрузоотправителя.Ссылка В(&Заказ)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn