8.х В табличное поле загрузить колонки с ресурсами, измерениями, реквизитами Регистра Сведений?

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Dimz-z, 9 июл 2010.

  1. TopicStarter Overlay
    Dimz-z
    Offline

    Dimz-z

    Регистрация:
    9 июл 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    В форме обработки есть поле ввода, там выбираются регистры сведений.

    Еще есть табличное поле, когда мы выбираем из списка регистр, то в табличном поле появляться колонки и там должны выводится сооответвенно ресурся, измерения и реквезиты регистра.

    Код в форме обработки выглядит так:

    Помогите .пожалуйста, разобраться, как во вновь добавленные колонки запихнуть соответсвующие значения Таблицы значений соответсвующего регистра сведений? :unsure: :smile:





    Процедура РСНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)

    СписокРС = ЭлементыФормы.РС.СписокВыбора;

    Для Каждого РегСведений Из Метаданные.РегистрыСведений Цикл
    СписокРС.Добавить(РегСведений.Имя, РегСведений.Синоним);
    КонецЦикла;



    КонецПроцедуры


    Процедура РСОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    ТЧ = ТЧСодержаниеРегистров;



    Запрос = Новый Запрос("ВЫБРАТЬ
    |*
    |ИЗ
    |РегистрСведений."+ВыбранноеЗначение);
    Результат = Запрос.Выполнить();
    ТЗ = Результат.Выгрузить();
    Для кол = 0 По ТЗ.Колонки.Количество()-1 Цикл
    ЭлементыФормы.СодержаниеРегистров.Колонки.Добавить();
    КонецЦикла;

    Для Каждого СтрТЗ из ТЗ Цикл
    СтрВывода="";

    Для кол = 0 По ТЗ.Колонки.Количество()-1 Цикл

    СтрВывода = СтрВывода+ " " + Строка(СтрТЗ[кол]); //вывожу запись регистра целиком

    КонецЦикла;
    ТЧ.Добавить();
    КонецЦикла;


    КонецПроцедуры
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    попробуйте заменить кусок кода

    ТЗ = Результат.Выгрузить();
    Для кол = 0 По ТЗ.Колонки.Количество()-1 Цикл
    ЭлементыФормы.СодержаниеРегистров.Колонки.Добавить();
    КонецЦикла;


    на

    ТЗ = Результат.Выгрузить();
    Для кол = 0 По ТЗ.Колонки.Количество()-1 Цикл
    ЭлементыФормы.СодержаниеРегистров.Колонки.Добавить(ТЗ.Колонки[кол].Имя);
    КонецЦикла;
    ЭлементыФормы.СодержаниеРегистров.Загрузить(ТЗ);
  3. TopicStarter Overlay
    Dimz-z
    Offline

    Dimz-z

    Регистрация:
    9 июл 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    спасибо:)

    ЭлементыФормы.СодержаниеРегистров.Загрузить(ТЗ);
    это же метод для табличной части.. у табличного поля он не работает.
  4. TopicStarter Overlay
    Dimz-z
    Offline

    Dimz-z

    Регистрация:
    9 июл 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    у ТЧ пишет "обращение к процедуре, как к функции"..у ТП соответсвенно, что "метод не обнаружен"..
  5. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Вот вам примерчик
    Код:
    Процедура НаименнованиеРегистраСведенийПриИзменении(Элемент)
    
    МассивТипов = Новый Массив;
    МассивТипов.Добавить(Тип("РегистрСведенийСписок."+НаименнованиеРегистраСведений));
    ЭлементыФормы.ТабличноеПоле1.ТипЗначения = Новый ОписаниеТипов(МассивТипов);
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    
    КонецПроцедуры
    

    Вложения:

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