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