Имя: Пароль:
1C
 
ссылки на объект (поиск ссылок на объект)
0 Samosval
 
04.09.06
17:24
Есть ссылка на элемент справочника. Как найти ссылки на документы которые ссылаются на этот элемент справочника ? А еще лучше найти ВСЁ что ссылается на этот элемент справочника (движения к примеру).

К примеру как в УПП в договоре контрагента можно по "Перейти" посмотреть "все документы по договору" ... только там не будет дока "перерасчет вал. разниц" по моему ...
1 PR
 
04.09.06
17:27
Читай ЖКК, неуч
2 Samosval
 
04.09.06
17:28
да читаю я ... в голове просто все неукладывается ..
3 Samosval
 
04.09.06
17:28
хотел в Найденных получить

//УдалитьОбъекты(ДоговорОбъект,Истина,Найденные);


но что то не получилось, да и удалять мне не надо ;) пока ...
4 asady
 
04.09.06
17:32
(0)
Глобальный контекст
НайтиПоСсылкам (FindByRef)
Синтаксис:
НайтиПоСсылкам(<Список ссылок>)
Параметры:
<Список ссылок> (обязательный)
Тип: Массив. Массив со списком ссылок на объекты, ссылки на которые нужно найти.
Возвращаемое значение:
Тип: ТаблицаЗначений. Возвращает ссылки на найденные объекты в виде ТаблицаЗначений, состоящей из колонок с индексами: 0 - искомая ссылка; 1 - ссылка на объект, если найденная ссылка соответствует объектной таблице или значение, идентифицирующее запись необъектной таблицы; 2 - объект метаданных, которому соответствуют данные, в которых найдена ссылка.
Описание:
Осуществляет поиск ссылок на объекты, переданные в параметре <Список ссылок>.
Пример:
Ссылки = НайтиПомеченныеНаУдаление();
ТабСсылок = НайтиПоСсылкам(Ссылки);
Для Каждого Ссылка из ТабСсылок Цикл
   Сообщить ("" + СокрЛП(Ссылка[0]) + " " + СокрЛП(Ссылка[1]));
КонецЦикла;
5 Shaytan
 
04.09.06
17:32
Бежишь циклом по метаданным и формируешь текст запроса по объектам, в которых есть реквизиты с типом включающим ссылку на нужный справочник.
6 Samosval
 
04.09.06
17:36
(5) меня учили не пользоваться циклами а использовать запросы ;) я уже кое чего нарыл в типовой ...

// Функция проверяет, существуют ли ссылки на договор в движениях регистров накопления.
// Если есть - нельзя менять:
//  - Валюту взаиморасчетов
//  - Ведение взаиморасчетов.
//
// Параметры:
//  Нет.
//
// Возвращаемое значение:
//  Истина - если есть движения, Ложь - если нет.
//
Функция СуществуютСсылки() Экспорт


(4) хм ... дурная моя голова ... а как мне в массив поместить одну ссылку ... а то видно поэтому и не работает ...
7 Samosval
 
04.09.06
17:37
то же , красиво :

Если КритерииОтбора.ДокументыПоДоговоруКонтрагента.Найти(Ссылка).Количество() > 0 Тогда
8 Lendy
 
04.09.06
17:39
(7) не то, так не найдешь везде. Да и руками много работать надо. Смотри (4).
9 Samosval
 
04.09.06
17:42
как мне ссылку поместить в массив (она у меня одна)
10 Samosval
 
04.09.06
17:43
ВыборкаДоговоров это и есть ссылка на которую мне надо найти ссылки
11 Samosval
 
04.09.06
17:47
хммм...

               Ссылки = Новый Массив;
               Ссылки.Очистить();
               Ссылки.Добавить(ВыборкаДоговоров.Ссылка);
               
               
               ТабСсылок = НайтиПоСсылкам(Ссылки);
               Для Каждого Ссылка из ТабСсылок Цикл
                   Сообщить ("" + СокрЛП(Ссылка[0]) + " " + СокрЛП(Ссылка[1]));
               КонецЦикла;
               
               //ДоговорОбъект.Наименование = "Не использовать !!!";
               //ДоговорОбъект.Записать();
12 Samosval
 
04.09.06
17:57
офигеть ... как он медленно работает ... НайтиПоСсылкам(Ссылки);


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