Имя: Пароль:
1C
1C 7.7
v7: Создание нового документа
,
0 kupec
 
09.09.20
19:21
Доброго времени суток. Есть ли возможность каким либо образом открыть форму нового документа и проставить туда реквизиты, не используя процедуру ВводНаОсновании().

Т.е. возможно ли такое сделать из внешней обработки, не правя модуль формы документа в конфигурации? Вариант создать программно документ, записать его в базу и открыть форму не подходит. Нужно именно без сохранения документа.
1 НоваяВолна
 
09.09.20
19:29
(0) Зачем нужен документ "без сохранения", может не проведенный?
2 МихаилМ
 
09.09.20
19:29
можно.в поиск по форуму. обсуждалось много раз.
3 kupec
 
09.09.20
19:31
(2) может есть ссылки?
4 Ёпрст
 
09.09.20
19:33
(0) Можно. Разрешаю.
5 Ёпрст
 
09.09.20
19:34
Открыть форму и через контекст открытой формы заполни свой документ
6 kupec
 
09.09.20
19:34
(5) не совсем понимаю, как получить контекст открытой формы?
7 kupec
 
09.09.20
19:40
НоваяФорма="";
Если ОткрытьФорму(Документ.МойДокумент,НоваяФорма,)=0 Тогда
Возврат;
КонецЕсли;

НоваяФорма.РеквизитШапки1=1;
НоваяФорма.РеквизитШапки2=2;
НоваяФорма.РеквизитШапки3=3;

Я правильно понимаю?
8 andrewalexk
 
09.09.20
19:40
(6) :) кнопка поиск внизу
9 Ёпрст
 
09.09.20
19:42
(7) да
10 Duke1C
 
09.09.20
19:45
+ (9) Только в конце своих "махинаций" не забудь добавить:
НоваяФорма.Форма.Обновить();
11 kupec
 
09.09.20
19:48
это я уже понял, сделал, вроде работает, а как можно вызвать процедуру например в форме открытого документа, которая вызывается при смене подразделения? Если я программно меняю реквизит, форма то не перерисовывается при его изменении. Может как то формексом есть варианты вызвать процедуры нового открытого документа?
12 kupec
 
09.09.20
19:55
Форма.МояПроцедура() - так правильно будет?
13 Ёпрст
 
09.09.20
20:44
(11) ВыполнитьПроцедуру у формекса
14 Cthulhu
 
10.09.20
03:16
(11): штатно - сложно, но можно. если процедура без параметров (или со значениями по умолчанию. которые тебя устраивают).
например, вот этот код внешней обработки (процедура Выполнить) - открывает форму нового элемента справочника ТМЦ, устанавливает нужное Наименование, после чего инициирует вызов процедуры модуля формы открытого элемента справочника через 1 секунду после открытия (на самом деле - сразу)...:
Перем КонтекстОткрыойФормы;
Процедура ОключитьАвтоВыполнениеПроцедурыПоТаймАуту()
    КонтекстОткрыойФормы.Форма.ОбработкаОжидания("",0);
    Форма.ОбработкаОжидания("",0); КонтекстОткрыойФормы.Форма.Обновить();
КонецПроцедуры //ОключитьАвтоВыполнениеПроцедурыПоТаймАуту
Процедура Выполнить()
    ОткрытьФорму("Элемент.ТМЦ",КонтекстОткрыойФормы);
    КонтекстОткрыойФормы.Наименование = "Тестирование вызова процедуры формы через ее контекст!..";
    КонтекстОткрыойФормы.Форма.ОбработкаОжидания("СформироватьШтрихКод",1);
    Форма.ОбработкаОжидания("ОключитьАвтоВыполнениеПроцедурыПоТаймАуту",2);
    КонтекстОткрыойФормы.Форма.Обновить();
КонецПроцедуры //Выполнить
15 Cthulhu
 
10.09.20
03:18
(14) "после чего инициирует вызов процедуры СформироватьШтрихКод() модуля формы открытого элемента справочника"
AdBlock убивает бесплатный контент. 1Сергей