Добрый день! Передаю ТЗ в запрос. Вот код

```1c
    Т1 = ПолучитьИзВременногоХранилища(Объект.АдресТ1);
    Т2 = Новый ТаблицаЗначений;
    Т2.Колонки.Добавить("Объект", Новый ОписаниеТипов("СправочникСсылка.пто_ОбъектыОС"));
    Т2.Колонки.Добавить("НомерКР");
    Т2.Колонки.Добавить("ГодВводаОбъекта");
    Т2.Колонки.Добавить("УровеньНапряжения");

    Для Каждого ТС из Т1 Цикл
    НС = Т2.Добавить();
    НС.Объект = ТС.Объект;
    //НС.УровеньНапряжения =
    НС.ГодВводаОбъекта = ТС.Объект.ДатаВвода;
    НС.НомерКР = ТС.НомерКР;
    КонецЦикла;

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

Хочу через Подобно находить значения, которые начинаются на Система учета, но появляется ошибка по причине:
{(14, 2)}: Неверные параметры "ПОДОБНО"
<<?>>Таблица.Объект ПОДОБНО &Поиск

И ещё когда в описании Временной таблицы задаю тип значения справочник объекты, после нажатия Ок тип не сохраняется. Понимаю, что скорее всего нужно делать поиск по Объект.Наименование, но не знаю как это наименование добыть. Создать колонку с ним с ТЗ? Подскажите, пожалуйста, как правильно сделать
---
Просто не открывая конструктор запроса допишите:

```1c
    Таблица.Объект.Наименование ПОДОБНО &Поиск
```

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

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | ВЫРАЗИТЬ(Т2.Объект КАК Справочник.пто_ОбъектыОС) КАК Объект
    |ПОМЕСТИТЬ Таблица
    |ИЗ
    | &Т2 КАК Т2
    |;
    |
    |////////////////////////////////////////////////////////////­­////////////////////
    |ВЫБРАТЬ
    | Таблица.Объект КАК Объект
    |ИЗ
    | Таблица КАК Таблица
    |ГДЕ
    | Таблица.Объект.Наименование ПОДОБНО &Поиск";
```
---
Здравствуйте.

может так?

Таблица.объект.наименование
---
Вот это пытаюсь вытащить
---
ну дык и напишите в запросе так )))
---
Просто не открывая конструктор запроса допишите:

```1c
    Таблица.Объект.Наименование ПОДОБНО &Поиск
```

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

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | ВЫРАЗИТЬ(Т2.Объект КАК Справочник.пто_ОбъектыОС) КАК Объект
    |ПОМЕСТИТЬ Таблица
    |ИЗ
    | &Т2 КАК Т2
    |;
    |
    |////////////////////////////////////////////////////////////­­////////////////////
    |ВЫБРАТЬ
    | Таблица.Объект КАК Объект
    |ИЗ
    | Таблица КАК Таблица
    |ГДЕ
    | Таблица.Объект.Наименование ПОДОБНО &Поиск";
```
---
Вот пробую в условиях это задать, но ругается, что поле не обнаружено. А выбрать из Объекта не даёт. Руками когда прописал, то сработало. Но так конструктор запроса перестаёт работать
---
Пробуете первым или вторым способом?
---
Руками прописать, так заработало, без конструктора
---
Попробуйте второй способ.
---
В нём ругается на синтаксическую ошибку "КАК"
---
Какой текст ошибки?
---
Загадка... А весь текст запроса приведите, пожалуйста.
---
Чую, это в секции ГДЕ расположено...
---
то в секции ГДЕ расположено...

Прописываю вот здесь, нажимая на карандаш зелёный
---
В этом редакторе не надо писать "КАК". Только "Выразить(...)"
---
Аа, то есть здесь выражаю, а в условиях уже задаю Как Объект?
---
Всё, теперь я разобрался как и что и куда. Спасибо Вам большое, теперь многое понял. А если у меня в Т1 уже типы заданы, их запрос может как-то подхватить сам из ТЗ или надо прописывать всё равно?
---
Надо прописывать. Про типы в ТЗ конструктор ничего не знает. С типами разберется сама платформа, когда уже будет выполнять запрос. Поэтому, если хотите пользоваться конструктором, придется явно прописывать типы.
---
платформа, когда уже будет выполнять запрос. Поэтому, если хотите пользоваться конструктором, придется явно прописывать типы.

А как правильнее прописывать?
Создать Т2, заполнить её из Т1 и там в Т2 указать типы или как Вы посоветовали прямо в запросе Выразить? Или расписать Т1 и в ней указать?

Просто странно, что платформа сама не подхватывает. Это получается надо сначала посмотреть типы значений у ТЗ в отладчике, потом переписать их, много времени уходит. Или я чего-то не понимаю?
---
Ничего странного. Конфигуратор на лету не вычисляет типы параметров запроса при наборе кода. Он работает исключительно с текстом самого запроса и метаданными. Такой вот не продвинутый редактор.

Что касается методики описания типов, то не понятна Ваша конечная цель. Нет, отладчик здесь не особо нужен. Типы Вы выражаете лишь для того, чтобы в конструкторе иметь возможность нажав на "плюсик" развернуть список вложенных полей. Если вложенные поля Вам не нужны, то и выражать собственно ни к чему. Если таки вложенные поля нужны, то наверняка Вы знаете, какие именно, а значит и знаете тип самой колонки еще до запуска отладчика.
---
самой колонки еще до запуска отладчика.

Ну в плане я про то, что ТЗ у меня до запроса известна, но да, у нас же год выполняется последовательно, а значит параметр с ТЗ в запрос передастся только во время выполнения кода. По остальному понял. Нигде не нашёл такой понятной информации как от Вас. Спасибо, просветили!
---
Весь текст запроса в самом первом моём сообщении
---
Вы же его изменили. Хотелось бы видеть, как именно.
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Т1.Объект КАК Объект
    |ПОМЕСТИТЬ Таблица
    |ИЗ
    | &Т1 КАК Т1
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Таблица.Объект КАК Объект
    |ИЗ
    | Таблица КАК Таблица";
```

Сократил, чтобы пока что только с объектом разобраться. И данные стал брать сразу из ТЗ, которая ко мне приходит, т.к. Т2 она полностью дублировала её. В Т1 все поля уже типизированы
---
ПОДОБНО? К ссылочному типу? Я бы еще и нет так на месте платформы послал бы...
ПОДОБНО применяется только к строковым значениям.
---
Да, я свою ошибку понял уже)) А как получить строку? Преобразовать? Я просто только начал изучать этот блок в 1С
---
Строку чего?
---
Объект в строку надо преобразовать, чтобы из ТЗ можно было по нему отбирать?
---
Прям весь-весь объект? Вместе с табличными частями?
---
Прям весь-весь скорее всего нет, а вот наименование его надо как-то получить
---
И в чем проблема получить наименование, если у тебя есть ссылка?
---
В конфигураторе у меня выглядит так, как на скрине. Я хочу сделать средствами только конструктора запроса. В нём я не вижу возможность выбрать наименование, в этом и проблема
---
Для этого у тебя есть кнопка "Описание временной таблицы", где ты можешь указать тип. После указания типа будут доступны вложенные реквизиты.
---
Я так и делаю. После нажатия кнопки Ок все изменения пропадают
---
Естественно. Они нужны только для работы конструктора (раз уж ты не хочешь дописать руками имя реквизита прямо в тексте).
---
В Описание временной таблицы я задаю Тип данных, нажимаю Ок. Мне становятся доступными все вложенные реквизиты. Я выбираю то, что мне нужно, сохраняю запрос, всё становится красиво. Иду в режим предприятия, нажимаю кнопку с командой и у меня выскакивает ошибка о том, что поле, которое я выбрал из вложенных реквизитов не найдено
---
Значит не того типа приходят данные в ТЗ. Или сами колонки ТЗ не типизированы.
---
Я правильно понял, что если ко мне ТЗ откуда-то уже пришла, то в ней не надо указывать типы у колонок? А если создал ТЗ руками, то здесь надо указать?
---
В запрос таблица должна передаваться с типизированными колонками. Точка.
---
Т.е. даже если уже тип определён у колонок, то всё равно прописываю руками тип?
---
У Объекта у меня вот такой тип. Даже когда его прямо указывал колонке руками ничего не менялось
---
Как вариант:

```1c
    ...
    //Зададим явный тип строка(100), что бы потом работал отбор
    КС100 = Новый КвалификаторыСтроки(100);
    Массив = Новый Массив;
    Массив.Добавить(Тип("Строка"));
    ОписаниеТиповС100 = Новый ОписаниеТипов(Массив, , КС100);
    //Зададим колонку для Наименования, по которому будем искать
    Т2.Колонки.Добавить("ОбъектНаименование", ОписаниеТиповС100 ));
    ...
    //Заполним Т2
    нс = Т2.Добавить();
    ...
    нс.ОбъектНаименование = Объект.Наименование;
    ...
    ...
    Построитель = Новый ПостроительЗапроса;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Т2);

    //зададим отбор
    тОтбор = Построитель.Отбор.Добавить("ОбъектНаименование");
    тОтбор.ВидСравнения = ВидСравнения.Содержит;
    тОтбор.Значение = "Система учета";
    тОтбор.Использование = Истина;

    Построитель.Выполнить();
    //ТабРезультат - копия Т2 согласно отбора
    ТабРезультат = Построитель.Результат.Выгрузить();
```
---
Я один так плохо отношусь к запросам в цикле?

```1c
    Т1 = ПолучитьИзВременногоХранилища(Объект.АдресТ1);

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

Да, я по итогу почти так и переделал, чтобы не плодить дубли и лишний код