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