Привязка ячейки табличного поля к типу реквизита

Тема в разделе "1C и всё что с ней связано", создана пользователем Oleh, 30 авг 2011.

  1. Oleh

    Oleh Гость

    Помогите пожалуйста!
    Эсть табличное поле з колонками Реквізит и Значення
    Необхідно щоб при введені значення Реквізит в текуший строці в колонці (Значення) задавася тип як у реквізита для полегшення подальшого заповнення!
    В колонці Значення типи полів даних можуть бути різними в залежності від типів реквізитів!
    Реквізити автоматично вносяться в табличнеПоле при виборі документу в Полеввода(ТипДокумента)!
    Код ( (Unknown Language)):
    Процедура ТипДокументаПриИзменении(Элемент)

    Если ЗначениеЗаполнено(Элемент.Значение) Тогда
    ЭтаФорма.ТабличноеПоле1.Очистить();
    Для Каждого док Из Метаданные.Документы[Элемент.Значение].Реквизиты
    Цикл
    Имя = Док.Имя;
    Синоним = Док.Синоним;        
    ЭлементыФормы.ТабличноеПоле1.ДобавитьСтроку();

    ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Реквізит=Имя;

    ТипЗнач=Метаданные.НайтиПоТипу(Метаданные.Документы[Элемент.Значение].Реквизиты[Имя].Тип.Типы()[0]).ПолноеИмя();

    //ТипЗнач=СправочникСсылка.Склад --- работает, а вот дальше как?

    //Может так, но выдает ошибку!

    МассивТипов=Новый Массив();

    МассивТипов.Добавить(Тип(ТипЗнач));


    ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные["Значення"] = Новый ОписаниеТипов(МассивТипов);

    КонецЦикла;

    КонецЕсли;

    КонецПроцедуры
     
  2. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Полагаю, надо использовать ПривестиЗначение()

    И еще, вот эта конструкция мне не нравится:
    Метаданные.НайтиПоТипу(...
    Получается, с МД берешь тип реквизита, из него выделяешь только первый (а если он составной?). Затем его символьное Имя. А потом по символьному имени опять получаешь тип. Рецепта не выдам, но должен быть путь более простой.

    Может тебя наведет на мысль, что своим выражением ты получил только 1 тип (из описания типов выделил первый). А к колонке Табл нужно применить описание типов.

    А еще мне текст не понравился. Я не про рiдну мову, а про 1C. Ты и в самом деле так словами вразброс пишешь? Начни с серьезного шага - напиши:
    Код ( (Unknown Language)):
    Если НЕ ЗначениеЗаполнено(Элемент.Значение) Тогда
    Возврат;
    КонецЕсли;
     
Загрузка...

Поделиться этой страницей