Заполнение дополнительных свойств абонентов с помощью сервиса 1С:Контрагент

Оглавление

1. Общие сведения

В настоящей инструкции описывается пример настройки заполнения дополнительных сведений об абонентах в облачном сервисе Фреш на основании:

  • данных сервиса 1С:Контрагент по указанному ИНН (индивидуальному номеру налогоплательщика);
  • данных, указанных в приглашении в сервис.

С помощью сервиса 1С:Контрагент заполняются следующие дополнительные свойства абонентов-организаций:

  • ИНН абонента
  • КПП 
  • Наименование организации
  • Индекс
  • Город
  • Улица
  • Дом
  • Корпус
  • Контактное лицо абонента

И следующие свойства абонентов-физических лиц:

  • ИНН абонента
  • КПП 
  • Наименование организации

На основании данных приглашения заполняются следующие дополнительные свойства абонентов:

  • Код города

  • Телефон  
  • Электронная почта

2. Системные требования

Для использования настроек заполнения требуются:

  • менеджер сервиса версии 1.0.90.8 или более новой;
  • действительные логин и пароль Портала 1С:ИТС для доступа  к сервису  1С:Контрагент. Их необходимо использовать в правилах трансляции (см. разделы 3.3 и 3.4 ниже)  вместо строк login и password

3. Порядок действий

3.1. Настройка состава дополнительных сведений об абонентах

Администратор сервиса должен настроить состав дополнительных сведений об абонентах, как описано в документе «1С:Облачная подсистема Фреш», раздел «Дополнительные сведения об абонентах». И включить в состав дополнительных сведений сведения, указанные выше в разделе 1 «Общие сведения».

3.2. Наименование публичного идентификатора абонента

Зададим для публичного идентификатора абонента наименование ИНН:

  1. Администратор сервиса должен в менеджере сервиса вызвать настройки конфигурации: Главное → Настройки конфигурации.
  2. Перейти на вкладку Регистрация абонентов и в поле Заголовок публичного идентификатора абонента указать значение ИНН.
  3. И нажать кнопку Записать и закрыть.

3.3. Правило для заполнения сведений о юридических лицах на основе данных сервиса 1С:Контрагент

  1. Администратор сервиса должен в менеджере сервиса выполнить команду: Интеграция → Правила трансляции объектов.
  2. Нажать кнопку Создать и создать правило трансляции объектов с параметрами:
    • Наименование = Заполнение с помощью 1С:Контрагент (ЮЛ)
    • Тип объекта = Абоненты (Справочник)
    • Операция = Загрузка
    • Перед обработкой =

      // Заполнение данных по 1С:Контрагенту
      Таймаут = 60;
      Определение = Новый WSОпределения("https://api.orgregister.1c.ru/orgregister/v7?wsdl", "login", "password");
      Сервис = Новый WSПрокси(Определение,"http://ws.orgregister.company1c.com/",
          "RequisitesWebServiceEndpointImpl7Service", "RequisitesWebServiceEndpointImpl7Port",, Таймаут);
      Сервис.Пользователь = "login";	
      Сервис.Пароль = "password";
      Пакет = Сервис.ФабрикаXDTO.Пакеты.Получить("http://ws.orgregister.company1c.com/");
      ТипWSПараметра = Пакет.Получить("getCorporationRequisitesByINN");
      ПараметрЗапроса = Сервис.ФабрикаXDTO.Создать(ТипWSПараметра);
      ПараметрЗапроса.INN =  Источник.public_id;
      Результат = Сервис.getCorporationRequisitesByINN(ПараметрЗапроса);
      Источник.Вставить("Данные", 
          УниверсальнаяИнтеграция.СтруктураИзОбъектаXDTO(Результат).РеквизитыЮрЛица);

      (здесь вместо login и password надо указать действительные логин и пароль Портала 1С:ИТС для доступа  к сервису  1С:Контрагент).

  3. На вкладке Правила обработки задать следующие правила:
    • ИНН абонента
      • Из свойства JSON-объекта
      • Данные.ИНН 
    • КПП 
      • Из свойства JSON-объекта
      • Данные.КПП
    • Наименование организации
      • Из свойства JSON-объекта
      • Данные.СвНаимЮЛ.НаимЮЛПолн
    • Город

      • Из свойства JSON-объекта

      • Данные.СвАдрес.Адрес.Состав.СубъектРФ

    • Индекс

      • Из свойства JSON-объекта

      • Данные.СвАдрес.Адрес.Состав.ДопАдрЭл.[Значение,ТипАдрЭл="10100000"]

    • Улица

      • Из свойства JSON-объекта

      • Данные.СвАдрес.Адрес.Состав.Улица

    • Дом

      • Из свойства JSON-объекта

      • Данные.СвАдрес.Адрес.Состав.ДопАдрЭл.[Номер.Значение,Номер.Тип="1010"]

    • Корпус

      • Из свойства JSON-объекта

      • Данные.СвАдрес.Адрес.Состав.ДопАдрЭл.[Номер.Значение,Номер.Тип="1050"]

    • Квартира
      • Из свойства JSON-объекта
      • Данные.СвАдрес.Адрес.Состав.ДопАдрЭл.[Номер.Значение,Номер.Тип="2010"]
    • Контактное лицо абонента

      • Из выражения на встроенном языке

        Если ЗначениеЗаполнено(Источник.Данные) И Источник.Данные.Свойство("СвУправлДеят")
           И Источник.Данные.СвУправлДеят.СведДолжнФЛ.Количество() > 0 Тогда
            ФИО =  Источник.Данные.СвУправлДеят.СведДолжнФЛ[0].ФИО;
            Значение = ФИО.Фамилия + " " + ФИО.Имя + " " + ФИО.Отчество;
        КонецЕсли;

Должен получиться следующий результат:

3.4. Правило для заполнения сведений о физических лицах на основе данных сервиса 1С:Контрагент

  1. Администратор сервиса должен в менеджере сервиса выполнить команду: Интеграция → Правила трансляции объектов.
  2. Нажать кнопку Создать и создать правило трансляции объектов с параметрами:
    • Наименование =  Заполнение с помощью 1С:Контрагент (ФЛ)
    • Тип объекта = Абоненты (Справочник)
    • Операция = Загрузка
    • Перед обработкой =

      // Заполнение данных ФЛ по 1С:Контрагенту
      Если СтрДлина(Источник.public_id) = 12 Тогда
      	Таймаут = 60;
      	Определение = Новый WSОпределения("https://api.orgregister.1c.ru/orgregister/v7?wsdl", "login", "password");
      	Сервис = Новый WSПрокси(Определение,"http://ws.orgregister.company1c.com/",
      		"RequisitesWebServiceEndpointImpl7Service", "RequisitesWebServiceEndpointImpl7Port",, Таймаут);
      	Сервис.Пользователь = "login";	
      	Сервис.Пароль = "password";
      	Пакет = Сервис.ФабрикаXDTO.Пакеты.Получить("http://ws.orgregister.company1c.com/");
      	ТипWSПараметра = Пакет.Получить("getEntrepreneurRequisitesByINN");
      	ПараметрЗапроса = Сервис.ФабрикаXDTO.Создать(ТипWSПараметра);
      	ПараметрЗапроса.INN =  Источник.public_id;
      	Результат = УниверсальнаяИнтеграция.СтруктураИзОбъектаXDTO(Сервис.getEntrepreneurRequisitesByINN(ПараметрЗапроса));
      	Источник.Вставить("Данные", ?(ЗначениеЗаполнено(Результат.РеквизитыИП), Результат.РеквизитыИП, Новый Структура));
      	Источник.Вставить("КПП", "000000000");
      Иначе
      	Источник.Вставить("Данные", Новый Структура);
      КонецЕсли;

      (здесь вместо login и password надо указать действительные логин и пароль Портала 1С:ИТС для доступа  к сервису  1С:Контрагент).

  3. На вкладке Правила обработки задать следующие правила:
    • ИНН абонента
      • Из свойства JSON-объекта
      • public_id  
    • КПП 
      • Из свойства JSON-объекта
      • КПП
    • Наименование организации
      • Из выражения на встроенном языке

        КодВида = "";
        Наименование = Новый Массив;
        ФИО = Неопределено;
        Если Источник.Данные.Свойство("КодВидИП", КодВида) И КодВида = "1" Тогда
        	Наименование.Добавить("ИП");
        КонецЕсли;
        
        Если Источник.Данные.Свойство("СвФЛ") И Источник.Данные.СвФЛ.Свойство("ФИОРус", ФИО) Тогда
        	Наименование.Добавить(ТРег(ФИО.Фамилия));
        	Наименование.Добавить(ТРег(ФИО.Имя));
        	Наименование.Добавить(ТРег(ФИО.Отчество));
        КонецЕсли;
        
        Значение = СтрСоединить(Наименование, " ");

Должен получиться следующий результат:

3.5. Правило для заполнения сведений об абонентах на основе данных приглашений

  1. Администратор сервиса должен в менеджере сервиса выполнить команду: Интеграция → Правила трансляции объектов.
  2. Нажать кнопку Создать и создать правило трансляции объектов с параметрами:
    • Наименование = Заполнение по данным приглашения
    • Тип объекта = Абоненты (Справочник)
    • Операция = Загрузка
    • Перед обработкой =

      Запрос = Новый Запрос;
      Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 Т.ПриглашениеДляРегистрации ИЗ Справочник.Абоненты КАК Т ГДЕ Т.Код = &КодАбонента";
      Запрос.УстановитьПараметр("КодАбонента", Приемник.Код);
      Данные = Запрос.Выполнить().Выгрузить();
      Если Данные.Количество() > 0 Тогда
      	Приемник.ПриглашениеДляРегистрации = Данные[0].ПриглашениеДляРегистрации;
      КонецЕсли;
  3. На вкладке Правила обработки задать следующие правила:
    • Код города

      • Из выражения на встроенном языке

        Если Приемник.ПриглашениеДляРегистрации.КонтактнаяИнформация.Количество() > 0 Тогда
          Значение = Приемник.ПриглашениеДляРегистрации.КонтактнаяИнформация[0].Представление;
          Числа = СтроковыеФункцииКлиентСервер.ЧислаИзСтроки(Значение);
          Если Числа.Количество() > 0 Тогда  
            Числа.Удалить(0);
          КонецЕсли;
          Значение = Лев(СтрСоединить(Числа, ""), 3);
        КонецЕсли;
    • Телефон
      • Из выражения на встроенном языке

        Если Приемник.ПриглашениеДляРегистрации.КонтактнаяИнформация.Количество() > 0 Тогда
          Значение = Приемник.ПриглашениеДляРегистрации.КонтактнаяИнформация[0].Представление;
        КонецЕсли;
    • Электронная почта
      • Из выражения на встроенном языке

        Значение = Приемник.ПриглашениеДляРегистрации.АдресЭлектроннойПочты;

Должен получиться следующий результат:

3.6. Добавление источников заполнения абонентов

  1. Администратор сервиса должен в менеджере сервиса выполнить команду: Интеграция → Источники заполнения абонентов.
  2. Нажимая кнопку Создать, добавить источники заполнения абонентов:

4. Проверка

Для проверки правил заполнения администратор сервиса может:

  1. Открыть справочник Абоненты (команда меню Обслуживание → Абоненты).
  2. Открыть любой элемент этого справочника.
  3. Перейти на вкладку Свойства
  4. Заполнить значение поля ИНН , например  7714017115
  5. Нажать кнопку Заполнить сведения.
  6. Свойства абонента будут заполнены данными организации.
  7. Закрыть элемент справочника Абоненты, не записывая сделанные изменения.
  8. Повторить действия п.п. 2–7, указав любой ИНН физического лица — индивидуального предпринимателя.

5. Порядок возврата к исходному состоянию

Для возврата к исходному состоянию достаточно удалить добавленные источники заполнения абонентов (см. раздел 3.6).