rebuild
This commit is contained in:
parent
3b0052d178
commit
f29f1810b6
@ -0,0 +1,60 @@
|
||||
# Настройка общего модуля
|
||||
В общем модуле `ЗапретРедактированияРеквизитовОбъектовПереопределяемый` дополняем процедуру `ПриОпределенииОбъектовСЗаблокированнымиРеквизитами` своими объектами
|
||||
|
||||
```bsl
|
||||
Процедура ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты) Экспорт
|
||||
|
||||
Объекты.Вставить(Метаданные.Справочники.УДК_Подсистемы.ПолноеИмя(), "");
|
||||
Объекты.Вставить(Метаданные.Справочники.УДК_ОбъектыМетаданных.ПолноеИмя(), "");
|
||||
Объекты.Вставить(Метаданные.Справочники.УДК_ФормыКомандыМакеты.ПолноеИмя(), "");
|
||||
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
# В модуле менеджера
|
||||
Для каждого объекта в модуле менеджера нужно определить экспортную функцию с указанием заблокированных методов
|
||||
```bsl
|
||||
|
||||
// См. пример в ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами
|
||||
|
||||
// СтандартныеПодсистемы.ЗапретРедактированияОбъектов
|
||||
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
|
||||
БлокируемыеРеквизиты = Новый Массив;
|
||||
БлокируемыеРеквизиты.Добавить("Наименование");
|
||||
БлокируемыеРеквизиты.Добавить("Имя");
|
||||
БлокируемыеРеквизиты.Добавить("ПолноеИмя");
|
||||
БлокируемыеРеквизиты.Добавить("ТипЭлемента");
|
||||
|
||||
Возврат БлокируемыеРеквизиты;
|
||||
КонецФункции
|
||||
// Конец СтандартныеПодсистемы.ЗапретРедактированияОбъектов
|
||||
|
||||
```
|
||||
|
||||
# В модуле формы
|
||||
|
||||
```bsl
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
|
||||
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
|
||||
// Конец СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
|
||||
// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
|
||||
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
|
||||
// Конец СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
|
||||
КонецПроцедуры
|
||||
|
||||
// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
|
||||
ЗапретРедактированияРеквизитовОбъектовКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтотОбъект);
|
||||
КонецПроцедуры
|
||||
// Конец СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
|
||||
|
||||
```
|
@ -61,5 +61,11 @@ slug: общие-подключение-объектов-к-бсп/добавл
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
# Подключение к подсистеме "Подключаемые команды"
|
||||
См. `Подключение к подсистемам - Подключение к подсистеме "Подключаемые команды"`
|
||||
# Настройка формы
|
||||
Нужно создать группу в командной панели(скопируй из типового объекта)
|
||||
ПодменюОтчеты
|
||||
** ПодменюОтчетыВажное
|
||||
** ПодменюОтчетыОбычное
|
||||
** ПодменюОтчетыСмТакже
|
||||
|
||||
Нужно подключить форму к подсистеме `Подключаемые команды`
|
@ -180,5 +180,8 @@ slug: общие-подключение-объектов-к-бсп/добавл
|
||||
КонецФункции
|
||||
```
|
||||
|
||||
# Подключение к подсистеме "Подключаемые команды"
|
||||
См. Подключение к подсистемам - Подключение к подсистеме "Подключаемые команды"
|
||||
# Настройка формы
|
||||
Нужно создать группу в командной панели(скопируй из типового объекта)
|
||||
- ПодменюПечать
|
||||
|
||||
Нужно подключить форму к подсистеме `Подключаемые команды`
|
@ -94,5 +94,11 @@ slug: общие-подключение-объектов-к-бсп/добавл
|
||||
|
||||
КонецФункции
|
||||
```
|
||||
# Подключение к подсистеме "Подключаемые команды"
|
||||
См. `Подключение к подсистемам - Подключение к подсистеме "Подключаемые команды"`
|
||||
# Настройка формы
|
||||
Нужно создать группу в командной панели(скопируй из типового объекта)
|
||||
// * ПодменюСоздатьНаОсновании
|
||||
// ** ПодменюСоздатьНаОснованииВажное
|
||||
// ** ПодменюСоздатьНаОснованииОбычное
|
||||
// ** ПодменюСоздатьНаОснованииСмТакже
|
||||
|
||||
Нужно подключить форму к подсистеме `Подключаемые команды`
|
File diff suppressed because one or more lines are too long
@ -1,106 +0,0 @@
|
||||
---
|
||||
title: ОбработкаПолученияДанныхВыбора
|
||||
---
|
||||
|
||||
## 📌 Назначение
|
||||
Обработчик `ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)` позволяет:
|
||||
- Влиять на формирование списка выбора.
|
||||
- Модифицировать параметры отбора.
|
||||
- Полностью формировать список выбора вручную.
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Параметры обработчика
|
||||
|
||||
- `ДанныеВыбора`: переменная для возврата кастомного списка.
|
||||
- `Параметры`: структура параметров, включая отборы и строку поиска.
|
||||
- `СтандартнаяОбработка`:
|
||||
- `Истина`: платформа формирует список выбора.
|
||||
- `Ложь`: список задаётся вручную через `ДанныеВыбора`.
|
||||
|
||||
---
|
||||
|
||||
## 🔹 Пример 1: Модификация параметров отбора
|
||||
|
||||
**Задача:** Выводить товары только от указанного поставщика и не услуги.
|
||||
|
||||
### Решение:
|
||||
1. В `Параметры.Отбор` добавить:
|
||||
```1C
|
||||
Параметры.Отбор.Вставить("ВидТовара", Перечисления.ВидыТоваров.Товар);
|
||||
```
|
||||
2. Оставить `СтандартнаяОбработка = Истина`.
|
||||
|
||||
---
|
||||
|
||||
## 🔹 Пример 2: Полное переопределение — простой список
|
||||
|
||||
**Задача:** Предлагать склады, не являющиеся розничными.
|
||||
|
||||
### Пример кода:
|
||||
```1C
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ Склады.Ссылка ИЗ Справочник.Склады КАК Склады
|
||||
ГДЕ Склады.Розничный = ЛОЖЬ
|
||||
И Склады.Наименование ПОДОБНО &СтрокаПоиска";
|
||||
|
||||
Запрос.УстановитьПараметр("СтрокаПоиска", "%" + Параметры.СтрокаПоиска + "%");
|
||||
|
||||
Результат = Запрос.Выполнить();
|
||||
Список = Новый СписокЗначений;
|
||||
|
||||
Пока Результат.Выбрать().Следующий() Цикл
|
||||
Список.Добавить(Выборка.Ссылка);
|
||||
КонецЦикла;
|
||||
|
||||
ДанныеВыбора = Список;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔹 Пример 3: Полное переопределение — сложный список
|
||||
|
||||
**Задача:** Выводить поставщиков с пометкой удаления и предупреждением о ненадёжности.
|
||||
|
||||
### Пример кода:
|
||||
```1C
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ Поставщики.Ссылка, Поставщики.ПометкаУдаления, Поставщики.Ненадежный
|
||||
ИЗ Справочник.Поставщики КАК Поставщики
|
||||
ГДЕ Поставщики.Наименование ПОДОБНО &СтрокаПоиска";
|
||||
|
||||
Запрос.УстановитьПараметр("СтрокаПоиска", "%" + Параметры.СтрокаПоиска + "%");
|
||||
|
||||
Результат = Запрос.Выполнить();
|
||||
Список = Новый СписокЗначений;
|
||||
|
||||
Пока Результат.Выбрать().Следующий() Цикл
|
||||
Структура = Новый Структура;
|
||||
Структура.Вставить("Значение", Выборка.Ссылка);
|
||||
Структура.Вставить("ПометкаУдаления", Выборка.ПометкаУдаления);
|
||||
|
||||
Если Выборка.Ненадежный Тогда
|
||||
Структура.Вставить("Предупреждение", "Это ненадежный поставщик...");
|
||||
КонецЕсли;
|
||||
|
||||
Список.Добавить(Структура);
|
||||
КонецЦикла;
|
||||
|
||||
ДанныеВыбора = Список;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Особенности производительности
|
||||
|
||||
Обработчик вызывается:
|
||||
- При автоподборе.
|
||||
- При потере фокуса поля ввода.
|
||||
- При быстром выборе.
|
||||
|
||||
**Рекомендация:** тщательно оптимизировать запросы и код обработчика.
|
||||
|
Loading…
x
Reference in New Issue
Block a user