Имя: Пароль:
1C
1С v8
Пройти в цикле характеристики
,
0 laby1
 
16.02.16
15:54
ДобавитьРезультатПробы(ПланыВидовХарактеристик.ПоказателиКачества.Fe, Fe);
ДобавитьРезультатПробы(ПланыВидовХарактеристик.ПоказателиКачества.SiO2, SiO2);
ДобавитьРезультатПробы(ПланыВидовХарактеристик.ПоказателиКачества.W, W);
ДобавитьРезультатПробы(ПланыВидовХарактеристик.ПоказателиКачества.Сорт, Сорт);
        
Попытался пройтись по характеристикам в цикле ...

// Запишем показатели в регистры
    Для каждого Показатель Из ПланыВидовХарактеристик.ПоказателиКачества Цикл
            ДобавитьРезультатПробы(Показатель, Fe);
    КонецЦикла;
        
Выдает ошибку "Итератор для значения не определен"
Получается что моё "ПланыВидовХарактеристик.ПоказателиКачества" не коллекция? Может быть как-то из нее коллекцию сделать?
1 torgm
 
16.02.16
15:58
СП. Продам недорого.


ПВХ = ПланыВидовХарактеристик[Имя];
    Попытка
        Выборка = ПВХ.ВыбратьИерархически(,,"Наименование Убыв");
    Исключение
        Выборка = ПВХ.Выбрать(,,"Наименование Убыв");
    КонецПопытки;
    Пока Выборка.Следующий()  Цикл
        Объект = Выборка.ПолучитьОбъект();
        Сообщить(?(Объект.ЭтоГруппа,"Группа: "
                + Объект.Наименование+"; ","")
                + ?(Объект.Предопределенный," Предопределенный! ","")
                + Объект.Наименование);
    КонецЦикла;
2 laby1
 
16.02.16
16:03
хотя глупо в цикле - как я буду разные поля документа присваивать
3 laby1
 
16.02.16
16:10
(1) Спасибо, но в общем, овчинка выделки не стоит
4 Лефмихалыч
 
16.02.16
16:12
конечно глупо в цикле. Надо запросом
5 sash-ml
 
16.02.16
16:14
можно по имени, в цикле обойти реквизиты форму, или де там у тебя значение, и что-то  в этом роде

ДобавитьРезультатПробы(ПланыВидовХарактеристик.ПоказателиКачества[Имя] = Элементы[Имя])
6 laby1
 
16.02.16
16:21
(5) Какая форма в обработке проведения
7 laby1
 
17.02.16
08:51
(1) Что-то не совсем получается:

Процедура ОбработкаПроведения(Отказ, Режим)

ПВХ=ПланыВидовХарактеристик["ПоказателиКачества"];
        Значения = Новый Массив;
        Значения.Добавить(Fe);
        Значения.Добавить(SiO2);
        Значения.Добавить(W);
        Значения.Добавить(Сорт);
        Показатели=ПВХ.Выбрать(,,"Код Возр");
        
        Пока Показатели.Следующий() Цикл
            Показатель=Показатели.ПолучитьОбъект();
            ДобавитьРезультатПробы(Показатель, Значения[Число(Показатель.Код)-1]);
        КонецЦикла;
...
КонецПроцедуры

Процедура ДобавитьРезультатПробы(Показатель, Значение)

...
Движение.Показатель = Показатель;
Движение.Вес = Значение*Вес/100 - ТекущееСодержание(Показатель);
...
КонецПроцедуры

Движение.Показатель имеет тип ПланВидовХарактеристикСсылка.ПоказателиКачества

а Показатель
ПланВидовХарактеристикОбъект.ПоказателиКачества

и затем

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

Наверное из-за этого ошибка при отборе остатка
8 laby1
 
17.02.16
08:56
У меня после Показатели.Следующий() получается Показатели типа ПланВидовХарактеристикВыборка

тут я получаю Показатель=Показатели.ПолучитьОбъект();
ПланВидовХарактеристикСсылка

А мне похоже как-то надо получить ПланВидовХарактеристикСсылка
9 laby1
 
17.02.16
08:57
(8) * тут я получаю Показатель=Показатели.ПолучитьОбъект();
ПланВидовХарактеристикОбъект
10 laby1
 
17.02.16
08:58
Наверное просто надо

Показатель=Показатели.Ссылка
11 laby1
 
17.02.16
09:00
Да, всё, спасибо, разобрался, прошу прощения за беспокойство
12 laby1
 
17.02.16
09:02
А чтоб массив не городить, наверное лучше сделать ТЧ в документе