Динамический список

1. kar911 03.03.17 15:40 Сейчас в теме
Как в динамический список передать данные из ТЗ? или как в динамический список передать данные из хранилища значений в котором храниться таблица значений. у меня пакетный запрос но в динамическом списке он не работает.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. cmax 105 03.03.17 17:34 Сейчас в теме
(1) Начиная с 8.3.9 в динамическом списке поддерживается пакетный запрос.
3. kar911 03.03.17 21:00 Сейчас в теме
4. ipetrochenko 84 03.03.17 21:17 Сейчас в теме
(3)Тогда наверное можно предварительно записать в объект БД, например в регистр сведений, но это будет медленно.
Надо разобраться, почему возникла такая потребность, возможно можно решить задачу по-другому.
7. cmax 105 03.03.17 23:05 Сейчас в теме
(3)
а у меня 8.3.8 (

а в чем проблема обновить на 8.3.9 ?
8. kar911 09.03.17 17:06 Сейчас в теме
(2) попробовал на 8.3.9 но пустая таблица на выходе, Вот такой запрос
запрос = Новый Запрос("ВЫБРАТЬ
	                      |	РеализацияТоваровУслуг.Ссылка КАК Ссылка,
	                      |	ГОД(РеализацияТоваровУслуг.Дата) КАК Год,
	                      |	МЕСЯЦ(РеализацияТоваровУслуг.Дата) КАК Месяц,
	                      |	ДОБАВИТЬКДАТЕ(РеализацияТоваровУслуг.Дата, ДЕНЬ, 60) КАК Дата60Дней,
	                      |	ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), ГОД, ГОД(РеализацияТоваровУслуг.Дата) - 1), МЕСЯЦ, ВЫБОР
	                      |				КОГДА МЕСЯЦ(РеализацияТоваровУслуг.Дата) = 12
	                      |					ТОГДА 0
	                      |				ИНАЧЕ МЕСЯЦ(РеализацияТоваровУслуг.Дата)
	                      |			КОНЕЦ), ДЕНЬ, 9) КАК Дата10Числа
	                      |ПОМЕСТИТЬ ВТ_Реализация
	                      |ИЗ
	                      |	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
	                      |ГДЕ
	                      |	РеализацияТоваровУслуг.Дата > &ДатаНач
	                      |	И РеализацияТоваровУслуг.Проведен
	                      |	И РеализацияТоваровУслуг.ВалютаДокумента = &ВалютаДокумента
	                      |
	                      |ИНДЕКСИРОВАТЬ ПО
	                      |	Ссылка
	                      |;
	                      |
	                      |////////////////////////////////////////////////////////////­////////////////////
	                      |ВЫБРАТЬ
	                      |	ХозрасчетныйДвиженияССубконто.Сумма КАК СуммаОплачено,
	                      |	ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.Период, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаПоступления,
	                      |	ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СубконтоКт3 КАК Документ.РеализацияТоваровУслуг) КАК СубконтоКт3
	                      |ПОМЕСТИТЬ ВТ_Поступления
	                      |ИЗ
	                      |	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	                      |			,
	                      |			,
	                      |			СчетДт = &СчетДт
	                      |				И СчетКт = &СчетКт,
	                      |			,
	                      |			) КАК ХозрасчетныйДвиженияССубконто
	                      |
	                      |ОБЪЕДИНИТЬ ВСЕ
	                      |
	                      |ВЫБРАТЬ
	                      |	ХозрасчетныйДвиженияССубконто.Сумма,
	                      |	ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.Период, ДАТАВРЕМЯ(1, 1, 1)),
	                      |	ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СубконтоКт3 КАК Документ.РеализацияТоваровУслуг)
	                      |ИЗ
	                      |	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	                      |			,
	                      |			,
	                      |			СчетДт = &СчетДт2
	                      |				И СчетКт = &СчетКт,
	                      |			,
	                      |			) КАК ХозрасчетныйДвиженияССубконто
	                      |
	                      |ИНДЕКСИРОВАТЬ ПО
	                      |	СубконтоКт3
	                      |;
	                      |
	                      |////////////////////////////////////////////////////////////­////////////////////
	                      |ВЫБРАТЬ
	                      |	СУММА(ЕСТЬNULL(ВТ_Поступления.СуммаОплачено, 0)) КАК СуммаОплачено,
	                      |	МАКСИМУМ(ЕСТЬNULL(ВТ_Поступления.ДатаПоступления, ДАТАВРЕМЯ(1, 1, 1))) КАК ДатаПоступления,
	                      |	ВТ_Реализация.Ссылка КАК Ссылка
	                      |ПОМЕСТИТЬ ВТ_Послед
	                      |ИЗ
	                      |	ВТ_Реализация КАК ВТ_Реализация
	                      |		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Поступления КАК ВТ_Поступления
	                      |		ПО ВТ_Реализация.Ссылка = ВТ_Поступления.СубконтоКт3
	                      |
	                      |СГРУППИРОВАТЬ ПО
	                      |	ВТ_Реализация.Ссылка
	                      |
	                      |ИНДЕКСИРОВАТЬ ПО
	                      |	Ссылка
	                      |;
	                      |
	                      |////////////////////////////////////////////////////////////­////////////////////
	                      |ВЫБРАТЬ
	                      |	ВТ_Реализация.Ссылка КАК Ссылка,
	                      |	СУММА(ВложенныйЗапрос.Ссылка.СуммаДокумента) КАК СуммаЭСЧФ,
	                      |	ВТ_Реализация.Год,
	                      |	ВТ_Реализация.Месяц,
	                      |	ВТ_Реализация.Дата60Дней,
	                      |	ВТ_Реализация.Дата10Числа
	                      |ПОМЕСТИТЬ ВтРеализацииИСчетФактуры
	                      |ИЗ
	                      |	ВТ_Реализация КАК ВТ_Реализация
	                      |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	                      |			ВЫРАЗИТЬ(СчетФактураВыданныйДокументыОснования.ДокументОснование КАК Документ.РеализацияТоваровУслуг) КАК ДокументОснование,
	                      |			СчетФактураВыданныйДокументыОснования.Ссылка КАК Ссылка
	                      |		ИЗ
	                      |			Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования
	                      |				ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
	                      |				ПО СчетФактураВыданныйДокументыОснования.Ссылка = СостоянияЭД.СсылкаНаОбъект
	                      |		ГДЕ
	                      |			СостоянияЭД.СостояниеВерсииЭД = &СостояниеВерсииЭД
	                      |			И СостоянияЭД.ДействияСоСтороныДругогоУчастника <> ""Аннулирован"") КАК ВложенныйЗапрос
	                      |		ПО ВТ_Реализация.Ссылка = ВложенныйЗапрос.ДокументОснование
	                      |
	                      |СГРУППИРОВАТЬ ПО
	                      |	ВТ_Реализация.Ссылка,
	                      |	ВТ_Реализация.Год,
	                      |	ВТ_Реализация.Месяц,
	                      |	ВТ_Реализация.Дата60Дней,
	                      |	ВТ_Реализация.Дата10Числа
	                      |
	                      |ИНДЕКСИРОВАТЬ ПО
	                      |	Ссылка
	                      |;
	                      |
	                      |////////////////////////////////////////////////////////////­////////////////////
	                      |ВЫБРАТЬ
	                      |	ЕСТЬNULL(ВТ_Послед.СуммаОплачено, 0) - ЕСТЬNULL(ВтРеализацииИСчетФактуры.СуммаЭСЧФ, 0) КАК СуммаДляЭСЧФ,
	                      |	ВтРеализацииИСчетФактуры.Ссылка КАК Реализация,
	                      |	ЕСТЬNULL(ВтРеализацииИСчетФактуры.СуммаЭСЧФ, 0) КАК СуммаВыставлено,
	                      |	ЕСТЬNULL(ВТ_Послед.СуммаОплачено, 0) КАК Оплачено,
	                      |	РАЗНОСТЬДАТ(&ДатаКон, ВтРеализацииИСчетФактуры.Дата60Дней, ДЕНЬ) КАК Срок60Дней,
	                      |	ВтРеализацииИСчетФактуры.Ссылка.Контрагент КАК Контрагент,
	                      |	ВтРеализацииИСчетФактуры.Ссылка.СуммаДокумента КАК СуммаДокумента,
	                      |	ВЫБОР
	                      |		КОГДА &ДатаКон >= ВтРеализацииИСчетФактуры.Дата60Дней
	                      |			ТОГДА РАЗНОСТЬДАТ(&ДатаКон, ДОБАВИТЬКДАТЕ(ВтРеализацииИСчетФактуры.Дата60Дней, ДЕНЬ, 2), ДЕНЬ)
	                      |		ИНАЧЕ ВЫБОР
	                      |				КОГДА ЕСТЬNULL(ВТ_Послед.СуммаОплачено, 0) - ЕСТЬNULL(ВтРеализацииИСчетФактуры.СуммаЭСЧФ, 0) = 0
	                      |					ТОГДА 0
	                      |				ИНАЧЕ ВЫБОР
	                      |						КОГДА &ДатаКон < ВтРеализацииИСчетФактуры.Дата10Числа
	                      |							ТОГДА РАЗНОСТЬДАТ(&ДатаКон, ВтРеализацииИСчетФактуры.Дата10Числа, ДЕНЬ)
	                      |						ИНАЧЕ РАЗНОСТЬДАТ(&ДатаКон, ДОБАВИТЬКДАТЕ(ВЫБОР
	                      |										КОГДА ВТ_Послед.ДатаПоступления < ВтРеализацииИСчетФактуры.Ссылка.Дата
	                      |												И ВТ_Послед.ДатаПоступления <> NULL
	                      |											ТОГДА ВтРеализацииИСчетФактуры.Ссылка.Дата
	                      |										ИНАЧЕ ЕСТЬNULL(ВТ_Послед.ДатаПоступления, ДАТАВРЕМЯ(1, 1, 1))
	                      |									КОНЕЦ, ДЕНЬ, 2), ДЕНЬ)
	                      |					КОНЕЦ
	                      |			КОНЕЦ
	                      |	КОНЕЦ КАК СрокВыставления,
	                      |	ВтРеализацииИСчетФактуры.Дата60Дней КАК Дата60Дней,
	                      |	ВЫБОР
	                      |		КОГДА &ДатаКон >= ВтРеализацииИСчетФактуры.Дата60Дней
	                      |			ТОГДА ДОБАВИТЬКДАТЕ(ВтРеализацииИСчетФактуры.Дата60Дней, ДЕНЬ, 2)
	                      |		ИНАЧЕ ВЫБОР
	                      |				КОГДА ЕСТЬNULL(ВТ_Послед.СуммаОплачено, 0) - ЕСТЬNULL(ВтРеализацииИСчетФактуры.СуммаЭСЧФ, 0) = 0
	                      |					ТОГДА ДАТАВРЕМЯ(1, 1, 1)
	                      |				ИНАЧЕ ВЫБОР
	                      |						КОГДА &ДатаКон < ВтРеализацииИСчетФактуры.Дата10Числа
	                      |							ТОГДА ВтРеализацииИСчетФактуры.Дата10Числа
	                      |						ИНАЧЕ ДОБАВИТЬКДАТЕ(ВЫБОР
	                      |									КОГДА ВТ_Послед.ДатаПоступления < ВтРеализацииИСчетФактуры.Ссылка.Дата
	                      |											И ВТ_Послед.ДатаПоступления <> NULL
	                      |										ТОГДА ВтРеализацииИСчетФактуры.Ссылка.Дата
	                      |									ИНАЧЕ ЕСТЬNULL(ВТ_Послед.ДатаПоступления, ДАТАВРЕМЯ(1, 1, 1))
	                      |								КОНЕЦ, ДЕНЬ, 2)
	                      |					КОНЕЦ
	                      |			КОНЕЦ
	                      |	КОНЕЦ КАК ВыставитьДо,
	                      |	ВЫБОР
	                      |		КОГДА ВТ_Послед.ДатаПоступления < ВтРеализацииИСчетФактуры.Ссылка.Дата
	                      |				И ВТ_Послед.ДатаПоступления <> NULL
	                      |			ТОГДА ВтРеализацииИСчетФактуры.Ссылка.Дата
	                      |		ИНАЧЕ ЕСТЬNULL(ВТ_Послед.ДатаПоступления, ДАТАВРЕМЯ(1, 1, 1))
	                      |	КОНЕЦ КАК ДатаОплаты,
	                      |	ВтРеализацииИСчетФактуры.Ссылка.СуммаДокумента - ЕСТЬNULL(ВтРеализацииИСчетФактуры.СуммаЭСЧФ, 0) КАК ОстатокОплатыОстаток,
	                      |	ВтРеализацииИСчетФактуры.Ссылка.Дата КАК Дата
	                      |ИЗ
	                      |	ВтРеализацииИСчетФактуры КАК ВтРеализацииИСчетФактуры
	                      |		ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Послед КАК ВТ_Послед
	                      |		ПО ВтРеализацииИСчетФактуры.Ссылка = ВТ_Послед.Ссылка
	                      |ГДЕ
	                      |	ВтРеализацииИСчетФактуры.Ссылка.СуммаДокумента - ЕСТЬNULL(ВтРеализацииИСчетФактуры.СуммаЭСЧФ, 0) > 0");
	Запрос.УстановитьПараметр("ДатаКон",ТекущаяДата);
	Запрос.УстановитьПараметр("ВалютаДокумента",Константы.ВалютаРегламентированногоУчета.Получить()); //Справочники.Валюты.НайтиПоКоду(933));
	Запрос.УстановитьПараметр("СостояниеВерсииЭД",Перечисления.СтатусыЭД.Отправлен);
	Запрос.УстановитьПараметр("СчетДт",ПланыСчетов.Хозрасчетный.РасчетныеСчета);				//ПланыСчетов.Хозрасчетный.НайтиПоКоду("51")); 
	Запрос.УстановитьПараметр("СчетДт2",ПланыСчетов.Хозрасчетный.РасчетыПоАвансамПолученным);	//ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.5"));  
	Запрос.УстановитьПараметр("СчетКт",ПланыСчетов.Хозрасчетный.РасчетыСПокупателями);			//ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.1"));  
	Запрос.УстановитьПараметр("ДатаНач",'20170101');

	Выборка = Запрос.ВыполнитьПакет();
	Выборка1 = Выборка[4].выгрузить();
Показать
5. SP17081992 5 03.03.17 21:36 Сейчас в теме
(1) Место динамического списка можно создать реквизит с типом Таблица Значение и заполнить таблицу программно (например при создании на сервере). Будет работать не так медленнее, но разумеется медленнее чем динамический список.
6. kar911 03.03.17 22:41 Сейчас в теме
(5)пока что так и работает
40. Rain_man 18.08.20 15:56 Сейчас в теме
(1)
Предупреждаю: это - изврат и, например, поиск - не будет работать.
Итак - загрузка извне небольших объёмов данных в динамический список:

СтрашныйТекстЗапроса = "";
Для i1 = 0 По ТабЗначений.Количество() -1 Цикл
СтрашныйТекстЗапроса = СтрашныйТекстЗапроса + ?(i1=0,"ВЫБРАТЬ",Символы.ПС+"ОБЪЕДИНИТЬ ВСЕ"+Символы.ПС+"ВЫБРАТЬ");
Для i2 = 0 По ТабЗначений.Колонки.Количество() -1 Цикл
СтрашныйТекстЗапроса = СтрашныйТекстЗапроса +Символы.ПС+ ?(i2=0," ",",")+"&"+ТабЗначений.Колонки[i2].Имя+Строка(i1)+?(i1=0," КАК "+ТабЗначений.Колонки[i2].Имя, "");
КонецЦикла;
СтрашныйТекстЗапроса = СтрашныйТекстЗапроса +Символы.ПС+"ИЗ Перечисление.ВариантыВажностиЗадачи КАК Заглушка, (ВЫБРАТЬ ПЕРВЫЕ 1 Ссылка ИЗ Перечисление.ВариантыВажностиЗадачи КАК Заглушка) КАК Заглушка1 ГДЕ Заглушка.Ссылка = Заглушка1.Ссылка";
КонецЦикла;

СтрашныйДинамическийСписок.ТекстЗапроса = СтрашныйТекстЗапроса;
Для i1 = 0 По ТабЗначений.Количество() -1 Цикл
Для i2 = 0 По ТабЗначений.Колонки.Количество() -1 Цикл
СтрашныйДинамическийСписок.Параметры.УстановитьЗначениеПараметра(ТабЗначений.Колонки[i2].Имя+Строка(i1), ТабЗначений[i1][ТабЗначений.Колонки[i2].Имя]);
КонецЦикла;
КонецЦикла;


П.С. "Символы.ПС" - понатыкал, только для того, чтобы полюбоваться запросом в отладчике; а так - можно пробелы.
Оборот с "Заглушкой" - потому, что оно повторяет каждую строку, столько раз, сколько значений в перечислении, что - логично.
9. YanSergey 145 09.03.17 17:28 Сейчас в теме
1. Временные таблицы в динамическом списке поддерживаются начиная с версии 8.3.8, а не 8.3.9.
2. Таблицу значений можно передать в запрос поместив результат во временную таблицу:

ВЫБРАТЬ
  ТЗ.Поле1,
  ТЗ.Поле2,
  ТЗ.Поле3
Поместить ВходнаяТЗ
ИЗ &ПараметрТЗ из ТЗ

ПараметрТЗ - это таблица значений, ее установить как обычный параметр запроса
10. YanSergey 145 10.03.17 08:22 Сейчас в теме
Немного опечатался
ВЫБРАТЬ
  ТЗ.Поле1,
  ТЗ.Поле2,
  ТЗ.Поле3
Поместить ВходнаяТЗ
ИЗ &ПараметрТЗ как ТЗ
11. kar911 10.03.17 10:49 Сейчас в теме
(10)как я правильно понял? мне с начало нужно запросом получить результаты временных таблиц а потом передать их в виде параметра в Динамический список
12. kar911 10.03.17 11:04 Сейчас в теме
(10)
ПараметрТЗ как ТЗ

вот такую ошибку выдаёт {(18, 2)}: Неверные параметры "ПараметрТЗ"
<<?>>&ПараметрТЗ КАК ТЗ
13. YanSergey 145 10.03.17 11:13 Сейчас в теме
(12)Напиши полный текст запроса, который у тебя получился.
14. kar911 10.03.17 11:31 Сейчас в теме
(13) я своим запросом который писал выше получил тз и в динамическом списке вот такой запрос
ВЫБРАТЬ
ТЗ.СуммаДляЭСЧФ,
ТЗ.Реализация,
ТЗ.СуммаВыставлено,
ТЗ.Оплачено,
ТЗ.Срок60Дней,
ТЗ.Контрагент,
ТЗ.СуммаДокумента,

ТЗ.рокВыставления,
ТЗ.Дата60Дней,
ТЗ.ВыставитьДо,
ТЗ.ДатаОплаты,
ТЗ.ОстатокОплатыОстаток,
ТЗ.Дата
	Поместить ВходнаяТЗ
ИЗ &ПараметрТЗ как ТЗ
;
//////////////
Выбрать
ВходнаяТЗ.ОстатокОплатыОстаток
ОстатокОплатыОстаток.Дата
Из ВходнаяТЗ как ВходнаяТЗ
Показать
15. YanSergey 145 10.03.17 11:55 Сейчас в теме
А кстати, режим совместимости конфигурации с какой версией выставлен? Если ниже 8.3.8, то пакетные запросы в динамическом списке не будут работать.
16. kar911 10.03.17 12:05 Сейчас в теме
17. kar911 10.03.17 12:09 Сейчас в теме
(15) не помогло поставил 8.3.8 выдаёт ошибку {ОбщаяФорма.ФормаПроверкаЭСЧФ.Форма(77)}: Ошибка при получении значения атрибута контекста (Параметры)
Список.Параметры.УстановитьЗначениеПараметра("ПараметрТЗ",Выборка); //Справочники.Валюты.НайтиПоКоду(933));
по причине:
Ошибка при выполнении запроса.
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(17, 2)}: Неверные параметры "ПараметрТЗ"
<<?>>&ПараметрТЗ КАК ТЗ
18. YanSergey 145 10.03.17 12:12 Сейчас в теме
(17) Режим совместимости вероятно остался 8.3.7? Нужно переводить в 8.3.8, но это чревато опасностями.
19. kar911 10.03.17 12:14 Сейчас в теме
(18)
Прикрепленные файлы:
20. spp28 24 23.12.17 09:39 Сейчас в теме
(17)
ПараметрТЗ

у меня такое выдавал ещё на стадии редактирования запроса динамического списка. причем конструктор не ругался, а при установке именно в динамический список писал такое(
наверное это ограничение.. причем временные таблицы работают, а вот временные таблицы из параметров нет..
кто-нибудь обошел это?
nekit_rdx; +1 Ответить
21. agr1ck 01.02.18 16:22 Сейчас в теме
Тоже интересует данный вопрос! Интересует возможность передачи ТЗ через параметр в динамический список, для того, чтобы поместить из неё данные в ВТ. Возможно ли такое, или ждать, когда платформу допилят?
22. DarkUser 01.02.18 17:00 Сейчас в теме
(21) Так допилили же уже. Используйте событие ПриПолученииДанныхНаСервере динамического списка.
23. agr1ck 02.02.18 08:45 Сейчас в теме
Все бы хорошо, только событие вызывается с директивой &НаСервереБезКонтекста, что не позволяет мне использовать там свою ТЗ. Или я чего то не понимаю.
24. venvlad 25 24.07.18 14:58 Сейчас в теме
(23)
Жесть, &НаСервере, не могли что ли сделать. Пришлось через ХранилищеЗначения в ПараметрахСеанса пропихивать.
nekit_rdx; +1 Ответить
25. Daemon73 04.01.19 01:22 Сейчас в теме
(24) А можно подробнее, как в итоге получилось сделать?
26. independ 1520 04.01.19 05:10 Сейчас в теме
(25) для передачи параметров в событие ПриПолученииДанныхНаСервере можно использовать ДополнительныеСвойства динамического списка

&НаКлиенте
Процедура ИзменитьДопПараметры();
	ПодборТаблицаНоменклатура.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("Склад",Склад);
	ПодборТаблицаНоменклатура.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ВидЦены",ВидЦены);
	Элементы.ПодборТаблицаНоменклатура.Обновить();
КонецПроцедуры	

&НаСервереБезКонтекста
Процедура ПодбЦО_ПодборТаблицаНоменклатураПриПолученииДанныхНаСервереП­осле(ИмяЭлемента, Настройки, Строки)
	
	Склад=Неопределено;
	ВидЦены=Неопределено;
	
	Настройки.ДополнительныеСвойства.Свойство("Склад",Склад);
	Настройки.ДополнительныеСвойства.Свойство("ВидЦены",ВидЦены);
	
	Запрос = Новый Запрос;
	
	Запрос.УстановитьПараметр("ВидЦены", ВидЦены);
	Запрос.УстановитьПараметр("Склад", Склад);
	Запрос.УстановитьПараметр("СписокНоменклатуры", Строки.ПолучитьКлючи());
	
	Запрос.Текст = 
Показать
horoshko84; z.snega; Somebody1; nekit_rdx; Zedekus; acanta; +6 Ответить
38. Zedekus 22.05.20 17:01 Сейчас в теме
(26)
Восхитительно! Спасибо, помогло! Да ваш ответ должен быть закреплен вверху темы!

//Помещение параметра
СписокНоменклатуры.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.
Вставить("ХЗ",Новый ХранилищеЗначения(ПодобранноеРанее.Выгрузить()));

//Получение параметра
ХЗ = Неопределено;
Настройки.ДополнительныеСвойства.Свойство("ХЗ",ХЗ);

Если ЗначениеЗаполнено(ХЗ) Тогда
ТЗ = ХЗ.Получить();
КонецЕсли;
z.snega; nekit_rdx; +2 Ответить
39. nekit_rdx 214 23.07.20 17:43 Сейчас в теме
27. meriferi 05.01.19 19:43 Сейчас в теме
Событие ПриПолученииДанныхНаСервере динамического списка, так передавайте параметр
28. Daemon73 22.01.19 13:41 Сейчас в теме
(27) Приведите пожалуйста пример кода, который передаёт Таблицу значений в это событие.
29. ROM_1C 691 21.03.19 00:24 Сейчас в теме
С этим вопросом кто-то разобрался?
30. bimy22 01.04.19 19:48 Сейчас в теме
(29) Тот же вопрос, а то тема актуальная, как оказалось.
31. independ 1520 01.04.19 20:00 Сейчас в теме
(30) Вопрос как передать ТЗ в событие ПриПолученииДанныхНаСервере?
В серверной процедуре
ДинСписок.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ТЗ",ТЗ);

и получить
Процедура ПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
    
    ТЗ=Неопределено;
    
    Настройки.ДополнительныеСвойства.Свойство("ТЗ",ТЗ);
divol2010; acanta; +2 Ответить
34. login1020 133 19.04.19 12:05 Сейчас в теме
(31) Не пойму как изначально произвольный запрос вида засунуть в Динамический список, если он не даёт его даже сохранить?
ВЫБРАТЬ
	Сотрудники.Сотрудник КАК Сотрудник,
	Сотрудники.МестоВСтруктуреПредприятия КАК МестоВСтруктуреПредприятия,
	Сотрудники.ПодразделениеНастройки КАК ПодразделениеНастройки,
	Сотрудники.Состояние КАК Состояние,
	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
	Сотрудники.Фио КАК Фио
ПОМЕСТИТЬ СписокСотрудников
ИЗ
	&Сотрудники КАК Сотрудники
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	МАКСИМУМ(КМО_ДанныеМедицинскихКнижекСрезПоследних.Период) КАК Период,
	КМО_ДанныеМедицинскихКнижекСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо
ПОМЕСТИТЬ ВТ_МаксПериод
ИЗ
	РегистрСведений.КМО_ДанныеМедицинскихКнижек.СрезПоследних(
			&ДатаСреза,
			ФизическоеЛицо В
				(ВЫБРАТЬ
					СписокСотрудников.ФизическоеЛицо КАК ФизическоеЛицо
				ИЗ
					СписокСотрудников КАК СписокСотрудников)) КАК КМО_ДанныеМедицинскихКнижекСрезПоследних

СГРУППИРОВАТЬ ПО
	КМО_ДанныеМедицинскихКнижекСрезПоследних.ФизическоеЛицо
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	КМО_ДанныеМедицинскихКнижекСрезПоследних.НомерЛМС КАК НомерЛМС,
	КМО_ДанныеМедицинскихКнижекСрезПоследних.ДатаПрохожденияМО КАК ДатаПрохожденияМО,
	КМО_ДанныеМедицинскихКнижекСрезПоследних.ДатаСледующегоМО КАК ДатаСледующегоМО,
	КМО_ДанныеМедицинскихКнижекСрезПоследних.Статус КАК Статус,
	СписокСотрудников.Сотрудник КАК Сотрудник,
	СписокСотрудников.МестоВСтруктуреПредприятия КАК МестоВСтруктуреПредприятия,
	СписокСотрудников.ПодразделениеНастройки КАК ПодразделениеНастройки,
	СписокСотрудников.Состояние КАК Состояние,
	СписокСотрудников.ФизическоеЛицо КАК ФизическоеЛицо1,
	СписокСотрудников.Фио КАК Фио
ИЗ
	СписокСотрудников КАК СписокСотрудников
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_МаксПериод КАК ВТ_МаксПериод
			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КМО_ДанныеМедицинскихКнижек.СрезПоследних(
					&ДатаСреза,
					ФизическоеЛицо В
						(ВЫБРАТЬ
							СписокСотрудников.ФизическоеЛицо КАК ФизическоеЛицо
						ИЗ
							СписокСотрудников КАК СписокСотрудников)) КАК КМО_ДанныеМедицинскихКнижекСрезПоследних
			ПО ВТ_МаксПериод.Период = КМО_ДанныеМедицинскихКнижекСрезПоследних.Период
				И ВТ_МаксПериод.ФизическоеЛицо = КМО_ДанныеМедицинскихКнижекСрезПоследних.ФизическоеЛицо
		ПО СписокСотрудников.ФизическоеЛицо = ВТ_МаксПериод.ФизическоеЛицо
Показать
35. kar911 19.04.19 12:18 Сейчас в теме
(34) программно можно присвоить
41. Zixxx 25.10.20 17:50 Сейчас в теме
(36) Ссылка не работает, тоже интересно посмотреть...
32. user799503 6 17.04.19 15:31 Сейчас в теме
Выход из подобной ситуации был такой - был создан регистр сведений с совпадением колонок в таблице значений (ТЗ) +ссылка на текущего пользователя.
Динамический список ссылается на данный регистр. При обновлении данных в ТЗ - обновляется регистр. Можно при закрытии формы чистить регистр, можно регламентным заданием, но это по необходимости.

В сам динамический список вставить внешнюю таблицу не представляется возможным. Вышеуказанный параметр " ИЗ &ПараметрТЗ как ТЗ" в динамическом списке выдаёт ошибку.
33. kar911 19.04.19 11:22 Сейчас в теме
(32) регистр тогда лучше сделать более универсальным чтобы не создавать новый когда тебе понадобиться другую ТЗ загрузить. Сделать наименование ТЗ и просто колонка1, колонка2 ...
37. KazanKokos 10 30.01.20 16:06 Сейчас в теме
В УТ снял замочек с документа и перенес таблицу в форму в основную конфу, и перенес в расширение.
Для УТ вполне норм когда необязательно обновление. В БП конечно будут траблы при обновлениях
42. yak127 38 02.12.20 21:18 Сейчас в теме
(41) Тут описан пример применения события ПриПолученииДанныхНаСервере: https://its.1c.ru/db/pubv8devui/content/242/hdoc
Еще в качестве примера простая задача. Показать динамический список справочника Профилей групп доступа и дополнить его ролями (Роли хранятся в табличной части справочника). Справочник есть почти во всех типовых конфигурациях.
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	ПрофилиГруппДоступаРоли.Ссылка КАК Ссылка,
	               |	ПрофилиГруппДоступаРоли.Роль КАК Роль
	               |ИЗ
	               |	Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли
	               |ИТОГИ ПО
	               |	Ссылка";
	РезультатЗапроса = Запрос.Выполнить();
	Если НЕ РезультатЗапроса.Пустой() Тогда
		Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
		Пока Выборка.Следующий() Цикл
			Роли = "";
			ВыборкаДетали = Выборка.Выбрать();
			Пока ВыборкаДетали.Следующий() Цикл
				Роли = ?(ПустаяСтрока(Роли), Строка(ВыборкаДетали.Роль), Роли + Символы.ПС + Строка(ВыборкаДетали.Роль));
			КонецЦикла;
			Попытка
				СтрокаСписка = Строки[Выборка.Ссылка];
				СтрокаСписка.Данные["Роли"] = Роли;			
			Исключение
			    // в порции данных строки с таким ключом может и не быть
			КонецПопытки;
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры
Показать
Прикрепленные файлы:
ДинамическийСписокСДополнением.epf
43. Yashazz 4726 19.08.21 18:15 Сейчас в теме
Кому надо было пропихнуть ТЗ в ПриПолученииДанныхНаСервере - https://infostart.ru/1c/articles/1497207/
44. alex25ru 26.01.22 10:50 Сейчас в теме
Поделитесь примером передачи ТЗ в динамический список?

То ли что-то поменялось в царстве 1с, то ли лошадь не едет.

Есть запрос:
ВЫБРАТЬ
	ТаблицаКонтейнеров.Организация КАК Организация,
	ТаблицаКонтейнеров.Контейнер КАК Контейнер
ПОМЕСТИТЬ ВТ_ТаблицаКонтейнеров
ИЗ
	&ТаблицаКонтейнеров КАК ТаблицаКонтейнеров
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_ТаблицаКонтейнеров.Организация КАК Организация,
	ВТ_ТаблицаКонтейнеров.Контейнер КАК Контейнер
ИЗ
	ВТ_ТаблицаКонтейнеров КАК ВТ_ТаблицаКонтейнеров
Показать



При попытке напрямую установить его через конструктор неверный параметр, при программной установке в событии "ПриСозданииНаСервере" - ошибка отображения типов: ValueTable.

8.3.18.1289, режим совместимости 8.3.15.
45. forever-lilya 5 30.03.22 15:38 Сейчас в теме
47. andryandry 94 21.09.22 15:11 Сейчас в теме
(44) да, лыжи не едут, факт

Если кто может передать в динамический список ТЗ как ИСТОЧНИК данных - поделитесь живой обработкой
46. alex25ru 04.04.22 05:39 Сейчас в теме
(45) Ответа не нашел. Переиграл задачу по другому, исключив использование таблицы значений.
Оставьте свое сообщение

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