arefaste/1C_Forums huggingface dataset:
Здравствуйте

Прошу подсказать как прописать условие по двум полям из ТЗ

имеется стандартный запрос

Запрос = Новый запрос
Запрос.текст =

ВЫБРАТЬ
 Контрагенты.Ссылка,
 Контрагенты.Наименование,
 Контрагенты.ИНН,
 Контрагенты.КПП
ИЗ
 Справочник.Контрагенты КАК Контрагенты

Имеется ТЗ с двумя колонками : НаименованиемКонтрагента и ИНН

Хочу получить значения из справочника контрагентов только по совпадениям из ТЗ(Контрагент и ИНН)

" Контрагенты.Наименование и Контрагенты.ИНН в (ВЫБРАТЬ
                                                 ТЗ.Наименование,
                                                 ТЗ.ИНН
                                                ИЗ
                                                 &ТЗ КАК ТЗ) "

Пробую сделать так .. но я что то не так прописываю. подскажите как правильно проставить условие
---
использовать ТЗ в запросе нужно через временную таблицу

```1c
    ВЫБРАТЬ
    ТЗ.Наименование КАК Наименование,
    ТЗ.ИНН КАК ИНН
    ПОМЕСТИТЬ ВтТЗ
    ИЗ
    &ТЗ КАК ТЗ
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Контрагенты.Ссылка КАК Ссылка,
    Контрагенты.Наименование КАК Наименование,
    Контрагенты.ИНН КАК ИНН,
    Контрагенты.КПП КАК КПП
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТЗ КАК ВтТЗ
    ПО (Контрагенты.Наименование = ВтТЗ.Наименование)
    И (Контрагенты.ИНН = ВтТЗ.ИНН)
```
---
использовать ТЗ в запросе нужно через временную таблицу

```1c
    ВЫБРАТЬ
    ТЗ.Наименование КАК Наименование,
    ТЗ.ИНН КАК ИНН
    ПОМЕСТИТЬ ВтТЗ
    ИЗ
    &ТЗ КАК ТЗ
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Контрагенты.Ссылка КАК Ссылка,
    Контрагенты.Наименование КАК Наименование,
    Контрагенты.ИНН КАК ИНН,
    Контрагенты.КПП КАК КПП
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТЗ КАК ВтТЗ
    ПО (Контрагенты.Наименование = ВтТЗ.Наименование)
    И (Контрагенты.ИНН = ВтТЗ.ИНН)
```
---
Отдельно поищите по ИНН, отдельно по наименованию и объедините два результата.
---
Лучше искать только по ИНН, по наименованию может не совпадать
При установленном свойстве формы "РежимРабочегоСтола" (состояние окна - свободное, способ отображения - максимизированное) при открытии этой самой формы сверху остается незадействованное место под заголовок окна.
Как от него избавиться чтобы форма занимала экран на все 100% ?
---
В качестве примера, для формы с заголовком ВнешняяОбработка1.
В макет добавлен скомпилированный скрипт AutoIt.
Код модуля формы:

```1c
    Процедура ПриОткрытии()
    ДвоичныеДанные = ПолучитьМакет("DelHead");
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".exe");
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    ЗапуститьПриложение(ИмяВременногоФайла);
    КонецПроцедуры
```

Код AutoIt скрипта:

```1c
    #include <WinAPI.au3>
    $hWnd = _WinAPI_FindWindow('V8NewLocalFrameBaseWnd', 'ВнешняяОбработка1')
    _WinAPI_SetWindowPos($hWnd, 0, 0, -18, @DesktopWidth, @DesktopHeight + 18, 0)
```

В макете exe-шник, возможно браузеру это не понравится.
---
Как от него избавиться чтобы форма занимала экран на все 100% ? Дополнительные параметры пробовали менять? В частности, ИзменятьСпособОтображенияОкна? Может, у вас там место под кнопки резервируется платформой?

Вообще-то в методичке говорится:
При работе в режиме рабочего стола форма не имеет заголовка, не отображается в панели окон и в меню "Окна", а также не закрывается при использовании специально выделенных комбинаций клавиш (например, Shift+Esc).

(4) хотя бы сделать этот заголовок нужным цветом, а не тупо черным Может быть, вот это поможет?
---
Походу только средствами операционной системы
---
Операционная система Win 10. К сожалению не нашел информации как скрыть заголовки окон.
---
Или хотя бы сделать этот заголовок нужным цветом, а не тупо черным
---
Кучу вариантов перепробовал - скорей всего свойства этого заголовка скомпилированы в платформу. Т.е. "законно" - никак
---
На AutoIt это можно сделать так:

```1c
    #include <WinAPI.au3>
    $hWnd = _WinAPI_FindWindow('V8NewLocalFrameBaseWnd', 'ВнешняяОбработка1')
    _WinAPI_SetWindowPos($hWnd, 0, 0, -18, 1920, 1098, 0)
```

Можно ли запускать функции WinAPI (USER32) средствами 1С я не знаю.
---
В качестве примера, для формы с заголовком ВнешняяОбработка1.
В макет добавлен скомпилированный скрипт AutoIt.
Код модуля формы:

```1c
    Процедура ПриОткрытии()
    ДвоичныеДанные = ПолучитьМакет("DelHead");
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".exe");
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    ЗапуститьПриложение(ИмяВременногоФайла);
    КонецПроцедуры
```

Код AutoIt скрипта:

```1c
    #include <WinAPI.au3>
    $hWnd = _WinAPI_FindWindow('V8NewLocalFrameBaseWnd', 'ВнешняяОбработка1')
    _WinAPI_SetWindowPos($hWnd, 0, 0, -18, @DesktopWidth, @DesktopHeight + 18, 0)
```

В макете exe-шник, возможно браузеру это не понравится.
---
Спасибо огромное! Всё работает!
```1c
    Процедура ПередНачаломРаботыСистемы(Отказ)
    Перем НачалоРабДня, КонецРабДня,ТекДат;
    ТекВрем = ТекущаяДата();
    НачалоРабДня = НачалоДня(ТекущаяДата())+9*3600;
    КонецРабДня = НачалоДня(ТекущаяДата())+16*3600;

    Если
    ТекВрем < НачалоРабДня Тогда
    Предупреждение("Рабочий день еще не начался!");
    Отказ=Истина;
    ИначеЕсли ТекВрем > КонецРабДня Тогда
    Предупреждение("Рабочий день закончился!");
    Отказ=Истина;
    КонецЕсли;
    КонецПроцедуры
```

Пытаюсь вывести диалоговое окно перед началом работы приложения, на что оно выдает ошибку типа "В данном режиме нельзя использовать модальные окна".
По какой причине?
Например в видеокурсах Гилёва такой код 1в1 работает.
Может быть из за того что я работаю на платформе 8.3?
---
Например в видеокурсах Гилёва такой код 1в1 работает.
Зависит от этого свойства конфигурации
---
Предупреждение("Рабочий день еще не начался!");
Согласно последним директивам ВЦСПС, надо писать

```1c
    ПоказатьПредупреждение(,"Рабочий день еще не начался!");
```
---
Например в видеокурсах Гилёва такой код 1в1 работает.
Зависит от этого свойства конфигурации
---
Благодарствую!)
Добрый день.
Есть самописная файловая конфигурация на 1с 8.3.15 с включенным разделением данных (режим независимо и совместно)
Конфигурация установлена на удаленном VPS

С целью удаления зависших сеансов попытался воспользоваться методом УстановитьВремяЗавершенияСпящегоСеанса() в процедуре УстановкаПараметровСеанса модуля Сеанса.

Но, при запуске приложения система генерирует следующую ошибку:

**************************************************************************
Ошибка при вызове метода контекста (УстановитьВремяЗавершенияСпящегоСеанса)
 УстановитьВремяЗавершенияСпящегоСеанса(600);
по причине:
Действие недоступно при установленном разделении данных.
**************************************************************************

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

```1c
    ПараметрыСеанса.ГруппаКомпанийИспользование = Ложь;

    УстановитьВремяЗасыпанияПассивногоСеанса(900);
    УстановитьВремяЗавершенияСпящегоСеанса(1800);

    ПараметрыСеанса.ГруппаКомпанийИспользование = Истина;
```

Спасибо за подсказку!
Передаю пакет <?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
 <Parameters OperationType="1" TaxationSystem="0" CashierName="-" CustomerInfo="ООО--" CustomerINN="00000000" AdditionalAttribute="27115" SaleAddress="-" SaleLocation="офис" CustomerEmail="" CustomerPhone=""/>
 <Positions>
  <FiscalString Name="Беленькая 0,1/20 40% (фляжка) Московская обл." Quantity="48" PriceWithDiscount="37.2" Price="37.2" SumWithDiscount="1785.6" DiscountSum="0" Department="2" VATRate="20" SignMethodCalculation="7" SignCalculationObject="1"/>
  <FiscalString Name="Беленькая 0,1/20 40% (стакан) Московская обл." Quantity="48" PriceWithDiscount="37.2" Price="37.2" SumWithDiscount="1785.6" DiscountSum="0" Department="2" VATRate="20" SignMethodCalculation="7" SignCalculationObject="1"/>
  <FiscalString Name="Беленькая 0,7/12 40% Московская обл." Quantity="3" PriceWithDiscount="260.4" Price="260.4" SumWithDiscount="781.2" DiscountSum="0" Department="2" VATRate="20" SignMethodCalculation="7" SignCalculationObject="1"/>
  <FiscalString Name="Царь 0,25/24 40% Россия" Quantity="7" PriceWithDiscount="93" Price="93" SumWithDiscount="651" DiscountSum="0" Department="2" VATRate="20" SignMethodCalculation="7" SignCalculationObject="1"/>
  <FiscalString Name="Царь 0,5/20 40% Россия" Quantity="3" PriceWithDiscount="186" Price="186" SumWithDiscount="558" DiscountSum="0" Department="2" VATRate="20" SignMethodCalculation="7" SignCalculationObject="1"/>
  <FiscalString Name="Золотой Резерв 5*0,25/20 40-42% Россия" Quantity="3" PriceWithDiscount="169" Price="169" SumWithDiscount="507" DiscountSum="0" Department="2" VATRate="20" SignMethodCalculation="7" SignCalculationObject="1"/>
  <FiscalString Name="Доктор Август Северная клюква 0,5/20 20% Россия" Quantity="1" PriceWithDiscount="63" Price="63" SumWithDiscount="63" DiscountSum="0" Department="2" VATRate="20" SignMethodCalculation="7" SignCalculationObject="1"/>
 </Positions>
 <Payments Cash="6131.4" ElectronicPayment="0" Credit="0" AdvancePayment="0" CashProvision="0"/>
</CheckPackage>
Почему-то получаю скидку в размере стоимости товара. Что делаю не так? Драйвер Атол 10.5
---
Разобрался, нужно было использовать тег AmountWithDiscount, а не SumWithDiscount
---
Я бы попробовал параметр Price вообще убрать, а DiscountSum передавать не 0, а пустую строку - чтобы было как тут: https://forum.infostart.ru/forum72/topic200572/ или тут: https://forum.infostart.ru/forum28/topic187665/
---
Попробовал, результат тот же
---
Может при способе SignMethodCalculation = "7" должно заполняться поле Credit, а не Cash?
Ну или SignMethodCalculation = "4" поставить.
---
Не-не, с этим все правильно. У нас опт, всегда идет постоплата - покупатель берет товар, потом платит. Мы ему предоставляем товарный кредит, согласно разъяснениям налоговой, и он нам его потом оплачивает. Попробовал с SignMethodCalculation = "4", результат не изменился
---
Разобрался, нужно было использовать тег AmountWithDiscount, а не SumWithDiscount
Как удалять помеченные на удаление собственные объекты расширения?
При удалении эти объекты можно выбрать в дереве помеченных на удаление объектов, но потом появляется сообщение: "Удаление не требуется. Нет объектов, помеченных на удаление."
Конфигурация: 1С:ERP Управление предприятием 2 (2.4.6.230)
Платформа: 1С:Предприятие 8.3 (8.3.13.1809)
---
Есть зарегистрированная ошибка с номером 00-00191799 и схожим с Вашей проблемой описанием:
Удаление помеченных объектов не позволяет удалить помеченный на удаление объект из собственного справочника расширения.
Правда, тут речь идет про справочник, да и проблема отмечена как решенная в Вашей версии (2.4.6.230). Быть может удаление справочников поправили, а документов - нет? :-)
---
Может попробовать добавить обработку удаления в то же расширение, в котором добавлены собственные объекты? И вызвать обработку из расширения?

Как выгрузить стандартную обработку в виде внешней написано тут: https://infostart.ru/public/369487/
---
Есть зарегистрированная ошибка с номером 00-00191799 и схожим с Вашей проблемой описанием:
Удаление помеченных объектов не позволяет удалить помеченный на удаление объект из собственного справочника расширения.
Правда, тут речь идет про справочник, да и проблема отмечена как решенная в Вашей версии (2.4.6.230). Быть может удаление справочников поправили, а документов - нет? :-)
---
Вы правы, это была ошибка релиза. Тестировал на копии базы более ранней версии.
Спасибо!
Здравствуйте, есть задание написать запрос о вычислении суммы продаж за период по товару. Для этого я впринципе воспользовался виртуальной таблицей ПродажиОбороты и вытянул информацию где параметром задал товар:

```1c
    ВЫБРАТЬ
    ПродажиОбороты.Товар.Наименование КАК ТоварНаименование,
    ПродажиОбороты.Товар.ПолноеНаименование КАК ТоварПолноеНаименование,
    ПродажиОбороты.СуммаОборот КАК СуммаОборот
    ИЗ
    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
    ГДЕ
    ПродажиОбороты.Товар = &Товар
```

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

Вот так вот заработало нормально,а как отбор по товару там указать?
---
В условиях..
---
все разобрался,спасибо большое
Добрый день, в модуле формы обращаюсь к виртуальной таблице регистра накопления, но так как документ уже проведен, то получаю записи и текущего документа. Как можно получить без текущего документа?
---
Почему? Периодичность - регистратор, Вкладка условие - <> Не равно &Регистратор
---
Условие на регистратор поставить

```1c
    регистратор <> &ТекДокумент
```
---
тогда всё таки без виртуальной таблицы придётся?
---
Почему? Периодичность - регистратор, Вкладка условие - <> Не равно &Регистратор
---
Спасибо
---
Нужно просто вычесть данные документа (если речь идет о получении остатков):

```1c
    ВЫБРАТЬ
    ВТ.Склад,
    ВТ.Номенклатура,
    СУММА(ВТ.Количество) КАК Количество
    ИЗ
    (ВЫБРАТЬ
    Т.Склад КАК Склад,
    Т.Номенклатура КАК Номенклатура,
    Т.ВНаличииОстаток КАК Количество
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остаки(,) КАК Т

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    Т.Склад,
    Т.Номенклатура,
    ВЫБОР КОГДА Т.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА -Т.ВНаличии
    ИНАЧЕ Т.ВНаличии
    КОНЕЦ
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК Т
    ГДЕ
    Т.Регистратор = &Регистратор) КАК ВТ

    СГРУППИРОВАТЬ ПО
    ВТ.Склад,
    ВТ.Номенклатура
```
---
Зачем такие сложности?
---
А необходимо получить остатки или обороты? :-) Это мы у автора забыли спросить.
---
Обороты
---
Ну вот и ответ. Я поспешил с ответом, не поинтересовавшись деталями.
---
тоже спасибо, пригодится
Доброе утро!
Делаю выгрузку/загрузку справочника в/из XML с использованием фабрик. Как сказано во многих статьях, что для фабрики нужно добавить пакет XDTO в конфигурацию. Вопрос - есть ли способ использовать фабрику без изменения конфигурации, использования расширений и т.д.? Например если конфигурация типовая и на поддержке? Ведь не очень хочется ее трогать.
---
Попробуйте руководствоваться, например, этой статьей: https://infostart.ru/public/1062859/
В ней приведен пример, когда схема XSD хранится непосредственно в макете внешней обработки. Если не хочется прибегать к сторонним инструментам для разработки схемы, то можете создать временное расширение конфигурации, в нем добавить свой пакет XDTO, настроить как нужно, экспортировать схему в файл и удалить расширение. А содержимое файла уже скопировать в макет (текстовый документ) внешней обработки.
---
Попробуйте руководствоваться, например, этой статьей: https://infostart.ru/public/1062859/
В ней приведен пример, когда схема XSD хранится непосредственно в макете внешней обработки. Если не хочется прибегать к сторонним инструментам для разработки схемы, то можете создать временное расширение конфигурации, в нем добавить свой пакет XDTO, настроить как нужно, экспортировать схему в файл и удалить расширение. А содержимое файла уже скопировать в макет (текстовый документ) внешней обработки.
---
Выгрузку никогда не делал, но загружаю без изменения конфигурации:

```1c
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл(ПутьФайла);
    XDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
    ЧтениеXML.Закрыть();
    УдалитьФайлы(ПутьФайла);
```

Думаю выгружать тоже можно, но не уверен.
---
ЧтениеXML = Новый ЧтениеXML;
  ЧтениеXML.ОткрытьФайл(ПутьФайла);
  XDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
  ЧтениеXML.Закрыть();
  УдалитьФайлы(ПутьФайла);

А потом обрабатываешь переменную XDTO через точку?
---
потом в ТЗ перевожу его и с ТЗ работаю
Добрый день!

