Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.218.254.122] |
|
Сообщ.
#1
,
|
|
|
Ух щас спрошу...
Нужно создать программно (без участия пользователя) документ, вызвать некоторые его процедуры, записать и провести. Т.е вот в таком фрагменте: Источник=СоздатьОбъект("Документ.ЗаказПоставщику"); Источник.Новый(); Источник.ВводНаОсновании(ДокОснование); Источник.Провести(); Источник.Записать(); А мне нужно именно вызывать процедуры из созданных объектов. Т. Е просто невидны процедуры другого модуля. Обратиться к ним можно с помощью передачи контекста, НО для этого нужно ВРУЧНУЮ - МЫШКОЙ открыть этот документ. А я этого нехочу!!! Мне это просто никак не нужно!!! |
Сообщ.
#2
,
|
|
|
а у дока ЗаказПоставщику вообще есть процедура ВводНаОсновании?
подозреваю что нет, хотя можт и не в этом дело - попробуй просто взять кусок кода из этой процедуры (если она все же есть) и поставить вместо той строки (ну и подкорректировать его по месту) - ведь надо просто какие-то начальные значения поустанавливать - да? |
Сообщ.
#3
,
|
|
|
Да нет, ето я знаю. Вопрос именно в том - как вызвать процедуру из другого модуля?
|
Сообщ.
#4
,
|
|
|
а, ясно: ВводНаОсновании - это предопределенный метод формы документа, а не документа - т.е. у дока такого метода ессно нету - надо что-то типа:
Док.Форма.ВводНаОсновании() - но неуверен - надо поэкспериментировать... |
Сообщ.
#5
,
|
|
|
Для агрегатных типов данных в 1С ты не можешь вызывать из другого модуля их процедуры. Т.е. например, если у тебя есть в модуле формы документа процедура ааа(), то ты не можешь вызвать Док.ааа() - это не ООП. По крайней мере так было до 17 релиза.
|
Сообщ.
#6
,
|
|
|
Так и есть - нельзя, но уже нашелся один обходной вариант. Кто догадается первым?
|
Сообщ.
#7
,
|
|
|
как я и говорил: "...просто взять кусок кода из этой процедуры..." ???
|
Сообщ.
#8
,
|
|
|
Нет
|
Сообщ.
#9
,
|
|
|
Хм... Непосредственно в программировании под 1С не силен... Но когда-то обходил похожий глюк за счет того, что открывал нужную форму в фоновом режиме, а там уже когда надо к ней обращался, временно передвая ей фокус. Не уверен, правда, что так можно делать и тут.
|
Сообщ.
#10
,
|
|
|
Не, так не катит по той простой причине, что когда форма документа открыта (пусть даже в фоновом режиме) в этот документ запрещена запись. Все оказалось намного проще. Если нужно чтобы запускаемая форма сделала последовательность каких то действий, то можно передать ей в качестве параметра список действий а в процедуре - при открытии поставить отслеживание передачи твоего параметра и обработку его. Это конечно обходной вариант, но как сильно он облегчает жизнь!
|