Имя: Пароль:
1C
1С v8
удалить не уникальные записи из регистра сведений
0 iQwerty
 
25.06.13
12:58
Процедура ДействияФормыДействие11(Кнопка)
      Запрос = Новый Запрос;
Запрос.текст= "ВЫБРАТЬ
             |    НастройкиПравДоступаПользователей.ОбъектДоступа,
             |    НастройкиПравДоступаПользователей.ВидОбъектаДоступа,
             |    НастройкиПравДоступаПользователей.ОбластьДанных,
             |    НастройкиПравДоступаПользователей.Пользователь,
             |    НастройкиПравДоступаПользователей.ВладелецПравДоступа,
             |    НастройкиПравДоступаПользователей.НаследованаОтВсеПользователи,
             |    НастройкиПравДоступаПользователей.ОбъектДоступа1,
             |    НастройкиПравДоступаПользователей.Чтение,
             |    НастройкиПравДоступаПользователей.Запись,
             |    НастройкиПравДоступаПользователей.ВидНаследованияПравДоступаИерархическихСправочников
             |ИЗ
             |    РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
             |ГДЕ
             |    НастройкиПравДоступаПользователей.ОбъектДоступа = НастройкиПравДоступаПользователей.ОбъектДоступа";
              ВыгрузкаЗапроса = Запрос.Выполнить().Выгрузить();

НаборЗаписей = РегистрыСведений.НастройкиПравДоступаПользователей.СоздатьНаборЗаписей();
НаборЗаписей.Загрузить(ВыгрузкаЗапроса);

НаборЗаписей.Записать();


КонецПроцедуры

ошибка-"Поле объекта не обнаружено (ОбъектДоступа)"
1 ZanderZ
 
25.06.13
12:59
|ГДЕ
             |    НастройкиПравДоступаПользователей.ОбъектДоступа = НастройкиПравДоступаПользователей.ОбъектДоступа";
мощно
2 iQwerty
 
25.06.13
13:00
ой ну там ошибка, в условии, но тем не менне
3 iQwerty
 
25.06.13
13:00
(1) дада, это понятно
4 iQwerty
 
25.06.13
13:02
то есть там Запрос.установитьПараметр("ОбъектДоступа", Регистрсведений.НастройкиПравДоступаПользователей.Объект доступа)
а в условие
ГДЕ
|НастройкиПравДоступаПользователей.ОбъектДоступа-&ОбъектДоступа
5 iQwerty
 
25.06.13
13:04
up
6 zbv
 
25.06.13
13:05
Что то не понял, что хочешь отобрать то ?
7 iQwerty
 
25.06.13
13:05
не уникальные (6) по ОбъектДоступа
8 pessok
 
25.06.13
13:07
Запрос.установитьПараметр("ОбъектДоступа", Регистрсведений.НастройкиПравДоступаПользователей.Объект доступа

лишний пробел

ГДЕ
|НастройкиПравДоступаПользователей.ОбъектДоступа-&ОбъектДоступа

может быть "=", а не "-"?

Да и даже Регистрсведений.НастройкиПравДоступаПользователей.ОбъектДоступа - какое-то колдунство, что именно надо отобрать?
9 Maxus43
 
25.06.13
13:07
что значит неуникальные? неуникальные в этот регистр не записать физически
10 pessok
 
25.06.13
13:08
(7) что такое объект доступа? документ?

Запрос.УстановитьПараметр("ОбъектДоступа", Документ.Ссылка)
11 pessok
 
25.06.13
13:09
а объект доступа имеет типы

СправочникСсылка.Подразделения, СправочникСсылка.ГруппыДоступаФизическихЛиц, СправочникСсылка.ПодразделенияОрганизаций, СправочникСсылка.Организации, СправочникСсылка.ГруппыЗаявокКандидатов, СправочникСсылка.ВнешниеОбработки

вот и думай отсюда
12 Ctrekoza
 
25.06.13
13:13
(0) Это при обновлении на 3.0 с релиза 2.0.48.9?
У меня так было.:) Зайти в режим предприятие выбрать регистр сведений настройки прав доступа пользователей и все удалить.
Но: если обновляете на 3.0, потом выскочит другой дибилизм. Будет искать АДВ62 и не будет обновляться ни за что в монопольном режиме.:)
13 iQwerty
 
25.06.13
13:23
(8) вобще там неравнество должно быть тк загружается набор тех записей, какой выбрался запросом (9) записываются , наверное (12)говорит как раз об этом
14 iQwerty
 
25.06.13
13:24
(8) при равенстве очищается весь регистр
15 iQwerty
 
25.06.13
13:31
(11) Запрос.УстановитьПараметр("ОбъектДоступа", справочник.Ссылка) ?
16 iQwerty
 
25.06.13
13:32
(11) просто нужно наверняка что бы не возится несколько раз с загружением .дт
17 hhhh
 
25.06.13
13:35
(16) просто вручную удалите и всё.
18 iQwerty
 
25.06.13
13:36
(17) их 2000
19 ZanderZ
 
25.06.13
13:39
выбрать различные, выгрузить в тз, почистить регистр, загрузить из тз, не ?
20 pessok
 
25.06.13
13:39
(18)

внезапно

Набор = Регистрсведений.НастройкиПравДоступаПользователей.СоздатьНаборЗаписей;
Набор.Записать();
21 pessok
 
25.06.13
13:40
создатьнаборзаписей() т.е.
22 hhhh
 
25.06.13
13:40
(17) если одну штуку в секунду удалять, минут за 40 справитесь. А с этой программой вы неделю потеряете.
23 pessok
 
25.06.13
13:44
+(20) отбор не забыть только :)
24 iQwerty
 
25.06.13
13:56
(22) мне же не все надо удалить, а только не уникальные, отбирать их дольше
25 Ctrekoza
 
25.06.13
22:33
(24) Выгрузка в XML файл, думаю, поможет. Галку не ставить на регистр сведений настройки прав доступа пользователей, выгрузить всю остальную базу и снова загрузить в чистую, может получится быстрее. :)
26 exwill
 
25.06.13
22:44
(0) Я правильно понял твою извращенную мысль, что
условие:  
НастройкиПравДоступаПользователей.ОбъектДоступа = НастройкиПравДоступаПользователей.ОбъектДоступа
должно выдать тебе неуникальные записи?
27 iQwerty
 
26.06.13
09:10
(26) там опечатка.
ТЕма ещё актуально, господа помогите создать процедуру удаляющую не уникальные записи из регистра сведений НастройкиПравДоступаПользователей, фактически достаточно обработать по полю ОбъектДоступа
28 iQwerty
 
26.06.13
09:16
up
29 iQwerty
 
26.06.13
09:21
up((
30 hhhh
 
26.06.13
09:45
(29) ну так может

Запрос.текст= "ВЫБРАТЬ
             |    НастройкиПравДоступаПользователей.ОбъектДоступа,
             |    МАКСИМУМ(НастройкиПравДоступаПользователей.ВидОбъектаДоступа),
             |    МАКСИМУМ(НастройкиПравДоступаПользователей.ОбластьДанных),
             |    МАКСИМУМ(НастройкиПравДоступаПользователей.Пользователь),
             |    МАКСИМУМ(НастройкиПравДоступаПользователей.ВладелецПравДоступа),
             |    МАКСИМУМ(НастройкиПравДоступаПользователей.НаследованаОтВсеПользователи),
             |    МАКСИМУМ(НастройкиПравДоступаПользователей.ОбъектДоступа1),
             |    МАКСИМУМ(НастройкиПравДоступаПользователей.Чтение),
             |    МАКСИМУМ(НастройкиПравДоступаПользователей.Запись),
             |    МАКСИМУМ(НастройкиПравДоступаПользователей.ВидНаследованияПравДоступаИерархическихСправочников)
             |ИЗ
             |    РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
             ";
              ВыгрузкаЗапроса = Запрос.Выполнить().Выгрузить();

НаборЗаписей = РегистрыСведений.НастройкиПравДоступаПользователей.СоздатьНаборЗаписей();
НаборЗаписей.Загрузить(ВыгрузкаЗапроса);

НаборЗаписей.Записать();
31 patapum
 
26.06.13
09:52
(0) предположим, у двух записей ОбъектДоступа один и тот же, измерения все имеют равные значения, а ресурсы отличаются. какую из этих двух записей удалять?
32 vicof
 
26.06.13
09:53
(31) Это же очевидно, которая не нужна)
33 iQwerty
 
26.06.13
09:53
(30) нет не вышло, спасибо
34 iQwerty
 
26.06.13
09:54
(31) все удалять оставить только одну любую, я уже, что только не испробовал((
35 patapum
 
26.06.13
09:54
(32) тогда запрос надо начинать конструкцией
ВЫБРАТЬ ТОЛЬКО НУЖНЫЕ...
36 hhhh
 
26.06.13
09:55
(33) там еще СГРУППИРОВАТЬ ПО надо было
37 iQwerty
 
26.06.13
09:55
(36) это понятно
38 iQwerty
 
26.06.13
09:56
(36) то есть все рано не выходит
39 vicof
 
26.06.13
09:57
(38) Щас все стелепатируют, что же тебя не выходит
40 vicof
 
26.06.13
09:57
+(38) из тебя
41 iQwerty
 
26.06.13
09:57
(39) он ничего не удаляет
42 patapum
 
26.06.13
09:58
(39) каменный цветочек...
телепатирую: надо как минимум в запросе КАКи проставить...
43 vicof
 
26.06.13
09:59
(41) Ну ок, проанализируй проблему, залезь в отладчик. Я канеш, могу это за тебя сделать, но тогда придется брат ьс тебя денег, а мне этого не хочется.
44 iQwerty
 
26.06.13
09:59
(42) м?
45 patapum
 
26.06.13
10:00
(44) о!
46 iQwerty
 
26.06.13
10:00
(43) :) да я не пойму сам в чем проблема то, столько запросов написал, и вроде все логически правильны
47 patapum
 
26.06.13
10:02
(46) подсказываю: залезть в отладчик, посмотреть, что ты выгрузил из запроса - это тот результат, который нужен? и разобраться, записывается он в регистр или нет?
48 iQwerty
 
26.06.13
10:43
ничего не выходит помогите отцы 1с
49 hhhh
 
26.06.13
10:50
скорее всего нет прав у пользователя на запись в регистр НастройкиПравДоступаПользователей
50 acsent
 
26.06.13
10:52
как в регистре сведений могут быть неуникальные?
51 hhhh
 
26.06.13
11:14
(50) может несколько измерений. Еще есть измерения кроме объекта доступа.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший