Имя: Пароль:
1C
 
УФ. Получить форму, выполнить команду, провести, отменить транзакцию. Как?
,
0 bolobol
 
07.06.18
16:43
День добрый!

Нужен авто-тест. УФ.

Требуется получить документ, получить его форму, выполнить её команду, провести документ и отменить эту транзакцию. Как?

Прошу, спасибо!
1 D3O
 
07.06.18
16:52
никак. Транзакция создается на сервере, а форма открывается на клиенте.
только последующей отменой проведения.
2 lodger
 
07.06.18
16:53
(1) а если обработка отмены проведения написана через жпо и есть последствия из-за отмененного и помеченного на удаления тестируемого документа?
3 bolobol
 
07.06.18
17:00
(1) Отмена проведения - это далеко не отмена транзакции, так-то. Но даже шут с ней, как программно отработать команду формы объекта? И сохранить, хотя бы, в базу. Но сохранение с проведением - это тоже команда формы... Но, по идее, если я имею ссылку на объект с открытой формой, то её можно отправить на сервер и там с транзакцией поработать, разве нет?
4 spiller26
 
07.06.18
17:08
(3) Я чёт не догоняю, зачем тебе программно отрабатывать команду формы [Сохранение  с проведением] - Это же и есть метод записи объекта?
Синтаксис:
Записать(<РежимЗаписи>, <РежимПроведения>)
5 spiller26
 
07.06.18
17:09
Вот тебе про транзакцию
http://programmist1s.ru/1s-ekspert-tranzaktsii-subd-1s/
6 Вафель
 
07.06.18
17:10
зачем транзакцию отменять?
просто почисть за собой потом
7 bolobol
 
07.06.18
17:11
(4) Ну так - вперёд, покажите как его выполнить на клиенте, я ж не против!
8 spiller26
 
07.06.18
17:12
(7) Что значит на клиенте?
9 bolobol
 
07.06.18
17:12
(5) Я не "определение слова транзакция" спрашивал. Или что я должен был почерпнуть в ссылке?
10 bolobol
 
07.06.18
17:13
(6) Это и называется "отменить транзакцию".
(8) Ну, слушайте, я ж за ответом пришёл, а не на вопросы детские отвечать)
11 bolobol
 
07.06.18
17:14
(8) Заведите отдельную тему - вам ответов насыпят, и я присоединюсь, в том числе.
12 Cyberhawk
 
07.06.18
17:15
Автор хочет сэкономить походу: и объект БД программно не создавать (а чтобы форма за него все возможные алгоритмы заполнения связанных данных отработала), и работу формы проверить
13 Cyberhawk
 
07.06.18
17:16
Но никто вроде не мешает открыть форму нового объекта, передав в нее спец. параметр (маркер теста), в самой форме этот маркер проанализировать и вызвать записать и закрыть, а в подписке на событие посмотреть на Отказ, зафиксировать успех и уже транзакцию откатить Отказом
14 bolobol
 
07.06.18
17:18
(12) Не все, а вполне определённые команды. Работу объекта проверить. Что тут сэкономить можно, электричество? Объект, кстати... не подумал, что и новый создавать не плохо бы. Спасибо за наводку!
15 bolobol
 
07.06.18
17:19
(13) Подписка, в этом случае, не отработает после подписок на регистры, т.о. - проверка наличия корректных движений не сработает.
16 bolobol
 
07.06.18
17:20
(13) Идея такая приходила в голову, но, опять же - не отменить действие, или не понимаю - как отменить.
17 Cyberhawk
 
07.06.18
17:22
Отказ в подписке регистра, который двигается документом-регистратором, по идее вызовет отказ и в подписке на твой документ.
У тебя проблема, как распознать в подписке на регистр, что это последний двигаемый регистр что ли, чтобы только после этого начать проверку корректности и отменить?
18 Cyberhawk
 
07.06.18
17:25
В подписке регистра в регистратор доп. данные не запихнешь, так что без какого-то внешнего хранилища (где отпечать, какая из подписок сработала) и грязного чтения оного не обойтись, вероятно
19 bolobol
 
07.06.18
17:25
(17) Точно так. Потому и рассматриваю именно работу с объектом.
20 bolobol
 
07.06.18
17:26
Ну и с формой, ибо команды на форме вызывают методы формы...
21 bolobol
 
07.06.18
17:27
Как объединить сие - не понимаю. Готов уже даже сохранять объект и откатывать его потом программно. Но тоже прозрачного пути не вижу, чтоб с движениями.
22 Cyberhawk
 
07.06.18
17:27
А почему именно хочешь транзакцию откатывать, а не просто удалять объект-регистратор (ну, или если у него очистка движений только при отмене проведения в свойствах, то отменять проведение соответственно)?
23 bolobol
 
07.06.18
17:29
База исходная меняться не должна - один и тот же тест десятки раз запускается над одним и тем же существующим объектом.
24 Cyberhawk
 
07.06.18
17:29
Кстати, ПриЗаписи в модуле формы по идее - последнее звено перед фиксацией транзакции, оттуда может тебе вызывать твои проверки (и откатывать транзакцию)?
25 bolobol
 
07.06.18
17:31
Не уверен, что оно всё ещё в транзакции. Но направление я понял, обновлю сведения, спасибо!

Апну утром тему. Хорошего вечера!
26 Cyberhawk
 
07.06.18
17:38
"Не уверен, что оно всё ещё в транзакции" // Кто "оно", "ПриЗаписи" в модуле формы? Стопудово в транзакции. А вот "ПослеЗаписи" - уже нет.
27 bolobol
 
08.06.18
09:12
А, ну да -я про ПослеЗаписи прочитал...
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.