Пример использования механизма "Блокировки изменения объектов" (БП, ЗУП, УХ, ЕРП)

05.06.23

Разработка - Механизмы типовых конфигураций

Механизм позволяет добавлять обработчики блокировки формы от изменения пользователем с выводом предупреждения "Документ не редактируется по причине:" и указанием причин блокировки. Также по некоторому условию может быть выведена кнопка "Разблокировать форму".

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Расширение "Блокировка изменения объектов" ЗУП
.cfe 26,87Kb
4
4
1 SM
Скачать Купить за 1 850 руб.
Расширение "Блокировка изменения объектов" БП
.cfe 61,94Kb
9
9
1 SM
Скачать Купить за 1 850 руб.

Рассмотрим работу механизма на примере доработки с помощью расширения документа Отражение зарплаты в бухучете ЗУП.

1. Блокируемая форма

При подключении механизма на форме создаются необходимые реквизиты, поля и команды для вывода сообщения о блокировки и возможности разблокировать форму.  

Добавляем в расширение обработчики событий формы с типом Вызывать после:

&НаСервере
Процедура БРО_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	
	БлокировкаИзмененияОбъектов.ПриСозданииНаСервереФормыОбъекта(ЭтотОбъект, Отказ, СтандартнаяОбработка);
	
КонецПроцедуры

&НаСервере
Процедура БРО_ПриЧтенииНаСервереПосле(ТекущийОбъект)
	
	БлокировкаИзмененияОбъектов.ПриЧтенииНаСервереФормыОбъекта(ЭтотОбъект, ТекущийОбъект);

КонецПроцедуры

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

КонецПроцедуры

Кнопка разблокировки по-умолчанию создается в Командной панели в дополнительном подменю Ещё, однако в нашем документе Отражение зарплаты в бухучете панель не отображается, вместо нее создана группа КоманднаяПанельФормы, поэтому перенесем созданную кнопку в данную группу:

	КнопкаРазблокировать = Элементы.РазблокироватьФормуДляИзмененияОбъекта;
	Элементы.Переместить(КнопкаРазблокировать, Элементы.КоманднаяПанельФормы);

Так же в модуле формы размещаем обработчик команды разблокировки:

&НаКлиенте
Процедура Подключаемый_РазблокироватьФормуОбъекта(Команда)

	БлокировкаИзмененияОбъектовКлиент.РазблокироватьФормуОбъекта(ЭтотОбъект, Объект.Ссылка);
	
КонецПроцедуры

 

2. Обработчик блокировки

Обработчик блокировки разместим в общем модуле БРО_Сервер:

Функция ДобавитьБлокировкуИзмененияОбъекта(КоллекцияБлокировок, СсылкаНаОбъект) Экспорт
	
	Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.ОтражениеЗарплатыВБухучете") Тогда		
		Если ЕстьПроведенныеПлатежныеПоручения(СсылкаНаОбъект) Тогда
			
			ИднтификаторБлокировки = "БРО_ОтражениеЗарплатыВБухучете";
			ОписаниеБлокировки = "На основании документа созданы проведенные Платежные поручения";
			ДопустимоОтключать = Пользователи.РолиДоступны("БРО_СнятиеБлокировкиДокумента");
			
			БлокировкаИзмененияОбъекта = БлокировкаИзмененияОбъектов.ОписаниеБлокировкиИзмененияОбъекта(
				ИднтификаторБлокировки,
				ОписаниеБлокировки,
				ДопустимоОтключать);
			
			КоллекцияБлокировок.Добавить(БлокировкаИзмененияОбъекта);
			
		КонецЕсли;		
	КонецЕсли;
	
КонецФункции

Вызов обработчика разместим в  расширении модуля БлокировкаИзмененияОбъектовБазовый:

&Вместо("ПараметрыБлокировкиИзмененияОбъекта")
Функция БРО_ПараметрыБлокировкиИзмененияОбъекта(СсылкаНаОбъект, УправляемаяФорма)
	
	КоллекцияБлокировок = ПродолжитьВызов(СсылкаНаОбъект, УправляемаяФорма);	
	БРО_Сервер.ДобавитьБлокировкуИзмененияОбъекта(КоллекцияБлокировок, СсылкаНаОбъект);

	Возврат КоллекцияБлокировок;
	
КонецФункции

У расширения выключаем Безопасный режим.

 

3. Проверяем

При открытии формы проверяется условие блокировки и в форме устанавливается свойство ТолькоПросмотр, выводится предупреждающая надпись:

Если блокировку допустимо отключать, в меню Ещё создается кнопка разблокировки:

 

Во вложении расширение с данным примером для ЗУП и отдельно для БП, ЕРП, УХ (документ Реализация товаров услуг, общая форма).

Тестирование проводилось на ЗУП 3.1.23.558 и БП 3.0.135.16.

См. также

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    834    Vidz    0    

6

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    658    olja-ljaaa    0    

2

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    2905    Serg2000mr    29    

99

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    775    tango    5    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    645    tango    5    

4

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Бесплатно (free)

В первом сезоне мы рассмотрели (с точки зрения программиста) внутренний механизм, помещающий цены в регистр "Цены". Из этого регистра цена попадает в исходящие УПД (в продажи). Но эта цена (в прайс-листе) дифференцирована (ценообразована) в разрезах свойств самой номенклатуры. Но стратегия ценообразования, ценовая власть - это в первую очередь о работе с ценами для клиента. И тут вступает в дело второй акт марлезонского, Скидки (наценки) и кешбек.

08.04.2024    959    tango    0    

2

Ценообразование, анализ цен Механизмы типовых конфигураций Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    953    tango    12    

2
Оставьте свое сообщение