Имя: Пароль:
1C
1С v8
Программный запуск процедуры модуля управляемой формы контрагента
, ,
0 servicenn
 
18.10.17
08:17
День добрый.  Возможно ли запустить процедуру управляемой формы (форма элемента) справочника контрагенты из внешней обработки? Удалось запустить процедуру модуля объекта(справочника контрагенты). Или как вариант запустить процедуру модуля формы из модуля объекта
1 VladZ
 
18.10.17
08:18
(0) Зачем?
2 Филиал-msk
 
18.10.17
08:19
Да
3 servicenn
 
18.10.17
08:20
(1) Нужно пройтись по выборке контрагентов и заполнить адреса по егрюлу. В контрагенте есть кнопка, но это только для одного контрагента. Поэтому как вариант внешней обработкой
4 servicenn
 
18.10.17
08:22
(2) есть пример. Мне нужно запустиь процедуру Процедура

ЗаполнитьРеквизитыПоИНН(Команда)  экспорт

//Экспорт соответствено уже я добавил
5 servicenn
 
18.10.17
08:22
(2) ?
6 Рэйв
 
18.10.17
08:24
(0)Скопируй себе в обработку процедуру.Тебе будет проще чем пытаться выполнить ее через форму
7 Филиал-msk
 
18.10.17
08:25
(5) Тогда нет
8 servicenn
 
18.10.17
08:26
(6) Сначала так и начал но там одна процедура тянет другую и все в модуле формы, все их надо копировать и корректировать. А вот если бы удалось запустить сразу самую первую то вся цепочка сработала бы наверно так было бы проще
9 Рэйв
 
18.10.17
08:27
(8)Тогда самая первая должна быть экспортной.
Получай форму у объекта контрагента и вызывай ее через точку если тебе так уж надо.
10 Рэйв
 
18.10.17
08:29
но все таки скопировать себе- правильнее.
11 Филиал-msk
 
18.10.17
08:31
(8) Как-то это всё по-украински, дядь Андрей. Вместо того, чтобы разобраться и сделать правильно, начать искать варианты обойти, схитрить, наступить на тысячи граблей.. и все равно вернуться к тому, что надо делать правильно.
12 FIXXXL
 
18.10.17
08:31
(8) и использует поди жирный Объект
13 servicenn
 
18.10.17
08:32
(9) Наверно с код неправильно сделал по получению формы, с управляемыми формами особо много не работал

ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("Ключ", КонтрагентОбъект);
    ФормаКонтрагента = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", ПараметрыФормы);

-ошибки не выдаёт но и форму не определяет-значение:неопределено

Буду пробовать и 1-й вариант копировать себе
14 Филиал-msk
 
18.10.17
08:33
(13) Ну, вот оно и начинается...
15 Cyberhawk
 
18.10.17
09:17
"Удалось запустить процедуру модуля объекта(справочника контрагенты)" // Покажи код
16 servicenn
 
18.10.17
09:48
(15) Код не сложный :

КонтрагентСсылка = Объект.Контрагент;
    КонтрагентОб     =  КонтрагентСсылка.ПолучитьОбъект();     
    КонтрагентОб.ЗаполнитьРеквизитыПоИННмодуль();

ЗаполнитьРеквизитыПоИННмодуль - экспортная процедура в модуле объекта(контрагента)
17 Cyberhawk
 
18.10.17
09:51
(16) Спасибо
18 Cyberhawk
 
18.10.17
09:52
А экспортную процедуру модуля формы ты откуда пытаешься вызвать, не с сервера ли?
19 Cyberhawk
 
18.10.17
09:52
(сама-то процедура команды - клиентская походу)
20 servicenn
 
18.10.17
09:58
(18) С сервера
21 Alex87r
 
18.10.17
10:16
(20) На сервере нельзя форму получить, она только на клиенте существует.
Как вариант, сделай на обработке таблицу, в которую выведи всех контрагентов.
Потом на клиенте обходи всех контрагентов в цикле, получай форму и вызывай свою процедуру
22 YFedor
 
18.10.17
10:19
(21) А ничего, что ПриCозданииНаСервере событие формы и оно отрабатывает на сервере?
23 Alex87r
 
18.10.17
10:20
(22) я имел ввиду на сервере нельзя открыть форму)
24 servicenn
 
18.10.17
10:24
(22) Да, на клиенте форму получает
25 Cyberhawk
 
18.10.17
10:27
(20) И на что ты надеешься?
26 servicenn
 
18.10.17
10:30
(9)(18   Cyberhawk) спасибовопрос решён, по поводу (22) проверю
27 servicenn
 
18.10.17
10:31
(20) с клиента форму получает
28 servicenn
 
18.10.17
10:32
то есть (21)
29 Alex87r
 
18.10.17
10:40
(28) ФормаКонтрагента = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", ПараметрыФормы);
ФормаКонтрагента.ИмяЭкспортнойПроцедуры
30 servicenn
 
18.10.17
10:51
(29) так и сделал , спасибо
31 FIXXXL
 
18.10.17
12:38
(13) (16)  Ключ - ССЫЛКА, а не Объект