Внешний интерфейс обработки - API

Материал из razgovorov.ru
Версия от 14:07, 15 сентября 2015; Бронфельд Светлана (обсуждение | вклад) (Сопоставление документов)
Перейти к: навигация, поиск

Функционал внешней обработки можно использовать извне, то есть, не запуская саму обработку, а просто вызывая из нее определенные методы. Таким образом можно осуществлять формирование и предварительный просмотр пакета электронных документов, отправку документов, сопоставление электронных документов с документами 1С, утверждение документов, обработку служебных документов и обновление статусов.

Отправка документов

Для отправки документов из 1С в электронном виде без запуска внешней обработки необходимо лишь определиться, какие документы будем отправлять, и выполнить описанные ниже действия. Первые два пункта отличаются для обычного и управляемого приложений, третий – одинаковый.

Обычное приложение

1. Получаем внешнюю обработку

ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C.epf");

2. Получаем форму главного окна

ГлавноеОкно = ВО.ПолучитьФорму("ФормаГлавноеОкно");

Управляемое приложение

1. Получаем внешнюю обработку (выполняется на сервере)

ВО = ВнешниеОбработки.Создать( "d:\user\bronfeld\ВнешняяОбработка2\Sbis1C_UF.epf", Ложь );

2. Получаем форму главного окна (выполняется на клиенте)

ГлавноеОкно = ПолучитьФорму("ВнешняяОбработка.СБИС.Форма.ФормаГлавноеОкно");

Обычное и управляемое приложения

3. Вызываем функцию отправки документов

ГлавноеОкно.сбисОтправкаИзвне(СписокСтрок);

СписокСтрок – список значений. Каждое значение – структура с полем «СоставПакета».

СоставПакета – список значений. Каждое значение может быть одним из двух типов:

  • Ссылка на документ 1С. В представление можно записать название файла настроек для данного документа. Если не указано, то будет использован файл настроек, соответствующий имени документа в конфигураторе. Можно указывать только документы, для которых есть файл настроек. Если хотя бы для одного документа из состава пакета не будет файла настроек, то весь пакет не будет сформирован и отправлен.
  • Строка с абсолютным путем к файлу (используется, если нужно отправить неформализованные вложения).

Первое вложение пакета должно быть ссылкой на документ 1С, т.к. по нему будут определяться отправитель и получатель пакета.

// Пример формирования списка документов для отправки

СписокСтрок = Новый СписокЗначений;

СоставПакета = Новый СписокЗначений;

СоставПакета.Добавить(Документы.РеализацияТоваровУслуг.НайтиПоНомеру("00000000031", ТекущаяДата()));

СоставПакета.Добавить(Документы.СчетФактураВыданный.НайтиПоНомеру("000000000019", ТекущаяДата()));

СоставПакета.Добавить("C:\Документы\Соглашение с ООО Солнышко.doc");

СписокСтрок.Добавить(Новый Структура("СоставПакета",СоставПакета));

СоставПакета = Новый СписокЗначений;

СоставПакета.Добавить(Документы.РеализацияТоваровУслуг.НайтиПоНомеру("00000000032", ТекущаяДата()));

СписокСтрок.Добавить(Новый Структура("СоставПакета",СоставПакета));

Открытие карточки электронного документа

Данный механизм используется при отправке документов непосредственно из карточки документа 1С по кнопке «Печать».

Обычное приложение

Для формирования пакета электронных документов и открытия окна предварительного просмотра необходимо выполнить следующие действия:

1. Получаем внешнюю обработку

ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C.epf");

2. Вызываем функцию печати из обработки

ВО.Печать(Документ1С);

Документ1С – ссылка на документ 1С. Можно передавать документы только определенных типов, для которых в каталоге настроек внешней обработки есть файлы настроек с параметром «ЗапросСпискаДокументов». В запросе определяется состав пакета документов, который будет сформирован и открыт для предварительного просмотра.

Управляемое приложение

Необходимо выполнить следующие действия:

1. Получаем внешнюю обработку

ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C_UF.epf", Ложь);

В параметре БезопасныйРежим указываем Ложь.

Данный код выполняется на сервере.

Следующие пункты выполняются на клиенте.

2. Получаем форму главного окна

ГлавноеОкно = ПолучитьФорму("ВнешняяОбработка.СБИС.Форма.ФормаГлавноеОкно");

3. Вызываем функцию печати из главного окна

ГлавноеОкно.Печать("", МассивДокументов);

МассивДокументов – массив с одним элементом – ссылкой на документ 1С.

Сопоставление документов

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

Обычное приложение

1. Получаем внешнюю обработку

ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C.epf");

2. Получаем форму главного окна

ГлавноеОкно = ВО.ПолучитьФорму("ФормаГлавноеОкно");

Управляемое приложение

1. Получаем внешнюю обработку (выполняется на сервере)

ВО = ВнешниеОбработки.Создать( "d:\user\bronfeld\ВнешняяОбработка2\Sbis1C_UF.epf", Ложь );

2. Получаем форму главного окна (выполняется на клиенте)

ГлавноеОкно = ПолучитьФорму("ВнешняяОбработка.СБИС.Форма.ФормаГлавноеОкно");

Обычное и управляемое приложения

3. Заполняем параметры фильтра. По указанным параметрам будут запрашиваться документы с online.sbis.ru для сопоставления с документами в 1С.

Фильтр = Новый Структура();
Фильтр.Вставить( "ДатаС", Формат(ДатаНач,"ДФ=""дд.ММ.гггг ЧЧ.мм.сс""") ); 
Фильтр. Вставить ( "РазмерСтраницы",ЗаписейНаСтранице );
Фильтр. Вставить ( "ТипРеестра", "Входящие" );

ДатаНач – дата, с которой запрашиваются документы с сервера.

ЗаписейНаСтранице – количество документов, возвращаемых с сервера за один запрос.

4. Вызываем функцию сопоставления из главного окна

ГлавноеОкно.СопоставитьДокументыИзвне(Фильтр);

Утверждение документов

Утверждение полученных документов также можно выполнить, не запуская обработку. Например, можно утвердить полученные документы, которые однозначно сопоставляются с документами 1С. Для утверждения документов выполняем следующие действия: 1. Подготовительные действия: пункты 1,2 из раздела «Сопоставление документов» 2. Вызываем функцию для формирования всех данных, необходимых для работы обработки Кэш = ГлавноеОкно.ПриОткрытииИзвне(); 3. Для каждого документа, который необходимо утвердить, вызываем функцию утверждения Кэш. Интеграция.сбисВыполнитьКоманду(Кэш,ДокументСБИС,"Утвердить") ДокументСБИС – структура документа в формате СБИС

Обработка служебных документов

Для обработки служебных документов выполняем следующие действия: 1. Подготовительные действия: пункты 1,2 из раздела «Сопоставление документов» 2. Вызываем функцию для формирования всех данных, необходимых для работы обработки Кэш = ГлавноеОкно.ПриОткрытииИзвне(); 3. Вызываем обработку служебных документов Кэш.Интеграция.ОбработкаСлужебныхДокументов(Кэш);

Обновление статусов документов

Для обновления статусов документов выполняем следующие действия: 1. Подготовительные действия: пункты 1,2 из раздела «Сопоставление документов» 2. Вызываем функцию для формирования всех данных, необходимых для работы обработки Кэш = ГлавноеОкно.ПриОткрытииИзвне(); 3. Вызываем функцию обработки статусов Кэш.Интеграция.ПолучитьСписокИзменений(Кэш);