|
ЗаполнитьЗначенияСвойств не работает с соотвествиями? |
☑ |
0
Chameleon1980
18.06.24
✎
10:18
|
Есть соответствие
получаю из него новое:
НовыеЗначенияФормы = ОбщегоНазначения.СкопироватьРекурсивно(СтарыеЗначенияФормы);
хочу заполнить стандартным методом:
ЗаполнитьЗначенияСвойств(НовыеЗначенияФормы, ЭтаФорма);
не работает.
ключи совпадают (правда, видимо из-за метода СкопироватьРекурсивно, в другом порядке)
В форме по ключам существуют реквизиты с именами, как ключи в соответствии.
вижу, что после ЗаполнитьЗначенияСвойств - новые значения не заполняются.
|
|
1
Ненавижу 1С
гуру
18.06.24
✎
10:20
|
(0) с соответствием не работает, потому что заполняются не по ключам, а одноименные свойства. А у соответствия их нельзя расширить. Порядок ключей в соответствии это вообще что?
|
|
2
Chameleon1980
18.06.24
✎
10:22
|
(1) вообще не представляю про порядок ключей в соответствии, наверное, порядок их добавления.
Визуально в отладке наоборот расположены. понятно, что, вероятно рекурсия шла создавать с конца, вот и результат.
|
|
3
Chameleon1980
18.06.24
✎
10:22
|
(1) понял - спасибо. Напишем свое для простого соответствия.
|
|
4
Ненавижу 1С
гуру
18.06.24
✎
10:31
|
(2) лучше думать, что у соответствия нет порядка ключей
|
|
5
Chameleon1980
18.06.24
✎
10:34
|
(4) я все понимаю. Понимаю, что такое соответствие. Понимаю, что нет порядка. Что ты докопался? визуально то наоборот получилось после копирования. Значит отладчик отображает их в порядке добавления ИМХО. Вопрос закрыт. И не нужно умничать, наверное.
|
|
6
vde69
18.06.24
✎
10:39
|
В соответствии в ключе может быть число или ссылка. А в получателем ключ может быть числом?
|
|
7
lEvGl
гуру
18.06.24
✎
10:42
|
(0) для структуры работает, видимо из за этого (6)
|
|
8
mikecool
18.06.24
✎
10:44
|
(2) не в рекурсии дело, мне показалось - похоже на стек лифо соответствие при добавлении элементов
|
|
9
Chameleon1980
18.06.24
✎
11:17
|
(6) 1. Это я понимаю (в этом и одно из отличий структуры и соотвествия)
2. типы 100% одинаковые, в моем случае - ответ да.
|
|
10
Chameleon1980
18.06.24
✎
11:19
|
(9) + теоретически. ответ - нет для (6) т.к. в текущей задаче я работаю с реквизитами формы. По-этому произвольных ключей быть не может. Намек понял - можно переехать на структуру. Спасибо. Но оставил пока так (написал свое заполнение с доп. проверкой, нужной только мне)
|
|
11
Ненавижу 1С
гуру
18.06.24
✎
11:39
|
легкое преобразование, если ключи "хорошие":
Функция СоответствиеВСтруктуру(Соответствие)
Результат = Новый Структура;
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Результат,Соответствие,Истина);
Возврат Результат;
КонецФункции
|
|
12
Chameleon1980
18.06.24
✎
12:05
|
(11) спасибо большое. Но соответствие в соответствие. Посмотрел соответствующие конструкторы или методы не нашел из структуры в соответствие.
|
|
13
Chameleon1980
18.06.24
✎
12:06
|
+(12) уже уехал далеко к другой части задачи :)
|
|
14
DrZombi
гуру
18.06.24
✎
12:32
|
(0) Вот и ладушки :)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший