Запрет редактирования реквизитов объектов 1C (БСП)

  Рет қаралды 2,232

Serhii Kistanov

Serhii Kistanov

Күн бұрын

Демонстрация внедрения функционала БСП "Запрет редактирования реквизитов объектов"
☝ Информация по синтаксису описания блокируемых реквизитов: • БСП Запрет редактирова...
(Внедрение)
📖 Главная/Инструкции по разработке на 1С/Библиотека стандартных подсистем/ Библиотека стандартных подсистем 3.1.9/Глава 3. Настройка и использование подсистем при разработке конфигурации/Запрет редактирования реквизитов объектов
(Программный интерфейс)
🖮 Главная/Инструкции по разработке на 1С/Библиотека стандартных подсистем/ Библиотека стандартных подсистем 3.1.9/Глава 4. Программный интерфейс Запрет редактирования реквизитов объектов
🔒 Команда "Разрешить редактировать" будет видна во всех внедренных объектах Только если у пользователя есть роль "РедактированиеРеквизитовОбъектов".
0:00 - Введение
0:11 - Пример
0:26 - Документация
0:39 - Определяемся
1:12 - Включить возможность изменения
1:26 - Куда вносить изменения
1:36 - Разрешаем редактировать
2:50 - 1 область из трех
3:05 - Указываем целевой объект
3:30 - 2 область из трех
4:05 - Указываем реквизиты блокировки
5:00 - Синтаксис для подчиненных
5:50 - Итоги шага 1 и 2
6:00 - 3 область из трех
6:53 - Итог всех изменений
7:31 - Проверяем
8:18 - Куда добавить условие
9:20 - Проверяем с условием
9:50 - Дополнительно
10:06 - Программный интерфейс
🌟 Общий модуль
```1С
Объекты.Вставить(Метаданные.Документы.РеализацияТоваровУслуг.ПолноеИмя(), "");
```
🏠 Менеджер объекта
```1С
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
Результат = Новый Массив;
Результат.Добавить("ИмяРеквизитаОбъекта1");
Результат.Добавить("ИмяРеквизитаОбъекта2; ИмяЭлементаФормы1, ИмяЭлементаФормы2");
Возврат Результат;
КонецФункции
```
🌳 Модуь формы (1)
```1С
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
ЗапретРедактированияРеквизитовОбъектовКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтотОбъект);
КонецПроцедуры
```
🌿 Модуь формы (2) ПриСозданииНаСервере и ПослеЗаписиНаСервере
```1С
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
```
=====================
Дополнительная информация по синтаксису описания реквизитов блокировки:
Если необходимо блокировать не реквизиты, а картинки, надписи или команды, то указываем владельца и перечисляем наименования блокируемых.
Пример блокировки типовых команд:
Результат.Добавить("Форма; ФормаПровестиИЗакрыть, ФормаПровести, ФормаЗаписать");
=====================
Ссылка на видео демонстрацию похожего функционала:
• Динамическая установка...
#1свнедрение #1собслуживание #запрет #редактировать #редактирование #права #бсп #документация

Пікірлер: 22
@user-gq6zv8bu1c
@user-gq6zv8bu1c 5 ай бұрын
Видео просто находка. Хороший материал и отличная подача👍
@serhiikistanov6513
@serhiikistanov6513 5 ай бұрын
Дополнительная информация по синтаксису описания реквизитов блокировки: 🔒 Команда "Разрешить редактировать" будет видна во всех внедренных объектах Только если у пользователя есть роль "РедактированиеРеквизитовОбъектов" 🗺️ Дополнительная информация по синтаксису kzbin.info/www/bejne/eZjTnWmCi9acpqM
@VolkovMarat
@VolkovMarat 5 ай бұрын
Круто! Жаль в видео это не птказал.
@Duhmen66
@Duhmen66 5 ай бұрын
Спасибо за видео. Сделайте, плз, разрешение окна 1с-ки поменьше, для лучшего прочтения.
@serhiikistanov6513
@serhiikistanov6513 5 ай бұрын
Спасибо за обратную связь! Учту Ваш запрос и постараемся улучшить читаемость в будущих видео.
@pauk7797
@pauk7797 5 ай бұрын
а можно вопрос? зачем к нетиповому функционалу приводить? тут доработка такого вида, что её в расширение можно спокойно выводить, и даже контроль не нужен единственное, что может слететь, это изменение имени реквизитов, но это исправление на 1 минуту
@serhiikistanov6513
@serhiikistanov6513 5 ай бұрын
Спасибо за вопрос 👍, это поможет всем участникам предоставить больше информации! ❓"зачем к нетиповому функционалу приводить?" - предполагаю, что вы говорите о настройке ⚙ поддержки, а именно "включении возможности изменений" 🔓 Тогда 💪 пользователь @ConstantinKubrakov уже задавал этот вопрос, и я ему ответил. Пожалуйста, найдите 🔍 его комментарий и мой ответ. В двух словах ⚡, технически, вы можете переопределить все в расширении, но правильнее будет внести изменения (особенно в общий модуль) в основную конфигурацию.
@pauk7797
@pauk7797 5 ай бұрын
@@serhiikistanov6513 нашел, прочел, спасибо на последнем вебинаре по платформе 8.3.24, один из слушателей предложил внести в функционал, который бы непосредственно в самой процедуре показывал заимствована ли она и куда именно заимствована, чтобы легче это было отследить
@user-yx4tz3tl8d
@user-yx4tz3tl8d 5 ай бұрын
Хотелось бы имень возможность так же просто сделать запрет на просмотр бух. Счета.
@serhiikistanov6513
@serhiikistanov6513 5 ай бұрын
Спасибо 👍 за комментарий! Функционал подходит любому объекту имеющему форму, достаточно указать блокируемые элементы или реквизиты формы. Пожалуйста, уточните, с какими именно сложностями вы столкнулись, и я постараюсь найти 🔍 подходящее решение.
@DmitriiSafonov
@DmitriiSafonov 4 ай бұрын
Подскажите как заблокировать группу содержащую элементы формы. Конечная цель - по определённому условию блокировать все реквизиты формы (кроме кнопки разблокировки), то есть в идеале написать. _Результат.Добавить("ГруппаСтраницы");_ Но так не блокируется ничего. Так же на ИТС есть такой ситаксис _Реквизит = ЗапретРедактированияРеквизитовОбъектов.НовыйБлокируемыйРеквизит(); Реквизит.Группа = "ОбщаяНадпись"; Реквизит.ПредставлениеГруппы = НСтр("ru = 'Проверьте места использования перед разблокировкой реквизитов.'"); БлокируемыеРеквизиты.Добавить(Реквизит);_ Но если подставить ГруппаСтраницы вместо ОбщаяНадпись, то тоже ничего не блокируется.
@serhiikistanov6513
@serhiikistanov6513 4 ай бұрын
Спасибо за комментарий! Используйте синтаксис подобный этому: Результат.Добавить("ЭтотОбъект; ГруппаКнопкиКоманднойПанели,ГруппаШапка,ГруппаТовары,ГруппаПодвал"); Я на днях сниму видео что бы было понятней.
@DmitriiSafonov
@DmitriiSafonov 4 ай бұрын
@@serhiikistanov6513 Да, спасибо, так работает! То что надо.
@DmitriiSafonov
@DmitriiSafonov 4 ай бұрын
@@serhiikistanov6513 если можно еще 1 вопрос (аппетит как известно приходит во время еды). Можно ли так заблокировать командную панель формы (естественно кроме "еще-разблокировать"). Или единственный вариант выключить автозаполнение стандартной панель и накидать нужные кнопки в группа (в папку).
@serhiikistanov6513
@serhiikistanov6513 4 ай бұрын
🗺️ видео по синтаксису: kzbin.info/www/bejne/eZjTnWmCi9acpqM (Рад, что смог вам помочь!)
@ConstantinKubrakov
@ConstantinKubrakov 5 ай бұрын
Расширения в ланном случае не решат?
@serhiikistanov6513
@serhiikistanov6513 5 ай бұрын
Спасибо за ваш вопрос. Технически, вы можете переопределить общий модуль, целевой объект и его форму - все три объекта, в которые необходимо внести изменения. Однако не рекомендую это делать с точки зрения дальнейшего сопровождения. Разработчики, которые будут поддерживать ваши изменения, будут искать их в разделах, рекомендованных документацией. Особенно не рекомендую добавлять в расширение общий модуль 'ЗапретРедактированияРеквизитовОбъектовПереопределяемый'. Также, для каждого целевого объекта вы должны создавать расширение с внятным наименованием или раздувать одно расширение для всех объектов с общим наименованием расширения, где будут все целевые объекты, для которых вы решите задействовать функционал блокировки. Представьте, как потом другие разработчики будут искать куда и что вы переопределили. Это, как минимум, замедлит или запутает их. Если вам критично оставить запрет редактировать основную конфигурацию, тогда технически вы можете переопределить все три объекта. Но вам стоит настоять на том, что один из них, а именно общий модуль, необходимо снять с поддержки с разрешением редактировать и внести изменения в основной конфигурации (не переопределять общий модуль в расширении).
@pavelkrotov717
@pavelkrotov717 5 ай бұрын
А не проще в модуле формы в "ПриСозданииНаСервере" просто установить нужному реквизиту ТолькоПросмотр = Истина?
@serhiikistanov6513
@serhiikistanov6513 5 ай бұрын
Благодарю за ваш вопрос. Да, вы правы, это также является вариантом. Однако использование БСП предоставляет не только удобный программный интерфейс для решения задачи блокировки реквизитов, но и команду интерфейса, снимающую блокировку интерактивно. Кроме того, стоит отметить важную особенность БСП - инкапсуляцию реализации блокировки, что способствует более высокому уровню абстракции. Это упрощает внедрение и сопровождение кода, а также использование БСП как стандарта, что облегчает взаимодействие с другими разработчиками.
@serhiikistanov6513
@serhiikistanov6513 5 ай бұрын
Суть в том, что, решая подобную задачу при собственной реализации, вам потребуется больше, чем одна строка кода (выделение общей функции для установки свойства, команды снятия блокировки и т.д.). Весь этот функционал реализует Библиотека стандартных подсистем (БСП). Рекомендую использовать БСП во всех случаях, где это возможно.
@user-yx4tz3tl8d
@user-yx4tz3tl8d 5 ай бұрын
А при изменении бсп, что будет?
@serhiikistanov6513
@serhiikistanov6513 5 ай бұрын
Ответственность разработчиков БСП сохранить совместимость 🔗. Они предоставляют нам интерфейсы взаимодействия и обеспечивают их работоспособность 💪. В случае внесения значительных изменений, которые могут повлиять на существующий функционал, обычно предоставляется документация и процедуры обновления, чтобы помочь разработчикам ⚡ адаптировать свой код к новым версиям БСП.
Стандарты разработки в 1С
15:56
IRONSKILLS - Курсы по 1С
Рет қаралды 24 М.
$10,000 Every Day You Survive In The Wilderness
26:44
MrBeast
Рет қаралды 97 МЛН
Black Magic 🪄 by Petkit Pura Max #cat #cats
00:38
Sonyakisa8 TT
Рет қаралды 37 МЛН
Indian sharing by Secret Vlog #shorts
00:13
Secret Vlog
Рет қаралды 60 МЛН
КАРМАНЧИК 2 СЕЗОН 6 СЕРИЯ
21:57
Inter Production
Рет қаралды 500 М.
Суть 1С программирования за 25 минут
26:44
Желтый клуб — 1С программирование
Рет қаралды 322 М.
OPENSOURCE НЕ БЕЗОПАСЕН? (2024)
17:20
PLAFON - Канал о линуксе
Рет қаралды 22 М.
1C: БСП. Печать. Часть 1. Создание печатной формы в 1С
1:01:23
$10,000 Every Day You Survive In The Wilderness
26:44
MrBeast
Рет қаралды 97 МЛН