8.х Как вытащить значения таблицной части справочника при переборе

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем andre444, 17 июл 2007.

  1. TopicStarter Overlay
    andre444
    Offline

    andre444

    Регистрация:
    29 мар 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    ***
    Код:
    СпрРабочий = Справочник.Метаданные(); 
    МенеджерСправочника = Справочники[СпрРабочий.Имя];
    Выборка = МенеджерСправочника.Выбрать(,,,"Код Убыв");
    Пока Выборка.Следующий() Цикл
    Если (Счетчик+чНомерПервойСтроки-1) = чНомерСтрокиСДанными Тогда
    Для Каждого СтрочкаОписания из тзДанные Цикл
    ИмяЯчейкиXLS = СтрочкаОписания.XLS;
    НомерЯчейкиXLS = СтрочкаОписания.Номер;
    Лист.Cells(чНомерСтрокиСДанными,НомерЯчейкиXLS+чНомерПервойКолонки-1).Value = 
    СокрЛП(ИмяЯчейкиXLS);
    КонецЦикла;
    КонецЕсли;
    ЭлементСпр = Выборка.ПолучитьОбъект();
    Если (ЭлементСпр.ПометкаУдаления = 0) и (ЭлементСпр.Предопределенный=0) и
    (ЭлементСпр.Заблокирован()=0) Тогда
    Для Каждого СтрочкаОписания из тзДанные Цикл
    рр=ложь; 
    дд=ложь;
    Если СокрЛП(СтрочкаОписания.С1С)="Код" Тогда
    ЗначениеЯчейки = ЭлементСпр.Код;
    ИначеЕсли СокрЛП(СтрочкаОписания.С1С)="Наименование" Тогда
    ЗначениеЯчейки = ЭлементСпр.Наименование;
    ИначеЕсли СокрЛП(СтрочкаОписания.С1С)="ЭтоГруппа" Тогда
    ЗначениеЯчейки = ЭлементСпр.ЭтоГруппа;
    ИначеЕсли СокрЛП(СтрочкаОписания.С1С)="ПолныйКод" Тогда
    ЗначениеЯчейки = ЭлементСпр.ПолныйКод();
    ИначеЕсли СокрЛП(СтрочкаОписания.С1С)= "Родитель" Тогда
    ЗначениеЯчейки = ЭлементСпр.Родитель;
    ИначеЕсли СокрЛП(СтрочкаОписания.С1С)= "Владелец" Тогда
    ЗначениеЯчейки = ЭлементСпр.Владелец;
    ИначеЕсли не(рр) Тогда
    
    
    ? Для каждого ТЧ Из ЭлементСпр.Метаданные().ТабличныеЧасти Цикл
    ? Для каждого Реквизит Из ТЧ.Реквизиты Цикл
    ? Если СокрЛП(СтрочкаОписания.С1С)=СокрЛП(Реквизит.Имя)Тогда
    ? ЗначениеЯчейки = ????????????????

    Здесь нужно вытащить табличное значение
    (Не знаю как это сделать, заклинило) :unsure:
    рр=Истина;
    прервать;
    ? КонецЕсли;
    ? КонецЦикла;
    ?КонецЦикла;
    Код:
             дд=Истина;
    Если не(рр)и дд Тогда    
    ЗначениеЯчейки = ЭлементСпр[СтрочкаОписания.С1С];
    КонецЕсли;
    КонецЕсли;
    ИмяЯчейкиXLS = СтрочкаОписания.XLS;
    НомерЯчейкиXLS = СтрочкаОписания.Номер;
    Лист.Cells(Счетчик+чНомерПервойСтроки-1,НомерЯчейкиXLS+
    чНомерПервойКолонки-1).Value = СокрЛП(ЗначениеЯчейки);
    КонецЦикла;
    КонецЕсли;    
    КонецЦикла;
    
    
  2. Darlock
    Offline

    Darlock

    Регистрация:
    21 янв 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Попробуй это сделать не перебором всего справочника, а запросом. Только в полях запроса выбирай не "Реквизит.Ссылка", а "ИмяСпрСостав.Ссылка". Т.е. обращайся к ссылке на элемент из состава табличной части.

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