Имя: Пароль:
1C
 
Использование доп характеристик, сведений в условии зароса.
,
0 tabarigen
 
05.04.18
16:59
Всем добра, мне бабла.
Конфа Розница 2.
Добавил дополнительное сведение к справочнику контрагентов. Некий булев реквизит.
Не пойму как теперь выбрать всех контрагентов у которых этот реквизитов. Вроде и знаю что сами доп сведения хранятся в Регистре сведений ДополнительныеСведения.

Но как связать грамотно 2 таблицы, чтоб левым соединением вырать всех контрагентов не пойму..

p.s. В настрйоках доп реквизитов, есть еще какое то поле с умным названием "Для разработчиков", возможно программисты 1С, продумали какой то более удобный механизм для обращения к доп реквизитам, но молчат об этом.
1 Джинн
 
05.04.18
17:00
(0) В любой типовой подобных отчетов чуть менее, чем чемодан.
2 Cool_Profi
 
05.04.18
17:01
внутреннее соединение с регистром по объект=ссылка и свойство = твоёсвойство и значение = твоёзначение
3 shuhard
 
05.04.18
17:01
(0)[но молчат об этом.]
поржал =)
4 tabarigen
 
05.04.18
17:02
(2)  свойство = твоёсвойство и значение = твоёзначение
вот тут ни хрена не понял..
5 Temai
 
05.04.18
17:03
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ДопР2
        ПО (ДопР2.Ссылка = ВнутренниеДокументы.Ссылка)
            И (ДопР2.Свойство.Наименование ПОДОБНО "Контрагент")
            И (ДопР2.Значение ССЫЛКА Справочник.Корреспонденты)
6 Temai
 
05.04.18
17:04
это еще старый код вместо поиска по наименованию можно подсунуть предопределенное
7 tabarigen
 
05.04.18
17:17
(5) ВЫБРАТЬ
    Контрагенты.Ссылка КАК Ссылка,
    ДополнительныеСведения.Свойство КАК Свойство,
    ДополнительныеСведения.Значение КАК Значение
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        ПО Контрагенты.Ссылка = ДополнительныеСведения.Объект
ГДЕ
    ДополнительныеСведения.Значение = ИСТИНА
    И ДополнительныеСведения.Свойство.Наименование = "Код клиента (Контрагенты)"

Попробовал так. Если одно из условий убрать фильт работает, если оба одновременно то нет. и еще как быть если у меня булевых дополнительных сведений больше 1-го..
8 hhhh
 
05.04.18
17:21
(7) в регистре нельзя две одинаковых строчки. Поэтому для каждого объекта не получится задать более одного. Только если для разных объектов.
9 Temai
 
05.04.18
17:25
ВЫБРАТЬ
    Контрагенты.Ссылка КАК Ссылка,
    ДополнительныеСведения.Свойство КАК Свойство,
    ДополнительныеСведения.Значение КАК Значение
ИЗ
    Справочник.Корреспонденты КАК Контрагенты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        ПО Контрагенты.Ссылка = ДополнительныеСведения.Объект
            И (ДополнительныеСведения.Свойство.Наименование = "Код клиента (Контрагенты)")
            И (ДополнительныеСведения.Значение = ИСТИНА)
10 tabarigen
 
07.04.18
11:59
ВЫБРАТЬ
    Контрагенты.Ссылка КАК Ссылка,
    ДополнительныеСведения.Свойство КАК Свойство,
    ДополнительныеСведения.Значение КАК Значение
ПОМЕСТИТЬ Свойства
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        ПО Контрагенты.Ссылка = ДополнительныеСведения.Объект
ГДЕ
    ТИПЗНАЧЕНИЯ(ДополнительныеСведения.Объект) = ТИП(Справочник.Контрагенты)
    И ДополнительныеСведения.Свойство.Наименование = "Электронный клиент (Контрагенты)"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Свойства.Ссылка КАК Клиент,
    Свойства.Свойство КАК Электронный,
    Свойства.Значение КАК Значение,
    ДополнительныеСведения.Свойство КАК КодКлиента,
    ДополнительныеСведения.Значение КАК Значение1
ИЗ
    Свойства КАК Свойства
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        ПО Свойства.Ссылка = ДополнительныеСведения.Объект
ГДЕ
    ДополнительныеСведения.Свойство.Наименование = "Код клиента (Контрагенты)"
11 tabarigen
 
07.04.18
11:59
сделал так короче
12 d4rkmesa
 
07.04.18
14:02
Если СКД, можно так:

{ХАРАКТЕРИСТИКИ
    ТИП(Справочник.Контрагенты)
    ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
            ДополнительныеРеквизитыИСведения.Ссылка,
            ДополнительныеРеквизитыИСведения.Наименование,
            ДополнительныеРеквизитыИСведения.ТипЗначения
        ИЗ
            ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
        ГДЕ
            ДополнительныеРеквизитыИСведения.НаборСвойств = ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Контрагенты)
            И ДополнительныеРеквизитыИСведения.Доступен
            И НЕ ДополнительныеРеквизитыИСведения.ЭтоДополнительноеСведение
            И НЕ ДополнительныеРеквизитыИСведения.ПометкаУдаления)
    ПОЛЕКЛЮЧА Ссылка
    ПОЛЕИМЕНИ Наименование
    ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
    ЗНАЧЕНИЯХАРАКТЕРИСТИК (ВЫБРАТЬ
            КонтрагентыДополнительныеРеквизиты.Ссылка,
            КонтрагентыДополнительныеРеквизиты.Свойство,
            КонтрагентыДополнительныеРеквизиты.Значение
        ИЗ
            Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты)
    ПОЛЕОБЪЕКТА Ссылка
    ПОЛЕВИДА Свойство
    ПОЛЕЗНАЧЕНИЯ Значение }
{ХАРАКТЕРИСТИКИ
    ТИП(Справочник.Контрагенты)
    ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
            ДополнительныеРеквизитыИСведения.Ссылка,
            ДополнительныеРеквизитыИСведения.Наименование,
            ДополнительныеРеквизитыИСведения.ТипЗначения
        ИЗ
            ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
        ГДЕ
            ДополнительныеРеквизитыИСведения.НаборСвойств = ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Контрагенты)
            И ДополнительныеРеквизитыИСведения.Доступен
            И ДополнительныеРеквизитыИСведения.ЭтоДополнительноеСведение
            И НЕ ДополнительныеРеквизитыИСведения.ПометкаУдаления)
    ПОЛЕКЛЮЧА Ссылка
    ПОЛЕИМЕНИ Наименование
    ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
    ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ДополнительныеСведения
    ПОЛЕОБЪЕКТА Объект
    ПОЛЕВИДА Свойство
    ПОЛЕЗНАЧЕНИЯ Значение }
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой