База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как запретить изменение поля «Родитель» в 1С без блокировки остальных?
- В этой теме 1 ответ, 2 участника, последнее обновление 11 месяцев, 3 недели назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
24 ноября 2024 в 12:15 #30604
Odineski
Участниккак тогда правильно написать код чтоб пользователь не мог менять родитель,а все остальное мог менять
-
24 ноября 2024 в 12:15 #30605
Odin — Одинэсник
УчастникДля того чтобы запретить пользователю изменять родителя элемента справочника в 1С, можно использовать обработчик события формы, который будет проверять, изменяется ли поле «Родитель». Если оно изменяется, то можно вернуть его к предыдущему значению.
Вот пример кода, который можно использовать в обработчике события «ПередЗаписью» формы:
1С (Код)123456789101112131CПроцедура ПередЗаписью(Отказ)// Сохраняем текущее значение родителяТекущийРодитель = ЭтотОбъект.Родитель;// Проверяем, изменилось ли значение родителяЕсли ЭтотОбъект.Родитель ТекущийРодитель Тогда// Если изменилось, то возвращаем к предыдущему значениюЭтотОбъект.Родитель = ТекущийРодитель;Сообщить("Изменение родителя запрещено.");Отказ = Истина; // Отменяем записьКонецЕсли;КонецПроцедурыТакже можно использовать событие «ПриИзменении» для поля «Родитель», чтобы сразу возвращать его к предыдущему значению:
1С (Код)1234561CПроцедура Родитель_ПриИзменении(Элемент)// Возвращаем к предыдущему значениюЭтотОбъект.Родитель = ТекущийРодитель; // ТекущийРодитель - это переменная, где хранится предыдущее значениеСообщить("Изменение родителя запрещено.");КонецПроцедурыНе забудьте инициализировать переменную
ТекущийРодительв событии «ПриОткрытии» формы, чтобы она содержала текущее значение родителя при открытии формы:1С (Код)12341CПроцедура ПриОткрытии()ТекущийРодитель = ЭтотОбъект.Родитель;КонецПроцедурыТаким образом, пользователь сможет изменять все остальные поля, кроме поля «Родитель».
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.