Ошибка запуска процесса возврат обработказапросовxdto обработать универсальное сообщение запрос

+ к (1) , кроме этого в журнал регулярно падает ошибка

Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено.

Ошибка блокировки объекта. Объект уже заблокирован:

пользователь: Администратор, сеанс: 761692, начат: 07.02.2020 в 17:00:58, приложение: WS-соединение

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(3680)}:  ОбъектДО.Заблокировать();

{ОбщийМодуль.ОбработкаЗапросовXDTO.Модуль(2031)}:       СсылкаДО = ОбработкаЗапросовXDTOДокументы.НайтиСоздатьПользователя(ЗначениеСвойстваXDTO);

{ОбщийМодуль.ОбработкаЗапросовXDTO.Модуль(517)}:                НовоеЗначение = НайтиСоздатьВнешнийОбъект(ЗначениеСвойстваXDTO);

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(7889)}:  ОбработкаЗапросовXDTO.ЗаполнитьРеквизитИзСвойстваXDTO(ДокументОбъект.Ответственный, ОбъектXDTO, «responsible»);

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(1785)}:  ЗаполнитьОбщиеДанныеДокумента(ДокументОбъект, ОбъектXDTO);

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(1680)}:  ЗаполнитьДанныеВнутреннегоДокумента(Документ, ОбъектXDTO);

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(1324)}:      Если Не ЗаписатьДанныеВнутреннегоДокумента(Документ, Объект, Ошибка) Тогда

{ОбщийМодуль.ОбработкаЗапросовXDTOОбмен.Модуль(155)}:           Результат = ОбработкаЗапросовXDTOДокументы.ИзменитьВнутреннийДокумент(Объект, Ложь);

{ОбщийМодуль.ОбработкаЗапросовXDTOКорп.Модуль(56)}:         Возврат ОбработкаЗапросовXDTOОбмен.ЗаписатьИзмененияОбъектов(Сообщение);

{ОбщийМодуль.ОбработкаЗапросовXDTOПереопределяемый.Модуль(481)}:    Возврат ОбработкаЗапросовXDTOКорп.ОбработатьУниверсальноеСообщение(Сообщение);

{ОбщийМодуль.ОбработкаЗапросовXDTO.Модуль(19)}:     Результат = ОбработкаЗапросовXDTOПереопределяемый.ОбработатьУниверсальноеСообщение(Сообщение);

{WebСервис.DMService.Модуль(4)}:    Возврат ОбработкаЗапросовXDTO.ОбработатьУниверсальноеСообщение(Запрос);

по причине:

Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено.

Ошибка блокировки объекта. Объект уже заблокирован:

пользователь: Администратор, сеанс: 761692, начат: 07.02.2020 в 17:00:58, приложение: WS-соединение

Содержание:

1.    Обмен данными в 1С с технической точки зрения

2.    Отладка выражений на встроенном языке 1С

Если верить популярности запросов, то самая встречающаяся проблема, с которой сталкиваются специалисты при таком обмене, — это возвращение изменений в исходный документ.  

1.    Обмен данными в 1С с технической точки зрения

Для начала стоит сразу объяснить, как обмен работает с технической точки зрения.

В конфигурации (допустим 1С:УХ) создается документ, у которого настроено правило интеграции, при нажатии на вкладку документооборот создается иллюзия того, что вы открываете базу Документооборота. На самом деле вы просто авторизуетесь в документообороте и забираете данные, которые раскладываются в форме 1С:УХ повторяющие форму ДО. Так проходит односторонний обмен. Вы можете создавать и обновлять документы ДО из вашей конфигурации. Но как проходит возврат данных в 1С:УХ, ведь мы даже не указываем в ДО адрес нашей второй конфигурации? Все очень просто, в ДО есть регистр сведений, куда он записывает изменения для выгрузки в другие конфигурации, проходит эта запись благодаря регламентному заданию «Формирование сообщений обмена для интегрированных систем». В то же время в УХ есть регламентное задание «Интеграция с 1С:Документооборотом — Выполнить обмен данными» которое авторизуется в ДО и проверяет этот регистр. Если там есть сообщения, то он обновляет документы.

Исходя из такой схемы работы, на тестовом контуре чаще всего ошибка заключается в том, что при копировании базы Документооборота (а чаще всего это просто копии) базы блокируют все регламентные задания в 1С, связанные с внешним миром. Чтобы не нарушать работу основной базы, и для того, чтобы обмен работал сам, необходимо разрешить использование регламентных заданий в 1С. Как только вы откроете обработку «фоновые и регламентные задания в 1С» вы увидите соответствующую кнопку. Внимание: проверьте есть ли в этой конфигурации настроенные синхронизации и выключены ли такие регламентные задания как оповещения, если синхронизации есть их стоит удалить, а регламентные задания выключить.  

2.    Отладка выражений на встроенном языке 1С

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

Но не все так плохо — можно подсмотреть в отладке 1С на его исполнение. Для этого в своей второй конфигурации (не ДО) необходимо найти Общий модуль «ОбщегоНазначения» а в нем функцию «ВыполнитьВБезопасномРежиме». Именно в этой функции происходит выполнение нашего кода. Если поставить, например, на возврате точку остановы, мы сможем посмотреть, какие параметры пришли и какой код выполняется. Если продвинемся на пару шагов вперед, то увидим, какой результат вышел в итоге. К тому же не запрещается на время отладки в 1С размещать что-то «подсказывающее»: где конкретно процесс оборвался, в случае сложных логических цепочек можно разместить, например, функцию ЗаписьЖурналаРегистрации.

Реквизит, который я указал не заполняются – это очень распространенная ошибка. Но в 90% случаев решается она очень просто: у реквизита, который не заполняется, необходимо проставить галку «Заполнять из данных заполнения». Если это не помогает, то тут универсального ответа нет, нужно проверять тип заполнения. Для теста можно проверить заполнение из другого реквизита и т.д.

Как передать ссылку через встроенный язык 1С?

Вот тут начинаются сложности. При передаче результата достаточно его просто вписать, но если результат ссылочный, то результатов три:

Параметры.Результат — необходимо заполнить. Можно заполнить наименованием по ссылке. Если будет пустой, то все другие результаты не сохранятся.

Параметры.РезультатID — сама ссылка на объект. Достать ее будет сложной задачей.

Параметры.РезультатТип – тип ссылки, передается строкой из XDTO – DM.

Как передаются ссылки в целом?

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

Как включить свой реквизит в бесшовную интеграцию

1.    На стороне ИС

1.    В модуле менеджера справочника Правила интеграции прописать новый реквизит в метод ПолучитьРеквизитыОбъектаДО

2.    При необходимости работать с данным реквизитом интерактивно на стороне ИС нужно вынести его на форму и обеспечить его заполнение в методе Справочники.ПравилаИнтеграцииС1СДокументооборотом. СоответствиеСвойствXDTOиРеквизитовФормыОбъектаДО или в процедуре ПрочитатьОбъектВФорму в форме документа БИД.

2.    На стороне ДО

1.     Добавить реквизит в XDTO пакет DM в DMDocument или в DM<…>Document

2.     При необходимости добавить реквизит в метод ОбработкаЗапросовXDTO. СоответствиеСвойствXDTOРеквизитамПоиска

3.     В ОМ ОбработкаЗапросовXDTOДокументы прописать заполнение и получение данного реквизита из объекта XDTO в методы ПолучитьДанные<…>Документа, ЗаполнитьДанные<…>Документа

Специалист компании ООО «Кодерлайн»

Барабанов Роман

Типовые проблемы при работе с внешней обработкой

Типовые проблемы при работе с внешней обработкой

Если при работе с модулем интеграции для 1С возникла ошибка, появится уведомление.

Проблемы при запуске внешней обработки

  • Не получен ответ от плагина
  • Ошибка работы с файловой системой или Не найден объект
  • Ошибка при создании COM-объекта
  • Протокол проверки установленных ini файлов
  • Установлен безопасный режим
  • Нарушение прав доступа
  • Ошибка авторизации при вызове RPC-функции
  • Не зарегистрирована ActiveX компонента СБИС SDK

Проблемы при работе с документами

  • В некоторых файлах обнаружены ошибки. Отправка с ошибками запрещена
  • Дата документа обязательна при наименовании документа отличном от прочерка
  • Не передан идентификатор ответственного
  • Неверное значение ИНН/КПП получателя
  • Отсутствует сертификат ЭЦП для утверждения/отклонения пакета документов
  • Ошибка в адресе организации
  • Ошибка в атрибуте ОКЕИ_Тов
  • Ошибка при обработке запроса расширением или Выдано исключение System.OutOfMemoryException
  • Произошла исключительная ситуация
  • При создании новой редакции не допускается смена регламента
  • Указанный отправитель не является нашей организацией
  • У вас нет прав на создание документов
  • Не найдена организация
  • Не найден контрагент
  • Не найден документ с идентификатором. Не удалось получить ссылку на документ
  • Номенклатура должна принадлежать какой-либо папке! Укажите группу номенклатуры!
  • Объект не поддерживает свойство или метод GetElementsByClassName
  • В личном кабинете не появились документы
  • Внешняя обработка медленно отправляет документы
  • В документе отображаются нечитаемые символы
  • Не выгружаются коды маркировки
  • Некорректно выгружается адрес из 1С
  • Не заполняется договор

Внешняя обработка

Ошибка 1С

Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.

Клиент поймал довольно странную ошибку при работе в 1С. При этом отследить её было проблематично. Она могла возникнуть в любой момент: при работе с документами или же просто в режиме ожидания.

Из дальнейших действий — «Перезапустить» или «Завершить». В общем, неудобно и бесит, когда трудишься по своей задаче. А тут еще работу в открытом сеансе потерять можно.

Полный текст ошибки:
Неспецифицированная ошибка работы с ресурсом
Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
Недостаточно свободной памяти для выполнения операции

Неспецифицированная ошибка работы с ресурсом

Конфигурация среды

Обычная локальная сеть с роутером и подключенными станциями по «проводу» (100 Мбит/сек). Файловая база 1С:УНФ опубликована через веб-сервер Apache. Основной ПК и клиенты на базе ОС Windows 10.

Подключение к ИБ с помощью тонкого клиента по протоколу http. Одновременных подключений к базе — до 3-х человек. Ошибка появляется на удаленных ПК, которые соединяются с Apache.

Как исправить ошибку

Что можно сделать в этом случае. Разберем несколько рекомендаций — они разные и могут показаться странными — но все-таки проверьте. Вдруг какая-то из них окажется полезной и закроет ошибку.

В ошибке указывается, что недостаточно свободной памяти. Если вы обладаете ресурсом, чтобы увеличить объем ОЗУ на сервере — сделайте это. Конечно, там свои тонкости и нюансы. Проверьте — не помешает.

Внимание; перед любыми изменениями обязательно сделайте контрольную точку системы (бэкап) и резервную копию ИБ для подстраховки.

Рекомендации

1. Перезапустите службу Apache на основном ПК.
В качестве быстрого решения в моменте.

2. Очистите локальный кэш на станциях.

3. Выполните проверку и переиндексацию БД (ТиС). Опционально — сократите журнал регистрации (ЖР).

4. Отключите ipv6 на ПК с опубликованной базой.

5. Увеличьте объем оперативной памяти, доступной пользователю.
Для Windows Vista, Windows 7, Windows Server 2008 выполните команду от имени администратора:

bcdedit /set increaseuserva 2560 //если у вас установлено 3 Гб ОЗУ
bcdedit /set increaseuserva 3072 //если у вас установлено 4 Гб ОЗУ

Чтобы вернуть параметры по умолчанию, для отмены вышеуказанных настроек выполните в консоли команду:

bcdedit /deletevalue increaseuserva
bcdedit /deletevalue {current} increaseuserva //если использовался параметр {current}

Для Windows XP, Windows Server 2003 настраивается через изменение файла boot.ini. Будьте осторожны. В конце каждой строки под заголовком [Operating Systems] после команды /fastdetect (или любой другой команды, которая идет последней) добавьте следующие параметры:

/3GB /userva=2560 //если у вас установлено 3 Гб ОЗУ
/3GB //если у вас установлено 4 Гб ОЗУ

Например,
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=»Windows XP Professional» /fastdetect /3GB /userva=2560

6. Если допустимо — перейдите на x64-версии 1С.

7. Замените веб-сервер Apache на типовой Microsoft IIS.

8. Обновите платформу.
Фирма «1С» указала на то, что проблема наблюдается в релизах технологической платформы, начиная с 8.3.16.1791, 8.3.17.1823, 8.3.18.1201.

С информационного портала 1С:
«Ошибка исправлена в версиях платформы начиная с 8.3.17.2231 и 8.3.18.1483. Фирма «1С» приносит извинения пользователям, у которых проявилась указанная проблема. Для ее устранения предлагаем обновиться на указанные версии платформы или последующие», – говорится на официальном сайте.

✅ Успехов вам!

__________
Не получается? Зовите на помощь ИТ-специалиста или обратитесь с нашим джедаям техподдержки → +7-911-500-10-11

Ошибка 405 и 500 в HTTP сервисе 1С. Поиск и устранение.

Добрый день, хотел поделиться с вами результатом преодоления этих ошибок при работе с http сервисами 1С. С данной ошибкой мне пришлось столкнуться при переписывании мобильного приложения с web сервисов на http. Ошибка возникала при отправке http сервису POST запроса.

Ошибка 405

При работе с некорректным HTTP сервисом из мобильного приложения возвращалась ошибка 405, которая указывает на конкретную проблему. «405 Method Not Allowed — указанный клиентом метод нельзя применить к текущему ресурсу.» Долго не мог разобраться с данной ошибкой, так как в сервисе запрос был разрешен и шаблоны были настроены корректно.

Ошибка 500

При работе с некорректным HTTP сервисом из внешних программ возвращалась ошибка 500, которая ни о чем конкретном не говорит. «500 Internal Server Error — любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса».

Ошибка 500

Ошибка 405

Вроде HTTP сервис один, а при использовании запросов к нему из разных программ возвращались разные ошибки.

Расследование ошибок 405 и 500 в HTTP сервисе 1С

Времени на выяснение причин ушло очень много. За несколько дней до этой задачи мною были проведены десятки экспериментов по сборке и настройке web сервера apache 2.4 x64 SSL для работы с 1С. Все настройки в основном были связаны с кросс доменными запросами из web приложения на javascript. Столкнувшись с ошибками 405 и 500 на другом проекте я сразу полез в дебри конфигурации apache. После полного удаления apache поставил IIS и на нем вышла такая же ошибка. Поднял на виртуальной машине чистую систему, попробовал apache и iss, но ошибка так и проявлялась. Потом я вспомнил, что одна функция мобильного приложения уже давно использует http сервис и там все прекрасно работает. Создал http сервис с базовыми настройками и все заработало.

Ошибка 405

Как только я переносил код из web сервиса в функции http сервиса, сразу появлялись ошибки. Самое интересное, что отладка не срабатывала, т.е. POST запрос в пустую функцию приходил и отрабатывал, а в функцию с кодом нет.

Ошибка 405

На многих форумах ошибку 405 описывают как ошибку доступа, либо не корректную настройку http сервиса.

Итог разбора ошибок 405 и 500 в HTTP сервисе 1С.

В итоге все оказалось довольно просто. Функция, которая вызывалась внутри функции http сервиса 1с не могла быть вызвана из данного модуля. Странно, что при сохранении конфигурации никакой ошибки на вызов отсутствующей функции не было. Возможно это глюк версии платформы и будет доработан. При использовании web сервисов, даже если код внутри функции был не корректный, отладка работала. В http сервисе сразу идет возврат с ошибками 405 или 500.

P.S. В последней версии платформы ошибка 405 перестала выходить.

Обновление 12.01.2019

В процессе работы часто приходится сталкиваться с ошибками 405 и 500 в HTTP сервисах. Но проблема в 99% случаев в коде сервиса. Возможно это не явно, код вас может уводить глубоко в другие модули, но решение надо искать именно там.

Сейчас у меня такие ошибки начинают и в рабочих проектах. Стоит только внести небольшое изменение которое вызывает исключительную ситуацию, как вы получите ошибку 500. Мобильный клиент ведет себя еще более странно и отловить реальную ошибку очень тяжело, особенно когда переделывает чужие формы под мобильный клиент.

В данный момент я начинаю с того, что отключаю вызов всех функций и процедур начиная со входа в обработчики HTTP сервиса и смотрю как проходят запросы. Если все хорошо, то я начинаю включать код небольшими кусочками и проверять работу сервиса. Данный метод не самый быстрый, но дает 100% результат.

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

+ к (1) , кроме этого в журнал регулярно падает ошибка

Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено.

Ошибка блокировки объекта. Объект уже заблокирован:

пользователь: Администратор, сеанс: 761692, начат: 07.02.2020 в 17:00:58, приложение: WS-соединение

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(3680)}:  ОбъектДО.Заблокировать();

{ОбщийМодуль.ОбработкаЗапросовXDTO.Модуль(2031)}:       СсылкаДО = ОбработкаЗапросовXDTOДокументы.НайтиСоздатьПользователя(ЗначениеСвойстваXDTO);

{ОбщийМодуль.ОбработкаЗапросовXDTO.Модуль(517)}:                НовоеЗначение = НайтиСоздатьВнешнийОбъект(ЗначениеСвойстваXDTO);

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(7889)}:  ОбработкаЗапросовXDTO.ЗаполнитьРеквизитИзСвойстваXDTO(ДокументОбъект.Ответственный, ОбъектXDTO, «responsible»);

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(1785)}:  ЗаполнитьОбщиеДанныеДокумента(ДокументОбъект, ОбъектXDTO);

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(1680)}:  ЗаполнитьДанныеВнутреннегоДокумента(Документ, ОбъектXDTO);

{ОбщийМодуль.ОбработкаЗапросовXDTOДокументы.Модуль(1324)}:      Если Не ЗаписатьДанныеВнутреннегоДокумента(Документ, Объект, Ошибка) Тогда

{ОбщийМодуль.ОбработкаЗапросовXDTOОбмен.Модуль(155)}:           Результат = ОбработкаЗапросовXDTOДокументы.ИзменитьВнутреннийДокумент(Объект, Ложь);

{ОбщийМодуль.ОбработкаЗапросовXDTOКорп.Модуль(56)}:         Возврат ОбработкаЗапросовXDTOОбмен.ЗаписатьИзмененияОбъектов(Сообщение);

{ОбщийМодуль.ОбработкаЗапросовXDTOПереопределяемый.Модуль(481)}:    Возврат ОбработкаЗапросовXDTOКорп.ОбработатьУниверсальноеСообщение(Сообщение);

{ОбщийМодуль.ОбработкаЗапросовXDTO.Модуль(19)}:     Результат = ОбработкаЗапросовXDTOПереопределяемый.ОбработатьУниверсальноеСообщение(Сообщение);

{WebСервис.DMService.Модуль(4)}:    Возврат ОбработкаЗапросовXDTO.ОбработатьУниверсальноеСообщение(Запрос);

по причине:

Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено.

Ошибка блокировки объекта. Объект уже заблокирован:

пользователь: Администратор, сеанс: 761692, начат: 07.02.2020 в 17:00:58, приложение: WS-соединение

Содержание:

1.    Обмен данными в 1С с технической точки зрения

2.    Отладка выражений на встроенном языке 1С

Если верить популярности запросов, то самая встречающаяся проблема, с которой сталкиваются специалисты при таком обмене, — это возвращение изменений в исходный документ.  

1.    Обмен данными в 1С с технической точки зрения

Для начала стоит сразу объяснить, как обмен работает с технической точки зрения.

В конфигурации (допустим 1С:УХ) создается документ, у которого настроено правило интеграции, при нажатии на вкладку документооборот создается иллюзия того, что вы открываете базу Документооборота. На самом деле вы просто авторизуетесь в документообороте и забираете данные, которые раскладываются в форме 1С:УХ повторяющие форму ДО. Так проходит односторонний обмен. Вы можете создавать и обновлять документы ДО из вашей конфигурации. Но как проходит возврат данных в 1С:УХ, ведь мы даже не указываем в ДО адрес нашей второй конфигурации? Все очень просто, в ДО есть регистр сведений, куда он записывает изменения для выгрузки в другие конфигурации, проходит эта запись благодаря регламентному заданию «Формирование сообщений обмена для интегрированных систем». В то же время в УХ есть регламентное задание «Интеграция с 1С:Документооборотом — Выполнить обмен данными» которое авторизуется в ДО и проверяет этот регистр. Если там есть сообщения, то он обновляет документы.

Исходя из такой схемы работы, на тестовом контуре чаще всего ошибка заключается в том, что при копировании базы Документооборота (а чаще всего это просто копии) базы блокируют все регламентные задания в 1С, связанные с внешним миром. Чтобы не нарушать работу основной базы, и для того, чтобы обмен работал сам, необходимо разрешить использование регламентных заданий в 1С. Как только вы откроете обработку «фоновые и регламентные задания в 1С» вы увидите соответствующую кнопку. Внимание: проверьте есть ли в этой конфигурации настроенные синхронизации и выключены ли такие регламентные задания как оповещения, если синхронизации есть их стоит удалить, а регламентные задания выключить.  

2.    Отладка выражений на встроенном языке 1С

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

Но не все так плохо — можно подсмотреть в отладке 1С на его исполнение. Для этого в своей второй конфигурации (не ДО) необходимо найти Общий модуль «ОбщегоНазначения» а в нем функцию «ВыполнитьВБезопасномРежиме». Именно в этой функции происходит выполнение нашего кода. Если поставить, например, на возврате точку остановы, мы сможем посмотреть, какие параметры пришли и какой код выполняется. Если продвинемся на пару шагов вперед, то увидим, какой результат вышел в итоге. К тому же не запрещается на время отладки в 1С размещать что-то «подсказывающее»: где конкретно процесс оборвался, в случае сложных логических цепочек можно разместить, например, функцию ЗаписьЖурналаРегистрации.

Реквизит, который я указал не заполняются – это очень распространенная ошибка. Но в 90% случаев решается она очень просто: у реквизита, который не заполняется, необходимо проставить галку «Заполнять из данных заполнения». Если это не помогает, то тут универсального ответа нет, нужно проверять тип заполнения. Для теста можно проверить заполнение из другого реквизита и т.д.

Как передать ссылку через встроенный язык 1С?

Вот тут начинаются сложности. При передаче результата достаточно его просто вписать, но если результат ссылочный, то результатов три:

Параметры.Результат — необходимо заполнить. Можно заполнить наименованием по ссылке. Если будет пустой, то все другие результаты не сохранятся.

Параметры.РезультатID — сама ссылка на объект. Достать ее будет сложной задачей.

Параметры.РезультатТип – тип ссылки, передается строкой из XDTO – DM.

Как передаются ссылки в целом?

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

Как включить свой реквизит в бесшовную интеграцию

1.    На стороне ИС

1.    В модуле менеджера справочника Правила интеграции прописать новый реквизит в метод ПолучитьРеквизитыОбъектаДО

2.    При необходимости работать с данным реквизитом интерактивно на стороне ИС нужно вынести его на форму и обеспечить его заполнение в методе Справочники.ПравилаИнтеграцииС1СДокументооборотом. СоответствиеСвойствXDTOиРеквизитовФормыОбъектаДО или в процедуре ПрочитатьОбъектВФорму в форме документа БИД.

2.    На стороне ДО

1.     Добавить реквизит в XDTO пакет DM в DMDocument или в DM<…>Document

2.     При необходимости добавить реквизит в метод ОбработкаЗапросовXDTO. СоответствиеСвойствXDTOРеквизитамПоиска

3.     В ОМ ОбработкаЗапросовXDTOДокументы прописать заполнение и получение данного реквизита из объекта XDTO в методы ПолучитьДанные<…>Документа, ЗаполнитьДанные<…>Документа

Специалист компании ООО «Кодерлайн»

Барабанов Роман

При входе в базу 1с вы можете увидеть “Ошибка преобразования данных XDTO:

Начало Свойства: errorProcessingSettings

Форма: Элемент

Тип: {http://v8.1c.ru/8.2/managed-application/core}ErrorProcessingSettings по причине

Чаще всего ошибка возникает при определенном типе запуска: это либо через тонкий клиент, либо через линк42, случаи бывают разные. Через браузер такие базы запускаются без ошибок.

Есть простое решение данной проблемы.

Достаточно запустить базу доступным нам способом (где нет ошибки) включить Функции тех. специалиста (Меню — Настройки — Параметры — Режим технического специалиста)

В Функциях для технического специалиста ищем Управление настройками обработки ошибок (Стандартные)

Запускаем

Готово!

Уже более 10 000 компаний работают
в облачной 1С от 42Clouds

— Консультация по 1С Бесплатно!

— Поддержка 24/7 по техническим вопросам: в чате, по телефону, по почте

— Все типовые конфигурации онлайн, доступ через RDP, Remote App, Web

  • /
  • /
  • /

Оглавление

Интеграция с 1С Документооборот: стандартная реализация

Для тех, кто ещё не сталкивался с библиотекой интеграции с 1С: Документооборот — это подсистема, внедряемая в типовые прикладные решения на базе 1С (ERP, БП, УТ и пр.) и позволяющая бесшовно интегрировать эти решения с 1С:ДО, работать пользователю в конфигурации, взаимодействуя с системой документооборота напрямую, в режиме единого окна.

При этом, в интегрируемых документах системы появляется ссылка «Документооборот», перейдя по которой можно создать или посмотреть / изменить соответствующий документ в документообороте (Рис. 1)

Рис. 1 Просмотр документа

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

Так в чем же проблема?

А проблема в том, что зачастую, эти удобства заканчиваются, когда в 1С:ДО появляются все новые и новые виды документов, внешний вид и состав реквизитов каждого из которых значительно отличаются друг от друга. В библиотеке интеграции предусмотрена лишь одна форма для интерпретации документа ДО и её внешний вид и состав никак не зависит от настроек соответствующего документа в ДО (Рис. 2,3,4)

Рис. 2 Форма внутреннего документа в 1С Документооборот

бесшовная интеграция с 1с документооборот erp

Рис.3 Интегрированная форма в 1С ЕРП, закладка «Реквизиты»

Рис.4 Интегрированная форма в 1С ЕРП, закладка «Свойства»

Какие есть варианты решения?

ВАРИАНТ 1

Бесшовная интеграция 1С Документооборот с доработкой стандартной библиотеки

Для того, что бы улучшить восприятие пользователя, и доработать стандартное поведение формы интеграции напрашивается решение: доработать подсистему интеграции на стороне прикладного решения так, чтобы для каждого вида документа была предусмотрена отдельная форма со своими соответствующими настройками.

Однако данный вариант имеет ряд значительных недостатков:

Во — первых, это не гибкое решение, при появлении новых видов документов в ДО, придется каждый раз обращаться в конфигуратор и создавать новую форму интеграции;

Во — вторых, это значительные изменения самой библиотеки, что в дальнейшем сильно скажется на трудоёмкости проведения процедуры обновления;

ВАРИАНТ 2

Реализовать отображение внутренних документов программы 1С:Документооборот в интегрируемой системе через веб-интерфейс

В 1С есть две интересные возможности: работа с программой в веб — интерфейсе и поле html документа для отображения веб — страниц.

Отсюда второе решение, о котором и пойдёт речь в данной статье: почему бы не отобразить документ системы 1С Документооборот прямо в окне интегрируемой конфигурации?

Забегая вперед, давайте посмотрим на получившийся результат на примере бесшовной интеграции 1С:Документооборот с 1С:ERP (Рис. 5)

настройка бесшовной интеграции 1с ерп и документооборот

Рис.5 Документ 1C:ДО, открытый в 1С:ERP через веб-клиент

Принцип работы

В интегрируемой системе (далее ИС) добавим общую форму, которая будет служить «окном» в наш ДО. При открытии ИС будем загружать в эту форму 1С:Документооборот через веб-интерфейс со специальным параметром. В течении всей работы пользователя в ИС эта форма будет открыта

При переходе по ссылке «Документооборот» (см. рис. 1) на интегрируемых документах будем переопределять открытие стандартной формы интеграции на добавленную форму: будем отправлять свой запрос в ДО, используя стандартный функционал подключения библиотеки интеграции.

Данным запросом запишем в ДО в специально подготовленную таблицу (например, регистр сведений) информацию о документе (ссылку), который мы хотим открыть.

В 1С:Документооборот, если он открыт со специальным параметром и через веб-интерфейс, подключаем обработчик ожидания, который будет с определенной периодичностью считывать данные регистра сведений и как только там появляется запись, содержащая ссылку на документ, будем открывать его.

В это время на стороне ЕРП окно с формой, в которой открыт Документооборот активизируется и в нем отображается нужный документ.

Инструкция по доработке

Доработки на стороне 1С Документооборот:

Добавляем регистр сведений «ВнутренниеДокументыДляОткрытияИзИС«, который будет хранить ссылки на документы, открываемые пользователем на стороне ИС. Регистр независимый, непериодический. Структура регистра:

где:
ВнутреннийДокумент — СправочникСсылка.ВнутренниеДокументы
Пользователь — СправочникСсылка.Пользователи

В модуле приложения объявляем глобальную переменную:

В процедуре «ПередНачаломРаботыСистемы«, если ПараметрЗапуска = «OpenWithWeb«, то нашей глобальной переменной присваиваем значение истина и устанавливаем режим открытия окна ВстроенноеРабочееМесто:

В процедуре ПриНачалеРаботыСистемы подключаем обработчик ожидания

Данный обработчик ожидания мониторит регистр сведений «ВнутренниеДокументыДляОткрытияИзИС«. После успешного открытия документа, запись регистра сведений очищается:

В форме элемента справочника «Внутренние документы» анализируем значение глобальной переменной «ОткрытВебКлиентВ_ИС» в процедуре «ПриОткрытии«. Если значение Истина, то в документе скрываем кнопку закрытия, скрываем кнопку «Записать и закрыть«, скрываем заголовок:

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

В XDTO пакете «DM» создаем два новых типа объекта: «DMRetrieveRequest_» и «DMRetrieveRespons_«. Пакет «DMRetrieveRequest_» содержит идентификатор внутреннего документа Документооборота, который открывается на стороне ИС:

Пакет «DMRetrieveRespons» пустой.

В общий модуль «ОбработкаЗапросовXDTO» добавляем ветку для обработки пакета «DMRetrieveRequest_» в функцию «ОбработатьУниверсальноеСообщение«:

Функция «ЗаписатьВРегистрСведенийДляИС«производит запись внутреннего документа, который пользователь открывает на стороне ИС:

и возвращает пакет «DMRetrieveRespons» в случае успешной записи или пакет «DMError» в случае возникновения какой либо ошибки

Доработки на стороне интегрируемой системы, на примере конфигурации 1С: ERP 2.4:

Добавляем общую форму «ВнутреннийДокументДО_ИС«, на которую выносим поле HTML документа. При открытии формы передаем в это поле ссылку для открытия 1С Документооборот с параметром «OpenWithWeb»

В персональные настройки пользователя добавляем настройку «Отображать документы ДО через веб-интерфейс» (как это сделать, здесь описывать не будем):

Если у пользователя эта настройка установлена, то при открытии программы открывается общая форма, в которой в свою очередь, в поле HTML документа открывается окно 1С Документооборот. Реализовано через доработку модуля приложения:

Объявляется глобальная переменная «ФормаВебКлиентаДО«, которая будет хранить общую форму ФормаВебКлиентаДО_ИС с открытым Документооборотом.
В обработке «ИнтеграцияС1СДокументооборот» в формах «Задачи» и «Задачи мне» в событии открытия документа вызывается процедура «ОткрытьОбъект» общего модуля «ИнтеграцияС1СДокументооборотКлиент». Ее дорабатываем:

Процедура обработки оповещения общей формы выглядит так:

Теперь, когда мы хотим открыть документ программы 1С:Документооборот в интегрируемой конфигурации, у нас открывается веб страница с открытой программой 1С:Документооборот, в которой уже открыт документ. Работая с документом, мы работаем не в интегрируемой системе, а непосредственно в 1С:Документооборот, не используя бесшовную интеграцию.

Желаем вам быстрой и удобной интеграции 1C:Документооборот!

Можем помочь

У вас есть задачи по бесшовной интеграции 1С:ДО? Напишите нам.

Заполните анкету, мы свяжемся с вами в ближайшее время

  • Ошибка запуска программы linux
  • Ошибка запуска программы 0xc0000142
  • Ошибка запуска программы 0xc000007b
  • Ошибка запуска хранилища атол драйв 5
  • Ошибка запуска хитман абсолюшен