Имя: Пароль:
1C
1С v8
Тип Значения реквизита документа составного типа. Как?
0 DiegoLidabo
 
31.12.14
12:02
Есть ДокументОбъект
ДокументОбъектРеквизиты = ДокументОбъект.Метаданные().Реквизиты;

Как получить тип значения реквизита документа составного типа? Впрочем интересно и просто тип значения реквизита документа?
1 Fish
 
гуру
31.12.14
12:06
ОписаниеТипов (TypeDescription)
Типы (Types)
Синтаксис:

Типы()
Возвращаемое значение:

Тип: Массив.
Массив значений типа Тип, состоящий из используемых типов.
Описание:

Получает типы, используемые в объекте.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

// Заполнение списка типов документов по указанному элементу формы
// Элемент - элемент формы, имеющий составной тип
СписокТиповДокументов = Новый СписокЗначений;
Для каждого ТипДокумента Из Элемент.ТипЗначения.Типы() Цикл
    ДокументСсылка = Новый(ТипДокумента);
    Имя = ДокументСсылка.Метаданные().Имя;
    Синоним = ДокументСсылка.Метаданные().Синоним;
    СписокТиповДокументов.Добавить(Имя, Синоним);
КонецЦикла;
2 Гёдза
 
31.12.14
12:06
ДокументОбъект.Метаданные().Реквизиты.ИмяРеквизита.Типы
3 Гёдза
 
31.12.14
12:07
Тип значения конкретного реквизита конкретного документа:
ТипЗнч(Документ.ИмяРеквизита)
4 DiegoLidabo
 
31.12.14
17:57
Спасибо! Видимо необходимо переформулировать вопрос. Как получить тип значения реквизита документа при неявном (вычисляемом) имени реквизита документа?

ДокументОбъектРеквизиты = ДокументОбъект.Метаданные().Реквизиты;
        Для к=0 по (ДокументОбъектРеквизиты.Количество() -1) Цикл
            Сообщить(""+к+"-- "+ДокументОбъектРеквизиты[к].ПолноеИмя() +"-- "+ ДокументОбъектРеквизиты[к].тип);
            
        КонецЦикла;
5 Euguln
 
31.12.14
18:34
.Типы() не?
6 FIXXXL
 
01.01.15
14:27
Задача в чем заключается?
7 DiegoLidabo
 
01.01.15
22:00
Как получить тип значения реквизита документа при неявном (вычисляемом) имени реквизита документа?
8 hhhh
 
02.01.15
04:59
ТипЗнч(Документ[НеявноеВычисляемоеИМяРеквизита])
9 DiegoLidabo
 
02.01.15
12:13
Близко, очень близко... Но конструкция
ДокументОбъектРеквизиты = ДокументОбъект.Метаданные().Реквизиты;
        Для к=0 по (ДокументОбъектРеквизиты.Количество() -1) Цикл
     Сообщить(""+к+"-- "+ДокументОбъектРеквизиты[к].Имя +"-- "+ ТипЗНЧ(ДокументОбъект[ДокументОбъектРеквизиты[к].имя]));
    
КонецЦикла;    

Возвращает синоним типа. Т.е. с пробельчиками ... А что бы сразу тип так можно?
10 Chameleon1980
 
02.01.15
12:54
(9) отладчик опять отменили
11 hhhh
 
02.01.15
14:02
XMLСтрока(ТипЗНЧ(ДокументОбъект[ДокументОбъектРеквизиты[к].имя]))
12 DiegoLidabo
 
02.01.15
14:44
(10) И что писать в отладчике?
13 DiegoLidabo
 
02.01.15
14:57
(11)
{ВнешняяОбработка.ПерепроведениеМатериальныхДокументов.МодульОбъекта(202)}: Ошибка при вызове метода контекста (XMLСтрока)
            Сообщить(""+к+"-- "+ДокументОбъектРеквизиты[к].Имя +"-- "+ XMLСтрока(ТипЗНЧ(ДокументОбъект[ДокументОбъектРеквизиты[к].имя])));
по причине:
Ошибка преобразования данных XML
14 DiegoLidabo
 
02.01.15
15:00
(11) Наверное прийдется резать пробелы?
15 hhhh
 
02.01.15
15:08
(14) вообще-то в Сообщить() должно быть с пробелами. Этот у вас какой-то бзик, зачем оно вам без пробелов?
16 DiegoLidabo
 
02.01.15
15:12
(15) Для дальнейшего анализа типа данных и значения реквизита. "Сообщить" это только элемент отладки кода.
17 hhhh
 
02.01.15
15:20
(16) так это Сообщить вставляет пробелы, ты не поверишь.
18 DiegoLidabo
 
02.01.15
15:36
19 Chameleon1980
 
02.01.15
15:39
(12)

ДокументОбъектРеквизиты[к]

не вдавался полностью, но, например, глянуть на предмет других свойств
20 hhhh
 
02.01.15
15:40
(18) ну и забей. В равно в базе без пробела. Какая тебе разница. Наплюй на отладчик.
21 Chameleon1980
 
02.01.15
15:41
(18) ссылку поправьте или выдайте другую
22 DiegoLidabo
 
02.01.15
15:41
Извините, не знаю как на этом форуме картинки вставлять.
Вот ссылка:
http://i-fotki.info/18/effbbcd6f2f518d95b6c8130c4e9c8632e6235202862104.jpg.html
23 hhhh
 
02.01.15
15:43
(22) вы занимаетесь фигней. Тип он и есть тип. Какая вам разница как его выводит отладчик на экран. Отладчик специально для вам вставляет пробел, чтобы вы глаза не ломали.
24 DiegoLidabo
 
02.01.15
15:44
Ок. проверю...
25 DiegoLidabo
 
02.01.15
15:58
(23) Спасибеще!!!
Еще просьба: Ткни носом в учебник где говорится об таких "прекрасных" особенностях "Сообщить". А может и другие такие есть "особенности" представления данных.

Это ж, блин, так вывих мозга получить можно...