1C из браузера — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 2: Строка 2:
  
 
Необходимо обратить особое внимание на то что, '''важен порядок следования узлов'''. Например, значение использующееся при расчете формулы не может быть определено позже.
 
Необходимо обратить особое внимание на то что, '''важен порядок следования узлов'''. Например, значение использующееся при расчете формулы не может быть определено позже.
Пример: В типовой инишке узел:
+
 
 +
Пример: в типовой инишке узел:
 
<source lang="xml">
 
<source lang="xml">
 
<мОснование Имя="Договор">
 
<мОснование Имя="Договор">
Строка 11: Строка 12:
 
</мОснование>
 
</мОснование>
 
</source>
 
</source>
В пользовательской:
+
в пользовательской:
 
<source lang="xml">
 
<source lang="xml">
 
<мОснование Имя="Договор">
 
<мОснование Имя="Договор">

Версия 12:43, 22 октября 2021

Для разработки и загрузки пользовательских инишек, можно не выделять изменения в отдельную инишку. Можно вносить изменения в типовую и при загрузке на сервис будет произведена "расклейка" вашей инишки и типовой. Разница и будет записана в пользовательские настройки подключения. При получении инишки с сервиса будет произведена обратная операций - "склейка". Значения, которые есть в типовой инишке, будут заменяться пользовательскими, новые добавляются в конец узла.

Необходимо обратить особое внимание на то что, важен порядок следования узлов. Например, значение использующееся при расчете формулы не может быть определено позже.

Пример: в типовой инишке узел:

<мОснование Имя="Договор">
    <Основание>[Документ].ДоговорКонтрагента</Основание>
    <Основание_Номер>[Основание].Номер</Основание_Номер>
    <Основание_Дата Тип="Дата" Формат="ДФ=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С_Имя.