Compare commits

..

No commits in common. "348e9a2aeea5266904f70f40ff23801247d3616a" and "d186d5b43e80e73febee4c58dcfd6d71236b873d" have entirely different histories.

6 changed files with 0 additions and 287 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View File

@ -1,122 +0,0 @@
---
title: Подключение к подсистеме Групповое изменение реквизитов
slug: общие-бсп-стандартные-подсистемы-групповое-изменение-реквизитов/подключение-к-подсистеме-групповое-изменение-реквизитов
---
По умолчанию для группового изменения собственных объектов метаданных с помощью стандартной обработки `Групповое изменение реквизитов` ничего дополнительно настраивать не нужно - доп.настройки нужны только для того, чтобы **обеспечить возможность вывода команд запуска обработки на форму списка** и **ограничить состав доступных реквизитов**
# Вывод команды на форму списка
## Общий модуль
В общем модуле `ГрупповоеИзменениеОбъектовПереопределяемый` дополняем процедуру `ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов`
```bsl
// Определить объекты метаданных, в формах списков которых
// будет выведена команда группового изменения выделенных объектов.
// см. ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные
//
// Параметры:
// Объекты - Массив из ОбъектМетаданных
//
// Пример:
// Объекты.Добавить(Метаданные.Справочники.Номенклатура);
// Объекты.Добавить(Метаданные.Справочники.Контрагенты);
//
Процедура ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов(Объекты) Экспорт
Объекты.Добавить(Метаданные.Справочники.Номенклатура);
КонецПроцедуры
```
## Форма списка
### Автоматическое создание команды
Форму списка нужно подключить к подсистеме `Подключаемые команды`
![Изображение](/bsp-gruppovoe-izmenenie-rekv/1.png)
### Ручное создание команды
На форме списка для динамического списка задаем у поля `Ссылка` флаг `Использовать всегда`
Cоздаем команду со следующими **рекомендуемыми** свойствами:
|Свойство|Значение|
|-|-|
|Имя|`ИзменитьВыделенные`|
|Действие|`ИзменитьВыделенные`|
|Подсказка|Изменить выделенные объекты|
|Изменяет сохраняемые данные|`Нет`|
размещаем в произвольном месте
*(Опционально)* Настраиваем видимость команды. Например:
```bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
МожноРедактировать = ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура);
Элементы.ФормаИзменитьВыделенные.Видимость = МожноРедактировать;
КонецПроцедуры
```
Определяем обработчик команды
```bsl
&НаКлиенте
Процедура ИзменитьВыделенные(Команда)
// СтандартныеПодсистемы.ГрупповоеРедактированиеОбъектов
ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список, Список);
// Конец СтандартныеПодсистемы.ГрупповоеРедактированиеОбъектов
КонецПроцедуры
```
## Ограничение редактируемых реквизитов
Если необходимо точечно настроить состав реквизитов, которые будут доступны/недоступны в обработке `Групповое редактирование реквизитов` необходимо:
1. В процедуре `ПриОпределенииОбъектовСРедактируемымиРеквизитами` общего модуля `ГрупповоеИзменениеОбъектовПереопределяемый` указать, какие именно уточняющие процедуры (`РеквизитыРедактируемыеВГрупповойОбработке` и/или `РеквизитыНеРедактируемыеВГрупповойОбработке`) будут определены в **модуле менджера** целевого объекта:
```bsl
// Определить объекты метаданных, в модулях менеджеров которых ограничивается возможность
// редактирования реквизитов при групповом изменении.
//
// Параметры:
// Объекты - Соответствие из КлючИЗначение - в качестве ключа указать полное имя объекта метаданных,
// подключенного к подсистеме "Групповое изменение объектов".
// Дополнительно в значении могут быть перечислены имена экспортных функций:
// "РеквизитыНеРедактируемыеВГрупповойОбработке",
// "РеквизитыРедактируемыеВГрупповойОбработке".
// Каждое имя должно начинаться с новой строки.
// Если указано "*", значит, в модуле менеджера определены обе функции.
//
// Пример:
// Объекты.Вставить(Метаданные.Документы.ЗаказПокупателя.ПолноеИмя(), "*"); // определены обе функции.
// Объекты.Вставить(Метаданные.БизнесПроцессы.ЗаданиеСРолевойАдресацией.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке");
// Объекты.Вставить(Метаданные.Справочники.Партнеры.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке
// |РеквизитыНеРедактируемыеВГрупповойОбработке");
//
Процедура ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты) Экспорт
//
Объекты.Вставить(Метаданные.Справочники.Номенклатура, "*");
КонецПроцедуры
```
2. В модуле менеджера определяем указанные функции:
```bsl
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
РедактируемыеРеквизиты = Новый Массив;
РедактируемыеРеквизиты.Добавить("ИмяРеквизита"); // реквизит объекта
РедактируемыеРеквизиты.Добавить("ИмяТабличнойЧасти.ИмяРеквизита"); // реквизит табличной части объекта
РедактируемыеРеквизиты.Добавить("ИмяТабличнойЧасти.*"); // все реквизиты табличной части объекта
РедактируемыеРеквизиты.Добавить("*"); // все реквизиты и табличные части объекта. Если не указать, то
// оставшиеся реквизиты скрываются
Возврат РедактируемыеРеквизиты;
КонецФункции
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
РедактируемыеРеквизиты = Новый Массив;
// аналогично функции выше
Возврат РедактируемыеРеквизиты;
КонецФункции
```

View File

@ -1,73 +0,0 @@
---
title: Подключение к подсистеме Напоминания пользователя
slug: общие-бсп-стандартные-подсистемы-напоминания-пользователя/подключение-к-подсистеме-напоминания-пользователя
---
## Общие настройки
Подсистема **Напоминания пользователя** предназначена для установки персональных напоминаний по поводу какого-либо объекта системы и оповещения пользователя в назначенное время.
Для использования подсистемы необходимо разместить в командном интерфейсе пользователя форму `МоиНапоминания` регистра сведений `НапоминанияПользователя`, а также выполнить следующие действия:
- Определить состав объектов ссылочного типа, по поводу которых пользователь должен иметь возможность вводить напоминания. Как правило, это большинство объектов конфигурации, с которыми работает пользователь.
- В определяемых типах `ПредметНапоминания` и `ПредметНапоминанияОбъект` отметить выбранные типы объектов в свойстве `Тип`. (В `ПредметНапоминания` - все типы, а в `ПредметНапоминанияОбъект` - все кроме документов)
- Подключить форму к подсистеме `Подключаемые команды`
Опционально. Для целей оптимизации производительности при открытии формы рекомендуется добавить в командную панель подменю для вывода команд напоминаний по шаблону:
Имя: `ПодменюОрганайзер`
Заголовок: **Органайзер**
Вид: `Подменю`
Отображение: `Картинка`
Картинка: `Органайзер` (картинка из конфигурации).
По умолчанию пользователю предлагается задать срок напоминания относительно любого реквизита типа `Дата`. В списке доступных для выбора реквизитов доступны только реквизиты, значения дат которых находятся в будущем. Этот список можно переопределить например, убрать из него служебные реквизиты. Для этого необходимо вписать свою реализацию в процедуру `ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания` модуля `НапоминанияПользователяПереопределяемый`.
## Размещение элементов настройки напоминания на форме объекта
![Изображение](/bsp-napominaniya/1.png)
На форме нужно создать/определить группу, в которую будет размещен новый создаваемый элемент. Например, группа `ГруппаДатаОптатыСНапоминанием`
В модуле формы сделать вставки:
```bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.НапоминанияПользователя
ПараметрыРазмещения = НапоминанияПользователя.ПараметрыРазмещения();
ПараметрыРазмещения.Группа = Элементы.ГруппаДатаОптатыСНапоминанием;
ПараметрыРазмещения.ИмяРеквизитаСДатойСобытия = "ДатаОплаты";
НапоминанияПользователя.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
// Конец СтандартныеПодсистемы.НапоминанияПользователя
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.НапоминанияПользователя
НапоминанияПользователя.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
// Конец СтандартныеПодсистемы.НапоминанияПользователя
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// СтандартныеПодсистемы.НапоминанияПользователя
ТекстНапоминания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Проверить оплату по счету %1'"), ТекущийОбъект.Номер);
НапоминанияПользователя.ПриЗаписиНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи, ТекстНапоминания);
// Конец СтандартныеПодсистемы.НапоминанияПользователя
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// СтандартныеПодсистемы.НапоминанияПользователя
НапоминанияПользователяКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
// Конец СтандартныеПодсистемы.НапоминанияПользователя
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииНастройкиНапоминания(Элемент)
// СтандартныеПодсистемы.НапоминанияПользователя
НапоминанияПользователяКлиент.ПриИзмененииНастройкиНапоминания(Элемент, ЭтотОбъект);
// Конец СтандартныеПодсистемы.НапоминанияПользователя
КонецПроцедуры
```

View File

@ -1,92 +0,0 @@
---
title: Подключение к подсистеме Префиксация объектов
slug: общие-бсп-стандартные-подсистемы-префиксация-объектов/подключение-к-подсистеме-префиксация-объектов
---
## Общее
Подсистема `Префиксация объектов` предназначена для автоматического назначения префиксов объектам с учетом настроек приложения. `Префиксация объектов` ведется в разрезах информационных баз и элементов справочника `Организации`.
Назначение префикса номеру или коду объекта происходит в момент первой записи объекта, если код или номер не были назначены вручную. Назначение префикса также происходит, если номер или код объекта были очищены перед его записью.
Префикс имеет фиксированную длину: **3 или 5 символов**. В префиксе нельзя использовать символ «-» (дефис); он используется для разделения префикса c номером и добавляется автоматически. Соответственно, префикс формируется по одному из двух шаблонов:
ОРИБ- или ИБ-, где
- ОР 2 символа префикса справочника Организации;
- ИБ 2 символа префикса информационной базы;
- «-» (дефис) разделитель префикса.
Для конфигураций, в которых используется подсистема префиксации, длину номеров документов и кодов справочников рекомендуется устанавливать **не менее 11 символов**.
Если префикс информационной базы или префикс организации не указан, то считается, что такой префикс отсутствует, он заменяется двумя нулями **00**.
> Префикс информационой базы используется только тогда, когда конфигурация опдключена к подсистеме `Обмен данными`
## Установка префикса ИБ
Префикс ИБ устанавливается в настройках конфигурации (в пользовательском режиме):
`НСИ и Администрирование` -> `Синхронизация данных` -> `Префикс информационной базы`
![Изображение](/bsp-prefiksaciya/1.png)
## Установка префикса организации
- Включить справочник `Организации` (создать, если нет) в состав определяемого типа `Организация`
- В справочник `Организации` добавить реквизить `Префикс` (строка, 2 символа)
- Создать **параметр функциональной опции** `Организация`. В свойстве `Использование` указать справочник `Организации`
- Создать **функциональную опцию** `ПрефиксыОрганизаций`, в свойстве `Хранение` которой указать ссылку на созданный выше реквизит `Префикс`
Если объекту требуется устанавливать префикс организации, то в составе реквизитов шапки объекта должен присутствовать реквизит `Организация`. Обязательные значения свойств реквизита указаны в таблице:
| Свойство | Значение |
| -------- | ------------------------------ |
| **Имя** | `Организация` |
| **Тип** | `СправочникСсылка.Организации` |
## Создание/дополнение подписок на события
### Установка нового номера
Следует создать необходимое количество подписок на события для задания номера или кода объекта при его записи, если номер или код не заполнены. Значения свойств подписок задать согласно таблице:
|Имя свойства|Описание|
|-|-|
|`Имя`|Имя следует задавать для удобства визуального восприятия подписки и с учетом ограничений, налагаемых на имена объектов метаданных, например `УстановитьПрефиксИнформационнойБазыИОрганизацииНомеруДокумента`|
|`Источник`|Источниками событий подписки могут быть только объекты типов: `Документы`, `Справочники`, `ПланыВидовХарактеристик`, `БизнесПроцессы`. В качестве источников для одной подписки могут быть использованы объекты только одного типа.|
|`Событие`|`ПриУстановкеНовогоКода` или `ПриУстановкеНовогоНомера`|
|`Обработчик`|В качестве процедур обработчиков подписок следует выбирать экспортные процедуры общего модуля `ПрефиксацияОбъектовСобытия`|
*Важно!
Для объектов `Задача` префикс номеров устанавливается подсистемой `Бизнес-процессы и задачи`. Использование подсистемы префиксации для объектов `Задача` будет вызывать ошибки в работе конфигурации.*
В общем модуле `ПрефиксацияОбъектовСобытия` предусмотрено 3 обработчика:
- `УстановитьПрефиксОрганизации` - следует использовать в том случае, если требуется выполнять префиксацию объектов только в разрезе организаций.
- `УстановитьПрефиксИнформационнойБазы` - следует использовать в том случае, если используется подсистема `Обмен данными`, а префиксацию объектов в разрезе организаций выполнять **не требуется**. К таким типам объектов в основном относятся справочники и планы видов характеристик.
- `УстановитьПрефиксИнформационнойБазыИОрганизации` - следует использовать в том случае, если требуется выполнять префиксацию объектов в разрезе информационных баз и организаций одновременно. К таким типам объектов в основном относятся документы.
### Переопределение номера при изменении ключевых реквизитов
Следует создать необходимое количество подписок на события для переназначения номера (кода) объекта при изменении даты или значения реквизита Организация в шапке объекта. После очистки объекту будет назначен новый код или номер.
Значения свойств подписок надо задать согласно таблице:
| Имя свойства | Описание |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Имя** | Имя следует задавать для удобства визуального восприятия подписки и с учетом ограничений, налагаемых на имена объектов метаданных, например `ПроверитьНомерДокументаПоДатеИОрганизации`. |
| **Источник** | Источниками событий подписки могут быть только объекты типов: Документы, Справочники, ПланыВидовХарактеристик, БизнесПроцессы. В качестве источников для одной подписки могут быть использованы объекты только одного типа. |
| **Событие** | `ПередЗаписью`. |
| **Обработчик** | В качестве процедур обработчиков подписок следует выбирать экспортные процедуры общего модуля `ПрефиксацияОбъектовСобытия`. |
В общем модуле `ПрефиксацияОбъектовСобытия` предусмотрено пять процедур обработчиков подписок, каждую из которых необходимо использовать исходя из типа объектов источников подписок и наличия реквизита `Организация` в шапке этих объектов:
* `ПроверитьКодСправочникаПоОрганизации` следует использовать для справочников, у которых нумерация кодов выполняется в разрезе справочника `Организации`.
* `ПроверитьНомерБизнесПроцессаПоДате` следует использовать для бизнес-процессов, у которых нумерация выполняется только в пределах заданной периодичности.
* `ПроверитьНомерБизнесПроцессаПоДатеИОрганизации` следует использовать для бизнес-процессов, у которых нумерация выполняется в пределах заданной периодичности и в разрезе справочника `Организации`.
* `ПроверитьНомерДокументаПоДате` следует использовать для документов, у которых нумерация выполняется только в пределах заданной периодичности.
* `ПроверитьНомерДокументаПоДатеИОрганизации` следует использовать для документов, у которых нумерация выполняется в пределах заданной периодичности и в разрезе справочника `Организации`.
В большинстве случаев в конфигурации требуется создание только трех подписок: двух для назначения префиксов справочникам и документам и одной для очистки номеров документов. Пример для создания таких подписок представлен в таблице:
| Имя подписки | Обработчик |
| ---------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `УстановитьПрефиксИнформационнойБазыКодуСправочника` | `ПрефиксацияОбъектовСобытия.УстановитьПрефиксИнформационнойБазы` |
| `УстановитьПрефиксИнформационнойБазыИОрганизацииНомеруДокумента` | `ПрефиксацияОбъектовСобытия.УстановитьПрефиксИнформационнойБазыИОрганизации` |
| `ПроверитьНомерДокументаПоДатеИОрганизации` | `ПрефиксацияОбъектовСобытия.ПроверитьНомерДокументаПоДатеИОрганизации` |