diff --git a/public/bsp-gruppovoe-izmenenie-rekv/1.png b/public/bsp-gruppovoe-izmenenie-rekv/1.png new file mode 100644 index 0000000..f1cf589 Binary files /dev/null and b/public/bsp-gruppovoe-izmenenie-rekv/1.png differ diff --git a/public/bsp-napominaniya/1.png b/public/bsp-napominaniya/1.png new file mode 100644 index 0000000..e6316af Binary files /dev/null and b/public/bsp-napominaniya/1.png differ diff --git a/public/bsp-prefiksaciya/1.png b/public/bsp-prefiksaciya/1.png new file mode 100644 index 0000000..b5c0037 Binary files /dev/null and b/public/bsp-prefiksaciya/1.png differ diff --git a/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Групповое изменение реквизитов/Подключение к подсистеме Групповое изменение реквизитов.md b/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Групповое изменение реквизитов/Подключение к подсистеме Групповое изменение реквизитов.md new file mode 100644 index 0000000..2e6feda --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Групповое изменение реквизитов/Подключение к подсистеме Групповое изменение реквизитов.md @@ -0,0 +1,122 @@ +--- +title: Подключение к подсистеме Групповое изменение реквизитов +slug: общие-бсп-стандартные-подсистемы-групповое-изменение-реквизитов/подключение-к-подсистеме-групповое-изменение-реквизитов +--- + +По умолчанию для группового изменения собственных объектов метаданных с помощью стандартной обработки `Групповое изменение реквизитов` ничего дополнительно настраивать не нужно - доп.настройки нужны только для того, чтобы **обеспечить возможность вывода команд запуска обработки на форму списка** и **ограничить состав доступных реквизитов** + +# Вывод команды на форму списка + +## Общий модуль + +В общем модуле `ГрупповоеИзменениеОбъектовПереопределяемый` дополняем процедуру `ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов` +```bsl +// Определить объекты метаданных, в формах списков которых +// будет выведена команда группового изменения выделенных объектов. +// см. ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные +// +// Параметры: +// Объекты - Массив из ОбъектМетаданных +// +// Пример: +// Объекты.Добавить(Метаданные.Справочники.Номенклатура); +// Объекты.Добавить(Метаданные.Справочники.Контрагенты); +// +Процедура ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов(Объекты) Экспорт + + Объекты.Добавить(Метаданные.Справочники.Номенклатура); + +КонецПроцедуры +``` + +## Форма списка + +### Автоматическое создание команды + +Форму списка нужно подключить к подсистеме `Подключаемые команды` + +![Изображение](/bsp-gruppovoe-izmenenie-rekv/1.png) + +### Ручное создание команды + +На форме списка для динамического списка задаем у поля `Ссылка` флаг `Использовать всегда` + +Cоздаем команду со следующими **рекомендуемыми** свойствами: +|Свойство|Значение| +|-|-| +|Имя|`ИзменитьВыделенные`| +|Действие|`ИзменитьВыделенные`| +|Подсказка|Изменить выделенные объекты| +|Изменяет сохраняемые данные|`Нет`| + +размещаем в произвольном месте + +*(Опционально)* Настраиваем видимость команды. Например: +```bsl +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + МожноРедактировать = ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура); + Элементы.ФормаИзменитьВыделенные.Видимость = МожноРедактировать; +КонецПроцедуры +``` + +Определяем обработчик команды +```bsl +&НаКлиенте +Процедура ИзменитьВыделенные(Команда) + // СтандартныеПодсистемы.ГрупповоеРедактированиеОбъектов + ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список, Список); + // Конец СтандартныеПодсистемы.ГрупповоеРедактированиеОбъектов +КонецПроцедуры +``` + +## Ограничение редактируемых реквизитов + +Если необходимо точечно настроить состав реквизитов, которые будут доступны/недоступны в обработке `Групповое редактирование реквизитов` необходимо: + +1. В процедуре `ПриОпределенииОбъектовСРедактируемымиРеквизитами` общего модуля `ГрупповоеИзменениеОбъектовПереопределяемый` указать, какие именно уточняющие процедуры (`РеквизитыРедактируемыеВГрупповойОбработке` и/или `РеквизитыНеРедактируемыеВГрупповойОбработке`) будут определены в **модуле менджера** целевого объекта: +```bsl +// Определить объекты метаданных, в модулях менеджеров которых ограничивается возможность +// редактирования реквизитов при групповом изменении. +// +// Параметры: +// Объекты - Соответствие из КлючИЗначение - в качестве ключа указать полное имя объекта метаданных, +// подключенного к подсистеме "Групповое изменение объектов". +// Дополнительно в значении могут быть перечислены имена экспортных функций: +// "РеквизитыНеРедактируемыеВГрупповойОбработке", +// "РеквизитыРедактируемыеВГрупповойОбработке". +// Каждое имя должно начинаться с новой строки. +// Если указано "*", значит, в модуле менеджера определены обе функции. +// +// Пример: +// Объекты.Вставить(Метаданные.Документы.ЗаказПокупателя.ПолноеИмя(), "*"); // определены обе функции. +// Объекты.Вставить(Метаданные.БизнесПроцессы.ЗаданиеСРолевойАдресацией.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке"); +// Объекты.Вставить(Метаданные.Справочники.Партнеры.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке +// |РеквизитыНеРедактируемыеВГрупповойОбработке"); +// +Процедура ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты) Экспорт + + // + Объекты.Вставить(Метаданные.Справочники.Номенклатура, "*"); + +КонецПроцедуры +``` + +2. В модуле менеджера определяем указанные функции: +```bsl +Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт + РедактируемыеРеквизиты = Новый Массив; + РедактируемыеРеквизиты.Добавить("ИмяРеквизита"); // реквизит объекта + РедактируемыеРеквизиты.Добавить("ИмяТабличнойЧасти.ИмяРеквизита"); // реквизит табличной части объекта + РедактируемыеРеквизиты.Добавить("ИмяТабличнойЧасти.*"); // все реквизиты табличной части объекта + РедактируемыеРеквизиты.Добавить("*"); // все реквизиты и табличные части объекта. Если не указать, то + // оставшиеся реквизиты скрываются + Возврат РедактируемыеРеквизиты; +КонецФункции + +Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт + РедактируемыеРеквизиты = Новый Массив; + // аналогично функции выше + Возврат РедактируемыеРеквизиты; +КонецФункции +``` \ No newline at end of file diff --git a/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Напоминания пользователя/Подключение к подсистеме Напоминания пользователя.md b/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Напоминания пользователя/Подключение к подсистеме Напоминания пользователя.md new file mode 100644 index 0000000..4939436 --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Напоминания пользователя/Подключение к подсистеме Напоминания пользователя.md @@ -0,0 +1,73 @@ +--- +title: Подключение к подсистеме Напоминания пользователя +slug: общие-бсп-стандартные-подсистемы-напоминания-пользователя/подключение-к-подсистеме-напоминания-пользователя +--- + +## Общие настройки + +Подсистема **Напоминания пользователя** предназначена для установки персональных напоминаний по поводу какого-либо объекта системы и оповещения пользователя в назначенное время. + +Для использования подсистемы необходимо разместить в командном интерфейсе пользователя форму `МоиНапоминания` регистра сведений `НапоминанияПользователя`, а также выполнить следующие действия: + +- Определить состав объектов ссылочного типа, по поводу которых пользователь должен иметь возможность вводить напоминания. Как правило, это большинство объектов конфигурации, с которыми работает пользователь. +- В определяемых типах `ПредметНапоминания` и `ПредметНапоминанияОбъект` отметить выбранные типы объектов в свойстве `Тип`. (В `ПредметНапоминания` - все типы, а в `ПредметНапоминанияОбъект` - все кроме документов) +- Подключить форму к подсистеме `Подключаемые команды` + +Опционально. Для целей оптимизации производительности при открытии формы рекомендуется добавить в командную панель подменю для вывода команд напоминаний по шаблону: + +Имя: `ПодменюОрганайзер` +Заголовок: **Органайзер** +Вид: `Подменю` +Отображение: `Картинка` +Картинка: `Органайзер` (картинка из конфигурации). + +По умолчанию пользователю предлагается задать срок напоминания относительно любого реквизита типа `Дата`. В списке доступных для выбора реквизитов доступны только реквизиты, значения дат которых находятся в будущем. Этот список можно переопределить – например, убрать из него служебные реквизиты. Для этого необходимо вписать свою реализацию в процедуру `ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания` модуля `НапоминанияПользователяПереопределяемый`. + +## Размещение элементов настройки напоминания на форме объекта + +![Изображение](/bsp-napominaniya/1.png) + +На форме нужно создать/определить группу, в которую будет размещен новый создаваемый элемент. Например, группа `ГруппаДатаОптатыСНапоминанием` + +В модуле формы сделать вставки: +```bsl +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + // СтандартныеПодсистемы.НапоминанияПользователя + ПараметрыРазмещения = НапоминанияПользователя.ПараметрыРазмещения(); + ПараметрыРазмещения.Группа = Элементы.ГруппаДатаОптатыСНапоминанием; + ПараметрыРазмещения.ИмяРеквизитаСДатойСобытия = "ДатаОплаты"; + НапоминанияПользователя.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения); + // Конец СтандартныеПодсистемы.НапоминанияПользователя +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + // СтандартныеПодсистемы.НапоминанияПользователя + НапоминанияПользователя.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.НапоминанияПользователя +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + // СтандартныеПодсистемы.НапоминанияПользователя + ТекстНапоминания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Проверить оплату по счету %1'"), ТекущийОбъект.Номер); + НапоминанияПользователя.ПриЗаписиНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи, ТекстНапоминания); + // Конец СтандартныеПодсистемы.НапоминанияПользователя +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + // СтандартныеПодсистемы.НапоминанияПользователя + НапоминанияПользователяКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник); + // Конец СтандартныеПодсистемы.НапоминанияПользователя +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииНастройкиНапоминания(Элемент) + // СтандартныеПодсистемы.НапоминанияПользователя + НапоминанияПользователяКлиент.ПриИзмененииНастройкиНапоминания(Элемент, ЭтотОбъект); + // Конец СтандартныеПодсистемы.НапоминанияПользователя +КонецПроцедуры +``` \ No newline at end of file diff --git a/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Префиксация объектов/Подключение к подсистеме Префиксация объектов.md b/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Префиксация объектов/Подключение к подсистеме Префиксация объектов.md new file mode 100644 index 0000000..1b4dfea --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Префиксация объектов/Подключение к подсистеме Префиксация объектов.md @@ -0,0 +1,92 @@ +--- +title: Подключение к подсистеме Префиксация объектов +slug: общие-бсп-стандартные-подсистемы-префиксация-объектов/подключение-к-подсистеме-префиксация-объектов +--- + +## Общее +Подсистема `Префиксация объектов` предназначена для автоматического назначения префиксов объектам с учетом настроек приложения. `Префиксация объектов` ведется в разрезах информационных баз и элементов справочника `Организации`. + +Назначение префикса номеру или коду объекта происходит в момент первой записи объекта, если код или номер не были назначены вручную. Назначение префикса также происходит, если номер или код объекта были очищены перед его записью. + +Префикс имеет фиксированную длину: **3 или 5 символов**. В префиксе нельзя использовать символ «-» (дефис); он используется для разделения префикса c номером и добавляется автоматически. Соответственно, префикс формируется по одному из двух шаблонов: +ОРИБ- или ИБ-, где +- ОР – 2 символа префикса справочника Организации; +- ИБ – 2 символа префикса информационной базы; +- «-» (дефис) – разделитель префикса. + +Для конфигураций, в которых используется подсистема префиксации, длину номеров документов и кодов справочников рекомендуется устанавливать **не менее 11 символов**. + +Если префикс информационной базы или префикс организации не указан, то считается, что такой префикс отсутствует, он заменяется двумя нулями – **00**. + + +> Префикс информационой базы используется только тогда, когда конфигурация опдключена к подсистеме `Обмен данными` + +## Установка префикса ИБ + +Префикс ИБ устанавливается в настройках конфигурации (в пользовательском режиме): +`НСИ и Администрирование` -> `Синхронизация данных` -> `Префикс информационной базы` +![Изображение](/bsp-prefiksaciya/1.png) + +## Установка префикса организации + +- Включить справочник `Организации` (создать, если нет) в состав определяемого типа `Организация` +- В справочник `Организации` добавить реквизить `Префикс` (строка, 2 символа) +- Создать **параметр функциональной опции** `Организация`. В свойстве `Использование` указать справочник `Организации` +- Создать **функциональную опцию** `ПрефиксыОрганизаций`, в свойстве `Хранение` которой указать ссылку на созданный выше реквизит `Префикс` + +Если объекту требуется устанавливать префикс организации, то в составе реквизитов шапки объекта должен присутствовать реквизит `Организация`. Обязательные значения свойств реквизита указаны в таблице: + +| Свойство | Значение | +| -------- | ------------------------------ | +| **Имя** | `Организация` | +| **Тип** | `СправочникСсылка.Организации` | + +## Создание/дополнение подписок на события + +### Установка нового номера +Следует создать необходимое количество подписок на события для задания номера или кода объекта при его записи, если номер или код не заполнены. Значения свойств подписок задать согласно таблице: + +|Имя свойства|Описание| +|-|-| +|`Имя`|Имя следует задавать для удобства визуального восприятия подписки и с учетом ограничений, налагаемых на имена объектов метаданных, например `УстановитьПрефиксИнформационнойБазыИОрганизацииНомеруДокумента`| +|`Источник`|Источниками событий подписки могут быть только объекты типов: `Документы`, `Справочники`, `ПланыВидовХарактеристик`, `БизнесПроцессы`. В качестве источников для одной подписки могут быть использованы объекты только одного типа.| +|`Событие`|`ПриУстановкеНовогоКода` или `ПриУстановкеНовогоНомера`| +|`Обработчик`|В качестве процедур – обработчиков подписок следует выбирать экспортные процедуры общего модуля `ПрефиксацияОбъектовСобытия`| + +*Важно! +Для объектов `Задача` префикс номеров устанавливается подсистемой `Бизнес-процессы и задачи`. Использование подсистемы префиксации для объектов `Задача` будет вызывать ошибки в работе конфигурации.* + +В общем модуле `ПрефиксацияОбъектовСобытия` предусмотрено 3 обработчика: +- `УстановитьПрефиксОрганизации` - следует использовать в том случае, если требуется выполнять префиксацию объектов только в разрезе организаций. +- `УстановитьПрефиксИнформационнойБазы` - следует использовать в том случае, если используется подсистема `Обмен данными`, а префиксацию объектов в разрезе организаций выполнять **не требуется**. К таким типам объектов в основном относятся справочники и планы видов характеристик. +- `УстановитьПрефиксИнформационнойБазыИОрганизации` - следует использовать в том случае, если требуется выполнять префиксацию объектов в разрезе информационных баз и организаций одновременно. К таким типам объектов в основном относятся документы. + +### Переопределение номера при изменении ключевых реквизитов + +Следует создать необходимое количество подписок на события для переназначения номера (кода) объекта при изменении даты или значения реквизита Организация в шапке объекта. После очистки объекту будет назначен новый код или номер. + +Значения свойств подписок надо задать согласно таблице: + +| Имя свойства | Описание | +| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Имя** | Имя следует задавать для удобства визуального восприятия подписки и с учетом ограничений, налагаемых на имена объектов метаданных, например `ПроверитьНомерДокументаПоДатеИОрганизации`. | +| **Источник** | Источниками событий подписки могут быть только объекты типов: Документы, Справочники, ПланыВидовХарактеристик, БизнесПроцессы. В качестве источников для одной подписки могут быть использованы объекты только одного типа. | +| **Событие** | `ПередЗаписью`. | +| **Обработчик** | В качестве процедур – обработчиков подписок следует выбирать экспортные процедуры общего модуля `ПрефиксацияОбъектовСобытия`. | + +В общем модуле `ПрефиксацияОбъектовСобытия` предусмотрено пять процедур – обработчиков подписок, каждую из которых необходимо использовать исходя из типа объектов – источников подписок и наличия реквизита `Организация` в шапке этих объектов: + +* `ПроверитьКодСправочникаПоОрганизации` – следует использовать для справочников, у которых нумерация кодов выполняется в разрезе справочника `Организации`. +* `ПроверитьНомерБизнесПроцессаПоДате` – следует использовать для бизнес-процессов, у которых нумерация выполняется только в пределах заданной периодичности. +* `ПроверитьНомерБизнесПроцессаПоДатеИОрганизации` – следует использовать для бизнес-процессов, у которых нумерация выполняется в пределах заданной периодичности и в разрезе справочника `Организации`. +* `ПроверитьНомерДокументаПоДате` – следует использовать для документов, у которых нумерация выполняется только в пределах заданной периодичности. +* `ПроверитьНомерДокументаПоДатеИОрганизации` – следует использовать для документов, у которых нумерация выполняется в пределах заданной периодичности и в разрезе справочника `Организации`. + +В большинстве случаев в конфигурации требуется создание только трех подписок: двух для назначения префиксов справочникам и документам и одной для очистки номеров документов. Пример для создания таких подписок представлен в таблице: + +| Имя подписки | Обработчик | +| ---------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `УстановитьПрефиксИнформационнойБазыКодуСправочника` | `ПрефиксацияОбъектовСобытия.УстановитьПрефиксИнформационнойБазы` | +| `УстановитьПрефиксИнформационнойБазыИОрганизацииНомеруДокумента` | `ПрефиксацияОбъектовСобытия.УстановитьПрефиксИнформационнойБазыИОрганизации` | +| `ПроверитьНомерДокументаПоДатеИОрганизации` | `ПрефиксацияОбъектовСобытия.ПроверитьНомерДокументаПоДатеИОрганизации` | +