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

Реализовать многоуровневое соответствие

Автор Москва, 24 ноя 2009, 13:45

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

Москва

С помощью каких функций можно получить  многоуровневое соответствие видов расчетов, чтобы в них присутствовали хотя бы какие то базовые расчеты

Buh777

Вот тут как раз пригодится соответствие где в качестве ключей будут использоваться виды расчетов, обладающие базовыми.Первую полученную информацию удобнее осуществить при помощи запроса с использованием итогов. При последующих переборах результат запроса даст возможность сформировать необходимые объекты
Цитировать
Запрос = Новый Запрос;

Запрос.Текст =
"ВЫБРАТЬ
|   ОсновныеНачисленияОрганизацииБазовыеВидыРасчета.Ссылка КАК Ссылка,
|   ОсновныеНачисленияОрганизацииБазовыеВидыРасчета.ВидРасчета,
|   ОсновныеНачисленияОрганизацииБазовыеВидыРасчета.ВидРасчета.Наименование,
|   ОсновныеНачисленияОрганизацииБазовыеВидыРасчета.Предопределенный
|ИЗ
|   ПланВидовРасчета.ОсновныеНачисленияОрганизации.БазовыеВидыРасчета КАК ОсновныеНачисленияОрганизацииБазовыеВидыРасчета
|ИТОГИ ПО
|   Ссылка";

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

ВидыРасчета    = Новый Соответствие;
БазовыеВидаРасчета = Новый Соответствие;
СвойстваВидаРасчета = Новый Структура("Наименование, Предопределенный");

// Цикл по видам расчета, обладающим базовыми.
Пока ВыборкаВидовРасчета.Следующий() Цикл
   БазовыеВидаРасчета.Очистить();
   ВыборкаБазовых = ВыборкаВидовРасчета.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

   // Цикл по базовым видам расчета.
   Пока ВыборкаБазовых.Следующий() Цикл

      // Заполнить значения структуры "СвойстваВидаРасчета".
      СвойстваВидаРасчета.Наименование = ВыборкаБазовых.Наименование;
      СвойстваВидаРасчета.Предопределенный = ВыборкаБазовых.Предопределенный;

      // Заполнить соответствие "БазовыеВидаРасчета".
      БазовыеВидаРасчета.Вставить(ВыборкаБазовых.ВидРасчета, СвойстваВидаРасчета);
      
   КонецЦикла;

   // Заполнить соответствие "ВидыРасчета".
   ВидыРасчета.Вставить(ВыборкаВидовРасчета.Ссылка, БазовыеВидаРасчета);
   
КонецЦикла;

Теги:

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

Рейтинг@Mail.ru

Поиск