Внешний интерфейс обработки - API — различия между версиями
Строка 9: | Строка 9: | ||
ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C.epf"); | ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C.epf"); | ||
</source> | </source> | ||
− | 2. Получаем форму | + | 2. Получаем форму "Внешний интерфейс" |
<source lang="1C"> | <source lang="1C"> | ||
− | + | ВИ = ВО.ПолучитьФорму("ВнешнийИнтерфейс"); | |
</source> | </source> | ||
'''Управляемое приложение''' | '''Управляемое приложение''' | ||
Строка 19: | Строка 19: | ||
ВО = ВнешниеОбработки.Создать( "d:\user\bronfeld\ВнешняяОбработка2\Sbis1C_UF.epf", Ложь ); | ВО = ВнешниеОбработки.Создать( "d:\user\bronfeld\ВнешняяОбработка2\Sbis1C_UF.epf", Ложь ); | ||
</source> | </source> | ||
− | 2. Получаем форму | + | 2. Получаем форму "Внешний интерфейс"(выполняется на клиенте) |
<source lang="1C"> | <source lang="1C"> | ||
− | + | ВИ = ПолучитьФорму("ВнешняяОбработка.СБИС.Форма.ВнешнийИнтерфейс"); | |
</source> | </source> | ||
'''Обычное и управляемое приложения''' | '''Обычное и управляемое приложения''' | ||
Строка 27: | Строка 27: | ||
3. Вызываем функцию отправки документов | 3. Вызываем функцию отправки документов | ||
<source lang="1C"> | <source lang="1C"> | ||
− | + | Результат = ВИ.сбисОтправка(СписокСтрок, ДополнительныеПараметры); | |
</source> | </source> | ||
СписокСтрок – список значений. Каждое значение – структура с полем «СоставПакета». | СписокСтрок – список значений. Каждое значение – структура с полем «СоставПакета». | ||
Строка 58: | Строка 58: | ||
СписокСтрок.Добавить(Новый Структура("СоставПакета",СоставПакета)); | СписокСтрок.Добавить(Новый Структура("СоставПакета",СоставПакета)); | ||
</source> | </source> | ||
+ | |||
+ | |||
+ | ДополнительныеПараметры - необязательный параметр. Структура с полями, аналогичными полям структуры Кэш.Парам в обработке. Если передается, то поля в Кэш.парам перезаписываются полями из переданной структуры. Например, можно передать параметры авторизации: | ||
+ | <source lang="1C"> | ||
+ | ДополнительныеПараметры = Новый Структура("ВходПоСертификату,Сертификат", Истина, "65455636впав"); | ||
+ | |||
+ | Если ДополнительныеПараметры не заполнены, то параметры авторизации должны быть сохранены путем предварительного запуска обработки в интерфейсе 1С предприятия под тем же пользователем, под которым будет происходить вызов функций внешнего интерфейса. | ||
+ | |||
+ | </source> | ||
+ | |||
+ | Функция возвращает структуру с результатами отправки либо текст ошибки. | ||
=Открытие карточки электронного документа= | =Открытие карточки электронного документа= | ||
Строка 105: | Строка 116: | ||
ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C.epf"); | ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C.epf"); | ||
</source> | </source> | ||
− | 2. Получаем форму | + | 2. Получаем форму "Внешний интерфейс" |
<source lang="1C"> | <source lang="1C"> | ||
− | + | ВИ = ВО.ПолучитьФорму("ВнешнийИнтерфейс"); | |
</source> | </source> | ||
'''Управляемое приложение''' | '''Управляемое приложение''' | ||
Строка 115: | Строка 126: | ||
ВО = ВнешниеОбработки.Создать( "d:\user\bronfeld\ВнешняяОбработка2\Sbis1C_UF.epf", Ложь ); | ВО = ВнешниеОбработки.Создать( "d:\user\bronfeld\ВнешняяОбработка2\Sbis1C_UF.epf", Ложь ); | ||
</source> | </source> | ||
− | 2. Получаем форму | + | 2. Получаем форму "Внешний интерфейс" (выполняется на клиенте) |
<source lang="1C"> | <source lang="1C"> | ||
− | + | ВИ = ПолучитьФорму("ВнешняяОбработка.СБИС.Форма.ВнешнийИнтерфейс"); | |
</source> | </source> | ||
'''Обычное и управляемое приложения''' | '''Обычное и управляемое приложения''' | ||
− | 3. Заполняем параметры фильтра. По указанным параметрам будут запрашиваться документы с online.sbis.ru для сопоставления с документами в 1С. | + | 3. Заполняем параметры фильтра (не обязательно). |
+ | Фильтр - структура. Может содержать поля, одноименные полям фильтра на главном окне: ФильтрДатаНач, ФильтрДатаКнц, ФильтрОрганизация, ФильтрКонтрагент. По указанным параметрам будут запрашиваться документы с online.sbis.ru для сопоставления с документами в 1С. | ||
+ | |||
+ | 4. Вызываем функцию сопоставления | ||
<source lang="1C"> | <source lang="1C"> | ||
− | + | Результат = ВИ.сбисСопоставление(Фильтр, ДополнительныеПараметры); | |
− | |||
− | |||
− | Фильтр | ||
</source> | </source> | ||
− | + | Если Фильтр не заполнен, то передаем пустую структуру. В этом случае для сопоставления будут запрашиваться все документы, начиная с последней даты сопоставления по текущую дату. Последняя дата сопоставления записывается в файл сбисПараметры.xml в каталоге настроек. | |
+ | |||
+ | ДополнительныеПараметры - необязательный параметр (описан в разделе Отправка документов) | ||
+ | |||
+ | Функция возвращает структуру с полем "СопоставленныеДокументы". | ||
+ | |||
+ | СопоставленныеДокументы - массив структур. Каждая структура содержит Документ 1С, идентификаторы пакета, вложения и статус документа в СБИС. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
=Утверждение документов= | =Утверждение документов= | ||
− | Утверждение полученных документов также можно выполнить, не запуская обработку. Например, можно утвердить полученные документы, которые однозначно | + | Утверждение полученных документов также можно выполнить, не запуская обработку. Например, можно утвердить полученные документы, которые однозначно сопоставились с документами 1С. |
+ | Документы можно не только утвердить, но и выполнить любое другое действие, не требующее ввода комментария. | ||
Для утверждения документов выполняем следующие действия: | Для утверждения документов выполняем следующие действия: | ||
Строка 144: | Строка 157: | ||
1. Подготовительные действия: пункты 1,2 из раздела [[#Сопоставление документов|«Сопоставление документов»]] | 1. Подготовительные действия: пункты 1,2 из раздела [[#Сопоставление документов|«Сопоставление документов»]] | ||
− | 2. Вызываем функцию | + | 2. Вызываем функцию выполнения команды |
<source lang="1C"> | <source lang="1C"> | ||
− | + | Результат = ВИ.сбисВыполнитьКоманду(МассивИд, ИмяКоманды, ДополнительныеПараметры); | |
</source> | </source> | ||
− | + | МассивИд - массив, содержащий идентификаторы пакетов документов. | |
− | + | ||
− | + | ИмяКоманды - название действия, которое необходимо выполнить с указанными пакетами, например, "Утвердить". | |
− | + | ||
− | + | ДополнительныеПараметры - необязательный параметр (описан в разделе Отправка документов) | |
+ | |||
+ | |||
+ | Результат - структура с полем РезультатВыполнения. | ||
+ | |||
+ | РезультатВыполнения - массив структур, содержащих идентификатор пакета и результат выполнения команды (истина/Ложь). | ||
=Обработка служебных документов= | =Обработка служебных документов= | ||
Строка 159: | Строка 177: | ||
1. Подготовительные действия: пункты 1,2 из раздела [[#Сопоставление документов|«Сопоставление документов»]] | 1. Подготовительные действия: пункты 1,2 из раздела [[#Сопоставление документов|«Сопоставление документов»]] | ||
− | 2. Вызываем функцию | + | 2. Вызываем функцию обработки служебных |
<source lang="1C"> | <source lang="1C"> | ||
− | + | ВИ.сбисОбработкаСлужебныхДокументов(ДополнительныеПараметры); | |
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
+ | |||
+ | ДополнительныеПараметры - необязательный параметр (описан в разделе Отправка документов) | ||
+ | |||
=Обновление статусов документов= | =Обновление статусов документов= | ||
Строка 173: | Строка 190: | ||
1. Подготовительные действия: пункты 1,2 из раздела [[#Сопоставление документов|«Сопоставление документов»]] | 1. Подготовительные действия: пункты 1,2 из раздела [[#Сопоставление документов|«Сопоставление документов»]] | ||
− | 2. Вызываем функцию | + | 2. Вызываем функцию обновления статусов документов |
<source lang="1C"> | <source lang="1C"> | ||
− | + | ВИ.сбисОбновлениеСтатусов(ДополнительныеПараметры); | |
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
+ | |||
+ | ДополнительныеПараметры - необязательный параметр (описан в разделе Отправка документов) | ||
+ | |||
=Перемещение документов между этапами= | =Перемещение документов между этапами= |
Версия 11:15, 30 мая 2016
Функционал внешней обработки можно использовать извне, то есть, не запуская саму обработку, а просто вызывая из нее определенные методы. Таким образом можно осуществлять формирование и предварительный просмотр пакета электронных документов, отправку документов, сопоставление электронных документов с документами 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", ТекущаяДата()));
СписокСтрок.Добавить(Новый Структура("СоставПакета",СоставПакета));
ДополнительныеПараметры - необязательный параметр. Структура с полями, аналогичными полям структуры Кэш.Парам в обработке. Если передается, то поля в Кэш.парам перезаписываются полями из переданной структуры. Например, можно передать параметры авторизации:
ДополнительныеПараметры = Новый Структура("ВходПоСертификату,Сертификат", Истина, "65455636впав");
Если ДополнительныеПараметры не заполнены, то параметры авторизации должны быть сохранены путем предварительного запуска обработки в интерфейсе 1С предприятия под тем же пользователем, под которым будет происходить вызов функций внешнего интерфейса.
Функция возвращает структуру с результатами отправки либо текст ошибки.
Открытие карточки электронного документа
Данный механизм используется при отправке документов непосредственно из карточки документа 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. Вызываем функцию сопоставления
Результат = ВИ.сбисСопоставление(Фильтр, ДополнительныеПараметры);
Если Фильтр не заполнен, то передаем пустую структуру. В этом случае для сопоставления будут запрашиваться все документы, начиная с последней даты сопоставления по текущую дату. Последняя дата сопоставления записывается в файл сбисПараметры.xml в каталоге настроек.
ДополнительныеПараметры - необязательный параметр (описан в разделе Отправка документов)
Функция возвращает структуру с полем "СопоставленныеДокументы".
СопоставленныеДокументы - массив структур. Каждая структура содержит Документ 1С, идентификаторы пакета, вложения и статус документа в СБИС.
Утверждение документов
Утверждение полученных документов также можно выполнить, не запуская обработку. Например, можно утвердить полученные документы, которые однозначно сопоставились с документами 1С. Документы можно не только утвердить, но и выполнить любое другое действие, не требующее ввода комментария.
Для утверждения документов выполняем следующие действия:
1. Подготовительные действия: пункты 1,2 из раздела «Сопоставление документов»
2. Вызываем функцию выполнения команды
Результат = ВИ.сбисВыполнитьКоманду(МассивИд, ИмяКоманды, ДополнительныеПараметры);
МассивИд - массив, содержащий идентификаторы пакетов документов.
ИмяКоманды - название действия, которое необходимо выполнить с указанными пакетами, например, "Утвердить".
ДополнительныеПараметры - необязательный параметр (описан в разделе Отправка документов)
Результат - структура с полем РезультатВыполнения.
РезультатВыполнения - массив структур, содержащих идентификатор пакета и результат выполнения команды (истина/Ложь).
Обработка служебных документов
Для обработки служебных документов выполняем следующие действия:
1. Подготовительные действия: пункты 1,2 из раздела «Сопоставление документов»
2. Вызываем функцию обработки служебных
ВИ.сбисОбработкаСлужебныхДокументов(ДополнительныеПараметры);
ДополнительныеПараметры - необязательный параметр (описан в разделе Отправка документов)
Обновление статусов документов
Для обновления статусов документов выполняем следующие действия:
1. Подготовительные действия: пункты 1,2 из раздела «Сопоставление документов»
2. Вызываем функцию обновления статусов документов
ВИ.сбисОбновлениеСтатусов(ДополнительныеПараметры);
ДополнительныеПараметры - необязательный параметр (описан в разделе Отправка документов)
Перемещение документов между этапами
Для перемещения документа на следующий этап выполняем следующие действия:
1. Подготовительные действия: пункты 1,2 из раздела «Сопоставление документов»
2. Вызываем функцию для формирования всех данных, необходимых для работы обработки
Кэш = ГлавноеОкно.ПриОткрытииИзвне();
3. Вызываем функцию получения документа (заранее знаем его идентификатор Ид)
Документ = Кэш.Интеграция.ПрочитатьДокумент(Кэш,Ид)
4. Записываем действие которое собираемся выполнить для документа (какой переход будет сделан для документа)
Действие = Новый Структура; // Готовим Действие (переход с текущего этапа документооборота)
Для каждого Переход Из Документ.Этап[0].Действие Цикл // Перебираем возможные переходы для документа
Если Переход.Название = НазваниеНужногоДействия Тогда // Ищем среди них такой переход который нам нужен
Действие.Вставить("Состав",Переход); // Если находим добавляем в объект Действие
КонецЕсли;
КонецЦикла
Если известно, что исполнитель следующего этапа назначается при выполнении, то мы можем указать его из учетной системы. Для этого нужно добавить объект Исполнитель в объект Действие
Исполнитель = Новый Структура;
Исполнитель.Вставить("Имя","Глеб");
Исполнитель.Вставить("Фамилия","Никифоров");
Исполнитель.Вставить("Отчество","Станиславович");
Действие.Состав.Вставить("Исполнитель",Исполнитель);
5. Выполняем действие (передвигаем документ на следующий этап)
Этап = Документ.Этап[0];
Действие = Действие.Состав;
Комментарий = "Если обязателен для выполнения перехода, то нужно заполнить";
НазваниеПакета = "";
Кэш.Интеграция.сбисВыполнитьДействие(Кэш, Документ, Этап, Действие,Комментарий,НазваниеПакета);