8.х Запрос по свойствам номенклатуры

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

  1. TopicStarter Overlay
    shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Пишу запрос:
    Код:
     
    ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    РеализацияТоваровУслугТовары.Количество КАК Количество,
    ЗначенияСвойствОбъектов.Свойство,
    ЗначенияСвойствОбъектов.Значение
    ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ПО РеализацияТоваровУслугТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект
    ГДЕ
    РеализацияТоваровУслугТовары.Ссылка = &Ссылка
    И ЗначенияСвойствОбъектов.Свойство В(&СписокСвойств)
    
    
    помогите пожалуйста, не могу сообразить как сделать. Мне не нужны поля ЗначенияСвойствОбъектов.Свойство и ЗначенияСвойствОбъектов.Значение в таком виде, поскольку если в "СпискеСвойств" несколько значений у меня получается соответственно несколько строк с одинаковой номенклатурой. Как эти 2 поля засунуть в отдельную внутренюю таблицу?
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Какая задача вообше стоит. Т.е вы хоте что бы при выборке запроса у вас по каждой номенклатуре была одна строка а доп поле Цела таблица со значениями свойств?Для чего?

    Сделайте Итоги по Номенклатуре и будет так

    Номенклатура1
    Свойство1
    Сввойство2
    Номенклатура2
    Свойство1
    Сввойство2

    если будет обход по группиовкам делать
  3. TopicStarter Overlay
    shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Создание печатной формы. Т.е. как обычно - цикл по номенклатуре, для каждой номенклатуры заполняем строку макета. Хотел использовать метод макета табличного документа "Заполнить()", чтобы передать туда эту таблицу.
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Все как обычно сделайте отчет конструктором (вставив туда ваш запрос), а потом перетащите все оттуда во внешнюю печатную и код и макет.

    Обход по результатам группировок и Заполняем.
  5. TopicStarter Overlay
    shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Вобщем не осилил. Кому интересно сделал так:

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

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    что за бред? вам же сказали как делать!

    Код:
    ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    РеализацияТоваровУслугТовары.Количество,
    ЗначенияСвойствОбъектов.Свойство КАК Свойство,
    ЗначенияСвойствОбъектов.Значение
    ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ПО РеализацияТоваровУслугТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект
    ГДЕ
    РеализацияТоваровУслугТовары.Ссылка = &ссылка
    ИТОГИ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Свойство)
    ПО
    Номенклатура
    
  7. TopicStarter Overlay
    shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не кричите на человека, который за последние 2 суток спал 5 часов. :))
    Попробую так, но обработка вывода в макет вижу будет чуть сложнее, в 1 строчку не уложусь.

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