Настройка бесшовной интеграции 1С: ERP 2.0 и 1С: "Документооборот" КОРП. Варианты реализации бизнес-процессов

Публикация № 541608

Управление - Бизнес-процессы

Документооборот ERP Интеграция согласование договор.

82
Данная статья поможет настроить интеграцию 1С ERP и 1С "Документооборот" КОРП по технологии web сервисов. Описывается пошаговая настройка программ, а также приведены примеры процесса согласования договоров продажи контрагентам. Рассмотрены различные варианты реализации процесса согласования. Приведены примеры настроек маршрутизации процесса (условные и безусловные). В статье очень много скриншотов, может, кому-то это не понравится, но без этого считаю, что статья была бы не полной, т.к. описание именно "по шагам".

Пример интеграции 1С: ERP 2.0 и 1С: Документооборот 2.0 КОРП.

В связи с выходом/обновлением данных продуктов, а также развитием технологии web сервисов, специалистами компании 1С была реализована бесшовная интеграция, 1С ERP и 1С Документооборот (далее по тексту «ДО»).

В этой статье будет описана не столько схема и настройка интеграции, хотя будет и это и в полном объеме, но и рассмотрены несколько возможных видов интеграции.

Для реализации данного взаимодействия между двумя программами нам понадобится:

  • 1С ERP 2.0

  • 1C «ДО»  2.0 (Версии КОРП)

  • Web Server Apache.

Установку и настройку данных программных продуктов описывать нет необходимости, перейдем непосредственно к настройке.

Итак. Бизнес-процесс следующий: нам необходимо согласовывать договора продажи. Схема согласования будет следующая:

Для реализации подобной схемы заведем пользователей в 1С ERP и 1С ДО.

- Безопасность

- Юрист

- Экономист

- Делопроизводитель

Теперь перейдем к настройке

Зайдем в 1С ДО в режиме «Конфигуратор» и опубликуем нашу базу на web сервере.

Имя - адрес ресурса, т.е. http://localhost/DocCorp/

Каталог - Место расположения web сервиса.

Жмем «Опубликовать» и соглашаемся на перезапуск службы Apache.

Проверяем работу.

Теперь сделаем настройки в 1С ДО.

1) Создадим новый вид документа: «Договор продажи»

Переходим в «НСИ и Администрирование» - «Виды документов»

Создадим группу документов «Договора»

Создаем новый вид

Перейдем во вкладку «Шаблоны документов» - «Реквизиты документа».

Создадим папку для того, чтобы хранить все договора продажи в одном месте.

Далее настроим шаблон процесса согласования для данного вида документов, относительно нашей схемы согласования.

Переходим в «Шаблоны процессов», создаем новый шаблон.

Откроется форма выбора шаблона «Согласование», создадим папку «Нетиповые процессы», затем создадим процесс «Согласование договора продажи»

Запишем процесс.

Переходим к предметам процесса, т.к. у нас есть условная маршрутизация, которая зависит от суммы договора, нам необходим предмет анализа, создадим его.

Вернемся во вкладку «Настройки процесса», добавим согласующих.

Затем изменим направление маршрутизации, и выставим порядок согласования:

Теперь настроим уловную адресацию, нажимаем кнопку «Использовать условия» *(Только в версии КОРП).

Создадим новое условие маршрутизации: Сумма договора > 100 000р.

Далее видно, что наш шаблон не назначен ни одному «Виду документа»

Назначим его «Виду документа» - «Договора продажи».

Настройка 1С «ДО» закончена. Переходим к настройке 1С: ERP.

Добавим пользователей, таких же, как в 1С «ДО»

Далее переходим в раздел «НСИ и Администрирование» и выбираем «Интеграция с Документооборот»

В поле URL вводим web адрес сервиса, устанавливаем необходимые галки и переходим к настройке интеграции.

Укажем в настройках, к какому документу мы хотим привязать процесс.

Это будет «договор с контрагентом», объект из 1С «ДО» - «Внутренний документ»

После выбора взаимосвязей будет выполнена базовая настройка связанных объектов.

Необходимо настроить рад полей.

Вид документа в 1 «ДО» - «Договор продажи»

Когда осуществляется ввод вида документа, 1С ERP ищет его в 1С «ДО».

«Папка» - «Договора продажи» (место хранения документов)

«Регистрационный номер»

Система по умолчанию говорит, что это «Код», это неверно, изменим значение.

У нас это номер договора.

Настроим оставшиеся поля

На этом все - Сохраним настройку.

Создадим договор продажи в 1С ERP, будем создавать его под пользователем «Делопроизводитель»

Теперь создадим на основании этого договора процесс 1С «ДО». Нажимаем в форме списка «Еще»

В 1С «ДО» при этом создается внутренний документ «Договор продажи»

«Наименование» которого соответствует данным из 1С ERP. Система сразу нам предлагает выбрать шаблон процесса. Выбираем «Согласование договора продажи», и нажимаем «Создать процесс». Галку «Запуска сразу» пока устанавливать не будем.

Сумма нашего договора > 100 000р, следовательно, сработало наше правило маршрутизации, добавился «Экономист».

Стартуем процесс.

Теперь в 1С ERP зайдем под разными пользователями и посмотрим результат. При первом входе пользователя в 1C ERP, если настроена интеграция с 1С «ДО», пользователю будет предложено ввести логин и пароль для подключения к «ДО».

Потом зайдем «Экономистом»

У него задач нет, т.к. его согласование идет после «Юриста», согласуем договор «Юристом», и обновим задачи «Экономиста»

Наш договор перешел в статус «Действует».

Небольшое отступление.  Это пример интеграции из 1С ERP в 1С «ДО». Но, на мой взгляд, есть ряд недостатков не в самой интеграции, а именно в организации бизнес-процесса.  Допустим, у нас большой документооборот договоров продажи с контрагентами, все договоры проходят процедуру согласования. Следовательно, каждый раз договор должен быть занесен в 1С: ERP. Но договор могут не согласовать, тогда в базе останется «мусор», не сказать , что это сильно повлияет на работу системы, но все-таки.

Но есть возможность развернуть взаимосвязь. «Делопроизводитель» создает в 1С «ДО» внутренний документ «Договор продажи»,  документ проходит стадии согласования, затем, когда становится согласованным, «Делопроизводитель» вносит уже утвержденные данные в 1С ERP и настраивает взаимосвязь  между объектом в 1С ERP и 1С «ДО».

Пример:

В 1С «ДО» создадим внутренний документ «Договор продажи»

Регистрируем договор и отправляем по созданному нами шаблону согласования.

Небольшая неточность в скрине, сумма договора потом была проставлена в размере 1500р.

Сумму договора я установил 1500р., следовательно, согласований «Экономисту» делать не нужно.

Перейдем в 1С ERP.

Как видно, даже не создавая документ в 1С ERP при бесшовной интеграции, все процессы пользователя в 1С «ДО», отображаются в 1С ERP.

После того как все процедуры согласования были пройдены, и договор  согласован, нужно просто завести его в базу 1С ERP и настроить связь.

Вносим наш договор в 1С ERP  и настраиваем связь с согласованным объектом из 1С  «ДО»

Переходим в «Документооборот» данного документа и выбираем "внутрений документ" 1С ДО.

Поиск происходит по выбранным критериям на стороне 1С "ДО".

Вот теперь у нас настроена связь между двумя объектами.

При этом мы не создали лишних документов в 1С ERP, весь процесс согласования прошел на стороне ERP (средствами 1С «ДО»). И была получена связь 2х объектов с разных баз.

За сим все. Какие методики выбирать зависит от ваших потребностей, решайте сами.

PS. При интеграции с 1С ERP рекомендовал бы настроить планы обмена структурой предприятия, контрагентами, пользователями и статьями ДДС. Это позволит сократить вмешательство в систему 1С «ДО» и иметь актуальную информацию при договорном учете.

Best regards!

82

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. capitan 1208 09.08.16 10:42 Сейчас в теме
Обстоятельная статья.
Пару замечаний.
1. Я бы не оставлял флажки "Обновлять" в настройках интеграции для всех полей. Иначе в ДО можно поменять ключевые поля договора, для пользователя ЕРП его создавшего, это может быть сюрпризом.
2. Бизнес процесс согласования в ДО лучше на мой взгляд стартовать автоматически. Иначе при большом объеме договоров как будете отслеживать ?
2. iolko 221 09.08.16 11:09 Сейчас в теме
(1) capitan, Вполне резонные замечания. Особенно про обновления. А старт в данном случае не делал автоматом, чтобы сделать скрин созданного БП и показать согласующих.
3. RailMen 780 09.08.16 13:23 Сейчас в теме
Очень актуальная статья. У нас обмен классический БП КОРП 3.0 <-> ДО 2.0. Планируем перейти на бесшовный, т.к. в БП КОРП появилась встроенная подсистема для бесшовной интеграции.
4. capitan 1208 09.08.16 22:43 Сейчас в теме
5. 1Concept 296 10.08.16 11:54 Сейчас в теме
На практике крайне редко встречается ситуация, когда договор создается ДЕЛОПРОИЗВОДИТЕЛЕМ в ERP. Классика: в ДО ввод и согласование, по завершении, создание в ERP, например через автоматически созданную задачу по событию.
6. iolko 221 10.08.16 15:58 Сейчас в теме
(5) 1Concept, на практике - да. Это просто пример, у нас на предприятии есть такое понятие - инициатор договора (любой пользователь) . После процесса "инициации" и появления договора, как "объекта" идет процедура согласования. Не факт что он - Делопроизводитель. Еще раз уточню - это только пример, и ни чего более, логику БП, как и роли, права доступа, каждый выберет для себя сам, это частный случай. Через несколько дней статья будет дополнена настройкой условного согласования, на языке запросов (для полноты)
7. s_vidyakin 16.09.16 10:40 Сейчас в теме
(5) 1Concept, каким образом реализовали автоматическое создание в ЕРП ? А то мне пришлось писать обработчик бизнес-события "Изменение внутреннего документа" и передавать на сторону ЕРП в собственный http-сервис ГУИД договора, а уже оттуда заполнять через типовой веб-сервис интеграции
8. iolko 221 22.09.16 14:29 Сейчас в теме
(7) badboychik, Доброго времени суток, возможно есть вопрос терминологии, карточка договора в 1С ERP не создается автоматически, ее должен создать сотрудник за это ответственный, на основе комплексного процесса. Т.е. в 1С дог проходит согласование, после его завершения , в зависимости от результатов, приходит пользователю оповещение сделать определенные шаги в 1С ERP. Такая схема выбрана потому, как в нашем случае в карточке договора ERP заполняется очень большое кол-во доп реквизитов, не влияющих на процесс согласования. Но они указаны в договоре (в печатной форме) и для отчетности должны быть. Ваш способ, конечно очень оригинален, но в моем случае не жизнеспособен, т.к. нарушает очень много регламентов.
9. dsdred 1026 22.09.16 15:59 Сейчас в теме
По мне после того как создали и согласовали в ДО необходимо либо по самописному регламенту либо по самописной кнопке Расширения конфигурации Создать в ERP документ на основании ДО и в регистре документооборота и ERP проставить соответствие.
10. Xleo777 11 18.01.17 14:44 Сейчас в теме
Добрый день, Алексей!
У меня 2 вопроса по интеграции ERP 2.1.3.191 с 1С:Документооборот 2.1.7.9, платформа 1С:Предприятие 8.3 (8.3.9.1818):
1. По какому принципу мигрируют пользователи? У нас создаются дубли в 1С:Документооборот
2. При формировании списка задач пользователя в журнал регистрации записывается ошибка, Описанная ниже. Можно ли ее как-то обойти
{ОбщийМодуль.ИнтеграцияС1СДокументооборот.Модуль(22)}: Ошибка при вызове метода контекста (execute)
Результат = Прокси.execute(Запрос);
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {http://www.1c.ru/dm}:DMService:execute()
по причине:
При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Ошибка работы с Интернет: Превышено время ожидания
по причине:
Ошибка работы с Интернет: Превышено время ожидания
11. iolko 221 19.01.17 12:44 Сейчас в теме
(10)
Добрый день, Елена. Пользователи могут мигрировать только с планами обмена, либо вы заводите пользователя в ERP и затем такого же в ДО, при этом имя для входа должно быть одинаковым. А так же стоит учесть, что у пользователя должны быть права на выполнение требуемых операций, обычно достаточно включить пользователя в группу Пользователи в 1С ДО.
16. swetoch_ka 21.07.17 11:41 Сейчас в теме
(10)
Добрый день, Елена! Столкнулась с такой же ошибкой, как у Вас: {ОбщийМодуль.ИнтеграцияС1СДокументооборот.Модуль(22)}: Ошибка при вызове метода контекста (execute).
Скажите пожалуйста, удалось ли победить ошибку и как?
23. Xleo777 11 23.11.17 10:10 Сейчас в теме
(16)
Добрый день, Светлана!
В модуле ИнтеграцияС1СДокументооборот изменили Таймаут с 15 до 100 в функции

Функция ТаймаутСервиса() Экспорт

//Таймаут = 15;
Таймаут = 100;

ИнтеграцияС1СДокументооборотПереопределяемый.ПриОпределенииТаймаутаСервиса(Таймаут);

Возврат Таймаут;

КонецФункции
12. algora 56 07.06.17 16:35 Сейчас в теме
Добрый день.
Подскажите, что нужно сделать чтобы в безшовную интеграцию добавить свой (не типовой) бизнес процесс?
По нему получаем ошибку "попытка получить имя ссылки для неизвестного типа"
А куда его надо добавить?
13. s_vidyakin 07.06.17 21:57 Сейчас в теме
Бизнес процесс или все таки документ? Чтоб импортировались документы надо добавить его в определяемый тип "интегрируемые с документооборотом объекты" и настроить сопоставление реквизитов в правилах интеграции
15. algora 56 09.06.17 14:53 Сейчас в теме
(13)именно бизнеспроцесс (был когда то создан). Но я разобрался, добавил структуру по аналогии с типовыми и в коде прописал. стали отображаться его задачи
14. iolko 221 08.06.17 04:04 Сейчас в теме
Добрый день. Полностью согласен с Сергеем Ведякиным.
17. iolko 221 25.07.17 07:56 Сейчас в теме
Коллеги, собратья, товарищи !!!! ))))))
Всем доброго времени суток. Столкнулся с такой проблемой при бесшовной нтеграции 1С Документооборот и 1С ЕРП. Суть:
Есть типовой документ 1С ЕРП- Заявка ТМЦ, у которой есть статусы : Утвержден, На Утверждении , отклонен итд. В 1С Документооборот есть внутренний документ, Заявка ТМЦ, с процедурой согласования.
Так вот. Если в 1С ЕРП в интеграции в настройках правил интеграции прописать что то типа:

Если Источник.statusApproval.name = "Согласован" Тогда Результат = Перечисления.СтатусыПланов.Утвержден
 ИначеЕсли 
  Источник.statusApproval.name = "Не согласован" Тогда Результат = Перечисления.СтатусыПланов.Отклонен; 
 КонецЕсли; 


То часа 2 правило отрабатывает а потом ругается, что поле name в теге statusApproval не найдено. При этом ни чего не помогает до перезапуска службы 1С.

Важно то, что у нас 1С кластеризована, и такая ошибка появляется только при кластерной схеме.

Пришлось для того чтобы работало править переопределяемый модуль ИнтегарцияС1СДокументооборот. Если нужно могу кинуть процедуру и кусок кода.
26. Xleo777 11 23.11.17 10:33 Сейчас в теме
(17)
Добрый день, Алексей! Может у вас в ДО статус документа становится не согласован, а, например, Исполнен или утвержден. А тогда это уже не Источник.StatusApproval, а Источник.statusPerformance (исполнен) или Источник.statusConfirmation (Утвержден). И это тоже надо описывать. Я, кажется, проверяла на заполненность Источник.statusApproval, а уже потом проверяла реквизит name

ИменСвойствПоСостояниям.Вставить("Согласование", "statusApproval");
ИменСвойствПоСостояниям.Вставить("Утверждение", "statusConfirmation");
ИменСвойствПоСостояниям.Вставить("Регистрация", "statusRegistration");
ИменСвойствПоСостояниям.Вставить("Рассмотрение", "statusConsideration");
ИменСвойствПоСостояниям.Вставить("Исполнение", "statusPerformance");
Lena272; Spacer; +2 Ответить
18. strannik1982 14.11.17 12:51 Сейчас в теме
Коллеги подскажите, при бесшовной интеграции кушает ли ДО клиентские лицензии, когда пользователь согласовывает договор из 1с ERP? То есть пользователь в момент согласования будет использовать 2 клиентских лицензии? я говорю про случай с программными лицензиями.
19. iolko 221 15.11.17 09:12 Сейчас в теме
(18), Добрый день!
Если лицензии аппаратные, то нет - это одна лицензия
48. BalansI 10.01.19 13:05 Сейчас в теме
(19) Добрый день. У нас лицензии аппаратные, но съедает две лицензии. Не подскажите, что могли настроить не так? Лицензии раздаем хаспом.
20. dvdvan1 22.11.17 16:36 Сейчас в теме
Возникла такая проблема, при бесшовной интеграции ERP->ДО запускается процесс согласования документа «Заявка на расходование ДС», в ДО создается внутренний документ, заполненный данными из ERP. Документ проходит процесс согласования, меняется статус в ДО, процесс закрывается, но статус документа в ERP не меняется, причем не только статус , но и остальные реквизиты которые указаны в правиле интеграции «Получение из 1с Документооборота». Отмечу что правило интеграции «Передача в 1С Документооборот» отрабатывает полностью. Кто сталкивался с такой проблемой подскажите в чем причина?

Заранее спасибо.
25. Xleo777 11 23.11.17 10:18 Сейчас в теме
Напишите ваше сообщение
(20)
Работает ли в ДО регламентное задание "Формирование сообщений обмена для интегрированных систем"?
27. dvdvan1 23.11.17 15:49 Сейчас в теме
(25)
Да работает, из ДО заполняется только поле комментарий, статус нет, причем статус из ДО приходит "Согласован".
Статус заполняется из выражения на встроенном языке:

Если Параметры.Источник.status.name = "Согласован" Тогда
	Параметры.Результат = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована;
ИначеЕсли Параметры.Источник.status.name = "НеСогласован" Тогда
	Параметры.Результат = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Отклонена;
ИначеЕсли Параметры.Источник.status.name = "НаСогласовании" Тогда
	Параметры.Результат = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.НеСогласована;
КонецЕсли;
30. Xleo777 11 24.11.17 13:34 Сейчас в теме
(27) Добрый день, Иван!
Странно. Ведь в ДО несколько статусов
statusApproval
statusConfirmation
statusRegistration
statusConsideration
statusPerformance
Неужели у Вас отрабатывает условие Параметры.Источник.status.name ?
31. dvdvan1 24.11.17 18:43 Сейчас в теме
(30)
Добрый вечер.

Действительно странно, но условие отрабатывает. Например если записать условие "Параметры.Источник.status.name" в поле "Комментарий", то туда запишется "Согласован", "На согласовании" и т.д, если указать ТипЗнч(Параметры.Источник.status.name), то запишется "строка". То есть из ДО приходит все верно, но вот поле статус не меняется.
32. Xleo777 11 27.11.17 15:23 Сейчас в теме
(31)
Добрый день, Иван!
Если Вы используете стандартные правила интеграции может использовать возвращаемое значение Результат, а не Параметры.Результат (как у Вас написано)?
Если Параметры.Источник.status.name = "Согласован" Тогда
    Параметры.Результат = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована;
ИначеЕсли Параметры.Источник.status.name = "НеСогласован" Тогда
    Параметры.Результат = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Отклонена;
ИначеЕсли Параметры.Источник.status.name = "НаСогласовании" Тогда
    Параметры.Результат = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.НеСогласована;
КонецЕсли;
33. dvdvan1 27.11.17 18:45 Сейчас в теме
(32)
Добрый вечер, Елена.

Если я использую Результат, а не Параметры.Результат правило не отрабатывает, при отправке инф. в ДО возникает исключительная ситуация (переменная результат не обнаружена).

При получении инф из ДО ошибки нет, но и данных нет. Версия erp 2.4.1.240, правила стандартные.
34. Xleo777 11 29.11.17 15:31 Сейчас в теме
(33)
Добрый день, Иван!
Понятно. У нас ERP 1С:ERP 2.2.4.81.

Спасибо за информацию! Будем готовиться к обновлению )))
40. Synoecium 633 18.12.17 16:33 Сейчас в теме
(20) столкнулся с такой же проблемой, выяснил что это косяк в типовой конфигурации ERP (2.2.4.81), там сделана неправильная проверка на изменение реквизитов в правилах обмена. Смотреть в модуль менеджера справочника "Правила интеграции", функция ЗаполнитьОбъектПоОбъектуXDTO(), в местах где устанавливается флаг ЕстьИзменения. Исправили ли косяк в новых версиях ERP не знаю, в моем случае проще было исправить.
63. Bezon-81 18.06.19 00:41 Сейчас в теме
Коллеги, есть проблема схожая с описанной Synoecium (40).
Стоит УТ 11.4.6.188 и ДО 2.1.12.2
Настроена интеграция и синхронизация.
В УТ и ДО сделаны идентичные дополнительные реквизиты статуса согласования документа.
Ожидаемая схема:
Документ в УТ -> документ в ДО -> автозапуск не типового согласования -> изменение значения статуса(доп реквизита) при движении по процессу согласования -> изменение основных реквизитов документа ДО (номер, дата начала и окончания, ответственный и т.п.), если требуется -> изменение статуса ДО в документе УТ.

Фактический резульатт:
Все реквизиты без проблем уходят в ДО и вносятся в документ ДО, но при их изменении изменений в документе УТ не происходит (((
Складывается очучение, что при обмене данные не толкаются из ДО в УТ.
Может кто подскажет как решить эту проблему?
72. nnickname 20.06.19 06:24 Сейчас в теме
(63) описанная в (20) проблема решена в ЕРП.
Сейчас согласование работает через ДО.
У меня тоже заработало не сразу.
На партнерской много сообщений на этот счет.

Проверьте в ДО работу фонового задания "Формирование сообщений обмена для интегрированных систем".
Если оно отрабатывает корректно, то после изменения статуса согласования документа в ДО в РС "Сведения о сообщениях обмена с интегрированными системами" появятся записи с пустой "датой передачи клиенту".
Если так, то ДО со своей задачей справился.

Далее идем в ЕРП, Регл заданию "Интеграция с 1С:Документооборотом - Выполнить обмен данными" назначаем пользователя, под которым оно будет выполняться. Заходим в режиме предприятия и проверяем, что у этого пользователя введен его логин/пароль от документооборота.

После этого все должно заработать.
73. Bezon-81 21.06.19 17:32 Сейчас в теме
(72)
Интеграция с 1С:Документооборотом - Выполнить обмен данными


Спасибо!

Действительно после предыдущих тестов с перепубликацией, через некоторое время опять перестало работать.
Сделал по этому рецепту.
Настроил почаще выполнение РЗ, проверил пользователя обмена (он был не залогинен в ДО) теперь когда руками толкаешь "Интеграция с 1С:Документооборотом - Выполнить обмен данными" , то всё приходит куда надо, а если не толкать то какой-то период между обменами, хотя РЗ стоит на раз в 30 сек.

РС "Сведения о сообщениях обмена с интегрированными системами" действительно удобно смотреть чтобы понять ходил обмен или нет

Буду искать где ещё время прописано
64. Bezon-81 18.06.19 00:45 Сейчас в теме
Коллеги, есть проблема схожая с описанной Synoecium (40).
Стоит УТ 11.4.6.188 и ДО 2.1.12.2
Настроена интеграция и синхронизация.
В УТ и ДО сделаны идентичные дополнительные реквизиты статуса согласования документа.
Ожидаемая схема:
Документ в УТ -> документ в ДО -> автозапуск не типового согласования -> изменение значения статуса(доп реквизита) при движении по процессу согласования -> изменение основных реквизитов документа ДО (номер, дата начала и окончания, ответственный и т.п.), если требуется -> изменение статуса ДО в документе УТ.

Фактический резульатт:
Все реквизиты без проблем уходят в ДО и вносятся в документ ДО, но при их изменении в ДО - изменений в УТ не происходит (((
Складывается очучение, что при обмене данные не толкаются из ДО в УТ.
Может кто подскажет как решить эту проблему?
nnickname; +1 Ответить
65. iolko 221 18.06.19 12:02 Сейчас в теме
(64)
Фактический резульатт:
Все реквизиты без проблем уходят в ДО и вносятся в документ ДО, но при их изменении в ДО - изменений в УТ не происходит (((
Складывается очучение, что при обмене данные не толкаются из ДО в УТ.
Может кто подскажет как решить эту проблему?


Смотрите, проблем на самом деле 2, а именно:
1) Сам процесс согласования строится полностью в момент старта маршрута, т.е. если допустим пользователь установил признак "Экстренная закупка", а в ДО настроено, что для этого признака из маршрута согласования должно выпасть , скажем, 5 согласующих, то при старте процесса их и не будет.
Даже если потом Вы поставите данный признак в ERP или в ДО, то процесс не перестроится, а пойдет по маршруту как он был создан при старте.

2) Изменение реквизитов, вообще в настройках интеграции, где Вы прописываете соответствия реквизитов есть признак Обновлять из ERP, обновлять из ДО (на вкладке ДО), либо не установлена галка, либо как то криво идет обмен.
66. Bezon-81 18.06.19 12:20 Сейчас в теме
(65)
2) Изменение реквизитов, вообще в настройках интеграции, где Вы прописываете соответствия реквизитов есть признак Обновлять из ERP, обновлять из ДО (на вкладке ДО), либо не установлена галка, либо как то криво идет обмен.


В том-то и дело, что галки стоят, а результата никакого. В этом собственно и проблема!
67. iolko 221 18.06.19 12:32 Сейчас в теме
(66)
, что галки стоят, а результата никакого. В этом собственно и проблема!


Это повод обратиться в 1С, но одно могу сказать точно, это происходит не с типовым обменом данными, ERP генерирует событие на Web сервис ДО,
и там уже ДО должен эти изменения обработать. У нас просто запрещено изменение документа и процесса пока статус <> Согласован или Отказан
68. Bezon-81 18.06.19 18:57 Сейчас в теме
(67)
Разобрался, но не до конца понял как.
Посмотрел тут https://forum.infostart.ru/forum15/topic214401/
Проверил журнал, там чисто.
Нагрузил админа переопуликовать базы, заодно и переименовал базу ДО
И вжууух!!!!

интеграция полилась в обратную сторону как и должна
69. iolko 221 18.06.19 19:07 Сейчас в теме
(68)
интеграция полилась в обратную сторону как и должна

Это как минимум отлично, но проблема № "еще одна" осталась, а именно: построение маршрута согласования.... в принципе можно залезть в код и там немного исправить в том же модуле интеграции ДО и ЕРП.. на стороне ДО... т.е. если были изменения, то пробежать маршрут, если маршрут изменился с новыми значениями, старый маршрут стоп, новый старт....
70. Bezon-81 18.06.19 20:17 Сейчас в теме
(69) я пошёл другим путём, запретил менять реквизиты всем кроме ответственных сотрудников.
Кроме того данные реквизиты в первую очередь статусы движения по процессу и на маршрут не влияют.

Хотя вы задели важный момент, который я ещё не освоил - это запрогать автоматическую смену статуса(доп реквизита) в зависимости от шага процесса.
НО это уже офтоп
71. iolko 221 18.06.19 21:19 Сейчас в теме
(70) ну вот... главное -1, а дальше,есть проблема, есть решение
21. sm.artem 12 23.11.17 07:24 Сейчас в теме
Спасибо за статью!

Я правильно понимаю, что в любом случае пользователь должен работать в двух системах? То есть, как описано в первом случае: в ERP создали договор, в "ДО" необходимо выбрать шаблон процесса и стартовать бизнес-процесс?
Или все же, "ДО" можно использовать как фоновый движок бизнес-процессов? Например, мне необходимо согласовать изменение Заказа клиента (который в ERP), тогда я из Заказа клиента запускаю бизнес-процесс (который в ДО) и дальнейшие шаги по бизнес-процессу делаются пользователями также в ERP?
22. iolko 221 23.11.17 09:56 Сейчас в теме
(21) Добрый день! Если Вы создали заказ в ERP или Бухгалтерии, и Вам необходимо его согласовать через 1С Док оборот, тогда, на стороне Вы создаете Вид внутреннего документа "Заказ" (на пример) , настраиваете необходимые доп реквизиты, которые должны присутствовать в карточке в документа 1С Документооборот. Это полезно, если от каких то реквизитов зависит маршрут согласования.
Пример: в Документе "ЗаказКлиенту" в 1С ERP вы добавили признак 100%% предоплаты (булево), по логике, если этот признак Истина, то в процесс согласования должен добавиться, скажем, коммерческий директор.

Тогда в состав внутреннего документа "Заказ" на стороне 1С Документооборот, Вы так же добавляете такой же реквизит, и настраиваете условия маршрутизации.

На стороне 1С ERP в правилах интеграции, настраиваете заполнение внутреннего документа 1С ДокОборот, из документа 1С ERP. В этих правилах Вы определяете какой реквизит из ЕРП попадет в карточку ДокОборот.

Следовательно, при создании на основании документа "ЗаказКлиенту" из ERP процесса согласование или любого другого комплексного процесса, произойдет заполнение требуемых реквизитов в 1С ДокОборот.
sm.artem; +1 Ответить
24. sm.artem 12 23.11.17 10:11 Сейчас в теме
(22) Спасибо за ответ.
Это понятно, что можно настроить создание объектов в ДО по созданному объекту в ERP.

Вопрос в том, что после того как создался внутренний документ "Заказ" в ДО. Сотрудник через ERP запускает бизнес-процесс. Есть ли необходимость ему (или другим согласующим) заходить еще и в ДО и там выполнять действия, или же все участники так и продолжают работать в ERP, без запуска ДО на всем протяжении процесса?
28. iolko 221 24.11.17 03:33 Сейчас в теме
(24), Добрый день. Нет необходимости нет, если настроена интеграция, то на начальной странице 1С ERP, в форсе интеграции с 1С Документооборот, пользователь будет видеть все свои задачи. Т.е. Петров АА отправил Заказ Иванову ВВ, у Иванова ВВ, появилась в ERP новая задача. Он может согласовать или нет, если согласовал, Петров АА получает уведомление "ознакомиться с результатом согласования" так же в ЕРП.

Могу кинуть в личку скрины того как это происходит
Lena272; sm.artem; +2 Ответить
29. sm.artem 12 24.11.17 06:42 Сейчас в теме
(28) Алексей, спасибо за ответ.

Мне пока достаточно знать, что мой вопрос можно решить штатными средствами.
Думаю, что в скриншотах нет необходимости, основной функционал хорошо описан в статье.
35. Xleo777 11 29.11.17 15:32 Сейчас в теме
Добрый день, коллеги!
Документооборот 8 КОРП, редакция 2.1 (2.1.10.2)
Скажите, пожалуйста, почему в ДО пользователи могут видеть только комплексные процессы, в которых являются автором или согласантом? У пользователей есть роли на работу с внутренними документам, процессами и задачами.

У нас настроена форма в интеграции, которая проверяет наличие действующих процессов и запрещает редактирование Заявок на расходование ДС, если процессы обнаружены через интеграцию.
В итоге, так как пользователь не видит процессов других, заявки стали доступны для редактирования.
36. Xleo777 11 30.11.17 14:55 Сейчас в теме
(35)Упс. Это типовое поведение системы (RLS) при использовании ролей "Изменение и выполнение задач" и "Работа с задачами и бизнес процессами". Чтобы читали все процессы и задачи, нужна роль "Чтение процессов и задач без ограничения"... или напильник :)
38. iolko 221 05.12.17 07:11 Сейчас в теме
(35) Добрый день! Необходимо настроить права, дать доступ на просмотр всех документов, а именно...
В Полномочиях, для "Пользователь", добавить роль (включить ее) - "Чтение внутренних документов без ограничений"
37. iolko 221 05.12.17 07:06 Сейчас в теме
Всем доброго времени суток!
При работе с 1С Документооборот и маршрутами согласования (при использовании условий маршрутизации) столкнулся с такой проблемой.

Допустим. у нас есть шаг "Экономист предприятия", который должен быть выполнен если было уже согласование "Юриста", "Бухгалтера", соответственно это роли. Допустим пользователь выбирает не роль, а именно человека, но человеку эта роль назначена, в результате чего получаем...

1) Проверяем предыдущие шаги согласования и результат, чтобы понять а нужно ли переходить к согласованию "Экономистом предприятия", для этого проверим, согласование предыдущих шагов

	

Юрист = Ложь;
Бухгалтер = Ложь;
Рез = Ложь;

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВизыСогласования.РольИсполнителя,
		|	ВизыСогласования.РезультатСогласования
		|ИЗ
		|	Справочник.ВизыСогласования КАК ВизыСогласования
		|ГДЕ
		|	ВизыСогласования.ПомещенаВИсторию = &ПомещенаВИсторию
		|	И ВизыСогласования.Удалена = &Удалена
		|	И ВизыСогласования.Документ = &Документ";
	
	Запрос.УстановитьПараметр("Документ", Предмет.Ссылка);
	Запрос.УстановитьПараметр("ПомещенаВИсторию", Ложь);
	Запрос.УстановитьПараметр("Удалена", Ложь);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Если Строка (ВыборкаДетальныеЗаписи.РольИсполнителя) = "Юрист И ВыборкаДетальныеЗаписи.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано Тогда
			Юрист = Истина;                                      
		КонецЕсли;

		Если Строка (ВыборкаДетальныеЗаписи.РольИсполнителя) = "Бухгалтер" И ВыборкаДетальныеЗаписи.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано Тогда
			Бухгалтер= Истина;                                      
		КонецЕсли;
КонецЦикла;		

Если Юрист И Бухгалтер Тогда
       Рез = Истина;
КонецЕсли;

Результат = Рез;

Показать



По идее все хорошо, но если только в маршруте пользователь выбрал РОЛЬ, а если выбрал сотрудника, который назначен на эту роль, то условие не отработает.

Во избежание подобных ошибок, был добавлен общий модуль "РаботаСУсловиямиМаршрутизации" (Сервер). В котором прописана экспортная функция


&НаСервере
Функция ПроверитьИсполнителяНаРоль (ИсполнительДелегат, КодРоли) Экспорт
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ИсполнителиРолейИДелегаты.ИсполнительДелегат КАК ИсполнительДелегат,
		|	ИсполнителиРолейИДелегаты.РольПользователь КАК РольПользователь,
		|	ИсполнителиРолейИДелегаты.РольПользователь.Код КАК РольПользовательКод
		|ИЗ
		|	РегистрСведений.ИсполнителиРолейИДелегаты КАК ИсполнителиРолейИДелегаты
		|ГДЕ
		|	ИсполнителиРолейИДелегаты.ИсполнительДелегат = &ИсполнительДелегат
		|	И ИсполнителиРолейИДелегаты.РольПользователь.Код = &Код";
	
	Запрос.УстановитьПараметр("ИсполнительДелегат", ИсполнительДелегат);
	Запрос.УстановитьПараметр("Код", КодРоли);
	
	РезультатЗапроса = Запрос.Выполнить();
	Если Не РезультатЗапроса.Пустой() Тогда 
		Возврат Истина;
	Иначе
		Возврат Ложь;
	КонецЕсли;
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	
КонецФункции

Показать


Теперь немного изменим наше условие маршрутизации


Юрист = Ложь;
Бухгалтер = Ложь;
Рез = Ложь;

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВизыСогласования.РольИсполнителя,
		|	ВизыСогласования.РезультатСогласования,
		|	ВизыСогласования.Исполнитель
		|ИЗ
		|	Справочник.ВизыСогласования КАК ВизыСогласования
		|ГДЕ
		|	ВизыСогласования.ПомещенаВИсторию = &ПомещенаВИсторию
		|	И ВизыСогласования.Удалена = &Удалена
		|	И ВизыСогласования.Документ = &Документ";
	
	Запрос.УстановитьПараметр("Документ", Предмет.Ссылка);
	Запрос.УстановитьПараметр("ПомещенаВИсторию", Ложь);
	Запрос.УстановитьПараметр("Удалена", Ложь);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Если Строка (ВыборкаДетальныеЗаписи.РольИсполнителя) = "Юрист" И ВыборкаДетальныеЗаписи.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано Тогда
			Юрист = Истина;                                      
		КонецЕсли;

		
		Если РаботаСУсловиямиМаршрутизации.ПроверитьИсполнителяНаРоль(ВыборкаДетальныеЗаписи.Исполнитель,"00000001") И ВыборкаДетальныеЗаписи.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано Тогда
			Юрист = Истина;                                      
		КонецЕсли;
			
		
		Если Строка (ВыборкаДетальныеЗаписи.РольИсполнителя) = "Бухгалтер" И ВыборкаДетальныеЗаписи.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано Тогда
			Бухгалтер= Истина;                                      
		КонецЕсли;
		
		
		Если РаботаСУсловиямиМаршрутизации.ПроверитьИсполнителяНаРоль(ВыборкаДетальныеЗаписи.Исполнитель,"00000002") И ВыборкаДетальныеЗаписи.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано Тогда
			Бухгалтер = Истина;                                      
		КонецЕсли;
		
КонецЦикла;		

Если Юрист И Бухгалтер Тогда
       Рез = Истина;
КонецЕсли;

Результат = Рез;

Показать


Как видно мы изменили запрос, добавив в него исполнителя, а так же передали на проверку данные.
Обращу Ваше внимание на то, что в качестве кода роли, передается код из справочника "ПолныеРоли" - это важно.

Всем заранее спасибо, и с наступающим, в качестве небольшого бонуса, прикрепляю внешнюю обработку, которая позволяет тестировать и создавать условия маршрутизации.....
Прикрепленные файлы:
ПроверкаУсловийМаршрутизации_2_1.epf
39. Xleo777 11 11.12.17 18:13 Сейчас в теме
(37) Добрый день, Алексей!
Мы решили эту проблему создав отдельный комплексный процесс с согласованием "Юриста", "Бухгалтера" - Этап1, А на этап2 Экономиста маршрут попадал по итогам успешного выполнения этапа1.
41. Sanek_159 1 18.04.18 16:45 Сейчас в теме
Добрый день.

Подскажите как при настройке правил интеграции, в зависимости от условия, выбрать папку сохранения документа в документообороте? Т.е. в "выражения на встроенном языке" прописать алгоритм выбора того или иного значения из документооборота?

Можно создать несколько вариантов правил для одного документа, с разными папками и тогда при нажатии кнопки "создать" будет предложено выбрать несколько вариантов правил в которых указаны разные папки. Но это не красивый и чувствую не правильный метод.
42. iolko 221 19.04.18 04:08 Сейчас в теме
(41) Добрый день! Да Лучше прописать правила на встроенном языке.

Если Параметры.Источник (Какое то значение), Тогда Параметры.Результат = 
43. Sanek_159 1 26.04.18 11:16 Сейчас в теме
(42) вот как раз проблема в "Параметры.Результат", т.к. в "Параметры.Результат" нужно передать не значение "Параметры.Источник", а выбрать значение (не из источника) скажем произвольного справочника с определенным значением.
44. iolko 221 30.04.18 18:50 Сейчас в теме
в "Параметры.Результат" нужно передать не значение "Параметры.Источник" - это вообще зачем в результат передавать источник ? Источник - это какое значение обрабатываем, результат- это то что хотим присвоить. Напишите пример словами, я Вам просто кусок кода напишу.
45. Sanek_159 1 25.07.18 10:13 Сейчас в теме
(44) Вопрос уже решен, спасибо. Данные создаются из бухгалтерии 3 в документооборот 2.1.
Нужно было результату присвоить не значение справочника Источника (бухгалтерии), а выбрать из справочника Документооборота и его подставить. Т.е. в документообороте во внутренних документах есть допустим 2 папки куда создаются документы. При создании нужно было автоматически выбирать нужную папку.
46. sapsalev 01.12.18 11:43 Сейчас в теме
Уважаемый автор, спасибо за толковую статью!
Позвольте несколько вопросов:
1) в случае использования «1С:Документооборот 8 ПРОФ» вместо «КОРП» единственное отличие — это невозможность настройки ограничения на сумму договора?
2) можно ли настроить БП согласования договора в ДО более сложным, чем в ERP, т.е. сделать так, чтобы некоторые этапы согласования совпадали с этапами ERP, но при этом между ними были бы ещё внутренние этапы ДО?
3) правильно ли я понимаю, что веб-сервер можно использовать любой, аналогично всё будет работать и на IIS?
Заранее спасибо за ответ!
47. iolko 221 01.12.18 17:26 Сейчас в теме
(46) Доброго дня!

в случае использования «1С:Документооборот 8 ПРОФ» вместо «КОРП»
Вот тут подсказать не могу, надо смотреть описание поставок.

можно ли настроить БП согласования договора в ДО более сложным, чем в ERP

Да, именно для этого и создан 1С ДО, т.к. там можно как угодно усложнить процесс согласования

правильно ли я понимаю, что веб-сервер можно использовать любой, аналогично всё будет работать и на IIS?

Совершенно верно, мы и на IIS работали, но потом все-таки перешли на апач, к стати сейчас переходим на апач х64, и на платформу 8,3,13, вроде бы как, это даст заметный прирост производительности.

НО! Мы пошли немного по другому (пришлось) , а именно:
Сделали некий промежуточный документ - Проект договора в 1С ERP, на него навешали кучу контролей заполнения, добавили все требуемые договорным управлением реквизиты итд. И уже этот документ интегрировали в 1С ДО, и именно он у нас идет на согласование, а уже после того как проект согласован, то из него можно уже создать договор (с контрагентом, кредитов, лизинга, займа )

Такой подход позволил нам не плодить мусора в справочниках договоров, и получить всю требуемую отчетность не изменяя типовые документы. Т.е. есть некий регистр сведений, в котором хранятся связи между проектом договора и самим договором,следовательно формирую отчеты (которые требуют договорники) мы всегда имеем доступ к проекту договора, и следовательно ко всем его реквизитам. Ну и соотвественно еще допили периодику статуса договора, а то в типовых решениях этого нет. Т.е. статус - это факт (Действует или Закрыт) , а часто надо так... Количество действующих договоров за месяц. Следовательно тут без периодики не обойтись. Пишите, если что, отвечу
49. Synoecium 633 24.01.19 16:10 Сейчас в теме
(47) по описанию тянет на отдельную статью, не планируете систематизировать опыт?
За эту статью спасибо, по ДО не так уж много хороших материалов в сети
50. iolko 221 25.01.19 05:01 Сейчас в теме
(49) В принципе не критично написать, т.к. граблей схватил очень много именно с тем, что изначально мы все-таки работали параллельно в 1С ДО, и в 1С ERP, т.е. проект договора пользователи вводила в 1С ДО, затем согласование происходило в 1С ERP (штатным механизмом), после того как проект договора согласован,
сотрудники создавали карточку именно "Договора с контрагентом" в 1С ERP, и настраивали связь.

Скорее всего в понедельник будет писанине нашей работы ну и бонусом еще работа с документацией
51. krollzlat 08.02.19 13:17 Сейчас в теме
Добрый день.Возникла необходимость как-то реализовать передачу ТЧ в до. Нарпимер Есть самописный документ, статус и прочее уходит ,есть ТЧ ("Доп согласущие"), хотелось бы их как-то перетащить А уже в ДО переписать заполнениея процесса и согласовантов...Есть идеи как можно это реализовать?
52. iolko 221 09.02.19 09:56 Сейчас в теме
(51) Это сложно в реализации, если количество согласующих известно, то лучше завести отдельные реквизиты (тем более что док самописный)
53. technetos 28.05.19 17:43 Сейчас в теме
Использовать почтовый клиент 1с ДО из ERP возможно?
как организовать работу с почтой?
54. iolko 221 28.05.19 18:25 Сейчас в теме
(53) а какая конкретно задача ?
55. technetos 28.05.19 19:32 Сейчас в теме
сейчас все письма принимаем и отправляем из Комплексной автоматизации (регистрируются взаимодействия). очень удобно по нажатию кнопки отправить счёт на оплату, прайс, отчет и проч. Но сам почтовый клиент неудобен, есть проблемы с работой. Иногда письма не забирает с почтового сервера. Нет привычного функционала. Например, при ответе на письмо не сохраняет в тексте письма историю переписки. Почитав о всех возможностях почты в 1с ДО захотели себе такую красоту. вот только красота в интерфейсе ДО, в КА её не перетащить...

Возможно, я еще не всё увидел. Только сегодня начал разбираться с функционалом.
56. podkin1c 29.05.19 08:35 Сейчас в теме
(55) не перетащить... Не вся функциональность ДО интегрируется. Например, для тех же договоров печать листа согласования предусмотрена только в ДО, работа с версиями вложенных файлов, управление пролонгацией договоров только в ДО. Если по договорам вести учет доп.соглашений как отдельных документов (требующих отдельного согласования), а не как файлов, то опять же добро пожаловать в интерфейс ДО. На текущем уровне механизма интеграции ДО и например ERP отказаться от работы в двух программах далеко не всегда возможно.
57. iolko 221 29.05.19 10:52 Сейчас в теме
(56) Совершенно верно, а именно:
- печать листа согласования предусмотрена только в ДО (да, но легко дорабатывается)

- работа с версиями вложенных файлов (К сожалению да, т.к. данные по прикрепленным к договорам файлам, хранятся в справочнике (на пример) ДоговорыКонтрагентовПрисоединенныеФайлы, данный справочник не умеет работать с версиями)

- Если по договорам вести учет доп.соглашений как отдельных документов (требующих отдельного согласования), а не как файлов, то опять же добро пожаловать в интерфейс ДО (опять совершенно верно).

Автопролонгация - это вообще чудо, т.к. в 1С ERP срок действия договора, статус договора - это не периодические данные, следовательно, если Вы заходите посмотреть количество действующих договоров за период, то по статусу Вы этого не получите. Т.е. может быть так: Период действия договора 2019 год, статус - Закрыт, и Вы хотите его получить как действовал в течении года, если просто запрос к статусу то этого договора не будет.

Работа в 2х системах одновременно (ERP и Интерфейс ДО, т.е. непосредственно Документооборот) тоже ни чего хорошего не принесет.

Вывод один - доработка системы. При этом можно частично пересмотреть БП предприятия, немного подстроив их под функционал программы.
В принципе все что Вы описали можно сделать, если есть понимание что конкретно нужно. Сам ДО очень хорошо масштабируем в плане функционала, если будет необходимость обсудить варианты реализации, пишите (лучше в личные сообщения)
60. podkin1c 30.05.19 08:27 Сейчас в теме
(57)
Работа в 2х системах одновременно (ERP и Интерфейс ДО, т.е. непосредственно Документооборот) тоже ни чего хорошего не принесет.


Если стоит задача автоматизировать документооборот организации (компании), то две программы (базы, конфигурации) однозначно.

Если документооборот нужен только как "движок" для процессов, то можно и "скрыть" ДО. Но моё личное мнение, что тогда уж лучше использовать альтернативный софт (Битрикс, Elma, Bizagi и т.д.).

Покупать, ставить, настраивать интеграцию, поддерживать 1С:Документооборот только в качестве "движка" для согласования фин.заявок и договоров из ERP это всё-равно что летать на самолёте в соседнюю деревню. Можно, конечно, но дорого же...Да и неудобно, если уж честно. Я перепробовал много чего (разные программы), реализация процессов (согласование, утверждение, исполненение) от 1С при интеграции ERP и ДО для пользователя, пожалуй, самое сложное решение.
Лично я остановился именно на связке 1С:ERP -1С:Документооборот, поскольку нам нужен именно "самолёт". (Хотя может и нам не нужен, может просто люблю летать...)
58. iolko 221 29.05.19 16:50 Сейчас в теме
(56)Могу Вам полноценно описать все решения ваших вопросов, за просто так, ради интереса, если интересно - это часа 2 времени.)))))))))))))))))) даже с кодом, лист согласования как пример
59. podkin1c 30.05.19 07:41 Сейчас в теме
(58) Зачем же за просто так? Опубликуйте здесь отдельную статью по реализации листа согласования в ERP при интеграции с ДО. Уверяю, будет интересно не только мне. Получите гешефт от публикации, а здесь просто ссылку на свою же статью.
61. iolko 221 30.05.19 10:51 Сейчас в теме
(59) Ок, к вечеру будет опубликовано решение с исходными кодами
62. iolko 221 31.05.19 04:35 Сейчас в теме
(59) Схема следующая: На стороне 1С ERP, создается общая команда (если не хотите изменять типовые объекты) или же забираете в расширения формы типовых справочников.

// Получаем Уникальный идентификатор интегрированного объекта
ID = Строка(Объект.Ссылка.УникальныйИдентификатор());
//На стороне 1С ДО в расширение добавляем новый Web Сервис
//Отправляем данные в 1С ДО (детали чуть ниже будут
Данные = ПолучитьДанныеС1СДокументооборот (уид);
//1С ДО Формирует печать листа согласования и возвращает двоичные данные сформированного MXL листа
//ERP получает данные 
ИмяФайла = ПолучитьИмяВременногоФайла("mxl");
Данные.Записать(ИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла);
Возврат ТабДок;
Показать



&НаСервере
Функция 
ПолучитьДанныеС1СДокументооборот(уид)
	
	АдресДО = Константы.АдресВебСервиса1СДокументооборот.Получить();
	АдресСервиса = "ws/approvalsheet.1cws?wsdl";
	АдресWDSL = АдресДО + АдресСервиса;	
	ИмяПользователя = ПараметрыСеанса.ИнтеграцияС1СДокументооборотИмяПользователя;
	ПарольПользователя = ПараметрыСеанса.ИнтеграцияС1СДокументооборотПароль;
	
	Попытка
		WSПрокси = ОбщегоНазначения.WSПрокси(АдресWDSL,"ПростарнствоИмен","ИмяСервиса","ИмяТочкиПодключения",ИмяПользователя,ПарольПользователя);	
	Исключение
	    Сообщить ("Не удалось подключиться к 1С Документооборот");
		Возврат Неопределено;
	КонецПопытки;	
	
	ДвоичныеДанные = WSПрокси.get_sheet(уид);
	Возврат ДвоичныеДанные;
КонецФункции

Показать


На стороне 1С ДО Web сервис принимает строковый параметр ИД находит объект, формирует лист согласования и возвращает двоичные данные.


Функция get_sheet(уид)
ДанныеДляПечати = Новый Структура ("уид);
	ОбъектДО = ВерутьВнутреннийДокументПоУИД (уид);
	ЛистСогласования = ПечатьЛистаСогласованияИзДокумента(ОбъектДО,,Истина,ДанныеДляПечати);
	Возврат ЛистСогласования;	
КонецФункции


Функция ВерутьВнутреннийДокументПоУИД (уид)
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	СвязиОбъектовИнтегрированныхСистем.СсылкаНаОбъектДО
		|ИЗ
		|	РегистрСведений.СвязиОбъектовИнтегрированныхСистем КАК СвязиОбъектовИнтегрированныхСистем
		|ГДЕ
		|	СвязиОбъектовИнтегрированныхСистем.ИДВнешнегоОбъекта = &ИДВнешнегоОбъекта";
	
	Запрос.УстановитьПараметр("ИДВнешнегоОбъекта", уид);
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Возврат ВыборкаДетальныеЗаписи.СсылкаНаОбъектДО;
	КонецЦикла;
	
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
		
КонецФункции


Функция ПечатьЛистаСогласованияИзДокумента(МассивОбъектов, ОбъектыПечати = Неопределено, История = Ложь, СтруктураЗполнения)
	ОбъектыПечати = Новый СписокЗначений;
	// Создаем табличный документ и устанавливаем имя параметров печати
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.ИмяПараметровПечати = "ПараметрыПечати_ЛистСогласования";
	
	Если История = Истина Тогда 
		Макет = ПолучитьОбщийМакет("ПФ_MXL_ЛистСогласованияСИсторией");
	Иначе 
		Макет = УправлениеПечатью.МакетПечатнойФормы("БизнесПроцесс.Согласование.ПФ_MXL_ЛистСогласования");
	КонецЕсли;
	
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
	ОбластьИсполнителиШапка = Макет.ПолучитьОбласть("ИсполнителиШапка");
	ОбластьИсполнители = Макет.ПолучитьОбласть("Исполнители");
	Если История Тогда 
		ОбластьЗаголовокИстории = Макет.ПолучитьОбласть("ЗаголовокИстории");
	КонецЕсли;
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ВизыСогласования.Документ КАК Ссылка,
	|	ВизыСогласования.Исполнитель,
	|	ВизыСогласования.РольИсполнителя.Владелец КАК РольИсполнителя,
	|	ВизыСогласования.РольИсполнителя.ОсновнойОбъектАдресации КАК ОсновнойОбъектАдресации,
	|	ВизыСогласования.РольИсполнителя.ДополнительныйОбъектАдресации КАК ДополнительныйОбъектАдресации,
	|	ВизыСогласования.РезультатСогласования КАК РезультатСогласования,
	|	ВизыСогласования.ДатаИсполнения КАК ДатаИсполнения,
	|	СведенияОПользователяхДокументооборот.Должность.Представление КАК Должность,
	|	ВизыСогласования.Комментарий КАК РезультатВыполнения,
	|	ВизыСогласования.Источник,
	|	ВизыСогласования.ПомещенаВИсторию,
	|	ВизыСогласования.ДатаПомещенияВИсторию,
	|	ВизыСогласования.Порядок
	|ИЗ
	|	Справочник.ВизыСогласования КАК ВизыСогласования
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОПользователяхДокументооборот КАК СведенияОПользователяхДокументооборот
	|		ПО ВизыСогласования.Исполнитель = СведенияОПользователяхДокументооборот.Пользователь
	|ГДЕ
	|	ВизыСогласования.Документ В(&МассивОбъектов)
	|	И НЕ ВизыСогласования.ПометкаУдаления
	|	И НЕ ВизыСогласования.Удалена";
	
	Если Не История Тогда 
		Запрос.Текст = Запрос.Текст + "
		|И Не ВизыСогласования.ПомещенаВИсторию";
	КонецЕсли;
	
	Запрос.Текст = Запрос.Текст + "
		|УПОРЯДОЧИТЬ ПО
		|	ПомещенаВИсторию,
		|	ДатаПомещенияВИсторию УБЫВ
		|ИТОГИ ПО
		|	Ссылка ";
	
	Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
	
	Результат = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
	
 	ПервыйДокумент = Истина;
	Для Каждого СтрокаСсылка Из Результат.Строки Цикл
	
		Если Не ПервыйДокумент Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		ПервыйДокумент = Ложь;

		// Запомним номер строки с которой начали выводить текущий документ
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
		
		ТабличныйДокумент.Вывести(ОбластьЗаголовок);
		
		Предмет = СтрокаСсылка.Ссылка;
		Если ЗначениеЗаполнено(Предмет) Тогда
			ОбластьШапка.Параметры.Предмет = Предмет.Метаданные().ПредставлениеОбъекта 
				+ " """ + Строка(Предмет) + """";
				
			Если История Тогда 
				РеквизитыПредмета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Предмет,
					"Подготовил, Ответственный");
				Если ЗначениеЗаполнено(РеквизитыПредмета.Ответственный) Тогда 
					ОбластьШапка.Параметры.Ответственный = 
						СтрШаблон(НСтр("ru = 'Ответственный: %1'"), РеквизитыПредмета.Ответственный);
				Иначе 
					ОбластьШапка.Параметры.Ответственный = 
						СтрШаблон(НСтр("ru = 'Ответственный: %1'"), РеквизитыПредмета.Подготовил);
				КонецЕсли;
			КонецЕсли;

	ТабличныйДокумент.Вывести(ОбластьШапка);
	
	КонецЕсли;
		Если История Тогда 
			ТаблицаСроков = СтрокаСсылка.Строки;
			
			ДатаПомещенияВИсторию = Дата(1,1,1);
			ПериодИРезультат = ОпределитьПериодИРезультатЦиклаВизы(ТаблицаСроков, ДатаПомещенияВИсторию);
			ОбластьИсполнителиШапка.Параметры.Период = ПериодИРезультат.Период;
			ОбластьИсполнителиШапка.Параметры.РезультатСогласования = ПериодИРезультат.РезультатСогласования;
				
			ТабличныйДокумент.Вывести(ОбластьИсполнителиШапка);
			
			Для Каждого СтрокаИсполнитель Из СтрокаСсылка.Строки Цикл
				
				Если ДатаПомещенияВИсторию <> СтрокаИсполнитель.ДатаПомещенияВИсторию Тогда 
					
					Если Не ЗначениеЗаполнено(ДатаПомещенияВИсторию) Тогда 
						ТабличныйДокумент.Вывести(ОбластьЗаголовокИстории);
					КонецЕсли;
					
					ДатаПомещенияВИсторию = СтрокаИсполнитель.ДатаПомещенияВИсторию;
					
					ПериодИРезультат = ОпределитьПериодИРезультатЦиклаВизы(ТаблицаСроков, ДатаПомещенияВИсторию);
					ОбластьИсполнителиШапка.Параметры.Период = ПериодИРезультат.Период;
					ОбластьИсполнителиШапка.Параметры.РезультатСогласования = ПериодИРезультат.РезультатСогласования;
						
					ТабличныйДокумент.Вывести(ОбластьИсполнителиШапка);
				КонецЕсли;
				
				ОбластьИсполнители.Параметры.Заполнить(СтрокаИсполнитель);
				
				
				ТабличныйДокумент.Вывести(ОбластьИсполнители);
			КонецЦикла;
			
		Иначе 
			
			ТабличныйДокумент.Вывести(ОбластьИсполнителиШапка);
			
			Для Каждого СтрокаИсполнитель Из СтрокаСсылка.Строки Цикл
				ОбластьИсполнители.Параметры.Заполнить(СтрокаИсполнитель);
				
				Если ЗначениеЗаполнено(СтрокаИсполнитель.Исполнитель) Тогда 
					ОбластьИсполнители.Параметры.Исполнитель = СтрокаИсполнитель.Исполнитель;
					
					Если ЗначениеЗаполнено(СтрокаИсполнитель.РольИсполнителя) Тогда 
						ОтборСтрок = Новый Структура("Исполнитель", СтрокаИсполнитель.Исполнитель);
						НайденныеСтроки = СтрокаСсылка.Строки.НайтиСтроки(ОтборСтрок);
						Если НайденныеСтроки.Количество() > 1 Тогда // есть одинаковые исполнители
							ОбластьИсполнители.Параметры.Должность = СтрокаИсполнитель.РольИсполнителя;
						КонецЕсли;
					КонецЕсли;	
				Иначе
					ОбластьИсполнители.Параметры.Исполнитель = СтрокаИсполнитель.РольИсполнителя;
				КонецЕсли;	
				
				ТабличныйДокумент.Вывести(ОбластьИсполнители);
			КонецЦикла;
		КонецЕсли;
		
		// В табличном документе зададим имя области в которую был 
		// выведен объект. Нужно для возможности печати по-комплектно.
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 
			НомерСтрокиНачало, ОбъектыПечати, СтрокаСсылка.Ссылка);
	КонецЦикла;
	
	ИмяФ = ПолучитьИмяВременногоФайла("mxl");
	ТабличныйДокумент.Записать(ИмяФ,ТипФайлаТабличногоДокумента.MXL);
	ДД = Новый ДвоичныеДанные (ИмяФ);
	Возврат ДД;
//	Возврат ТабличныйДокумент;
	
КонецФункции


Показать


Вот собственно и все, как видите все можно сделать, в том числе и распечатать лист согласования на стороне 1С ERP
nnickname; +1 Ответить
Оставьте свое сообщение