Вход | Регистрация

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 человек.
Рекламное место пустует