|   |   | 
| 
 | v7: Запись при проведении...? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Злопчинский 27.06.18✎ 12:15 | 
        Вот задумался... без теста даже не могу однозначно сказать... (тупой, старый, склеротик, ногами не пинайте)
 Программный код обработки: Док.НайтиДокумент(КакойТоДокумент); Док.Реквизит1 = КакоеТоНовоеЗначение1; //было какое-то старое значение, присваиваем новое Док.Провести(); Вопрос1: при проведении документа выполняется запись документа? Вопрос2: при УСпешном проведении что будет в Реквизит1 - новое значение или старое? Вопрос3: при НЕуспешном проведении что будет в Реквизит1 - новое значение или старое? | |||
| 1
    
        1Сергей 27.06.18✎ 12:17 | 
        1: Да
 2: Новое 3: Старое Зы Я тоже тупой, старый, склеротик. Могу ошибаться | |||
| 2
    
        Cool_Profi 27.06.18✎ 12:24 | 
        Злоп, ты чего????     | |||
| 3
    
        HawkEye 27.06.18✎ 12:38 | 
        (2) мундиаль отвлекает )))     | |||
| 4
    
        Эльниньо 27.06.18✎ 12:40 | 
        На всякий случай сделать:
 Док.НайтиДокумент(КакойТоДокумент); Док.Реквизит1 = КакоеТоНовоеЗначение1;//было какое-то старое значение, присваиваем новое Док.Записать(); Док.Провести(); склероз запрещает или старость? | |||
| 5
    
        HawkEye 27.06.18✎ 12:43 | 
        (4) запрещает понимание того, что одно записать лучше двух записать с точки зрения оптимальности выполнения кода....     | |||
| 6
    
        nysyssimara 27.06.18✎ 13:05 | 
        а по-моему
 1) нет 2) старое 3) старое Обязательно: Док.Записать(); Док.Провести(); | |||
| 7
    
        Масянька 27.06.18✎ 13:07 | 
        (6) Еще голосовалку потребуй... 
 (2) И на старуху бывает проруха (С) В данном случае, Злоп попался... | |||
| 8
    
        Эльниньо 27.06.18✎ 13:14 | 
        (5) "Лучше перебздеть, чем недобздеть" © народное     | |||
| 9
    
        Diman_Kr 27.06.18✎ 13:23 | 
        Достаточно провести()     | |||
| 10
    
        HawkEye 27.06.18✎ 13:26 | 
        (8) тогда предлагаю так:
 Записать провести записать и контрольный Провести! ))) | |||
| 11
    
        Масянька 27.06.18✎ 13:31 | 
        (10) В голову...
 (8) А если посмотреть вооруженным глазом... Можно увидеть 2 звездочки... (С) | |||
| 12
    
        Эльниньо 27.06.18✎ 13:50 | 
        Ну да. И совершенно наплювать, что там понаписано ПриЗаписи()
 Программисты, мля | |||
| 13
    
        Карст 27.06.18✎ 14:15 | 
        а есть - при записи перепроводить ...     | |||
| 14
    
        Злопчинский 27.06.18✎ 20:51 | 
        (4) Запрещает нагрузка на общий журнал.     | |||
| 15
    
        Злопчинский 27.06.18✎ 20:53 | 
        (13) нету. Документом манипулирую программно. ПриЗаписиПерепроводить - метод интерактивной формы документа.     | |||
| 16
    
        Злопчинский 27.06.18✎ 20:53 | 
        (12) Пофиг что там написано призаписи. документом манмипулируется программно.     | |||
| 17
    
        Злопчинский 27.06.18✎ 20:54 | 
        В итоге - кто-то может сказать однозначно? ибо мнения - разделились...     | |||
| 18
    
        HawkEye 27.06.18✎ 21:13 | 
        (17) 
 да старое старое т.к. записать выполниться перед проведением... | |||
| 19
    
        HawkEye 27.06.18✎ 21:14 | 
        (18) блин.... наоборот конечно..
 да новое новое... ))) | |||
| 20
    
        GreyK 27.06.18✎ 22:01 | 
        (17) При проведении документ записывается, и в модуле проведения документа можно менять его реквизиты.     | |||
| 21
    
        Сияющий в темноте 27.06.18✎ 22:22 | 
        То,что документ при проведении записывается,не означает того,что запишется обьект документа.При проведении модуль документа заново открывается и компиллируется,и,очень возможно,что обьект документа будет прочитан из памяти,кроме того,если документ новый,и будет вызван метод провести,то документ получит ссылку,но в случае ошибки проведения будет откат-вопрос,что будет со ссылкой и не получится ли два склеенных документа?     | |||
| 22
    
        Злопчинский 27.06.18✎ 22:49 | 
        (21) похожую хрень мы рассматривали с Ходжиком - здесь же относительно недавно. Возможно при Провести() записывается в базу в журнал только признак проведения и выполняется модуль проведения...     | |||
| 23
    
        Cthulhu 27.06.18✎ 22:52 | 
        (22): нет.     | |||
| 24
    
        Злопчинский 27.06.18✎ 22:55 | 
        А вот спецы говорят что будет
 Да. Новое. Старое. итого уже три мнения.... | |||
| 25
    
        Cthulhu 27.06.18✎ 23:01 | 
        (22)
 точнее - полу-нет. да, выполняется только модуль документа. нет - если в модуле документа изменяются реквизиты документа - эти изменения сохраняются. вне зависимости от успешности проведения. прим.: там еще такой прикол есть. попробуй провести несколько документов подряд с вот таким кодом модуля документа: Перем глПерМод; Процедура ОбработкаПроведения() глПерМод=глПерМод+1; Сообщить("гдПерМод = "+глПерМод,""); КонецПроцедуры глПерМод=0 // как думаешь - что в окне сообщений получишь если программно провести три таких документа подряд? | |||
| 26
    
        Cthulhu 27.06.18✎ 23:02 | 
        (24): т.е. (19) - не спец. Ок.     | |||
| 27
    
        Вася Теркин 28.06.18✎ 06:19 | 
        1.Да
 2.Везде новое 3. Док.Реквизит1 = Новое Док.Ссылка.Реквизит1 = старое | |||
| 28
    
        Вася Теркин 28.06.18✎ 06:20 | 
        (ё17) См 27     | |||
| 29
    
        Вася Теркин 28.06.18✎ 06:22 | 
        (20) А если в модуль проведения поставить
 Реквизит1 = Ссылка.Реквизит1 Это надежно защитит реквизит от любой записи в проведенном документе | |||
| 30
    
        Web00001 28.06.18✎ 06:34 | 
        Мне одному непонятно, почему ТС тупо не проверит, прежде чем ветку создавать?     | |||
| 31
    
        HawkEye 28.06.18✎ 08:50 | 
        (30) ты не одинок )) написать проверочный тест у меня заняло 2 минуты ))     | |||
| 32
    
        serpentt 28.06.18✎ 09:08 | 
        (6) Поддерживаю
 если программно изменить реквизит в документе и Провести() Нового значения в реквизите не будет... обязательно использовать Записать() | |||
| 33
    
        Эльниньо 28.06.18✎ 10:04 | 
        Самому стало интересно.
 А ежели в модуле есть строчка типа: Если Рекизит1 = ЧёТаТам Тогда | |||
| 34
    
        Сияющий Асинхраль 28.06.18✎ 10:45 | 
        Проверил :-) , Результаты неожиданные :-) Получается так:
 1 - Да; 2 - Да; 3 - Да; Пункт 3 меня удивил, но делал такое. Документ с парой реквизитов - Контрагент (справочник.Контрагенты) и галкой "Ошибка". В модуле проведения написал: Если Ошибка = 1 Тогда СоздатьОбъект("Справочник.Труляля"); // Нет такого справочника... КонецЕсли; И сделал обработку с реквизитами "ТекДок", текКонтр и "Ошибка" с кодом: БегомПоДокам = СоздатьОбъект("Документ.Новый1"); Если БегомПоДокам.НайтиДокумент(ТекДок) = 1 Тогда БегомПоДокам.Контрагент = текКонтр; БегомПоДокам.Ошибка = Ошибка; БегомПоДокам.Провести(); КонецЕсли; Оказалось, что при генерации ошибки в документе реквизит Контрагент в любом случае записывается... | |||
| 35
    
        Cthulhu 28.06.18✎ 11:32 | 
        спасибо за "лакмус", кстати.
 (всегда полезно узнавать - кто дает советы, разбираясь в вопросе, а кто - и не разбираясь, и не потратив предварительно пару минут чтобы проверить))) | |||
| 36
    
        serpentt 28.06.18✎ 12:36 | 
        (34)
 второй и третий вопрос... ЧТО значит ДА. Ответ непонятен | |||
| 37
    
        Сияющий Асинхраль 28.06.18✎ 12:57 | 
        (36) Если непонятно, замени слово "Да" на слово "Новое". Так будет понятней...     | |||
| 38
    
        Злопчинский 28.06.18✎ 18:48 | 
        Читаю...
 интересно.. и весело... | |||
| 39
    
        HawkEye 28.06.18✎ 20:53 | 
        (32) не трынди... 
 (36) да - значит новое запись (не вызываемая явно) выполняется до начала транзакции провести, поэтому если провести прерывается, запись уже проведена и отката не происходит... | |||
| 40
    
        vova1122 29.06.18✎ 09:46 | 
        а есть еще один пункт который не разбирали. Если документ проведен. И после изменения реквизита будет неуспешное проведение. что тогда будет в реквизите?     | |||
| 41
    
        Эльниньо 29.06.18✎ 12:20 | 
        (38) Клюшки это вообще всегда весело
 Ты знал, что при удалении помеченного на удаление документа, отрабатывает ОбработкаУдаленияПроведения()? | |||
| 42
    
        Cthulhu 29.06.18✎ 15:44 | 
        (40): разбирали. новое значение.
 (41): неоднозначность формулировки детектев - 1) при пометке на удаление (программно или в дивлоге) или при удалении программном или при удалении через "удаление помеченных"?.... | |||
| 43
    
        Эльниньо 29.06.18✎ 15:59 | 
        (42) При программном удалении помеченных     | |||
| 44
    
        Cthulhu 30.06.18✎ 00:14 | 
        (43) ухты, класс, что обработкаудаленияпроведения хитрая xpeнь с "двойным дном" - знал, но вот до одотудова не добрался. спасибо, пригодится.
 и тогда такой вопрос: обнуление статуса возврата как-то влияет на процесс? | |||
| 45
    
        Cthulhu 30.06.18✎ 00:15 | 
        (43): так стоп. программное(!) удаление помеченных = это как?
 знаю встроенное удаление помеченных. знаю программное удаление. что за зверь "программное удалени помеченных"??? | |||
| 46
    
        Cthulhu 30.06.18✎ 00:17 | 
        (45)+ прогаммное удаление - в смысле метод ".Удалить()", помеченное оно или нет - как-то побоку...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |