Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обмен данными XML. 1С 8.2

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

progmike



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, добрый день!
 
Нуждаюсь в совете...
 
На данный момент имеем следующее:
1. Центральная база 1С на сервере + SQL
2. Филиалы 1С на сервере + SQL
3. Конвертация данных + типовая обработка Универсальный обмен данными XML
 
ЦБ и Филиал находятся друг от друга за сетями WAN. Доступ к единому файловому ресурсу - через VPN соединение (которое постоянно установлено и контролируется сетевым оборудованием)
Средняя задержка сети ~25-40 мс на скорости 15 МБит/сек. Такая сеть позволяет файлу выгрузки (не более 50КБ) летать почти моментально и, в целом, быстродействие на достаточном уровне.
 
В базах 1С созданы узлы обмена с регистрацией требуемых объектов и регламентное задание.
По расписанию стартует процедура, которая:
1. создает типовую обработку (Универсальный обмен данными XML)
2. подсовывает параметры (путь к файлу правил конвертации, путь к файлу обмена, имя узла выгрузки и т.д.)
3. выгружает данные во временный файл (локально)
4. Копирует полученный XML-файлик на сетевой ресурс
На ответной стороне:
1. создает типовую обработку (Универсальный обмен данными XML)
2. копирует сетевой файл во временную папку
3. подсовывает параметры (путь к временному файлу выгрузки)
4. загружает данные
 
Есть проблема:
Если в момент копирования файла выгрузки (туда или обратно) возникает сбой связи - наглухо подвисает целиком фоновый процесс.
Причем, подвисает так, что рестарт сервера 1С не освобождает занятые файлы...
 
Копирование происходит так:

Код:
 
ФайлПротоколаДанных    = Новый ЗаписьТекста(ПолноеИмяФайлаПротоколаОбмена, КодировкаТекста.ANSI, , Истина);
Попытка
    КопироватьФайл(КаталогИсточник + "\" + ФайлДанныхИмя,  КаталогПриемник + "\" + ИмяДляФилиала1);
Исключение
    ЗаписьЖурналаРегистрации("Обмен данными", УровеньЖурналаРегистрации.Информация,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    ФайлПротоколаДанных.ЗаписатьСтроку("" + ТекущаяДата() + " " +СтрокаСообщения);
КонецПопытки;
ФайлПротоколаДанных.Закрыть();
 

 
Так вот, если произошёл обрыв связи, фоновое задание зависает на команде КопироватьФайл(). Наглухо.
Записи в журнале регистрации нет. ФайлПротоколаДанных занят монопольно.
Если снять процесс dllhost, который "рулил" данным фоновым заданием, тогда ФайлПротоколаДанных остается занятым (т.е. его нельзя открыть в блокноте, скопировать или удалить).
 
В итоге всех мучений был выявлен единственный способ привести все в норму: рестарт ОС.
 
Есть мысль использовать ту же обработку "Универсальный обмен данными XML", только метод выгрузки изменить на COM-соединение.
Такой обмен в данный момент исправно работает между двумя базами на одном сервере (бух-упр).
 
Ваше мнение, господа?
 
Будут ли вылазить подводные камни при использовании COM-соединения через VPN(WAN) подключение?

Всего записей: 245 | Зарегистр. 12-03-2006 | Отправлено: 19:53 21-11-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обмен данными XML. 1С 8.2


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru