|
Удаление своих записей регистра сведений kogotaz, X Leshiy, timurhv, palsergeich, Timon1405, Волшебник, H A D G E H O G s, ReaLg, Bigbro, CepeLLlka, crotnn, Amra, Михаил Козлов, PR, okmail, paramedic, integer, Vstur, alexxx961503, AlexKimp, trooba, d4rkmesa, KJlag, GreenDay1986, Vostochnick, Prog_man, maxab72, maxar, calmius, АгентБезопаснойНацио, Garykom, shuhard, spiller26, alex73, laeg, Gucci76, RomanYS, Ненавижу 1С, 2S, p-soft, VanSan, kir-g, Radion
| ☑ | ||
|---|---|---|---|---|
|
0
kogotaz
04.05.26
✎
16:12
|
На всякий случай: конфигурация нетиповая, УФ.
Есть регистр сведений, регистратору не подчинен. Доступ к записям разграничивается RLS. Пишу серверную процедуру, которая вызывается пользователем. Суть - чтобы пользователь удалил все "свои" записи (которые ему доступны). Код такой, и вроде бы работает: Выборка = РегистрыСведений.НазваниеРегистраСведений.Выбрать(); Пока Выборка.Следующий() Цикл Выборка.ПолучитьМенеджерЗаписи().Удалить(); КонецЦикла; Но работает только в случае, если в регистре нет "чужих" записей. Если же есть: Ошибка при вызове метода контекста (Следующий) Причина: У пользователя недостаточно прав на исполнение операции над базой данных. |
|||
|
1
Radion
04.05.26
✎
16:15
|
(0) может через запрос проще "ВЫБРАТЬ РАЗРЕШЕННЫЕ"
|
|||
|
2
X Leshiy
04.05.26
✎
16:15
|
(1) Опередил)
|
|||
|
3
paramedic
04.05.26
✎
16:16
|
Делайте выборку запросом с инструкцией РАЗРЕШЕННЫЕ (более правильно)
Ну или обертывайте удаление в Попытку (по тупому). |
|||
|
4
kogotaz
04.05.26
✎
16:28
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрСведений.НазваниеРегистраСведений"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Выборка.ПолучитьМенеджерЗаписи().Удалить(); КонецЦикла; Метод объекта не обнаружен (ПолучитьМенеджерЗаписи) |
|||
|
5
kogotaz
04.05.26
✎
16:36
|
Что тут вместо менеджера записи использовать?
|
|||
|
6
paramedic
04.05.26
✎
16:36
|
(4) Естественно. Откуда в выборке запроса менеджер записи.
Вы создаете менеджер записи, заносите в него измерения и удаляете. |
|||
|
7
kogotaz
04.05.26
✎
16:39
|
И еще вопрос, лучше ВЫБРАТЬ РАЗРЕШЕННЫЕ или писать условием?
|
|||
|
8
paramedic
04.05.26
✎
16:40
|
(7) Если у вас RLS, то РАЗРЕШЕННЫЕ.
|
|||
|
9
kogotaz
04.05.26
✎
16:44
|
(8) Спасибо.
|
|||
|
10
timurhv
04.05.26
✎
16:55
|
(0) можно случайно не ту роль дать пользователю и весь регистр грохнет? :)
|
|||
|
11
kogotaz
04.05.26
✎
17:23
|
И всё-таки не могу понять, что делать после запроса...
|
|||
|
12
Волшебник
04.05.26
✎
17:24
|
(11) Вам ещё рано удалять записи из регистра.
|
|||
|
13
timurhv
04.05.26
✎
17:30
|
(11) попробуйте сразу новомодный способ
https://infostart.ru/1c/articles/2508120/ |
|||
|
14
kogotaz
04.05.26
✎
17:49
|
(13) Работает. Но код дурацкий какой-то.
|
|||
|
15
timurhv
04.05.26
✎
18:00
|
(14) Можно так:
УдаляемыеЗаписи = Запрос.Выполнить().Выгрузить(); Если НЕ УдаляемыеЗаписи.Количество() = 0 Тогда НаборЗаписей = РегистрыСведений.НазваниеРегистраСведений.СоздатьНаборЗаписей(); НаборЗаписей.Загрузить(УдаляемыеЗаписи); НаборЗаписей.Записать(РежимЗамещения.Удаление); КонецЕсли; |
|||
|
16
Волшебник
04.05.26
✎
18:06
|
(15) это шутка?
|
|||
|
17
timurhv
04.05.26
✎
18:10
|
(16) нет, новый способ удаления из регистров, чтобы не выполнять в цикле. Регистр в (0) независимый, поэтому РасширенныеРежимыЗамещения можно не указывать
https://wonderland.v8.1c.ru/blog/novye-rezhimy-zapisi-podchinennykh-registrov-svedeniy-i-registrov-nakopleniya/ |
|||
|
18
kogotaz
04.05.26
✎
18:32
|
(15) Для справки. Не работает. Ошибка при вызове метода контекста (Загрузить) - Несоответствие типов (параметр номер '1').
|
|||
|
19
timurhv
04.05.26
✎
18:42
|
(18) УдаляемыеЗаписи - массив чтоли?
|
|||
|
20
kogotaz
04.05.26
✎
18:48
|
(19) Вот код.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрСведений.НазваниеРегистраСведений"; УдаляемыеЗаписи = Запрос.Выполнить().Выбрать(); НаборЗаписей = РегистрыСведений.НазваниеРегистраСведений.СоздатьНаборЗаписей(); НаборЗаписей.Загрузить(УдаляемыеЗаписи); НаборЗаписей.Записать(РежимЗамещения.Удаление); |
|||
|
21
X Leshiy
04.05.26
✎
18:49
|
(20) рукалицо.jpg
|
|||
|
22
X Leshiy
04.05.26
✎
18:50
|
Пытаться загрузить выборку это пять)
Правильно было в (12) сказано) |
|||
|
23
kogotaz
04.05.26
✎
18:51
|
Точно. В (15) же выгрузить...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |