|
Как получить доступ к контексту формы на УФ | ☑ | ||
---|---|---|---|---|
0
iva77ru
29.11.18
✎
10:38
|
Добрый день!
1С:Предприятие 8.3 (8.3.10.2667) Зарплата и управление персоналом, редакция 3.1 (3.1.7.144) Переношу документы. Создаю, заполняю реквизиты. Нужно рассчитать документ: запустить процедуру расчета документа, например "Отпуск". Есть такая процедура в форме и даже экспортная. Как получить к ней доступ из обработки создания документа? |
|||
1
Fragster
гуру
29.11.18
✎
10:46
|
на клиенте создаешь форму, через КопироватьДанныеФормы (ИлиСкопировать, не помню уже, помню, что там порядок источник получатель с ЗаполнитьЗначенияСвойств перепутан)отправляешь в форму твой объект, запускаешь там расчет, потом через КопироавтьДанныеФормы забираешь обратно рассчитанные данные
|
|||
2
Fragster
гуру
29.11.18
✎
10:47
|
либо есть интересный вариант - с помощью https://github.com/grumagargler/tester делаешь все интерактивно :)
|
|||
3
Cyberhawk
29.11.18
✎
10:54
|
Если у целевой формы нет точки входа с клиента, то никак
|
|||
4
mikeA
29.11.18
✎
10:56
|
(2) Пробовали. Много неопределённостей возникает интерфейсных.
Выбрали ещё более... интересный вариант)) https://github.com/xDrivenDevelopment/xUnitFor1C + https://jenkins.io/ |
|||
5
Вафель
29.11.18
✎
10:57
|
(3) если нет, то можно в расширении добавить
|
|||
6
DrWatson
29.11.18
✎
11:04
|
Твой код скорее всего серверный, а экспортная процедура - клиентская? Нужно искать что-то на сервере
А расчет ведь, наверняка, не на клиенте выполняется. Скорее всего эта процедура вызывает какую-нибудь серверную. Вот её и вызывай напрямую. |
|||
7
Fragster
гуру
29.11.18
✎
11:24
|
(4) xunit он не для интерфейсов же. а в (0) именно что надо условную кнопку нажать
|
|||
8
Вафель
29.11.18
✎
11:46
|
(7) а что тестет умеет кнопки нажимать в ТЕКУЩЕМ сеансе?
|
|||
9
iva77ru
29.11.18
✎
11:47
|
С клиента идет вызов серверной процедуры, но та везде присутствует параметр Форма. То есть вызов серверный, но в контексте формы. Можно конечно дойти до процедуры расчета, а затем вызывать ее и подпихивать ей нужные данные. Это я даже не знаю сколько копать придется. Неужели нет способа запустить процедуру из модуля формы?
|
|||
10
Вафель
29.11.18
✎
11:48
|
(9) Форма.ИмяПроцедуры()
|
|||
11
Fragster
гуру
29.11.18
✎
11:51
|
(8) данные засасываешь в тестере и выплевываешь в клиент тестирования
|
|||
12
Вафель
29.11.18
✎
11:52
|
(11) так ТС не тест пишет, а заполнялку документа
|
|||
13
iva77ru
29.11.18
✎
11:56
|
&НаСервере
Док = Документы.Отпуск.СоздатьДокумент(); //заполнили реквизиты //Нужно расчитать {ВнешнийОтчет.ПереносДокументов.Форма.Форма.Форма(460)}: Ошибка при вызове метода контекста (ПолучитьФорму) Форма = Док.ПолучитьФорму("ФормаДокумента"); по причине: Интерактивные операции недоступны |
|||
14
Fragster
гуру
29.11.18
✎
11:58
|
(12) да, использовать тестер как интерактивную заполнялку документа, что непонятно-то?
|
|||
15
Fragster
гуру
29.11.18
✎
11:58
|
(13) все правильно
|
|||
16
Cyberhawk
29.11.18
✎
12:04
|
(14) Так гемор же. Сеанс клиента тестирования может быть только начат новый - нельзя подключиться к произвольному сеансу и использовать его как клиент тестирования
|
|||
17
mikeA
29.11.18
✎
14:28
|
(7) в (0) надо
>запустить процедуру расчета документа >Есть такая процедура в форме и даже экспортная Для запуска процедур формы вариант xUnitFor1C + Jenkins как раз то что надо. С Тестером поигрался, так то оно вроде ничего, когда пару кнопок нажать по-быстрому, но когда чуть больше возникают неочевидные проблемы. Например вылезет посредине теста какое-нибудь сообщение и всё, привет. Ну и набирать код для Тестера практически в блокноте) Плюс если прикрутить к Jenkuins Allure, получится очень удобная система сообщений об ошибках. |
|||
18
iva77ru
29.11.18
✎
14:36
|
Спасибо, обязательно попробую xUnitFor1C + Jenkins. Сейчас времени в обрез, нашел обход: меняем конфигурацию, через процедуру ПриОткрытии() запускаю процедуры модуля формы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |