Доброго времени. Настроена бесшовная интеграция 1С ERP и 1С Документооборот.
В ERP у договора есть статусы "Действует" или "Не согласован", в документообороте "Согласован" и "Не согласован".
Из-за этого несоответствия написал выражение на встроенном языке на реквизит "СостоянияСогласования".
Выражение:
Если Параметры.Источник.Статус = Перечисления.СтатусыДоговоровКонтрагентов.НеСогласован Тогда
Параметры.Результат = Перечисления.СостоянияДокументов.НеСогласован;
Иначе
Параметры.Результат = Перечисления.СостоянияДокументов.Согласован;
КонецЕсли;
Но при попытке создать договор из ERP, пишет что Поле не обнаружено "СостоянияДокументов", хотя по факту оно есть. Решил передать в виде строки, то есть писал, что Параметры.Результат = "Согласован", тогда при создании, в ДО на форме заполняет Согласован, но когда захожу, согласование пустое. Приложил скрины, чтобы было понятнее.
Перерыл старую книгу по ДО, что есть по рукой, там ничего. После блуждания в обнимку с гуглом наткнулся только на решения, что описал в самом начале. Но почему не видит перечисление, мне не понятно. Может сталкивался кто?
2.
user705522_constantin_h
3526.03.19 18:11 Сейчас в теме
(1)Как же вы можете обратиться из ERP к объектам Документооборота? Я настроил бесшовную интеграцию УНФ и Документооборот. В настройках интеграции с Документооборотом из УНФ напрямую настраивается соответствие объектов: Передача в Документооборот, Получение из Документооборота. В ERP, насколько я знаю, бесшовная интеграция с Документооборотом есть.
(2)Как раз на вкладке передача в документооборот и настраиваю. Нашел в интернете примеры, где подобным образом передают данные.
"Как же вы можете обратиться из ERP к объектам Документооборота?" - а разве настройка с помощью произвольных выражений не для этого?
5.
user705522_constantin_h
3527.03.19 09:48 Сейчас в теме
(3)У Лушникова несколько иначе https://www.doc-lvv.ru/2015/10/besshovnaya-integraciya-1serp-i-1sdokumentooborot.html, но это не принципиально. Обращаться из базы ERP к объектам Документооборота Перечисления.СостоянияДокументов.НеСогласован вы не можете. Это объекты ERP, а не Документооборота. Лушников обращается к объектам Документооборота по имени. Проверьте, правильно ли вы указали имя, когда передавали только по имени. Возможно такие возможности за пределами выражений на встроенном языке. Это можно сделать через КД 2.1. Можете передать Статус в реквизит Комментарий, а на стороне Документооборота внешней обработкой на основании значения реквизита Комментарий заполнить статус.
(5) да я читал этот пост. То есть получается я обращаюсь при бесшовной интеграции из erp только к объектам erp? Получается я могу только на стороне erp настроить такие выражения только из документооборота по имени, в erp, так как я могу взаимодействовать с объектами erp. Муторно написал наверное, но если проще, то мою задачу встроенными выражениями не решить.
7.
user705522_constantin_h
3527.03.19 10:29 Сейчас в теме
(6)Да. Только КД 2.1 позволяет после загрузки обращается к объектам загружаемой базы. Причем на встроенном языке есть переменная Источник, но нет переменной Приемник. Если бы она была, то там должны были бы быть реквизиты базы, в которую идет загрузка.
(7)Ну с КД то уже намучился))), умею. Тогда я не понимаю, в чем смысл выражений на встроенном языке, на вкладке "Передача в документооборот"? Просто передавать примитивные типы данных?
(1) Если я правильно понял о чем идет речь то скажу следующее: Обрати внимание на то КАК вычисляется: Состояние: Проект, Согласован
Это можно посмотреть в ФормеЭлемента; Если я не ошибаюсь - данные хранятся в каком-то РегистреСведений; И поэтому когда ты прописываешь в реквизит элемента "Согласован" это ничего не дает ! Надо писать либо в РегистрСведений, либо вызывать триггер ПриИзменении и т.п. (чтобы он писал в регистр)
При написании вашего кода же подсказка есть как и к чему можно обращаться, которая может меняется в зависимости от изменения правил. В добавок, чтобы узнать какие значения приходят (естественно не объекты документооборота, а некие другие значения) допустим я смотрел так: выводил сообщением пользователя, либо точку останова ставил, но это посложней...