8.х Соединение с таблицей выбранной через параметр

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

  1. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    371
    Симпатии:
    4
    Баллы:
    29
    Хочу сделать соединение с таблицей, переданной через параметр:

    Код:
    ТЗ = Новый ТаблицаЗначений;
        ТЗ.Колонки.Добавить("Наименование");
        ТЗ.Колонки.Добавить("ДатаСчета");
        ТЗ.Колонки.Добавить("СуммаКОплатеСНДС");
        ТЗ.Колонки.Добавить("Контрагент");
        Строка = ТЗ.Добавить();
        Строка.Наименование = ЭтаФорма.Объект.Счет.Наименование;
        Строка.ДатаСчета = ЭтаФорма.Объект.Счет.ДатаСчета;
        Строка.СуммаКОплатеСНДС = ЭтаФорма.Объект.Счет.СуммаКОплатеСНДС;
        Строка.Контрагент = ЭтаФорма.Объект.Счет.Контрагент;
       
                     //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
        // Данный фрагмент построен конструктором.
        // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
       
        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |    СканыСчетов.Счет.Наименование,
            |    СканыСчетов.Счет.ДатаСчета,
            |    СканыСчетов.Счет.СуммаКОплатеСНДС,
            |    СканыСчетов.Счет.Контрагент
            |ПОМЕСТИТЬ ВТ_ВсеСканыСчетов
            |ИЗ
            |    Справочник.СканыСчетов КАК СканыСчетов
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |    ВТ_СканСчета.Наименование,
            |    ВТ_СканСчета.ДатаСчета,
            |    ВТ_СканСчета.СуммаКОплатеСНДС,
            |    ВТ_СканСчета.Контрагент
            |ПОМЕСТИТЬ ВТ_СканСчета
            |ИЗ
            |    &ВТ_СканСчета КАК ВТ_СканСчета
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |    ВТ_СканСчета.Наименование,
            |    ВТ_СканСчета.ДатаСчета,
            |    ВТ_СканСчета.СуммаКОплатеСНДС,
            |    ВТ_СканСчета.Контрагент,
            |    ВТ_ВсеСканыСчетов.СчетНаименование,
            |    ВТ_ВсеСканыСчетов.СчетДатаСчета,
            |    ВТ_ВсеСканыСчетов.СчетСуммаКОплатеСНДС,
            |    ВТ_ВсеСканыСчетов.СчетКонтрагент
            |ИЗ
            |    ВТ_СканСчета КАК ВТ_СканСчета
            |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеСканыСчетов КАК ВТ_ВсеСканыСчетов
            |        ПО ВТ_СканСчета.Наименование = ВТ_ВсеСканыСчетов.СчетНаименование
            |            И ВТ_СканСчета.ДатаСчета = ВТ_ВсеСканыСчетов.СчетДатаСчета
            |            И ВТ_СканСчета.СуммаКОплатеСНДС = ВТ_ВсеСканыСчетов.СчетСуммаКОплатеСНДС
            |            И ВТ_СканСчета.Контрагент = ВТ_ВсеСканыСчетов.СчетКонтрагент";
           
        Запрос.УстановитьПараметр("ВТ_СканСчета", ТЗ);
       
        РезультатЗапроса = Запрос.Выполнить();
       
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
       
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            // Вставить обработку выборки ВыборкаДетальныеЗаписи
        КонецЦикла;
       
        //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    В результате выходит такая ошибка:
    Когда описывал таблицу в запросе, то указывал типы полей.
  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.222
    Симпатии:
    15
    Баллы:
    29
    в ТЗ колонка Наименование есть ?
    --- Объединение сообщений, 31 мар 2017 ---
    увидел. есть
    --- Объединение сообщений, 31 мар 2017 ---
    сделай разные имена . например :

    |ВЫБРАТЬ
    | ВТ_СканСчета2.Наименование,
    | ВТ_СканСчета2.ДатаСчета,
    | ВТ_СканСчета2.СуммаКОплатеСНДС,
    | ВТ_СканСчета2.Контрагент
    |ПОМЕСТИТЬ ВТ_СканСчета
    |ИЗ
    | &ВТ_СканСчета1 КАК ВТ_СканСчета2

    ну и имя параметра смени на ВТ_СканСчета1
  3. 1с-ник
    Offline

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

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    162
    Баллы:
    104
    Может у тебя строка в ТЗ неограниченной длины? Добавь квалификатор строки
    skv_79 нравится это.
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.246
    Симпатии:
    963
    Баллы:
    204
    Колонки ТЗ должны быть строго типизированы, чтобы она могла выступать в виде источника для запроса.
    skv_79 нравится это.

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