-Рубрики

 -Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в Iwinter

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 28.04.2008
Записей:
Комментариев:
Написано: 228


1С 8.2. Запрос к Таблице значений

Понедельник, 03 Марта 2014 г. 15:21 + в цитатник
Частенько получается так, что данные лежат в таблице значений, и надо, например, вытащить данные из нее по к-то 
условию. Для этого можно задействовать запрос. Делаем так (вставляю пример текста, чтоб было под рукой):

//при запросе к ТЗ типы колонок ТЗ д.б. объявлены явно.
КЧ14_3 = Новый КвалификаторыЧисла(14,3);
КС190 = Новый КвалификаторыСтроки(190);
КС10 = Новый КвалификаторыСтроки(10);

Массив = Новый Массив;
Массив.Добавить(Тип("Строка"));
ОписаниеТиповС190 = Новый ОписаниеТипов(Массив, , КС190);
ОписаниеТиповС10 = Новый ОписаниеТипов(Массив, , КС10);
        
Массив.Очистить();
Массив.Добавить(Тип("Число"));
ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, КЧ14_3);
            
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Группа", ОписаниеТиповС190);
ТЗ.Колонки.Добавить("Наименование", ОписаниеТиповС190);
ТЗ.Колонки.Добавить("Артикул", ОписаниеТиповС10);
ТЗ.Колонки.Добавить("Менеджер", ОписаниеТиповС10);
ТЗ.Колонки.Добавить("Колво", ОписаниеТиповЧ);
 
// 2. необходимо подключить Менеджер временных таблиц
// один запрос будет все же упоминаться 2 раза. Т.к. чтобы по результатам запроса можно было 
// потом пройти, надо сначала выбрать данные из ТЗ во временную таблицу, а потом уже из нее 
// сделать выборку-результат
 
Запрос = Новый Запрос();
МенеджерВТ = Новый МенеджерВременныхТаблиц();
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
        
Запрос.Текст = 
"ВЫБРАТЬ 
|       врТаблицаДанных.Артикул,
|       врТаблицаДанных.Наименование
|ПОМЕСТИТЬ Товары
|ИЗ
|       &врТаблицаДанных КАК врТаблицаДанных
|ГДЕ
|       врТаблицаДанных.Группа = &выбрГруппа";
 
Запрос.УстановитьПараметр("врТаблицаДанных",  ТЗ);
Запрос.УстановитьПараметр("выбрГруппа",  выбрГруппа);
Запрос.Выполнить();
        
Запрос = Новый Запрос();
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос.Текст =
   "ВЫБРАТЬ 
|       Товары.Артикул,
|       Товары.Наименование,"+допСтр2+"
|ИЗ
|       Товары КАК Товары";
        
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
                
Пока Выборка.Следующий() Цикл
        НаименованиеТов = Выборка.Наименование;
        //... любая обработка
КонецЦикла;

 

Рубрики:  Работа/1С 8.2.
Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку