Имя: Пароль:
1C
1С v8
Старт бизнес- процесса Документооборота из другой конфигурации
0 ВикторП
 
25.06.18
17:27
Настроена интеграция конфигурации (УТ) с документооборотом. Ручной запуск бизнес- процесса работает.
Как "сделать" старт бизнес- процесса Документооборота из другой конфигурации по событию в этой конфигурации?
1 anatoly
 
25.06.18
17:58
интеграция - через web-service?

в таком варианте из УПП 1.3 у меня все стартовало..
2 ВикторП
 
25.06.18
20:36
Да, через веб-сервис. Нужнен не ручной старт, программный
3 PR
 
25.06.18
20:41
(2) Нужно дописывать
4 alkorolev
 
25.06.18
23:38
ну если это легендарная бесшовная интеграция, то что-то типа этого:

    ИнтегрированныйОбъект = Новый Структура;
    ИнтегрированныйОбъект.Вставить("Объект", ОбъектСсылка);
    ИнтегрированныйОбъект.Вставить("ПравилоЗаполнения",
        Справочники.ПравилаИнтеграцииС1СДокументооборотом.НайтиПоНаименованию("Твое правило"));
    ИнтегрированныйОбъект.Вставить("ТипОбъектаДокументооборота", "DMInternalDocument");
    ИнтегрированныйОбъект.Вставить("ИдентификаторОбъектаДокументооборота", Строка(ОбъектСсылка.УникальныйИдентификатор()));
    
    ОбъектXDTO = ИнтеграцияС1СДокументооборот.ПолучитьXDTOИзмененийИзОбъекта(ИнтегрированныйОбъект);
    Прокси = ИнтеграцияС1СДокументооборотПовтИсп.ПолучитьПрокси();
    
    Запрос = ИнтеграцияС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetNewObjectRequest");
    Запрос.type = ИнтегрированныйОбъект.ТипОбъектаДокументооборота;
    Результат = Прокси.execute(Запрос);
    ИнтеграцияС1СДокументооборот.ПроверитьВозвратВебСервиса(Прокси, Результат);
    
    ЕстьФайлы = Ложь;
    Если ОбъектXDTO.files.Count() > 0 Тогда
        files = Новый Массив;
        ЕстьФайлы = Истина;
        Для Каждого file Из ОбъектXDTO.files Цикл
            files.Добавить(file);
        КонецЦикла;
        ОбъектXDTO.files.Clear();
    КонецЕсли;
        
    ОбъектXDTO.author = Результат.author;
    ОбъектXDTO.subdivision = Результат.subdivision;
    ИнтеграцияС1СДокументооборот.СоздатьНовыйОбъект(Прокси, ОбъектXDTO);
    
    Если ЕстьФайлы Тогда
        Для Каждого file Из files Цикл
            ОбъектXDTO.files.Добавить(file);
        КонецЦикла;
        ИнтеграцияС1СДокументооборот.ЗаписатьОбъект(Прокси, ОбъектXDTO);
    КонецЕсли;
5 ВикторП
 
26.06.18
10:07
(4) Откуда это?
6 alkorolev
 
26.06.18
16:27
(5) из ЕРП выковыривал
7 rphosts
 
26.06.18
17:41
Зачем ковырять, стандартной доки вроде хватает https://its.1c.ru/db/biddoc#content:304:hdoc
8 ВикторП
 
26.06.18
21:26
Не хватает:)
9 alkorolev
 
26.06.18
22:50
(7) как говорил один мой коллега: "это не наш метод!"
10 rphosts
 
27.06.18
02:42
(8) ну мне как-то хватило что-бы интегрировать корп с нетленкой...
11 rphosts
 
27.06.18
02:44
(9) не наш метод это когда как вчера ко мне пристали: а что-бы не синтегрировать перку с корпом... у кого просрочка - того не выпускать с работы... разумеется были посланы.
12 ВикторП
 
27.06.18
08:35
Мне не нужно интегрировать, это уже есть. Мне нужно запустить бизнес процесс документооборота не из документооборота, а из конфигурации, которая с ней интегрирована с помощью БИД, на которую вы прислали ссылку. Спасибо, но нужно не это.
Просто интеграция даёт возможность запуска процесса вручную, а надо автоматически, по событию, например, в УТ провели документ, в документообороте запустился процесс
13 alkorolev
 
27.06.18
09:06
(12) в (4) был код создания предмета согласования. Само согласование:

    Предмет = Новый Структура;
    Предмет.Вставить("id", мИдентификаторОбъектаДокументооборота);
    Предмет.Вставить("type", "DMInternalDocument");
    
    ИдентификаторШаблона = ГУИДШаблонаСогласования();

    Шаблон = Новый Структура;
    Шаблон.Вставить("id", ИдентификаторШаблона);
    Шаблон.Вставить("type",    "DMBusinessProcessApprovalTemplate");
    
    Прокси = ИнтеграцияС1СДокументооборотПовтИсп.ПолучитьПрокси();
    ШаблонПроцесса = ИнтеграцияС1СДокументооборот.НовыйБизнесПроцессПоШаблону(Прокси, "DMBusinessProcessApproval", Шаблон, Предмет);
    
    НовыйПроцесс = ИнтеграцияС1СДокументооборот.СоздатьОбъект(Прокси, ШаблонПроцесса.ObjectId.type);
    ИнтеграцияС1СДокументооборот.ЗаполнитьЗначенияСвойствXDTO(Прокси, НовыйПроцесс, ШаблонПроцесса);
    
    РезультатЗапуска = ИнтеграцияС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, НовыйПроцесс);
    БизнесПроцессID = РезультатЗапуска.businessProcess.objectID.id;
14 ВикторП
 
27.06.18
11:09
Пока я "нашел" обработку ИнтеграцияС1СДокументооборот , а в ней форму СозданиеБизнесПроцесса .Мне кажется , я уже близок с своей цели :)
15 Active PM
 
20.12.18
10:16
(14) Виктор, добрый день. Вы решили задачу?!