|
Организация Авто-обмена в РИБ | ☑ | ||
---|---|---|---|---|
0
Gsoom2010
13.11.11
✎
17:18
|
Добрый день!
Подскажите как организовать Автоматический обмен по расписанию в РИБ на самописной конфигурации? Может быть у кого-то есть готовые решения? В интернетах нашёл только описания такого обмена на стандартных конфигурациях. |
|||
1
kosts
13.11.11
✎
17:24
|
(0) Посмотри конфу "стандартные подсистемы", может быть там есть что то про обмен.
Даже если конфа своя, посмотри как сделано в типовой (ту которую вы покупали изначально). И в инете куча описаний обмена. |
|||
2
kosts
13.11.11
✎
17:27
|
(0) Способ автоматического запуска будет зависеть от того на сервере у тебя база или файловая. На сервере можно использовать фоновые задания. В файловом "назначенные задания".
|
|||
3
Gsoom2010
13.11.11
✎
17:33
|
Файловая база, 1С 8.2.
Сейчас я тупа создал план обмена и указал что он РИБ. |
|||
4
Gsoom2010
13.11.11
✎
17:35
|
Выгружать/Загружать файлики вручную - всё ок.
Хочу чтобы автоматом всё делалось по расписанию, не совсем понимаю что должно вызывать Регламентное задание и как повесить обмен хотябы на ftp. Да хоть на ДропБокс... |
|||
5
kosts
13.11.11
✎
17:38
|
В процедуре в начале работы системы анализируй входящие параметры и если специальный установлен (свой какой то), то автоматически запускай процедуру обмена.
|
|||
6
Gsoom2010
13.11.11
✎
17:51
|
Мне бы обмениваться данными каждые 3 часа, да и пустить это всё через ftp. Может набросаете схему работы такого обмена? Я читал что надо создавать пользователя который будет инициировать запуск регламентных заданий по обмену данными, это так?
|
|||
7
Gsoom2010
13.11.11
✎
17:52
|
Вся проблема в том что везде описано как настроить обмен в стандартных конфигурациях, но не понять как сделать это самому с нуля...
|
|||
8
kosts
13.11.11
✎
17:56
|
В типовых все универсально (и сложно) и повторять нет смысла.
По простому. Тебе только нужна процедура обмена и механизм запуска. |
|||
9
Gsoom2010
13.11.11
✎
17:59
|
У меня сейчас есть только план обмена (и тот стандартный для РИБ).
Следующими действиями будет создать регламентное задание и написать процедуру запуска и выполнения этого плана? Я правда совсем не представляю как обращаться к плану обмена из процедуры. |
|||
10
kosts
13.11.11
✎
18:01
|
Для запуска используй обычные "Назначенные задания в виндовсе".
Задание которое запускает батник с запуском Предприятия с установленным параметром типа "c:\Program Files\1cv82\8.2.13.205\bin\1cv8.exe" enterprise /pпароль /uпользователь /конфа /CВыполнитьОбмен Подробно где нибудь посмотри. В
Как то так |
|||
11
Gsoom2010
13.11.11
✎
18:04
|
Благодарю, часть пути к цели уже стала ясной. Осталось понять вторую часть как написать МодульОбмена.ВыполнитьОбмен();
|
|||
12
kosts
13.11.11
✎
18:04
|
В плане обмена отметь какие объекты должны мигрировать и с автоматической регистрацией или нет.
Сам обмен тут не буду описывать, подробно все не помню, да и инет полон описаний (на мисте тоже где то есть). |
|||
13
kosts
13.11.11
✎
18:05
|
Если регистрация не автоматическая, то нужно позаботиться о том что бы зарегистрировать объекты после их изменения.
|
|||
14
Gsoom2010
13.11.11
✎
18:05
|
Сам план обмена у меня настроен, по крайней мере в ручном режиме всё работает. (Регистрация объектов автоматическая)
Не понятно как из процедуры обращаться к этому плану чтобы выполнить выгрузки и загрузки в/из узлов РИБ. |
|||
15
Gsoom2010
13.11.11
✎
18:08
|
Попытаюсь найти как это происходит в Управление Торговлей. Если найду выложу, наверняка кому-то пригодится.
|
|||
16
kosts
13.11.11
✎
18:11
|
(14) Видимо нужно вызвать ту же процедуру начала обмена, которая вызывается интерактивно. Ваш Кэп. :-)
(15) Не надо. |
|||
17
Gsoom2010
13.11.11
✎
18:40
|
Функция ВыполнитьОбмен() Экспорт
ВыборкаУзлов = ПланыОбмена.ОсновнойПланОбмена.Выбрать(); Пока ВыборкаУзлов.Следующий() Цикл // Произвести обмен данными со всеми узлами, кроме текущего (ЭтотУзел) Если ВыборкаУзлов.Ссылка <> ПланыОбмена.Филиалы.ЭтотУзел() Тогда УзелОбъект = ВыборкаУзлов.ПолучитьОбъект(); // Получить сообщение УзелОбъект.ПрочитатьСообщениеСИзменениями(); // Сформировать сообщение УзелОбъект.ЗаписатьСообщениеСИзменениями(); КонецЕсли; КонецЦикла; КонецФункции |
|||
18
Gsoom2010
13.11.11
✎
18:40
|
Выходит что так надо делать, теперь бы понять где задаётся путь к записи файлов с измнениями. Чтобы указать ftp сервер...
|
|||
19
kosts
13.11.11
✎
18:43
|
Выгружай в файл как обычно. Потом копируй на FTP. В типовых тоже можно посмотреть. В середине можно файл сжать.
|
|||
20
Gsoom2010
13.11.11
✎
18:47
|
kosts - Спасибо!
|
|||
21
kosts
13.11.11
✎
18:51
|
В журнал пиши если обмен не выполнился. Или как то еще сигнализировать нужно. А то чревато ....
|
|||
22
Gsoom2010
13.11.11
✎
19:12
|
Да, я уже нашёл мануал Книга знаний: v8: Автоматический запуск внешней обработки
|
|||
23
Gsoom2010
13.11.11
✎
19:24
|
Тут такое дело, фактически у меня нет функций ПрочитатьСообщениеСИзменениями(); и ЗаписатьСообщениеСИзменениями(); т.к. План обмена создавался автоматически с галочкой РИБ. Нужно где-то брать эти функции (писать самому) или можно как-то обратиться к тем самым процедурам РИБ которые работают на автомате?
|
|||
24
Gsoom2010
13.11.11
✎
19:36
|
В Практическом пособии разработчика нашёл исходные тексты для выгрузки и загрузки. Попробую использовать их.
|
|||
25
Gsoom2010
13.11.11
✎
21:32
|
Чото нихера у меня не выходит... но о чудо http://subscribe.ru/archive/comp.soft.prog.magic1c/200408/14193355.html
|
|||
26
DrShad
13.11.11
✎
22:15
|
помогло?
|
|||
27
Gsoom2010
13.11.11
✎
22:29
|
Да вообще на 100%, у меня даже тело обмякло от удовольствия.
|
|||
28
Aleksey
13.11.11
✎
22:29
|
(25) Первоисточник http://mista.ru/v8/urbd.htm
|
|||
29
Gsoom2010
13.11.11
✎
22:31
|
Да, я видел. Спасибо огромное!
|
|||
30
Gsoom2010
13.11.11
✎
23:26
|
Раз уж на то пошло, может кто подскажет как обойти:
{ОбщийМодуль.рбРаспределеннаяБаза.Модуль(85)}: Ошибка при вызове метода контекста (Послать) Почта.Послать(ПочтовоеСообщение); по причине: Неизвестная ошибка (SMTP error code 503, 5.5.4 Error: send AUTH command first.) |
|||
31
Gsoom2010
13.11.11
✎
23:27
|
yandex.ru использую для тестирования, в принципе могу сменить сервер...
|
|||
32
Gsoom2010
13.11.11
✎
23:47
|
Вопрос решается добавлением в функцию:
ПочтовыйПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login; ... ПочтовоеСообщение.Отправитель = Константы.АдресПочтовогоЯщикаОбмена; |
|||
33
Gsoom2010
13.11.11
✎
23:50
|
.Получить();
|
|||
34
Gsoom2010
15.11.11
✎
23:58
|
Господа, подскажите, как более грамотно и красиво сделать запуск авто-обмена:
1. Через *.bat файл запускать БД и выполнять процедуру обмена из ПриНачалеРаботыСистемы() 2. Как в статье (28) сделать это через ОбработчикОжидания повешенный на пользователя 3. Каким-то иным образом, возможно через регламентные задания? База файловая. Конфигурация не стандартная. |
|||
35
kosts
16.11.11
✎
09:03
|
(34) Варианты 3 и 4 неудобны, что предприятие должно быть постоянно запущено.
Это затрудняет сопровождение, нужно не забыть запустить предприятие. (Если это автоматизировать снова имеем бат файл). При изменении в конфе выйти из него, а потом не забыть снова зайти. В общем понятно. Регламентные задания будут удобны только с сервером. |
|||
36
Alex_MA
16.11.11
✎
10:19
|
(0)тебе поможет библиотека стандартных подсистем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |