![]() |
|
Создать задачу в 1С:Документооборот при событии в 1С:УПП | ☑ | ||
---|---|---|---|---|
0
vdeemer
26.09.16
✎
16:58
|
Доброго времени суток!
Задача: при наступлении события в УПП создать в 1С:Документооборот задачу исполнителя. Через COM вроде несложно (предварительно добавил реквизит ИмяПользователяЭДО в УПП): <code> Соединение = Неопределено; СтрокаПодключения = "..."; V8 = Новый COMОбъект("V83.COMConnector"); Попытка СоединениеЭДО = V8.Connect(СтрокаПодключения); Возврат ""; Исключение Возврат("Ошибка открытия информационной базы ЭДО: " + ОписаниеОшибки()); КонецПопытки; ЗадачаОбъект = СоединениеЭДО.Задачи.ЗадачаИсполнителя.СоздатьЗадачу(); ЗадачаОбъект.Дата = ТекущаяДатаСеанса(); ЗадачаОбъект.Важность = СоединениеЭДО.Перечисления.ВариантыВажностиЗадачи.Обычная; ЗадачаОбъект.Исполнитель = СоединениеЭДО.Справочники.Пользователи.НайтиПоНаименованию(Пользователь.ИмяПользователяЭДО, Истина, , ); ЗадачаОбъект.Автор = СоединениеЭДО.Справочники.Пользователи.НайтиПоНаименованию(Пользователь.ИмяПользователяЭДО, Истина, , ); ЗадачаОбъект.Наименование = НаименованиеЗадачи; ЗадачаОбъект.Описание = ОписаниеЗадачи; ЗадачаОбъект.Записать(); </code> При записи ловится ошибка {ОбщийМодуль.ОбщегоНазначения.Модуль(88)}: Значение не является значением объектного типа (Метаданные), причем отладчиком поймать ее в документообороте не могу (файл comcntr....xml согласно ИТС). При подключении к ИБ, вставив Предупреждение(""), я подключаюсь к этому соединению, но поймать ПриЗаписи() для ЗадачиИсполнителя не могу. Что можете посоветовать, уважаемые? Спасибо. |
|||
1
vdeemer
26.09.16
✎
17:01
|
"При подключении к ИБ, вставив Предупреждение(""), я подключаюсь к этому соединению" - это про отладчик)))
|
|||
2
sh8ce
26.09.16
✎
17:03
|
что за процедура в общем модуле?
|
|||
3
vdeemer
26.09.16
✎
17:08
|
Если я правильно понял, то это ошибка документооборота:
<code> // Возвращает структуру, содержащую значения реквизитов прочитанные из информационной базы // по ссылке на объект. Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты) .... Запрос.Текст = "ВЫБРАТЬ |" + ТекстПолей + " |ИЗ | " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы |ГДЕ | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка |"; </code> |
|||
4
anatoly
26.09.16
✎
17:10
|
какая версия ДО ?
и по моему правильнее было бы веб-сервисы использовать... я на них делал согласование документов из УПП. |
|||
5
vdeemer
26.09.16
✎
17:12
|
(2) Вызываться она может из огромного количества мест, так что стек вызовов - наше все. Но где поставить точку останова?
(4) Это да, оно и быстрее будет и ERP также решает эту задачу... Но сделать надо быстро, веб-сервис еще поднимать надо(( Хотя если оно так пойдет, то еще большой вопрос, что быстрее выйдет. |
|||
6
vdeemer
26.09.16
✎
17:15
|
(4) (1.4.12.1)
|
|||
7
vdeemer
27.09.16
✎
14:40
|
Если вдруг кому понадобится - проблема была в том, что надо было создавать не задачу исполнителя, а бизнес-процесс. Мне достаточно было ознакомления:
<code> Менеджер = Справочники.Пользователи.НайтиПоНаименованию(Пользователь, Истина, , ); НайденныйМенеджер = Менеджер; СтруктураПроцесса = Новый Структура; СтруктураПроцесса.Вставить("Дата", ТекущаяДатаСеанса()); СтруктураПроцесса.Вставить("Автор", Менеджер); СтруктураПроцесса.Вставить("Наименование", Наименование); СтруктураПроцесса.Вставить("Описание", Описание); Исполнители = Новый ТаблицаЗначений; Исполнители.Колонки.Добавить("Исполнитель"); НовыйИсполнитель = Исполнители.Добавить(); НовыйИсполнитель.Исполнитель = Менеджер; СтруктураПроцесса.Вставить("Исполнители", Исполнители); Предметы = Новый ТаблицаЗначений; Предметы.Колонки.Добавить("Предмет"); СтруктураПроцесса.Вставить("Предметы", Предметы); БизнесПроцессы.Ознакомление.СоздатьПроцесс(СтруктураПроцесса, Истина); </code> |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |