|
Проверить изменени документа
|
Я
|
|
Мандалай 20.03.19 - 09:02 | Добрый день.
Есть обработка, в которой выбирается документ.
В форму обработки считывается содержимое документа.
При этом другой пользователь может интерактивно войти в документ и что-то в нем поправить.
Как проверить, что документ был изменен и не соответствует той версии, которая была считана обработкой?
ВерсияДанных не работает. |
Мандалай 1 - 20.03.19 - 09:03 | Есть вариант прикрутить обычный счетчик в документ, но это как то не комильфо.
|
СтарПом 2 - 20.03.19 - 09:12 | может эта ветка подкинет идей Сформировать хеш документа |
Мандалай 3 - 20.03.19 - 09:14 | |
СтарПом 4 - 20.03.19 - 09:16 | ( 3) идей, а не не готового кода :) |
Мандалай 5 - 20.03.19 - 09:19 | ( 4)Ты смотри какой скушный :) |
mistеr 6 - 20.03.19 - 09:21 | ( 0) ЗаблокироватьДанныеДляРедактирования() |
Мандалай 7 - 20.03.19 - 09:27 | ( 6)Не поможет.
Ситуация:
в 10-00 пользователь Иванов открыл обработку, прочитал данные документа, что-то изменил в обработке. Потом отвлекся, убежал на совещание. Оставил обработку открытой.
в 10-30 пользователь Петров открыл документ, изменил в нем данные, сохранил документ.
в 12-00 пользователь Иванов пришел с совещания, увидел свою обработку открытой, нажал кнопку Записать.
В данном случае возможен конфликт двух массивов данных.
Необходимо в явном виде запрещать запись данных из обработки. |
aleks_default 8 - 20.03.19 - 09:29 | в 10-30 пользователь Петров открыл документ, изменил в нем данные, сохранил документ - петров идет лесом
|
СтарПом 9 - 20.03.19 - 09:32 | ВерсияДанных (DataVersion)
Тип: Строка.
Содержит текущую версию данных объекта.
===
в 10-00 пользователь Иванов открыл обработку, прочитал данные документа <<обработка запомнила версию данных>>, что-то изменил в обработке. Потом отвлекся, убежал на совещание. Оставил обработку открытой.
...
в 12-00 пользователь Иванов пришел с совещания, увидел свою обработку открытой, нажал кнопку Записать.
обработка перед записью считала актуальную версию данных, сравнила с запомненной и при несовпадении написала, что Иванов баран и должен перечитать документ и сделать свои изменения заново |
Мандалай 10 - 20.03.19 - 09:32 | Петров главнее Иванова.
|
СтарПом 11 - 20.03.19 - 09:34 | |
mistеr 12 - 20.03.19 - 09:35 | ( 7) Уточни, обработка меняет (записывает) исходный документ?
И раскрой пожалуйста "ВерсияДанных не работает". Как проверил? |
Serg_1960 13 - 20.03.19 - 09:44 | ( 10) Ответ уже был дан - вычислить хэш ссылки объекта при чтении и сравнить с хэшем ссылки перед записью. Десяток строк кода написать - а разговоров то, разговоров... |
sqr4 14 - 20.03.19 - 09:44 | Походу в момент проверки ее читает. Надо же как только пользователь выбрал документ записывать версию данных, а затем в момент нажатия ну или чего там у вас, проверять с текущей в ссылке.
И опять же как это вас спасет от одновременных действий
|
mistеr 15 - 20.03.19 - 09:48 | ( 13) Что такое "хэш ссылки объекта"? |
aleks_default 16 - 20.03.19 - 09:49 | версия
|
Serg_1960 17 - 20.03.19 - 09:54 | ( 15) Это ХешированиеДанных() объекта, полученного по ссылке. |
Serg_1960 18 - 20.03.19 - 10:15 | (офф) Шутка-юмора: погуглите <<НРег(СтрЗаменить(Строка(Хэш.ХешСумма), " ", ""))>> - по многим ссылкам гуляют одни и те же алгоритмы :)
|
Мандалай 19 - 20.03.19 - 10:25 | ВерсияДанных работает, сам дурак.
|
Жан Пердежон 20 - 20.03.19 - 11:42 | ( 19) только это хотел написать... |