Имя: Пароль:
1C
1С v8
Как заполнить список значений значениями другого списка без перебора?
0 Chai Nic
 
06.06.13
09:03
Нужно заполнить результирующий список значениями и их представлениями из исходного списка.

Использование методов обмена через промежуточный Массив ВыгрузитьЗначения/ЗагрузитьЗначения выгружает/загружает только значения, без представлений. Метод Скопировать не подходит - он создает новую переменную типа СписокЗначений, а надо заполнить существующую (это реквизит элемента формы).

Существует ли способ заполнения списка без перебора?
1 1Сергей
 
06.06.13
09:06
не понял, почему не подходит скопировать. Создаст новый СЗ с тем же именем. В чём проблемы?
2 MSII
 
06.06.13
09:09
(0) Представление у элемента списка заполняется при работе методов Вставить, Добавить и Скопировать, так что ответ на свой вопрос ты и сам знаешь.
3 Chai Nic
 
06.06.13
09:12
(1) Проблема в том, что результирующий список - не переменная, а стандартный реквизит элемента формы (список выбора).
4 1Сергей
 
06.06.13
09:13
(3) и? ругается?
5 Chai Nic
 
06.06.13
09:14
Да, ругается что реквизит только для чтения
6 Chai Nic
 
06.06.13
09:19
В общем, похоже, это недоработка 1с - отсутствие в восьмерке полноценной выгрузки списка значений с представлениями. В семерке такая возможность была. Придется перебором заполнять..
7 Chai Nic
 
07.06.13
09:15
Блин, а ведь с таблицей значений та же проблема.. то, что в семерке делалось элегантно одной командой на уровне платформы - теперь приходится крутить в цикле. Я о возможности добавления в одну таблицу значений строк из второй. В семерке это было можно, теперь в восьмерке - фигвам, жарь процессор циклом на встроенном языке...

Ну и убожество эта ваша v8! :-\

PS Речь идет о ситуациях, когда объективно необходимо объединять таблицы, например в рекурсивных алгоритмах по сбору данных из связанной структуры.
8 Галахад
 
гуру
07.06.13
09:19
(7) Гм. А как это в семерке делается?
9 Stormicon
 
07.06.13
09:22
(7) а как же:
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(Таб1,Таб2);
10 Chai Nic
 
07.06.13
09:25
(8) Метод Заполнить()
(9) Это же просто обертка в типовых для заполнения перебором в цикле.
11 Галахад
 
гуру
07.06.13
09:25
(10) Можно кусок из СП, а то у меня 7-ки нету.
12 Stormicon
 
07.06.13
09:27
(10) Согласен, что обертка, но на уровне платформы и в 7.7 не было и в 8.2 нет, насколько помню, в 8.3 тоже отсутствует
13 Chai Nic
 
07.06.13
09:33
Z ошибся с v7, это только в объекте 1с++ ИндексированнаяТаблица было возможно. Жаль конечно..
14 hhhh
 
07.06.13
09:51
(13) всё равно по -любому перебор в пять раз быстрее сработает, чем все эти приблуды. Для программера только это лучше, меньше кода писать, ну так можно сделать просто процедурку как в (9).
15 Chai Nic
 
07.06.13
10:10
(14) По любому встроенные методы должны быть быстрее, так как выполняются на более низком уровне.
Основная теорема систематики: Новые системы плодят новые проблемы.