Поиск объектов типа <Объект не найден...>. Теперь на управляемых формах

09.01.12

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

Универсальная обработка для поиска битых ссылок, представленных строкой типа <Объект не найден...>. Теперь на управляемых формах.

Файлы

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

Наименование Скачано Купить файл
Поиск объекта по GUID
.epf 25,37Kb
729 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

 

Обработка "Поиск объектов по GUID"

Обработка предназначена для поиска и формирования списка ссылок выбранного типа из строк типа ". Обработка запускается в базе, содержащей искомые "битые" ссылки, например, в резервной копии. В отличие от других обработок, найденных на просторах интернета и Инфостарта позволяет обрабатывать список "битых" ссылок.

Алгоритм преобразования строки в объект УникальныйИдентификатор показан на скриншоте.

Тестировалась на конфигурации БП 1.6, платформа 8.2.

Обработка понадобилась после того как удалил "лишние"Smile элементы справочника "Подразделения организаций". Соответственно на всех счетах с субконто "Подразделения" появились битые ссылки. Пришлось срочно восстанавливать из резервной копии.

Типовой порядок действий 

  1. Скопировать в поле табличного документа список "битых" ссылок.
  2. Нажать кнопку Найти ссылки. При этом заполнится табличная часть найденными ссылками. При этом в табличной части заполняются дополнительные реквизиты, например, Номер и Дата для документов.
  3. Вывести список найденных ссылок в табличный документ и перенести объекты в "поврежденную" базу с помощью типовых обработок переноса данных.

Похожие публикации на Инфостарте и в сети Интернет:

//infostart.ru/public/73983/

http://help1c.com/faq/view/483.html

Наверняка, есть еще Smile

Версия 1.0.2 от 06.04.2011

1) Добавлен поиск типа объекта по номеру таблицы в строковом представлении объекта, за что спасибо пользователям Широкий и ilya2184.

2) Косметические исправления

Версия 1.0.3 от 05.08.2011

1) Добавлена возможность работы в режиме управляемых форм.

2) Исправлена ошибка, указанная пользователем kosmo0.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

5000 руб.

25.02.2026    2785    11    1    

14

Поиск данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Платные (руб)

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

13420 руб.

14.05.2012    168183    358    253    

589

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    45221    31    13    

49

Поиск данных Нейросети Программист Бесплатно (free)

Практический кейс исследовательской разработки (R&D) с использованием искусственного интеллекта и нейросетей в 1С для поиска по прайсам поставщиков. Рассматривается гибридный поиск (Hybrid Search: векторный + полнотекстовый), позволяющий находить товары по смыслу, а не по буквам — даже при сленге, опечатках и разном написании. Решение работает полностью локально, без облаков, и интегрируется с 1С.

14.01.2026    2007    Prepod2003    12    

13

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 1С 8.3 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

Полный контроль над изменениями в 1С без нагрузки на вашу базу. Мгновенный доступ к истории изменений, удобное сравнение и откат данных в один клик. Простой отчет с визуальным отображением изменений Откат на любую версию объекта в два клика История изменения данных хранится во внешней базе

180000 руб.

05.09.2025    4464    1    1    

3

Поиск данных 1С:Предприятие 8 1С:Библиотека стандартных подсистем Абонемент ($m)

Расширение добавляет возможность в 1С в любых полях и отборах выбирать значения не только Код, Наименование или Номер, но и Уникальный идентификатор, Навигационную ссылку, Объект не найден, Представление документа.

2 стартмани

18.08.2025    7525    38    sapervodichka    14    

77

Поиск данных ЭДО и ОФД Подбор и обработка объектов 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Поиск номенклатуры при сопоставлении в ЭДО не интуитивный, не настраиваемый и просто неудобный. Данное решение - это альтернативный вариант расширенного поиска и сопоставления номенклатуры для 1С, который подключается в качестве расширения и решает эту проблему.

10000 руб.

10.04.2025    2247    1    1    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. V.Nikonov 125 30.03.11 19:31 Сейчас в теме
А отчего же сохранили обработку под 8.2? Обратная конвертация не работает!!!
2. ediks 338 30.03.11 21:18 Сейчас в теме
(1) Потому, что в 8.2 для реквизита GUID можно задать тип УникальныйИдентификатор, которого в 8.1 нет. Не хочется делать лишних телодвижений в условиях цейтнота, да и работаю я под 8.2.
3. NazaroV74 31.03.11 10:32 Сейчас в теме
Огромное спасибо)) Вещь нужная
4. Широкий 693 31.03.11 11:46 Сейчас в теме
Ну и зачем нужно тип объекта выбирать?
В представлении битой ссылки эта инфа и так есть
5. ediks 338 31.03.11 11:54 Сейчас в теме
(4) А Вы знаете, как из строкового представления извлечь тип объекта? Я бы вставил этот алгоритм в обработку.
6. romansun 194 31.03.11 12:23 Сейчас в теме
(5)
писал пару месяцев назад на схожую тему
http://infostart.ru/public/80438/
7. ediks 338 31.03.11 13:00 Сейчас в теме
(6) все равно это не решает проблемы. Вам заранее известен тип объекта для восстановления (поиска). Или что-то я не так понял?

НовЭл = Справочники.БюджетныеЦентры.СоздатьЭлемент();

НовЭл.УстановитьСсылкуНового(ЗначениеИзСтрокиВнутр("{""#"",54c3544f-651b-4887-ae3a-2df362efbacb,9659:ab2b001b78e134e011dfec0814418025}"));
27. Spacer 363 10.01.12 14:01 Сейчас в теме
(7) "Вам заранее известен тип объекта для восстановления (поиска). Или что-то я не так понял?"
Если тип объекта для восстановления не известен заранее, то его всегда можно получить перебором.
Это используется во многих обработках подобного рода, например в этой:
http://infostart.ru/public/92259/
Просто если он известен заранее то можно обойтись без дополнительных телодвижений.
28. ediks 338 10.01.12 16:18 Сейчас в теме
(27) 1) Мне кажется, что вопрос решен, благодаря подсказке - тип объекта хранится в представлении битой ссылки.
2) Перебирать каждый объект метаданных для каждой битой ссылки мне кажется неразумным. Количество итераций получается велико - туча битых ссылок, помноженная на сотни объектов метаданных.
8. Широкий 693 31.03.11 13:57 Сейчас в теме
Перем ТаблицаТипов;
//--------------------------------------------------------------------//
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
	СтрокаПоиска=ТаблицаТипов.Найти("1216","НомерТаблицы");
	Если СтрокаПоиска=Неопределено Тогда
		Сообщить("Не определена таблица хранения");
		Возврат;
	КонецЕсли; 
	
	Сообщить(СтрокаПоиска.ТипОбъекта);
КонецПроцедуры

Процедура ДобавитьДанныеВТаблицуТипов(ТаблицаТипов,КоллекцияМетаданных,КоллекцияОбъектов)
	Для Каждого ОбъектМетаданных Из КоллекцияМетаданных Цикл
		ПустаяСсылка=КоллекцияОбъектов[ОбъектМетаданных.Имя].ПустаяСсылка();
		
		МСтроки=СтрЗаменить(ЗначениеВСтрокуВнутр(ПустаяСсылка),",",Символы.ПС);
		
		Для сч=1 По СтрЧислоСтрок(МСтроки) Цикл
			МСтрока=СтрПолучитьСтроку(МСтроки,сч);
			
			ПозицияРазделителя=Найти(МСтрока,":");
			Если Не ПозицияРазделителя Тогда
				Продолжить;
			КонецЕсли; 
			
			НоваяСтрока=ТаблицаТипов.Добавить();
			НоваяСтрока.НомерТаблицы=Лев(МСтрока,ПозицияРазделителя-1);
			НоваяСтрока.ТипОбъекта=ТипЗнч(ПустаяСсылка);
		КонецЦикла; 
	КонецЦикла;   
КонецПроцедуры

Процедура ИнициализацияПеременных()
	ТаблицаТипов=Новый ТаблицаЗначений;
	ТаблицаТипов.Колонки.Добавить("НомерТаблицы");
	ТаблицаТипов.Колонки.Добавить("ТипОбъекта");

    ДобавитьДанныеВТаблицуТипов(ТаблицаТипов,Метаданные.Справочники,Справочники);
	
	ДобавитьДанныеВТаблицуТипов(ТаблицаТипов,Метаданные.Документы,Документы);
	
	ДобавитьДанныеВТаблицуТипов(ТаблицаТипов,Метаданные.ПланыВидовХарактеристик,ПланыВидовХарактеристик);
	
	ДобавитьДанныеВТаблицуТипов(ТаблицаТипов,Метаданные.ПланыОбмена,ПланыОбмена);
	
	ДобавитьДанныеВТаблицуТипов(ТаблицаТипов,Метаданные.Задачи,Задачи);
	
	ДобавитьДанныеВТаблицуТипов(ТаблицаТипов,Метаданные.БизнесПроцессы,БизнесПроцессы);
КонецПроцедуры
 
ИнициализацияПеременных();
Показать
9. ediks 338 31.03.11 14:37 Сейчас в теме
(8) ОК, спасибо. Действительно, достаточно просто.
10. ilya2184 62 01.04.11 13:38 Сейчас в теме
Ну и я свой вклад внесу - у меня тоже есть подобная обработка, плодить не буду
У меня есть кнопка создания объекта...

Это понятно:
Стр1 = СтрЗаменить(ИсходнаяСтрока,"<Объект не найден> (","");
СтрокаНомерТипа = Лев(Стр1,Найти(Стр1,":")-1);
Идентификатор = Сред(СтрЗаменить(Стр1, СтрокаНомерТипа+":",""),1,32);
СтрокаИд = Прав(Идентификатор,8)+"-"
+Сред(Идентификатор,21,4)+"-"
+Сред(Идентификатор,17,4)+"-"
+Лев(Идентификатор,4)+"-"
+Сред(Идентификатор,5,12);
Гуид = Новый УникальныйИдентификатор(СтрокаИд);

//Моя таблица типов содержит колонки НомерТипа(Строка), МенеджерТипа(СправочникМенеджер, ДокментМенеджер), ИмяТипа
//например "1123", Справочники, "Номенклатура"
СтрокаТЗ = мТаблицаТипов.Найти(СтрокаНомерТипа, "СтрокаНомерТипа")
//тут проверка нашли или нет - нет - плохо - была серьёзная реструктуризация - надо поднимать бэкапы.
СсылкаНаОбъект = СтрокаТЗ.МенеджерТипа[СтрокаТЗ.ИмяТипа].ПолучитьСсылку(Гуид);

//и полезная кнопка.
УдаленныйОбъект = СсылкаНаОбъект.ПолучитьОбъект();
Если УдаленныйОбъект = Неопределено Тогда
Если СтрокаТЗ.МенеджерТипа = Документы Тогда
УдаленныйОбъект = СтрокаТЗ.МенеджерТипа.СоздатьДокумент();
ИначеЕсли СтрокаТЗ.МенеджерТипа = ПланыСчетов Тогда
УдаленныйОбъект = СтруктураОбУдаленном.Менеджер.СоздатСчет();
Иначе
УдаленныйОбъект = СтрокаТЗ.МенеджерТипа.СоздатьЭлемент();
КонецЕсли;
УдаленныйОбъект.УстановитьСсылкуНового(СсылкаНаОбъект);
КонецЕсли;
//заполним и запишем по памяти...
УдаленныйОбъект.ПолучитьФорму().ОткрытьМодально();
11. Nikola23 710 06.04.11 00:35 Сейчас в теме
А чтоб не мучатся с восстановлением убитых ссылок (при наличии резервной копии) можно попробовать использовать обработку ВыгрузкаЗагрузкаДанныхXML. Выгружаем объекты из резервной копии, загружаем в рабочую. Соответствие объектов рабочей базы и копии устанавливается по внутр идентификаторам. В результате выполнения потерянные объекты будут восстановлены.
12. ediks 338 06.04.11 14:08 Сейчас в теме
(11) Вот только осталось в резервной копии определить, какие объекты выгружать. Для этого и создавалась эта обработка. А (10) приведен как пример поиска и восстановления убитой ссылки в текущей базе.
13. kosmo0 112 17.06.11 13:45 Сейчас в теме
В процедуре РазобратьСтрокиОбъектНеНайден() строку Счетчик = Счетчик + 1; стоит поднять выше условия, иначе если строку не удастся разобрать будет зацикливание.
14. ediks 338 05.08.11 18:54 Сейчас в теме
(13) Исправил. Спасибо за наводку.
15. toshka 15.09.11 13:30 Сейчас в теме
Спасибо! Очень помогла обработка!
16. zse 58 15.09.11 13:41 Сейчас в теме
Не понятно зачем все это.
Главное определить порушенный объект (справочник такой-то). А далее делаем
выгрузку объекта из копии и подгружаем в поломанную базу.
И не забываем еще раз проверить права на удаление объектов... :D
17. ediks 338 16.09.11 08:16 Сейчас в теме
(16)
1) Как Вы определяете тип объекта? Тип битой ссылки может быть составного типа. К примеру, документ расчетов на 60 или 62 счете...
2) А как Вы определяете объект, который необходимо выгрузить из копии???
3) Почитайте всю ветку - я уже объяснял для чего нужна эта обработка.
18. ELInfinito 23.09.11 07:11 Сейчас в теме
Спасибо. Все отлично работает.
19. JohnySC 180 23.09.11 07:28 Сейчас в теме
На основании этой и других идей с этого сайта, получилась вот такая моя обработка:
http://infostart.ru/public/91438/
Она делает примерно то же, только еще и переносит объекты сразу из нужной копии в рабочую базу
20. shomo 05.10.11 15:33 Сейчас в теме
Замечательно. Можно восстанавливать утраченные объекты. Огромное спасибо.
21. toshka 12.10.11 12:19 Сейчас в теме
Спасибо за обработку! Очень нужная вещь!
22. zabaikalka 19.10.11 16:03 Сейчас в теме
ПОМОГИТЕ, у меня беда!!!! Бэккапов нет, а вот таблица не найдена! Очень надо!!!
23. ILYA1C 24.10.11 06:50 Сейчас в теме
нашла все битые ссылки)))
24. dtitov 28.11.11 12:54 Сейчас в теме
Вполне приличная обработка, для моего конкретного случая подошла весьма, т.к. самому некогда было заморачиваться. С удовольствием плюсую!!
25. vit59 68 10.12.11 15:39 Сейчас в теме
автоматом можно сделать, чтобы по битым ссылкам по ГУИДу сам переносил объект по типам из архива ?
26. ediks 338 10.12.11 19:42 Сейчас в теме
(25) читайте (19) - уже все сделано
29. JohnConnor 59 10.04.15 19:14 Сейчас в теме
30. ediks 338 10.04.15 20:51 Сейчас в теме
(29) Какую ошибку выдала обработка?
Для отправки сообщения требуется регистрация/авторизация