v8: Модифицирую объект в форме в ПослеЗаписи, но Модифицированность не сбрасывается! #233128


#0 by TormozIT
Делаю так: Смотрю в отладчике. При выходе из этой процедуры Модифицированность = Ложь. Однако в заголовке формы остается звездочка и при закрытии соответственно возникает системное окошко с предложением сохранить объект.
#1 by ТелепатБот
#3 by TormozIT
Записываю документ в свернутом виде. А пользователь хочет видеть в развернутом. Разворачиваение производится при открытии и после записи.
#4 by Neco
Немного не понял, что значит разворачивание?
#5 by TormozIT
Суть - Перед записью я сворачиваю табличную часть, но юзеру они нужны. Записывать в развернутом виде буду только если не решу проблему .
#6 by Neco
Если сделать так: ПередЗаписью не вызывается, а почему знаешь сам ;-)
#7 by TormozIT
Да. Модифицированность то так снимается, но в БД записывается развернутая табличная часть. Это пока неприемлимо.
#8 by Neco
Потом запишешь уже свернутую
#9 by TormozIT
До того как пользователь закроет форму документа (тогда я и запишу свернутую ТЧ), он может сделать ввод на основании например или кто то построит запрос к его ТЧ и вся махинация вскроется =)
#10 by FLENDGER
мде... значится так... Модифицированность - это свойство формы... Ну так вот - Вы его ставите в ЛОЖЬ - это хорошо, но факт то, что Вы изменили ОБЪЕКТ, в результате чего, чтобы Вы не ставили в свойство формы Модифицированность, оно заново присвоится при попытке прочитать данные объекта из базы (метод Модифицированность объекта). Это и происходит после выхода из процедуры ПослеЗаписи... Выход: изменять объект в обработчике ПередЗаписью, чтобы потом эти данные были записаны и объект "не был модифицирован"...
#11 by TormozIT
Логично. Однако мне НЕ НАДО ЗАПИСЫВАТЬ МОДИФИЦИРОВАННЫЙ ОБЪЕКТ. Если сделать на форме кнопочку "Сбросить модифицированность" и нажать ее после записи, то модифицированность формы сбросится и все будет ОК. После обработки события ПослеЗаписи платформа сама устанавливает модифицированность формы из модифицированности объекта, поэтому я в тупике.
#12 by FLENDGER
Что-то Вы действительно запутались... Если Вам "НЕ НАДО ЗАПИСЫВАТЬ МОДИФИЦИРОВАННЫЙ ОБЪЕКТ", тогда зачем Вы его модифицируете? Если Вам необходимо хранить какие-то свернутые значения или таблицы - для этого есть переменные, реквизиты формы и пр. Да и вообще не понятно - смысл не записывать эти свернутые данные, но при этом пытаться снять модифицированность - ведь после того, как даже форма будет показывать немодифицированность, пользователь еще раз сразу нажмет Записать - эти данные, которые "не нужно" записывать - все равно окажутся в базе...
#13 by TormozIT
"Да и вообще не понятно - смысл не записывать эти свернутые данные, но при этом пытаться снять модифицированность - ведь после того, как даже форма будет показывать немодифицированность, пользователь еще раз сразу нажмет Записать - эти данные, которые "не нужно" записывать - все равно окажутся в базе..." ПередЗаписью в форме ВСЕГДА производится сворачивание ТЧ, т.к. в БД ТЧ всегда должна находиться в свернутом виде. Пользователь должен видеть ТЧ в форме документа всегда в развернутом виде. Все должно происходить прозрачно без изменения элементов формы.
#14 by Neco
Тогда прийдется разорвать данные и ТЧ. Т.е. заполнять ТЧ при открытии, при закрытии сворачивать. Но с данными объекта-документ ТЧ ни как не связана.
#15 by TormozIT
Да. Печально. Подмена источника данных табличного поля влечет удаление всех колонок, даже если типы источников одинаковые =( Поэтому получается тупик =(
#16 by Neco
Как пример реализации посмотри в типовой УТ документ "УстановкаЦенНоменклатуры"
#17 by TormozIT
Верно. Пример в тему. Но я его изучал раньше и он не подходит из-за своей непрозрачности. Разрабатываемый механизм задумывался в качестве надстройки над табличным полем табличной части многих видов документов. Пока лучшее, что придумал - записывать в свернутом виде и, не разворачивая, устанавливать ТолькоПросмотр у табличного поля после записи и добавить кнопку "Редактировать"("Обновить") в командную панель, при нажатии на которую будет произведено разворачивание без изменения модифицированности формы.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С