Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 00:21

Заполнение подстраничек из иерархического справочника

Автор GanG031, 30 окт 2015, 12:42

0 Пользователей и 1 гость просматривают эту тему.

GanG031

Доброго времени суток, уважаемые!
Имеется документ, в нем имеется несколько подстраничек, и для каждой из них одна одинаковая табличная часть. При создании документа есть процедура, которая заполняет колонку "Наименование" значениями из определенной группы иерархического справочника. Вот процедура:

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

  КонецПроцедуры



Подскажите, как сделать так, что бы другие подстранички заполнялись элементами других групп из справочника. В данный момент у меня все подстранички запоняются элементами из одной группы справочника, а нужно что бы каждая подстраничка заполнялась из разных групп справочника.  Зараннее спасибо!

GanG031

вот добавил скриншот, что бы было понятней http://s019.radikal.ru/i602/1510/fe/de7b0a1cc17e.png

Импортная продукция(Мясо свежее..... Это первая подстраничка
Субпродукты убойных животных.....    Это вторая подстраничка

Kironten

Абсолютно также как и первую табличную часть.
Можно сделать пакетный запрос. Соотвественно каждый пакет для определенной ТЧ.

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

GanG031

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


Это по сути тот же запрос, но подскажите, как установить параметры Родителя, что бы для каждого пакета, они были свои?
Добавлено: 30 окт 2015, 13:33


Табличная часть ведь одна и та же, отличаются лишь элменты, которыми надо заполнить эти подстранички

Kironten

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

Я код не причесывал - лениво.

GanG031

От души! Спасибо!:zebzdr::zebzdr::zebzdr::nhsrm:
Добавлено: 30 окт 2015, 13:59


Не пойму, зачем указывать номер строки? Пакеты запросов, параметры, это все да, но табличная часть одна же ведь
Добавлено: 30 окт 2015, 14:04


Цитата: GanG031 от 30 окт 2015, 13:41
От души! Спасибо!:zebzdr::zebzdr::zebzdr::nhsrm:
Добавлено: 30 окт 2015, 13:59


Не пойму, зачем указывать номер строки? Пакеты запросов, параметры, это все да, но табличная часть одна же ведь
Извиняюсь, разобрался

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск