1C из браузера
Содержание
Где взять актуальные файлы настроек
Посмотреть список настроек для конфигураций можно на сервисе интеграции в разделе "Внешние системы"-"Стандартные настройки" на вкладке "Стандартные". Для получения прав напишите поручение на имя руководителя группы "API и вспомогательные подсистемы интеграции"
Скачать актуальные версии настроек на ПК можно с git.sbis.ru Для 1С fresh отсюда
Особенности файлов настроек
Порядок узлов
Для разработки и загрузки пользовательских инишек, можно не выделять изменения в отдельную инишку. Можно вносить изменения в типовую и при загрузке на сервис будет произведена "расклейка" вашей инишки и типовой. Разница и будет записана в пользовательские настройки подключения. При получении инишки с сервиса будет произведена обратная операций - "склейка". Значения, которые есть в типовой инишке, будут заменяться пользовательскими, новые добавляются в конец узла.
Необходимо обратить особое внимание на то что, важен порядок следования узлов. Например, значение использующееся при расчете формулы не может быть определено позже.
Пример: в типовой инишке узел:
<мОснование Имя="Договор">
<Основание>[Документ].ДоговорКонтрагента</Основание>
<Основание_Номер>[Основание].Номер</Основание_Номер>
<Основание_Дата Тип="Дата" Формат="ДФ=dd.MM.yyyy" >[Основание].Дата</Основание_Дата>
<Основание_Название>^+('Договор',' №',Основание_Номер,' от ',Основание_Дата)</Основание_Название>
</мОснование>
в пользовательской:
<мОснование Имя="Договор">
<Основание_НомерДоговора>[Основание].НомерДоговора</Основание_НомерДоговора>
<Основание_Название>^+('Договор №',Основание_НомерДоговора)</Основание_Название>
</мОснование>
В результате получим склейку:
<мОснование Имя="Договор">
<Основание>[Документ].ДоговорКонтрагента</Основание>
<Основание_Номер>[Основание].Номер</Основание_Номер>
<Основание_Дата Тип="Дата" Формат="ДФ=dd.MM.yyyy" >[Основание].Дата</Основание_Дата>
<Основание_Название>^+('Договор №',Основание_НомерДоговора)</Основание_Название>
<Основание_НомерДоговора>[Основание].НомерДоговора</Основание_НомерДоговора>
</мОснование>
и при расчете такой инишки получим ошибку, т.к. значение Основание_НомерДоговора используется до его определения.
Правильная пользовательская инишка должна выглядеть так:
<мОснование Имя="Договор">
<Основание_Номер>[Основание].НомерДоговора</Основание_Номер>
<Основание_Название>^+('Договор №',Основание_Номер)</Основание_Название>
</мОснование>
Представление объектов, типы значений
Одно из требований при расчете инишки плагином - это конкретизация типа значения, которое должно быть в обсчитанной инишке. Если вы хотите получить в значении наименование объекта, то правильно инишка будет выглядеть так:
<Номенклатура>[ТаблДок].Номенклатура</Номенклатура>
<Название>[Номенклатура].Наименование</Название>
Если же необходимо получить представление документа, то такой способ не подойдет, т.к. у документа нет свойства "Наименование". В таком случае нужно указать тип к которому необходимо привести значение:
<ТаблДок_Название Тип="Строка">[ТаблДок].Документ</ТаблДок_Название>
Использование запросов
Для подключений использующих ComConnector или Application запросы работают так же, как и для ВО.
При интеграции с 1C fresh через плагин использовать запросы нет возможности. Поэтому в инишке для получения списка документов вместо "ЗапросСпискаДокументов" используется узел "СписокДокументов". Тип документа берем из поля "Реестр1С_Тип". Делаем вызов списка документов с фильтром: период, организация, контрагент. Полученный массив перебираем и обсчитываем каждый документ по узлу "СписокДокументов". Полученную структуру добавляем в результирующий RecordSet. Для включения в пакет дополнительных вложений добавляем в "СписокДокументов" узел "Вложения", где указываем список типов подчиненных документов.
<Вложения>
<Подчиненные>
<СчетНаОплатуПокупателю>'СчетНаОплатуПокупателю'</СчетНаОплатуПокупателю>
<СчетФактураВыданный>'СчетФактураВыданный'</СчетФактураВыданный>
</Подчиненные>
</Вложения>
Для получения значений из каких либо табличных частей, регистров сведений и пр. используем "Отбор".
Добавление нового реестра
Чтобы выбор нового реестра появился в меню кнопки загрузить, необходимо в новой инишке добавить поле "РеестрСБИС_ИдМеню" с значением кнопки того реестра в котором находится кнопка и поле "Реестр1С_Название" с заголовком данного реестра. Подробней описание в разделе "Описание доп. полей".
Описание доп. полей
РеестрСБИС_ИдМеню – содержит имена кнопок загрузки, разделенных запятой. В инишках для загрузки в СБИС находится в корне. В инишка для выгрузки в ИС в узле «мДокумент», по которому должен обсчитываться документ.
В реестрах документов Исходящие, Входящие имена кнопок формируются по маске: [Направление документа][Действие с ИС][Имя реестра]
Направление документа – принимает значение: OutBox – Исходящие документы, в том числе все документы, созданные в системе вручную. Например, созданный документ «Поступление», тоже будем иметь направление OutBox. InBox – Входящие документы.
Действие с ИС – принимает значения: Read – чтение данных из 1С, соответственно кнопка «Загрузить», Write – запись данных в ИС, соответственно кнопка «Выгрузить».
Имя реестра – задается разработчиками реестров.
Пример:
Кнопка «Загрузить»
OutBoxReadИсходящие – Документы - Исходящие
OutBoxReadКоррИсх – Документы – Исходящие - Исходящие письма
OutBoxReadАктСверкиДок - Документы – Исходящие – Акты сверок
InBoxReadВходящие – Документы – Входящие
InBoxReadКоррВх – Документы – Входящие – Входящие письма
По аналогии были названы кнопки и для справочников:
OutBoxReadСотрудники – Сотрудники
OutBoxReadНоменклатура – Бизнес – Каталог и цены
Кнопка «Выгрузить»
OutBoxWriteИсходящие – Документы - Исходящие
OutBoxWriteКоррИсх – Документы – Исходящие - Исходящие письма
InBoxWriteКоррВх – Документы – Входящие – Входящие письма
InBoxWriteВходящие – Документы – Входящие
Для кнопок в карточках документов в маску имени кнопки добавляется суффикс «Doc». Пример: «InBoxDocWriteАктСверкиДок».
Реестр1С_Название - название реестра, как он отображается в меню кнопок загрузить, выгрузить.
ДокументПоУмолчанию - признак инишки «по умолчанию». Находится в корне и нужен для открытия реестра при создании первого подключения в кабинете.
Алгоритм выгрузки документов из СБИС в 1С
1. Включен учет или нет, мы не проверяем. Во входящем пакете смотрим наличие узла «ВложениеУчета», если он отсутствует, то берем «Вложение».
2. Перебираем вложения и подбираем инишку для каждого по алгоритму:
- Имя инишки формируется по маске [Направление]_[Вложение.Тип]_[Вложение.ВерсияФормата]. Например,
Загрузка_ЭДОНакл_3_01 или ЗагрузкаИсходящих_ЭДОНакл_3_01. Если такой инишки для данного подключения нет, то значит выгрузка вложения не поддерживается. Направление указывается владельцем кнопки «Выгрузить»: OutBox - исходящие, InBox – входящие.
- Проверяется, если в инишке есть поле СБИСИдМеню, то что в нем присутствует имя кнопки, указанное на
реестре. Например, "InBoxWriteВходящие".
- Перебираем узлы мДокумент:
- Проверяется, если в инишке есть поле СБИСИдМеню, то что в нем присутствует имя кнопки, указанное на реестре. Например, "InBoxWriteВходящие".
- Проверяем, если в инишке есть поле РеестрСБИС_ИдМенюФильтр, то что оно равно переданному с клиента фильтру. В интерфейсе - это выглядит, как подменю при выборе подключения для выгрузки. Пока это используется только для некоторых конфигураций для Веб подключений.
- Проверяется, если в инишке есть поле РеестрСБИС_Операция, то что его значение равно названию регламента на пакете. Например, для ПКО: «Оплата от покупателя».
Если по указанным условиям ни один мДокумент не подошел, то берется тот на котором есть признак ДокументПоУмолчанию = 1, иначе выгрузка данного вложения не поддерживается.
Порядок расчета вложений определяется полем Вес в подобранном мДокумент, чтобы накладные всегда
загружались в 1С раньше счетов-фактур. Поэтому в инишке накладной вес не указан, для счет-фактуры = 50, для
счетов = 100.
3. Поиск документов происходит так же, как в ВО - ищем документ по идентификатору пакета и вложения в регистрах сведений (их мы записываем так же, как ВО при выгрузке документов в 1С), если не нашли, то ищем по типу, дате и номеру документа. Тип берем из поля подобранной инишки Документ.
4. Создавать или не создавать номенклатуру, если ее не нашли определяется наличием в инишке признаком СоздаватьНоменклатуру = "Истина". Для большинства конфигураций этот флаг включен. Возможно уже для всех.
Анахронизмы
Поля, которые уже не используются и которые можно смело удалять: Реестр1С_ВидимыеСтолбцы, СбисФорматСпискаДокументов, Реестр1С_Имя.