|
РегистрСведенийКлючЗаписи: как перебрать его поля в общем виде?
| ☑ |
0
wisekat
25.06.12
✎
16:09
|
В коде есть доступ к объекту РегистрСведенийКлючЗаписи, который получаю для различных регистров своей конфы. Необходимо написать универсальный код, который переберёт значения полей данного объекта (надо, чтобы слепить строку, понятную для пользователя).
|
|
1
izekia
25.06.12
✎
16:10
|
а не лучше для менеджера прописать получение представления?
|
|
2
izekia
25.06.12
✎
16:10
|
а так через метаданные
|
|
3
Irbis
25.06.12
✎
16:11
|
Перебирай измерения, для периодических плюс период
|
|
4
wisekat
25.06.12
✎
16:12
|
(2) Вот тоже ищу параллельно - по-видимому, надо сначала получить
МетаданныеТипа = Метаданные.НайтиПоТипу(ТипЗнч(пОбъектСсылка));
, а затем его свойство-коллекцию Измерения использовать.
|
|
5
wisekat
25.06.12
✎
16:14
|
(1) А как это сделать?? И не забывайте, что мне не для одного регистра это сделать надо, а универсальный код написать, который чисто теоретически должен работать без переделок и для всех новых регистров сведений.
|
|
6
wisekat
25.06.12
✎
19:08
|
Решается примерно вот так:
ОбъектПредставление = "";
МетаданныеТипа = Метаданные.НайтиПоТипу(ТипЗнч(ОбъектСсылка));
Для Каждого ИзмерениеРегистра Из МетаданныеТипа.Измерения Цикл
ОбъектПредставление = ОбъектПредставление + " | " + ИзмерениеРегистра.Имя + ": " + ОбъектСсылка[ИзмерениеРегистра.Имя];
КонецЦикла;
Если МетаданныеТипа.ПериодичностьРегистраСведений = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.День Тогда
ОбъектПредставление = ОбъектПредставление + " | Дата: " + Формат(ОбъектСсылка.Период, "ДЛФ=Д");
КонецЕсли;
ОбъектПредставление = Сред(ОбъектПредставление, 4);
|
|
7
wisekat
25.06.12
✎
19:09
|
Если регистр сведений с периодичностью, отличной от 'День', то надо будет дополнительно правильно период отформатировать.
Ну а так в общем вопрос считаю закрытым.
|
|