Ошибка совместного доступа при интеграции с 1с
Добрый день. При обмене данными между 1с и битриксом, постоянно вываливается ошибка:
Конфигурация 11 (11.3.4.103), платформа 8.3.10.2505, модуль битрикса 7.0.1.6. От версии модуля битрикса не зависит. 1с клиент-сервер, сервер установлен на debian. В прочем, когда-то он был и на windows эта ошибка тоже присутствовала, но обмен проходил без ошибок 1 раз из 5 примерно. Сейчас же обмен валится постоянно. Может упасть через 5 минут, может через час, но падает в любом случае. В чём проблема может-быть?
{ОбщийМодуль.Б_ОбменССайтомСервер.Модуль(1516)}: Ошибка при вызове конструктора (ЧтениеТекста)
ЧтениеТекста = Новый ЧтениеТекста(ИмяФайлаОтвета, лКодировка);
по причине:
Ошибка совместного доступа к файлу '/home/usr1cv8/tmp/v8_mWVbFi_10c8.tmp'
Конфигурация 11 (11.3.4.103), платформа 8.3.10.2505, модуль битрикса 7.0.1.6. От версии модуля битрикса не зависит. 1с клиент-сервер, сервер установлен на debian. В прочем, когда-то он был и на windows эта ошибка тоже присутствовала, но обмен проходил без ошибок 1 раз из 5 примерно. Сейчас же обмен валится постоянно. Может упасть через 5 минут, может через час, но падает в любом случае. В чём проблема может-быть?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
что это за файл?
если файл обмена то проверьте права на него, и количество процесов использующих его.
возможно система сайта читает и модифицирует его наложив запрет открытия другими программами, а 1С пытается его открыть
если файл обмена то проверьте права на него, и количество процесов использующих его.
возможно система сайта читает и модифицирует его наложив запрет открытия другими программами, а 1С пытается его открыть
чтобы узнать - посмотрите как Битрикс отркрывает файл и какие устанавливает ограничения на файл для других процессов(например - LOCK_EX и тд)
но способ обмена данными - писать в файл когда с него считывают - идея плохая, это неправильное архитектурное решение.
посмотрите в сторону очередей в rabbit mq. никакие данные не будуть пропадать(нужен кластер очередей 2-3 сервера) и вы не будете привязаны к какому решению.
если решите перейти с Битрикса на что-то другое не нужно перерабатывать все обмены, только доработать приемник
но способ обмена данными - писать в файл когда с него считывают - идея плохая, это неправильное архитектурное решение.
посмотрите в сторону очередей в rabbit mq. никакие данные не будуть пропадать(нужен кластер очередей 2-3 сервера) и вы не будете привязаны к какому решению.
если решите перейти с Битрикса на что-то другое не нужно перерабатывать все обмены, только доработать приемник
Да нет, он же создаёт эти файлы постоянно и они нормально читаются, он же не может создать посреди обмена вдруг файл с другими правами. Обмен примерно так работает.
Нажимаем кнопку обмена в 1с > идёт запрос к сайту на авторизацию>приходит ответ от сайта к 1с, что всё ок и нужно начинать формировать файл для отправки на сайт. 1с запокавала в zip часть данных и отправила сайту, сайт обработал эту часть данных и послал к 1с запрос, чтобы она упокавала и отправила следующую часть и так, пока не пройдёт весь обмен.
Нажимаем кнопку обмена в 1с > идёт запрос к сайту на авторизацию>приходит ответ от сайта к 1с, что всё ок и нужно начинать формировать файл для отправки на сайт. 1с запокавала в zip часть данных и отправила сайту, сайт обработал эту часть данных и послал к 1с запрос, чтобы она упокавала и отправила следующую часть и так, пока не пройдёт весь обмен.
вариантов у меня 3:
- проверить антивирус(если таковой имеется),
- попробовать почистить все временніе файлы в этой папки(не уверен),
- смотреть код модуля Б_ОбменССайтомСервер или связанных с ним, возможно проблема где то там
- проверить антивирус(если таковой имеется),
- попробовать почистить все временніе файлы в этой папки(не уверен),
- смотреть код модуля Б_ОбменССайтомСервер или связанных с ним, возможно проблема где то там
Проблему можно решить изменив имя файла в процедуре записи логов.
А Именно:
Б_ОбменССайтомСервер.СообщитьПодробно
Добавляем в попытку:
А Именно:
Б_ОбменССайтомСервер.СообщитьПодробно
Добавляем в попытку:
Попытка
Текст = Новый ЗаписьТекста(ОсновныеПараметры.ИмяФайлаЛога, КодировкаТекста.ANSI,,истина);
Текст.ЗаписатьСтроку(Строка(ТекущаяДата()) + "--" + пСобытие);
Текст.Закрыть();
Исключение
ЗаписьЖурналаРегистрации("СобытияОбменаДанныхМодуляБитрикс",
УровеньЖурналаРегистрации.Ошибка,,,ОписаниеОшибки()+пСобытие);
//При блокировке файла логов меняем имя файла
ОсновныеПараметры.ИмяФайлаЛога = СтрЗаменить(ОсновныеПараметры.ИмяФайлаЛога, ".txt","_.txt");
Текст = Новый ЗаписьТекста(ОсновныеПараметры.ИмяФайлаЛога, КодировкаТекста.ANSI,,истина);
Текст.ЗаписатьСтроку(Строка(ТекущаяДата()) + "--" + пСобытие);
Текст.Закрыть();
КонецПопытки;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот