Запрос к Таблице Значений Код 1C v 8.х Таблица = Новый ТаблицаЗначений;
Массив = Новый Массив;
КЧ = Новый КвалификаторыЧисла( 10 , 2 ) ;
Массив. Добавить( Тип( "Число" ) ) ;
ОписаниеТиповЧ = Новый ОписаниеТипов( Массив, , , КЧ) ;
Таблица. Колонки. Добавить( "КодУслуги" , ОписаниеТиповЧ) ;
Пока ВыборкаСпр. Следующий( ) Цикл
НоваяСтрока = Таблица. Добавить( ) ;
НоваяСтрока. КодУслуги = ВыборкаСпр. Код;
КонецЦикла ;
Запрос = Новый Запрос;
МенеджерВТ = Новый МенеджерВременныхТаблиц;
Запрос. МенеджерВременныхТаблиц = МенеджерВТ;
Запрос. Текст = "ВЫБРАТЬ
| Таб.КодУслуги КАК Код
|ПОМЕСТИТЬ ВТДанные
|ИЗ
| &Данные КАК Таб" ;
Запрос. УстановитьПараметр( "Данные" , Таблица) ;
Результат = Запрос. Выполнить( ) ;
Пример Заполнения колонки одной таблицы по колонке другой, по типу ЛЕВОЕ СОЕДИНЕНИЕ
Это удобно когда например надо заполнить колонку не одним фиксированным значением, а в зависимости от значений в других колонках
Код 1C v 8.х
ТЗН1 = Новый ТаблицаЗначений;
ТЗН2 = Новый ТаблицаЗначений;
Запрос. УстановитьПараметр( "ТЗН1" , Отправления) ;
Запрос. УстановитьПараметр( "ТЗН2" , ЛотыКСписанию) ;
МВТ = Новый МенеджерВременныхТаблиц;
Запрос. МенеджерВременныхТаблиц = МВТ;
Запрос. Текст =
"ВЫБРАТЬ
| ТЗН1.Кол1 КАК Кол1,
| ТЗН1.Кол2 КАК Кол2,
| ТЗН1.Кол3 КАК Кол3,
| ТЗН1.ИД КАК ИД
|ПОМЕСТИТЬ
| ТЗН1
|ИЗ
| &ТЗН1 КАК ТЗН1" ;
Запрос. Выполнить( ) ;
Запрос. Текст =
"ВЫБРАТЬ
| ТЗН2.Кол1 КАК Кол4,
| ТЗН2.Кол2 КАК Кол5,
| ТЗН2.Кол3 КАК Кол6,
| ТЗН2.ИД КАК ИД
|ПОМЕСТИТЬ
| ТЗН2
|ИЗ
| &ТЗН2 КАК ТЗН2" ;
Запрос. Выполнить( ) ;
Запрос. Текст =
"ВЫБРАТЬ
| ТЗН1.Кол1 КАК Кол1,
| ТЗН1.Кол2 КАК Кол2,
| ТЗН1.Кол3 КАК Кол3,
| ТЗН1.ИД КАК ИД,
| ТЗН2.Кол1 КАК Кол4,
| ТЗН2.Кол2 КАК Кол5,
| ТЗН2.Кол3 КАК Кол6,
|ИЗ
| ТЗН1 КАК ТЗН1
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЗН2 КАК ТЗН2
| ПО ТЗН1.ИД = ТЗН2.ИД" ;
тзн3 = Запрос. Выполнить( ) . Выгрузить( ) ;
Запрос к таблице делается в 2 этапа:
Сначала она запросом помещается в МенеджерВременныхТаблиц, а затем вторым запросом к ней делается запрос!
В 8.0 к ТЗ можно работать только построителем запроса!
Примерно так:
Код 1C v 8.х ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса. ИсточникДанных = Новый ОписаниеИсточникаДанных( ТЗ) ;
СтрокаОтбора = ПостроительЗапроса. Отбор. Добавить( "Реквизит" ) ;
СтрокаОтбора. Значение = Истина ;
СтрокаОтбора. ВидСравнения = ВидСравнения. Равно;
СтрокаОтбора. Использование = Истина ;
ПостроительЗапроса. Выполнить( ) ;
ВыбрСтроки = ПостроительЗапроса. Результат. Выгрузить( ) ;
Как в запросе, в качестве источника данных, использовать таблицу значений? Категория:
Запросы Описание типов данных значений колонок создаваемой таблицы значений Код 1C v 8.х
ТаблицаПериодов = Новый ТаблицаЗначений;
ТаблицаПериодов. Колонки. Добавить( "НомерСтроки" , Новый ОписаниеТипов( "Число" ) ) ;
ТаблицаПериодов. Колонки. Добавить( "Сотрудник" , Новый ОписаниеТипов( "СправочникСсылка.СотрудникиОрганизаций" ) ) ;
ТаблицаПериодов. Колонки. Добавить( "ВидЕжегодногоОтпуска" , Новый ОписаниеТипов( "СправочникСсылка.ВидыЕжегодныхОтпусков" ) ) ;
ТаблицаПериодов. Колонки. Добавить( "ДатаНачала" , Новый ОписаниеТипов( "Дата" ) ) ;
ТаблицаПериодов. Колонки. Добавить( "ДатаОкончания" , Новый ОписаниеТипов( "Дата" ) ) ;
Категория:
Работа с Типами данных