8.х Поместить ТЗ в запрос

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Александр 1906, 22 июн 2017.

  1. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    380
    Симпатии:
    3
    Баллы:
    29
    Нужно поместить Таблицу значений в запрос, вроде бы все сделал только когда выполняю запрос выдает ошибку что то связано с методом Выполнить, я так думаю это связанно что мои поля в запросе не типизированны , как это сделать? вот запрос
    Код:
             Запрос = Новый Запрос;
        Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
        Запрос.Текст =
       
    
    
        "ВЫБРАТЬ
        |    Таблица.ВидРасчета,
        |    МЕСЯЦ(Таблица.ПериодДействияДатой) КАК ПериодДействия,
        |    Таблица.ПериодДействияДатой,
        |    Таблица.МесяцНачисления,
        |    Таблица.ОтработаноДней,
        |    Таблица.ОтработаноЧасов,
        |    Таблица.ОплаченоДней,
        |    Таблица.ОплаченоЧасов,
        |    Таблица.Сумма,
        |    Таблица.ДокументОснование
        |ПОМЕСТИТЬ Таблица
        |ИЗ
        |    &Таблица КАК Таблица
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Таблица.ВидРасчета,
        |    Таблица.ПериодДействияДатой,
        |    Таблица.МесяцНачисления,
        |    Таблица.ОтработаноДней,
        |    Таблица.ОтработаноЧасов,
        |    Таблица.ОплаченоДней,
        |    Таблица.ОплаченоЧасов,
        |    Таблица.Сумма,
        |    Таблица.ДокументОснование,
        |    Таблица.ПериодДействия
        |ИЗ
        |    Таблица КАК Таблица
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |УНИЧТОЖИТЬ Таблица";
    
    
        Запрос.УстановитьПараметр("Таблица", НовТЗ);
        ТабличнаяЧасть = Запрос.Выполнить().Выгрузить();
  2. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    380
    Симпатии:
    3
    Баллы:
    29
    из за чего тип полей временной таблицы не сохраняется после закрытия конструктора запросов ?
  3. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.349
    Симпатии:
    87
    Баллы:
    54
    "Уничтожить" - лишнее, да и менеджер временных таблиц - то же, конечно если вы его не передаете далее в качестве парамтра
    Код:
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |УНИЧТОЖИТЬ Таблица
    
    - убрать
  4. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    380
    Симпатии:
    3
    Баллы:
    29
    это я уже переделал
    сейчас у меня запрос такого вида(проще некуда):
    Код:
             запрос=новый запрос;
    запрос.Текст="ВЫБРАТЬ
                 |    Таблица.ВидРасчета,
                 |    Таблица.ПериодДействияДатой,
                 |    Таблица.МесяцНачисления,
                 |    Таблица.ОтработаноДней,
                 |    Таблица.ОтработаноЧасов,
                 |    Таблица.ОплаченоДней,
                 |    Таблица.ОплаченоЧасов,
                 |    Таблица.Сумма
                 |ПОМЕСТИТЬ Таблица1
                 |ИЗ
                 |    &Таблица КАК Таблица
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ
                 |    Таблица.ПериодДействияДатой,
                 |    Таблица.МесяцНачисления,
                 |    Таблица.ОтработаноДней,
                 |    Таблица.ОтработаноЧасов,
                 |    Таблица.ОплаченоДней,
                 |    Таблица.ОплаченоЧасов,
                 |    Таблица.Сумма
                 |ИЗ
                 |    Таблица1 КАК Таблица";
    
    
        Запрос.УстановитьПараметр("Таблица", НовТЗ);
        ТабличнаяЧасть = Запрос.Выполнить().Выгрузить();
    но мне выдает ошибку как на картинке ,
    я думаю что это из за того что не указан тип полей в таблице но после того как я его указываю и закрываю конструктор он обнуляется Безымянный.png Безымянный1.png
  5. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    162
    Баллы:
    104
    Обычно такая ошибка явно указана в описании, что, мол, невозможно выбрать поле из таблицы. Это указывает на то, что нужно явно указывать столбцы таблицы значений. А у вас тут какая-то "непонятка".
    --- Объединение сообщений, 22 июн 2017 ---
    Ну или всё равно попробуйте перед заполнением ТЗ указать тип колонок, может поможет)
  6. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    380
    Симпатии:
    3
    Баллы:
    29
    попробовал. не помогло. нашел описание данной ошибки -
    {(2, 2)}: Тип не может быть выбран в запросе
    <<?>>Таблица.ВидРасчета,
  7. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    380
    Симпатии:
    3
    Баллы:
    29
    а может быть это из-за того что ТЗ у меня скопирована?
    НовТЗ = РабочееМесто.СтрокиНачислений.Скопировать();
  8. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.349
    Симпатии:
    87
    Баллы:
    54
    1. Убедится, что тип колонки задан
    2. Проверить, что в значениях по колонке нет массива или списка значений (или тому подобное)
    3. Если тип строка с неопред. длиной то в запросе "ВЫРАЗИТЬ(<поле> КАК СТРОКА(1024))" - как пример

Поделиться этой страницей