Изменить данные в одной УФ из другой
☑
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) - конфигурацию менять нельзя, иначе было бы все тривиально.
В общем, разобрался - нужно использовать хелпер КопироватьДанныеФормы:
ОбъектФормы = ФормаОкна.Объект;
СделатьЧтоТоНаСервере(ОбъектФормы);
КопироватьДанныеФормы(ОбъектФормы, Форма.Объект);
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс