Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 сен 2024, 06:16

Нelp! Пользователи ИБ

Автор Алексей_1985_06, 18 ноя 2019, 20:51

0 Пользователей и 1 гость просматривают эту тему.

Алексей_1985_06

Всех неравнодушных прошу помочь!!! Есть справочник "ЛичныйСостав" в котором есть реквизит "Исполнитель", подскажите как сделать, чтоб при открытии созданного элемента под другим именем, этот реквизит не изменялся (например элемент был создан пользователем: Смирнов А.В., потом его открыл пользователь: Иванов А.В., и нужно чтоб в реквизите оставался Смирнов А.В.) и вторая задача заключается в том, чтоб изменения в реквизитах элемента мог делать только тот, человек, который его создал...
Или может есть другие пути по реализации данного вопроса? Нужно отслеживать все изменения (кто производил и когда) элемента в данном справочнике...Т.е. создал сотрудника - один пользователь, а потом вносил какие-то изменения другой (знать с кого спрашивать за неправильные записи).
Надеюсь, объяснил доступно :D:D:D

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.Исполнитель = ПользователиИнформационнойБазы.ТекущийПользователь();
КонецПроцедуры


Поиск родных

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

Chgdz

Цитата: Алексей_1985_06 от 18 ноя 2019, 20:51
Всех неравнодушных прошу помочь!!! Есть справочник "ЛичныйСостав" в котором есть реквизит "Исполнитель", подскажите как сделать, чтоб при открытии созданного элемента под другим именем, этот реквизит не изменялся (например элемент был создан пользователем: Смирнов А.В., потом его открыл пользователь: Иванов А.В., и нужно чтоб в реквизите оставался Смирнов А.В.) и вторая задача заключается в том, чтоб изменения в реквизитах элемента мог делать только тот, человек, который его создал...
Или может есть другие пути по реализации данного вопроса? Нужно отслеживать все изменения (кто производил и когда) элемента в данном справочнике...Т.е. создал сотрудника - один пользователь, а потом вносил какие-то изменения другой (знать с кого спрашивать за неправильные записи).
Надеюсь, объяснил доступно :D:D:D

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.Исполнитель = ПользователиИнформационнойБазы.ТекущийПользователь();
КонецПроцедуры

читайте внимательно про RLS, это ваш случай

wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Алексей_1985_06

Цитата: Геннадий ОбьГЭС от 19 ноя 2019, 04:29
Хух? Это задача на то - как поотстреливать самому себе ноги!?
Если выполнить второе, то уже нет смысла выполнять первое
Или надо запретить пользователю записывать созданный или измененный им же самим элемент?

Скажите, а вообще возможно сделать так: сейчас у меня в реквизите "исполнитель" записывается текущий пользователь, при создании элемента справочника он записывается.... но если зайти в систему под другим именем, и открыть этот элемент справочника то реквизит меняется.... (опять записывается текущий пользователь)! Как сделать чтобы изменений не происходило?

LexaK

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

Если Не ЗначениеЗаполнено(Исполнитель) Тогда
    //Исполнитель еще пустой, заполняем
    Исполнитель = ...что там у вас
КонецЕсли;

если помогло нажмите: Спасибо!

Алексей_1985_06

Цитата: LexaK от 19 ноя 2019, 15:04
да можно, просто добавьте проверку, там где заполняете Исполнитель, примерно так

Если Не ЗначениеЗаполнено(Исполнитель) Тогда
    //Исполнитель еще пустой, заполняем
    Исполнитель = ...что там у вас
КонецЕсли;


У меня при создании элемента (нового сотрудника) справочника в реквизите "Исполнитель" - прописывается текущий пользователь, т.е. тот человек который создает элемент (сотрудника)
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.Исполнитель = ПользователиИнформационнойБазы.ТекущийПользователь();
КонецПроцедуры


Но вот, как сделать чтоб при повторном открытии этого элемента справочника(под другим именем), реквизит "Исполнитель" не изменялся, а оставался прежним, чтобы отследить, кто создал сотрудника... Я же создал нового сотрудника и записал элемент, не пойму по какой причине происходит изменения в реквизите "исполнитель" при последующих открытиях элемента справочника....

LexaK

вот специально для вашего случая

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не ЗначениеЗаполнено(Объект.Исполнитель) Тогда
    //Исполнитель еще пустой, заполняем
    Объект.Исполнитель = ПользователиИнформационнойБазы.ТекущийПользователь();
КонецЕсли;
КонецПроцедуры
если помогло нажмите: Спасибо!

Алексей_1985_06

Цитата: LexaK от 19 ноя 2019, 15:55
вот специально для вашего случая

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не ЗначениеЗаполнено(Объект.Исполнитель) Тогда
    //Исполнитель еще пустой, заполняем
    Объект.Исполнитель = ПользователиИнформационнойБазы.ТекущийПользователь();
КонецЕсли;
КонецПроцедуры


Все получилось, спасибо Вам большое!!!

Алексей_1985_06

Цитата: Алексей_1985_06 от 19 ноя 2019, 16:00
Цитата: LexaK от 19 ноя 2019, 15:55
вот специально для вашего случая

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не ЗначениеЗаполнено(Объект.Исполнитель) Тогда
    //Исполнитель еще пустой, заполняем
    Объект.Исполнитель = ПользователиИнформационнойБазы.ТекущийПользователь();
КонецЕсли;
КонецПроцедуры


Все получилось, спасибо Вам большое!!!

Доброго времени суток! Скажите пожалуйста, есть возможность с помощью программного кода, сделать следующие:
В справочнике сотрудники - элемент создает например: пользователь Иванов И.И., и необходимо чтоб редактирование реквизитов это элемента (сотрудника) мог производить только он, т.е. пользователь который "создал" этого сотрудника, что бы другой пользователь например: Петров И.И. - мог только просматривать этого сотрудника, но не редактировать.... Т.е сделать условие, что если текущий пользователь = исполнитель, тогда разрешить редактирование, иначе - только просмотр.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск