Имя: Пароль:
1C
1С v8
Можно ли выполнить транзакцию. отобразить пользователю тз. и отменить транзакцию
0 zladenuw
 
08.04.13
00:30
Хочу отобразить результат в табличное поле. если не устраивает. сделать откат. возможно?
1 H A D G E H O G s
 
08.04.13
00:31
Нет.
2 H A D G E H O G s
 
08.04.13
00:32
НачатьТранзакцию();
Движение.
ПолучениеТЗ.
ОтменитьТранзакцию();

Показываем ТЗ, если ок - Движение.
3 H A D G E H O G s
 
08.04.13
00:33
Тоесть, откат делаем сразу, нуапотом - чебынет, сделаем движение еще раз.
4 zladenuw
 
08.04.13
00:35
да я с документами работаю. нету регистров :(
5 H A D G E H O G s
 
08.04.13
00:35
(4) И какая разница?
6 Живой Ископаемый
 
08.04.13
00:35
Ну или можно, но очень затратно.
Сериализовать объекты которые будут изменены в ходе транзацкии в ХМЛ, выполнить транзакцию, зафиксировать, показать ТЗ, чтобы оно ни означало, и если пользователь откажется - прочитать сериализованные ранее объекты обратно.
7 H A D G E H O G s
 
08.04.13
00:38
(6) Бррр.
8 Живой Ископаемый
 
08.04.13
00:39
но за время пока этот пользователь рассматривает таблицу, никто конечно не помешает какому-то другому пользователю изменить любой из объектов уже измененниях в ходе зафиксированной транзакции.
9 zladenuw
 
08.04.13
00:42
(6) а как заменять тогда объект ? два типа документа в одном реквизиты шапки в другом реквизиты табличной части.
Как заменить объект весь ? только перебор метаданных ?
10 EugeniaK
 
08.04.13
00:42
(0) А чем плох вариант рассчитать результат, показать, если устраивает - то записать?
Т.е. все изменения в базе после подтверждения.
11 H A D G E H O G s
 
08.04.13
00:43
(10) Для расчета нужны данные в базе.
12 H A D G E H O G s
 
08.04.13
00:43
(10) ЗУП-а на вас нет!
13 Живой Ископаемый
 
08.04.13
00:45
2(9) что?
Возьмиобработку ВыгрузкаЗагрузкаДанныхХМЛ82.епф, выбери в ней по одному объекту двух разных типо, выгрузи в ХМЛ-файл, потом измени эти два объекта любым доступным тебе образом, и потом загрузи их обратно из сохраненного на предыдущем шаге файле.
14 zladenuw
 
08.04.13
00:45
(6) у хрусталевой видел сериализацию строки результата скд в хмл. спасибо за наводку
15 zladenuw
 
08.04.13
00:45
(13) та да :)
16 zladenuw
 
08.04.13
00:46
спасибо
17 H A D G E H O G s
 
08.04.13
00:47
Офигеть, толпа украинцев в ветке!
18 Живой Ископаемый
 
08.04.13
00:50
он читал у Хрусталевой... в любой типовой есть модуль ТиповыеОтчеты. там есть функции

Функция СериализоватьОбъектXDTO(Объект) Экспорт
   
   ЗаписьXML = Новый ЗаписьXML();
   ЗаписьXML.УстановитьСтроку();
   СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Объект);
   СтрокаXML = ЗаписьXML.Закрыть();
   Возврат СтрокаXML;
   
КонецФункции

Функция СериализоватьОбъект(Объект) Экспорт

   ЗаписьXML = Новый ЗаписьXML();
   ЗаписьXML.УстановитьСтроку();
   Объект2 = Объект.ПолучитьОбъект();
   ЗаписатьXML(ЗаписьXML, Объект2);
   СтрокаXML = ЗаписьXML.Закрыть();
   Возврат СтрокаXML;

КонецФункции

Функция ПрочитатьОбъектXDTO(СтрокаXML) Экспорт
   
   ЧтениеXML = Новый ЧтениеXML;
   ЧтениеXML.УстановитьСтроку(СтрокаXML);
   Объект = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
   ЧтениеXML.Закрыть();
   Возврат Объект;
   
КонецФункции

Функция ПрочитатьОбъект(СтрокаXML) Экспорт
   
   ЧтениеXML = Новый ЧтениеXML;
   ЧтениеXML.УстановитьСтроку(СтрокаXML);
   Объект = ПрочитатьXML(ЧтениеXML);
   ЧтениеXML.Закрыть();
   Возврат Объект;
   
КонецФункции




В УПП Еще помимо этого есть регистрСведений ВерсииОбъектов , и процедуры связанные с ним.
19 zladenuw
 
08.04.13
00:54
(18)да это самописка. поставлю себе. раз там много чего интересного :)