Можно ли использовать таблицу значений в запросе? Можно. Правда, при соблюдении некоторых правил.

 Правило первое: таблица значений должна быть типизированной. То есть для значений в таблице значений необходимо указать тип с помощью метода ОписаниеТипов.

Выглядит это примерно так:

// Если значение в таблице значений нескольких типов:
МассивОписанияТипов = Новый Массив;
	МассивОписанияТипов.Добавить(Тип("ДокументСсылка.АктВыполненныхРабот"));
	МассивОписанияТипов.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг"));
ОписаниеТиповОтмеченныеДокументы = Новый ОписаниеТипов(МассивОписанияТипов);
// Когда тип значения один, то можно обойтись без массива: 
ОписаниеТиповЗаказКлиента = Новый ОписаниеТипов("ДокументСсылка.ЗаказКлиента");

 Создаём таблицу значений:

СписокДокументов = Новый ТаблицаЗначений;
	СписокДокументов.Колонки.Добавить("ДокументРеализации", ОписаниеТиповОтмеченныеДокументы, "ДокументРеализации");
	СписокДокументов.Колонки.Добавить("ЗаказКлиента", ОписаниеТиповЗаказКлиента, "ЗаказКлиента");
	
	// Заполняем таблицу значений, например, в цикле.
	НовСтрока = СписокДокументов.Добавить();

Правило второе: Таблицу значений в запросе нужно помещать во временную таблицу. Делаем это с помощью параметра, в который и передаём нашу таблицу значений.

Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	СписокДокументов.ЗаказКлиента КАК ЗаказКлиента,
	|	СписокДокументов.ДокументРеализации
	|ПОМЕСТИТЬ ВТСписокДокументов
	|ИЗ
	|	&СписокДокументов КАК СписокДокументов
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	ЗаказКлиента
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ВТСписокДокументов.ЗаказКлиента КАК ЗаказКлиента,
	|	АктВыполненныхРабот.Ссылка КАК ДокументРеализации
	|ИЗ
	|	ВТСписокДокументов КАК ВТСписокДокументов
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктВыполненныхРабот КАК АктВыполненныхРабот
	|   ...";
						
	Запрос.УстановитьПараметр("СписокДокументов", СписокДокументов);

Вот такой нехитрый приём.

Комментарии

  • pavlo 18.09.2018 13:59
    У меня по второму варианту не получилось. При такой настройке появилась колонка построчно со словами названия колонки ресурса.

    Подробнее...

     
  • Altavista- 17.09.2018 20:51
    Не бесспорное решение: 1. В регистр логичнее добавить 2й ресурс ("вТрансфертныхЦенах"); 2. РС "Наценки"? Однозначно, нет. Это реквизит справочника; 3. Реквизита "Контрагент" в условии задачи тоже нет и ...

    Подробнее...

     
  • Андрей 02.08.2018 09:55
    Большое спасибо! По "Варианту 2": в выбранных полях группировки колонок (у меня их несколько) кроме поля самой колонки пришлось добавить и ресурс.

    Подробнее...