Имя: Пароль:
1C
 
НачатьТранзакцию на клиенте. Как сделать?
0 ИС-2
 
naïve
24.11.17
08:21
В цикле создаются несколько документов. Часть процедур выполняется на клиенте (готовятся данные), часть на сервере (записывает данные в объект).

Последовательность идет клиент(считываение введенных данных)-сервер(создание документа,вычисление)-клиент(запрос доп. данных у пользователя)-сервер(помещение данных) и т.д

Надо, чтобы если хоть в одном документе будет ошибка, то отменить все созданные документы.

Как такое сделать? Логику работы не предлагайте менять
1 wondkind
 
24.11.17
08:30
(0) поменять логику работу и создавать документы пачкой.

Использование клиента не оправдано
2 бомболюк
 
24.11.17
08:31
а на каком этапе определяется, есть ошибки или нет?
3 ИС-2
 
naïve
24.11.17
08:50
(2) на клиенте, когда идет получение доп. данных в зависимости от решения пользователя
4 lodger
 
24.11.17
09:04
(0) это грустно и печально.
Логику работы менять.
ну можно хотя бы так.
1) клиент - ввод первой порции данных.
2) сервер - обсчет и выполнение математики с получением ошибок.
3) клиент - тч со списком ошибок-успехов и выбором решения
4) сервер - НачатьТранзакцию(); в цикле (Документ.КолХоз.СозатьЭлемент();)
5 wondkind
 
24.11.17
09:05
ну а если быть серьёзней - просто создай обработку записи объектов. По мере заполнения данными потом записывай весь пакет.
6 ptiz
 
24.11.17
09:10
(0) В таком варианте самое простое - удалять все созданные в случае ошибки через .Удалить()
7 ptiz
 
24.11.17
09:11
Или если каждый следующий документ не зависит от предыдущего - вместо записи в базу сериализовать и записывать в файл или другой регистр, а в конце в случае успеха - писать скопом.
8 Бычье сердце
 
24.11.17
09:17
(0)
1. Клиент - ввод первой порции
2. На сервере НачатьТранзакцию(), записать документы, ОтменитьТранзакцию(). В случае отсутствия ошибок пакет данных кидаем в общий список.
2. Клиент - ввод второй порции, далее на сервере пункт 2.
3. Если есть ошибки, то ТЧ их все. Если нет ошибок новая транзация с перебором из списка и запись объектов.
9 АнализДанных
 
24.11.17
09:55
(0) сразу все вопросы задать на клиенте можно (по всем документам)?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс