Имя: Пароль:
1C
1С v8
Как установить значение по в ТЗ по названию колонки
0 Melcor
 
11.11.13
09:22
Доброго утра. Подскажите пжл, как можно добавить новое значение в строку ТЗ но по имени колонки.
Я создаю ТЗ
    ТЗфул = Новый ТаблицаЗначений;
    ТЗфул.Колонки.Добавить("НомерСтроки",    новый ОписаниеТипов("Число"));
    ТЗфул.Колонки.Добавить("Номенклатура",   новый ОписаниеТипов("СправочникСсылка.Номенклатура"),,2);
    Для Каждого СтрСписка из СписокМагазинов цикл
        ТЗфул.Колонки.Добавить(строка(СтрСписка.Значение.Код),  новый ОписаниеТипов("Число"), строка(СтрСписка));
        ТЗфул.Колонки.Добавить("П"+СтрСписка.Значение.Код,        новый ОписаниеТипов("Число"), "Продано "+строка(СтрСписка));
        ТЗфул.Колонки.Добавить("О"+СтрСписка.Значение.Код,        новый ОписаниеТипов("Число"), "Остаток "+строка(СтрСписка));
    КонецЦикла;

и теперь надо в цикле другой ТЗ находить колонка с кодом склада и добавлять в неё значение.
1 Wobland
 
11.11.13
09:23
ТЗ[КакаяТоСтрока]
2 Melcor
 
11.11.13
09:25
(1) Не понял. у меня есть ТЗ в которой колонки номенклатура,  склад и количество. И теперь надо перенести эти данные в ТЗ где есть колонки Номенклатура и количество, колонки количество - это склады
3 Wobland
 
11.11.13
09:27
ТЗ[НазваниеКолонки].Значение=НужноеЗначение;
4 Melcor
 
11.11.13
09:27
(3) ясно, спасибо
5 Melcor
 
11.11.13
09:53
(3) Не получается так. Ошибку выдает
{Форма.Форма.Форма(277)}: Значение не является значением объектного типа (Значение)
            НоваяСтрокаТЗфул[ИмяКоллонки].Значение = Стр.МинОстаток;

    НомСтр = 0;
    Для каждого Стр из ТЗобщ цикл
        СтарНом = "";
        НовНом = Стр.Номенклатура;
        Если НовНом<>СтарНом тогда
            НомСтр = НомСтр+1;
            НоваяСтрокаТЗфул = ТЗфул.Добавить();
            НоваяСтрокаТЗфул.НомерСтроки = НомСтр;
            НоваяСтрокаТЗфул.Номенклатура = Стр.Номенклатура;
            ИмяКоллонки = Стр.Склад.Код;
            ИмяКоллонкиП = "П"+Стр.Склад.Код;
            ИмяКоллонкиО = "О"+Стр.Склад.Код;
            ТЗфул[ИмяКоллонки].
            НоваяСтрокаТЗфул[ИмяКоллонки].Значение = Стр.МинОстаток;
            НоваяСтрокаТЗфул[ИмяКоллонкиП].Значение = Стр.Продажи;
            НоваяСтрокаТЗфул[ИмяКоллонкиО].Значение = Стр.Остаток;
        иначе
        КонецЕсли;
    КонецЦикла;
6 Melcor
 
11.11.13
10:06
Разобрался, правильно вот так
            НомСтр = НомСтр+1;
            НоваяСтрокаТЗфул = ТЗфул.Добавить();
            НоваяСтрокаТЗфул.НомерСтроки = НомСтр;
            НоваяСтрокаТЗфул.Номенклатура = Стр.Номенклатура;
            ИмяКоллонки = Стр.Склад.Код;
            ИмяКоллонкиП = "П"+Стр.Склад.Код;
            ИмяКоллонкиО = "О"+Стр.Склад.Код;
            НоваяСтрокаТЗфул[ИмяКоллонки] = Стр.МинОстаток;
            НоваяСтрокаТЗфул[ИмяКоллонкиП] = Стр.Продажи;
            НоваяСтрокаТЗфул[ИмяКоллонкиО] = Стр.Остаток;