Интеграция с сервисом Контур.Фокус
Данный раздел содержит описание примера интеграции с сервисом Контур.Фокус.
Ссылка на пример на GitHub: KonturIntegration.
-
KonturServerExtension
— папка с серверным расширением Web-клиента, в котором реализовано проксирование запросов к Контур.Фокус (для обхода ограничений CORS в браузере). -
KonturWebExtension
— папка с клиентским расширением, в котором реализовано открытие отчета о контрагенте и загрузка информации. -
KonturSolution.xml
— решение с разметкой для организации контрагента, содержащее разметку с необходимыми обработчиками и элементами управления.
Пример рассчитан на версию Web-клиента 6.1 или выше.
-
Microsoft Visual Studio 2022.
Сборка и установка
-
Сборка серверной части.
-
Откройте решение
Samples.sln
. -
Соберите проект
Other > Kontur > Kontur
.
-
-
Сборка клиентской части.
-
Откройте в командной строке папку
Others > KonturIntergration > KonturWebExtension
. -
Выполните команды:
npm install npm update npm run build:prod
-
-
Публикация компонентов на сервере Web-клиента.
-
Скопируйте папку
SamplesOutput\Content\Modules\KonturWebExtension\
вПуть к сайту Web-клиента\Content\Modules
. -
Скопируйте папку
SamplesOutput\Extensions\KonturServerExtension
вПуть к сайту Web-клиента\Extensions
. -
Перезапустите Web-сервис.
-
Проверка примера
При создании контрагента
-
В программе Конструктор Web-разметок импортируйте решение
KonturSolution.xml
. -
В
appsettings.json
Web-клиента добавьте в корневой элемент настройку с ключом доступа к API Контур.Фокус:"KonturSettings": { "ApiKey": "..." }
-
Откройте разметку с ЭУ
PartnerDepartment
, например, создание исходящего документа, откройте окно справочника и нажмите кнопку добавления организации. -
В открывшейся разметке введите ИНН организации, например,
6663003127
. -
Нажмите кнопку Просмотреть отчет о контрагенте — откроется окно с информацией о контрагенте.
-
Нажмите на кнопку Загрузить информацию — значения элементов управления на разметке заполнятся данными из Контур.Фокус.
В карточке документа
-
Добавьте разметку карточки типа документ кнопку, назначьте ей обработчик
openBriefReportAndAttachFile
. -
В ту же разметку добавьте ЭУ с именем
INN
типаTextBox
. Настройте его таким образом, что бы он содержал актуальный ИНН контрагента, например, через расширенные источники данных. -
Откройте документ и нажмите на кнопку, откроется отчет в модальном окне и к документу будет прикреплен файл отчета в качестве дополнительного файла.
Компонент "KonturServerExtension"
namespace Kontur
{
public class KonturServerExtension : WebClientExtension (1)
{
public KonturServerExtension(IServiceProvider serviceProvider) (2)
: base()
{
}
public override string ExtensionName (3)
{
get { return Assembly.GetAssembly(typeof(KonturServerExtension)).GetName().Name; }
}
public override Version ExtensionVersion (4)
{
get { return new Version(FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion); }
}
#region WebClientExtension Overrides
public override void InitializeServiceCollection(IServiceCollection services)
{
services.AddSingleton<IKonturRequestService, KonturRequestService>();
services.AddOptions<KonturSettings>().BindConfiguration(KonturSettings.Key);
}
protected override List<ResourceManager> GetLayoutExtensionResourceManagers() (5)
{
return new List<ResourceManager>
{
};
}
#endregion
}
}
1 | Задаёт описание расширения для Web-клиента, которое задано в текущей сборке. |
2 | Создаёт новый экземпляр, см. KonturServerExtension .
|
3 | Получить название расширения. |
4 | Получить версию расширения. |
5 | Получает менеджеры ресурсов для расширения конструктора разметок. |