1С 8.3 Добавить данные в существующую временную таблицу запроса
Данные > Примеры кода 1С > 1С 8.3 Запросы
Перейти в раздел примеры кода 1С 8.3:
![](images/kod_1c_1cnik.by.webp)
В релизе 8.3.25 стало возможным добавление данных в ранее созданную Временную Таблицу с помощью команды ДОБАВИТЬ (ADD). Структура запросов, добавляющих данные в существующую временную таблицу (состав колонок и их типы) должны совпадать со структурой временной таблицы, иначе возникнет ошибка "Структура существующей временной таблицы не соответствует структуре добавляемых данных".
С целью роста скорости поиска по Временной Таблице в 1С появилась возможность создания нескольких индексов. Для предложения ИНДЕКСИРОВАТЬ ПО реализовано расширение НАБОРАМ (SETS).
В старых версиях 1С (до 8.3.24) включительно, функция добавления данных в уже сформированную временную таблицу отсутствует. Если нужно условно сложить в ВТ_Контрагенты дополнительно данные справочника Филиалы, то выскочит ошибка "Временная таблица уже существует".
Добавить данные в существующую временную таблицу в запросе 1С 8.3:
&НаСервере
Процедура ДобавитьВ_ВТ()
Запрос = Новый Запрос("ВЫБРАТЬ
| Контрагенты.Код КАК Код,
| Контрагенты.Наименование КАК Наименование
|ПОМЕСТИТЬ ВТ_Контрагенты
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Филиалы.Код КАК Код,
| Филиалы.Наименование КАК Наименование
|ДОБАВИТЬ ВТ_Контрагенты
|ИЗ
| Справочник.Филиалы КАК Филиалы");
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда // Такая проверка рекомендуется фирмой 1С
Записи = РезультатЗапроса.Выбрать();
Пока Записи.Следующий() Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;
Иначе // Сообщить("Данные отсутствуют!");
КонецЕсли;
КонецПроцедуры
Процедура ДобавитьВ_ВТ()
Запрос = Новый Запрос("ВЫБРАТЬ
| Контрагенты.Код КАК Код,
| Контрагенты.Наименование КАК Наименование
|ПОМЕСТИТЬ ВТ_Контрагенты
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Филиалы.Код КАК Код,
| Филиалы.Наименование КАК Наименование
|ДОБАВИТЬ ВТ_Контрагенты
|ИЗ
| Справочник.Филиалы КАК Филиалы");
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда // Такая проверка рекомендуется фирмой 1С
Записи = РезультатЗапроса.Выбрать();
Пока Записи.Следующий() Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;
Иначе // Сообщить("Данные отсутствуют!");
КонецЕсли;
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник