Регистрация Правила Главная форума Поиск |
0
- 25.12.2019 - 13:33
|
Добрый день ! Знатокам формекс и прочим :). что то я уперся в стену :( 1С 7.7. конф на базе комплексной. документ реализация. к нему подключена внешняя печатная форма. открывают эту печ форму из документа. в ней хотят что то сделать в этом документе ! для этого надо форму документа закрыть из этой внешней печатной формы и потом в документ чтото записать . конфу изменять нельзя... если формекс вот так : РасшФ=создатьобъект("Расширениеформы"); спис=сервис.СписокВсехОткрытыхОкон(); док=создатьобъект("Документ."+выбдок.вид()); если док.найтидокумент(выбдок)=1 тогда для ит=1 по спис.размерсписка() цикл конт=""; окно=спис.получитьзначение(ит,конт); если найти(конт,"Реализация ТМЦ")>0 тогда сообщить("Закрываем форму документа"); РасшФ.УстановитьФорму(Окно.форма); Сообщить(РасшФ.ТипОбъекта()); РасшФ.закрыть(); сообщить("форму документа закрыли"); конецесли; конеццикла; так вот сообщить("форму документа закрыли"); - не сообщает ! и дальше программа не выполняется...и внешняя форма висит открытой, а форма реализации закрыта. // потом идут действия с док - и потом док.записать() а если вот так : док=создатьобъект("Документ."+выбдок.вид()); если док.найтидокумент(выбдок)=1 тогда для ит=1 по спис.размерсписка() цикл конт=""; окно=спис.получитьзначение(ит,конт); если найти(конт,"Реализация ТМЦ")>0 тогда сообщить("Закрываем форму документа"); попытка окно.форма.закрыть(0); исключение сообщить(описаниеошибки()); конецпопытки; конецесли; конеццикла; то форма реализации исчезает из фиду ( вроде как закрывается ) то потом когда доходит дело до док.записать() то 1с ругается : Объект заблокирован: Реализация А-000 | | |
1
- 25.12.2019 - 15:31
|
ну, когда ты штатно подцепил DGA у тебя через параметры пришел ГрупповойКонтекст. . Попробуй так Докум = Параметры.Получить("Контекст"); ..этот оператор у тебя штатно должен быть, это ГрупповойКонтекст открытой формы Докум.Форма.Закрыть(); . если, конечно, ты умный - то обеспечишь что вызов ВПФ будет выполнен для НЕМОДИФИЦИРОВАННОЙ формы документа, иначе у тебя при закрытии вылезут вопросы от платформы... . можно модифицировать типа Докум.Записать(); //тут отработает ПриЗаписи(), хз что там у тебя понатыкано Докум.Форма.Закрыть(); . по крайней мере я такую блямбу как тебе надо делал (закрывал форму документа, обрабатывал хитрым образом документ, а при закрытии ВПФ можно снова открыть документ) | | |
2
- 25.12.2019 - 15:32
|
0-СпецХ >- при чем тут формекс? Разве не проще использовать глобальную переменную, типа глКонтПередать, чтобы через неё передать таблицу значений, или что нужно ещё, в документ и в документе из полученной таблицы дописать то, что было отработано в вызванной внешней форме? Естественно, глКонтПередать сначала очистить, а потом использовать заполнением во внешней выбранной форме. В самом документе сначала удостовериться, что глКонтПередать получило нужный тип значения для использования и после использования, скажем, в части модуля, приЗаписи, приЗакрытии, закрыть форму и самого документа с полученными значениями из глКонтПередать. - Если я правильно понял ваш вопрос. | | |
3
- 25.12.2019 - 15:33
|
"в ней хотят что то сделать в этом документе!" можно обойтись малой кровью если устроит по процессам - можно документ не закрывать, а т.к. у тебя доступен контекст формы - поменять прямо в форме, типа Докум.Контрагент = чтото; Докум.ПриВыбореКонтрагента(); ..точно не помню, но должно сработать | | |
4
- 25.12.2019 - 15:40
| Цитата:
вообще в типовой сделано действия - Изменить спецификацию - и вызывается обработка которая напрямую пишет в форму открытую дока . пока сделал по ее принципу. а отлавливаю , открыт ли док интерактивно,с помощью формекс... всем спасибо. | | |
5
- 25.12.2019 - 20:03
| я бы создал глобальную переменную контекста этого документа. Тогда и писать в документ просто и закрывать. | | |
6
- 25.12.2019 - 20:35
| в впф в параметре "контекст" передается или текущий документ или форма документа. всё. | | |
7
- 25.12.2019 - 20:38
| (6)это мы все знаем, во всех типовых передается. может ему понадобится из других форм что-то менять в документе. Короче, контекст - наше все ) | |
| Интернет-форум Краснодарского края и Краснодара |