Дано: Платформа 1С 8.3.14.1565.
Конфигурация: ЗУП 3.1.
Клиент-серверный вариант.

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

Алгоритмы обмена и прочая мишура взяты с оф. сайта BITRIX. Сам процесс обмена выполняется без ошибок, доходит до момента, когда входящие данные обрабатываются сайтом, а 1С опрашивает текущее состояние. Прерывание процесса происходит спонтанно, регламентных заданий по обмену нет вообще.

Для тестирования создал обработку, с полем для выбора узла обмена и кнопкой "выполнить обмен":

В ходе тестирования выяснилось, что процесс начинается с серверного вызова:

Запуск обмена по кнопке начинается с вызова клиентской процедуры в модуле формы(что вполне ожидаемо).

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

Никто не сталкивался?

Для меня это пока выглядит как мистика, либо очередной глюк платформы 1С.
---
7200 - это как раз 2 часа! Если рабочий процесс был создан ранее начала выполнения обмена - как раз и упадет раньше. Регламентные задания и фоновое выполнение задач - разные вещи. Все сходиться в пользу моей версии. Можно попробовать перезапуск до суток увеличить - 86400 или вообще отключить - 0 тогда будет точно ясно в этом дело или нет!
---
в чем конкретно мистика - то Сам процесс обмена выполняется без ошибок,
мистика, что без ошибок и при этом это 1с? повтор кода может быть не только из-за регламентного задания но и обработчиков ожидания
---
Перезалил скрины:

Дубль темы:
https://forum.infostart.ru/forum9/topic224056/
---
Никто не сталкивался?
 а если всем запретить выполнение регламентных, оставить только себе
---
Каким образом это сделать?
---
```1c
    /AllowExecuteScheduledJobs –Off
```
 но нужно это у всех юзеров в командной прописать, иначе понту ноль будет
---
я вообще запрещал регламентные задания через консоль кластера 1С, никак не влияет.
---
Да нет обработчиков ожидания, внешняя обработка создана с нуля только для тестирования обмена.
Либо рассказывайте, как искать этот самый обработчик ожидания.
---
Судя по описанному Вами поведению, регламентное задание 1С завершается аварийно и запускается повторно. Попробуйте установить количество повторов равным 0 в настройках регламентного задания.
---
нет. Все работает без привлечения регламентных заданий. Нажимаю кнопку на форме внешней обработки, вызывается серверный метод ВыполнитьОбмен() и все.
---
Попробуй для эксперимента заблокировать выполнение рег заданий на сервере и посмотри будет повторно запускаться или нет.
---
Даже если не будет, как мне побороть произвольный запуск при работающих регламентных заданиях? :)
Выключать регламентные задания совсем на рабочей БД нельзя.
---
Для начала бы убедится в этом дело или нет.
---
Проверил. Проблема не в регламентных заданиях. У меня еще больше вопросов появилось........

В логе обмена все выглядить вот так:

Список используемых регл. заданий:

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

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

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

НаСервере/НаСервереБезКонтекста - абсолютно без разницы, изначально было НаСервере, я уж подумал, мож форма чего чудит, убрал контекст, ничего не поменялось.

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

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

Даже если бы работали фоновые задания или исключения, оно бы из обработки не запускалось, а запускалось бы из какого-то другого места и конкурировало бы за файл лога.
---
Ну да, что-то я не внимательно прочитал, что запускается из той же формы.
Пробовал выполнить обмен на копии базы - выполняется корректно, до завершения. В копии все регламентные выключены. - там платформа та же и вариант клиент-серверный?
---
Версии платформы - одинаковые, так же клиент-сервер. Сама база на другом SQL сервере и сервере 1С, естественно.
---
тогда какой-то локальный глюк. Дальше только танцы с бубном: почистить кэш, переписать процедуру и прочее. Кстати, насчет проверки кэша, под другим пользователем каким-нибудь, не пробовали запускать?
---
Кэш чистил - без изменений вообще.
Попробую под другим пользователем еще пустить.....
---
А если в функции которая запускает обмен выполнять проверку на уже запущенные задания обмена? Ну или если есть возможность поставить режим отладки, то точку останова там и посмотреть стек вызовов.
---
Стек вызовов я уже показал в (18), процедура обмена запускается из внешней обработки сперва мной, нажатием кнопки на форме, а затем спонтанно самопроизвольно из этой же обработки. Разница лишь в том, что при нажатии на кнопку отрабатывает сначала клиентский код, вызывающий серверный без контекста, а самопроизвольный запуск начинается сразу с серверного участка кода.
---
видимо глюк в процедуре Б_ОбменСКПСервер
попробуй его обновить = запиши его заново
---
ЭЭЭ....попробую конечно, но на копии базы выполнятся нормально.
---
раз уж в копии регламенты остановил, то попробуй и регламент перезаписать
---
Да я на продуктиве регламенты останавливал - бестолку.
---
Была однажды проблема: долгоиграющий отчет, то выполниться, то завершиться. Причина оказалась в перезапуске рабочих процессов. В отчете тоже использовалось фоновое задание. Проверьте, может тоже рабочий процесс с фоновым заданием завершается раньше чем Bitrix успевает обработать выгрузку..
---
регламентные задания отключены. интервал перезапуска - 7200, но оно успевает сглючить за примерно 1.5-2 часа
---
7200 - это как раз 2 часа! Если рабочий процесс был создан ранее начала выполнения обмена - как раз и упадет раньше. Регламентные задания и фоновое выполнение задач - разные вещи. Все сходиться в пользу моей версии. Можно попробовать перезапуск до суток увеличить - 86400 или вообще отключить - 0 тогда будет точно ясно в этом дело или нет!
---
Да, этот вариант очень похож на правду, т.к. судя по логам глюк именно через 2 часа происходил.
Про интервал перезапуска в 7200 я знал с самого начала, видимо, меня переглючило и я был уверен, что это более 2-х часов.