Имя: Пароль:
1C
1C 7.7
v7: Количество использований номенклатуры
0 beaver1971
 
26.05.15
08:38
Есть список следующего вида:
Документ.ВедомостьРасходаГорючего.Номенклатура
Документ.ВыпускПродукции.Товар
Документ.ОказаниеУслуг.Услуга
Документ.ПутевойЛистТрактора.Горючее
всего 35 строк.
Необходимо построить таблицу, где для каждого наименования из списка номенклатуры будет подсчитано, в скольких документах оно использовано.
Понятно, что в цикле проходим по справочнику номенклатуры, для каждого значения в цикле проходим по списку документов. Если реквизит в шапке документа, то получаем значение и радуемся, если в табличной части, то перебираем таблицу. Вот только как определить - в шапке или в табличной части?
1 ДенисЧ
 
26.05.15
08:39
А метаданные на что?
2 aka AMIGO
 
26.05.15
08:47
Функция глЕстьРеквизитШапки(ИмяРеквизита, ВидДокумента) Экспорт    
    
    
    Если ПустоеЗначение(ИмяРеквизита) = 1 Тогда
        Возврат 0;
    
    ИначеЕсли Метаданные.ОбщийРеквизитДокумента(ИмяРеквизита).Выбран() = 1 Тогда
        Возврат 1;
        
    ИначеЕсли ПустоеЗначение(ВидДокумента) = 1 Тогда
        Возврат 0;
    
    ИначеЕсли Метаданные.Документ(ВидДокумента).РеквизитШапки(ИмяРеквизита).Выбран() = 1 Тогда
        Возврат 1;
        
    Иначе
        Возврат 0;
    КонецЕсли;
    
КонецФункции //глЕстьРеквизитШапки()
3 beaver1971
 
26.05.15
08:50
(2) хм.... про Выбран() как-то даже не думал.... ))))
Спасибки...