Как найти все ссылки на объекты 1с

Для 8.х НайтиПоСсылкам (FindDataByRef)

Синтаксис:

НайтиПоСсылкам (< Список ссылок> )

Параметры:

<Список ссылок> Обязательный

Тип: Массив. Массив со списком ссылок на объекты, ссылки на которые нужно найти.

Возвращаемое значение:

Тип: ТаблицаЗначений. Таблица значений, состоящая из ко­лонок с индексами: 0 — Искомая ссылка; 1 — Ссылка на объект, который содержит искомую ссылку.

Описание:

Осуществляет поиск ссылок на объекты.

Код 1C v 8.х

 //Примеры:
      
Ссылки = НайтиПомеченныеНаУдаление();
ТабСсылок = НайтиПоСсылкам (Ссылки);
Для Каждого Ссылка из ТабСсылок Цикл
Сообщить (" " + Сокр(Ссылка[0]) + " " + Сокр(Ссылка[1]));
КонецЦикла;
//или
Массив = Новый Массив;
Массив.Добавить(СвылкаНаИскомыйОбъект);
СсылкиНаОбъект = НайтиПоСсылкам(Массив);
Для каждого элем из СсылкиНаОбъект цикл
Сообщить(элем);
ОбработкаПрерыванияПользователя();
КонецЦикла;

Функция НайтиПоСсылке имеет особенность: для корректной её работы необходимо, чтоб все объекты были доступны на чтение. Если у вас есть роли, имеющие ограничение на чтение, то вызов функции НайтиПоСсылке можно выполнять только в привилегированном модуле, иначе может возникать ошибка такого рода:

НайтиПоСсылкам(Ссылки) {(1)}: Ошибка при вызове метода контекста (НайтиПоСсылкам): У пользователя недостаточно прав на исполнение операции над базой данных.

Для 7-рки — НайтиСсылки

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

Синтаксис:

НайтиСсылки(<Объекты>,<Ссылки>)

Англоязычныйсиноним:

FindReferences

Параметры:

<Объекты> Конкретное значение объекта илиобъект типа СписокЗначений, в котором данной процедуре передаются объекты, по которым надо найти ссылки.

<Ссылки> Идентификатор объекта типа ТаблицаЗначений, в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. Объект — объект, на который ссылаются; 2. Ссылка — объект, который содержит ссылку; 3. Комментарий — комментарий кссылке.

Описание:

Процедура НайтиСсылки находит ссылки на переданные в списке объекты, и помещает их в таблицу значений.

Код 1C v 7.x


Купон на ОЗОН за покупку программ 1С

 СсылкиТЗ=СоздатьОбъект("ТаблицаЗначений");
      
НайтиСсылки(СсылкаНаТовар,СсылкиТЗ);
//В результате мы получаем ТЗ с ссылками на данный элемент

Информация взята с сайта http://helpf.pro

Программа 1С в своей структуре позволяет определить ссылочный тип данных для реквизитов справочников, документов, измерений регистров и т. д. Источником информации для таких элементов будут данные других объектов.

Обработка в программе 1С Поиск ссылок на объект позволяет найти в базе данных все места, где использован указанный объект. Функцию используют:

  • для проверки ссылки перед удалением, чтобы не повредить целостность базы;
  • быстрого поиска всех объектов, где использовался элемент, например, для его замены;
  • просмотра истории использования элемента в других объектах.

Механизм поиска ссылок встроен во все типовые конфигурации. Примеры рассмотрены на 1С 8.3 Бухгалтерия.

Содержание

  • 1 Запуск и использование обработки в режиме 1С:Предприятия
  • 2 Поиск ссылок на объект в конфигураторе
  • 3 Программный поиск ссылок на объекты
    • 3.1 Вам будет интересно

Запуск и использование обработки в режиме 1С:Предприятия

Чтобы начать поиск ссылок на объекты в 1С 8.3:

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

Поиск ссылок на объект в конфигураторе

В работу конфигуратора тоже встроен механизм поиска ссылок на объект. Только ссылки он ищет не в информационной базе среди данных, введенных пользователем, а в структуре конфигурации на использование выбранного объекта метаданных в других элементах конфигурации.

Для запуска нажатием правой кнопкой мыши по объекту вызовите контекстное меню и выберите команду Поиск ссылок на объект.

image022

В окне Поиск ссылок отметьте места, которые требуется проанализировать на наличие искомого объекта:

image024

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

image032

Исключения возникают, только если свойство ПараметрРасшифровки ячейки макета совпадает с наименованием источника поиска.

image034

Список мест в окне Поиск ссылок является фиксированным, его нельзя дополнить или изменить.

Результат поиска отображается в виде служебного сообщения.

image040

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

Программный поиск ссылок на объекты

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

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

Функция НайтиПоСсылкам() выполняется на сервере, встроена в платформу начиная с версии 8.3.5. Используется в коде стандартных обработках конфигураций — таких, как Удаление помеченных объектов, Скрытие конфиденциальной информации и др.

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

Обычные пользователи работают только с данными в информационной базе, поэтому им переходить в конфигуратор не потребуется: обработка Поиск ссылок на объект в пользовательском режиме произведет полный анализ всех данных и выдаст исчерпывающий результат по запрашиваемому объекту.

См. также:

  • Использование кнопки «Все функции» в 1С 8.3
  • Поиск и замена значений в 1С Бухгалтерия 8.3
  • Обнаружено неправомерное использование 1C — как убрать
  • Интерфейс 1С 8.3 Бухгалтерия 3.0
  • Как посмотреть, какая версия 1С 8.3 установлена
  • Как в 1С посмотреть историю изменения документа
  • Пропало главное меню в 1С 8.3
  • Как в 1С выделить несколько объектов
  • Как подключиться к 1С через тонкий клиент

Поставьте вашу оценку этой статье:

Загрузка…

Дата публикации: Дек 9, 2020

Поставьте вашу оценку этой статье:

Загрузка…

Работая в конфигурациях 1С, иногда приходится сталкиваться с ситуациями, когда нужно понять, в каких документах, регистрах, либо справочниках применяется определенный объект (к примеру, контрагент, ОС, банковский счет, кредитное учреждение и прочее). Эти сведения требуются для того, чтобы проверить ведение учетных данных в базе. Также они пригодятся при появлении определенных неточностей или несоответствии информации. Для этого в программе 1С 8.3 предусмотрена особая обработка – «Поиск ссылок на объект». Разберем особенности ее использования на примере конфигурации 1С: Бухгалтерия, редакция 3.0.

Поиск ссылок на объект в 1С: Бухгалтерия

Открыть обработку через меню «Функции для технического специалиста» (до редакции решения 8.3.17 – Все функции).

Рис. Настройки налогов и отчетов. Функции для технического специалиста в 1С

В перечне найти «Стандартные» – «Поиск ссылок на объекты»:

Рис. Функции для технических специалистов. Стандартные. Поиск ссылок на объекты в 1С

В появившемся окне в поле «Объект» через 3 точки выбрать объект, требующий анализа.

Рис. Поиск ссылок на объект. Выбор типа данных в 1С

Например, необходима проверка того, какие документы корректировались определенным пользователем. Для этих целей в поле «Объект» выбрать «Пользователь»:

Рис. Поиск ссылок на объект. Пользователь в 1С

Появляется дополнительное окно с указанием всех пользователей этой конфигурации.

Рис. Ссылки на объекты в программе 1С. Выбор пользователя

По нажатию кнопки «Найти ссылки» конфигурация выдаст все справочники, документы, регистры, где записан интересующий нас пользователь.

Рис. Поиск ссылок на объект. Найти ссылки в 1С

Кроме того, в доступных ссылках можно отыскать определенный документ, например, «Начисление заработной платы», нажав на кнопку «Найти».

Рис. Поиск ссылки на объект. Начисление зарплаты в 1С

В итоге получится следующее:

Рис. Поиск ссылок на объект. Перечень в 1С

То есть в рассматриваемом примере под необходимым пользователем создавался лишь один документ начисления заработной платы. Эти данные помогут руководителю контролировать работников.

