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

1С:Предприятие ::

Метки: 

Вывод запроса в Дерево знач на форме

Я
   gabd_marat
 
18.07.18 - 13:54
Всем, привет. Вывожу запрос в дерево значений , но выводиться только первая группировка участок остальное нет. Дерево знач на форме , есть колонка наименование - сост тип данных

Функция ПолучитьВыборку()
    
    Форма = ЭтотОбъект.ПолучитьФорму("Форма",ЭтаФорма,Новый УникальныйИдентификатор);
    
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("ВТ_ПАСПОРТА_ТЗ", Форма.Маршрутки);
    
    Запрос.Текст =
    
    "ВЫБРАТЬ
    |    ВТ_ПАСПОРТА_ТЗ.Паспорт КАК Паспорт,
    |    ВТ_ПАСПОРТА_ТЗ.Номенклатура
    |ПОМЕСТИТЬ ВТ_ПАСПОРТА
    |ИЗ
    |    &ВТ_ПАСПОРТА_ТЗ КАК ВТ_ПАСПОРТА_ТЗ
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    СостояниеПоследнееИзменение.Паспорт КАК Паспорт,
    |    МАКСИМУМ(СостояниеПоследнееИзменение.Период) КАК Период
    |ПОМЕСТИТЬ втСостояниеПоследнееИзменение
    |ИЗ
    |    РегистрСведений.Состояние КАК СостояниеПоследнееИзменение
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ПАСПОРТА КАК ВТ_ПАСПОРТА
    |        ПО СостояниеПоследнееИзменение.Паспорт = ВТ_ПАСПОРТА.Паспорт
    |            И СостояниеПоследнееИзменение.Номенклатура = ВТ_ПАСПОРТА.Номенклатура
    |
    |СГРУППИРОВАТЬ ПО
    |    СостояниеПоследнееИзменение.Паспорт
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    СостояниеСрезПоследних.Паспорт,
    |    СостояниеСрезПоследних.Период,
    |    СостояниеСрезПоследних.Состояние,
    |    СостояниеСрезПоследних.ВидОперации,
    |    СостояниеСрезПоследних.Техоперация
    |ПОМЕСТИТЬ втСостояниеСрезПоследних
    |ИЗ
    |    РегистрСведений.Состояние КАК СостояниеСрезПоследних
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втСостояниеПоследнееИзменение КАК втСостояниеПоследнееИзменение
    |        ПО СостояниеСрезПоследних.Паспорт = втСостояниеПоследнееИзменение.Паспорт
    |            И СостояниеСрезПоследних.Период = втСостояниеПоследнееИзменение.Период
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    Паспорты.Паспорт,
    |    Паспорты.ТехКарта
    |ПОМЕСТИТЬ втПаспортыСостояние
    |ИЗ
    |    РегистрСведений.Паспорты КАК Паспорты
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ПАСПОРТА КАК ВТ_ПАСПОРТА
    |        ПО Паспорты.Паспорт = ВТ_ПАСПОРТА.Паспорт
    |            И Паспорты.Номенклатура = ВТ_ПАСПОРТА.Номенклатура
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    втПаспортыСостояние.Паспорт,
    |    втПаспортыСостояние.ТехКарта,
    |    втСостояниеСрезПоследних.Состояние,
    |    втСостояниеСрезПоследних.ВидОперации,
    |    ЕСТЬNULL(втСостояниеСрезПоследних.Техоперация, ""Пустая ссылка"") КАК Техоперация,
    |    ЕСТЬNULL(ТехнологическиеОперации.Участок, ""Пустая ссылка"") КАК Участок,
    |    ТехнологическиеКартыПроизводстваМаршрут.НомерСтроки
    |ПОМЕСТИТЬ втУчасткиПаспортТехОперация
    |ИЗ
    |    втПаспортыСостояние КАК втПаспортыСостояние
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втСостояниеСрезПоследних КАК втСостояниеСрезПоследних
    |            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТехнологическиеОперации КАК ТехнологическиеОперации
    |            ПО втСостояниеСрезПоследних.Техоперация = ТехнологическиеОперации.Ссылка
    |        ПО втПаспортыСостояние.Паспорт = втСостояниеСрезПоследних.Паспорт
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТехнологическиеКартыПроизводства.Маршрут КАК ТехнологическиеКартыПроизводстваМаршрут
    |        ПО втПаспортыСостояние.ТехКарта = ТехнологическиеКартыПроизводстваМаршрут.Ссылка
    |            И (втСостояниеСрезПоследних.Техоперация = ТехнологическиеКартыПроизводстваМаршрут.ТехнологическаяОперация)
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    втУчасткиПаспортТехОперация.Паспорт КАК Паспорт,
    |    ЕСТЬNULL(ТехнологическиеКартыПроизводстваМаршрут.ТехнологическаяОперация, ""Нет следующей ТехОперации"") КАК ТехОперация,
    |    ЕСТЬNULL(ТехнологическиеКартыПроизводстваМаршрут.ТехнологическаяОперация.Участок, ""Нет участка данной ТехОперации"") КАК Участок
    |ИЗ
    |    втУчасткиПаспортТехОперация КАК втУчасткиПаспортТехОперация
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТехнологическиеКартыПроизводства.Маршрут КАК ТехнологическиеКартыПроизводстваМаршрут
    |        ПО втУчасткиПаспортТехОперация.ТехКарта = ТехнологическиеКартыПроизводстваМаршрут.Ссылка
    |            И (втУчасткиПаспортТехОперация.НомерСтроки + 1 = ТехнологическиеКартыПроизводстваМаршрут.НомерСтроки)
    |
    |ИТОГИ ПО
    |    Участок,
    |    ТехОперация"  ;
    
    Выборка = Запрос.Выполнить();
    Выборка2 = Выборка.Выгрузить();
    Возврат Выборка;
    
КонецФункции// ПолучитьВыборку()


//Процедура формирует отчет по следующему участку и техоперации паспорта

//
Процедура СформироватьОтчет() 
    
    // Получение данных отчета.

    ВыборкаПаспорта = ПолучитьВыборку();
    
    //ДеревоЗначенийУчасток.НачальноеОтображениеДерева = НачальноеОтображениеДерева.НеРаскрывать;

    //Модифицированность = Истина;

    ВыборкаУчасток = ВыборкаПаспорта.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Участок");
    
    Пока ВыборкаУчасток.Следующий() Цикл
        
        Строка = ДеревоЗначенийУчасток.Строки.Добавить();
        Строка.Наименование = ВыборкаУчасток.Участок;
        ВыборкаТехОперация = ВыборкаУчасток.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Техоперация");
        Пока ВыборкаТехОперация.Следующий() Цикл
            
            Подстрока = Строка.Строки.Добавить();
            Подстрока.Наименование = ВыборкаТехОперация.ТехОперация;
            
            ВыборкаМаршрутка = ВыборкаТехОперация.Выбрать();
            Пока ВыборкаМаршрутка.Следующий() Цикл
                
                ПодстрокаСтроки = Подстрока.Строки.Добавить();
                ПодстрокаСтроки.Наименование = ВыборкаМаршрутка.Паспорт;
                
            КонецЦикла;
        КонецЦикла;
        
    КонецЦикла; 
    дерево = ДеревоЗначенийУчасток;
КонецПроцедуры// СформироватьОтчет()
 
 
   gabd_marat
 
1 - 18.07.18 - 13:56
дерево = ДеревоЗначенийУчасток; - просто тестировал
   gabd_marat
 
2 - 18.07.18 - 13:59
Обход запроса не правильный?
   Dohter2010
 
3 - 18.07.18 - 14:04
Выборка = Запрос.Выполнить();
    Выборка2 = Выборка.Выгрузить();
    Возврат Выборка;

 а это так надо ?
   gabd_marat
 
4 - 18.07.18 - 14:13
Выборка2 = Выборка.Выгрузить(); - хотел понять что получилось в результате запроса
   gabd_marat
 
5 - 18.07.18 - 14:14
Подскажите в чем проблема
   gabd_marat
 
6 - 18.07.18 - 14:14
Запрос вроде работающий, группировки есть, но вывод не правильный как я понимаю
   gabd_marat
 
7 - 18.07.18 - 14:16
ЭЭЭ
   gabd_marat
 
8 - 18.07.18 - 14:23
Ник то подсказать не может?
   gabd_marat
 
9 - 18.07.18 - 14:25
Как можно вывести дерево знач ? Как из запроса вывести в 1 поле дер знач 3 поля запроса?
   Kondarat
 
10 - 18.07.18 - 14:27
У колонки Наименование установить галочку "ОтображатьИерархию"?
 
  Рекламное место пустует
   gabd_marat
 
11 - 18.07.18 - 14:33
(10) Да спасибо, проблема была в этом
   xxTANATORxx
 
12 - 18.07.18 - 14:40
в толстом клиенте как-то так

ЭлементыФормы.Дерево.Значение = Запрос.Выполнить().Выгрузить(ОбходРезЗапроса...);

ЭлементыФормы.Дерево.СоздатьКолонки()
   gabd_marat
 
13 - 18.07.18 - 15:00
формлениеСтроки.Ячейки.Переместить.ОтображатьФлажок - какая команд вместо ОтображатьФлажок должна быть что бы появилась лупа в ячейке?


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