|   |   | 
| 
 | v7: 7.7 ВК. Как сбросить признак модифицированности документа? | ☑ | ||
|---|---|---|---|---|
| 0
    
        victuan1 21.01.22✎ 11:52 | 
        Как сбросить признак модифицированности документа?
 Открыта форма документа, по нажатию кнопки, в нем происходит некие изменения в документе (программно процедурой привязанной к этой кнопке), системно взводится признак модифицированности документа. После окончания процедуры нужно как-то программно сбросить признак модифицированности, чтобы платформа 1С думала, что документ не изменен. Наверняка уже было решение и слышал вроде о нем краем уха. Но было давно и найти ничего не могу. Кто поможет готовым решением? Если решается через ВК, то желательно через 1с++. Всё что нарыл - неработающий код: //_____________________________________________________________________________ Процедура глСброситьПризнакМодифицированности(Конт) Экспорт //тщи // сброс признака модифицированности для формы Если (Конт.Выбран()=1) Тогда //(Конт.Модифицированность()=1) и Если ПлюсыЗагрузить() = 1 Тогда Попытка ФормаРасш = СоздатьОбъект("РасширениеФормы"); ФормаРасш.УстановитьФорму(конт.Форма); Сообщить(ФормаРасш.ПолныйПуть()); ФормаРасш.СбросМодифицированности() Исключение сообщить(ОписаниеОшибки()); //НачатьТранзакцию(); //Конт.Записать(); //ОтменитьТранзакцию(); КонецПопытки КонецЕсли; КонецЕсли; КонецПроцедуры // СброситьПризнакМодифицированности | |||
| 1
    
        trad 21.01.22✎ 11:59 | 
        переделать форму так, что бы вот это "системно взводится признак модифицированности документа" происходило только тогда когда нужно, не вариант?     | |||
| 2
    
        victuan1 21.01.22✎ 12:00 | 
        (1) Не вариант.     | |||
| 3
    
        АгентБезопасной Нацио 21.01.22✎ 12:01 | 
        (0) вообще-то это формекс     | |||
| 4
    
        trad 21.01.22✎ 12:02 | 
        если не сложно расскажи, почему документ должен быть без признака, если реквизит документа изменен?     | |||
| 5
    
        MWWRuza гуру 21.01.22✎ 12:10 | 
        (4) расскажи, почему документ должен быть без признака, если реквизит документа изменен?
 Ну, тут можно предположить, что не хочет нарушать ГП. А меняется реквизит, который не влияет на нее. Но, документ все равно захочет провестись, а тогда ГП "полетит"... | |||
| 6
    
        victuan1 21.01.22✎ 12:28 | 
        (4) Эмулируется несколько ТЧ, которые отображаются в одной штатной ТЧ документа при выборе закладки. Сделано давно (дцать лет назад) - работает, переделывать смысла нет - всем удобно.
 Щас подчищаю хвосты (делаю легкую уборку в конфе), поэтому возник сабж. | |||
| 7
    
        Kigo_Kigo 21.01.22✎ 12:36 | 
        е если после выполнения сдеать Записать() признак разве не сбросится?     | |||
| 8
    
        trad 21.01.22✎ 12:36 | 
        (6) ясно.     | |||
| 9
    
        Эльниньо 21.01.22✎ 12:57 | 
        В памяти возникает "ложное закрытие формы"     | |||
| 10
    
        Djelf 21.01.22✎ 13:02 | 
        Код в (0) рабочий, только вот системный диалог сохранения выводится до события ПриЗакрытии(), а события ПерезЗакрытием() нет.
 Повесь СбросМодифицированности в событие FormEx ПослеОбновленияФормы(). | |||
| 11
    
        Ёпрст гуру 21.01.22✎ 13:21 | 
        (0) повесь сброс модифицированности в формулу текстового реквизита на форме     | |||
| 12
    
        Базис naïve 21.01.22✎ 13:23 | 
        (11) Этот сброс будет всегда работать, даже когда он не нужен?     | |||
| 13
    
        серый КТУЛХУ 21.01.22✎ 13:28 | 
        (5): "документ все равно захочет провестись" - нет. точнее - от программиста зависит.
 (9): совсем не про то. а без вк, тупо начатьтранзакцию - записать - отменитьтранзакцию? | |||
| 14
    
        Ёпрст гуру 21.01.22✎ 13:52 | 
        (12) дык проверку на нужность воткнёт     | |||
| 15
    
        victuan1 21.01.22✎ 13:52 | 
        (3) Вообще-то, этот код был написан так давно, когда еще формекс входил в состав 1с++ ;)     | |||
| 16
    
        victuan1 21.01.22✎ 13:54 | 
        (13) "без вк, тупо начатьтранзакцию - записать - отменитьтранзакцию?" 
 Тогда срёт в 1cv7.mlg, а нам это не надо, поди еще и в УРБД запишет изменения? А нам это не надо. | |||
| 17
    
        серый КТУЛХУ 21.01.22✎ 14:16 | 
        (16) для этого еть метод .РегистрацияИзменений(0/1)     | |||
| 18
    
        Злопчинский 21.01.22✎ 14:24 | 
        Костыли приводят к другим костылям для костылей     | |||
| 19
    
        victuan1 21.01.22✎ 14:25 | 
        (17) У меня еще записи в млг-файле используются для обмена изменениями между неидентичными базами через GetIDs.dll.
 Лишние записи в млг сломают выгрузку. | |||
| 20
    
        АгентБезопасной Нацио 21.01.22✎ 14:30 | 
        (18) спасет только ампутация? :-)     | |||
| 21
    
        victuan1 21.01.22✎ 14:35 | 
        Не люблю костыли..     | |||
| 22
    
        АгентБезопасной Нацио 21.01.22✎ 14:38 | 
        (21) смотря что считать "костылем".
 с моей точки зрения, костыллинг™ - это вариант с отменой транзакции. а с формексом - вполне нормальное решение. ну и (опять же, имхо), "использование записей в млг для обмена" - тоже костыллинг™ | |||
| 23
    
        victuan1 21.01.22✎ 14:43 | 
        (22) С формексом я согласен. Чуть позже проверю на нем.
 Использование млг для обмена меньший изврат чем весь МОД от ПиБи. | |||
| 24
    
        Ёпрст гуру 21.01.22✎ 14:45 | 
        (23) МОД - это лучшее что было придумано в клюшках.     | |||
| 25
    
        victuan1 21.01.22✎ 14:49 | 
        (24) По мне, самое худшее.     | |||
| 26
    
        Ёпрст гуру 21.01.22✎ 14:50 | 
        (25) Люди делятся на 2 категории - кто работал с МОД-ом и на тех, кто только видел, слышал.     | |||
| 27
    
        victuan1 21.01.22✎ 14:51 | 
        (26) Я замучился этот мод из конф выковыривать.     | |||
| 28
    
        Ёпрст гуру 21.01.22✎ 14:52 | 
        С МОД-об можно было реализовывать любые обмены, с любыми базами, можно было работать 24/7 и менять конфы на ходу, используя МОД.
 Да и ..много чего можно. КД и риб и рядом не валялись в то время. | |||
| 29
    
        Ёпрст гуру 21.01.22✎ 14:52 | 
        (27) Зачем ?     | |||
| 30
    
        Ёпрст гуру 21.01.22✎ 14:53 | 
        И выковыривать - сразу видно, что ты с ним не работал - есть штатный деинсталятор от ПБ, который сам удалит в и вернёт код в исходное состояние     | |||
| 31
    
        victuan1 21.01.22✎ 14:53 | 
        (27) Вот если бы МОД взял бы за основу штатный УРБД, но научился использвовать урбд-шные файлы обмена для неидентичных баз - вот эта была бы вещь.
 А так раскуроченная база вставками МОДа, чтобы реализовать собственный механизм регистрации изменений, вместо надежного как Калашников УРБД. | |||
| 32
    
        Базис naïve 21.01.22✎ 14:53 | 
        (24) Сразу после конфы "Финансовое планирование" от Инталева. (голосом Ильича) кстати, а где он?     | |||
| 33
    
        victuan1 21.01.22✎ 14:54 | 
        (29) Прог добавляет новые объекты метаданных и забывает про обработку МОДовского ИД - всё ломается.     | |||
| 34
    
        Ёпрст гуру 21.01.22✎ 14:54 | 
        (31) Ты не поверишь. Но есть решения, где регистрация измений сделана через УРИБ, а обмен по правилам МОД-а..     | |||
| 35
    
        Ёпрст гуру 21.01.22✎ 14:54 | 
        И это обсуждали... хрен знает в каком году на кубани, АндрейАндреич не даст соврать     | |||
| 36
    
        Ёпрст гуру 21.01.22✎ 14:55 | 
        (33) Просто этот объект не будет выгружаться, делов то     | |||
| 37
    
        victuan1 21.01.22✎ 14:55 | 
        сама идея МОДа дублировать штатные ф-и своими мне вызывает неприятие.     | |||
| 38
    
        Ёпрст гуру 21.01.22✎ 14:55 | 
        Другое дело, что надо помнить про конструкции модовские с записью объекта, чтоб регистрация была, или наеборот не была.     | |||
| 39
    
        Ёпрст гуру 21.01.22✎ 14:56 | 
        (37) вот и я про то - см. (26)
 ) | |||
| 40
    
        АгентБезопасной Нацио 21.01.22✎ 14:57 | 
        (31) штатного механизма не всегда хватает.
 Ну и невозможность (по крайней мере, с моими кривыми руками) сделать нормальную работу напрямую с табличками урбд для файловой. (35) даже я помню. после этого тоже пробовал МОД, но все-таки остался на типовой УРБД с прямымой корректировкой табличек | |||
| 41
    
        victuan1 21.01.22✎ 19:15 | 
        (11) Спасибо, работает.
 А как отключить, чтобы формекс при этом не плевал в табло сообщений: X:\Base1C\BuhRM\1Cv7.MD\Document\Document_Number53565 X:\Base1C\BuhRM\1Cv7.MD\Document\Document_Number53565 ? | |||
| 42
    
        victuan1 21.01.22✎ 19:17 | 
        (41) А не, это мое отладочное сообщение, забыл убрать.     | |||
| 43
    
        Злопчинский 21.01.22✎ 20:24 | 
        в каком-то достаточно свежем редизе 9но не последнем) формекса - в табло сообщение выдается служебное внутриформексовское     | |||
| 44
    
        victuan1 21.01.22✎ 22:01 | 
        Задачу сабжа я победил - работает четко через формекс - спасибо Ёпрсту.
 //_____________________________________________________________________________ Процедура глСброситьПризнакМодифицированности(Конт) Экспорт //тщи // сброс признака модифицированности для формы Если Конт.Выбран()=1 Тогда Если ФормексЗагружен = 1 Тогда Попытка ФормаРасш = СоздатьОбъект("РасширениеФормы"); ФормаРасш.УстановитьФорму(конт.Форма); //Сообщить(ФормаРасш.ПолныйПуть()); ФормаРасш.СбросМодифицированности() Исключение сообщить(ОписаниеОшибки()); КонецПопытки КонецЕсли; КонецЕсли; КонецПроцедуры // СброситьПризнакМодифицированности //_____________________________________________________________________________ Функция ИтоговаяСтрока() //тщи Если (НадоСброситьПризнакМодифицированности = 1) и (Модифицированность()=1) Тогда НадоСброситьПризнакМодифицированности = 0; глСброситьПризнакМодифицированности(контекст) КонецЕсли; ... | |||
| 45
    
        GreyK 22.01.22✎ 12:24 | 
        (44) Можно и без ВК.
 Процедура СброситьМодифицированность() НачатьТранзакцию(); Записать(); ОтменитьТранзакцию(); КонецПроцедуры | |||
| 46
    
        Djelf 22.01.22✎ 14:03 | 
        (45) А читать (16) и (19) не обязательно? А в коде в (0) это решение уже есть, но не подошло.     | |||
| 47
    
        Злопчинский 22.01.22✎ 14:13 | 
        (45) В общем случае - сломается на Записать()     | |||
| 48
    
        GreyK 22.01.22✎ 14:19 | 
        (46) Извиняюсь, пропустил :)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |