Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Распределенна ИБ 8.2

Распределенна ИБ 8.2
Я
   GhostTM
 
25.12.12 - 17:01
Есть самописная конфигурация на 8.2
Есть план обмена, установлен признак "Распределенная", в составе выбрали все элементы, для автоматизации обмена написаны две процедуры:
1 выгрузка данных
2 загрузка данных

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

Как отсечь выгрузку изменений конфигурации из переферии?

Процедура ОтправитьДанные() Экспорт
   
 ГлУзел = ПланыОбмена.ГлавныйУзел();
 ТекУзел = ПланыОбмена.РаспределеннаяБД.ЭтотУзел();
   
 Каталог = КаталогВременныхФайлов();
   
 МассивФайлов = Новый Массив;
   
 Если ГлУзел = Неопределено Тогда
   Выборка = ПланыОбмена.РаспределеннаяБД.Выбрать();
   Пока Выборка.Следующий() Цикл
           
     Если Выборка.Ссылка = ТекУзел Тогда
       Продолжить;
     КонецЕсли;
           
     Файл = Новый ЗаписьXML;
     ИмяФайла = "" + ТекУзел.Код + "_" + Выборка.Ссылка.Код + "_" + СтрЗаменить(ТекущаяДата(), ":", ".") + ".xml";
     Файл.ОткрытьФайл(Каталог + ИмяФайла);
     Файл.ЗаписатьОбъявлениеXML();
           
     ЗаписьСообщенияОбмена = ПланыОбмена.СоздатьЗаписьСообщения();
     ЗаписьСообщенияОбмена.НачатьЗапись(Файл, Выборка.Ссылка);
     ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщенияОбмена);
     ЗаписьСообщенияОбмена.ЗакончитьЗапись();
     Файл.Закрыть();
           
     СообщОбмена = Новый Структура;
     СообщОбмена.Вставить("Файл", ИмяФайла);
     СообщОбмена.Вставить("Каталог", Каталог);
     СообщОбмена.Вставить("Почта", Выборка.Ссылка.ПочтовыйПрофиль);
           
     МассивФайлов.Добавить(СообщОбмена);
   КонецЦикла;          
 Иначе
   Файл = Новый ЗаписьXML;
   ИмяФайла = "" + ТекУзел.Код + "_" + ГлУзел.Код + "_" + СтрЗаменить(ТекущаяДата(), ":", ".") + ".xml";
   Файл.ОткрытьФайл(Каталог + ИмяФайла);
   Файл.ЗаписатьОбъявлениеXML();
                       
   ЗаписьСообщенияОбмена = ПланыОбмена.СоздатьЗаписьСообщения();
   ЗаписьСообщенияОбмена.НачатьЗапись(Файл, ГлУзел);
   ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщенияОбмена);
   ЗаписьСообщенияОбмена.ЗакончитьЗапись();
       
   Файл.Закрыть();
       
   СообщОбмена = Новый Структура;
   СообщОбмена.Вставить("Файл", ИмяФайла);
   СообщОбмена.Вставить("Каталог", Каталог);
   СообщОбмена.Вставить("Почта", ГлУзел.ПочтовыйПрофиль);

   МассивФайлов.Добавить(СообщОбмена);
 КонецЕсли;
   
 ЗаписьСообщенияОбмена = Неопределено;
 Файл = Неопределено;
   
 ОтправитьДанныеПоПочте(МассивФайлов);
КонецПроцедуры

Процедура ПолучитьДанные() Экспорт
 ТекУзел = ПланыОбмена.РаспределеннаяБД.ЭтотУзел();
 
 МассФайлов = ПолучитьФайлыОбмена(ТекУзел.ПочтовыйПрофиль);
   
 Для каждого ФДата Из МассФайлов Цикл
   ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
   ЧтениеXML = Новый ЧтениеXML;
   ЧтениеXML.ОткрытьФайл(ФДата);
   ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
   Если ЧтениеСообщения.НомерСообщения > ТекУзел.НомерПринятого Тогда
     ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения);
   КонецЕсли;

   ЧтениеСообщения.ЗакончитьЧтение();
   ЧтениеXML.Закрыть();
   УдалитьФайлы(ФДата);
 КонецЦикла;    
КонецПроцедуры
 
 
   DrShad
 
1 - 25.12.12 - 17:05
если из перефирии выгружаются изменения конфигурации, то это ни фига не РИБ
   samozvanec
 
2 - 25.12.12 - 17:06
в переферии ты, по идее, хрен что поменяешь
   GenV
 
3 - 25.12.12 - 17:15
(0) В чем разниа между "запускаемся в режиме предприятия и вызываем функцию выгрузки данных из переферии" и "При обмене в ручном режиме"?
   DrShad
 
4 - 25.12.12 - 17:22
по ходу ТС что-то недоговаривает и многое называет не теми словами
   Kreont
 
5 - 25.12.12 - 17:27
(0) А так:
1.(Изменеия конфиг.)ЦБ -> РИБ (файлик что получится из РИБ для ЦБ в мусор)
2.Зайти в РИБ, принять изменения, и еще раз загрузку из п.1 загрузить в РИБ
2.Файлик РИБ -> ЦБ
   GhostTM
 
6 - 25.12.12 - 17:28
(3)(4)
Ручной режим - это когда я захожу в форму списка планов обмена и нажимаю системные кнопки прочитать/записать изменения

"запускаемся в режиме предприятия и вызываем функцию выгрузки данных из переферии" - это внешняя обработка с кнопками, которая вызывает написанные функции загрузки/выгрузки изменений
   GhostTM
 
7 - 25.12.12 - 17:31
(5) надо попробовать, но хотелось бы просто отсечь выгрузку конфы.
   GhostTM
 
8 - 25.12.12 - 18:31
Никто не сталкивался с такой проблемой?
   Kreont
 
9 - 25.12.12 - 18:42
(8) да какая ж тут проблема, механизм что в (5) я как раз описал как надо правильно делать :)
   Kreont
 
10 - 25.12.12 - 18:42
(7) Кстати, а по чем судишь что обратно идет выгрузка конфы?
 
 Рекламное место пустует
   GhostTM
 
11 - 25.12.12 - 18:45
(10) По сообщению при приеме в центральной, что изменения конфигурации возможны только в центральной базе, а так же по содержимому файла xml
   GhostTM
 
12 - 25.12.12 - 18:49
(9) Попробовать пока нет возможности, но просто как отследить что этот файл надо два раза грузить еще и передать это между сеансами запуска?

Просто на переферии "адекватных" юзвергов вероятнее всего не будет (это удаленный склад - грузчики + кассир)
   Kreont
 
13 - 25.12.12 - 18:52
(12)
- не менять конфу :)
-- если менять то соединяться и самому обновлять (или грузчики имеют пароль админа?)
--- можно все впихнуть в скрипт, который будет при появлении изменений конф.от ЦБ, выгонять юзверей, обновлять конфиг., и еще раз запускать обмен, и уже конечный файл будет как раз нужным для загрузки в РИБ
   GhostTM
 
14 - 25.12.12 - 18:55
(13) если не найду решения, то будет именно так: "если менять то соединяться и самому обновлять" :)

Грузчики пароль админа - боже упаси.
   GhostTM
 
15 - 25.12.12 - 18:56
(13) При выгрузке в ручном режиме оно ж его как-то отсекает

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует