События поля табличного документа #9979


#0 by Guard
Подскажите как сделать, чтоб при закрытии формы определить изменялось ли поле табличного документа (поле встроенно в форму). события такого нет, а мне нужно отслеживать это для того чтобы сохранять документ или нет. Изменения в табличном поле не влияют на модифицированность формы. Как быть? По событию "Выбор" я определяю, что что-то в поле могли изменить и в этом случае уже записываю документ. А вот к примеру если удалили какие-то ячейки из табличного документа? Как перехватить это событие?
#1 by Волшебник
Сохраняй ТД при открытии формы и при закрытии сравнивай с эталоном.
#2 by Guard
А как лучше сравнивать? По ячейкам?(наверно медленно будет) или как? Просто если объект равен другому наверно не получится.
#3 by Волшебник
Документы большие?
#4 by Guard
Примерно 200 X 200(строк/колонок) некоторые могут до 400 X 200. Наверно в циклах сравнение ячеек всё равно быстро будет. Этож всё в памяти, в базу не обращается. Тем более, что можно при первом же несовпадении сразу циклы прервать. Пока попробую два вложенных цикла. Потом напишу результат. Если есть идеи получше - пишите плизз.
#5 by Волшебник
Можно вычислять хеш документа по алгоритму MD5 и сравнивать хеши, хотя я не уверен, что это будет быстрее, но вот памяти будет требовать меньше.
#6 by Guard
Пардон. Что за "хеш" и "алгоритм MD5"? И как его вычислять? Есть примеры?
#7 by Волшебник
Ищи внешние компоненты типа v7crypto, o'Key 7.7 и аналогичные. Про хеширование и MD5 пожалуйста в Яндекс.
#8 by Guard
А эти компоненты для v8 работают?
#9 by Волшебник
Должны. v7crypto точно работает
#10 by tonic
Привет, попробуй поиграть с предопределенными процедурами: ПриНачалеРедактированияСтроки и ПриОкончанииРедактированияСтроки. Я это через эти процедуры реализовывал:)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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