![]() |
![]() |
|
программный поиск объектов в БД | ☑ | ||
---|---|---|---|---|
0
Stimcool
29.04.11
✎
11:58
|
РИБ. Из главного узла приходит сообщение о том, что объект удален. Как можно программно проверить, не использован ли этот объект в других объектах и можно ли его удалить? Так, же как происходит штатный контроль при удалении помеченных объектов.
|
|||
1
Cube
29.04.11
✎
12:01
|
Синтаксис-помощник украли?
Глобальный контекст.НайтиПоСсылкам (Global context.FindByRef) Глобальный контекст (Global context) НайтиПоСсылкам (FindByRef) Синтаксис: НайтиПоСсылкам(<СписокСсылок>) Параметры: <СписокСсылок> (обязательный) Тип: Массив. Массив со списком ссылок на объекты, ссылки на которые нужно найти. Возвращаемое значение: Тип: ТаблицаЗначений. Возвращает ссылки на найденные объекты в виде ТаблицаЗначений, состоящей из колонок с индексами: 0 - искомая ссылка; 1 - ссылка на объект, если найдена ссылка в объектной таблице; ключ записи, если ссылка найдена в независимом регистре сведений; ссылка на документ-регистратор для всех остальных необъектных таблиц; 2 - объект метаданных, которому соответствуют данные из колонки 1. Описание: Осуществляет поиск ссылок на объекты, переданные в параметре <СписокСсылок>. Доступность: Сервер, толстый клиент, внешнее соединение. Пример: Ссылки = НайтиПомеченныеНаУдаление(); ТабСсылок = НайтиПоСсылкам(Ссылки); Для Каждого Ссылка из ТабСсылок Цикл Сообщить ("" + СокрЛП(Ссылка[0]) + " " + СокрЛП(Ссылка[1])); КонецЦикла; |
|||
2
Stimcool
29.04.11
✎
12:02
|
(1) ну чтобы знать, что искать, нужно хотя бы знать название. Спасибо :)
|
|||
3
Ненавижу 1С
гуру
29.04.11
✎
12:02
|
(2) вообще то там структурировано по папочкам
|
|||
4
Cube
29.04.11
✎
12:03
|
(2) Я тоже не знал, что искать, но пользоваться поиском умею. Пожалуйста :)
|
|||
5
Stimcool
29.04.11
✎
12:48
|
дабы не плодить новую ветку:
почему не регистриуются для глУзла объекты: Процедура ПередУдалениемСправочникаПередУдалением(Источник, Отказ) Экспорт Если ПланыОбмена.ГлавныйУзел() = неопределено Тогда//это СБ или ЦБ Возврат; КонецЕсли; // это ПБ Если Источник.ОбменДанными.Загрузка Тогда //Проверим, если ли ссылки на объект МассивСсылокПоиска = Новый Массив(); МассивСсылокПОиска.Добавить(Источник.Ссылка); ТЗНайденныхСсылок = НайтиПоСсылкам(МассивСсылокПОиска); Если ТЗНайденныхСсылок.Количество() > 0 Тогда ПЛаныОбмена.ЗарегистрироватьИзменения(ПланыОбмена.ГлавныйУзел(),Источник); Отказ = ИСТИНА; КОнецЕсли; КонецЕсли;//Загрузка = ИСТИНА КонецПроцедуры зы. отладчик доходит до ПЛаныОбмена.Зарегистрирова.. , но Источник не регистрируется почему-то |
|||
6
Stimcool
29.04.11
✎
12:53
|
апю
|
|||
7
Живой Ископаемый
29.04.11
✎
12:56
|
если транзакция отменяется, то внутренние транзакции тоже отменятся
|
|||
8
Stimcool
29.04.11
✎
13:06
|
(7) закомментил Отказ, все равно не регистрируется, хотя отладчиком проходит
|
|||
9
Живой Ископаемый
29.04.11
✎
13:07
|
рассказывай, как удостоверился что не регистрируется
|
|||
10
Stimcool
29.04.11
✎
13:08
|
(9) типовая обработка Регистрация изменений для объекта. Да и не вижу в ЦБ этого объекта. Простой запрос к таблице изменений тоже не показывает регистрацию этого объекта
|
|||
11
Stimcool
29.04.11
✎
13:12
|
блин.. эта процедура же срабатывает в момент загрузки объектов. Можно ли при этом регистрировать изменения..
|
|||
12
Живой Ископаемый
29.04.11
✎
13:17
|
ну... если Источник.ССылка не равно ПустаяССылка() то наверное да
|
|||
13
Stimcool
29.04.11
✎
13:18
|
(12) не равно
|
|||
14
Живой Ископаемый
29.04.11
✎
13:18
|
попробуй ПЛаныОбмена.ЗарегистрироватьИзменения(ПланыОбмена.ГлавныйУзел(),Источник.Ссылка);
|
|||
15
Stimcool
29.04.11
✎
13:23
|
неа, все равно не регистрируется
|
|||
16
Stimcool
29.04.11
✎
13:29
|
хм. после этой процедуры попадает в исключение процедуры ЗагрузитьCообщениеСИзменениямиОтРИБУзла
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |