Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 ноя 2021, 20:34

Запрос к ТЧ внешней обработки

Автор arsy_off, 11 июн 2021, 04:20

0 Пользователей и 1 гость просматривают эту тему.

arsy_off

Всем доброго времени суток, только изучаю 1С и не получается выгрузить табличную часть обработки во временную таблицу, чтобы в дальнейшем обработать запросом, - ВТ остаётся пустой. Может быть кто-то сталкивался с такой задачей, буду признателен любой помощи.

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

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


LexaK

попробуйте в одном запросе все делать, вот как в вашем примере

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

arsy_off

Спасибо, помогло!

Цитата: LexaK от 11 июн 2021, 10:13
попробуйте в одном запросе все делать, вот как в вашем примере

ТаблицаЗначений = ТабличнаяЧасть.Выгрузить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТаблицаЗначений",ТаблицаЗначений);
Запрос.Текст ="ВЫБРАТЬ
              | ТаблицаЗначений.НомерСтроки КАК НомерСтроки,
              | ТаблицаЗначений.Значение КАК Значение
              |ПОМЕСТИТЬ Таблица
              |ИЗ
              | &ТаблицаЗначений КАК ТаблицаЗначений";
              |;
              |ВЫБРАТЬ
              | ТаблицаЗначений.НомерСтроки КАК НомерСтроки,
              | ТаблицаЗначений.Значение КАК Значение
              |ИЗ
              | Таблица КАК ТаблицаЗначений
              |ГДЕ
              |ТаблицаЗначений.НомерСтроки > 1)
              |
              |УПОРЯДОЧИТЬ ПО
              |НомерСтроки
              |ИТОГИ ПО
              |Значение";
РезультатЗапроса = Запрос.Выполнить();


Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск