Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

УТ 11.3, запрос по комплектующим

УТ 11.3, запрос по комплектующим
Я
   roofus
 
29.10.16 - 19:32
Исх данные. 1с 8.3 УТ11.3
Справочник ВариантыКомплектаций.
Нужно запросом, указав "главный комплект" построить дерево с вложенными полуфабрикатами и комплектующими.
Не могу сообразить, как в запросе можно однозначно выяснить комплектующая в свою очередь является ли комплектом для запуска цикла построения на более низком уровне.
На ум приходят только вложенные запросы.
Есть ли решение такой задачи?
 
 
   Мигрень
 
1 - 29.10.16 - 19:38
На ум приходит только сборка запроса из кусочков в рекурсивно алгоритме.
   roofus
 
2 - 29.10.16 - 19:50
Вот текст запроса
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Комплектующие.Номенклатура КАК Номенклатура,
    Комплектующие.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    Комплектующие.Упаковка КАК Упаковка,
    Комплектующие.КоличествоУпаковок КАК КоличествоУпаковок,
    Комплектующие.ДоляСтоимости КАК ДоляСтоимости,
    Комплектующие.Количество КАК Количество,
    Комплектующие.НомерСтроки КАК НомерСтроки,
    ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ЦенаРуб,
    ЦеныНоменклатуры.Период КАК ДатаЦены,
    Комплектующие.Ссылка.Количество КАК КоличествоКомпл,
    Комплектующие.Ссылка.Владелец.ЕдиницаИзмерения КАК ЕдИзмКомпл
ИЗ
    Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК Комплектующие
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаОтчета, ВидЦены = &ВидЦены) КАК ЦеныНоменклатуры
        ПО Комплектующие.Номенклатура = ЦеныНоменклатуры.Номенклатура
ГДЕ
    Комплектующие.Ссылка.Владелец = &Номенклатура
    И Комплектующие.Ссылка.Основной
    И НЕ Комплектующие.Ссылка.ПометкаУдаления

УПОРЯДОЧИТЬ ПО
    НомерСтроки

запрос, который определяет что это комплект
ВЫБРАТЬ 
    КОЛИЧЕСТВО(*) КАК КоличествоЗаписей 
ИЗ 
    Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК Комплектующие
ГДЕ 
    Комплектующие.Владелец = &Владелец"; 

Но как их соединить чего-то невтыкаю
   tndr
 
3 - 29.10.16 - 20:04
Может добавить поле, типа ВЫБОР КОГДА трали вали, во временную таблицу все запихнуть, и по этому полю соединять?
   Лефмихалыч
 
4 - 29.10.16 - 20:08
ВЫБРАТЬ
  Владелец
Поместить ВТ
ИЗ
Справочник.ВариантыКомплектацииНоменклатуры.Товары
СГРУППИРОВАТЬ ПО Владелец ИМЕЮЩИЕ Количество(РАЗЛИЧНЫЕ НОмерСТроки)>1
;
ВЫБРАТЬ
    ВТ.Владелец,
    Комлектующие.Номенклатура
ИЗ ВТ ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК Комплектующие
ПО ВТ.Владелец = Комплектующие.Владелец



цены прикрути левым соединением по аналогии со своим вариантом.
   roofus
 
5 - 31.10.16 - 11:11
Не выходит каменный цветок.
Выдает все значения при присоединении таблицы а не одно.
Решил загнать все комплекты и полуфабрикаты в группу и проверить принадлежность к группе в запросе. Но как отобрать знаю как заполнить булевое поле в запросе принадлежностью группе не понимаю.
   aleks_default
 
6 - 31.10.16 - 11:38
Я реализовывал в СКД через произвольную иерархию. Правда особо не заморачивался со всякими проверками на зацикленность и т. д. - для нашей базы это не критично.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует