|
Невозможность изменения предопределенных объектов 1с 83. | ☑ | ||
---|---|---|---|---|
0
program345
06.02.15
✎
14:44
|
добрый день!
оптимален ли след. код для решения данной задачи, или есть встроенное решение? //код Процедура ПередЗаписью(Отказ) Если Наименование<>Справочники.ДляТестаПредопределенныхЗначений.Два.ИмяПредопределенныхДанных ИЛИ Справочники.ДляТестаПредопределенныхЗначений.Два.код<>Код Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры //ваа |
|||
1
program345
06.02.15
✎
14:45
|
а именно код и наименование
|
|||
2
salvator
06.02.15
✎
15:22
|
Роль настрой отдельную.
|
|||
3
Fish
06.02.15
✎
15:25
|
Не проще ли закрыть доступ к реквизитам?
|
|||
4
program345
06.02.15
✎
17:08
|
(3) а как тогда пользователи будут создавать не предопределенные элементы справочника?
|
|||
5
GROOVY
06.02.15
✎
17:25
|
Элементарное условие, либо в ролях, либо, если религия не позволяет в форме, при открытии.
ГДЕ НЕ Предопределенный Или ЭтаФорма.ТолькоПросмотр(Предопределенный) За синтаксис не ручаюсь. |
|||
6
Deon
06.02.15
✎
17:28
|
(2) если конфа типовая, то надо будет ещё удалять все разрешения из существующих ролей.
По-моему, лучше аккуратненько подписочку на справочник замутить |
|||
7
Deon
06.02.15
✎
17:31
|
(0) А встроенного, скорее всего, нет. Ибо адресация к предопределенному элементу везде идет по его идентификатору. И должно быть пофиг, какой там код с наименованием.
|
|||
8
program345
06.02.15
✎
17:37
|
в модуль объекта добавил:
// Процедура ПередЗаписью(Отказ) Если Предопределенный Тогда Отказ = Истина; Сообщить("предопределенные нельзя!"); КонецЕсли; КонецПроцедуры // робит! спасибо! |
|||
9
EugeniaK
06.02.15
✎
17:39
|
(8) Добавь еще
Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; |
|||
10
Deon
06.02.15
✎
17:43
|
(8) Конфа не типовая? А то обновление от такого может не проходить.
|
|||
11
program345
06.02.15
✎
18:06
|
//
&НаКлиенте Процедура ПриОткрытии(Отказ) ВыполнитьНаСервере(); КонецПроцедуры &НаСервере Процедура ВыполнитьНаСервере() //истина Если ЭтотОбъект.ЭтаФорма.Объект.Предопределенный Тогда //ЭтотОбъект.ТолькоПросмотр(Истина); //ЭтотОбъект.ЭтаФорма.ЭтаФорма.ТолькоПросмотр(Истина); ЭтаФорма.ТолькоПросмотр(Истина); КонецЕсли; КонецПроцедуры // ВыполнитьНаСервере() // сообщает ошибку: {Справочник.Справочник1.Форма.ФормаЭлемента.Форма(13)}: Метод объекта не обнаружен (ТолькоПросмотр) ЭтаФорма.ТолькоПросмотр(Истина); конфа самописная... |
|||
12
GROOVY
06.02.15
✎
18:10
|
Купи у ДенисаЧ СП:
УправляемаяФорма.ЗаблокироватьДанныеФормыДляРедактирования (ManagedForm.LockFormDataForEdit) УправляемаяФорма (ManagedForm) ЗаблокироватьДанныеФормыДляРедактирования (LockFormDataForEdit) Синтаксис: ЗаблокироватьДанныеФормыДляРедактирования() Описание: Устанавливает блокировку сохраняемых данных формы в информационной базе для редактирования. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент. Вызов метода выполняет обращение к серверу |
|||
13
Deon
06.02.15
✎
18:23
|
(11) Зачем мучаешь форму, если уже заблокировал запись на уровне объекта?
|
|||
14
Deon
06.02.15
✎
18:25
|
а, для красоты
|
|||
15
program345
06.02.15
✎
19:41
|
(12) а чем он лучше встроенного?
|
|||
16
program345
06.02.15
✎
20:08
|
вообщем работает так:
// &НаКлиенте Процедура ПриОткрытии(Отказ) ВыполнитьНаСервере(); КонецПроцедуры &НаСервере Процедура ВыполнитьНаСервере() Если ЭтотОбъект.ЭтаФорма.Объект.Предопределенный Тогда ЭтаФорма.ТолькоПросмотр = Истина; Сообщить("изменения в предопредеденном элементе не сохранены!") КонецЕсли; КонецПроцедуры // ВыполнитьНаСервере() // |
|||
17
program345
06.02.15
✎
20:09
|
всем спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |