|   |   | 
| 
 | v7: Справочник. При записи | ☑ | ||
|---|---|---|---|---|
| 0
    
        Asakra 18.03.16✎ 10:06 | 
        При неудачной попытке записи нового элемента справочника 2 раза подряд, очищаются все реквизиты справочника.
 Это можно наблюдать, если написать примерно такой код: Процедура ПриЗаписи() НачатьТранзакцию(); Записать(); ОтменитьТранзакцию(); СтатусВозврата(0); Возврат; КонецПроцедуры Есть ли решение данной фичи? | |||
| 1
    
        Ёпрст гуру 18.03.16✎ 10:07 | 
        Занафига там транзакция впёрлась ?     | |||
| 2
    
        lodger 18.03.16✎ 10:08 | 
        возврат после первой неудачной попытки делать и не доводить до второй?     | |||
| 3
    
        Asakra 18.03.16✎ 10:08 | 
        (1) утакой код:
 Попытка НачатьТранзакцию(); Если Выбран() = 0 Тогда Записать(); КонецЕсли; Если ЗаписьЮрФизЛица() = 0 Тогда Возврат; ИначеЕсли ЗаписьОснДоговора() = 0 Тогда Возврат; ИначеЕсли ЗаписьОснСчета() = 0 Тогда Возврат; ИначеЕсли ЗаписьОснСвойства(Свойство , ОсновноеСвойство, Константа.ВидСвойстваКонтрагентов ) = 0 Тогда Возврат; ИначеЕсли ЗаписьОснСвойства(ВидОплаты , _ВидОплаты , Константа._ВидСвойстваВидаОплат ) = 0 Тогда Возврат; ИначеЕсли ЗаписьОснСвойства(КаналПродаж, _КаналПродаж , ВидСвойстваКаналПродаж ) = 0 Тогда Возврат; ИначеЕсли ЗаписьГоловногоКонтрагента() = 0 Тогда Возврат; ИначеЕсли ЗаписьСтавкиЗПОтПродаж() = 0 Тогда Возврат; ИначеЕсли ЗаписьДоговорКлиента() = 0 Тогда Возврат; КонецЕсли; ЗафиксироватьТранзакцию(); Исключение Сообщить(ОписаниеОшибки(), "!"); ОтменитьТранзакцию(); СтатусВозврата(0); Возврат; КонецПопытки; | |||
| 4
    
        Asakra 18.03.16✎ 10:10 | 
        (2) в смысле? запрещать юзеру тыкать два раза записать?     | |||
| 5
    
        Asakra 18.03.16✎ 10:24 | 
        у меня в планах только костыли написать. может у кого есть грамотное решение?     | |||
| 6
    
        ДенисЧ 18.03.16✎ 10:26 | 
        (5) Ты бы хоть постановку вопроса озвучил...
 Что делать пытаешься? | |||
| 7
    
        Asakra 18.03.16✎ 10:27 | 
        (6) записать подчиненные и не только справочники     | |||
| 8
    
        Asakra 18.03.16✎ 10:28 | 
        (6) см. (3)     | |||
| 9
    
        ДенисЧ 18.03.16✎ 10:29 | 
        (8) Там я вижу бред обкуренного до самой немогу кодера...     | |||
| 10
    
        Asakra 18.03.16✎ 10:31 | 
        (9) это код из типовой:
 Попытка Записать(); Исключение ОтменитьТранзакцию(); Сообщить("Запись контрагента: " + ОписаниеОшибки(), "!"); Возврат; КонецПопытки; Попытка Если ЗаписьЮрФизЛица() = 0 Тогда ОтменитьТранзакцию(); Возврат; КонецЕсли; Исключение ОтменитьТранзакцию(); Сообщить("Запись юр.(физ.) лица: " + ОписаниеОшибки(), "!"); Возврат; КонецПопытки; Попытка Если ЗаписьОснДоговора() = 0 Тогда ОтменитьТранзакцию(); Возврат; КонецЕсли; Исключение ОтменитьТранзакцию(); Сообщить("Запись основного договора: " + ОписаниеОшибки(), "!"); Возврат; КонецПопытки; Попытка Если ЗаписьОснСчета() = 0 Тогда ОтменитьТранзакцию(); Возврат; КонецЕсли; Исключение ОтменитьТранзакцию(); Сообщить("Запись основного счета: " + ОписаниеОшибки(), "!"); Возврат; КонецПопытки; Попытка Если ЗаписьОснСвойства() = 0 Тогда ОтменитьТранзакцию(); Возврат; КонецЕсли; СохранитьЗначение("ОсновноеСвойствоКонтрагентов", Свойство); ЗафиксироватьТранзакцию(); СтатусВозврата(1); Исключение ОтменитьТранзакцию(); Сообщить("Запись основного свойства: " + ОписаниеОшибки(), "!"); КонецПопытки; как правильно-то? | |||
| 11
    
        MishaD 18.03.16✎ 10:37 | 
        что за типовая такая ? В типовых, по моему, насильно записывает, когда подчиненные начинаешь создавать.     | |||
| 12
    
        Asakra 18.03.16✎ 10:38 | 
        ТиС 7.70.982     | |||
| 13
    
        Ёпрст гуру 18.03.16✎ 10:40 | 
        (0) А как это выглядит ? Ни разу не сталкивался, хотя код нечто похожий     | |||
| 14
    
        Asakra 18.03.16✎ 10:40 | 
        (13) все поля очищаются, наименование, код и т.п.     | |||
| 15
    
        DGorgoN 18.03.16✎ 10:41 | 
        СтатусВозврата(0); виноват имхо     | |||
| 16
    
        Ёпрст гуру 18.03.16✎ 10:42 | 
        Ну, храни все реквизиты в копии объекта или в кеше     | |||
| 17
    
        Ёпрст гуру 18.03.16✎ 10:42 | 
        Грубо, создаешь новый элемент, копируешь через метаданные все реквизиты в него и не записываешь его, потом, с него берешь реквизиты     | |||
| 18
    
        Ёпрст гуру 18.03.16✎ 10:43 | 
        тип того     | |||
| 19
    
        Asakra 18.03.16✎ 10:45 | 
        (16) ну вот ето и планирую. думал, может есть получше идеи... (17) планировал заполнять тз, в классе перехватчике, что бы напрочь заткнуть проблему..     | |||
| 20
    
        Asakra 18.03.16✎ 10:46 | 
        или даже лучше ассоциативный вектор     | |||
| 21
    
        Ёпрст гуру 18.03.16✎ 10:48 | 
        да пофик, хоть в соответствиях     | |||
| 22
    
        Asakra 18.03.16✎ 10:48 | 
        (21) ну как-то так...)     | |||
| 23
    
        Asakra 18.03.16✎ 10:49 | 
        (15) неа. именно так:
 НачатьТранзакцию(); Записать(); ОтменитьТранзакцию(); СтатусВозврата(0); Возврат; если написать: СтатусВозврата(0); Возврат; то все ок. | |||
| 24
    
        пипец 18.03.16✎ 10:57 | 
        не понял , попытка исключение не вкатила ?     | |||
| 25
    
        Asakra 18.03.16✎ 10:59 | 
        (24) а она не причем. когда второй раз проходит Записать(), уже все поля пустые, еще даже до ошибки не дошло...     | |||
| 26
    
        Asakra 18.03.16✎ 11:41 | 
        решил тоже самое проверить в документе - документ пишется не смотря на транзакцию и статус возврата, на второй раз все поля очищаются, кроме табличной части... мдя..     | |||
| 28
    
        Asakra 18.03.16✎ 12:39 | 
        (27) в (10) 100% типовой код. в (3) мой код.     | |||
| 29
    
        Ёпрст гуру 18.03.16✎ 12:40 | 
        ВК есть ?     | |||
| 30
    
        Asakra 18.03.16✎ 12:41 | 
        (29) в типовой нету, на ней все тоже самое.     | |||
| 31
    
        Ёпрст гуру 18.03.16✎ 12:42 | 
        (30) если формекс загрузить, эффект наблюдается ?     | |||
| 32
    
        Asakra 18.03.16✎ 12:43 | 
        (31) да. в рабочей ён присутствует...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |