add
BIN
public/obmen-dannymi/rib/10.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
public/obmen-dannymi/rib/11.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/obmen-dannymi/rib/12.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
public/obmen-dannymi/rib/13.png
Normal file
|
After Width: | Height: | Size: 469 KiB |
BIN
public/obmen-dannymi/rib/14.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
public/obmen-dannymi/rib/15.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
public/obmen-dannymi/rib/16.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
public/obmen-dannymi/rib/17.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/obmen-dannymi/rib/18.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/obmen-dannymi/rib/19.png
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
public/obmen-dannymi/rib/5.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
public/obmen-dannymi/rib/6.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
public/obmen-dannymi/rib/7.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/obmen-dannymi/rib/8.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
public/obmen-dannymi/rib/9.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
@ -2,29 +2,31 @@
|
||||
title: Подключение БСП к собственной конфигурации
|
||||
slug: общие-бсп-подключение-к-подсистемам/подключение-бсп-к-собственной-конфигурации
|
||||
---
|
||||
# Для полной интеграции БСП, не частичной
|
||||
1. Создаем пустую конфигурацию
|
||||
2. Запускаем в пользовательском режиме
|
||||
3. Открываем обработку ПервоеВнедрениеБСП.epf из папки шаблона БСП (`%AppData%\1C\1cv8\tmplts\1c\SSL\3_1_9_144\ExtFiles`)
|
||||
4. В обработке ничего не выбираем, оставляем только базовую функциональность
|
||||
5. Сохраняем в файл
|
||||
6. Сравниваем и объединяем нашу пустую конфигурацию с конфигурацией из шаблона БСП `1Cv8.cf`. Полную замену не делаем, ставим на поддержку (опционально)
|
||||
В окне снимаем все флажки и загружаем настройки, сохраненные в п.5
|
||||
|
||||
1. Устанавливаем нужную версию БСП в шаблоны
|
||||
2. Запускаем нужную конфигурацию в пользовательском режиме
|
||||
3. Открываем обработку `ПервоеВнедрениеБСП.epf` из папки шаблонов БСП (по умолчанию `%AppData%\1C\1cv8\tmplts\1c\SSL\<Версия_БСП>\ExtFiles`)
|
||||
4. В обработке выбираем нужные подсистемы
|
||||
5. Сохраняем настройки в файл
|
||||
6. Сравниваем и объединяем нашу конфигурацию с конфигурацией из шаблона БСП `1Cv8.cf`. Полную замену не делаем, ставим на поддержку (опционально). Загружаем настройки, сохраненные в п.5
|
||||
1. Назначаем имя, поставщика и версию конфигурации
|
||||
2. Копируем общий модуль `ОбновлениеИнформационнойБазыБСП`, переименовываем (`ОбновлениеИнформационнойБазыСигма`, например). В нем редактируем процедуру `ПриДобавленииПодсистемы` и удаляем код из всех остальных методов модуля
|
||||
2. Копируем общий модуль `ОбновлениеИнформационнойБазыБСП`, переименовываем (`ОбновлениеИнформационнойБазыСигма`, например). В нем редактируем процедуру `ПриДобавленииПодсистемы` и удаляем код из всех остальных методов модуля.
|
||||
**Сами методы не удалять**
|
||||
|
||||
```bsl
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "Сигма"; // ИмяКонфигурации
|
||||
Описание.Версия = "1.0.1.1"; //ВерсияКонфигурации
|
||||
//Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
//Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
//Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
//Описание.ЗаполнятьДанныеНовыхПодсистемПриПереходеСДругойПрограммы = Истина;
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ЗаполнятьДанныеНовыхПодсистемПриПереходеСДругойПрограммы = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
```
|
||||
9. В модуле `ПодсистемыКонфигурацииПереопределяемый` в методе `ПриДобавленииПодсистем` пишем
|
||||
9. В модуле `ПодсистемыКонфигурацииПереопределяемый` в методе `ПриДобавленииПодсистем` добавляем наш модуль
|
||||
|
||||
```bsl
|
||||
МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазыСигма")
|
||||
```
|
||||
```
|
||||
|
||||
10. Запускаем в пользовательском режиме, ожидаем завершения отложенных обработчиков обновления
|
||||
@ -0,0 +1,277 @@
|
||||
---
|
||||
title: Реализация РИБ в базах с БСП
|
||||
slug: общие-обмен-данными-планы-обмена-распределенная-информационная-база-реализация/реализация-риб-в-базах-с-бсп
|
||||
---
|
||||
|
||||
## Требуемые подсистемы БСП
|
||||
|
||||
- Базовая функциональность
|
||||
- Групповое изменение объектов
|
||||
- Дополнительные отчеты и обработки
|
||||
- Загрузка данных из файла
|
||||
- Настройки программы
|
||||
- Обмен данными
|
||||
- Обновление версии ИБ
|
||||
- Подключаемые команды
|
||||
- Поиск и удаление дублей
|
||||
- Пользователи
|
||||
- Префиксация объектов
|
||||
- Работа с файлами
|
||||
- Регламентные задания
|
||||
- Удаление помеченных объектов
|
||||
|
||||
См. `Общие` - `(БСП) Подключение к подсистемам` - `Подключение БСП к собственной конфигурации`
|
||||
|
||||
## Подключаем объекты к подсистеме "Префиксация объектов"
|
||||
См. `Общие` - `(БСП) Подключение к подсистемам` - `Подключение к подсистеме Префиксация объектов`
|
||||
|
||||
## Создаем план обмена
|
||||
|
||||
> **ВАЖНО!** Значения свойств плана обмена строго рекламентированы и описаны в документации ИТС
|
||||
|
||||
| Свойство | Значение |
|
||||
|-------------|-------------|
|
||||
|Имя| Не регламентируется. Укажем "Полный" |
|
||||
|Длина кода| 9 (36 для организации автономной работы в модели сервиса.) |
|
||||
|Длина наименования| 150 |
|
||||
|Распределенная информационная база| Да |
|
||||
|Включать расширения конфигурации|Да|
|
||||
|
||||
> Из ИТС: Для планов обмена РИБ с фильтрами рекомендуется исключить все объекты метаданных подсистем `Обмен данными` и `Обмен данными в модели сервиса`, кроме констант `ДанныеДляОтложенногоОбновления` и `АдресДляВосстановленияПароляУчетнойЗаписи`. Константу `АдресДляВосстановленияПароляУчетнойЗаписи` рекомендуется включать **только в состав начального образа подчиненного узла** распределенной ИБ.
|
||||
|
||||
**Про расширения**
|
||||
> Из ИТС: Важно!
|
||||
Для разработчиков прикладных решений важно понимать, что если свойство `Включать расширение конфигурации` изменяется на `Истина` в существующем плане обмена РИБ, то необходимо пользователям донести следующую информацию: В работающих обменах РИБ, на момент включения свойства `Включать расширение конфигурации` в главном и периферийных узлах не должно быть расширений, меняющих структуру данных. Также следует удалить из периферийных информационных баз расширения, имена которых совпадают с расширениями в главном узле (кроме патчей). Добавлять расширения можно после обновления всех периферийных баз.
|
||||
|
||||
### Настройка состава плана обмена
|
||||
В созданном плане обмена включаем **ВСЕ объекты БСП** в `Состав` и для объектов **запрещаем авторегистрацию**. Исключаем из состава объекты подсистем `ОбменДанными` и `ОбменДаннымиВМоделиСервиса` кроме константы `НастройкиПодчиненногоУзлаРИБ`.
|
||||
|
||||
> Проще всего скопировать план обмена `_ДемоОбменВРаспределеннойИнформационнойБазе` из демо-базы БСП в свою конфигурацию и перенести флажки из БСП-шного плана в свой. При копировании из состава будут удалены все объекты, которые не будут найдены в нашей базе, поэтому останется только то, что действительно нужно. Нюанс - модуль менеджера, реквизиты и формы нужно будет удалить и создать заново.
|
||||
|
||||

|
||||
|
||||
## Подключаем план обмена к подсистеме "ОбменДанными"
|
||||
|
||||
> Порядок для БСП версии 3.1.11. Актуальную информацию смотри на ИТС
|
||||
|
||||
1. В общем модуле `ОбменДаннымиПереопределяемый` в тело процедуры `ПолучитьПланыОбмена` добавляем наш план обмена
|
||||
|
||||
```bsl
|
||||
Процедура ПолучитьПланыОбмена(ПланыОбменаПодсистемы) Экспорт
|
||||
|
||||
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.Полный);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
```
|
||||
|
||||
2. В состав определяемого типа `ПланыОбменаБСД` добавляем ссылку на план обмена
|
||||
|
||||
3. В модуле менеджера плана обмена прописываем
|
||||
|
||||
```bsl
|
||||
#Область ДляВызоваИзДругихПодсистем
|
||||
|
||||
// СтандартныеПодсистемы.ОбменДанными
|
||||
|
||||
// Заполняет настройки, влияющие на использование плана обмена.
|
||||
//
|
||||
// Параметры:
|
||||
// Настройки - см. ОбменДаннымиСервер.НастройкиПланаОбменаПоУмолчанию
|
||||
//
|
||||
Процедура ПриПолученииНастроек(Настройки) Экспорт
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Настройки.НазначениеПланаОбмена = "РИБ";
|
||||
|
||||
// Для обеспечения возможности дополнительной настройки в методе ниже
|
||||
Настройки.Алгоритмы.ПриПолученииОписанияВариантаНастройки = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Заполняет набор параметров, определяющих вариант настройки обмена.
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеВарианта - см. ОбменДаннымиСервер.ОписаниеВариантаНастройкиОбменаПоУмолчанию
|
||||
// ИдентификаторНастройки - Строка - идентификатор варианта настройки обмена.
|
||||
// ПараметрыКонтекста - см. ОбменДаннымиСервер.ПараметрыКонтекстаПолученияОписанияВариантаНастройки
|
||||
//
|
||||
Процедура ПриПолученииОписанияВариантаНастройки(ОписаниеВарианта, ИдентификаторНастройки, ПараметрыКонтекста) Экспорт
|
||||
|
||||
// Это нужно для оформления способа обмена в форме настроек синхронизации
|
||||
// см. картинку ниже
|
||||
КраткаяИнформацияПоОбмену = НСтр("ru = 'Позволяет настроить новый узел распределенной информационной базы.'");
|
||||
ПодробнаяИнформацияПоОбмену = "ПланОбмена.Полный.Форма.ПодробнаяИнформация";
|
||||
|
||||
ОписаниеВарианта.КраткаяИнформацияПоОбмену = КраткаяИнформацияПоОбмену;
|
||||
ОписаниеВарианта.ПодробнаяИнформацияПоОбмену = ПодробнаяИнформацияПоОбмену;
|
||||
ОписаниеВарианта.ЗаголовокКомандыДляСозданияНовогоОбменаДанными = НСтр("ru = 'Распределенная информационная база'");
|
||||
ОписаниеВарианта.ЗаголовокУзлаПланаОбмена = НСтр("ru = 'Узел распределенной информационной базы'");
|
||||
ОписаниеВарианта.ИмяФормыСозданияНачальногоОбраза = "ОбщаяФорма.СозданиеНачальногоОбразаСФайлами";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.ОбменДанными
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
```
|
||||
|
||||

|
||||
|
||||
|
||||
## Создаем формы плана обмена (узла и списка)
|
||||
|
||||
### Форма узла
|
||||
|
||||
Создаем форму узла плана обмена и реализуем обработчики событий `ПриЗакрытии` и `ПриЗаписиНасервере`
|
||||
|
||||
```bsl
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
||||
|
||||
Если ЗавершениеРаботы Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
// СтандартныеПодсистемы.ОбменДанными
|
||||
Оповестить("ЗакрытаФормаУзлаПланаОбмена");
|
||||
// Конец СтандартныеПодсистемы.ОбменДанными
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
|
||||
|
||||
// СтандартныеПодсистемы.ОбменДанными
|
||||
ОбменДаннымиСервер.ФормаУзлаПриЗаписиНаСервере(ТекущийОбъект, Отказ)
|
||||
// Конец СтандартныеПодсистемы.ОбменДанными
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
```
|
||||
|
||||
### Форма списка
|
||||
Просто создаем, никакого кода не требуется пока
|
||||
|
||||
## Создаем подписки на события для регистрации изменений
|
||||
|
||||
> **ВАЖНО!** Для каждого плана обмена создается свой набор подписок на события. Подписки на события именуются по шаблону `<ИмяПланаОбмена><ВидПодписки>`
|
||||
|
||||
> **ВАЖНО 2!** В состав подписок на события включаем **только те объекты, которые фигурируют в составе плана обмена**
|
||||
|
||||
Варианты видов подписки:
|
||||
| Вид подписки | Источник | Событие | Процедура – обработчика события |
|
||||
|--------------------------|----------------------------------------------------------------------------------------------|------------------|----------------------------------|
|
||||
| РегистрацияДокумента | Элементы типа `ДокументОбъект` | Перед записью | `ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписьюДокумента("<ИмяПланаОбмена>", Источник, Отказ, РежимЗаписи, РежимПроведения);` |
|
||||
| Регистрация | Элементы типов: `СправочникОбъект`, `ПланВидовХарактеристикОбъект`, `ПланСчетовОбъект`, `ПланВидовРасчетаОбъект`, `БизнесПроцессОбъект`, `ЗадачаОбъект` | Перед записью | `ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписью("<ИмяПланаОбмена>", Источник, Отказ);` |
|
||||
| РегистрацияНабора | Элементы типов: `РегистрСведенийНаборЗаписей`, `РегистрНакопленияНаборЗаписей`, `РегистрБухгалтерииНаборЗаписей` | Перед записью | `ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписьюРегистра("<ИмяПланаОбмена>", Источник, Отказ, Замещение);` |
|
||||
| РегистрацияНабораРасчета | Элементы типа `РегистрРасчетаНаборЗаписей` | Перед записью | `ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписьюРегистра("<ИмяПланаОбмена>", Источник, Отказ, Замещение);` |
|
||||
| РегистрацияКонстанты | Элементы типа `КонстантаМенеджерЗначения` | Перед записью | `ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписьюКонстанты("<ИмяПланаОбмена>", Источник, Отказ);` |
|
||||
| РегистрацияУдаления | Элементы типов: `ДокументОбъект`, `СправочникОбъект`, `ПланВидовХарактеристикОбъект`, `ПланСчетовОбъект`, `ПланВидовРасчетаОбъект`, `БизнесПроцессОбъект`, `ЗадачаОбъект` | Перед удалением | `ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередУдалением("<ИмяПланаОбмена>", Источник, Отказ);` |
|
||||
|
||||
Определяем, какими объектами обмениваемся и реализуем соответствующие подписки на собыития
|
||||
|
||||
Методы, указанные выше в таблицу мы не сможем явно указать в поле "Обработчик" подписки на события, т.к. **требуемя сигнатура не подходит**
|
||||
|
||||
| Расположение | Сигнатура |
|
||||
|-------------|-------------|
|
||||
| В модуле объекта |`Процедура ПередЗаписью(Отказ)` |
|
||||
| Для подписки на событие |`Процедура ПередЗаписью(Источник, Отказ)` |
|
||||
| Для подсистемы "ОбменДанными" |`Процедура ПередЗаписью("ИмяПланаОбмена", Источник, Отказ)` |
|
||||
|
||||
Поэтому нужно создать собственные `процедуры-обертки` для указания их в подписках на событие
|
||||
|
||||
Создаем общий модуль, в котором определяем `обертки`, например:
|
||||
```bsl
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Процедура ПолныйРегистрацияПередЗаписью(Источник, Отказ) Экспорт
|
||||
|
||||
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписью("Полный", Источник, Отказ);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПолныйРегистрацияДокументаПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
|
||||
|
||||
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписьюДокумента("Полный", Источник, Отказ, РежимЗаписи, РежимПроведения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПолныйРегистрацияУдаленияПередУдалением(Источник, Отказ) Экспорт
|
||||
|
||||
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередУдалением("Полный", Источник, Отказ);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
```
|
||||
|
||||
**ВАЖНО**. для регистра сведений `СоответствияОбъектовИнформационныхБаз`и константы `НастройкиПодчиненногоУзлаРИБ` **подписки на события не создаем**
|
||||
|
||||
## Настраиваем общие команды
|
||||
|
||||
В тип параметра следующих команд добавляем ссылку на наш план обмена:
|
||||
- `Синхронизировать`
|
||||
- `НастройкиПодключения`
|
||||
- `ЗагрузитьПравилаРегистрацииОбъектов`
|
||||
- `СценарииСинхронизации`
|
||||
- `СобытияОтправки`
|
||||
- `СобытияПолучения`
|
||||
- `СоставОтправляемыхДанных`
|
||||
- `УдалитьНастройкуСинхронизации`
|
||||
|
||||
## Запускаем обновление версии
|
||||
Нужно запустить пользовательский режим с параметром запуска `/C ЗапуститьОбновлениеИнформационнойБазы` (`с` латинская), чтобы перезаполнился справочник `ИдентификаторыОбъектовМетаданных`
|
||||
Если не выполнить это, то при запуске подчиненного узла из начального образа будет ошибка
|
||||

|
||||
|
||||
## Настраиваем в пользовательском режиме
|
||||
|
||||

|
||||
|
||||
### Выбор типа подключения
|
||||
|
||||

|
||||
|
||||
### Настроить параметры подключения
|
||||
|
||||
Для вида "через каталог"
|
||||

|
||||
|
||||
### Настроить общие параметры синхронизации
|
||||

|
||||
|
||||
### Настроить правила отправки и получения
|
||||
Тут просто записать и закрыть
|
||||

|
||||
|
||||
### Создать начальный образ подчиненного узла РИБ
|
||||
Указываем расположение, где будет создана подчиненная база
|
||||

|
||||
|
||||
## Запускаем подчиненный узел в пользовательском режиме
|
||||
База обновится
|
||||

|
||||
|
||||
Затем откроется окно настройки синхронизации. Нужно донастроить последние пункты. А по сути их просто проверить
|
||||

|
||||

|
||||

|
||||
|
||||
Настройки синхронизации добавлены автоматически
|
||||

|
||||
|
||||
## Проверка обменов
|
||||
После создания и настройки распределенных баз в форме настроек нажимаем на кнопку `Синхноризировать`
|
||||
|
||||
Файлы синхронизации создаются по шаблону `Message_<КодИсточника>_<КодПриемника>`. Например `Message_М1_ЦБ`.
|
||||
|
||||
Синхронизация идет в 2 этапа:
|
||||
- Чтение данных. Система выполняет загрузку изменений в подчиненных базах из каталога обмена. Если в каталоге обмена не будет найдено файла из подчиненной базы или это файл уже был считан ранее, то в колонке `Данные получены` будет отображаться красный кружок
|
||||
- Выгрузка данных -система выгружает все изменения для выделенного узла
|
||||
|
||||

|
||||