Кроме того, эта обработка пригодится и в иных ситуациях. К примеру, при задвоении номенклатурных позиций (для того, чтобы удалить лишний элемент), либо при поиске мест применения отмеченных для удаления элементов справочника (для того, чтобы исправить учетную информацию в базе).

Поиск ссылок на объект

Я
   Юрий Михалыч

11.11.08 — 11:44

Можно както посмотреть стандартную процедуру Поиска ссылок на объект?

   Юрий Михалыч

1 — 11.11.08 — 11:44

для 8ки

   ДенисЧ

2 — 11.11.08 — 11:45

Что значит «посмотреть» ?

   nop

3 — 11.11.08 — 11:45

Можно, вот

НайтиСсылки(<?>,);
Синтаксис:
НайтиСсылки(<Объекты>,<Ссылки>)
Назначение:
Находит ссылки на объекты, переданные в списке значений.
Параметры:
<Объекты> — конкретное значение искомого объекта или значение типа »СписокЗначений», в котором данной процедуре передаются объекты, по которым надо найти ссылки.
<Ссылки> — идентификатор объекта типа »ТаблицаЗначений», в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. объект на который ссылаются; 2. объект, который содержит ссылку; 3. комментарий к ссылке.

   Юрий Михалыч

4 — 11.11.08 — 11:46

(3) Шпасиба

   Юрий Михалыч

5 — 11.11.08 — 11:47

(3) ой, мне для 8ки

   Sadovnikov

6 — 11.11.08 — 11:48

Глобальный контекст

НайтиПоСсылкам (FindByRef)

Синтаксис:

НайтиПоСсылкам(<Список ссылок>)

Параметры:

<Список ссылок> (обязательный)

Тип: Массив. Массив со списком ссылок на объекты, ссылки на которые нужно найти.

Возвращаемое значение:

Тип: ТаблицаЗначений. Возвращает ссылки на найденные объекты в виде ТаблицаЗначений, состоящей из колонок с индексами: 0 — искомая ссылка; 1 — ссылка на объект, если найдена ссылка в объектной таблице; ключ записи, если ссылка найдена в независимом регистре сведений; ссылка на документ-регистратор для всех остальных необъектных таблиц; 2 — объект метаданных, которому соответствуют данные из колонки 1.

Описание:

Осуществляет поиск ссылок на объекты, переданные в параметре <Список ссылок>.

Пример:

Ссылки = НайтиПомеченныеНаУдаление();

ТабСсылок = НайтиПоСсылкам(Ссылки);

Для Каждого Ссылка из ТабСсылок Цикл

   Сообщить («» + СокрЛП(Ссылка[0]) + » » + СокрЛП(Ссылка[1]));

КонецЦикла;

   ДенисЧ

7 — 11.11.08 — 11:49

Мда… Массовое воровство СП набирает обороты… Кризис… Жрать нечего, пытаются жрать СП, хотя его курить надо…

   Юрий Михалыч

8 — 11.11.08 — 11:50

(2) Посмотреть — значит найти. Это процедура в контекстном меню выбирается для объектов конфигурации.

   Юрий Михалыч

9 — 11.11.08 — 11:54

Нипанятно…

А если мне надо найти все ссылки на объект метаданных например справочника  как мне надо написать?

сцылка = Справочники.Контрагенты.ПолучитьСсылку();

Ссылки= Новый Массив;

Ссылки.Добавить(сцылка) ;

СсылкиСС = НайтиПоСсылкам(Ссылки);

Вот так?

   MRAK

10 — 11.11.08 — 11:57

на ИТС есть обработка удаления помеченных…

   Юрий Михалыч

11 — 11.11.08 — 12:00

да на кой х мне помеченные?

   dimoff

12 — 11.11.08 — 12:02

(9) Нет, все элементы справочника собрать в массив

   Immortal

13 — 11.11.08 — 12:02

алгоритм посмотреть и не задавать глупых вопросов

   Mitriy

14 — 11.11.08 — 12:04

(11) а на кой х справшивать?

   Юрий Михалыч

15 — 11.11.08 — 12:13

(10) за какой месяц ИТС?

   Mitriy

16 — 11.11.08 — 12:19

(15) любой, поиском УдалениеПомеченныхОбъектов.epf, а еще тоже интересная в этом смысле ПоискИЗаменаЗначений.epf (там же)

   афаф

17 — 11.11.08 — 12:19

// Как то так, я думаю…

   Массив = Новый Массив;

   Массив.Добавить(МояСсылка);

   Сообщить(«Старт в «+ТекущаяДата());

   ТабСсылок = НайтиПоСсылкам(Массив);    

   Для Каждого Ссылка1 из ТабСсылок Цикл

         Сообщить (»  » + СокрЛП(Ссылка1[0]) + » » + СокрЛП(Ссылка1[1]));

   КонецЦикла;

   Сообщить(«Конец в «+ТекущаяДата());

   Юрий Михалыч

18 — 11.11.08 — 12:36

Нет, мне нужно получить ссылки на объект метаданных как в конфигураторе — правой кнопкой по справочнику — поиск ссылок на объект

   Mitriy

19 — 11.11.08 — 12:40

упс…

   MRAK

20 — 11.11.08 — 12:42

ужос мля… вопросы учимся правильно задавать…

   Юрий Михалыч

21 — 11.11.08 — 12:44

(20) смотри (8)

   NcSteel

22 — 11.11.08 — 12:46

(21) Цикл по методанным.

   Юрий Михалыч

23 — 11.11.08 — 13:00

Массив = Новый Массив;

Массив.Добавить(«Справочники.Конрагенты»);

Массив.Добавить(«Документы»);

Для Каждого ТекЭлемент Из Массив Цикл

   Для Каждого ТекМета Из Метаданные[ТекЭлемент] Цикл

       Сообщить(ТекМета.Имя);

   КонецЦикла;

КонецЦикла;

не выходит каменный цветок

  

Юрий Михалыч

24 — 11.11.08 — 14:03

ап

  • Главная
  •  / 
  • Статьи
  •  / 
  • Программирование на 1С:Предприятие
  •  / 
  • Найти объекты, которые ссылаются на текущий объект

Для того, чтобы найти все ссылки на текущий объект, используйте функцию:

НайтиПоСсылкам()

Внимание! Для успешной работы этой функции необходимо, чтобы был доступ на чтение ко всем объектам, которые ссылаются и на которые ищется ссылка. Для этого необходимо наличие прав на них и отсутствие блокировок этих объектов другими пользователями.


Пример кода:

Ссылки1 = НайтиПомеченныеНаУдаление();
ТаблицаСсылок = НайтиПоСсылкам(Ссылки1);
Для
Каждого Ссылка из ТаблицаСсылок Цикл
Сообщить («» + СокрЛП(Ссылка[0]) + » « + СокрЛП(Ссылка[1]));
КонецЦикла
;

Пример кода:

Ссылки = НайтиПомеченныеНаУдаление();
ТабСсылок = НайтиПоСсылкам (Ссылки);
Для Каждого Ссылка из ТабСсылок Цикл
Помеченный = Ссылка[0];
СсылаетсяНаПомеченный = Ссылка[1];

Попытка
Сообщить(«…»);
Сообщить(«…»);
Сообщить(«Помеченный = » + Помеченный + «, помечен = » + Помеченный.ПометкаУдаления);
Сообщить(«Ссылается = » + СсылаетсяНаПомеченный + «, помечен = » + СсылаетсяНаПомеченный.ПометкаУдаления);
Исключение
Сообщить(«…»);
Сообщить(ОписаниеОшибки());
Сообщить(«Тип помеченного = » + ТипЗнч(Помеченный));
Сообщить(«Тип помеченного = » + ТипЗнч(СсылаетсяНаПомеченный));
КонецПопытки;

КонецЦикла;

Возврат к списку

Понравилась статья? Поделить с друзьями:
  • Как найти скрытые видео камеры
  • Как найти девушку мужчине овну
  • Корсары гпк как найти ловцов жемчуга
  • Как найти высоту к большей стороне треугольника
  • Как найти основание цилиндра если известен радиус