8.х Условия отбора в СКД

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ЧКДзержинский, 5 окт 2009.

  1. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Доброе время суток!
    Такая лажа: пишу запрос, который получает данные из базы по определенному отбору. Критериями отбора являются данные типа "ПланВидовХарактеристик" и "Справочник". В упрощенном виде запрос выглядит так:

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

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Сделай ГДЕ на таблицу свойств, а то ты соединяешь со всеми свойствами из таблицы по данной номенлатуре
  3. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Ты наверно не заметил:
    ПО Свойства.Объект = Рег.Номенклатура
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Ну так правильно!

    У тебя задано два свойства, отбор ты не наложил на свойство. Получишь две записи по одной номенклатуре
  5. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Я что-то не понимаю, о каких двух свойствах ты говоришь.
    Вообще я уже разобрался. Если вкратце, то в запросе, помещаемом в СКД указал:
    Код:
    И Свойства.Свойство = &Свойство
    
    Затем в настройках СКД указал (точнее - установил галочку), что поле Свойство имеет условия. Затем в коде присвоил параметру СКД значение поля ввода, в котором пользователь указывает свойства.
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Покажи как схему, а то нефига не понятно

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