Установка в запросе таблицы значений в качестве параметра

23.01.12

Разработка - Запросы

Установка в запросе таблицы значений в качестве параметра

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
ИспользованиеТЗКакПараметрЗапроса.epf
.epf 7,09Kb
34 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

                 Очень часто приходится работать с большим количеством запросов.  И приходится использовать результаты запросов в качестве первоначальных данных для другого более массивного запроса. В частности хочу показать как можно использовать данные таблицы значений в качестве параметров в запросе. Эту таблицу значений можно получить хоть из другого запроса, хоть и из табличного поля заполненного пользователем.

 

                Плюсами такого использования являются то, что можно использовать данные таблицы значений полученные из других запросов, что существенно сокращает код программы, т.е. можно много раз не копировать один и тот же запрос, а например использовать общую функцию в общем модуле, где один раз прописан запрос, а затем его результат уже использовать в другом запросе.

              Минусами такого использования является то, что такой запрос очень тяжело тестировать на предмет ошибок, т.к. я на данный момент не нашел консоли запросов поддерживаемые таблицу значений в качестве параметра. И второй минус, надо очень внимательно следить за тем чтобы у колонок был задан тип (при использовании таблицы значений полученную при использовании запроса все типы колонок проставляются автоматически, это важно при ручном создании и заполнении таблицы значений)

 

Вот пример использования таблицы значений в качестве параметра:

 

Процедура ПриОткрытии()

//Заполняем табличное поле (ТП) тестовыми значениями        

            Стр = ЭлементыФормы.ТП.Значение.Добавить();

            Стр.Колонка1 = "Тест1";

            Стр.Колонка2 = "Тест2";

            Стр = ЭлементыФормы.ТП.Значение.Добавить();

            Стр.Колонка1 = "Тест3";

            Стр.Колонка2 = "Тест4";

 

КонецПроцедуры

 

Процедура КнопкаВыполнитьНажатие(Кнопка)

            Запрос = НОвый Запрос;

            Запрос.Текст =

            "ВЫБРАТЬ  *

            |ПОМЕСТИТЬ вт

            |ИЗ

            |           &Таблица КАК Таблица

            |;

            |

            |////////////////////////////////////////////////////////////////////////////////

            |ВЫБРАТЬ  *

            |ИЗ

            |           вт КАК вт";

            Запрос.УстановитьПараметр("Таблица", ТП);

//передаем данные запроса другому табличному полю

            ТП2 = Запрос.Выполнить().Выгрузить();

            ЭлементыФормы.ТП2.СоздатьКолонки();

КонецПроцедуры

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    265506    1478    421    

1176

Запросы Программист 1С 8.3 Россия Бесплатно (free)

Визуальный «Конструктор запроса» 1С, встроенный прямо в VS Code, — аналог конструктора из Конфигуратора и EDT, но без запуска платформы. Расширение читает конфигурацию, выгруженную в файлы, позволяет собрать запрос мышью и генерирует корректный текст на языке запросов 1С (SDBL). Открывает уже существующий текст запроса из кода для правки и — что особенно ценно — сохраняет комментарии при цикле «открыть - править - сохранить». Подходит тем, кто пишет код 1С в VS Code, держит под рукой множество проектов и не хочет ради одного запроса запускать тяжёлый Конфигуратор или EDT.

26.06.2026    5801    Alex_YAM    5    

33

WEB-интеграция Запросы Программист 1С 8.3 Абонемент ($m)

Post1C - это внешняя обработка, которая превращает 1С в полноценный инструмент для тестирования REST API. Всё управление сосредоточено в одном окне: настройка запроса, выполнение, просмотр ответа и генерация кода - без переключения между формами. Аналог Postman, но работающий в привычной среде 1С.

1 стартмани

02.04.2026    2816    80    priem_nv    24    

66

Инструментарий разработчика Запросы Программист 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Представляю новую версию подсистемы работы со схемой запроса, которая завершает её эволюцию от библиотеки по работе со схемой запроса до объектной реализации модели запроса 2. Теперь есть выбор между классическим и текучим стилем написанию кода - оба варианта взаимозаменяемы. Ключевое улучшение - использование объектов в качестве источников данных, значений полей и параметров в условиях виртуальных таблиц, а также новые операторы позиционирования в схеме

1 стартмани

29.03.2026    2960    kalyaka    16    

24

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.

1 стартмани

16.05.2025    11869    153    zup_dev    30    

86

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

В данной публикации рассказывается о решении, которое позволяет находить сразу все ошибки в тексте запроса за раз, а не только самую первую.

2 стартмани

05.03.2025    6761    21    XilDen    12    

29

Обновление 1С Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

3 стартмани

06.02.2025    6048    36    XilDen    26    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maldinitaly 25.01.12 09:02 Сейчас в теме
К запросу добавить использование МенеджераВременныхТаблиц и использовать её в других запросах, с этим Менеджером
2. fomix 33 25.01.12 10:38 Сейчас в теме
Автор, попробуй вот эту консоль http://infostart.ru/public/72969/ - возможно поможет в работе с временными таблицами и отладке запросов. НЕ РЕКЛАМА!!! Просто я сам этим инструментом пользуюсь.
3. wunderland 203 28.01.12 12:38 Сейчас в теме
минус ставить не буду, но это, простите, "баян"!!! я этим пользуюсь уже о-о-очень давно, пару месяцев спустя, как на 8.1 перешли. Правда, не вспомню сейчас, в ИНете нашел, или сам опытным путем получил, но факт есть факт...
7. matveev.andrey.v 54 13.07.16 20:02 Сейчас в теме
(3) wunderland, Если вам не надо, это не значит что другим не надо, отлично назвал, по поиску в гугле сразу находит
аколит; +1 Ответить
4. Tishu 3 30.01.12 08:02 Сейчас в теме
Этот полезный приём не работает в запросе СКД, а жаль
5. Chif13 1267 04.02.12 00:58 Сейчас в теме
(4) Ну почему ж не работает. Никто не запрещал в СКД использовать Объект: создаешь запрос, получаешь результат и загружаешь в Объект.
6. mm1234mm 01.10.13 07:41 Сейчас в теме
Запрос2 = Новый Запрос;
Запрос2.Текст = "
|ВЫБРАТЬ * ИЗ ВТТаб1
|ГДЕ ВТТаб1.Поле1=&
|Перем1 И ВТТаб1.Поле2=&Перем2";

Запрос2.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
Запрос2.УстановитьПараметр("Перем1",Перем1);
Запрос2.УстановитьПараметр("Перем2",Перем2);

Отбор = Запрос2.Выполнить().Выгрузить();
voneska7; +1 Ответить
8. Stivens 35 14.02.17 10:55 Сейчас в теме
Вот эту информацию искал очень долго. Находится в справке в описании предложения ПОМЕСТИТЬ:
Если временная таблица создается на основании внешнего источника, в запросе нельзя использовать объединения и соединения. А также нельзя использовать поля, являющиеся реквизитами полей таблиц, на основании которых создается временная таблица.

Если в качестве источника используется таблица значений, то у этой таблицы значений должны быть явно указаны типы значений, содержащихся в колонках.

Примечание. Предложения АВТОУПОРЯДОЧИВАНИЕ, ИТОГИ, ДЛЯ ИЗМЕНЕНИЯ, ИМЕЮЩИЕ и СГРУППИРОВАТЬ ПО не могут быть использованы в запросе, формирующем временную таблицу на основании таблицы значений.
Для отправки сообщения требуется регистрация/авторизация