![]() |
![]() |
![]() |
|
пытаюсь программно воспроизвести интерактивное действие | ☑ | ||
---|---|---|---|---|
0
Alexbttrckr
27.09.22
✎
11:33
|
Бух 3.0
ДокСсылка = ДокПономеру("0000-000282", Дата); Форма = ПолучитьФорму("Документ.ПриходныйКассовыйОрдер.ФормаОбъекта",Новый Структура("Ключ",ДокСсылка)); Форма.Открыть(); Форма.Объект.Контрагент = НовыйКонтр; КонтрагентПриИзмененииСервер(Форма); пытаюсь изменить Контрагента и воспроизвести то, что происходит при интерактивном его изменении на форме используя процедуру модуля формы КонтрагентПриИзмененииСервер(Форма) Экспорт в результате получаю: Процедура или функция с указанным именем не определена (КонтрагентПриИзмененииСервер) <<?>>КонтрагентПриИзмененииСервер(Форма); (Проверка: Тонкий клиент) |
|||
1
Kassern
27.09.22
✎
11:35
|
(0) Не правильно вы пытаетесь. Вы обращаетесь к процедуре в вашем модуле, а этой процедуры у вас нет
|
|||
2
Dmitrii
гуру
27.09.22
✎
11:39
|
(0) Сильно сомневаюсь, что КонтрагентПриИзмененииСервер() является экспортной.
Но даже если она экспортная, обращаться к ней надо было бы через Форма. То есть.
И вряд ли в качестве параметра этой процедуры прокатит Форма. |
|||
3
Dmitrii
гуру
27.09.22
✎
11:43
|
И открыл бы ты форму и посмотрел что там происходит в коде.
Тебе нужно вызвать метод общего модуля ПриходныйКассовыйОрдерФормы.
|
|||
4
Alexbttrckr
27.09.22
✎
11:48
|
(2) да, не сработало
Метод объекта не обнаружен (КонтрагентПриИзмененииСервер) {ВнешняяОбработка.Отладка.Форма.Форма.Форма(115)}:Форма.ВладелецФормы = Форма.Объект.Контрагент; (3) смотрел, ходил отладчиком, но, там такая многокаскадная конструкция, что воспроизводить ее будет долго и непросто вот, думал, как-то воспользоваться тем, что уже есть |
|||
5
Kassern
27.09.22
✎
11:51
|
(4) не правильный вы подход используете. Вам нужно было посмотреть стек вызовов процедур формы и посмотреть куда они обращаются. Скорее всего к какому-нибудь общему модулю, где происходит бизнес-логика. Вот туда вы программно и должны обращаться, чтобы у вас корректно заполнялся документ.
|
|||
6
Alexbttrckr
27.09.22
✎
11:57
|
(5) так я выше об этом писал, что процедура КонтрагентПриИзмененииСервер(Форма) находится
Общий модуль ПриходныйКассовыйОрдерФормы: Модуль [только для чтения] как правильно к нему обратиться? |
|||
7
Dmitrii
гуру
27.09.22
✎
11:59
|
(6) >> как правильно к нему обратиться?
Я ж тебе прямо код написал, который тебе на вставить в свой вместо КонтрагентПриИзмененииСервер(Форма).
Что именно тут не работает? |
|||
8
Гипервизор
27.09.22
✎
12:02
|
(4) Обманываете, в данном случае никакой многокаскадности. Вам в (3) ответили. До вызова нужной процедуры общего модуля пара переходов.
|
|||
9
Alexbttrckr
27.09.22
✎
12:38
|
(7) пишет такое
Переменная не определена (ПриходныйКассовыйОрдерФормы) <<?>>ПриходныйКассовыйОрдерФормы.КонтрагентПриИзмененииСервер(Форма); (Проверка: Тонкий клиент) |
|||
10
Alexbttrckr
27.09.22
✎
12:41
|
(8) я в 8-ке разбираюсь слабо, учусь
поэтому, возможно, что-то пишу не так но, если по этой процедуре пойти отладчиком пошагово, то, открывается тьма окон с разными модулями, которые потом рука устает закрывать это то, что я вижу, может, это и называется по-другому у профессионалов |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |