К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Как из строк Справочника, сделать Таблицу значений, т.е. строки сделать столбцами

Гость
0 - 02.12.2014 - 12:31
Здравствуйте!
Подскажите, как из строк сделать столбцы таблицы значений



Гость
1 - 02.12.2014 - 12:38
ТЗ = СоздатьОбъект("ТаблицаЗначений");
Сч = 0;
Пока Спр.ПолучитьЭлемент() = 1 Цикл
сч = сч + 1;
ТЗ.НоваяКолонка("Колонка" + сч + "_" + СтрЗаменить(Спр.Наименование," ",""),,,,Спр.Наименование);
КонецЦикла;
Гость
2 - 02.12.2014 - 12:46
Универсально: запросом. Выбираем строки по какому-то фильтру, указываем интересующие поля, результат выборки скидываем в ТЗ.
Гость
3 - 02.12.2014 - 12:52
тз1 - донор
тз2 - перевёртыш

Для сч1 = 1 по тз1.КоличествоСтрок() Цикл
тз2.НоваяКолонка("Колонка_"+сч1);
Для сч2 = 1 по тз1.КоличествоКолонок() Цикл
Значение = тз1.ПолучитьЗначение(сч1,сч2);
Если сч1 = 1 Тогда
тз2.НоваяСтрока();
КонецЕсли;
тз2.УстановитьЗначение(сч2,сч1,Значение);
КонецЦикла;
КонецЦикла;
Гость
4 - 02.12.2014 - 12:54
первый вариант не работает
Гость
5 - 02.12.2014 - 13:08
4-amv > только если наименования эелементов содержат недопустимые символы. удалить это
+ "_" + СтрЗаменить(Спр.Наименование," ","")
Uho
6 - 02.12.2014 - 13:26
1-Зелёный тролль > а с чего ты взял, что у него семерка?
Гость
7 - 02.12.2014 - 13:57
во, вспомнил молодость

//*******************************************
Процедура Сформировать()
Спр = СоздатьОбъект("Справочник.Валюты");
Спр.ВыбратьЭлементы();
Сч = 0;
ТЗ.НоваяКолонка("Колонка0",,,,"Реквизит");
Пока Спр.ПолучитьЭлемент() = 1 Цикл
сч = сч + 1;
ТЗ.НоваяКолонка("Колонка" + сч,,,,Спр.Наименование);
Если сч = 1 Тогда
тз.НоваяСтрока();
тз.УстановитьЗначение(1,сч,"Код");
тз.НоваяСтрока();
тз.УстановитьЗначение(2,сч,"Наименование");
Для сч2 = 1 по Метаданные.Справочник("Валюты").Реквизит() Цикл
тз.НоваяСтрока();
тз.УстановитьЗначение(сч2+2,сч,Метаданные.Справочн ик("Валюты").Реквизит(сч2));
КонецЦикла;
КонецЕсли;
тз.УстановитьЗначение(1,сч+1,Спр.Код);
тз.УстановитьЗначение(2,сч+1,Спр.Наименование);
Для сч2 = 1 по Метаданные.Справочник("Валюты").Реквизит() Цикл
Если Метаданные.Справочник("Валюты").Реквизит(сч2).Пери одический = 0 Тогда
тз.УстановитьЗначение(сч2+2,сч+1,Спр.ПолучитьАтриб ут(Метаданные.Справочник("Валюты").Реквизит(сч2))) ;
Иначе
НаДату = РабочаяДата();
Периодический = СоздатьОбъект("Периодический");
Если Периодический.ИспользоватьОбъект(Метаданные.Справо чник("Валюты").Реквизит(сч2),Спр.ТекущийЭлемент()) = 1 Тогда
тз.УстановитьЗначение(сч2+2,сч+1,Периодический.Зна чениеНаДату(НаДату));
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры

6-Uho > а почему нет? к 8ке сам пусть адаптирует
Гость
8 - 02.12.2014 - 14:16
надеюсь, справочник не Контрагенты
Гость
9 - 02.12.2014 - 14:18
8-Дебилы > Договоры наверно :-))


К списку вопросов






Copyright ©, Все права защищены