Новый раздел, ошибка dlGroups.Dataset('ID') = null

Добрый день!

Создан новый раздел под пользователем Supervisor. При просмотре раздела под этим пользователем все работает корректно. Если открывать раздел под другими пользователями, то

1) записи не видны
2) при создании новой записи становятся видны остальные
3) при закрытии приложения ошибка "несоответствие типов" в функции

function wnd_BaseWorkspaceOnProfileSerialize(Window, Node) {
        Node.SetAttributeAsStr('SavedGroupID', dlGroups.Dataset('ID'), '');
}

вызываемой из функции function CloseMainForm()
из-за того, что dlGroups.Dataset('ID')=null.

При чем если не заходить в новый раздел, то ошибки нет.
Подозреваю, что это связано с правами в разделе администрирование, но так как на супервизора розданы права такие же, как на другого тестового пользователя, не могу разобраться из-за чего ошибка.

Нравится

19 комментариев

Здравствуйте, Елена.

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

Далее два варианта:

1) Убираем признаки администрируется по записям и т.д. и проверяем.
2) Устанавливаем признаки, устанавливаем нужную группу (либо в клиенте создаем новую, и в администраторе выбираем новую). И в клиенте для данной группы проставить еще раз необходимые права.

По поводу ошибки с группами - здесь в профиль система пытается записать активную на момент покидания раздела группу. Нет доступа к tbl_ВашРазделGroup??

1) не помогло (признак "администрирование по полям" так же убирала)

2) не помогло

здравствуйте, Елена!
попробуйте раздать Права доступа группе "Все брифы", которая создалась по умолчанию (в области групп Вашего раздела). Например, дать группе "Все пользователи" права Чтения (хотя бы). Эти действия в клиенте проделать, зайдя под пользователем супервизор.

Группа "все брифы" по умолчанию не создается. Раздача прав на чтение группе "все пользователи" так же не помогает.

Елена, значит какие-то проблемы с самим разделом.
Пишите на support - здесь нужно анализировать Вашу базу.

"Росинская Лена" написал:Группа "все брифы" по умолчанию не создается. Раздача прав на чтение группе "все пользователи" так же не помогает.

А мы точно друг друга правильно поняли?
Зайти в клиент под супервизором, перейти в свой раздел:

Правой кнопкой на группе -- пункт меню "Права доступа" -- добавить группу "Все пользователи":

Да, действительно, я Вас неправильно поняла. Теперь ошибки нет. Спасибо!

Изанчально в этом окне права были только у Supervisor, так как под этим пользователем создавался раздел. Не понятно только, почему если под другим пользователем добавить запись в раздел, то становятся видны все остальные записи. А так же чем эти права отличаются от настройки прав в разделе администрирование.

И я правильно понимаю, что эти права не должны раздаваться на корневую группу пользователей при создании раздела?

Здравствуйте!


Не понятно только, почему если под другим пользователем добавить запись в раздел, то становятся видны все остальные записи

После добавления записи, в окно реестра отправляет сообщение NOTIFY, которое обновляет реестр данных (выполняет select). Т.к. на уровне БД права на записи в таблице tbl_Brief есть - они отображались. Прав не было на записи в таблице tbl_BriefGroup. Это собственно и ответ на Ваш вопрос


чем эти права отличаются от настройки прав в разделе администрирование.

т.е. разные таблицы.


правильно понимаю, что эти права не должны раздаваться на корневую группу пользователей при создании раздела?

Елена, права на чтения корневой группы раздела должны быть у всех пользователей системы.

Спасибо за пояснения.

"Олейник Дмитрий" написал:Цитата:

правильно понимаю, что эти права не должны раздаваться на корневую группу пользователей при создании раздела?
Елена, права на чтения корневой группы раздела должны быть у всех пользователей системы.

Я имела ввиду автоматически при создании раздела.

Да, должны.

Тогда странно, что при создании раздела с помощью Wizard'а права раздались только пользователю, под которым создавался раздел.

"Росинская Лена" написал:Тогда странно, что при создании раздела с помощью Wizard'а права раздались только пользователю, под которым создавался раздел.

У меня так уже дважды или трижды было, т.е. права НЕ роздавались автоматически (если точно сказать, то случая, чтобы они раздались, не было, я все время вручную проставляла права).
Поэтому я и предположила, что ошибка у Вас возникла из-за этих прав

Действительно, при создании раздела, права доступа мастер выдает лишь пользователя, под которым он был добавлен.
Пожалуйста, учтите данный момент при разработке, и обязательно после добавления добавьте необходимые права на чтение для группы "Все пользователи".

Добрый день!

Теперь при переносе сервисов на читсую базу возникает ошибка при переносе tbl_BriefGroup

Пакет сервисов в приложении.
В сервисы Scr_WindowUtils, Scr_Main, Wnd_Main, Scr_GraphUtils допсианы нужные строки.
Группа таблиц TG_BRIEF в разделе администрирования добавлена.

Подскажите пожалуйста, как бороться с ошибкой?

Здравствуйте, Лена!
при переносе сервисов лучше начинать с "независимых" таблиц, таких, как справочники к разделу -- потом таблицы разделов -- потом таблицы деталей.

Данная ошибка говорит о том, что у Вас есть поле в таблице со ссылкой на несуществующую таблицу -- вот оно и ругается.
Т.е. просмотрите свою таблицу раздела и загрузите сначала те таблицы, на которые у Вас в разделе есть ссылки. а потом уже загружайте саму таблицу.

Да, я знаю и именно так и делаю.
Сначала загружаю tbl_Brief и все прочие, затем пытаюсь tbl_BriefGroup.

Создала таблицу руками, остальные загрузились без проблем. Добавила в таблицы данные:

insert into  [Terrasoft332_Test_2].[dbo].[tbl_BriefGroup]
values
(newid(),	getdate(),	'251FB9AC-C17E-4DF7-A0CB-D591FDB97462',	getdate(),	'251FB9AC-C17E-4DF7-A0CB-D591FDB97462',	'Все брифы',	NULL,	NULL,	NULL,	0,	NULL)
 
  insert into [Terrasoft332_Test_2].[dbo].[tbl_BriefGroupRight]
  values (NEWID(),	[здесь ID Группы],	'EAB3D8EC-5400-4A26-8634-ACA9203EEB8E',	1,	1,	1,	1)

Однако как до, так и после добавления данных ошибка


Здравствуйте.

Ругается на представление vw_BriefGroup.

Создайте представление на основе таблицы tbl_BriefGroup, либо зайдите под администратором и перераздайте права на группы, чтобы представление создалось автоматически.

Спасибо за ответ. Да, уже создала представления, ошибки больше нет.
А что нужно сделать, чтобы при создании таблицы представление создавалось автоматически?

Елена, нужно пересохранить таблицу из под ТС Администратор, со включенным признаком "администрируется по записям".

Показать все комментарии