Добавление "регистра сведений" на форму справочника

1. user824140 19.02.21 09:08 Сейчас в теме
1. Есть справочник "Номенклатура". На его форму добавляю созданный мною Регистр сведений, как Табличное поле с типом "РегистрСведенийСписок" (для просмотра/добавления/редактирования записей данного регистра) Делаю отбор по владельцу = номенклатура и т.д.

2. Специально для нового регистра была создана отдельная роль.

Вопросы:

1. По ТЗ в регистре сведений есть реквизит "Пользователь", в который пишется текущий пользователь, который добавляет/изменяет значения записи регистра, выведенного на форму. Но в нашем случае идет ручное добавление/изменение записи в регистр в таб.поле на форме справочника "Номенклатура". Есть ли в таком случае возможность заполнять реквизит "Пользователь" регистра сведений програмно?

2. Для новой роли (созданной специально для нового регистра(по ТЗ)) должна быть возможность править записи регистра ТОЛЬКО из формы справочника "Номенклатура". А вот изменять/добавлять напрямую записи в регистре для новой роли запрещено. Как это реализовать? Ведь фактически для новой роли я даю доступ к редактированию записей регистра. И вообще возможно ли это - разграничить в моем случае добавление записей в новый регистр для пользаков с новой ролью через форму справочника "Номенклатура" и напрямую?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
8. user824140 20.02.21 09:52 Сейчас в теме
Как решил:
1. В модуле набора записей регистра сведений в процедуре "ПередЗаписью" заполнил текущего пользователя. (как тут и советовали)
2. Реализовал достаточно просто: для моего регистра создал "ФормуСписка", и в процедуре "ПередОткрытием" написал Отказ=Истина;

То есть, из справочника регистр редактируется/просматривается, а вот через Операции и т.д. его открыть нельзя.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. Nubsdale 19.02.21 10:57 Сейчас в теме
(1) 1. Пользователь = Пользователи.ТекущийПользователь()
2. Если РольДоступна("_НоваяРоль") Тогда Элементы._НужныйЭлемент.Видимость = Истина Иначе Элементы._НужныйЭлемент.Видимость = Ложь КонецЕсли;
2. andy_zhav 197 19.02.21 09:16 Сейчас в теме +0.53 $m
(1)

1. Можете в модуле набора записей регистра сведений прописать процедуру "ПередЗаписью" и там заполнять текущего пользователя
2. В форме списка и в форме записи регистра сведений при создании на сервере проверяйте наличие нужных прав и ограничивайте доступ там
3. Sliver_wg 19.02.21 09:18 Сейчас в теме
таблицузначений из справочника (преобразованной в массив, есть функции преобразования типовые) передаешь в общий модуль и при включенном привилегированом режиме корректируешь что нужно. пользователю права давать необязательно
Как вариант добавить подписку на событие при записи справочника и корректировку в общем модуле
vadim.semyonov.rzn; +1 Ответить
5. user824140 20.02.21 08:19 Сейчас в теме
(3) Да, у меня там не ТЗ, а Табличное поле с типом "РегистрСведенийСписок". Грубо говоря, регистр выведен на форму справочника.
6. VZyryanov 20.02.21 09:30 Сейчас в теме
1. В форме записи регистра
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	ТекущийОбъект.ДатаИзменения=ТекущаяДата();
	ТекущийОбъект.Изменил=ПараметрыСеанса.ТекущийПользователь;;
КонецПроцедуры


2.
2.1. В форме элемента номенклатуры
&НаКлиенте
Процедура СписокПередНачаломИзменения(Элемент, Отказ)
	Отказ = Истина;
	ПараметрыФормы = Новый Структура("Ключ, ИзНоменклатуры", Элементы.Список.ТекущаяСтрока, Истина);
	ОткрытьФорму("РегистрСведений.МойРегистр.ФормаЗаписи", ПараметрыФормы, , , , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры


2.2. В форме записи регистра
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если Не Параметры.Свойство("ИзНоменклатуры") ИЛИ Не Параметры.ИзНоменклатуры Тогда
		Отказ=Истина;
		Сообщить("Вводите данные в форме справочника ""Номенклатура"".");
	КонецЕсли;
КонецПроцедуры
Показать
7. user824140 20.02.21 09:47 Сейчас в теме
Забыл написать, что конфигурация - УПП древняя
8. user824140 20.02.21 09:52 Сейчас в теме
Как решил:
1. В модуле набора записей регистра сведений в процедуре "ПередЗаписью" заполнил текущего пользователя. (как тут и советовали)
2. Реализовал достаточно просто: для моего регистра создал "ФормуСписка", и в процедуре "ПередОткрытием" написал Отказ=Истина;

То есть, из справочника регистр редактируется/просматривается, а вот через Операции и т.д. его открыть нельзя.
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день