Имя: Пароль:
1C
1С v8
как загрузить колонку в таблицу значений
0 askharlov
 
20.08.11
15:20
Вот фрагмент кода:
   тз = Новый ТаблицаЗначений;
   тз.Колонки.Добавить("Область");
   тз.ЗагрузитьКолонку(ПолучитьАктуальныеОбласти(), "Область");

Смотрю в отладчике:
ПолучитьАктуальныеОбласти() - возвращает массив из 2-х элементов
В тз есть колонка "Область"
А после отработки "ЗагрузитьКолонку" тз остается пустой.
Что не так? Как работает метод "Загрузить колонку"?
1 askharlov
 
20.08.11
15:49
Если быть более точным, то представленный выше код это уже эксперименты. Оригинальный текст:
Области.ЗагрузитьКолонку(ПолучитьАктуальныеОбласти(), "Область");
ПолучитьАктуальныеОбласти() - СрезПоследних регистра сведений, он возвращает массив.
Области - ТП формы. после отработки "ЗагрузитьКолонку" в "Области не появляется ни строк, ни значений.

Попробовал сымитировать метод "ЗагрузитьКолонку" ручками:

ЗагрузитьКолонку(Области, "Область", ПолучитьАктуальныеОбласти());

Процедура ЗагрузитьКолонку(тз, ИмяКолонки, МассивЗначений, Очищать =  Ложь)
   
   Если Очищать Тогда
       тз.Очистить();
   КонецЕсли;
   
   Для каждого Элемент Из МассивЗначений Цикл
       НоваяСтрока = тз.Добавить();
       НоваяСтрока[ИмяКолонки] = Элемент;
   КонецЦикла;
   
КонецПроцедуры    //ЗагрузитьКолонку

РАБОТАЕТ.

Не могу понять куда копать, почему стандартный метод "ЗагрузитьКолонку" не отрабатывает, а ручками загрузить получается???
ХЕЛП МИ ПЛИЗ
2 vicof
 
20.08.11
15:55
вообще срезпоследних возвращает таблицу значений
3 Администратор 1С
 
20.08.11
15:57
Надо туда строки сначала добавить
4 askharlov
 
20.08.11
15:59
(2) согласен. не дописал, что в ПолучитьАктуальныеОбласти() указал ВыгрузитьКолонку. Так сто там все ОК - возвращает массив
(3) - сейчас попробую
5 askharlov
 
20.08.11
16:04
(3) - да, большое спасибо, работает. Нигде ж блин в синтаксис-помощнике ни слова об этом.

Хотя в моем случае, когда надо грузить таким образом пяток пустых таблиц, пожалуй более оптимальным будет код из (1), чтоб не повторять код по добавлению строк в каждую тз. (3) Еще раз спасибо