|
СправочникОбъект.<ИмяСправочника>.Удалить() | ☑ | ||
---|---|---|---|---|
0
dshka
27.07.15
✎
12:17
|
8.3 УПП
При вызове сабжа формируется запись в регистре сведений, никак не связанном со справочником из которого этот метод вызывается. Почему так? |
|||
1
Альбатрос
27.07.15
✎
12:20
|
(0) 0_o
|
|||
2
Timon1405
27.07.15
✎
12:22
|
подписка на событие
|
|||
3
dshka
27.07.15
✎
12:35
|
(2) Нету подписок. Прошлась глобальным поиском по конфе. Видимо этот метод инициирует такое по всем регистрам. Посмотрела через Ф9 "ЭтотОбъект" из менеджера набора записей. В отборе вот такая фигня
Значение <Объект не найден> (19487:9a3c000c299575a611e53436d3e4d2f5) СправочникСсылка.СохраненныеНастройки |
|||
4
Галахад
гуру
27.07.15
✎
12:37
|
+ 1.
|
|||
5
GROOVY
27.07.15
✎
12:37
|
(1) +1
СправочникОбъект.<ИмяСправочника>.Удалить() Это как? |
|||
6
dshka
27.07.15
✎
12:38
|
(5) Вот так
СправочникОбъект.<Имя справочника>.Удалить (CatalogObject.<Имя справочника>.Delete) СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>) Удалить (Delete) Синтаксис: Удалить() Описание: Удаляет элемент справочника из базы данных. Важно! В отличие от метода УстановитьПометкуУдаления, данный метод производит непосредственное удаление элемента справочника без возможности восстановления и без проверки ссылочной целостности. Использовать данный метод нужно крайне осмотрительно. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Примечание: Для иерархического справочника также удаляются все подчиненные элементы. Пример: Объект.Удалить(); |
|||
7
dshka
27.07.15
✎
12:41
|
Если кто-нибудь может дать ссылку на инфу по механизму работы этого метода, будет очень даже круто. В справке явно не вся важная информация.
|
|||
8
Альбатрос
27.07.15
✎
12:42
|
(7) Метод прост и вся информация по нему указана в СП. А вот ты, Катерина, по-моему что-то не договариваешь. Показывай код, как ты там его юзаешь.
|
|||
9
GROOVY
27.07.15
✎
12:44
|
(6) Так это метод спрОбъекта, синтаксически последняя строка верна: Объект.Удалить()
Судя по тому что написано выше, отрабатывает подписка на событие справочника объекта. |
|||
10
dshka
27.07.15
✎
12:46
|
Процедура ПередУдалением(Отказ)
#Если ТолстыйКлиентОбычноеПриложение Тогда Если ЭтотОбъект.ТипНастройки <> Перечисления.ТипыНастроек.НастройкиОтчета Тогда Возврат; КонецЕсли; Если ЭтотОбъект.Метаданные().Реквизиты.Найти("ОтрицательноеКрасным") <> Неопределено тогда // Проверим возможность удаления варианта пользователем СписокДоступныхВариантов = ТиповыеОтчеты.ПолучитьСписокДоступныхВариантов(ЭтотОбъект.НастраиваемыйОбъект,, Истина, ЭтотОбъект); ДоступныйВариант = СписокДоступныхВариантов.НайтиПоЗначению(ЭтотОбъект.Ссылка); Если НЕ РольДоступна("ПолныеПрава") и (ДоступныйВариант = Неопределено ИЛИ Не ДоступныйВариант.Пометка) Тогда Отказ = Истина; ОбщегоНазначенияЗК.СообщитьОбОшибке("Текущему пользователю запрещено удалять вариант отчета: " + ЭтотОбъект); КонецЕсли; // Если все же вариант отчета удаляем, нужно удалить все настройки пользователей панели пользователя Выборка = ПолучитьВыборкуПодчиненныхСохраненныхНастроек(); Пока Выборка.Следующий() Цикл Объект = Выборка.Ссылка.ПолучитьОбъект(); Объект.Удалить(); КонецЦикла; КонецЕсли; #КонецЕсли КонецПроцедуры (8) Это из общего модуля. Собственно доходит до строчки "Объект.Удалить()" и попадаем в менеджер записи регистра. |
|||
11
Альбатрос
27.07.15
✎
12:48
|
(10) Значит, подписка
|
|||
12
dshka
27.07.15
✎
12:49
|
(11) Гарантировано нет подписки в которой производилась бы запись именно в "мой" регистр. Возможно где-то ведется запись по всем регистрам системы. Как это вычислить?
|
|||
13
GROOVY
27.07.15
✎
12:50
|
Стек вызовов посмотри.
|
|||
14
dshka
27.07.15
✎
12:51
|
(13) Я смотрела. Перед попаданием в менеджер записи мы попадаем в (10)
|
|||
15
Бубка Гоп
27.07.15
✎
12:53
|
(14) а может мы туда не попадаем а возвращаемся?
|
|||
16
GROOVY
27.07.15
✎
12:54
|
> Собственно доходит до строчки "Объект.Удалить()" и попадаем в менеджер записи регистра.
А разве не должен? |
|||
17
dshka
27.07.15
✎
12:55
|
(16) Удаляем из справочника, а попадаем в регистр сведений. По-моему не должен.
|
|||
18
hhhh
27.07.15
✎
12:56
|
(14) ну так и должно быть. Если удаляете элемент справочника, то по всем регистрам в базе, где эта номенклатура как ведущее измерение записана, идет удаление записей регистра. Непонятно, что вас настораживает. Это же элементарное поведение платформы.
|
|||
19
GROOVY
27.07.15
✎
12:56
|
(17) А в менеджер записи справочника попадаем?
|
|||
20
dshka
27.07.15
✎
12:56
|
(15) Мы гарантированно туда не возвращаемся, потому что из менеджера записей мы вылетаем с ошибкой. Но это не важно. Важно понять, почему мы вообще в этот менеджер попадаем.
|
|||
21
dshka
27.07.15
✎
12:58
|
(19) Он пустой.
Ладно, не заморачивайтесь - вижу тема мутная. Тут только спрашивать прямо у источника желтого зла. Иначе будут одни догадки. |
|||
22
GROOVY
27.07.15
✎
13:04
|
(21) Почитайте в документации, что такое ведущее измерение, и чем оно от не ведущего отличается, а так-же о порядке вызова событий записи и удаления.
|
|||
23
dshka
29.07.15
✎
11:42
|
(22) Т.е. при удалении любого объекта базы данных автоматом формируются записи по всем-всем регистрам с отбором по этому объекту?
|
|||
24
dshka
29.07.15
✎
11:48
|
(18) Спасибо. Разобралась благодаря вашему посту. Действительно, у меня ведущее изменерение может принимать значение СправочникСсылка. Я запуталась, потому что сосредоточилась на понятии "движение по регистру".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |