Имя: Пароль:
1C
1C 7.7
v7: Вопрос по FormEx
0 e2v
 
01.08.12
10:05
Не пойму как сохранить изменения в форме, сделанные процедурой.
При закрытии документа изменения пропадают.
Пишу Документ.Записать - пишет документ заблокирован.
Как надо ,посоветуйте 8))))
************************************************
ОткрытьФорму(Док.ТекущийДокумент,Конт);
Если Сервис.АктивныйКонтекст(Конт)=1 Тогда
  Сервис.ВыполнитьПроцедуру(Конт,...);
...
  Сервис.ВыполнитьПроцедуру(Конт,"ПриЗаписи");
  Конт.Форма.Закрыть();
КонецЕсли;
**************************************************
2 ЧеловекДуши
 
01.08.12
10:09
Просто, пишешь: Записать();
При этом в форме редактируемого документа :)

Ты лучше скажи, мил друг, что ты хочешь, а мы порекомендуем, как лучше сделать ;)
3 ЧеловекДуши
 
01.08.12
10:09
+ Если пишет, "документ заблокирован", программа не врет ;)
4 e2v
 
01.08.12
10:19
Смысл такой. Есть Документ. В форме документа есть процедура заполнения формы. Для этого открываю форму и выполняю процедуру с контекстом. Запонение происходит, все отрабатывается. Но вот закрыть форму с записью изменений не получается. Закрывается , но не записывается.
Общая идея - перезаполнить форму существующего документа не интерактивно.
5 Ёпрст
 
01.08.12
11:03
(4) перенести процедуру заполнения в обработку (или вынести её в глоб. модуль) + НЕ открывать документ - это самое простое и правильное решение.
6 e2v
 
01.08.12
11:50
Что лучше так понимаю. Но процедура вызывает еще до фига чего , и все переписывать чего-то не охота. А такой способ не катит ?
Хотелось бы понять, как открывается-закрывается программно документ.
7 Ёпрст
 
01.08.12
11:55
(6) "до фига чего" .. что например ?
Пересчет в табличной части ?
Если типовая, то там всё в глобальник запаковано.
Достаточно всё тоже сделать в своей поделке..
8 ЧеловекДуши
 
01.08.12
11:55
(6)Не как, ты его не программно открыл, а физически.
Т.е. использовал функцию "ОткрытьФорму()"
Так вот. Что тебе мешает После закрытия формы обработки, где ты редактируешь документ, дать команду на запись.
...
Ну и конечно, все дела делать в Модальном окне.
...
Или послушать (5) и сделать, как надо.

Так же можно по простому, допилить диалог документа и все что ты там навоял в обработке, перенести в документ :)
9 Ёпрст
 
01.08.12
11:57
типа

Цикл ...
  Док.Цена = <значение>;
  глПересчетТаблЧасти(Док,"Цена");
  ...........
КонецЦикла;
глПересчетСуммыВзаиморасчетов(Док);
10 e2v
 
01.08.12
12:51
(7) Конф. Бухгалтерия. Документ Счетфактура. Процедура ЗаполнитьНаОсновании. Там чего то много чего. А доделывать стандартную конфу нельзя (просто на обслуживании 100 фирм) и начальствоне приемлет ничего не стандартного. только внешние обработки.
(8) Так форма закрывается и изменения пропадают.
11 Ёпрст
 
01.08.12
12:56
(10) вот , всё штатно с открытием формы:

http://infostart.ru/public/16514/
12 e2v
 
01.08.12
14:11
Большое человеческое спасибо. 8)))
13 Масянька
 
01.08.12
14:15
Ёпрст4 - респект!
14 Ёпрст
 
01.08.12
14:22
только один хрен.. в бухии придётся поправить документ, на предмет заремить/заменить предупреждения в коде на сообщить хотя бы..
Слишком много их там понатыкано в вводНаОсновании
15 Ёпрст
 
01.08.12
14:22
+14 желательно..
ибо будет спотыкаться на них
16 e2v
 
01.08.12
14:39
(14) точно-точно. Я поэтому и часть перенес во внешнюю.