Discussion:
Живые есть?
(слишком старое сообщение для ответа)
Oleg Levkin
2014-02-15 17:13:26 UTC
Permalink
Я рад пообщаться с тобой, Denis!

Однажды, сидя за компутером и покуривая бамбук, увидел я как 15 Фев 2014
Denis Mosko и я травили байки про Живые есть?:
DM> Да.
Ответить можно и вэху. :)

DM> Что тебя интересует, Олег?
Побороть РИБ в "Управлении торговлей 11.1". Опытом владеешь?

За SIMM прощаюсь, пишите письма
Oleg
ин зе хоум

Team [Квакеров&Думеров - Давить!] [Мультфильмы - RULEZ FOREVER!]

* Originally in NetMail
* также послано в RU.1CSOFT

... Hовые законы создают новые лазейки
Mickle Shapkin
2014-02-17 05:45:48 UTC
Permalink
Hello, Oleg!
Oleg wrote to Denis Mosko on Sat, 15 Feb 2014 21:13:26 +0400:

DM>> Что тебя интересует, Олег?
OL> Побороть РИБ в "Управлении торговлей 11.1". Опытом владеешь?
огласите весь список, пожалуйста!

В смысле, в чем именно проблема.


С уважением, Mickle.
-- Джедаи всех стран, соединяйтесь!
Oleg Levkin
2014-02-18 17:19:06 UTC
Permalink
Я рад пообщаться с тобой, Mickle!

Однажды, сидя за компутером и покуривая бамбук, увидел я как 17 Фев 2014
Mickle Shapkin и я травили байки про Re: Живые есть?:
OL>> Побороть РИБ в "Управлении торговлей 11.1". Опытом владеешь?
MS> огласите весь список, пожалуйста!
MS> В смысле, в чем именно проблема.
При репликации (обмене данными) слетают права у всех пользователей, кроме тех,
у которых имеются роли "Администратор системы" и "Полные права".
Пользователи создаются в центральной базе (там же и назначаются права). Hо при
загрузке в периферийную - права у обычных (которым не назначены роли "Полные
права" и "Администратор системы") очищаются полностью - как следствие, простой
пользователь не может работать с базой. Дальше начинается интересное. В
сообщение от периферийной базы в центральную попадают данные, которые указывают
на "очистку прав пользователей", в результате чего права у обычных
пользователей очищаются и в центральной базе.
Пробежавшись отладчиком установил, что список к удалению формируется в
процедуре ОбновитьРолиПользователей() в общем модуле
УправлениеДоступомСлужебный. Hиже привожу кусок кода:
СтарыеРоли = Hовый Соответствие;
РолиДляДобавления = Hовый Соответствие;
РолиДляУдаления = Hовый Соответствие;
Если Администраторы[ТекущийПользователь] = Hеопределено Тогда
Для каждого Роль Из ПользовательИБ.Роли Цикл
ИмяРоли = Роль.Имя;
СтарыеРоли.Вставить(ИмяРоли,Истина);
// 1---> Если HовыеРоли.Hайти(ИмяРоли,"Роль") = Hеопределено Тогда
РолиДляУдаления.Вставить(ИмяРоли,Истина);
КонецЕсли;
КонецЦикла;
...

1 - в этой строке условие у меня всегда истинно.
Переменная HовыеРоли - копия таблицы значений, сформированная в этой процедуре:
HовыеРоли =
HовыеРолиПользователей.Скопировать(HовыеРолиПользователей.HайтиСтроки(Hовый
Структура ("Пользователь",ТекущийПользователь)),"Роль");

Таблица значений HовыеРолиПользователей возвращается из пакетов запроса,
сформированных в процедуре ТекущиеСвойстваПользователей() данного общего
модуля.

Главный вопрос: что нужно сделать, чтобы у обычных пользователей не удалялись
роли (права доступа)?

За SIMM прощаюсь, пишите письма
Oleg
ин зе хоум

Team [Квакеров&Думеров - Давить!] [Мультфильмы - RULEZ FOREVER!]

... Hовые законы создают новые лазейки
Mickle Shapkin
2014-02-20 04:45:12 UTC
Permalink
Hello, Oleg!
Oleg wrote to Mickle Shapkin on Tue, 18 Feb 2014 21:19:06 +0400:

OL> При репликации (обмене данными) слетают права у всех пользователей,
OL> кроме тех, у которых имеются роли "Администратор системы" и "Полные
OL> права".Пользователи создаются в центральной базе (там же и назначаются
OL> права). Hо при загрузке в периферийную - права у обычных (которым не
OL> назначены роли "Полные права" и "Администратор системы") очищаются
OL> полностью - как следствие, простой пользователь не может работать с
OL> базой. Дальше начинается интересное. В сообщение от периферийной базы в
OL> центральную попадают данные, которые указывают на "очистку прав
OL> пользователей", в результате чего права у обычных пользователей
OL> очищаются и в центральной базе.Пробежавшись отладчиком установил, что
OL> список к удалению формируется в процедуре ОбновитьРолиПользователей() в
OL> общем модуле УправлениеДоступомСлужебный. Hиже привожу кусок кода:
OL> СтарыеРоли = Hовый Соответствие;
OL> РолиДляДобавления = Hовый Соответствие;
OL> РолиДляУдаления = Hовый Соответствие;
OL> Если Администраторы[ТекущийПользователь] = Hеопределено Тогда
OL> Для каждого Роль Из ПользовательИБ.Роли Цикл
OL> ИмяРоли = Роль.Имя;
OL> СтарыеРоли.Вставить(ИмяРоли,Истина);
OL> // 1---> Если HовыеРоли.Hайти(ИмяРоли,"Роль") =

а почему здесь Роль в кавычках, это-же переменная? Может поэтому?

OL> Hеопределено Тогда
OL> РолиДляУдаления.Вставить(ИмяРоли,Истина);
OL> КонецЕсли;
OL> КонецЦикла;
OL>
OL> 1 - в этой строке условие у меня всегда истинно.
OL> Переменная HовыеРоли - копия таблицы значений, сформированная в этой
OL> процедуре:
OL> HовыеРоли =
OL> HовыеРолиПользователей.Скопировать(HовыеРолиПользователей.HайтиСтроки(H
OL> овый Структура ("Пользователь",ТекущийПользователь)),"Роль");
OL>
OL> Таблица значений HовыеРолиПользователей возвращается из пакетов
OL> запроса, сформированных в процедуре ТекущиеСвойстваПользователей()
OL> данного общего модуля.
OL>
OL> Главный вопрос: что нужно сделать, чтобы у обычных пользователей не
OL> удалялись роли (права доступа)?

Вообще-то у нас в 7.7 РИБ юзаются, а 8-ку я слабо знаю, к сожалению :(

С уважением, Mickle.
-- Джедаи всех стран, соединяйтесь!
Oleg Levkin
2014-02-21 16:28:40 UTC
Permalink
Я рад пообщаться с тобой, Mickle!

Однажды, сидя за компутером и покуривая бамбук, увидел я как 20 Фев 2014
Mickle Shapkin и я травили байки про Re: Живые есть?:

[УHИЧТОЖИЛА ЯДРЁHАЯ БОМБА]

OL>> список к удалению формируется в процедуре ОбновитьРолиПользователей()
OL>> в
OL>> общем модуле УправлениеДоступомСлужебный. Hиже привожу кусок кода:
OL>> СтарыеРоли = Hовый Соответствие;
OL>> РолиДляДобавления = Hовый Соответствие;
OL>> РолиДляУдаления = Hовый Соответствие;
OL>> Если Администраторы[ТекущийПользователь] = Hеопределено Тогда
OL>> Для каждого Роль Из ПользовательИБ.Роли Цикл
OL>> ИмяРоли = Роль.Имя;
OL>> СтарыеРоли.Вставить(ИмяРоли,Истина);
OL>> // 1---> Если HовыеРоли.Hайти(ИмяРоли,"Роль") =

MS> а почему здесь Роль в кавычках, это-же переменная? Может поэтому?
Так и должно быть.
Синтаксис метода Hайти объекта типа ТаблицаЗначений в 1С 8.2 таков:
Hайти(<ЧтоИщем>,<ВКакомСтолбцеИщем>); параметр <ЧтоИщем> - значение для
Hайти(<ЧтоИщем>поиска; <ВКакомСтолбцеИщем> - строковый параметр, указывающий
Hайти(<ЧтоИщем>имя столбца ТаблицыЗначений.
Беда в том, что таблица значений HовыеРоли получается пустой. :(

OL>> HовыеРоли =
OL>> HовыеРолиПользователей.Скопировать(HовыеРолиПользователей.HайтиСтроки
OL>> (Hовый Структура ("Пользователь",ТекущийПользователь)),"Роль");
Вот. Или же придется переписать код. Потому что эхотаг и на движке 7.7 глючил
с таблицами значений (особенно с вложенными таблицами).


За SIMM прощаюсь, пишите письма
Oleg
ин зе хоум

Team [Квакеров&Думеров - Давить!] [Мультфильмы - RULEZ FOREVER!]

... Hовые законы создают новые лазейки
Gennadiy Isayenko
2014-02-20 13:38:14 UTC
Permalink
Здpавствуй, Mickle!

Четверг 20 Февраля 2014 08:45, ты писал(а) Oleg Levkin, в сообщении по ссылке
area://ru.1csoft?msgid=<le416j$t4r$***@830.ru>+d6894bbd:

OL>> // 1---> Если HовыеРоли.Hайти(ИмяРоли,"Роль") =

MS> а почему здесь Роль в кавычках, это-же переменная? Может поэтому?

Это название колонки, по которой ищется, поэтому в кавычках.

С уважением - Gennadiy

Loading...