|
Распределенна ИБ 8.2 | ☑ | ||
---|---|---|---|---|
0
GhostTM
25.12.12
✎
17:01
|
Есть самописная конфигурация на 8.2
Есть план обмена, установлен признак "Распределенная", в составе выбрали все элементы, для автоматизации обмена написаны две процедуры: 1 выгрузка данных 2 загрузка данных Проблема в седующем: Если в центральной базе происходит изменение конфигурации, то это изменение передается в переферию, открываем конфигуратор - обновляем конфигурацию БД - запускаемся в режиме предприятия и вызываем функцию выгрузки данных из переферии и в пакет выгружаются изменения конфигурации, которые потом в центральной базе не принимаются. При обмене в ручном режиме все замечательно. Как отсечь выгрузку изменений конфигурации из переферии? Процедура ОтправитьДанные() Экспорт ГлУзел = ПланыОбмена.ГлавныйУзел(); ТекУзел = ПланыОбмена.РаспределеннаяБД.ЭтотУзел(); Каталог = КаталогВременныхФайлов(); МассивФайлов = Новый Массив; Если ГлУзел = Неопределено Тогда Выборка = ПланыОбмена.РаспределеннаяБД.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Ссылка = ТекУзел Тогда Продолжить; КонецЕсли; Файл = Новый ЗаписьXML; ИмяФайла = "" + ТекУзел.Код + "_" + Выборка.Ссылка.Код + "_" + СтрЗаменить(ТекущаяДата(), ":", ".") + ".xml"; Файл.ОткрытьФайл(Каталог + ИмяФайла); Файл.ЗаписатьОбъявлениеXML(); ЗаписьСообщенияОбмена = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщенияОбмена.НачатьЗапись(Файл, Выборка.Ссылка); ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщенияОбмена); ЗаписьСообщенияОбмена.ЗакончитьЗапись(); Файл.Закрыть(); СообщОбмена = Новый Структура; СообщОбмена.Вставить("Файл", ИмяФайла); СообщОбмена.Вставить("Каталог", Каталог); СообщОбмена.Вставить("Почта", Выборка.Ссылка.ПочтовыйПрофиль); МассивФайлов.Добавить(СообщОбмена); КонецЦикла; Иначе Файл = Новый ЗаписьXML; ИмяФайла = "" + ТекУзел.Код + "_" + ГлУзел.Код + "_" + СтрЗаменить(ТекущаяДата(), ":", ".") + ".xml"; Файл.ОткрытьФайл(Каталог + ИмяФайла); Файл.ЗаписатьОбъявлениеXML(); ЗаписьСообщенияОбмена = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщенияОбмена.НачатьЗапись(Файл, ГлУзел); ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщенияОбмена); ЗаписьСообщенияОбмена.ЗакончитьЗапись(); Файл.Закрыть(); СообщОбмена = Новый Структура; СообщОбмена.Вставить("Файл", ИмяФайла); СообщОбмена.Вставить("Каталог", Каталог); СообщОбмена.Вставить("Почта", ГлУзел.ПочтовыйПрофиль); МассивФайлов.Добавить(СообщОбмена); КонецЕсли; ЗаписьСообщенияОбмена = Неопределено; Файл = Неопределено; ОтправитьДанныеПоПочте(МассивФайлов); КонецПроцедуры Процедура ПолучитьДанные() Экспорт ТекУзел = ПланыОбмена.РаспределеннаяБД.ЭтотУзел(); МассФайлов = ПолучитьФайлыОбмена(ТекУзел.ПочтовыйПрофиль); Для каждого ФДата Из МассФайлов Цикл ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ФДата); ЧтениеСообщения.НачатьЧтение(ЧтениеXML); Если ЧтениеСообщения.НомерСообщения > ТекУзел.НомерПринятого Тогда ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения); КонецЕсли; ЧтениеСообщения.ЗакончитьЧтение(); ЧтениеXML.Закрыть(); УдалитьФайлы(ФДата); КонецЦикла; КонецПроцедуры |
|||
1
DrShad
25.12.12
✎
17:05
|
если из перефирии выгружаются изменения конфигурации, то это ни фига не РИБ
|
|||
2
samozvanec
25.12.12
✎
17:06
|
в переферии ты, по идее, хрен что поменяешь
|
|||
3
GenV
25.12.12
✎
17:15
|
(0) В чем разниа между "запускаемся в режиме предприятия и вызываем функцию выгрузки данных из переферии" и "При обмене в ручном режиме"?
|
|||
4
DrShad
25.12.12
✎
17:22
|
по ходу ТС что-то недоговаривает и многое называет не теми словами
|
|||
5
Kreont
25.12.12
✎
17:27
|
(0) А так:
1.(Изменеия конфиг.)ЦБ -> РИБ (файлик что получится из РИБ для ЦБ в мусор) 2.Зайти в РИБ, принять изменения, и еще раз загрузку из п.1 загрузить в РИБ 2.Файлик РИБ -> ЦБ |
|||
6
GhostTM
25.12.12
✎
17:28
|
(3)(4)
Ручной режим - это когда я захожу в форму списка планов обмена и нажимаю системные кнопки прочитать/записать изменения "запускаемся в режиме предприятия и вызываем функцию выгрузки данных из переферии" - это внешняя обработка с кнопками, которая вызывает написанные функции загрузки/выгрузки изменений |
|||
7
GhostTM
25.12.12
✎
17:31
|
(5) надо попробовать, но хотелось бы просто отсечь выгрузку конфы.
|
|||
8
GhostTM
25.12.12
✎
18:31
|
Никто не сталкивался с такой проблемой?
|
|||
9
Kreont
25.12.12
✎
18:42
|
(8) да какая ж тут проблема, механизм что в (5) я как раз описал как надо правильно делать :)
|
|||
10
Kreont
25.12.12
✎
18:42
|
(7) Кстати, а по чем судишь что обратно идет выгрузка конфы?
|
|||
11
GhostTM
25.12.12
✎
18:45
|
(10) По сообщению при приеме в центральной, что изменения конфигурации возможны только в центральной базе, а так же по содержимому файла xml
|
|||
12
GhostTM
25.12.12
✎
18:49
|
(9) Попробовать пока нет возможности, но просто как отследить что этот файл надо два раза грузить еще и передать это между сеансами запуска?
Просто на переферии "адекватных" юзвергов вероятнее всего не будет (это удаленный склад - грузчики + кассир) |
|||
13
Kreont
25.12.12
✎
18:52
|
(12)
- не менять конфу :) -- если менять то соединяться и самому обновлять (или грузчики имеют пароль админа?) --- можно все впихнуть в скрипт, который будет при появлении изменений конф.от ЦБ, выгонять юзверей, обновлять конфиг., и еще раз запускать обмен, и уже конечный файл будет как раз нужным для загрузки в РИБ |
|||
14
GhostTM
25.12.12
✎
18:55
|
(13) если не найду решения, то будет именно так: "если менять то соединяться и самому обновлять" :)
Грузчики пароль админа - боже упаси. |
|||
15
GhostTM
25.12.12
✎
18:56
|
(13) При выгрузке в ручном режиме оно ж его как-то отсекает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |