Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
Дубли создались методом NotesDocument.CopyToDatabase(NotesDatabase)Легко вычислить по автору и дате создания.
Что то не могу догнать как это?Я про это и говорю. Поиском или через представление по дате создания легко найти все дубли.
Ну так может по несколько десятов документов и было создано. А нужную форму укажите в формуле отбора вида.Получилось на некоторые даты-время по несколько десятов документов причем разных форм
Set dc=db.AllDocuments
Set docc=dc.GetFirstDocument
While Not docc Is Nothing
Set docs=dc.GetNextDocument(docc)
While Not docs Is Nothing
If docc.Size=docs.Size Then
set tmpdoc=dc.GetPreDocument(docs)
Call docs.remove(true)
set docs=tmpdoc
End If
Set docs=dc.GetNextDocument(docs)
Wend
Set docc=dc.GetNextDocument(docc)
Wend
Тоесть искать дубли точно также как я написал выше по размеру, только по дате создания и изменения?Что-то я так и не понял, чем не покатил поиск по created, modified?
В принципе у документов-копий created и modified должны совпадать до секунды - можно поплясать от этого.
Проверил, не то, всего в бд было около 30000 документов, сейчас около 60000. тоесть ровно в 2 раза больше.Создайте вид с формулой отбора SELECT ((Form = "Forma") & (@Created = @Modified)), он выдаст вам документы по нужной форме, которые были скопированы программно.
В общем случае при создании документа "ручками" created - это момент создания, а modified - момент сохранения, т.е. "modified - created = время заполнения полей документа". При программном копировании для документа эти моменты совпадают. Как-то так.
P.S. Только не забывайте про "7 раз отмерь - один раз отрежь" - перепроверьте, ибо я выдал лишь своё предположение.
Отсортируй представление по общему параметру, и удаляй каждый первый(второй) документ
lead=true
set doc=view.getfirstdocument
while not doc is nothing
lead=not lead
if lead then doc.ToRemove="1":call doc.save(true,False)
set doc=view.getnextdocument(doc)
wend
set col=db.Search({ToRemove="1"},Nothing,0)
col.RemoveAll(1)
Зато наверняка усвоите, что НЕЛЬЗЯ экспериментировать на рабочей базе!я ж с ума сойду
Полностью согласен, что тяжело выбить, сколько раз уже зарекался не экспериментировать на раб базеЗато наверняка усвоите, что НЕЛЬЗЯ экспериментировать на рабочей базе!
Высказывание: Последовательность "эксперимент -> *цензура*..ц -> чтение документации" даже из толковых админов/программеров тяжело выбить
Обучение наступательной кибербезопасности в игровой форме. Начать игру!