Имя: Пароль:
1C
 
Запись данных списка значений: странное поведение клиент-сервер
0 formista2000
 
06.11.25
12:18
Привет!
Есть реквизит формы типа список значений. Содержит структуры.
Есть процедура ПередЗаписьюНаСервере, где происходит запись содержимого этого списка в ТЧ документа.
На клиенте работа со списком проходит нормально, но на сервер список структур передаётся за исключением последнего изменения в какой-то его структуре.
Если после работы со списком на клиенте вставить что-нибудь вроде
МойСписок.Добавить("");
МойСписок.Удалить(МойСписок.Количество() - 1);
То всё в порядке.
Такое впечатление, что список где-то "подвисает".
Это фича или бага?
Есть какой-нибудь стандартный способ освежить его на сервере?
1 Garykom
 
гуру
06.11.25
12:21
РеквизитФормыВЗначение не помогает?
2 formista2000
 
06.11.25
12:24
(1) Не помогает. ((
3 СвинТуз
 
06.11.25
14:46
Интересно.
На клиенте работаем в реквизите.
Идем на сервер и записываем.
Не сложно?
4 Ботаник Гарден Меран
 
06.11.25
16:55
Редкая фича. Было такое, но в текущем коде уже не нашел.
5 formista2000
 
10.11.25
16:26
Ап. Вопрос актуален. ((
ЗЫ: С обновлением платформы до 8.3.27.1786 и костыль из (0) перестал работать. ((
6 arsik
 
гуру
10.11.25
16:34
(5) А почему именно список значений используется? Наследие 77.
Может проще структуру или массив или соответствие?
7 formista2000
 
10.11.25
16:42
(6) Массив не работает. Если назначить тип реквизита произвольный и в коде задать ему значение типа массив будет ошибка. С соответствием та же фигня.
Нет, не наследие 7.7. Просто всё очень динамическое и клиент-серверное.
Если не получится - буду на таблицу значений переписывать.
8 arsik
 
гуру
10.11.25
16:43
(7) У тебя этот реквизит на форму вынесен?
9 formista2000
 
10.11.25
16:46
(8) Нет. Но и с вынесенным на форму то же самое, я пробовал. Правда, с Видимость = Ложь.
10 arsik
 
гуру
10.11.25
16:48
(9) Структура нормально работает
11 formista2000
 
10.11.25
16:55
(10) Просто структура? У меня массив структур в списке значений.
+ ну то есть список структур.
12 arsik
 
гуру
10.11.25
16:57
(11) Ну можно и ФиксированныйМассив.
Только перед изменением нужно будет каждый раз
Массив = новый Массив(Реквизит);
Массив.Добавить(Значение);
Реквизит = новый ФиксированныйМассив(Массив);

А можно ключем структуры сделать "Строка"+НомерСтроки
Но вот выборка из структуры не факт что будет в том порядке котором добавляли. Короче там рандом.

Ну или вариант попробовать ТаблицуЗначений вместо СпискаЗначений
13 formista2000
 
10.11.25
17:15
(12) Да, придётся, видимо, с таблицей значений заморочиться. Хреново, что на клиенте с ней не поработаешь, и всякие серверные вызовы сильно скажутся на производительности. ((
14 arsik
 
гуру
10.11.25
18:58
Как это не поработаешь то? Что то новое.
15 formista2000
 
11.11.25
09:56
Всем спасибо, всё получилось.
На сервер надо передавать не список с индексом элемента, не элемент списка, а значение элемента. Иначе по выходу из серверной процедуры не видит ПОСЛЕДНЕЕ изменённое значение. Зато видит ПРЕДПОСЛЕДНЕЕ. Сука.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн