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: Подключение к подсистеме Подключаемые команды
|
title: Подключение к подсистеме Подключаемые команды
|
||||||
slug: общие-бсп-стандартные-подсистемы-подключаемые-команды/подключение-к-подсистеме-подключаемые-команды
|
slug: общие-бсп-стандартные-подсистемы-подключаемые-команды/подключение-к-подсистеме-подключаемые-команды
|
||||||
---
|
---
|
||||||
|
|
||||||
|
> Чтобы форма открывалась быстрее, нужно добавить реквизит формы `ПараметрыПодключаемыхКоманд` с типом `Произвольный`
|
||||||
|
|
||||||
## Форма объекта
|
## Форма объекта
|
||||||
```bsl
|
```bsl
|
||||||
|
|
||||||
@ -62,6 +65,9 @@ slug: общие-бсп-стандартные-подсистемы-подклю
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Форма списка
|
## Форма списка
|
||||||
|
|
||||||
|
> ВАЖНО. Для реквизита `Ссылка` динамического списка нужно установить флаг `Использовать всегда`
|
||||||
|
|
||||||
```bsl
|
```bsl
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
|
Loading…
x
Reference in New Issue
Block a user