Внешний интерфейс обработки - API — различия между версиями
(Новая страница: «Функционал внешней обработки можно использовать извне, то есть, не запуская саму обрабо…») |
(→Отправка документов) |
||
Строка 1: | Строка 1: | ||
Функционал внешней обработки можно использовать извне, то есть, не запуская саму обработку, а просто вызывая из нее определенные методы. Таким образом можно осуществлять формирование и предварительный просмотр пакета электронных документов, отправку документов, сопоставление электронных документов с документами 1С, утверждение документов, обработку служебных документов и обновление статусов. | Функционал внешней обработки можно использовать извне, то есть, не запуская саму обработку, а просто вызывая из нее определенные методы. Таким образом можно осуществлять формирование и предварительный просмотр пакета электронных документов, отправку документов, сопоставление электронных документов с документами 1С, утверждение документов, обработку служебных документов и обновление статусов. | ||
=Отправка документов= | =Отправка документов= | ||
− | Для отправки документов из 1С в электронном виде без запуска внешней обработки необходимо лишь определиться, какие документы будем отправлять, и выполнить описанные ниже действия. Первые два пункта отличаются для обычного и управляемого приложений, третий – одинаковый. | + | Для отправки документов из 1С в электронном виде без запуска внешней обработки необходимо лишь определиться, какие документы будем отправлять, и выполнить описанные ниже действия. Первые два пункта отличаются для обычного и управляемого приложений, третий – одинаковый. |
− | Обычное приложение | + | |
+ | '''Обычное приложение''' | ||
+ | |||
1. Получаем внешнюю обработку | 1. Получаем внешнюю обработку | ||
+ | |||
ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C.epf"); | ВО = ВнешниеОбработки.Создать("d:\user\bronfeld\ВнешняяОбработка2\Sbis1C.epf"); | ||
+ | |||
2. Получаем форму главного окна | 2. Получаем форму главного окна | ||
+ | |||
ГлавноеОкно = ВО.ПолучитьФорму("ФормаГлавноеОкно"); | ГлавноеОкно = ВО.ПолучитьФорму("ФормаГлавноеОкно"); | ||
− | Управляемое приложение | + | |
+ | '''Управляемое приложение''' | ||
+ | |||
1. Получаем внешнюю обработку (выполняется на сервере) | 1. Получаем внешнюю обработку (выполняется на сервере) | ||
+ | |||
ВО = ВнешниеОбработки.Создать( "d:\user\bronfeld\ВнешняяОбработка2\Sbis1C_UF.epf", Ложь ); | ВО = ВнешниеОбработки.Создать( "d:\user\bronfeld\ВнешняяОбработка2\Sbis1C_UF.epf", Ложь ); | ||
+ | |||
2. Получаем форму главного окна (выполняется на клиенте) | 2. Получаем форму главного окна (выполняется на клиенте) | ||
+ | |||
ГлавноеОкно = ПолучитьФорму("ВнешняяОбработка.СБИС.Форма.ФормаГлавноеОкно"); | ГлавноеОкно = ПолучитьФорму("ВнешняяОбработка.СБИС.Форма.ФормаГлавноеОкно"); | ||
− | Обычное и управляемое приложения | + | |
+ | '''Обычное и управляемое приложения''' | ||
+ | |||
3. Вызываем функцию отправки документов | 3. Вызываем функцию отправки документов | ||
+ | |||
ГлавноеОкно.сбисОтправкаИзвне(СписокСтрок); | ГлавноеОкно.сбисОтправкаИзвне(СписокСтрок); | ||
+ | |||
СписокСтрок – список значений. Каждое значение – структура с полем «СоставПакета». | СписокСтрок – список значений. Каждое значение – структура с полем «СоставПакета». | ||
+ | |||
СоставПакета – список значений. Каждое значение может быть одним из двух типов: | СоставПакета – список значений. Каждое значение может быть одним из двух типов: | ||
− | + | ||
− | + | *Ссылка на документ 1С. В представление можно записать название файла настроек для данного документа. Если не указано, то будет использован файл настроек, соответствующий имени документа в конфигураторе. Можно указывать только документы, для которых есть файл настроек. Если хотя бы для одного документа из состава пакета не будет файла настроек, то весь пакет не будет сформирован и отправлен. | |
+ | *Строка с абсолютным путем к файлу (используется, если нужно отправить неформализованные вложения). | ||
+ | |||
Первое вложение пакета должно быть ссылкой на документ 1С, т.к. по нему будут определяться отправитель и получатель пакета. | Первое вложение пакета должно быть ссылкой на документ 1С, т.к. по нему будут определяться отправитель и получатель пакета. | ||
+ | |||
// Пример формирования списка документов для отправки | // Пример формирования списка документов для отправки | ||
+ | |||
СписокСтрок = Новый СписокЗначений; | СписокСтрок = Новый СписокЗначений; | ||
+ | |||
СоставПакета = Новый СписокЗначений; | СоставПакета = Новый СписокЗначений; | ||
+ | |||
СоставПакета.Добавить(Документы.РеализацияТоваровУслуг.НайтиПоНомеру("00000000031", ТекущаяДата())); | СоставПакета.Добавить(Документы.РеализацияТоваровУслуг.НайтиПоНомеру("00000000031", ТекущаяДата())); | ||
+ | |||
СоставПакета.Добавить(Документы.СчетФактураВыданный.НайтиПоНомеру("000000000019", ТекущаяДата())); | СоставПакета.Добавить(Документы.СчетФактураВыданный.НайтиПоНомеру("000000000019", ТекущаяДата())); | ||
+ | |||
СоставПакета.Добавить("C:\Документы\Соглашение с ООО Солнышко.doc"); | СоставПакета.Добавить("C:\Документы\Соглашение с ООО Солнышко.doc"); | ||
+ | |||
СписокСтрок.Добавить(Новый Структура("СоставПакета",СоставПакета)); | СписокСтрок.Добавить(Новый Структура("СоставПакета",СоставПакета)); | ||
+ | |||
СоставПакета = Новый СписокЗначений; | СоставПакета = Новый СписокЗначений; | ||
+ | |||
СоставПакета.Добавить(Документы.РеализацияТоваровУслуг.НайтиПоНомеру("00000000032", ТекущаяДата())); | СоставПакета.Добавить(Документы.РеализацияТоваровУслуг.НайтиПоНомеру("00000000032", ТекущаяДата())); | ||
+ | |||
СписокСтрок.Добавить(Новый Структура("СоставПакета",СоставПакета)); | СписокСтрок.Добавить(Новый Структура("СоставПакета",СоставПакета)); | ||
+ | |||
=Открытие карточки электронного документа= | =Открытие карточки электронного документа= | ||
Данный механизм используется при отправке документов непосредственно из карточки документа 1С по кнопке «Печать». | Данный механизм используется при отправке документов непосредственно из карточки документа 1С по кнопке «Печать». |
Версия 13:55, 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. Вызываем функцию обработки статусов Кэш.Интеграция.ПолучитьСписокИзменений(Кэш);