Поиск ссылок на справочник, документ, перечисление, план видов расчетов и характеристик, план счетов в документах и в справочниках на Управляемых и Обычных формах
Поиск ссылок на любой справочник, документ, перечисление, план видов характеристик, план видов расчетов и план счетов в документах и в справочниках для любых конфигураций на управляемых формах. Особенность в том, что для документов можно задать вид документа и период поиска. Типовая функция НайтиПоСсылкам() не используется. Демонстрация проводится на примере поиска Спецификации во всех документах УНФ 1.6.
при анализе мест использования с помощью функции ОбщегоНазначения.МестаИспользования в результатах поиска ссылающихся объектов не учитываются ссылки из этого списка исключений. Использовать метод НайтиПоСсылкам() в общем случае не рекомендуется.
Кейс: справочник ВидНоменклатуры содержит много элементов. Необходимо почистить этот справочник.
Решение- перебор и анализ элементов справочника происходит вручную - сначала ищем все справочники и документы по ссылке каждого Вида номенклатуры. Если среди документов данный Вид номенклатуры не найден, далее нажимаем кнопку "Искать по найденному списку справочников" - ищем все документы, содержащие справочники из списка (найденных номенклатур). Если список документов пустой, значит исходный ВидНоменклатуры можно удалить.
Протестировал на платформе 1С:Предприятие 8.3 (8.3.20.1789 х64-разрядной) на демобазе Управление торговлей, редакция 11 (11.5.7.394).
Добавил:
1) поиск документов по документам и справочникам
2) увеличил область вывода результирующих списков
3) добавил колонку "Значение" - это ссылка на искомые объекты (которые ищем)
4) добавил получаемые программно тексты запросов - их можно использовать в дальнейшем для своих алгоритмов, обработок, консолей запросов
Эта обработка расширяет возможности обработки Удаление документов для любых баз на управляемых формах Представьте, что теперь вы можете искать документы не только по определенной организации, но и по определенным другим реквизитам: договор с контрагентом, подразделению....
при анализе мест использования с помощью функции ОбщегоНазначения.МестаИспользования в результатах поиска ссылающихся объектов не учитываются ссылки из этого списка исключений. Использовать метод НайтиПоСсылкам() в общем случае не рекомендуется.
Кейс: справочник ВидНоменклатуры содержит много элементов. Необходимо почистить этот справочник.
Решение- перебор и анализ элементов справочника происходит вручную - сначала ищем все справочники и документы по ссылке каждого Вида номенклатуры. Если среди документов данный Вид номенклатуры не найден, далее нажимаем кнопку "Искать по найденному списку справочников" - ищем все документы, содержащие справочники из списка (найденных номенклатур). Если список документов пустой, значит исходный ВидНоменклатуры можно удалить.
Протестировал на платформе 1С:Предприятие 8.3 (8.3.20.1789 х64-разрядной) на демобазе Управление торговлей, редакция 11 (11.5.7.394).
Добавил:
1) поиск документов по документам и справочникам
2) увеличил область вывода результирующих списков
3) добавил колонку "Значение" - это ссылка на искомые объекты (которые ищем)
4) добавил получаемые программно тексты запросов - их можно использовать в дальнейшем для своих алгоритмов, обработок, консолей запросов
Обновление от 15-07-2022г. Добавил поиск битых ссылок, добавил название реквизита (если реквизит относится к табличной части), добавил начало года (если дата начала не указана) см. рис. 1 в ленте.
Еще в регистрах сведений искалось бы)
а если еще у регистра сведений пометит, что искомый объект хранится не в ведущем измерении (а в измерении без галочки "ведущее" или ресурсе/реквизите) - будет алмаз)
(9) Пустое значение изначально не было заложено. Но я посмотрю , что да как исправить. Потом перезалью. У вас за "бесплатно скачать" есть 30 дней. Думаю решим вопрос в вашу пользу в течение двух-трех дней. Я сообщу.
В октябре 2020 г выложил свою разработку "Поиск ссылок в справочниках и в документах на УФ".
В будущем будут добавлены при обходе другие объекты метаданных - полагаю, что с возможностью выбора флажка - для анализа и поиска - то есть не только справочники и документы, но и регистры и все остальное.
Также надо учесть, что никогда никому не надо в моменте универсальную обработку - всегда нужно под конкретную задачу - найти и заменить договор или еще что-то - под конкретную задачу всегда можно реализовать супер быстрый поиск - примеры есть в публикации.
Добавлю, что логика представленной обработки (алгоритм + идея) отличается от логики типовой обработки "Поиск и Замена" ПОИСК И ЗАМЕНА ЗНАЧЕНИЙ 1С 8.3 В типовом алгоритме замены происходит перебор реквизитов и табличных частей в документах и в справочниках на этапе "Замены", по объектам, которые возвращает платформенная функция НайтиСсылки(). Происходит очередная потеря времени при поиске нужного реквизита для замены. Вроде бы Объект уже найден, но не найден нужный реквизит для замены - поэтому происходит перебор реквизитов. Платформенная функция НайтиСсылки() возвращает объект ,но не соответствующий реквизит объект.
В моем алгоритме поиск сразу выдает Объект + Реквизит (реквизит объекта или реквизит табл. части), то есть надо лишь чуть-чуть дописать алгоритм замены: ПолучитьОбъект(), заменить значение реквизита - уже известного какого - и записать объект.
Ядро уже готово - каждый сам допишет что ему нужно - кому-то замена нужна, кому-то поиск для анализа (без замены) - примеры я предоставил.
Обновление 15-03-23г. Добавил поиск ссылок на Обычных формах.
Новый кейс. Необходимость возникла в связи с такой задачей для УТ 10.3. Нужно было отключить пользователю право проводить документы без учета остатков товаров. Для начала произвел поиск всех документов по данному пользователю (из руководящего состава). Увидев, что с документами реализаций пользователь не работает, я спокойно отключил ему право проводить "товары в минус".
В этих обработках п.п.1)-3) дополнительно включена оптимизация алгоритма - подобного ни у кого не видел в публикациях - заранее указаны документы и в каких реквизитах и табличных частях искать конкретные справочники. Поэтому для больших баз подобная оптимизация будет существенно ускорять процесс поиска документов (но это в обработках п.1-3 - смотрите по ссылкам).