Имя: Пароль:
1C
1С v8
Изменить данные в одной УФ из другой
0 ovk48
 
06.12.12
10:43
Есть управляемая форма, которая ждет открытия другой управляемой формы (документа), после этого должна передать табличное поле той другой формы на сервер для обработки. Делаю соответственно так:


&НаКлиенте
Процедура СделатьЧтоТоНаКлиенте()
  СделатьЧтоТоНаСервере(ДругаяФорма.Объект)
  ...
КонецПроцедуры

...

&НаСервере
Процедура СделатьЧтоТоНаСервере(СтруктураОбъекта)
  ОбъектНазначения = ДанныеФормыВЗначение(СтруктураОбъекта, Тип("ДокументОбъект.***"));
  ...
ЗначениеВДанныеФормы(ОбъектНазначения, СтруктураОбъекта);
КонецПроцедуры


Получаю сообщение "Нельзя изменять поле, содержащее объект данных формы".

Собственно, вопрос - можно ли как-нибудь изменить объект в открытой форме из другой формы? Если да, то как?
1 ovk48
 
06.12.12
11:03
Ап.
2 Cube
 
06.12.12
11:04
(1) А что ап? Не надо нам твоего решения. Ты нам задачу опиши.
3 ovk48
 
06.12.12
11:05
(2) - см. "собственно вопрос".
4 Mort
 
06.12.12
11:07
Пусть вторая форма сама свою зопу на сервер тащит. А первая просто даёт ей пенделя в том направлении.
5 Cube
 
06.12.12
11:11
(3) Какой сакральный смысл в редактировании ОДНОГО объекта в двух формах ОДНОВРЕМЕННО? Не вижу реальной задачи, где бы это понадобилось.
6 ovk48
 
06.12.12
11:31
(5) - есть конфигурация, в которой нельзя включать режим редактирования, есть документ, который нужно заполнять спец. образом в тот момент, когда ЭтоНовый() = Истина. Обычное явление.
7 Cube
 
06.12.12
11:33
(6) Ничего обычного и задача не описана до сих пор.
8 ovk48
 
06.12.12
11:33
(6) - самое главное - в форме документа недоступна функция "Заполнить" из механизма внешних обработок заполнения объектов.
9 ovk48
 
06.12.12
11:53
Вверх.
10 Cube
 
06.12.12
11:54
(9) Упорный...
11 YHVVH
 
06.12.12
11:56
через экспортную процедуру формы в которой хочешь поменять передай то что хочешь поменять в ней,
12 ovk48
 
06.12.12
12:06
(11) - конфигурацию менять нельзя, иначе было бы все тривиально.

В общем, разобрался - нужно использовать хелпер КопироватьДанныеФормы:


ОбъектФормы = ФормаОкна.Объект;
СделатьЧтоТоНаСервере(ОбъектФормы);
КопироватьДанныеФормы(ОбъектФормы, Форма.Объект);
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс