|
нужно автоматизировать выгрузку с двух баз и потом также загрузить их в одну базу. | ☑ | ||
---|---|---|---|---|
0
razbiralshik
29.05.18
✎
07:43
|
нужно автоматизировать выгрузку с двух баз и потом также загрузить их в одну базу.
Есть обработка УниверсальныйОбменДаннымиXML, с написанными правилами выгрузки документов для обеих баз и загрузки в базу, нужно делать выгрузку/загрузку каждую ночь. Как лучше сделать: В базе загрузки срабатывает регламент, както подключаемся по COM к базам выгрузки, както туда передаем эту внешнюю обработку с правилами, потом получаем файл выгрузки... Но как передавать внешнюю обработку в эти базы по ком чтобы там запустить ее еще? |
|||
1
_stay true_
29.05.18
✎
07:47
|
(0)Позовите специалиста
|
|||
2
_stay true_
29.05.18
✎
07:48
|
(0) Шучу)))
В ключах конфигуратора есть параметр, октрывающий внешнюю обработку. А там можно в "ПриСозданииНаСервере", например, всё, что хочешь запустить. |
|||
3
razbiralshik
29.05.18
✎
07:50
|
(2)
ну вод подключаемся к базе: ZUP_COM = V8.Connect(СтрокаСоединения); Как теперь отправить туда обработину? |
|||
4
_stay true_
29.05.18
✎
07:55
|
(3) &НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды, ZUP_COM) //Помещаем обработку во временном хранилище АдресХранилища = ""; Результат = ZUP_COM.ПоместитьФайл(АдресХранилища, "C:\ВнешняяОбработка.epf", , Ложь); ИмяОбработки = ПодключитьВнешнююОбработку(АдресХранилища); // Откроем форму подключенной внешней обработки ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма"); КонецПроцедуры &НаСервере Функция ПодключитьВнешнююОбработку(АдресХранилища, ZUP_COM) Возврат ZUP_COM.ВнешниеОбработки.Подключить(АдресХранилища); КонецФункции Как-то так не пробовал? |
|||
5
razbiralshik
29.05.18
✎
08:04
|
(4) пишет
{ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма.Форма(399)}: Метод объекта не обнаружен (ПоместитьФайл) Результат = ZUP_COM.ПоместитьФайл(АдресХранилища, "C:\Users\fedorovay\Desktop\V8Exchan82.epf", , Ложь); наверное нужно адрес хранилища в COM базе определить или в чемто другом дело? |
|||
6
_stay true_
29.05.18
✎
08:39
|
(5) Скорее всего. Попробуй поместить в хранилище обработку уже по комке
|
|||
7
razbiralshik
29.05.18
✎
09:09
|
(6) база по кому версия платформы 8.1, может в 8.1 нет метода ПоместитьФайл?
|
|||
8
b_ru
29.05.18
✎
09:14
|
А зачем передавать внешнюю обработку? Если база типовая, то в ней УниверсальныйОбменДаннымиXML и так есть. Если не типовая, то ничто не должно мешать ее туда добавить.
|
|||
9
razbiralshik
29.05.18
✎
09:17
|
(8) эту обработку для регламентного запуска придется модифицировать, а в базе встроена типовая обработка и ее нельзя трогать какбы.
|
|||
10
b_ru
29.05.18
✎
09:20
|
(9) Ну модифицировать то надо только ту, которая запускается по регламентному заданию (хотя я вот не трогал типовую, а сделал свою затычку, которая запускает типовую). А в другой базе прекрано отработает и немодифицированная, ведь ее по COM будут дергать, а не регламентным заданием.
|
|||
11
razbiralshik
29.05.18
✎
09:24
|
(10) тогда самый лучший вариант поместить обработку в каждую базу в справочник - внешние обработки.
Но вот как потом обратиться к процедуре модуля объекта этой обработки пока непонятно: УниверсальныйОбменДаннымиXMLМск = ZUP_COM.Справочники.ВнешниеОбработки.НайтиПоНаименованию("УниверсальныйОбменДаннымиXML"); УниверсальныйОбменДаннымиXMLМск.ВыполнитьВыгрузку(); так не работает |
|||
12
Мимохожий Однако
29.05.18
✎
09:26
|
(11) Какая ошибка?
|
|||
13
razbiralshik
29.05.18
✎
09:28
|
(12)
{ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма.Форма(351)}: Метод объекта не обнаружен (ВыполнитьВыгрузку) УниверсальныйОбменДаннымиXMLМск.ВыполнитьВыгрузку(); |
|||
14
zva
29.05.18
✎
09:33
|
Что мешает в двух базах регламентно запускать выгрузку в 01:00 в каталог, по окончании переименовывать файл в база+дата
В приемнике регламентно в 03:00 искать файл по имени и загружать без всяких СОМ |
|||
15
J_B
29.05.18
✎
09:33
|
А почему бы регламент не запускать в базах-отправителях?
УниверсальныйОбменДаннымиXML умеет подключаться к базе приемнику |
|||
16
razbiralshik
29.05.18
✎
09:55
|
Вот так вот заработало вроде как:
V8 = ОбщегоНазначенияКлиентСервер.ПолучитьКомКоннектор(); ZUP_COM = V8.Connect("Srvr=msk02serv1c04;Ref=Demo3"); ОбработкаКоманды(ZUP_COM); Процедура ОбработкаКоманды(ZUP_COM) ВнешняяОбработка = ZUP_COM.Справочники.ВнешниеОбработки.НайтиПоНаименованию("УниверсальныйОбменДаннымиXML"); ДвоичныеДанные = ВнешняяОбработка.ХранилищеВнешнейОбработки.Получить(); ИмяФайла = ZUP_COM.ПолучитьИмяВременногоФайла("epf"); ДвоичныеДанные.Записать(ИмяФайла); Обработка = ZUP_COM.ВнешниеОбработки.Создать(ИмяФайла); Обработка.ВыполнитьВыгрузку(); КонецПроцедуры Но пишет еще какюуто дичь: {ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма.Форма(357)}: Ошибка при вызове метода контекста (ВыполнитьВыгрузку) Обработка.ВыполнитьВыгрузку(); по причине: Произошла исключительная ситуация (1C:Enterprise 8.3.10.2580): {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(11616)}: Ошибка при вызове конструктора (Файл) Установлен безопасный режим. Выполнение операции запрещено |
|||
17
Bob_
29.05.18
✎
10:04
|
Функция СведенияОВнешнейОбработке() Экспорт
// Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим) ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь); отсюда походу |
|||
18
razbiralshik
29.05.18
✎
10:10
|
(17) это куда прописать надо?
в обработку которой запускаю код? или в обработку которая помещена в справочник внешних обработок? |
|||
19
Bob_
29.05.18
✎
10:13
|
в обработке которая помещена в справочник проверить функцию СведенияОВнешнейОбработке() , и установить безопасный режим - ложь
|
|||
20
razbiralshik
29.05.18
✎
10:19
|
(19) Добавил в модуль объекта доработки, и поместил ее во внешний справочник:
Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь); Возврат ПараметрыРегистрации; КонецФункции но ничего не поменялось, таже ошибка. |
|||
21
Bob_
29.05.18
✎
10:22
|
у пользователя попробуй снять галку - защита от опасных действий
|
|||
22
zva
29.05.18
✎
10:24
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |