new
This commit is contained in:
parent
5fec042cbc
commit
a530729b4b
BIN
public/bsp-nastroika-poryadka-elementov/1.png
Normal file
BIN
public/bsp-nastroika-poryadka-elementov/1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.2 KiB |
BIN
public/bsp-nastroika-poryadka-elementov/2.png
Normal file
BIN
public/bsp-nastroika-poryadka-elementov/2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 57 KiB |
@ -0,0 +1,74 @@
|
||||
---
|
||||
title: Подключение к подсистеме Настройка порядка элементов
|
||||
slug: общие-бсп-стандартные-подсистемы-настройка-порядка-элементов/подключение-к-подсистеме-настройка-порядка-элементов
|
||||
---
|
||||
# Описание
|
||||
Подсистема позволяет устанавливать пользовательский порядок элементов в динамических списках:
|
||||
- Справочников
|
||||
- Планов видов характеристик
|
||||
- Планов видов расчета
|
||||

|
||||
|
||||
## Подключение к подсистеме
|
||||
Для подключения этой подсистемы нужно:
|
||||
1. Создать в нужном объекте числовой реквизит `РеквизитДопУпорядочивания` *(Число(5,0))*. Установить для него свойство `Индексировать` в `Индексировать с доп. упорядочиванием`
|
||||
2. Добавить объект в определяемый тип `ОбъектСНастраиваемымПорядком`
|
||||
3. Создать форму списка, подключить к подсистеме `Подключаемые команды`
|
||||
4. В динамическом списке настроить упорядочивание по реквизиту `РеквизитДопУпорядочивания`. Установить в свойствах элемента пользовательских настроек режим редактирвоания `Недоступный`
|
||||

|
||||
|
||||
## Настройка данных выбора
|
||||
Чтобы сохранить порядок элементов при выборе из выпадающего списка в поле ввода нужно:
|
||||
1. Для поля ввода реквизита определить обработчик `АвтоПодбор`
|
||||
```bsl
|
||||
&НаКлиенте
|
||||
Процедура СтатусАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ПолучитьДанныеВыбора(Тип("СправочникСсылка.СтатусыЗаказовКлиента"), ПараметрыПолученияДанных);
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
2. В модуле менеджера спраовчника переопределяем
|
||||
```bsl
|
||||
|
||||
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
ДанныеВыбора = Новый СписокЗначений;
|
||||
|
||||
СтрокаПоиска = Параметры.СтрокаПоиска;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ ПЕРВЫЕ 5
|
||||
| СтатусыЗаказовКлиента.Ссылка КАК Ссылка,
|
||||
| СтатусыЗаказовКлиента.Представление КАК Представление
|
||||
|ИЗ
|
||||
| Справочник.СтатусыЗаказовКлиента КАК СтатусыЗаказовКлиента
|
||||
|ГДЕ
|
||||
| НЕ СтатусыЗаказовКлиента.ПометкаУдаления И %%%ТекстДопУсловия%%%
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| СтатусыЗаказовКлиента.РеквизитДопУпорядочивания";
|
||||
|
||||
ПодстрокаЗамены = "ИСТИНА";
|
||||
Если ЗначениеЗаполнено(СтрокаПоиска) Тогда
|
||||
ПодстрокаЗамены = "ВРЕГ(СтатусыЗаказовКлиента.Наименование) ПОДОБНО """ + ВРег(СтрокаПоиска) + "%""";
|
||||
КонецЕсли;
|
||||
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "%%%ТекстДопУсловия%%%", ПодстрокаЗамены);
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
|
||||
ДанныеВыбора.Добавить(Выборка.Ссылка, Выборка.Представление);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
```
|
||||
|
||||
> Если после всех манипуляций что-то не работает - ПЕРЕЗАПУСТИ КОНФИГУРАТОР
|
@ -0,0 +1,117 @@
|
||||
---
|
||||
title: Добавление команд заполнения
|
||||
slug: общие-бсп-стандартные-подсистемы-подключаемые-команды-команды-заполнения/добавление-команд-заполнения
|
||||
---
|
||||
|
||||
# Общий модуль ЗаполнениеОбъектовПереопределяемый
|
||||
```bsl
|
||||
Процедура ПриОпределенииОбъектовСКомандамиЗаполнения(Объекты) Экспорт
|
||||
|
||||
Объекты.Добавить(Метаданные.Документы.ЗаказПоставщику);
|
||||
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
# Модуль менеджера объекта
|
||||
```bsl
|
||||
Процедура ДобавитьКомандыЗаполнения(КомандыЗаполнения, Параметры) Экспорт
|
||||
|
||||
Если ПравоДоступа("Редактирование", Метаданные.Документы.ЗаказПоставщику) Тогда
|
||||
|
||||
// Обработчик в модуле менеджера (текущем модуле)
|
||||
Команда = КомандыЗаполнения.Добавить();
|
||||
Команда.Идентификатор = "ЗаполнитьПоВыбранномуЗаказу";
|
||||
Команда.МножественныйВыбор = Ложь;
|
||||
Команда.ВидимостьВФормах = "ФормаДокумента"; // Имена форм через запятую
|
||||
Команда.Представление = "По предыщущему заказу";
|
||||
Команда.РежимЗаписи = "НеЗаписывать";
|
||||
Команда.Обработчик = "Подключаемый_ЗаполнитьПоПредущемуЗаказу";
|
||||
Команда.Порядок = 1;
|
||||
|
||||
// Обработчик в общем модуле
|
||||
Команда = КомандыЗаполнения.Добавить();
|
||||
Команда.Идентификатор = "ЗаполнитьПоВыбранномуЗаказу";
|
||||
Команда.МножественныйВыбор = Ложь;
|
||||
Команда.ВидимостьВФормах = "ФормаДокумента";
|
||||
Команда.Представление = "По выбранному заказу";
|
||||
Команда.РежимЗаписи = "НеЗаписывать";
|
||||
Команда.Обработчик = "ЗакупкиКлиент.ЗаполнитьЗаказПоставщикуПоВыбранномуЗаказу";
|
||||
Команда.Порядок = 2;
|
||||
|
||||
// Обработчик в модуле формы
|
||||
Команда = КомандыЗаполнения.Добавить();
|
||||
Команда.Идентификатор = "ЗаполнитьПоНесколькимЗаказам";
|
||||
Команда.МножественныйВыбор = Ложь;
|
||||
Команда.ВидимостьВФормах = "ФормаДокумента";
|
||||
Команда.Представление = "По нескольким заказам";
|
||||
Команда.РежимЗаписи = "НеЗаписывать";
|
||||
Команда.ИмяФормы = "ФормаОбъекта";
|
||||
Команда.Обработчик = "Подключаемый_ЗаполнитьПоНесколькимЗаказам";
|
||||
Команда.Порядок = 3;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
# Пример обработчика в модуле формы
|
||||
|
||||
> Его также можно разместить и в модуле менеджера, и в общем модуле
|
||||
|
||||
```bsl
|
||||
&НаСервере
|
||||
Процедура Подключаемый_ЗаполнитьПоПредущемуЗаказу(ПараметрКоманды, ПараметрыВыполнения) Экспорт
|
||||
|
||||
Источник = ПараметрыВыполнения.Источник; // Тут Источник - основной реквизит формы. "Объект"
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ ПЕРВЫЕ 1
|
||||
| ЗаказПоставщику.Ссылка КАК Ссылка
|
||||
|ПОМЕСТИТЬ втПредыдущийЗаказ
|
||||
|ИЗ
|
||||
| Документ.ЗаказПоставщику КАК ЗаказПоставщику
|
||||
|ГДЕ
|
||||
| ЗаказПоставщику.Контрагент = &Контрагент
|
||||
| И ЗаказПоставщику.Проведен
|
||||
| И &УсловиеПоСсылке
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| ЗаказПоставщику.Дата УБЫВ
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
|
||||
| ЗаказПоставщикуТовары.Количество КАК Количество,
|
||||
| ЗаказПоставщикуТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
|
||||
| ЗаказПоставщикуТовары.Цена КАК Цена,
|
||||
| ЗаказПоставщикуТовары.Сумма КАК Сумма,
|
||||
| ЗаказПоставщикуТовары.СтавкаНДС КАК СтавкаНДС,
|
||||
| ЗаказПоставщикуТовары.СуммаНДС КАК СуммаНДС,
|
||||
| ЗаказПоставщикуТовары.СуммаВсего КАК СуммаВсего
|
||||
|ИЗ
|
||||
| Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ втПредыдущийЗаказ КАК втПредыдущийЗаказ
|
||||
| ПО ЗаказПоставщикуТовары.Ссылка = втПредыдущийЗаказ.Ссылка";
|
||||
|
||||
Запрос.УстановитьПараметр("Контрагент", Источник.Контрагент);
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрКоманды) Тогда
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеПоСсылке", "ЗаказПоставщику.Ссылка <> &Ссылка");
|
||||
Запрос.УстановитьПараметр("Ссылка", ПараметрКоманды);
|
||||
Иначе
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеПоСсылке", "ИСТИНА");
|
||||
КонецЕсли;
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
|
||||
Источник.Товары.Очистить();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
НоваяСтрока = Источник.Товары.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
```
|
@ -2,6 +2,9 @@
|
||||
title: Подключение к подсистеме Подключаемые команды
|
||||
slug: общие-бсп-стандартные-подсистемы-подключаемые-команды/подключение-к-подсистеме-подключаемые-команды
|
||||
---
|
||||
|
||||
> Чтобы форма открывалась быстрее, нужно добавить реквизит формы `ПараметрыПодключаемыхКоманд` с типом `Произвольный`
|
||||
|
||||
## Форма объекта
|
||||
```bsl
|
||||
|
||||
@ -62,6 +65,9 @@ slug: общие-бсп-стандартные-подсистемы-подклю
|
||||
```
|
||||
|
||||
## Форма списка
|
||||
|
||||
> ВАЖНО. Для реквизита `Ссылка` динамического списка нужно установить флаг `Использовать всегда`
|
||||
|
||||
```bsl
|
||||
|
||||
&НаСервере
|
||||
|
Loading…
x
Reference in New Issue
Block a user