Поиск Ссылок На Объект 1С 8.2

Posted on by  admin
Поиск ссылок на объект 1с 8.2 программно

Это все хорошо, но найдет система все помеченные на удаление объекты. Но оно их и так находит при 'Удаление помеченных объектов'. Проблема в том, что на них много не помеченных на удаление ссылок и вручную их все чистить сильно долго. НайтиСсылки(,); Синтаксис: НайтиСсылки(,) Назначение: Находит ссылки на объекты, переданные в списке значений. Параметры: - конкретное значение искомого объекта или значение типа 'СписокЗначений', в котором данной процедуре передаются объекты, по которым надо найти ссылки. идентификатор объекта типа 'ТаблицаЗначений', в который данная процедура помещает найденные ссылки на объекты.

1С, Поиск битых ссылок, Объект не найден, Обмен данными. Поиск Битых Ссылок 1С 8.2. Поиск и восстановление битых ссылок (объект не.

Поиск Ссылок На Объект 1с 8.2

Таблица значений состоит из 3 колонок: 1. Объект на который ссылаются; 2.

Объект, который содержит ссылку; 3. Комментарий к ссылке. Всем спасибо, попробую поиграться с этим всем. Никогда такое не делал.

Но это как воду в решете носить Плюс возможно цифры поплывут если, например, что то 'помеченое' выбрано в проведеном документе. В принципе можно проверять если проведенный документ то пропускать. И наверное проверку на удаленность объектов еще добавить. //примерный код, тренеруемся на копии Перем СпЗн, ТабЗн; НачатьТранзакцию; Сообщить('Выполняется поиск.' ); НайтиПомеченныеНаУдаление(СпЗн); НайтиСсылки(СпЗн,ТабЗн); ТабЗн.Свернуть('Объект','); ТабЗн.ВыбратьСтроки; Пока ТабЗн.ПолучитьСтроку=1 Цикл ВидОб = ТабЗн.Объект.Вид; Если ТипЗначения(ТабЗн.Объект)=11 Тогда Об=СоздатьОбъект('Справочник.' +ВидОб); Если Об.НайтиЭлемент(ТабЗн.Объект)=1 Тогда Об.Удалить(0); Сообщить('Установлена пометка: '+Об); КонецЕсли; ИначеЕсли ТипЗначения(ТабЗн.Объект)=12 Тогда Об=СоздатьОбъект('Документ.' +ВидОб); Если Об.НайтиДокумент(ТабЗн.Объект)=1 Тогда Об.Удалить(0); Сообщить('Установлена пометка: '+Об); // стремный справочник партии.

Поиск Ссылок На Объект 1с 8.2 Программно

Парт=СоздатьОбъект('Справочник.Партии'); Если Парт.НайтиПоРеквизиту('Док',ТабЗн.Объект,1)=1 Тогда Парт.Удалить(0); Сообщить('Установлена пометка: '+Парт); КонецЕсли; КонецЕсли; Иначе Сообщить('Тип объекта '+ ТипЗначения(ТабЗн.Объект)); //хз КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию; ЗЫ Мне кажется может стоит подумать об обрезке базы. Или о переносе данных. (хотя это наверное не меньший гемор) Сообщение отредактировал MATEVI - 13.09.12, 22:00. Тупа поудалять ссылки нельзя, если база самописаная, нет движений по счетам и по регистрам, то я так понимаю все движения в документах.

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

Поиск Ссылок На Объект 1с 8.2 Обработка

После этого большинство объектов удалил.

Comments are closed.