Помогите, пожалуйста, с задачей

Необходимо:
1) в 1С:ДО автоматически загружать по расписанию файлы из сетевой папки
2) по новым загруженным файлам запускать процесс

Первый пункт успешно настроен штатными средствами - файлы загружаются.

Вот со вторым пунктом непонятно, потому что детектор бизнес-события "Создание файла" реагирует только на ручную загрузку файлов, но категорически не срабатывает при автоматической загрузке.

Возможно, необходимо создать свой детектор бизнес-событий, привязать его к виду БС "Создание файла" (ну или создать свой вид БС).
В этом детекторе делать выборку по справочнику Файлы по дате создания(?) и местоположению (папке).
За какой период тогда выбирать файлы, если регл. задание по обработке детекторов бизнес-событий выполняется каждые 58 секунд, а загрузка файлов будет происходить, например, раз в день, чтобы не было ежеминутных запусков процессов по одним и тем же файлам?

Может, есть другой способ?
---
Вроде бы проблема оказалась в правах на папку, в которую затягиваются файлы.
При недостаточности прав (если указать конкретных пользователей /группу/ подразделение) ругается на отсутствие прав на файл для пользователя <Не указан>, от которого происходит запуск БП:
{ОбщийМодуль.СтартПроцессовСервер.Модуль(179)}: Ошибка при вызове метода контекста (Старт)
  БизнесПроцесс.Старт();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.ПраваДоступаНаБизнесПроцессы.Модуль(208)}: Пользователь "<Не указан>" не имеет прав на предмет "bc".
        ВызватьИсключение ТекстОшибки;.
Идентификатор записи: b66b2224-57f7-4eba-9d04-1f8836c99af8

Необходимо было дать права на папку для этого "технического пользователя" по имени <Не указан>
---
В общем, это оказался какой-то глюк новой версии ДО (2.1.13.28)
Тестировала на предыдущих версиях (2.1.12.2 и 2.1.10.2650) - все работает, при автозагрузке файла БП регистрируется, привязанный процесс запускается.
В новой версии пересоздала папку, перенастроила заново создание процесса (абсолютно так же) - тоже заработало...
Непонятно...
---
Вроде бы проблема оказалась в правах на папку, в которую затягиваются файлы.
При недостаточности прав (если указать конкретных пользователей /группу/ подразделение) ругается на отсутствие прав на файл для пользователя <Не указан>, от которого происходит запуск БП:
{ОбщийМодуль.СтартПроцессовСервер.Модуль(179)}: Ошибка при вызове метода контекста (Старт)
  БизнесПроцесс.Старт();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.ПраваДоступаНаБизнесПроцессы.Модуль(208)}: Пользователь "<Не указан>" не имеет прав на предмет "bc".
        ВызватьИсключение ТекстОшибки;.
Идентификатор записи: b66b2224-57f7-4eba-9d04-1f8836c99af8

Необходимо было дать права на папку для этого "технического пользователя" по имени <Не указан>
Хочу программно добавить несколько элементов на форму. Каким образом это сделать ? Будут идеи ?

```1c
    Для Шаг = 0 По Вопросы.Количество() Цикл
    Для Индекс = 0 По Вопросы.Количество() - 1 Цикл
    Шаг =ЭтаФорма.Элементы.Добавить(Шаг,Тип("ПолеФормы"),ЭтаФорма.Элементы.Страница2);
    Шаг = ВидПоляФормы.ПолеНадписи;
    Шаг.Заголовок = Вопросы[Индекс].ЗначенияДопСведНаименование;
    КонецЦикла;
    КонецЦикла;
```

Что то вроде этого %) Пока не работает.
P.S. надо именно вывести в "ПолеНадписи"
---
не совсем понятна конечная цель вашей задачи.
если это какой-то опросник, например есть билет номер 1 и в нем 5 вопросов, и билет номер 2 и в нем 3 вопроса, то можно на форме сразу разместить 5 элементов (хоть полеНадписи, хоть декорацияНадпись).
создать 5 реквизитов для этих полей, связать их.
при создании формы помещаете в реквизиты нужный текст.
лишние элементы - отключить видимость.
---
А какая разница между добавляем одного элемента на форму или несколько ?
---
Если все вопросы, которые я создал и запихать в одно поле, будет не очень смотреться)

Я хочу чтобы в заголовке был вопрос, а в путь к данным ответом )

Количество вопросов может быть разным, поэтому мне надо вставить один вопрос в одно поле )
---
сперва Шаг используется как инкремент цикла, а затем в эту переменную вы пытаетесь поместить элемент формы, а затем в неё же поместить свойство ВидПоляФормы.
Зачем 2 цикла по количеству вопросов?
Если нужна просто надпись, может тогда ДекорацияФормы с видом Надпись делать?
---
код бредовый, это я так к примеру )
Второй цикл я прохожу по массиву вопросов, но он уже не нужен)

```1c
    а = ЭтаФорма.Реквизит1.ВыгрузитьЗначения();

    Для Шаг = 0 По Вопросы.Количество() Цикл
    Элемент = ЭтаФорма.Элементы.Добавить("Поле"+Шаг,Тип("ПолеФормы"),ЭтаФорма.Элементы.Страница2);
    Элемент.Вид = ВидПоляФормы.ПолеНадписи;
    Элемент.Заголовок = а;

    КонецЦикла;
```
---
не совсем понятна конечная цель вашей задачи.
если это какой-то опросник, например есть билет номер 1 и в нем 5 вопросов, и билет номер 2 и в нем 3 вопроса, то можно на форме сразу разместить 5 элементов (хоть полеНадписи, хоть декорацияНадпись).
создать 5 реквизитов для этих полей, связать их.
при создании формы помещаете в реквизиты нужный текст.
лишние элементы - отключить видимость.
Приветствую! Есть произвольная ТаблицаЗначений на входе в процедуру, требуется на её основе собрать запрос через объект СхемаЗапроса. В запросе перечислить все поля ТЗ и поместить во временную таблицу, чтобы после получения текста запроса было что-то типа:

```1c
    ВЫБРАТ
    Т.Поле1,
    Т.Поле2,
    Т.Поле3
    ПОМЕСТИТЬ ВтТЗ
    ИЗ &ТЗ КАК Т
```

Как не пытался добавить "&ТЗ" в качестве источника данных, ничего не выходит, возвращается "Неопределено". Как правильно?
---
Как-то так:

```1c
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Поле1", Новый ОписаниеТипов("Строка"));
    ТЗ.Колонки.Добавить("Поле2", Новый ОписаниеТипов("Число"));

    Схема = Новый СхемаЗапроса;

    ЗапросВыбора = Схема.ПакетЗапросов[0];
    Оператор = ЗапросВыбора.Операторы[0];

    // Таблица значений
    Источник = Оператор.Источники.Добавить(Тип("ОписаниеВременнойТаблицыСхемыЗапроса"), "&ТЗ", "Т");

    // Временная таблица
    ЗапросВыбора.ТаблицаДляПомещения = "ВтТЗ";

    // Колонки
    Для каждого Колонка Из ТЗ.Колонки Цикл
    Оператор.ВыбираемыеПоля.Добавить("Т." + Колонка.Имя);
    КонецЦикла;

    // Текст
    ТекстЗапроса = Схема.ПолучитьТекстЗапроса();
```
---
Как-то так:

```1c
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Поле1", Новый ОписаниеТипов("Строка"));
    ТЗ.Колонки.Добавить("Поле2", Новый ОписаниеТипов("Число"));

    Схема = Новый СхемаЗапроса;

    ЗапросВыбора = Схема.ПакетЗапросов[0];
    Оператор = ЗапросВыбора.Операторы[0];

    // Таблица значений
    Источник = Оператор.Источники.Добавить(Тип("ОписаниеВременнойТаблицыСхемыЗапроса"), "&ТЗ", "Т");

    // Временная таблица
    ЗапросВыбора.ТаблицаДляПомещения = "ВтТЗ";

    // Колонки
    Для каждого Колонка Из ТЗ.Колонки Цикл
    Оператор.ВыбираемыеПоля.Добавить("Т." + Колонка.Имя);
    КонецЦикла;

    // Текст
    ТекстЗапроса = Схема.ПолучитьТекстЗапроса();
```
---
Источник = Оператор.Источники.Добавить(Тип("ОписаниеВременнойТаблицыСхемыЗапроса"), "&ТЗ", "Т");

Спасибо. Моя ошибка была в том, что я пытался "ОписаниеВременнойТаблицыСхемыЗапроса" написать так:

```1c
    Источник = Оператор.Источники.Добавить(Новый ОписаниеВременнойТаблицыСхемыЗапроса, "&ТЗ", "Т");
```

В итоге совсем запутался.