8.х Дополнительные реквизиты, запрос

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

  1. TopicStarter Overlay
    xxx949
    Offline

    xxx949 Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    309
    Симпатии:
    1
    Баллы:
    29
    Помогите пожалуйста с запросом.
    в справочнике "Эквайринговые терминалы" есть ТЧ "Дополнительные реквизиты", там два доп реквизита "Использовать" (булево) и "ДатаОкончания" (дата)
    т.е.:
    ЭквТерм1, Орг "Рога и копыта"
    ТЧ:
    Использовать:истина

    ЭквТерм2, Орг "Рога и копыта"
    ТЧ:
    Использовать:истина
    ДатаОкончания:10.06.2017

    ЭквТерм3, Орг "Рога и копыта"
    ТЧ:
    ДатаОкончания:12.06.2017

    Нужен запрос, чтобы он вывел в следующем виде:
    ЭквТерм1 истина <NULL>
    ЭквТерм2 истина 10.06.2017
    т.е. по каждому терминалу, те которые с признаком использовать, показывать дату, три дня пытаюсь написать запрос, но он выводит не так как надо:
    ЭквТерм1 истина 10.06.2017
    ЭквТерм2 истина 10.06.2017

    вот мой запрос:
    Код:
    ВЫБРАТЬ
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Ссылка.БанковскийСчет.Владелец КАК Владелец,
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Ссылка КАК Ссылка,
        ВЫБОР
            КОГДА ЭквайринговыеТерминалыДополнительныеРеквизиты.Свойство.Наименование ПОДОБНО "%Использовать%"
                ТОГДА ЭквайринговыеТерминалыДополнительныеРеквизиты.Значение
        КОНЕЦ КАК Использовать
    ПОМЕСТИТЬ табл1
    ИЗ
        Справочник.ЭквайринговыеТерминалы.ДополнительныеРеквизиты КАК ЭквайринговыеТерминалыДополнительныеРеквизиты
    ГДЕ
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Ссылка.ПометкаУдаления = ЛОЖЬ
        И ЭквайринговыеТерминалыДополнительныеРеквизиты.Свойство = &СвойствоИспользовать
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Ссылка.БанковскийСчет.Владелец КАК Владелец,
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Ссылка КАК Ссылка,
        ВЫБОР
            КОГДА ЭквайринговыеТерминалыДополнительныеРеквизиты.Свойство.Наименование ПОДОБНО "%Дата%"
                ТОГДА ЭквайринговыеТерминалыДополнительныеРеквизиты.Значение
        КОНЕЦ КАК ДатаПрекращения
    ПОМЕСТИТЬ табл2
    ИЗ
        Справочник.ЭквайринговыеТерминалы.ДополнительныеРеквизиты КАК ЭквайринговыеТерминалыДополнительныеРеквизиты
    ГДЕ
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Ссылка.ПометкаУдаления = ЛОЖЬ
        И ЭквайринговыеТерминалыДополнительныеРеквизиты.Свойство = &СвойствоДата
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        табл1.Владелец КАК Владелец,
        табл1.Ссылка КАК Ссылка,
        табл1.Использовать КАК Использовать,
        табл2.ДатаПрекращения КАК ДатаПрекращения
    ИЗ
        табл1 КАК табл1
            ЛЕВОЕ СОЕДИНЕНИЕ табл2 КАК табл2
            ПО (табл1.Владелец = табл2.Владелец)
    
    УПОРЯДОЧИТЬ ПО
        Владелец
  2. 1с-ник
    Offline

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

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    162
    Баллы:
    104
    Сначала отбираем терминалы, в которых имеется свойство "Использовать" в значении истины, а затем берём все строки таблицы доп. реквизитов.
    Код:
    ВЫБРАТЬ
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Ссылка КАК Ссылка,
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Свойство КАК Свойство,
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Значение КАК Значение
    ИЗ
        Справочник.ЭквайринговыеТерминалы.ДополнительныеРеквизиты КАК ЭквайринговыеТерминалыДополнительныеРеквизиты
    ГДЕ
        ЭквайринговыеТерминалыДополнительныеРеквизиты.Ссылка В
                (ВЫБРАТЬ
                    ДополнительныеРеквизиты.Ссылка
                ИЗ
                    Справочник.ЭквайринговыеТерминалы.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты
                ГДЕ
                    ДополнительныеРеквизиты.Свойство = &Свойство
                    И ДополнительныеРеквизиты.Значение = ИСТИНА)
    Только не понятно, зачем тебе NULL
    xxx949 нравится это.
  3. TopicStarter Overlay
    xxx949
    Offline

    xxx949 Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    309
    Симпатии:
    1
    Баллы:
    29
    NULL оно само появляется там, где значения нет, поэтому и решил по нему отобрать. Спасибо за ответ, получилось сделать немножко по другому, правда путь более длинный. Делаю сначала одну временную таблицу, где только терминалы, затем вторую временную таблицу, где только строки "Использовать", потом третью временную таблицу, где только даты, потом все три таблицы через левое соединение, и получилось то, чего я ждал )

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