Битые ссылки, объект не найден, поиск удаленного объекта

10.12.18

Задачи пользователя - Поиск данных

Обработка ищет битые ссылки по записям в журнале регистрации, распознает их GUID и получает по нему ссылку (последнее можно использовать для распознания объекта в резервной копии базы). Протестировано на конфигурации ЗУП 3.1.5 - 3.1.8, но будет работать практически на любой конфигурации на УФ.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПоискИРаспознаваниеБитыхСсылок
.epf 14,23Kb
95
95 Скачать (1 SM) Купить за 1 850 руб.

Практически каждый программист 1С сталкивался со следующей ситуацией: кто-то из пользователей случайно/намеренно помечает на удаление объект информационной базы. В зависимости от ситуации можно действовать по-разному:

  • Ничего не искать и не выяснять, подойти к проблеме философски - заранее понять и простить виновника и просто снять пометку удаления. На мой взгляд, так и стоит поступить, если последствия незначительны, подобные случаи легко обнаруживаются пользователем и вообще никого это не волнует нет веской причины для выяснения обстоятельств;
  • Найти записи о пострадавшем объекте в журнале регистрации, установить виновника - пользователь установивший пометку удаления, совершил ли он это действие со своего компьютера или пытался кого-то подставить (скандалы, интриги, расследования) и действовать в соответствии с полученной информацией;
  • Обнаружить, что по факту объект в информационной базе полностью отсутствует. В попытках восстановить хронологию событий в журнале регистрации осознать, что записи по нему не обнаружены, хотя у нас есть веские доказательства его существования. Для такого случая как раз и создана эта обработка.

Не смотря на то, что поиск элемента в журнале регистрации результата не выдает, в нем могут записи вида <Объект не найден>. Данная обработка выводит все подобные записи за указанный период:

Желательно не задавать большой период, особенно на базах с большим количеством пользователей и большим объемом данных.

Если вы начинающий программист, то обратите внимание, что в случае явного удаления объекта, в первую очередь нужно проверить всех пользователей на наличие права доступа "Непосредственное удаление", т.е. право удаления объектов без контроля ссылочной целостности. Также стоит проверить все внешние обработки и конфигурацию а использование метода "Удалить()", которые также действует без использования контроля ссылочной целостности. 

С помощью материалов сайта https://helpf.pro/faq/view/483/html (огромное спасибо автору) с переделкой под управляемый формы была создана обработка для получения GUID из строки вида " <Объект не найден> (84:bf5600145e3710ab11dda4c605dbe824)". Далее, в копии информационной базы с помощью той же обработки по этому GUID были получены ссылки этих объектов и таким образом удалось отследить всю историю событий:

Отпуск под номером 42-кд был создан и проведен одним пользователем, снят с проведения и помечен другим и удален из базы данных фоновым заданием, т.е. обработкой "УдалениеПомеченныхОбъектов", вот это поворот.  

Для удобства поиска и анализа в обработке есть возможность отфильтровать журнал по представлению данных, если есть его точные номер и дата документа, либо по метаданным. 

 

"<объект не найден>" ЖурналРегистрации УдалениеПомеченныхОбъектов

См. также

Поиск данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    160264    341    253    

574

Математика и алгоритмы Инструментарий разработчика Универсальные функции Поиск данных Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Абонемент ($m)

Несколько упакованных в один класс интерфейсов для обработки популярных универсальных коллекций. Для тех, кого раздражает отсутствие действительно единого интерфейса для универсальных коллекций.

5 стартмани

25.09.2024    2790    1    Артано    14    

19

Поиск данных Программист Платформа 1С v8.3 Россия Бесплатно (free)

В этой статье я хочу рассмотреть еще один кейс применения Clickhouse в связке с 1С - оптимизацию поиска в справочнике по ключевым словам. Здесь не будет готового решения, но будут описаны важные моменты, которые позволят легко применить данный кейс в реальности.

18.08.2024    2411    1cnik2    23    

17

Поиск данных Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Отображение и просмотр реквизитов справочника или документа - с бесконечным открытием подуровней.

1 стартмани

14.06.2024    3945    13    RustIG    33    

22

Поиск данных Системный администратор Программист Платформа 1С v8.3 Россия Абонемент ($m)

Статья об опыте развертывания и интеграции с базой данных Manticore Search для быстрого полнотекстового поиска.

1 стартмани

30.11.2023    5399    andreysidor4uk    18    

56

Поиск данных Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Стандартная обработка с доработанным выводом ссылок в виде дерева с учётом фильтра и с удобным подбором исходного объекта

2 стартмани

24.11.2023    1471    19    SerVer1C    10    

10

Поиск данных Корректировка данных Пользователь Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Абонемент ($m)

PowerOffice - обработка для поиска, просмотра и обработки данных для пользователей. Доступ к объектам на просмотр и редактирование данных определяется правами пользователя.

1 стартмани

05.06.2023    2507    26    PowerBoy    1    

16

Поиск данных Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Абонемент ($m)

Получение ссылки в 1С по бинарной строке из PostgreSQL в виде строки формата bytea или из MSSQL в виде шестнадцатиричной строки. Кроме ссылочных объектов ссылки могут быть получены и для перечислений. Это может быть полезно при анализе логов журнала регистрации или СУБД.

1 стартмани

04.04.2023    3475    5    berserg    2    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 3805 10.12.18 13:34 Сейчас в теме
Подобных решений на инфостарте очень много... А почему заранее не быть готовым к такому?



Нестандартная подсистема: Живая вода
2. Bene_Valete 190 10.12.18 15:14 Сейчас в теме
(1) Отличная разработка, упрощает жизнь пользователю и программисту. Надо бы тоже полистать БСП в поисках интересного)
Конечно, есть много подобных обработок, но в основном они направлены на получение GUID объекта. Данная же предназначена для получения конкретной информации о факте удаления объекта. Зачастую необходимо конкретно знать, кто из пользователей "косячит", делает он это со злым умыслом или нет. Можно сколько угодно восстанавливать объекты из версий, а можно один раз поговорить с человеком и это решит проблему (или нет, но он осознает, что за ним следят:) ) Превентивные меры это конечно хорошо, но решения пост-фактум тоже должны быть. Никому не навязываю свое мнение, мне данная разработка не раз пригождалась, поэтому решила ей поделиться)
3. dsdred 3805 10.12.18 16:20 Сейчас в теме
(2)
Зачастую необходимо конкретно знать, кто из пользователей "косячит", делает он это со злым умыслом или нет.

Никто не мешает перед удалением записывать автора. Я же выдрал из БСП Версионирование, там как раз делается версия, автор, дата.
4. Bene_Valete 190 11.12.18 04:35 Сейчас в теме
(3) Это все замечательно, но это также превентивные меры. Если ситуация уже произошла, к примеру кто-то удалил большой объем документов и это повлекло негативные последствия, руководство требует найти виновника. Если базы достаются по наследству, либо программист работает во франчайзи/фрилансе, не важно как было все организовано раньше, и как можно это сделать в будущем - нужен результат. А потом уже все что угодно, любые мероприятия по предотвращению.
5. dsdred 3805 11.12.18 10:30 Сейчас в теме
(4)Хорошо вот стандартная ситуация.
Фирма без администратора и программиста в штате. Обслуживает ее кто то (не обязательно франч) с мелким ценником и таким же качеством обслуживания.
Бекапов нет(это всплыло когда уже что-то плохое произошло).
Журнал регистрации не ведется(экономия места).
У всех в базе полные права.

Ситуация произошла но тут и вы не поможете.
П.С. А фирм таких очень много...
Прикрепленные файлы:
6. Bene_Valete 190 11.12.18 11:47 Сейчас в теме
(5) У описанной фирмы все очень плохо, я думаю ей кто-то в ней захочет навредить, то тут не поможете и Вы) Ну а если серьезно, я вроде как не отрицаю, что предусмотрительный контроль это хорошо или даже необходимо, но если есть возможность, то почему бы не разобраться в произошедшем, используя доступные на данный момент средства?
Насколько я знаю, многие не используют версионирование из-за увеличения объема базы данных и снижения производительности, если они отключили даже журнал регистрации для экономии места, не будут ли занимать еще больше места версии объектов? (это не ирония, я действительно хочу знать что оптимальнее)
7. dsdred 3805 11.12.18 12:06 Сейчас в теме
(6)
это не ирония, я действительно хочу знать что оптимальнее


Поэтому и планирую в будущем некое хранилище данных в которое будут стикать версии с различных баз по http, а потом может и ВИД сделаю. И лежать оно может где угодно хоть в облаке.
Вот что я считаю оптимальным. Но до этого хочу дорисовть другую подсистему.
8. Bene_Valete 190 12.12.18 04:13 Сейчас в теме
(7) Получается, это что-то вроде резервной копии отдельных данных базы на внешнем источнике?
9. dsdred 3805 12.12.18 08:47 Сейчас в теме
(8)Да. Копия удаленных объектов.
Пока только в текущей базе, потом будет некое центральное хранилище(отдельная конфигурация с http-сервисами, а потом и возможно некий скрипт для разворачивания на голой СУБД).
Bene_Valete; +1 Ответить
10. V.Nikonov 122 18.12.18 14:13 Сейчас в теме
(2) А разве объекты не удаляются "по делу"? Например, зачем в базе дубликаты Контрагентов, Номенклатуры и т.п. Их вроде как можно и нужно удалять...
12. Bene_Valete 190 19.12.18 15:02 Сейчас в теме
(10) Вы читали описание публикации? Как это связано с объектами, который удаляются "по делу"?)
15. V.Nikonov 122 21.12.18 11:14 Сейчас в теме
(12) Так в Журнале регистрации нет пометок о причине удаления... По делу или злонамеренно - не вычислишь!
Получается полный список, в котором неизвестным способом ищется один или несколько Объектов... Вероятно поиск происходит по Представлению... Методика поиска нужного документа не раскрыта.

Есть не совсем криминальный сценарий: Пользователь с целью внесения исправлений, делает копию документа, правит с проведением. А заодно удаляет неправильный источник.

P.S. Предпочтительнее перед загрузкой из копии, иметь возможность посмотреть реквизиты документа...
Кстати, а связанные документы как подгружаются (например, связка Реализация + СчетФактура)? Индивидуальным указанием каждого из них?
11. V.Nikonov 122 18.12.18 14:19 Сейчас в теме
А если вместо рукоприкладства "Вредного Юзера" рухнет винт компьютера? И рабочая база "улетит в небытие"?
ПЕРВОЕ правило - делай резервную копию, что бы потом не было "Мучительно больно" восстанавливать данные!
13. Bene_Valete 190 19.12.18 15:18 Сейчас в теме
(11) Спасибо за проявленный интерес, но вы ничего не перепутали? Данная обработка позволяет исправить ситуацию де-факто, когда все уже свершилось. Где вы увидели, что я советую не делать резервные копии?) В публикации указано, что GUID удаленного неопознанного объекта мы распознаем как раз в резервной копии.
14. V.Nikonov 122 21.12.18 11:07 Сейчас в теме
(13) Данное примечание не Вам, а прочим читателям. Просто акцентирую внимание на то, что восстановить можно из достаточно свежей резервной копии...
Оставьте свое сообщение