Для 8.х НайтиПоСсылкам (FindDataByRef)
Синтаксис:
НайтиПоСсылкам (< Список ссылок> )
Параметры:
<Список ссылок> Обязательный
Тип: Массив. Массив со списком ссылок на объекты, ссылки на которые нужно найти.
Возвращаемое значение:
Тип: ТаблицаЗначений. Таблица значений, состоящая из колонок с индексами: 0 — Искомая ссылка; 1 — Ссылка на объект, который содержит искомую ссылку.
Описание:
Осуществляет поиск ссылок на объекты.
Код 1C v 8.х
//Примеры:
Ссылки = НайтиПомеченныеНаУдаление();
ТабСсылок = НайтиПоСсылкам (Ссылки);
Для Каждого Ссылка из ТабСсылок Цикл
Сообщить (" " + Сокр(Ссылка[0]) + " " + Сокр(Ссылка[1]));
КонецЦикла;
//или
Массив = Новый Массив;
Массив.Добавить(СвылкаНаИскомыйОбъект);
СсылкиНаОбъект = НайтиПоСсылкам(Массив);
Для каждого элем из СсылкиНаОбъект цикл
Сообщить(элем);
ОбработкаПрерыванияПользователя();
КонецЦикла;
Функция НайтиПоСсылке имеет особенность: для корректной её работы необходимо, чтоб все объекты были доступны на чтение. Если у вас есть роли, имеющие ограничение на чтение, то вызов функции НайтиПоСсылке можно выполнять только в привилегированном модуле, иначе может возникать ошибка такого рода:
НайтиПоСсылкам(Ссылки) {(1)}: Ошибка при вызове метода контекста (НайтиПоСсылкам): У пользователя недостаточно прав на исполнение операции над базой данных.
Для 7-рки — НайтиСсылки
Находит ссылки на объекты, переданные в списке значений.
Синтаксис:
НайтиСсылки(<Объекты>,<Ссылки>)
Англоязычныйсиноним:
FindReferences
Параметры:
<Объекты> Конкретное значение объекта илиобъект типа СписокЗначений, в котором данной процедуре передаются объекты, по которым надо найти ссылки.
<Ссылки> Идентификатор объекта типа ТаблицаЗначений, в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. Объект — объект, на который ссылаются; 2. Ссылка — объект, который содержит ссылку; 3. Комментарий — комментарий кссылке.
Описание:
Процедура НайтиСсылки находит ссылки на переданные в списке объекты, и помещает их в таблицу значений.
Код 1C v 7.x
СсылкиТЗ=СоздатьОбъект("ТаблицаЗначений");
НайтиСсылки(СсылкаНаТовар,СсылкиТЗ);
//В результате мы получаем ТЗ с ссылками на данный элемент
Информация взята с сайта http://helpf.pro
Программа 1С в своей структуре позволяет определить ссылочный тип данных для реквизитов справочников, документов, измерений регистров и т. д. Источником информации для таких элементов будут данные других объектов.
Обработка в программе 1С Поиск ссылок на объект позволяет найти в базе данных все места, где использован указанный объект. Функцию используют:
- для проверки ссылки перед удалением, чтобы не повредить целостность базы;
- быстрого поиска всех объектов, где использовался элемент, например, для его замены;
- просмотра истории использования элемента в других объектах.
Механизм поиска ссылок встроен во все типовые конфигурации. Примеры рассмотрены на 1С 8.3 Бухгалтерия.
Содержание
- 1 Запуск и использование обработки в режиме 1С:Предприятия
- 2 Поиск ссылок на объект в конфигураторе
- 3 Программный поиск ссылок на объекты
- 3.1 Вам будет интересно
Запуск и использование обработки в режиме 1С:Предприятия
Чтобы начать поиск ссылок на объекты в 1С 8.3:
Программа 1С хоть и позволяет выделить в окне выбора несколько элементов, но в конечное поле Объект поместить только один, выделенный последним. Т. е. задать поиск сразу по нескольким ссылкам невозможно.
Поиск ссылок на объект в конфигураторе
В работу конфигуратора тоже встроен механизм поиска ссылок на объект. Только ссылки он ищет не в информационной базе среди данных, введенных пользователем, а в структуре конфигурации на использование выбранного объекта метаданных в других элементах конфигурации.
Для запуска нажатием правой кнопкой мыши по объекту вызовите контекстное меню и выберите команду Поиск ссылок на объект.
В окне Поиск ссылок отметьте места, которые требуется проанализировать на наличие искомого объекта:
В результат поиска не включаются макеты, на которых расположены одноименные с искомым объектом параметры. Для подобного анализа лучше воспользуйтесь Глобальным поиском.
Исключения возникают, только если свойство ПараметрРасшифровки ячейки макета совпадает с наименованием источника поиска.
Список мест в окне Поиск ссылок является фиксированным, его нельзя дополнить или изменить.
Результат поиска отображается в виде служебного сообщения.
Поиск выполняется только по одному объекту, его нельзя применить к группе или нескольким выделенным объектам. Но можно использовать на реквизитах, табличных частях, командах, формах целиком и т. д. Для элементов формы функция не применяется.
Программный поиск ссылок на объекты
В 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 – Все функции).
В перечне найти «Стандартные» – «Поиск ссылок на объекты»:
В появившемся окне в поле «Объект» через 3 точки выбрать объект, требующий анализа.
Например, необходима проверка того, какие документы корректировались определенным пользователем. Для этих целей в поле «Объект» выбрать «Пользователь»:
Появляется дополнительное окно с указанием всех пользователей этой конфигурации.
По нажатию кнопки «Найти ссылки» конфигурация выдаст все справочники, документы, регистры, где записан интересующий нас пользователь.
Кроме того, в доступных ссылках можно отыскать определенный документ, например, «Начисление заработной платы», нажав на кнопку «Найти».
В итоге получится следующее:
То есть в рассматриваемом примере под необходимым пользователем создавался лишь один документ начисления заработной платы. Эти данные помогут руководителю контролировать работников.
Кроме того, эта обработка пригодится и в иных ситуациях. К примеру, при задвоении номенклатурных позиций (для того, чтобы удалить лишний элемент), либо при поиске мест применения отмеченных для удаления элементов справочника (для того, чтобы исправить учетную информацию в базе).
Поиск ссылок на объект |
Я |
11.11.08 — 11:44
Можно както посмотреть стандартную процедуру Поиска ссылок на объект?
1 — 11.11.08 — 11:44
для 8ки
2 — 11.11.08 — 11:45
Что значит «посмотреть» ?
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ки
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
Нипанятно…
А если мне надо найти все ссылки на объект метаданных например справочника как мне надо написать?
сцылка = Справочники.Контрагенты.ПолучитьСсылку();
Ссылки= Новый Массив;
Ссылки.Добавить(сцылка) ;
СсылкиСС = НайтиПоСсылкам(Ссылки);
Вот так?
10 — 11.11.08 — 11:57
на ИТС есть обработка удаления помеченных…
11 — 11.11.08 — 12:00
да на кой х мне помеченные?
12 — 11.11.08 — 12:02
(9) Нет, все элементы справочника собрать в массив
13 — 11.11.08 — 12:02
алгоритм посмотреть и не задавать глупых вопросов
14 — 11.11.08 — 12:04
(11) а на кой х справшивать?
15 — 11.11.08 — 12:13
(10) за какой месяц ИТС?
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
Нет, мне нужно получить ссылки на объект метаданных как в конфигураторе — правой кнопкой по справочнику — поиск ссылок на объект
19 — 11.11.08 — 12:40
упс…
20 — 11.11.08 — 12:42
ужос мля… вопросы учимся правильно задавать…
21 — 11.11.08 — 12:44
(20) смотри (8)
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];
Попытка
Сообщить(«…»);
Сообщить(«…»);
Сообщить(«Помеченный = » + Помеченный + «, помечен = » + Помеченный.ПометкаУдаления);
Сообщить(«Ссылается = » + СсылаетсяНаПомеченный + «, помечен = » + СсылаетсяНаПомеченный.ПометкаУдаления);
Исключение
Сообщить(«…»);
Сообщить(ОписаниеОшибки());
Сообщить(«Тип помеченного = » + ТипЗнч(Помеченный));
Сообщить(«Тип помеченного = » + ТипЗнч(СсылаетсяНаПомеченный));
КонецПопытки;
КонецЦикла;
Возврат к списку