1C из браузера
Необходимо обратить особое внимание на то что, важен порядок следования узлов. Например, значение использующееся при расчете формулы не может быть определено позже.
Так делать нельзя:
<мОснование Имя="Договор">
<Основание_Номер>[Основание].Номер</Основание_Номер>
<Основание>[Документ].ДоговорКонтрагента</Основание>
<Основание_Название>^+('Договор',' №',Основание_Номер,' от ',Основание_Дата)</Основание_Название>
<Основание_Дата Тип="Дата" Формат="ДФ=dd.MM.yyyy" >[Основание].Дата</Основание_Дата>
</мОснование>
Для разработки и загрузки пользовательских инишек, можно не выделять изменения в отдельную инишку. Можно вносить изменения в типовую и при загрузке на сервис будет произведена "расклейка" вашей инишки и типовой. Разница и будет записана в пользовательские настройки подключения. При получении инишки с сервиса будет произведена обратная операций - "склейка". Значения, которые есть в типовой инишке, будут заменяться пользовательскими, новые добавляются в конец узла. Пример: В типовой инишке узел:
<мОснование Имя="Договор">
<Основание>[Документ].ДоговорКонтрагента</Основание>
<Основание_Номер>[Основание].Номер</Основание_Номер>
<Основание_Дата Тип="Дата" Формат="ДФ=dd.MM.yyyy" >[Основание].Дата</Основание_Дата>
<Основание_Название>^+('Договор',' №',Основание_Номер,' от ',Основание_Дата)</Основание_Название>
</мОснование>
В пользовательской:
<мОснование Имя="Договор">
<Основание_НомерДоговора>[Основание].НомерДоговора</Основание_НомерДоговора>
<Основание_Название>^+('Договор №',Основание_НомерДоговора)</Основание_Название>
</мОснование>
В результате получим склейку:
<мОснование Имя="Договор">
<Основание>[Документ].ДоговорКонтрагента</Основание>
<Основание_Номер>[Основание].Номер</Основание_Номер>
<Основание_Дата Тип="Дата" Формат="ДФ=dd.MM.yyyy" >[Основание].Дата</Основание_Дата>
<Основание_Название>^+('Договор №',Основание_НомерДоговора)</Основание_Название>
<Основание_НомерДоговора>[Основание].НомерДоговора</Основание_НомерДоговора>
</мОснование>
и при расчете такой инишки получим ошибку.
Правильная пользовательская инишка должна выглядеть так:
<мОснование Имя="Договор">
<Основание_Номер>[Основание].НомерДоговора</Основание_Номер>
<Основание_Название>^+('Договор №',Основание_Номер)</Основание_Название>
</мОснование>
Файлы настроек загрузки, выгрузки документов
РеестрСБИС_ИдМеню – содержит имена кнопок загрузки, разделенных запятой. В инишках для загрузки в СБИС находится в корне. В инишка для выгрузки в ИС в узле «мДокумент», по которому должен обсчитываться документ.
В реестрах документов Исходящие, Входящие имена кнопок формируются по маске: [Направление документа][Действие с ИС][Имя реестра]
Направление документа – принимает значение: 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С_Имя.