Имя: Пароль:
1C
1С v8
Обновление конфигурации РИБ в клиент-серверном варианте.
,
0 Zord
 
18.11.13
11:55
Есть самописная конфа на БСП (2.1.6.7). Настроена РИБ. Синхронизация настроена. После получения обновленной конфигурации на узле, узел нужно обновить. Обновить необходимо автоматически, не залазия каждый раз руками для клиент-серверного варианта.
В клиент-серверном варианте по идее должно быть реализовано в БСП. Есть обработка для ручного обновления, но нужно автоматически. В Регламентных не нашел такого задания.
Кто сталкивался - помогите пожалуйста!
1 roman844
 
18.11.13
12:04
У меня 2 узла на УТ 10.3 меняю каждый раз руками. Не напрягает. Если будет больше узлов, создам регл. задание.
2 Zord
 
18.11.13
12:06
8 узлов. Регламентное задание? выполняется раз в день наверное? Для постоянного обновления необходимо мониторить обновления и оперативно обновлять. Иначе обмен встанет.
3 roman844
 
18.11.13
12:11
Регламентное задание можно настроить по расписанию как программно, так и из пользовательского режима
4 Zord
 
18.11.13
12:12
Вообще понятно что нудно регламентное. раз в 5-15 минут.
Алгоритм типа:
Если КонфигурацияИзменена() Тогда
ВыгнатьВсех();
Обновить();

Вопрос следующий: Есть ли готовое решение в БСП?
5 Zord
 
18.11.13
12:14
Какая нить процедурка к которой можно подцепиться... ?
6 roman844
 
18.11.13
12:15
В УТ 10.3 есть настройка обновления конфигурации узла РИБ, я ей не пользовался и не смотрел
7 roman844
 
18.11.13
12:15
я думаю можно справку почитать и код посмотреть
8 Zord
 
18.11.13
12:19
На ИТС описано получение обновления с сайта или диска ИТС.
У меня обновление уже есть. по коду в модуле ОбновлениеКонфигурации есть После завершения обновления, при завершении, успешное завершение.... и нигде Обновить, или выполнить обнолвение
9 roman844
 
18.11.13
12:21
С помощью этой формы можно настроить формирование bat-файла автоматического обновления конфигурации для узлов распределенной информационной базы.

Форма предназначена для редактирования константы "Настройка файла обновления конфигурации". Константа используется механизмом автоматического обмена данными.

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

Для автоматизации такого процесса и существует данная настройка
10 Zord
 
18.11.13
12:25
С помощью какой формы?
11 roman844
 
18.11.13
12:27
Сервис -> РИБ -> Настроить обновление конфигурации узла РИБ
или
Сервис -> РИБ -> Выполнить обмен с узлами РИБ (Действия -> Настроить обновление конфигурации узла РИБ)
12 roman844
 
18.11.13
12:27
в Управление торговлей 10.3 так
13 Serg_1960
 
18.11.13
12:28
"Вообще понятно что нудно регламентное. раз в 5-15 минут" - :))

Сорри, но чес слово, совсем не интересна мне тема "автоматизации" для базы, в которой конфигурация изменяется также же часто, как и данные :)

Ну не "автоматизируешь" ты корректно выгнать пользователей на рабочей базе, как не старайся... а если автоматизируешь - то скорее выгонят тебя, чем эта наработка станет рабочей :))
14 Zord
 
18.11.13
12:31
проверять нужно часто. чтоб обмен шел постоянно. И конфа сейчас переходит в бетотест ) пока будет часто обновляться и допиливаться. даже если раз в день. нет такого счастливого момента когда никто не работает и можно спокойно обновлять, т.к. базы есть и на дальнем востоке и в центральном округе.
15 roman844
 
18.11.13
12:34
а как ты планируешь соединения разрывать?? как писали в (13)
16 Zord
 
18.11.13
12:35
Почему не автоматизируешь? ) для файловых баз спокойно сделал. С помощью обработки ожидания проверяем изменения. Если есть, то запускаем "обновлятор". Если он запущен пользователей предупреждает 3 раза через опр. период времени. Потом выгоняет. Обновляется. Можно снова заходить.
А без разрыва как? Динамически? не всегда гуд... особенно если  какой-либо объект методанных был добавлен, например
17 roman844
 
18.11.13
12:36
ДИНАМИЧЕСКИ нельзя обновлять узлы РИБ
18 Zord
 
18.11.13
12:37
ну вот. значит разрывать
19 roman844
 
18.11.13
12:37
узел иначе станет не подичненным
20 Zord
 
18.11.13
12:44
вообще разорвать можно так
СоединенияИБКлиентСервер.ОтключитьСоединенияИБ(ПараметрыАдминистрированияИБ);
21 Zord
 
18.11.13
12:46
но нужно сначала предупредить... стандартныя обработка не умеет. умеет только ждать когда станет свободно... в ручном режиме (постоянно обновлять)
22 roman844
 
18.11.13
12:47
(20) Разорвать то можно, но нужно минимизировать потерю данных которые ввел пользователь и не успел записать (например отошел от рабочего места), а ты в это время начинаешь свое автообновление.
23 roman844
 
18.11.13
12:47
так что, наверное все таки руками придется
24 roman844
 
18.11.13
12:48
у меня есть время около 12 часов, когда нет юзеров, мне вот можно и автоматом сделать.
25 Zord
 
18.11.13
12:52
Спасибо за советы. Но всетаки не сильно мне улыбается всех предупреждать и руками следить и обновлять... много времени это займет... не факт что рабочего
26 roman844
 
18.11.13
12:55
как пару раз прервешь соединение с документом в 100 строк, получишь по шее от вышестоящего руководителя и будешь сразу же предупреждать
27 mzelensky
 
18.11.13
12:56
(0) Сам бьюсь с этой задачкой. Можешь мою ветку почтить - там есть наметки

v8: РИБ. Подскажите с настройкой.
28 mzelensky
 
18.11.13
13:00
(0) не знаю зачем ты темы дублируешь с одним и тем же вопросом, но продублирую и сюда:

Открой типовую (например УТ 10.3) и пробегись глобальным поиском по "/UpdateDBCfg"
29 Zord
 
18.11.13
13:25
(26) Не говорил о том, что вообще не предупреждать. Задать интервал между предупреждением и разрывом. Предупреждение выдавать автоматом.
30 Zord
 
18.11.13
13:27
(28) Ут 11.0.5.4. Найдено 0
31 Serg_1960
 
18.11.13
13:33
Ты всё-таки как-то попробуй это всё "устаканить" и "узаконить". Ну, например, через распоряжение босса, чтобы обновления конфы были пару раз в день, не более, в строго определенное время ("технологические перерывы").

(офф) Представляю что будет, если я прерву расчет себестоимости, запущенный главбухом - сколько г*** из неё попрёт :)
32 Serg_1960
 
18.11.13
13:36
(30) в УТ 11 вряд ли, а в 10 или в УПП - есть. Только оно всё равно некорректно работает.


Функция СформироватьЧастьВызоваОбновленияКонфигурации(Знач ИмяАдминистратораИБ = "", Знач ИмяФайлаИнформацииОбОшибках = "",
    Знач ИспользоватьФайлОбОшибкахСПустымИменем = Ложь)
    
    ИмяЛогинаАдминистратора = ?(ПустаяСтрока(ИмяАдминистратораИБ), "", СформироватьЛогинПодключенияКИБ(ИмяАдминистратораИБ));
    
    СтрокаОбъявленияФайлаСообщенийОбОшибках = "";
    СтрокаДляВыводаДанныхВФайл = "";
        
    Если НЕ ПустаяСтрока(ИмяФайлаИнформацииОбОшибках) ИЛИ ИспользоватьФайлОбОшибкахСПустымИменем Тогда
        
        // надо проверить наличие файла для обмена, есл его нет то создать его
        СтрокаИмениФайлаИнформацииОбОшибках = СокрЛП(ИмяФайлаИнформацииОбОшибках);
                            
        СтрокаОбъявленияФайлаСообщенийОбОшибках = "
            |REM Путь к файлу для ошибок и сообщений
            |set FileInformation=""" + СтрокаИмениФайлаИнформацииОбОшибках + """
            |
            |date /t >> %FileInformation%
            |time /t >> %FileInformation%
            |set DataBaseName>>%FileInformation%";
                
        СтрокаДляВыводаДанныхВФайл = "/Out%FileInformation% -NoTruncate";
                    
    КонецЕсли;    
    
     // основной текст
    ТекстФайлаПоУмолчанию = "
        |REM Логин администратора системы
        |set AdminUser=" + ИмяЛогинаАдминистратора + "
        |
        |" + СтрокаОбъявленияФайлаСообщенийОбОшибках + "
        |
        |rem Завершение работы пользователей
        |start """" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CЗавершитьРаботуПользователей    /UCПакетноеОбновлениеКонфигурацииИБ    " + СтрокаДляВыводаДанныхВФайл + " /DisableStartupMessages
        |
        |start """" /wait %v8exe% CONFIG     %DataBase% %AdminUser% /UpdateDBCfg /UCПакетноеОбновлениеКонфигурацииИБ    " + СтрокаДляВыводаДанныхВФайл + "
        |
        |rem Разрешение работы пользователей
        |start """" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CРазрешитьРаботуПользователей    /UCПакетноеОбновлениеКонфигурацииИБ    " + СтрокаДляВыводаДанныхВФайл + " /DisableStartupMessages
        |
        |rem Запуск самой программы
        |start """" %v8exe% ENTERPRISE %DataBase% %User%  /DisableStartupMessages";
        
    Возврат ТекстФайлаПоУмолчанию;
    
КонецФункции
33 mzelensky
 
18.11.13
13:37
(30) УТ 11 - убогая недоконфа!

Смотри в 10.3
34 mistеr
 
18.11.13
13:37
(25) Надо приучать себя не каждую новую строчку своего кода тут же тестировать та боевой базе с пользователями. Культура разработки, панимаишь...

Там, где бизнесу реально нужны частые изменения, нанимают админа.
35 mzelensky
 
18.11.13
13:38
(32) Да, именно эти файлики я и подправлял. ТАм нужно еще пароль пользователя "AdminUser" прописать - иначе она будет его постоянно спрашивать.
36 mzelensky
 
18.11.13
13:40
(35) и еще учти, если во время выполнения этого батника возникнет какая-то ошибка (у меня уже бывало), то база скорее всего так и останется заблокированной - в нее никто не сможет зайти (даже в конфигуратор). Нужно заходить в консоль сервера 1С и снимать галку ручками.
2 + 2 = 3.9999999999999999999999999999999...