====== Интеграция 1СПАРК Риски в произвольный справочник ======
===== Настройка объектов подсистемы =====
Настроить типы справочников контрагентов в определяемых типах подсистемы «Базовая функциональность Интернет-поддержки»:
* Включить в состав определяемого типа **КонтрагентБИП** один или несколько типов ссылки справочника контрагентов: **СправочникСсылка.<Имя справочника>**;
* Включить в состав определяемого типа **КонтрагентБИПОбъект** один или несколько типов объектов справочника контрагентов: **СправочникОбъект.<Имя справочника>**;
* (пропустил) Включить в состав определяемого типа **ШаблонСообщенияБИП** один или несколько типов объектов справочника контрагентов: **СправочникОбъект.<Имя справочника ШаблоныСообщений>**;
В общем модуле **СПАРКРискиПереопределяемый**:
* Заполнить реализацию метода **ПриОпределенииСвойствСправочниковКонтрагентов()**. Заполнение реализации метода обязательно для работы подсистемы;
* Заполнить реализацию методов **ПараметрыНачальногоЗаполненияДанных1СПАРКРискиЮридическихЛиц()** и **ПараметрыНачальногоЗаполненияДанных1СПАРКРискиИндивидуальныхПредпринимателей()**. Методы вызывается при переходе на новую версию конфигурации с внедренной подсистемой 1СПАРК Риски и выполняется начальное заполнение данных подсистемы. Заполнение реализации метода обязательно для работы подсистемы;
* Для определения списка контрагентов, по которым необходимо получать события мониторинга, заполнить реализацию метода **КонтрагентыДляМониторинга()**. Метод вызывается один раз в сутки регламентным заданием, выполняющим постановку выбранных контрагентов на мониторинг в сервисе 1СПАРК Риски;
В общем модуле **СПАРКРискиКлиентСерверПереопределяемый**:
* Элемент ненумерованного спискаЗаполнить реализацию метода **ПриОпределенииСвойствКонтрагентаВОбъекте()**. Заполнение реализации метода требуется для корректной работы подсистемы;
В общем модуле **РаботаСКонтрагентамиПереопределяемый**:\\
Заполнить реализацию метода **ПриОпределенииСвойствСправочниковКонтрагентов()**. Заполнение реализации метода обязательно для работы подсистемы
НоваяСтрока = СвойстваСправочников.Добавить();
НоваяСтрока.Имя = "ФЕС_CCRF";
НоваяСтрока.Иерархический = Ложь;
НоваяСтрока.РеквизитИНН = "ИНН";
НоваяСтрока.РеквизитКПП = "";
НоваяСтрока.ОтключитьСозданиеИзДосьеКонтрагента = Истина;
===== Настройка форм справочников контрагентов и документов =====
==== Внедрение функциональности в формы ====
Создать в форме реквизиты **ИндексыСПАРКРиски** и **НастройкиСПАРКРиски**, назначить тип Произвольный.
В обработчик **ПриСозданииНаСервере()** вставить фрагмент кода:
// ИнтернетПоддержкаПользователей.СПАРКРиски
Контрагент = ?(Параметры.Ключ.Пустая(), Объект.ИНН, Объект.Ссылка);
ВидКонтрагентаСПАРКРиски = ВидКонтрагентаСПАРКРиски(Объект.ИНН);
ПараметрыПроцедуры = Новый Структура("ВариантОтображения", "Многострочный");
СПАРКРиски.ПриСозданииНаСервере(
ЭтотОбъект,
Объект,
Контрагент,
ВидКонтрагентаСПАРКРиски,
ПараметрыПроцедуры);
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски
Для отображения стандартным способом (см. р. «Вариант стандартного отображения индексов в формах») допускаются значения параметра **ВариантОтображения**:
* «**Многострочный**» - отображение индексов в многострочном варианте;
* «**Однострочный**» - отображение индексов в однострочном (компактном варианте).
Для определения типа проверки, необходимо передавать **ВидКонтрагента**. Значение вида контрагента определяется перечислением **ВидыКонтрагентовСПАРКРиски**.\\
Если в форме нет реквизита **ВидКонтрагента**, то нужно добавить функции **ВидКонтрагентаПоИНН** и **ВидКонтрагентаСПАРКРиски**
&НаКлиентеНаСервереБезКонтекста
Функция ВидКонтрагентаПоИНН(ИНН)
Если СтрДлина(СокрЛП(ИНН)) = 10 тогда
Возврат "ЮрЛицо";
ИначеЕсли СтрДлина(СокрЛП(ИНН)) = 10 тогда
Возврат "ИндивидуальныйПредприниматель";
Иначе
Возврат "";
КонецЕсли;
КонецФункции // ВидКонтрагентаПоИНН()
&НаКлиентеНаСервереБезКонтекста
Функция ВидКонтрагентаСПАРКРиски(ИНН)
ЮрФизЛицо = ВидКонтрагентаПоИНН(ИНН);
Если ЮрФизЛицо = "ЮрЛицо" Тогда
ВидКонтрагента = ПредопределенноеЗначение("Перечисление.ВидыКонтрагентовСПАРКРиски.ЮридическоеЛицо");
ИначеЕсли ЮрФизЛицо = "ИндивидуальныйПредприниматель" Тогда
ВидКонтрагента = ПредопределенноеЗначение("Перечисление.ВидыКонтрагентовСПАРКРиски.ИндивидуальныйПредприниматель");
Иначе
ВидКонтрагента = ПредопределенноеЗначение("Перечисление.ВидыКонтрагентовСПАРКРиски.ПустаяСсылка");
КонецЕсли;
Возврат ВидКонтрагента;
КонецФункции
В обработчик **ПриОткрытии()** вставить фрагмент кода:
// ИнтернетПоддержкаПользователей.СПАРКРиски
СПАРКРискиКлиент.ПриОткрытии(ЭтотОбъект, Объект);
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски
В обработчик **ОбработкаОповещения()** вставить фрагмент кода:
// ИнтернетПоддержкаПользователей.СПАРКРиски
СПАРКРискиКлиент.ОбработкаОповещения(ЭтотОбъект, Объект, ИмяСобытия, Параметр, Источник);
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски
В обработчик **ПослеЗаписиНаСервере()** вставить фрагмент кода:
ПараметрыЗаписиСПАРКРиски = ПараметрыЗаписи;
// ИнтернетПоддержкаПользователей.СПАРКРиски
СПАРКРиски.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписиСПАРКРиски);
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски
Во все обработчики формы, в которых изменяются свойства контрагента (ИНН, юридическое лицо, иностранный контрагент), вставить фрагмент кода:
// ИнтернетПоддержкаПользователей.СПАРКРиски
ЭтотОбъект.ИндексыСПАРКРиски = Неопределено;
ОбновитьОтображениеИндексыСПАРК();
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски
В обработчик события **ОбработкаНавигационнойСсылки()** декораций, предназначенных для отображения значений индексов, вставить фрагмент кода:
&НаКлиенте
Процедура ДекорацияИндексыСПАРКРискиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
// ИнтернетПоддержкаПользователей.СПАРКРиски
СПАРКРискиКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски
Возврат;
КонецПроцедуры
Добавить в модуль формы процедуры:
// ИнтернетПоддержкаПользователей.СПАРКРиски
&НаКлиенте
Процедура Подключаемый_ОбновитьОтображениеИндексыСПАРК()
ОбновитьОтображениеИндексыСПАРК();
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьОтображениеИндексыСПАРК()
ВидКонтрагентаБИП = ВидКонтрагентаСПАРКРиски(Объект.ИНН);
ПараметрыОтображения = Новый Структура("ВариантОтображения", "Многострочный");
СПАРКРискиКлиент.ОтобразитьИндексыСПАРК(
ЭтотОбъект.ИндексыСПАРКРиски,
Объект,
Объект.ИНН, // Искать по ИНН
ВидКонтрагентаБИП,
ЭтотОбъект,
ПараметрыОтображения,
Истина
);
КонецПроцедуры
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски
==== Стандартное отображение индексов в формах ====
См. пример встраивания в форме элемента справочника _ДемоОрганизации, в форме документа _ДемоПлатежноеПоручение в демонстрационной конфигурации.
На форме необходимо разместить элементы управления:
Группа **ГруппаИндексыСПАРКРиски**, внутри которой будут расположены:
* Декорация «**ДекорацияИндексыСПАРКРиски**»
* Декорация-иконка «**КартинкаОжиданиеЗагрузкиИндексовСПАРКРиски**» с вставленной иконкой «**ДлительнаяОперация16**»
==== Подключаемые команды в форме справочника контрагентов ====
Создать в форме группу командной панели.
Для формы элемента:
В обработчик **ПриСозданииНаСервере()** вставить фрагмент кода:
ДополнительныеПараметрыСПАРК = Неопределено;
// ИнтернетПоддержкаПользователей.СПАРКРиски
СПАРКРиски.ДобавитьПодключаемыеКомандыКонтрагента(ЭтотОбъект, Объект, Элементы.ПодменюСПАРК, ДополнительныеПараметрыСПАРК);
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски
На форму в командную панель поместить группу (подменю) "ПодменюСПАРК"/"1СПАРК Риски". Туда будут размещены подключаемые команды подсистемы.
В модуль формы вставить процедуру:
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду1СПАРКРиски(Команда)
СПАРКРискиКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
Для формы списка:
В обработчик **ПриСозданииНаСервере()** вставить фрагмент кода:
// Команды1СПАРКРиски
СПАРКРиски.ДобавитьПодключаемыеКомандыКонтрагента(ЭтотОбъект, Список, Элементы.ПодменюСПАРК);
// Конец Команды1СПАРКРиски
На форму в командную панель поместить группу (подменю) "ПодменюСПАРК"/"1СПАРК Риски". Туда будут размещены подключаемые команды подсистемы.
В модуль формы вставить процедуру:
// ИнтернетПоддержкаПользователей.СПАРКРиски
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду1СПАРКРиски(Команда)
СПАРКРискиКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски