Запрос к Таблице Значений Код 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 = Запрос. Выполнить( ) . Выгрузить( ) ;
Взято с http://help1c.com/faq/view/815.html
Комментариев нет:
Отправить комментарий