Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как получить значение рекизита документа через метаданные
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
olsam
Доброго времени суток!
Во внешней обработке нужно сформировать список всех документов конфигурации, которые были сформированы за определенный период.
В таблицу нужно вывести все реквизиты выбраного документа и их значения. Как получить дату из стандартных реквизитов и знчение полученых реквизитов?

При открытиии формирую список документов

Процедура ПриОткрытии()
    СписокВыбора = ЭлементыФормы.ТипДокумента.СписокВыбора;
    
    Для Каждого Документ Из Метаданные.Документы Цикл
                            
        Если ПравоДоступа("Просмотр", Документ) Тогда
            ИмяДокумента = Документ.Синоним;
            
            Если ИмяДокумента = "" Тогда
                ИмяДокумента = Документ.Имя;
            КонецЕсли;
            
            СписокВыбора.Добавить(Документ, ИмяДокумента);
        КонецЕсли;
    КонецЦикла;    
    КонецПроцедуры


При выборе документа формирую таблицу

Процедура ТипДокументаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)    
    
    
    ТЗ = Новый ТаблицаЗначений();    
              ТЗ.Колонки.Добавить("Реквизит");
    ТЗ.Колонки.Добавить("Значение",ЗначениеТипы);
        
    Для каждого Реквизит Из ВыбранноеЗначение.Реквизиты Цикл
    НовСтр = ТЗ.Добавить();
    НовСтр.Отбор = Ложь;
              НовСтр.Реквизит = Реквизит;
              НовСтр.Значение = //как получить значение??         
              КонецЦикла;    

    ЭлементыФормы.ТаблицаРеквизитов.Значение = ТЗ;
    ЭлементыФормы.ТаблицаРеквизитов.СоздатьКолонки();
КонецПроцедуры
Vofka
Цитата
НовСтр.Значение = //как получить значение??

Может так:
НовСтр.Значение = ВыбранноеЗначение[Реквизит];
alex040269
ДокументСсылка[Реквизит.Имя]
olsam
Цитата(Vofka @ 10.02.12, 9:39) необходимо зарегистрироваться для просмотра ссылки
Может так:
НовСтр.Значение = ВыбранноеЗначение[Реквизит];


на это говорит: Получение элемента по индексу для значения не определено
НовСтр.Значение = ВыбранноеЗначение[Реквизит];

а если написать
НовСтр.Значение = ВыбранноеЗначение[Реквизит.Имя];

то:Поле объекта не обнаружено (Организация)
НовСтр.Значение = ВыбранноеЗначение[Реквизит.Имя];

Цитата(alex040269 @ 10.02.12, 9:39) необходимо зарегистрироваться для просмотра ссылки
ДокументСсылка[Реквизит.Имя]


да, но как получить ссылку документа через метаданные??
Vofka
Я, признаться, думал, что в ВыбранноеЗначение находится ДокументСсылка. Не? А что там?
olsam
там объект метаданных
Vofka
Ну тогда никак. Вам надо где-то либо ДокументСсылка либо ДокументОбъект.
olsam
я тоже об этом думал, но как их получить??
Vofka
В вашем коде вообще нет выборки по документам. Вы не знаете как сделать выборку или что?
olsam
выходит, что не знаю... можна пример??
Vofka
Стоп.
Цитата
В таблицу нужно вывести все реквизиты выбраного документа и их значения

А где ж выбранный документ?
olsam
ВыбранноеЗначение это и есть выбраный документ
Vofka
Цитата
ВыбранноеЗначение это и есть выбраный документ

Вы понимаете разницу между выбранным конкретным документом в системе и каким-то объектом "Документ" метеданных? В чем разница?
olsam
понятно...тогда как мне выбрать конкретный документ?
Vofka
А вы сами на свой вопрос ответить не можете? Вам надо выбрать данные конкретного документа. Спрашивается: какого конкретного документа, если его никто не определяет? Логики 0. Сделайте на форме, чтоли, поле с выбором документа или ещё как-то. Вы ж делаете, вам должно быть виднее.
olsam
Спасибо, я понял свою ошибку и разобрался
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.