Иерархия складов.

1. Intercititude 24.12.19 13:48 Сейчас в теме
Есть функция:

Функция ПолучитьДоступностьПоСкладам(СписокСкладов) экспорт
	ГДПоСкладам 	= УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ГруппаДоступностиСкладовДокументы");
	СписокСкладов	= Новый СписокЗначений;	
	Запрос			= Новый Запрос;
	Если ГДПоСкладам = Неопределено или ГДПоСкладам.Пустая() Тогда
		Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
		               |	Склады.Ссылка
		               |ИЗ
		               |	Справочник.Склады КАК Склады
		               |ГДЕ
		               |	НЕ Склады.ПометкаУдаления";
	Иначе
		Запрос.УстановитьПараметр("Группа", ГДПоСкладам);
		Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
		               |	Склады.Ссылка
		               |ИЗ
		               |	Справочник.Склады КАК Склады
		               |ГДЕ
		               |	Склады.Ссылка В ИЕРАРХИИ
		               |			(ВЫБРАТЬ РАЗЛИЧНЫЕ
		               |				СоставГруппДоступностиСкладов.Склад
		               |			ИЗ
		               |				РегистрСведений.СоставГруппДоступностиСкладов КАК СоставГруппДоступностиСкладов
		               |			ГДЕ
		               |				СоставГруппДоступностиСкладов.ГруппаДоступности = &Группа)";
	КонецЕсли;
	СписокСкладов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0)); 
	Возврат СписокСкладов;
КонецФункции
Показать


Возвращается СписокЗначении - СписокСкладов.
Затем я его помещаю в Запрос.УстановитьПараметр("СписокСкладов",СписокСкладов);

Мне необходимо перехватить СписокСкладов перед попаданием в запрос и установить своё значение - а именно чтобы попала именно "Группа" справочника "Склады" и в параметр попали все склады из этой группы. Как это реализовать ?!
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
26. hamsar 15 24.12.19 17:37 Сейчас в теме +0.35 $m
(25) Скорее типы, передаваемых значений, и сами значения
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user-z99999 67 24.12.19 13:51 Сейчас в теме
Попробуй так, ниже.
|  ГДЕ  Склады.Ссылка В ИЕРАРХИИ &Склад

В данном примере будут получены все записи справочника Склады, находящиеся в группе &Склад, включая ее саму, ее подчиненные группы и элементы, принадлежащие подчиненным группам.
3. Intercititude 24.12.19 14:17 Сейчас в теме
(2) Это то понятно.

Меня интересует программное добавление
То есть я сделаю :

СписокСкладов.Отчистить();
СписокСкладов.Добавить("Группа");


В этом случае вообще никакой документ не попадает.не пойму почему.
4. Intercititude 24.12.19 14:31 Сейчас в теме
(2) Тобишь мне необходимо при нажатии на кнопку с значением булево. Чтобы в конечный запрос попадала конкретная группа и её иеархия. Как это сделать без понятия.

Чтобы на выходе показались документы только со складами из этой группы
5. d.batovskiy 24.12.19 15:32 Сейчас в теме
Можно увидеть конечный запрос с вашим параметром "Склада" и вызов функции ПолучитьДоступностьПоСкладам(СписокСкладов)
6. Intercititude 24.12.19 15:52 Сейчас в теме
1)Сперва ПриОткрытии заполняется СписокСкладов функцией которую я указал в шапке :
Список Складов = ПолучитьДоступностьПоСкладам(СписокСкладов) 


2) Заполняется структура:

Функция ПолучитьСтруктуруНакладные()
	СтруктураОтбора = Новый Структура;
	СтруктураОтбора.Вставить("СсылкаОбъекта", 		СсылкаОбъекта);
	СтруктураОтбора.Вставить("ДатаДН", 				?(ДатаДН <> Дата(1, 1, 1), НачалоДня(ДатаДН), 	ДатаДН));
	СтруктураОтбора.Вставить("ДатаДК", 				?(ДатаДК <> Дата(1, 1, 1), КонецДня(ДатаДК), 	ДатаДК));
	СтруктураОтбора.Вставить("ДатаСН", 				?(ДатаСН <> Дата(1, 1, 1), НачалоДня(ДатаСН), 	ДатаСН));
	СтруктураОтбора.Вставить("ДатаСК", 				?(ДатаСК <> Дата(1, 1, 1), КонецДня(ДатаСК), 	ДатаСК));
	СтруктураОтбора.Вставить("Статусы",				СписокСтатусовИмя);
	СтруктураОтбора.Вставить("Контрагент", 			?(Контрагент.Количество() > 0, Контрагент, null));	
	СтруктураОтбора.Вставить("Ответственный", 		?(ЗначениеЗаполнено(Ответственный), Ответственный, null));
	СтруктураОтбора.Вставить("СписокСкладов", 		СписокСкладов);	

	Возврат СтруктураОтбора;
КонецФункции
Показать


3) Структура передаётся в параметры конечного запроса:

Функция Заполнить(СтруктураОтбора) экспорт
	Запрос 			= Новый Запрос; 
	Запрос.Текст 	= "ВЫБРАТЬ
		             	  |	Таблица.ДокументИзменен,
		             	  |	Таблица.ПакетВозвращенЧасть,
		             	  |	Таблица.ПакетВозвращен,
		             	  |	Таблица.ПакетВыдан,
		             	  |	Таблица.СтатусДата,
		             	  |	Таблица.СтатусДатаПосл,
		             	  |	Таблица.СтатусРаспечатан,
		             	  |	Таблица.Ссылка,
		             	  |	Таблица.Дата КАК Дата,
		             	  |	Таблица.Номер КАК Номер,
		             	  |	Таблица.Номер КАК НомерВх,
		             	  |	ЗНАЧЕНИЕ(Перечисление.ладВидыКорректировокРеализаций.ПустаяСсылка) КАК ОтражатьВДекларации,
		             	  |	Таблица.Контрагент,
		             	  |	Таблица.Водитель,
		             	  |	Таблица.Ответственный,
		             	  |	Таблица.Регион,
		             	  |	Таблица.ПунктРазгрузки,
		             	  |	Таблица.АдресДоставки,
		             	  |	Таблица.Транзит,
		             	  |	Таблица.Самовывоз,
		             	  |	Таблица.Менеджер,
		             	  |	Таблица.Сумма,
		             	  |	Таблица.Квитанция,
		             	  |	Таблица.Тара
		             	  |ИЗ
		             	  |	(ВЫБРАТЬ
		             	  |		ВЫБОР
		             	  |			КОГДА МАКСИМУМ(Таблица.СтатусДатаПосл) < МАКСИМУМ(Таблица.СтатусДатаИзм)
		             	  |					И МАКСИМУМ(Таблица.СтатусРаспечатан) < МАКСИМУМ(Таблица.СтатусДатаИзм)
		             	  |				ТОГДА ИСТИНА
		             	  |			ИНАЧЕ ЛОЖЬ
		             	  |		КОНЕЦ КАК ДокументИзменен,
		             	  |		МАКСИМУМ(ВЫБОР
		             	  |				КОГДА Таблица.СтатусДата = Таблица.СтатусДатаПосл
		             	  |						И Таблица.СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВозвращенЧасть)
		             	  |					ТОГДА ИСТИНА
		             	  |				ИНАЧЕ ЛОЖЬ
		             	  |			КОНЕЦ) КАК ПакетВозвращенЧасть,
		             	  |		МАКСИМУМ(ВЫБОР
		             	  |				КОГДА Таблица.СтатусДата = Таблица.СтатусДатаПосл
		             	  |						И Таблица.СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВозвращен)
		             	  |					ТОГДА ИСТИНА
		             	  |				ИНАЧЕ ЛОЖЬ
		             	  |			КОНЕЦ) КАК ПакетВозвращен,
		             	  |		МАКСИМУМ(ВЫБОР
		             	  |				КОГДА Таблица.СтатусДата = Таблица.СтатусДатаПосл
		             	  |						И Таблица.СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВыдан)
		             	  |					ТОГДА ИСТИНА
		             	  |				ИНАЧЕ ЛОЖЬ
		             	  |			КОНЕЦ) КАК ПакетВыдан,
		             	  |		МАКСИМУМ(Таблица.СтатусДата) КАК СтатусДата,
		             	  |		МАКСИМУМ(Таблица.СтатусДатаПосл) КАК СтатусДатаПосл,
		             	  |		МАКСИМУМ(Таблица.СтатусРаспечатан) КАК СтатусРаспечатан,
		             	  |		Таблица.Ссылка КАК Ссылка,
		             	  |		Таблица.Дата КАК Дата,
		             	  |		Таблица.Номер КАК Номер,
		             	  |		Таблица.Контрагент КАК Контрагент,
		             	  |		Таблица.Водитель КАК Водитель,
		             	  |		Таблица.Ответственный КАК Ответственный,
		             	  |		Таблица.Регион КАК Регион,
		             	  |		Таблица.ПунктРазгрузки КАК ПунктРазгрузки,
		             	  |		Таблица.АдресДоставки КАК АдресДоставки,
		             	  |		Таблица.Транзит КАК Транзит,
		             	  |		Таблица.Самовывоз КАК Самовывоз,
		             	  |		Таблица.Менеджер КАК Менеджер,
		             	  |		Таблица.Сумма КАК Сумма,
		             	  |		Таблица.Квитанция КАК Квитанция,
		             	  |		Таблица.Тара КАК Тара
		             	  |	ИЗ
		             	  |		(ВЫБРАТЬ
		             	  |			РТУ.Ссылка КАК Ссылка,
		             	  |			НАЧАЛОПЕРИОДА(РТУ.Дата, ДЕНЬ) КАК Дата,
		             	  |			РТУ.Номер КАК Номер,
		             	  |			РТУ.Контрагент КАК Контрагент,
		             	  |			Транспорт.Водитель КАК Водитель,
		             	  |			Транспорт.Ответственный КАК Ответственный,
		             	  |			РТУ.Контрагент.Регион КАК Регион,
		             	  |			РТУ.алкПунктРазгрузки КАК ПунктРазгрузки,
		             	  |			РТУ.АдресДоставки КАК АдресДоставки,
		             	  |			РТУ.ладТранзит КАК Транзит,
		             	  |			РТУ.ладСамовывоз КАК Самовывоз,
		             	  |			РТУ.Ответственный КАК Менеджер,
		             	  |			РТУ.СуммаДокумента КАК Сумма,
		             	  |			ЕСТЬNULL(ЖурРег.СтатусОбъекта, ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПустаяСсылка)) КАК СтатусОбъекта,
		             	  |			ЕСТЬNULL(ЖурРег.Период, ДАТАВРЕМЯ(1, 1, 1)) КАК СтатусДата,
		             	  |			МАКСИМУМ(ЕСТЬNULL(ЖурРегИ.Период, ДАТАВРЕМЯ(1, 1, 1))) КАК СтатусДатаИзм,
		             	  |			МАКСИМУМ(ЕСТЬNULL(ЖурРегП.Период, ДАТАВРЕМЯ(1, 1, 1))) КАК СтатусДатаПосл,
		             	  |			МАКСИМУМ(ЕСТЬNULL(ЖурРегПеч.Период, ДАТАВРЕМЯ(1, 1, 1))) КАК СтатусРаспечатан,
		             	  |			ВЫБОР
		             	  |				КОГДА РТУ.лад_Квитанция_Отбора_WMS.Ссылка ЕСТЬ NULL 
		             	  |					ТОГДА ЛОЖЬ
		             	  |				ИНАЧЕ ИСТИНА
		             	  |			КОНЕЦ КАК Квитанция,
		             	  |			ЕСТЬNULL(РТУ_Тара.Тара, ЛОЖЬ) КАК Тара
		             	  |		ИЗ
		             	  |			Документ.РеализацияТоваровУслуг КАК РТУ
		             	  |				ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТранспортнаяИнформация КАК Транспорт
		             	  |				ПО (Транспорт.Объект = РТУ.Ссылка)
		             	  |				ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		             	  |					МАКСИМУМ(ЖурРег.Период) КАК Период,
		             	  |					ЖурРег.Объект КАК Объект
		             	  |				ИЗ
		             	  |					(ВЫБРАТЬ
		             	  |						ЖурРег.Период КАК Период,
		             	  |						ЖурРег.Объект КАК Объект
		             	  |					ИЗ
		             	  |						РегистрСведений.ладЖурналРегистрации.СрезПоследних(
		             	  |								,
		             	  |								(СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.Изменен)
		             	  |									ИЛИ СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.Проведен))
		             	  |									И Пользователь.Код <> ""Обмен Бухгалтерия Торговля"") КАК ЖурРег
		             	  |					
		             	  |					ОБЪЕДИНИТЬ ВСЕ
		             	  |					
		             	  |					ВЫБРАТЬ
		             	  |						ЖурРегАрхив.Период,
		             	  |						ЖурРегАрхив.Объект
		             	  |					ИЗ
		             	  |						РегистрСведений.ладЖурналРегистрацииАрхив.СрезПоследних(
		             	  |								,
		             	  |								(СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.Изменен)
		             	  |									ИЛИ СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.Проведен))
		             	  |									И Пользователь.Код <> ""Обмен Бухгалтерия Торговля"") КАК ЖурРегАрхив) КАК ЖурРег
		             	  |				
		             	  |				СГРУППИРОВАТЬ ПО
		             	  |					ЖурРег.Объект) КАК ЖурРегИ
		             	  |				ПО РТУ.Ссылка = ЖурРегИ.Объект
		             	  |				ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ладЖурналУчетаДокументов.СрезПоследних(
		             	  |						,
		             	  |						СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВозвращенЧасть)
		             	  |							ИЛИ СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВозвращен)
		             	  |							ИЛИ СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВыдан)
		             	  |							ИЛИ СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетАрхив)) КАК ЖурРег
		             	  |				ПО РТУ.Ссылка = ЖурРег.Объект
		             	  |				ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ладЖурналУчетаДокументов.СрезПоследних(
		             	  |						,
		             	  |						СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВозвращенЧасть)
		             	  |							ИЛИ СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВозвращен)
		             	  |							ИЛИ СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВыдан)
		             	  |							ИЛИ СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетАрхив)) КАК ЖурРегП
		             	  |				ПО РТУ.Ссылка = ЖурРегП.Объект
		             	  |				ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ладЖурналПечати.СрезПоследних(, СтатусОбъекта = ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетРаспечатан)) КАК ЖурРегПеч
		             	  |				ПО РТУ.Ссылка.Сделка = ЖурРегПеч.Объект
		             	  |				ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		             	  |					РТУ_Тара.Ссылка КАК Ссылка,
		             	  |					ВЫБОР
		             	  |						КОГДА РТУ_Тара.Количество > 0
		             	  |							ТОГДА ИСТИНА
		             	  |						ИНАЧЕ ЛОЖЬ
		             	  |					КОНЕЦ КАК Тара
		             	  |				ИЗ
		             	  |					(ВЫБРАТЬ
		             	  |						РТУ_ВозвратнаяТара.Ссылка КАК Ссылка,
		             	  |						СУММА(РТУ_ВозвратнаяТара.Количество) КАК Количество
		             	  |					ИЗ
		             	  |						Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РТУ_ВозвратнаяТара
		             	  |					ГДЕ
		             	  |						РТУ_ВозвратнаяТара.Ссылка.Проведен
		             	  |						И РТУ_ВозвратнаяТара.Ссылка.Склад В(&СписокСкладов)
		             	  |						И (РТУ_ВозвратнаяТара.Ссылка.Дата >= НАЧАЛОПЕРИОДА(&ДатаДН, ДЕНЬ)
		             	  |								ИЛИ &ДатаДН = ДАТАВРЕМЯ(1, 1, 1))
		             	  |						И (РТУ_ВозвратнаяТара.Ссылка.Дата <= КОНЕЦПЕРИОДА(&ДатаДК, ДЕНЬ)
		             	  |								ИЛИ &ДатаДК = ДАТАВРЕМЯ(1, 1, 1))
		             	  |						И (РТУ_ВозвратнаяТара.Ссылка.Контрагент В (&Контрагент)
		             	  |								ИЛИ &Контрагент ЕСТЬ NULL )
		             	  |					
		             	  |					СГРУППИРОВАТЬ ПО
		             	  |						РТУ_ВозвратнаяТара.Ссылка) КАК РТУ_Тара) КАК РТУ_Тара
		             	  |				ПО РТУ.Ссылка = РТУ_Тара.Ссылка
		             	  |		ГДЕ
		             	  |			РТУ.Проведен
		             	  |			И РТУ.Склад В ИЕРАРХИИ(&СписокСкладов)
		             	  |			И (РТУ.Дата >= НАЧАЛОПЕРИОДА(&ДатаДН, ДЕНЬ)
		             	  |					ИЛИ &ДатаДН = ДАТАВРЕМЯ(1, 1, 1))
		             	  |			И (РТУ.Дата <= КОНЕЦПЕРИОДА(&ДатаДК, ДЕНЬ)
		             	  |					ИЛИ &ДатаДК = ДАТАВРЕМЯ(1, 1, 1))
		             	  |			И (РТУ.Контрагент В (&Контрагент)
		             	  |					ИЛИ &Контрагент ЕСТЬ NULL )
		             	  |			И (Транспорт.Ответственный ПОДОБНО ""%"" + &Ответственный + ""%""
		             	  |					ИЛИ Транспорт.Ответственный.Наименование ПОДОБНО ""%"" + &Ответственный + ""%""
		             	  |					ИЛИ &Ответственный ЕСТЬ NULL )
		             	  |			И (Транспорт.Водитель В (&Водитель)
		             	  |					ИЛИ &Водитель ЕСТЬ NULL )
		             	  |		
		             	  |		СГРУППИРОВАТЬ ПО
		             	  |			РТУ.Ссылка,
		             	  |			НАЧАЛОПЕРИОДА(РТУ.Дата, ДЕНЬ),
		             	  |			РТУ.Номер,
		             	  |			РТУ.Контрагент,
		             	  |			Транспорт.Водитель,
		             	  |			Транспорт.Ответственный,
		             	  |			РТУ.Контрагент.Регион,
		             	  |			РТУ.алкПунктРазгрузки,
		             	  |			РТУ.АдресДоставки,
		             	  |			РТУ.ладТранзит,
		             	  |			РТУ.ладСамовывоз,
		             	  |			РТУ.Ответственный,
		             	  |			РТУ.СуммаДокумента,
		             	  |			ЕСТЬNULL(ЖурРег.СтатусОбъекта, ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПустаяСсылка)),
		             	  |			ЕСТЬNULL(ЖурРег.Период, ДАТАВРЕМЯ(1, 1, 1)),
		             	  |			ВЫБОР
		             	  |				КОГДА РТУ.лад_Квитанция_Отбора_WMS.Ссылка ЕСТЬ NULL 
		             	  |					ТОГДА ЛОЖЬ
		             	  |				ИНАЧЕ ИСТИНА
		             	  |			КОНЕЦ,
		             	  |			ЕСТЬNULL(РТУ_Тара.Тара, ЛОЖЬ)) КАК Таблица
		             	  |	
		             	  |	СГРУППИРОВАТЬ ПО
		             	  |		Таблица.Водитель,
		             	  |		Таблица.Регион,
		             	  |		Таблица.Ответственный,
		             	  |		Таблица.Самовывоз,
		             	  |		Таблица.Ссылка,
		             	  |		Таблица.ПунктРазгрузки,
		             	  |		Таблица.Номер,
		             	  |		Таблица.Дата,
		             	  |		Таблица.АдресДоставки,
		             	  |		Таблица.Транзит,
		             	  |		Таблица.Контрагент,
		             	  |		Таблица.Менеджер,
		             	  |		Таблица.Сумма,
		             	  |		Таблица.Квитанция,
		             	  |		Таблица.Тара) КАК Таблица
		             	  |ГДЕ
		             	  |	(Таблица.СтатусДатаПосл >= НАЧАЛОПЕРИОДА(&ДатаСН, ДЕНЬ)
		             	  |			ИЛИ &ДатаСН = ДАТАВРЕМЯ(1, 1, 1))
		             	  |	И (Таблица.СтатусДатаПосл <= КОНЕЦПЕРИОДА(&ДатаСК, ДЕНЬ)
		             	  |			ИЛИ &ДатаСК = ДАТАВРЕМЯ(1, 1, 1))
		             	  |	И (Таблица.ПакетВозвращенЧасть
		             	  |				И ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВозвращенЧасть) В (&Статусы)
		             	  |			ИЛИ Таблица.ПакетВозвращен
		             	  |				И ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВозвращен) В (&Статусы)
		             	  |			ИЛИ Таблица.ПакетВыдан
		             	  |				И ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПакетВыдан) В (&Статусы)
		             	  |			ИЛИ НЕ Таблица.ПакетВозвращенЧасть
		             	  |				И НЕ Таблица.ПакетВозвращен
		             	  |				И НЕ Таблица.ПакетВыдан
		             	  |				И ЗНАЧЕНИЕ(Перечисление.ладСтатусОбъекта.ПустаяСсылка) В (&Статусы))
		             	  |
		             	  |УПОРЯДОЧИТЬ ПО
		             	  |	Дата,
		             	  |	Номер";

	КонецЕсли;					  
	Запрос.УстановитьПараметр("ДатаДН", 		СтруктураОтбора["ДатаДН"]);
	Запрос.УстановитьПараметр("ДатаДК", 		СтруктураОтбора["ДатаДК"]);
	Запрос.УстановитьПараметр("ДатаСН", 		СтруктураОтбора["ДатаСН"]);
	Запрос.УстановитьПараметр("ДатаСК", 		СтруктураОтбора["ДатаСК"]);
	Запрос.УстановитьПараметр("Статусы", 		СтруктураОтбора["Статусы"]);
	Запрос.УстановитьПараметр("Контрагент",		СтруктураОтбора["Контрагент"]);
	Запрос.УстановитьПараметр("Ответственный",	СтруктураОтбора["Ответственный"]);
	Запрос.УстановитьПараметр("СписокСкладов", 	СтруктураОтбора["СписокСкладов"]);	
	Возврат Запрос.Выполнить().Выгрузить();	
КонецФункции

Показать


Собственно я не могу перехватить "СписокСкладов" и установить туда значени именно ГРУППЫ. Ну не не могу,а не знаю как :-)
7. user5300 1015 24.12.19 16:45 Сейчас в теме
(6)
Запрос.УстановитьПараметр("СписокСкладов", СтруктураОтбора["СписокСкладов"]);

если тебе нужна одна группа то сделай так:
Запрос.УстановитьПараметр("СписокСкладов",     справочники.Склады.НайтиПоКоду("01"))
///Или что именно тебе надо ?
9. Intercititude 24.12.19 16:48 Сейчас в теме
(7) Не могу в тупую так заменить. Так как может быть СтруктураОтбора["СписокСкладов"] совсем другая. Где то ранее надо это предопределять.

Попробывал передать принудитель в СтруктураОтбора["СписокСкладов"] = "Группа". Но всё равно попадают все документы без отбора..
10. user5300 1015 24.12.19 16:49 Сейчас в теме
(9) тебе что конкретно нужно ? один склад ? или несколько складов в списке значений?
12. Intercititude 24.12.19 16:50 Сейчас в теме
(10) Мне нужно чтобы при нажатии на форме на флажок "только группа такая то " выполнился отбор по всем документам только где склад находится в этой группе!
15. Intercititude 24.12.19 16:52 Сейчас в теме
(10)я принудительно добавил в списокзначении необходимую мне группу складов и передал в запрос как параметр!
Но всё равно выводит все склады, не пойму где ошибка
точкой останова всё прошёл уже вдоль и поперёк)
18. user5300 1015 24.12.19 16:55 Сейчас в теме
(15) а через консоль запросов не пробовал ?)
14. user5300 1015 24.12.19 16:52 Сейчас в теме
(9) Так замени параметр, в чем проблема?)
 //Запрос.УстановитьПараметр("СписокСкладов",     СтруктураОтбора["СписокСкладов"]); // вместо этого свой установи
Запрос.УстановитьПараметр("СписокСкладов",     Объект.Склад); // Объект.Склад - это реквизит документа
16. Intercititude 24.12.19 16:53 Сейчас в теме
(14) В том, что Запрос.УстановитьПараметр("СписокСкладов", СтруктураОтбора["СписокСкладов"]);
Отрабатывает во всех других случаях, если я на форме не нажимаю на галку.
Да и даже так отбор всё равно не происходит!
8. user5300 1015 24.12.19 16:47 Сейчас в теме
(6) в процедуре получения складов добавить параметры - только группа
11. Intercititude 24.12.19 16:50 Сейчас в теме
(8) А конкретнее? При другом условии там не только группа может быть.
13. hamsar 15 24.12.19 16:52 Сейчас в теме
В ИЕРАРХИИ &РОДИТЕЛь
Запрос.установитьПраметр("Родитель", Объект.Склад.Родитель)
17. Intercititude 24.12.19 16:53 Сейчас в теме
(13)В конечном запросе?
и Владелец нету. Только РОдитель.
19. hamsar 15 24.12.19 16:55 Сейчас в теме
(17)да если складов и родителей много, то немного поманипулировать списоком условий, добавляя условия по количествую групп в массиве родителей
20. hamsar 15 24.12.19 16:58 Сейчас в теме
Типа вот такого
СтрУСловий = "";
Для Каждого Стр из МассивРодителей ЦИкл
Если СтрУСловий <> "" Тогда
СтрУсловий = СТрУСловий + " ИЛИ "
КонецЕсли;
СтрУсловий = СТрУСловий + Объект.Склад В ИЕРАРХИИ(&Родитель1)


КонецЕсли;
21. Intercititude 24.12.19 17:07 Сейчас в теме
(20) Да дело в том, что в конечный запрос всё попадает верно. Именно та группа которая мне нужна. Но запрос не отбирает сам, в нём дело полагаю...
22. hamsar 15 24.12.19 17:11 Сейчас в теме
(21)
(20) Да дело в том, что в конечный запрос всё попадает верно. Именно та группа которая мне нужна. Но запрос не отбирает сам, в нём дело полагаю...


Тогда убирайте условие, суйте в консоль, выводите нужные вам поля, в подзапрос суйте. Я честно говоря глубоко не вникал, но механизм отладки такой.

Выводите общий список без отбора. Добавляете в список отображаемых полей отбираемое и смотрите соответствие условий отбор со значением поля, вынужден бежать
23. Intercititude 24.12.19 17:26 Сейчас в теме
(22) Сунул в консоль запросов,подставил нужную группу. Всё корректно вывело =/
24. hamsar 15 24.12.19 17:34 Сейчас в теме
(23)

1) Сравните параметры подставляемые в параметрах запроса в Отладчике, с параметрами из консоли, обычно в этом суть
25. Intercititude 24.12.19 17:37 Сейчас в теме
(24) Наименование имеете ввиду ?
26. hamsar 15 24.12.19 17:37 Сейчас в теме +0.35 $m
(25) Скорее типы, передаваемых значений, и сами значения
27. Intercititude 24.12.19 17:40 Сейчас в теме
(26) В первом случае я в консоле запроса выбираю из справочника Склады группу. Всё ок отбирает.

Во втором случае я беру запрос,ставлю условие мол Склад.Код = "ТакойТакой". и Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0)

Затем это передаю в структуру и уже потом в параметротбора.

В первом случае тип ссылка. Во втором списокзначении. Как быть ?
28. hamsar 15 24.12.19 17:45 Сейчас в теме
Затем это передаю в структуру и уже потом в параметротбора. бред в общем какой то

Я говорю в отладчике проверьте параметры, поскольку если у вас запрос выполняется, в консоле с идентичным текстом запроса, а в конфигураторе нет, то логично предположить что дело в отличиях параметров.

Если же текст запроса не соответствует в консоле, то нужно привести его к либо в конфигураторе либо в консоле к идентичному.
29. hamsar 15 24.12.19 17:45 Сейчас в теме
и в консоли и в предприятии должно быть 1 к 1, только тогда вы можете сказать, что бред какой то
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот