Автоматическое обновление конфигурации в узлах РИБ

Публикация № 143517

Разработка - Обмен данными 1С - Распределенная БД (УРИБ, УРБД)

101
При поднятии РИБ одна из существенных проблем – как автоматически обновлять конфигурацию на периферийных узлах? Научить простых пользователей заходить в конфигуратор довольно проблематично. Предлагаю довольно простое, на мой взгляд решение с минимальными доработками в конфигурацию.

Информирование

Имеет смысл информировать пользователей о том, что с обменами пришло обновление конфигурации.

Для этого в модуле приложения достаточно вставить периодически вызываемую функцию вида:

 

Функция ПостояннаяПроверкаРедкая() Экспорт
    //Раз в 5 минут
    Если ПланыОбмена.ГлавныйУзел() <> НеопределеноТогда
        Если КонфигурацияИзменена() Тогда
            ксПредупреждение("Конфигурация базы данных изменена, чтобы не образовался простой в обменах, обновите конфигурацию или свяжитесь с поддержкой 1с!" + Символы.ПС +
            "Для обновления конфигурации на точке достаточно перезайти в 1С под Администратор1, при этом будет выдан запрос на обновление. " + ТекущаяДата());
        КонецЕсли;
    КонецЕсли;
КонецФункции

 

Когда придут изменения, будет выдано окошко вида:

Обновление

Само обновление выполняется в функции ОбновитьКонфигурациюБазыДанных. Ее можно вставить при начале работы приложения или добавить в пункт меню интерфейса. Когда пользователь увидит предупреждение, он сможет выполнить обновление, когда ему будет удобно:

Функция ОбновитьКонфигурациюБазыДанных() Экспорт
    //Если конфигурация изменена, тогда нужно выполнить ее обновление...
    флКонфигурацияИзменена = КонфигурацияИзменена();
    СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();//File="C:\1cv8\Base".
    ЭтоФайловая = Найти(СтрокаСоединения, "File="); //Заменить потом на типовую функцию.

    Если флКонфигурацияИзменена И ЭтоФайловая Тогда    
        //Смотрим, чтобы в базе никого не сидело

        ~ПовторнаяПопыткаОбновления:

        флОбновлять = истина;
        Если ксВопрос(
            "Внимание! Пришли изменения конфигурации. " + Символы.ПС +
            "Рекомендуется их принять." + Символы.ПС +
            "Закройте все остальные 1С на всех компьютерах точки и нажмите ""ДА"" для Обновления." + Символы.ПС +
            "Если после нажатия ""ДА"" выскочит красное окно ошибки, закройте его (кнопка ""Закрыть"")." + Символы.ПС +
            "Если вы хотите продолжать работу без обновления (не рекомендуется) нажмите ""НЕТ""." + Символы.ПС +
            "Если вы не обновляете конфигурацию, обязательно сделайте это позже в ближайшее время."+ Символы.ПС +
            "ОБНОВИТЬ КОНФИГУРАЦИЮ?", РежимДиалогаВопрос.ДаНет,,КодВозвратаДиалога.Да) = КодВозвратаДиалога.Нет Тогда
            флОбновлять = ложь;
        КонецЕсли;

        Если флОбновлять Тогда
              
            Попытка
                УстановитьМонопольныйРежим(Истина); 
            Исключение
                ксПредупреждение("Кто-то еще работает в базе, не могу захватить базу монопольно, обновить не получается, попробуйте еще раз! " + Символы.ПС + ОписаниеОшибки());
                Перейти ~ПовторнаяПопыткаОбновления;
            КонецПопытки;

            //Создаем и запускаем скрипт на обновление базы
            СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();//File="C:\1cv8\Base".
            СтрокаСоединения = СтрЗаменить(СтрокаСоединения, "File=", "F");
            СтрокаСоединения = СтрЗаменить(СтрокаСоединения, ";", "");

            КаталогПрограммы = КаталогПрограммы();
            ИмяФайлаПрограммы = КаталогПрограммы + "\1cv8.exe";                       
            КоманднаяСтрокаОбновления = """" + ИмяФайлаПрограммы + """ config /Visible /NАвтообмен /P"""" /UpdateDBCfg /" +СтрокаСоединения;  
            //КоманднаяСтрокаЗапуска = """" + ИмяФайлаПрограммы + """ enterprise /NКассир /" +СтрокаСоединения;

            //Запускаем только несколько раз, должно помочь
            ТекстСкрипта = "";
            Для Инд = 1 по 10 Цикл //10 попыток обновить конфигурацию
                ТекстСкрипта = ТекстСкрипта + КоманднаяСтрокаОбновления + Символы.ПС;
                ТекстСкрипта = ТекстСкрипта + "if not errorlevel 1 goto pend " + Символы.ПС;
            КонецЦикла;

            ТекстСкрипта = ТекстСкрипта + "
            |:pend";

            //ТекстСкрипта = ТекстСкрипта + КоманднаяСтрока + Символы.ПС;
            //ИмяФайлаСкрипта = КаталогВременныхФайлов() + "update_1s_counter_sap.cmd";
            ИмяФайлаСкрипта = КаталогВременныхФайлов() + "run.bat";
            Ф = Новый ТекстовыйДокумент();
            Ф.УстановитьТекст(ТекстСкрипта);
            Ф.Записать(ИмяФайлаСкрипта, КодировкаТекста.OEM);

            Попытка
                ЗапуститьПриложение(ИмяФайлаСкрипта,,ложь);      
            Исключение
                ксПредупреждение("Произошла ошибка запуска скрипта обновления: " + ИмяФайлаСкрипта + " Ошибка: " + ОписаниеОшибки());
                Перейти ~ПовторнаяПопыткаОбновления;
            КонецПопытки;

            //Завершаем работу 1С
            ЗавершитьРаботуСистемы(истина);
        КонецЕсли;
    КонецЕсли;
КонецФункции

 

Суть работы алгоритма обновления – сначала проверяется, что все пользователи вышли из 1С, потом закрывается текущий сеанс, формируется командный файл run.bat со скриптом обновления конфигуратора и вызывается 10 раз. Процесс вызова конфигуратора в режиме обновления визуализируется, чтобы пользователи полностью могли контролировать и осознавать процесс.

 

Информационное сообщение с инструкцией пользователю по обновлению имеет вид:

Если не получилось заблокировать 1С, выдается сообщение вида:

101

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. dimk@a 14.07.12 20:41 Сейчас в теме
Здоровское решение. Недавно делал распределенную базу и уже довелось ее обновлять с подключением по удаленке к узлам. При слеюущем обновлении добавлю эту функцию. Спасибо!
2. fixin 3868 14.07.12 20:56 Сейчас в теме
(1) ндык, че мы только не пробовали. оказалось, самый простой вариант такой.
3. baldorc 15.07.12 01:30 Сейчас в теме
Хорошее решение, при случае использую не задумываясь :)
4. Kyrales 132 15.07.12 06:15 Сейчас в теме
Хорошая идея. Можно проверку немного модифицировать:

Функция ПостояннаяПроверкаРедкая() Экспорт

//Раз в 5 минут

Если ПланыОбмена.ГлавныйУзел() <> Неопределено Тогда
Если КонфигурацияИзменена() Тогда

Если РольДоступна("ПолныеПрава") или РольДоступна("ПравоОбновленияКонфигурации") Тогда
ОбновитьКонфигурациюБазыДанных();
иначе
Предупреждение("Конфигурация базы данных изменена, чтобы не образовался простой в обменах, обновите конфигурацию!" + Символы.ПС +
"Для обновления конфигурации на точке достаточно перезайти в 1С под Администратор (или пользователем с администраторскими правами), при этом будет выдан запрос на обновление. " + ТекущаяДата());
КонецЕсли;
КонецЕсли;
КонецЕсли;

КонецФункции
5. fixin 3868 15.07.12 10:04 Сейчас в теме
(4) можно и автоматом. Но не всегда прокатит автоматика. Если открыто две 1с-ки, то конфа не обновится автоматом, а сообщение о том, что не удалось обновить, будет доставать.
хотя согласен, можно попытаться обновить, а если не получится монопольный доступ, уже тогда сообщать.
Но лучше решение об обновлении все же принимать пользователю. Не всегда обновление проходит автоматом, и запускающийся каждые 10 минут конфигуратор будет доставать.
6. WKBAPKA 211 16.07.12 08:54 Сейчас в теме
поставил плюс т.к. самому было в лом разбираться, в типовых предусмотрено авто. обновление...
но со стилистикой надо что то делать :)

Функция ПостояннаяПроверкаРедкая()

после редкая на ум приходит не хорошее слово :)

>Когда придут изменения будет выдано окошко вида

окошко вида )

> Закройте все остальные 1С на всех компьютерах точки :)

ну и использовать GoTo признак плохого тона в программировании...
vlasin; DrAku1a; yansen; +3 Ответить
11. fixin 3868 16.07.12 12:39 Сейчас в теме
(6) не буквоедствуйте.
Как сделано автообновление в типовых, не помню уже. У меня типовая ут 10.3, автообновления там нет, правда древний релиз.
Окошко вида - потому что текст там может быть другой, зависит от организации.
Использовать GoTo можно, нам об этом рассказывали в универе, где я учился на программиста. Альтернатива циклу while true в небольших участках кода - вполне.
23. sa1m0nn 22 18.07.12 09:28 Сейчас в теме
(11)

Хорошая идея, спасибо, +2.

ЗЫ: Но про ГоТо сказали правильно - это моветон (меня реально высаживает :)). Используйте вызов процедуры.
7. zamichnik 16.07.12 09:08 Сейчас в теме
Весьма симпатичная идея, большое спасибо!
Непременно воспользуюсь :)
8. Cyberboy 118 16.07.12 10:45 Сейчас в теме
А пользователь который делает обмен должен иметь полные права? У меня на РИБ узлах есть пользователь Обновление, при запуске этого пользователя, автоматом запускается обновление с главным узлом и после прохождения обновления сеанс пользователя завершается, у всех остальных пользователей стоит ограничение в правах. Будет при таком методе запускать "Автоматическое обновление конфигурации в узлах РИБ" у пользователя "Обновление"?
10. fixin 3868 16.07.12 12:36 Сейчас в теме
(8) есть два права. первое - это право на изменение конфы. без него файл с изменениями конфы не прочитается и дело до "ОбновитьКонфигурацию" даже не дойдет. Проще решить эту пролему, запуская обмен данными в привелигированном модуле, т.к. право на изменение конфы - весьма опасное, его нельзя давать на точках.

Второе право - это право на обновление конфигурации БД. Его можно дать даже пользователю без пароля, как у меня, "Автообмен".
9. glek 112 16.07.12 10:48 Сейчас в теме
12. ak0710 137 16.07.12 13:54 Сейчас в теме
Ваш способ конечно хорош, у каждого это идея приходит по разному , год или два назад Я настраивал авто обмен в одной фирме у них была типовая ИБ , и не было смысла убирать замок с конфигурации.
Каждую ночь в головной базе производилась выгрузка планов обмена например в 23.00 (отключались все пользователи , делался бэкап перед этим)
В базе филиала :
В 01:00 в базе филиала запускалось чтение плана обмена (перед чтение отключение всех пользователей и бэкап)
В 01:30 1С с командной строкой /UpdateDBCfg
В 02:00 повторное чтение и выгрузка

Обмен с 6ти филиалами работает по сей день, здесь обновление проходило 1 раз ночью .

Ваш случай очень удобен если обмен проходит по несколько раз в день , а если одного раза достаточно , то не обязательно трогать конфигурацию.
13. fixin 3868 16.07.12 14:08 Сейчас в теме
(12) в моем случае компьютеры на ночь выключаются, т.е. все должно происходить с выгоном пользователей...
но я думаю, можно и на скриптах написать, чтобы не менять конфу, почему бы нет... ;-)
14. ak0710 137 16.07.12 14:23 Сейчас в теме
(13) Я за то чтобы как можно меньше всего трогать в типовой конфигурации , можно добавить просто еще командную строку с отключением ПК после обмена , каждый сам выберет что ему надо , возможно ваш способ Я тоже когда нибудь использую
15. fixin 3868 16.07.12 15:09 Сейчас в теме
(14) у нас обновление конфы происходит не только ночью, а в любой момент.
16. kiros 51 16.07.12 15:52 Сейчас в теме
Да, идея очень достойная, мы реализовывали так, если динамическое обновление, то автоматически обновлялось, и стандартная обработка требовала от пользователей перезайти (со счетом до 3-х, т.е. не больше трех раз можно отказаться от пере захода в 1с). А в случае монопольного обновления инициировали блокировку подключения с отсрочкой 5 минут, и опять же стандартными средствами получалось выгнать, после чего спокойно обновлялись и снимали блокировку, как то так :)
17. fixin 3868 16.07.12 16:35 Сейчас в теме
(16) ну дык печатайте на ИС и зарабатывайте плюсики. ;-) Я не претендую на идеал, но система рабочая.
18. Программулькин 286 17.07.12 10:12 Сейчас в теме
Честно сказать - полная какашка!, но минус ставить не буду ибо как вариант имеет права на жизнь.

Во первых, это же : автоматическое обновление конфигурации!, какие нахрен окошки на "да" и "нет", какое нафиг "не могу захватить монопольно" - бред! У меня если пришли обновления, то всем сообщение о сохранении документов и баста - счётчик тикает, далее всех кидает и обновляет, причём во время обновления хрен кто зайдет.Обновилось, пожалуйста, работайте, вмешательство рук человека 0, особенно юзеров!
правда минус есть, пришлось внести изменения в конфу: добавлены 4 процедуры 1 константа и 1 форма и 1 роль

Во вторых, " КаталогПрограммы = КаталогПрограммы();" тоже бред. Обновил платформу и всё, приплыли, файл не найден!
У меня у юзеров тупо диск вставил запустил батник и всем 15м платформа новенькая легла без всяких там вопросов "могу" "не могу". Похер на антивири и фаерволы, за исключением вистовской попрошайки о том кто запустил файл, и то настраиваешь на низкий уровень и попёр!

обмен раз в 40 минут, тобишь всегда актуальная база и конфа.
yoyoman; papami; +2 Ответить
19. fixin 3868 17.07.12 11:15 Сейчас в теме
(18) понты так и сверкают. Так где же ваша замечательная программма? В файловой версии конечно, можно поставить убивцу 1с на все компьютеры точки (2-3 штуки). Но нужно управление этим убивцем, короче задача излишне усложняется. Про КаталогПрограммы я ваш нюанс не понял, как бе. В общем, готов рассмотреть ваш супер-пупер-вариант, когда он тут появится. Пока это только проджэкт, который критиковать невозможно за его отсутствием в мире реальном.
20. Программулькин 286 17.07.12 12:24 Сейчас в теме
(19)
ниии, мой вариант далёк от идеала, просто он приближён к автоматизму и тоже имеет право на жизнь, тобишь влияние человеческого фактора 0. К вашему же варианту замечания я нарисовал, просто мне есть с чем сравнить, вот и всё.
Я тоже пробовал юзать КаталогПрограммы(), но не вышло. Она использует "C:\Program Files\1cv82\8.2.**.порядковый номер.", допустим "C:\Program Files\1cv82\8.2.15.317", при обновлении платформы в 1с8 старая платформа остается, и добавляется новая. Итог: в каталоге C:\Program Files\1cv82\8.2.15.317 имеем несколько папок 8.2.15.317, 8.2.15.318,8.2.15.319 и тд + common и conf. Так вот при обновлении платформы, Ваш путь к файлу слетит, и файл будет не найден. В 7ке такое прокатывало, но там по-моему было что-то вроде КаталогИБ() или как то так, тобишь каталог с базой, но тогда исключается клиент-серверный вариант, но это уже лирика. Свой метод пока выкладывать не намерен, ибо лень. В данном случае я использовал жёский путь:"C:\Program Files\1cv82\common\имя файла", ибо, при использовании автоматической установки платформы на клиенте, путь стандартный и не меняется.



вот кусок
Процедура СчетчикВремени() Экспорт

Константы.ВремяВСекундахДоВыбросаИзБазы.Установить(Константы.ВремяВСекундахДоВыбросаИзБазы.Получить()-1);

КонецПроцедуры

Процедура СообщенияОВремени() Экспорт

ОстСекунд = Константы.ВремяВСекундахДоВыбросаИзБазы.Получить();
//не скажу формулу перевода
чч = xx;
мм = xx;
сс = xx;

Если ОстСекунд > 0 Тогда
ФормаОстаткаВремени.ЭлементыФормы.КоличествоСекунд.Значение = "До конца работы сеанса осталось"+Символы.ПС+Дата(так фигню всякую можно вставить,чч,мм,сс);
Если ФормаОстаткаВремени.Открыта() Тогда
ФормаОстаткаВремени.Обновить();
Иначе
ФормаОстаткаВремени.Открыть();
КонецЕсли;
ИначеЕсли ОстСекунд <= 0 Тогда
ФормаОстаткаВремени.ЭлементыФормы.КоличествоСекунд.Значение = "БАЙ-БАЙ";
ОтключитьОбработчикОжидания("СообщенияОВремени");
// Если раньше выйти то блокировка установится "Истина"
Константы.БлокировкаВхода.Установить(Ложь);
//строка которая выкидывает
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;

КонецПроцедуры

Процедура ЗакрытиеСеанса() Экспорт

Если КонфигурацияИзменена() Тогда
Если РольДоступна("gvАвтообмен") тогда
Файл1 = Новый Файл("C:\Program Files\1cv82\common\UpdateDBCfg.bat");
Если Файл1.Существует() Тогда
//Проверка на последнего пользователя
ТекущийРежим = СоединенияИБ.ПараметрыБлокировкиСеансов(Истина);
КоличествоСеансов = ТекущийРежим.КоличествоСеансов;
Если КоличествоСеансов <= 1 Тогда
ПропуститьПредупреждениеПередЗавершениемРаботыСистемы = Истина;
ЗапуститьПриложение("C:\Program Files\1cv82\common\UpdateDBCfg.bat");
Иначе
Возврат;
КонецЕсли;

Иначе
ОтправитьПисьмо();
Сообщить("Файл UpdateDBCfg.bat не обнаружен!")
КонецЕсли;
Иначе
Если НЕ Константы.БлокировкаВхода.Получить() Тогда
Константы.БлокировкаВхода.Установить(Истина);
Константы.ВремяВСекундахДоВыбросаИзБазы.Установить(61);
КонецЕсли;
ПодключитьОбработчикОжидания("СчетчикВремени",1);
ПодключитьОбработчикОжидания("СообщенияОВремени",1);
ОтключитьОбработчикОжидания("ЗакрытиеСеанса");
КонецЕсли;
Иначе
//после сохранения снимается режим блокировки
Константы.БлокировкаВхода.Установить(Ложь);
КонецЕсли;

КонецПроцедуры

Процедура НачатьПроверкуНаРазличияКонфигураций() Экспорт
ПодключитьОбработчикОжидания("ЗакрытиеСеанса",15);
КонецПроцедуры

Процедура ОтправитьПисьмо()
Сообщить ("Письмо Отправлено");
//а пока пытаюсь обучит 8.2 обучить работать на ssl протоколах (stunel не предлагать)
КонецПроцедуры
21. fixin 3868 17.07.12 13:28 Сейчас в теме
(20) все равно про каталог программы не догнал. разве в 82 он не показывает на каталог, из которого запущен exe-файл?
Дядя, а если у пользователя запущен отчет или 1С повис, 1с у вас автоматом не выйдет. Это я так, на всякий случай намекаю как бе. Из практики.
22. Программулькин 286 18.07.12 04:00 Сейчас в теме
(21) "все равно про каталог программы не догнал" ---faspalm...Тяжелый случай, делаю последнюю попытку.При обновлении платформы каталог программы меняется, т.е. создается новый.
"разве в 82 он не показывает на каталог, из которого запущен exe-файл?" именно так! После обновления у вас будет новый каталог, а бантик останется в старом!
1.Если у юзера повис 1с, то да согласен,ни хрена не выйдет, НО обмен 1 раз в 40 минут, за 40 минут юзер перезапустит свой висяк, и обмен состоится.
2.Если "отчёт" и любая другая транзакция, то , в этом вся прелесть в отличии от штатной блокировки, она ждет когда закончится "отчёт", и врубает счетчик, и обмен, опять же таки, состоится. Это уже проверено на практике.
24. fixin 3868 18.07.12 10:37 Сейчас в теме
(22) и что, функция КаталогПрограммы() не вернет этот каталог? А что она вернет? Я по-прежнему не догоняю че-та... Ну даже если вернет базовый каталог, в нем можно замутить поиск EXE-файла, в чем проблема-то.

Юзверь может и перезапустит, а может и нет, может он ваще ушел домой с работы...

(23) Гото - не моветон. В умелых руках. Я вам как программист, получивший высшее образование по специальности, говорю.
30. sa1m0nn 22 23.07.12 10:55 Сейчас в теме
(24)
>> Я вам как программист, получивший высшее образование по специальности, говорю.

Вы, наверное, один тут программист с высшим образованием :)
31. fixin 3868 23.07.12 16:29 Сейчас в теме
(30) без понятия. речь идет о высшем профильном образовании.
32. sa1m0nn 22 24.07.12 08:36 Сейчас в теме
(31)

Тысяча извинений за офф...
Вероятно, я на сантехника учился...
Да и Эдсгеру Дейкстре, наверно, далеко до Ваших преподавателей...
http://ru.wikipedia.org/wiki/GOTO
Тысяча извинений, это всего лишь моё скромное мнение.
33. fixin 3868 24.07.12 11:33 Сейчас в теме
(32) курите раздел "Оправданное применение" по вашей ссылке. Мы изучали GoTo в рамках курса "Структурное программирование". Вы бы еще на BREAK ополчились, это тот же скрытый GoTo. В своем коде я использую Goto вместо цикла Repeat Until, которого нет в 1С, и это его нормальное применение. Оно более наглядно, чем замена на While (true)
daedal; vadimlp77; VZhulanov; +3 Ответить
74. user609516_rrustam11983 01.06.18 13:23 Сейчас в теме
(33) Программисту который использует GoTo нужно забить гвоздь в голову
75. fixin 3868 01.06.18 17:23 Сейчас в теме
(74) скорее програмисту, который не знает чем отличается плохой GOTO от хорошего.
25. Программулькин 286 18.07.12 12:22 Сейчас в теме
ыыыы "и что, функция КаталогПрограммы() не вернет этот каталог? А что она вернет? " да все верно, она именно это и сделает. Вот что у тебя получится: текущая платформа 8.2.15.317. Ты туда кидаешь свой бантик. Юзаешь КаталогПрограммы() - результат: все работает. Далее проходит месяц. Устанавливаем платформу новую. И вуаля, Ты уже юзаешь новый каталог программы, а именно: 8.2.15.318, где нет твоего бантика, результат - ошибка.Так понятно?
Если и так не понятно, то снеси все платформы, установи одну сделай обмен, а затем обнови платформу и увидишь ошибку, если ошибки не будет, тогда ты гений, и тогда обязан поделится как ты такое провернул!
Далее:
"Юзверь может и перезапустит, а может и нет, может он ваще ушел домой с работы... " - 90% случаев перезапустит, ибо ему 1с нужна, а вот если зависло и он ушёл домой, это да - косяк. Дык я и говорю, что мое решение далеко от идеала, НО в твоем случае это тоже косяк )), тоже не пройдет обновление :))) у тя есть решение такой проблемы?
26. fixin 3868 18.07.12 12:42 Сейчас в теме
(25) я батник создаю при каждом запуске автоматически из кода программы, а не кидаю туда. Как-то так. Так что никаких проблем у меня с этим не возникнет. Так что у меня косяков нету. Пользователя задолбает напоминалка и он обновится. Проверено на пользователях.
27. fieryfist 15 19.07.12 10:42 Сейчас в теме
отличная публикация, как раз настраиваю РИБ искал что-то подобное. Подскажите как настроить вызов функции ПостояннаяПроверкаРедкая() каждые пять минут, я сделал это через регламентное задание, но это не удобно т.к. сообщение выдается только пользователю для регламентных заданий, а у нас всегда запущено два сеанса.
28. fixin 3868 19.07.12 11:02 Сейчас в теме
(27) Через ПодключитьОбработчикОжидания
astraborz; fieryfist; +2 Ответить
29. Созинов 19.07.12 13:46 Сейчас в теме
Спасибо, возьмем на заметку.
34. maria7777777 14 25.07.12 09:00 Сейчас в теме
Да идея не плохая, но вот пользователям на удаленных точках полные права не могу дать, противоречит корпоративной безопасности...
35. fixin 3868 25.07.12 11:22 Сейчас в теме
(34) а зачем им полные права, не понял?
36. CnupT 53 27.07.12 06:23 Сейчас в теме
Не совсем понял, как согласуются
Для обновления конфигурации на точке достаточно перезайти в 1С под Администратор1

и
КоманднаяСтрокаОбновления = """" + ИмяФайлаПрограммы + """ config /Visible /NАвтообмен /P"""" /UpdateDBCfg /" +СтрокаСоединения;

Т.е. они сначала заходят под Администратор1, потом программа заходит под Автообмен? Зачем так сложно?
38. fixin 3868 27.07.12 08:21 Сейчас в теме
(36) Администратор1 - это логин для работы под пользователем. Пароль пустой.
Автообмен - это пользователь, если зайти под которым, то произойдет автообмен и 1с сразу же выйдет. Сейчас думаю, что можно было бы и без этого обойтись, в принципе. Пароль пустой.


(37) через обработчик ожидания. запускается периодически проверка, если автообмена давно не было (по истории обмена смотрим), то создаем скрипт, сохраняем его во временный файл, запускаем скрипт, а из скрипта коннектимся к 1с по ком-соединению и выполняем в ком-соединении обмен. Только такой расклад позволяет запустить автообмен полностью в невидимом режиме, чтобы юзверь его не видел. и юзверь может его снять через диспетчер задач, если чё.
37. CnupT 53 27.07.12 06:29 Сейчас в теме
И еще момент. Как у Вас на точках организован сам процесс периодического обмена?
Пользователи держат включенными 2 окна 1с, или планировщиком Windows запускается?
Просто 2 окна крайне неудобно, а раз в NN минут открывающееся и закрывающееся окно
1С и того хуже.
Всю голову сломал как бы это покрасивше реализовать. Пока что с помощью v82.Automation
добился того, чтобы 1С висела себе в памяти без видимых проявлений, но при обновлении
конфигурации ее же выгружать надо, потом опять как-то загружать...
39. yoyoman 06.08.12 09:30 Сейчас в теме
А у нас как:
Около 20 рибов, обмены идут раз в 15-20 минут.
Cтандартное назначенное задание средствами Windows Server 2003, которое инициирует вход в 1с под пользователем Obmen. В настройках обмена стоит: Выполнять обмен при входе в систему пользователя Obmen.
Назначенное задание инициирует два таких запуска, один с ключом /UpdateDBCfg, а второй без.
При динамическом обновлении никаких проблем не возникает, и в течение дня всегда актуальные обмены. Не динамические обновления стараемся делать ночью. Ночью все серваки перезагружаются и активных сеансов 1с не остается. (также можно обычным батником в одну строчку перезапускать службу 1с).
Если же надо срочно не динамически обновиться средь бела дня, в каталоге обмена валяется psexec.ехе. Через него рассылается сообщение пользователям (через netsend) о предупреждении завершения сеансов 1с. Через psexec же перезапускается служба (или через taskkill убиваются все процессы 1с.ехе) и выполняется вход в 1с с ключом /UpdateDBCfg. Миссия выполнена. Изменений в конфигурации никаких. Все сделано тройкой батников по паре строк в каждом батнике.
40. fixin 3868 06.08.12 10:32 Сейчас в теме
(39) много отличий у нас с вами. я тоже сначала делал батником.
Но у меня есть нюансы:
1. Машины работают только днем
2. Обновления конфы чаще всего тоже приходят днем
3. Из-за глюков 1с задания, запущенные под фоновым пользователем винды имеют свойство зависать и только перезагрузка спасает, а потом она опять стартует и опять виснет. Поэтому отказался от запуска под фоновым юзверем...
4. Прописывать в 1С ручками windows-пользователя root на каждой из 40 узлов РИБ как-то стремно. Проще назначить пользователя с авторизацией из 1с, а не винды.
... и еще много нюансов.

Как-то так... Так что я понимаю ваш ура-оптимизм, но в реальной жизни все сложнее бывает
41. yoyoman 06.08.12 10:54 Сейчас в теме
1) Можно утром же обновлять, в 9 утра пришли на работу. В 9:01 обновление конфы, в 9:02 все радуются
2) У нас тоже днем идет в диапазоне 15-20 минут. С одним РИБом, и того каждые 2-3 минуты.
3) У нас за 4 года крайне редко случаются подобные проблемы, но легко мониторятся и лечатся обычным schtasks (запускаемым в пакетном режиме). Если перезагражать компьютер из-за зависшего назначенного задания - проблемы тогда надо искать в винде, а не в 1с.
4) В чем стремно? я не совсем понял, пользователь обмена то 1совский. Назначенное задание лишь под этим пользователем инициирует вход.
42. fixin 3868 06.08.12 11:07 Сейчас в теме
(41) ха, наивный чукотский юноша. у клиента 40 магазинов с самым разным временем открытия, к тому же обновления обычно происходят в середине дня, а не в начале и не в конце. Это как бы не проблема, можно предупреждать пользователя сделать обмен, тем же net send, как бы...

А как у тебя сделан выход из под пользователя obmen, или он так и болтается открытым после автообмена? или ты его насильно прибиваешь?

В том-то и дело, что разбираться с проблемами виндов на 40 точках не очень охота... Проще запускать невидимо под текущим виндовым пользователем, тогда всегда можно прибить через таски.

У меня не было задачи не менять конфу, поэтому я все сделал через 1с, в том числе и для того, чтобы не напрягать админов, ручные настройки заданий требуют времени, все задачи запускаются из самой 1с и все в шоколаде. Это возможно, потому что в течении дня 1с обычно открыта...

По поводу виндового пользователя - я подумал, что obmen у тебя виндовый пользователь, ну да ладно... ;-)
43. 1С_Мастер 06.09.12 12:05 Сейчас в теме
Перейти ~ПовторнаяПопыткаОбновления;


Таки я дико извиняюсь, но при всем уважении к автору, за использование goto надо руки вырывать.
44. fixin 3868 06.09.12 12:24 Сейчас в теме
(43) оператор гото допустимо использовать, но не всегда. там где использовал я - допустимо
45. 1С_Мастер 06.09.12 13:03 Сейчас в теме
(44)А какова необходимость использовать goto там, где без него можно прекрасно обойтись?
46. fixin 3868 06.09.12 13:32 Сейчас в теме
(45) стилистическая необходимость. Т.к. в 1с отсутствует цикл UNTIL, а GOTO смотрится красивее и проще вместо замены цикла UNTIL бесконечным циклом с брик.
47. relanium86 14 04.06.13 12:21 Сейчас в теме
Никто не пробовал если запускать через скрипт в режиме обновления конфигурации, если есть возможность динамического обновления, если в базе работают пользователи отработает скрипт?
48. sdv88 87 26.06.13 16:58 Сейчас в теме
а как проверить пройдет ли динамическое обновление или нет?
49. Linx-p 09.10.13 11:24 Сейчас в теме
(48) sdv88, проверить прошло ли обновление можно запустив обмен ;)
50. Muppo 26.05.15 09:45 Сейчас в теме
А есть вариант не с файловым обновлением а серверным с БД?
51. fixin 3868 26.05.15 13:38 Сейчас в теме
(50) Muppo, нету. Сами напишите, несложно.
52. Xershi 714 19.04.16 10:19 Сейчас в теме
Я так понимаю уже тут спецы определили какой вариант самый лучший, чтобы эту операцию (выполнение обмена на автомате при изменении конфигурации в ЦБ) выполнять на автомате?

Подскажите лучшее решение?
А то сегодня ручками все проделал. Не охота каждый день убивать на это 20 минут))
53. fixin 3868 19.04.16 12:35 Сейчас в теме
(52) ну у меня ваще автоматом делается.
1. отключается главный узел.
2. через командную строку загружается конфа целиком.
3. подключается главный узел.

но это если целиком конфу пихать.


а так все же описано, берите скрипт и юзайте.
54. Xershi 714 19.04.16 12:53 Сейчас в теме
(53) об этом и речь. У нас может и 2 раза на день конфа обновиться. А может быть день и не обновляем. Как разработки внедряем.

Как такой вариант обставить?

Пока в нашей удаленке пользователи не работают. Но в будущем планируется.

Ознакомился со статьей, но я так понимаю всю работу делает батник?

У вас есть более развернутая статья со всеми примерами? А то пока это задача на втором плане, но хотелось бы разобрать вопрос в кратчайшие сроки!
55. fixin 3868 19.04.16 14:11 Сейчас в теме
(54) куда уж развернутее. Если Вы не понимаете смысла этой статьи, боюсь у Вас не хватает понимания механизмов работы РИБ.
56. Xershi 714 19.04.16 14:21 Сейчас в теме
(55) речь идет об
run.bat

В статье нет разбора этого файла. Вот что более развернуто интересует.
57. fixin 3868 19.04.16 17:26 Сейчас в теме
(56) А что run.bat?
В нем несколько раз запускается обновление конфигурации базы данных, чтобы полученная конфа была принята (10 попыток вроде).
Командная строка вида:
config /Visible /NАвтообмен /P"""" /UpdateDBCfg /" +СтрокаСоединения;
58. Xershi 714 21.04.16 09:42 Сейчас в теме
(57) а попытки для чего? Конфа же один раз обновляется для чего 10 раз?
59. fixin 3868 21.04.16 13:22 Сейчас в теме
(58) батник запускается после выхода из 1С.
вообще можно вместо батника юзать скрипт vbs, батник то туповат.
Повторение потому что 1с медленно освобождает файл базы, поэтому первые 1-2 прогона могут не сработать, файл базы еще заблокирован после выхода из 1с.
60. Xershi 714 21.04.16 14:51 Сейчас в теме
(59) у меня например 1С работает через компоненту с пауршел. Суть в том что в винде нужно скрипт написать, который отработает определенный сценарий запуска 1С?
61. fixin 3868 21.04.16 15:40 Сейчас в теме
(60) да. хоть пауэршелл, хоть bat, хоть vbs-скрипт, без разницы. Главное чтобы 1с после выхода запустила скрипт.
62. Xershi 714 21.04.16 16:39 Сейчас в теме
(61) а текст скрипта ты в (57) написал полный?
Что туда конкретно запихнуть?
63. fixin 3868 22.04.16 13:57 Сейчас в теме
(62) да, там 10 раз запускается 1с с ключом "config /Visible /NАвтообмен /P"""" /UpdateDBCfg /" +СтрокаСоединения;", для того, чтобы принять изменения конфигурации. Т.е. чтобы обновить конфигу, ключ: UpdateDBCfg
64. Xershi 714 29.04.16 09:47 Сейчас в теме
(63) посмотрел, как сделан механизм в БП2, сейчас вожусь с адаптацией для любой конфигурации. У нас просто конфа еще с 8.1 и там нет некоторых модулей. А так будет универсальный механизм, скачал подсистему поставил и не паришься!
65. Xershi 714 29.04.16 17:11 Сейчас в теме
В типовой выполняется такой код:
//Окончаение завершения работы пользователей
		//Обновление конфигурации ИБ                	
		Sh = Новый COMОбъект("WScript.Shell");
		//Обновим конфигурацию БД
		LineExe = """" + v8exe + """ CONFIG /S" + ServerName + ":" + Формат(KlasterPortNumber,"ЧГ=0") + "\" + InfoBaseName + " /N""" + InfoBasesAdminName + """ /P""" + InfoBasesAdminPass + """ /WA- /UpdateDBCfg /UC""" + LockPermissionCode;
		Sh.Run(LineExe, 5, True);
		


Почему он его с первого раза не обновляет?
66. Xershi 714 29.04.16 17:30 Сейчас в теме
/Visible

Добавил ключ видимости, он получается что просто не успевает открыть конфигуратор?
67. Xershi 714 29.04.16 17:41 Сейчас в теме
//Окончаение завершения работы пользователей
			//Обновление конфигурации ИБ                	
			Sh = Новый COMОбъект("WScript.Shell");
			//Обновим конфигурацию БД
			LineExe = """" + v8exe + """ CONFIG /Visible /S" + ServerName + ":" + Формат(KlasterPortNumber,"ЧГ=0") + "\" + InfoBaseName + " /N""" + InfoBasesAdminName + """ /P""" + InfoBasesAdminPass + """ /WA- /UpdateDBCfg /UC""" + LockPermissionCode+"/Out"+"D:\Bukanov\РИБ\dump.txt"+" -NoTruncate";
			Sh.Run(LineExe, 0, True);
			


Добавил /Out"+"D:\РИБ\dump.txt"+" -NoTruncate, как и было в изначальной версии, с файлом не хотел мудрить, тогда операция идет долго и гарантировано обновляет конфигурацию.
В понедельник поиграюсь еще, но думаю я почти закончил подсистему.
68. fixin 3868 30.04.16 00:38 Сейчас в теме
69. Xershi 714 02.05.16 16:45 Сейчас в теме
(68) кстати подскажи как правильно реализовать такую штуку:
Если ПланыОбмена.ГлавныйУзел() <> Неопределено Тогда
		
		Если КонфигурацияИзменена() Тогда			
			
			ОтключитьОбработчикОжидания("ПроверкаНаОбновлениеРИБ");
			
			СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
			Если СтрЧислоВхождений(ВРег(СтрокаСоединения), "FILE=") Тогда
				#Если Клиент Тогда
					Предупреждение("Конфигурация базы данных изменена, чтобы не образовался простой в обменах, обновите конфигурацию или свяжитесь с поддержкой 1с!" + Символы.ПС +
					"Для обновления конфигурации на точке достаточно перезайти в 1С под Администратором, при этом будет выдан запрос на обновление. " + ТекущаяДата());
				#КонецЕсли 				
				ОбработкаОбновлениеКонфигурации = Обработки.ОбновлениеКонфигурации.Создать();
				ФормаОбработки = ОбработкаОбновлениеКонфигурации.ПолучитьФорму();
				ФормаОбработки.Открыть(); 
			Иначе				
				МодульРегламентныхЗаданий.ОбновлениеКонфигурации();				
				#Если Клиент Тогда
					Предупреждение("Конфигурация базы данных изменена, чтобы не образовался простой в обменах, завершите работу!" + Символы.ПС +
					"Конфигурация будет обновлена автоматически: " + Строка(ТекущаяДата()+300));
				#КонецЕсли				
			КонецЕсли;			
			
		КонецЕсли;
		
	Иначе
		
		ОтключитьОбработчикОжидания("ПроверкаНаОбновлениеРИБ");
		
	КонецЕсли;
Показать


Т.е. в чем вопрос: Как правильно запустить процедуру 1 раз в клиент-серверном варианте?
Делать проверку заблокирована ли база? Если она уже заблокирована, значит считать что обновление пошло? Но когда я отлаживал, скрипт вылетал в ошибки (криво 1С скрипт написали) и база будет заблокирована и не обновлена.

70. fixin 3868 03.05.16 10:23 Сейчас в теме
(69) запускай в цикле и анализируй ответ.
71. Xershi 714 03.05.16 12:31 Сейчас в теме
(70) анализ через что делать. Пользователей много, а если что пойдет не так чем восстановить без участия администратора?
72. fixin 3868 03.05.16 21:36 Сейчас в теме
(71) а что там восстанавливать то? можно проанализировать ситуацию и предложить пользователю обновить конфигурацию или выйти, например.
73. sir 2 20.02.17 12:50 Сейчас в теме
У меня вот что получилось , немного подредактировал процедуру

запускается в фоновом задании, если конфигурация изменена

СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
		
		Попытка
			УстановитьМонопольныйРежим(Истина); 
		Исключение
			//ЗаписатьВЖурнал("Обновление ИБ","Не удалось установить монопольный режим. "+ ОписаниеОшибки(),Истина);
		КонецПопытки;
					
		КаталогПрограммы  = КаталогПрограммы();
		ИмяФайлаПрограммы = КаталогПрограммы + "1cv8.exe";
		ИмяФайлаПрограммы = СтрЗаменить(ИмяФайлаПрограммы,"Program Files\","Program Files (x86)\");
							
		КоманднаяСтрокаОбновления = """" + ИмяФайлаПрограммы + """ DESIGNER /UpdateDBCfg -server /IBConnectionString" +СтрокаСоединения+" /N"+Пользователь+" /P"+Пароль; 
		СтрокаСоединения = СтрЗаменить(СтрокаСоединения,"""","""""");
		КомандаЗапускаПриложения  = " /RunEnterprise ""ENTERPRISE /IBConnectionString" +СтрокаСоединения+" /N"+Пользователь+" /P"+Пароль+" /DisableStartupMessages /CUpLoad"" "; 
		
		КоманднаяСтрокаОбновления = КоманднаяСтрокаОбновления +  КомандаЗапускаПриложения;
				
		//ЗаписатьВЖурнал("Обновление ИБ", "КоманднаяСтрокаОбновления  "+КоманднаяСтрокаОбновления);
		
		ТекстСкрипта = "chcp 1251"+Символы.ПС+"taskkill /F /IM 1cv8.exe"+Символы.ПС;
		Для Инд = 1 по 10 Цикл 
			ТекстСкрипта = ТекстСкрипта + КоманднаяСтрокаОбновления + Символы.ПС;
			ТекстСкрипта = ТекстСкрипта + "if not errorlevel 1 goto pend " + Символы.ПС;
		КонецЦикла;
		
		ТекстСкрипта = ТекстСкрипта + "
		|:pend";
		
		ИмяФайлаСкрипта = КаталогВременныхФайлов() + "UpdateDBCfg.bat";
		ФайлСкрипта = Новый ТекстовыйДокумент();
		ФайлСкрипта.УстановитьТекст(ТекстСкрипта);
		ФайлСкрипта.Записать(ИмяФайлаСкрипта,КодировкаТекста.OEM);
		
		//ЗаписатьВЖурнал("Обновление ИБ", "ИмяФайлаСкрипта  "+ИмяФайлаСкрипта);
		
		Попытка
			ЗапуститьПриложение(ИмяФайлаСкрипта,,ложь);      
		Исключение
			//ЗаписатьВЖурнал("Обновление ИБ", ОписаниеОшибки(),Истина);
		КонецПопытки;
		
	
Показать
Оставьте свое сообщение

См. также

Как отвязать информационную базу от РИБа -1

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Краткая инструкция для новичков о том, как в 2 клика отвязать информационную базу от РИБа.

03.05.2018    9096    user861285    10       

Расширения конфигурации и РИБ, друзья или враги? Или как мы передаем расширения подчиненным РИБ узлам 43

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Читая комментарии к курсу касательно новых возможностей расширений конфигурации, которые привнес релиз 8.3.11, на одном из известных сайтов с курсами, я обратил внимание, что коллегам приходится отказываться от расширений из-за решения перейти на РИБ. Мы сами относительно недавно начали переходить на РИБ, и мы также активно пользуемся расширениями и в этой статье я хотел бы рассказать, как мы решили эту проблему.

24.11.2017    13988    markers    8       

Восстановление обмена в РИБ. Запущенный случай 17

Статья Системный администратор Программист Нет файла v8 Россия Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Удачная попытка восстановить обмен в РИБ при большом количестве объектов обмена и ошибках при обмене.

03.04.2017    11637    peterxx    13       

Что делать, если параметр запуска /resetmasternode приводит к вылету с дампом 10

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Для тех, кто столкнулся с проблемой отключения узловой базы от главного узла через параметр запуска /ResetMasterNode.

01.04.2017    12594    therva    4       

Проблема с обновлением типовой конфигурации УТП 1.2 (Украина) в дочернем узле 2

Статья Системный администратор Нет файла v8 1cv8.cf Украина Бесплатно (free) Распределенная БД (УРИБ, УРБД)

При обновлении конфигурации в дочернем узле РБД , в случае, если обновление добавляет предопределенные элементы справочников, невозможно загрузить файл обмена стандартными средствами

15.02.2017    10365    bulpi    4       

Конфигурация узла распределенной ИБ не соответствует ожидаемой 11

Статья Системный администратор Нет файла v8 Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Есть куча материалов, где описано решение возникающей ошибки при обмене с РИБ, но ни одно не помогло. Пришлось включить мозг, и, о чудо, было найдено простое решение.

26.01.2017    17915    virtmon    29       

Планы обмена. Управляемый режим блокировок 131

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Статья о том, как устроен объект конфигурации 1С:Предприятие 8 "План обмена", в том числе на уровне СУБД SQL Server. Анализируются особенности его использования при управляемом режиме блокировок.

28.11.2016    34863    zhichkin    16       

Highload обмен данными: постановка задачи 3

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad) Распределенная БД (УРИБ, УРБД)

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

04.11.2016    11962    zhichkin    3       

РИБ 200 узлов. Середина пути 116

Статья Системный администратор Программист Нет файла v8 Розница Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Между настройкой и поддержкой РИБ на 2 узла и на 10 большой разницы нет, а вот когда число удаленных точек переваливает за сотню, приходится решать уже совсем другие вопросы

25.10.2016    34148    comol    215       

Корректное отключение от главного узла РИБ и создание самостоятельной БД. Быстрое создание/восстановление узла РИБ без выгрузки начального образа для конфигураций на основе БСП 52

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Распределенная БД (УРИБ, УРБД)

В публикации описан один из способов создания тестовой БД для разработки с актуальными данными, быстрого восстановления работоспособности РИБ при "падении" одного из узлов, или "быстрого" создания/восстановления узла РИБ без выгрузки начального образа для конфигураций на основе БСП.

16.02.2016    85598    asg.aleks    12       

Автоматическое обновление конфигурации в узлах РИБ 22

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Вариант автоматического обновления конфигурации (без участия пользователей) периферийной базы РИБ. Очень простой способ без необходимости внесения кода в конфигурацию 1С. В дополнение к публикации http://infostart.ru/public/143517/. Спасибо автору, навел на эту идею!

22.01.2016    20981    Kitri    4       

Отладка конвертации данных 2.1 в конфигурациях, построенных на БСП 2.1 (БП 3.0, УТ 11 etc.) 49

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Распределенная БД (УРИБ, УРБД) Обмен через XML БСП (Библиотека стандартных подсистем)

Отладка процесса выгрузки/загрузки данных при проведении синхронизации в новых конфигурациях 1С может вызвать (у меня вызвала) некоторые затруднения. О них и пойдёт речь.

29.10.2015    31676    NittenRenegade    16       

Как я восстанавливал разрушенную базу 45

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Архивирование (backup) Распределенная БД (УРИБ, УРБД) Тестирование и исправление

УТ10.3 на Платформе 8.2 на базе MSSQL была разрушена после попытки её восстановить после неудачного динамического обновления. Таблица Config целевой базы была заменена на содержимое таблицы Config от другой рабочей базы. Но на самом деле конфигурации у них существенно отличались, поэтому после таких действий целевая база рухнула окончательно. Что же делать?

21.08.2015    23930    METAL    25       

"Распил" базы "БП 3.0 ПРОФ" с дальнейшим переносом в "БП 3.0 Базовая" ОДНОЙ организации 8

Статья Системный администратор Программист Нет файла v8 Россия Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Условия: Есть "БП 3.0 ПРОФ", в которой ведется учет по трем (неважно, скольким) Организациям. Необходимо оставить учет только по одной (к примеру) организации, и при этом перенести все данные по ней в "БП 3.0. Базовая"

14.08.2015    14169    Viktor_Ermakov    10       

Автоматическое обновление конфигурации периферийного узла РИБ при обмене 31

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

При большом количестве периферийных узлов в РИБ достаточно проблематично производить обновление конфигурации. В данной статье опишу свой опыт решения данной проблемы.

24.03.2015    25335    kondrat1C    20       

Выделение одной организации из Бухгалтерии редакция 3 через РИБ 21

Статья Системный администратор Нет файла v8 БП2.0 Россия Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Выделение одной организации из Бухгалтерии редакция 3 через РИБ (например, 3.0.36.16) может привести к большим проблемам с последующими обновлением.

16.02.2015    12249    shevelyov    4       

Обмен с помощью WMI 8

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Полный контроль над процессом, осуществляемый из единого центра.

10.11.2014    8528    loekyn    7       

Обмены данными и РИБ с использованием облачных сервисов 11

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Проверенный на практике, простой и доступный способ настройки обменов данными без использования FTP и встроенного почтового клиента.

22.10.2014    16062    rarename    14       

Реализация обмена по организации в УТ 10

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Распределенная БД (УРИБ, УРБД)

В связи с открытием филиала в другом городе возникла необходимость организации учета в конфигурации "Управление торговлей для Казахстана, ред. 3" (адаптированный аналог "Управление торговлей, ред. 11"). Как оказалось встроенного обмена по организации не оказалось, есть только "Полный". Пришлось реализовывать самому. Конечно был вариант работы через терминальное подключение и тонкий клиент, но в связи во-первых неустойчивыми каналами связи и с заделкой на будущее (большие объемы данных) решил сделать РИБ. И вот об этом моя первая статья, может поможет кому нибудь.

05.06.2014    13163    Bajo    5       

РИБ для УНФ 28

Статья Программист Нет файла v8 УНФ Россия Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Штатного механизма типового полного обмена (РИБ) нет. Добавляем этот функционал. Данный способ подойдет для типового релиза УНФ начиная с версии 1.4.7.37 или для конфигураций на основе БСП.

10.01.2014    26295    ZhAmAn    28       

Интерактивный счетчик объектов обмена 7

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

При обменах на периферийных базах счетчик обмена сделан не очень красиво – он зависает на 10% и вся загрузка не отображается на счетчике. Предлагаю методику, чтобы визуализировать прогресс загрузки/выгрузки.

16.08.2013    15120    fixin    3       

Параллельность выгрузок 87

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Рассказываю свой опыт, как добился параллельности выгрузки из центральной базы РИБ сразу в 70 узлов.

15.08.2013    22217    fixin    41       

Из главного узла не загружены изменения справочника "Идентификаторы объектов метаданных" 10

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД) Администрирование данных 1С

Данная проблема появляется регулярно на Периферийной Базе, после проведения обновления релиза ЦБ. Всем кому данная проблема неожиданно обновила вкус жизни, посвящается. Пошаговая инструкция, 100 % гарантия, никакого программирования.

09.05.2013    37879    motorkuzbassa.it    39       

МиниКейс "Закрытие месяца в УПП без остановки работы системы (Партионный учёт)" 18

Статья Системный администратор Программист Бухгалтер Нет файла v8 1cv8.cf БУ Windows Закрытие периода Бесплатно (free) Распределенная БД (УРИБ, УРБД) Закрытие периода

Предлагается схема закрытия месяца на предприятии с круглосуточной работой в 1С. Используются обработки, которые доступны на infostart.ru.

24.02.2013    21456    axxell    7       

Настройка филиальных баз данных 31

Статья Системный администратор Программист Нет файла v8 БП2.0 ЗУП2.5 УТ10 Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД) Перенос данных из 1C8 в 1C8

Клиент поставил задачу реализации работы филиалов в конфигурациях "Бухгалтерия предприятия" и "Зарплата и Управление Персоналом", в которых уже давно работает центральное отделение. Главная загвоздка в том, что, несмотря на автономную работу филиалов, отчетность нужно было продолжать сдавать от юридического лица в центральном филиале. Начали продумывать варианты реализации...

29.01.2013    15856    evgant    6       

Особенности обмена данными с использованием "ручной" регистрации 18

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Распределенная БД (УРИБ, УРБД) Перенос данных из 1C8 в 1C8

Эта статья рассчитана на программистов, которые используют обмен данными с помощью метода "ВыбратьИзменения" и последующую их запись. Только для планов обменов, имеющих "ручную" регистрацию.

14.01.2013    30390    logarifm    6       

Обмен данными в распределенной базе через e-mail. 42

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД) WEB

Если у вас нет финансов для покупки отдельного сервера под 1С или вы просто не хотите пока вкладывать денежные средства для развития этого программного продукта, но у вас есть острая необходимость в обмене данными между двумя удаленно расположенными пользователями, то в данной статье я расскажу как настроить обмен данными без финансовых вложений по средствам e-mail.

13.01.2013    44325    Klim Bassenger    34       

УНФ РИБ 35

Статья Системный администратор Программист Нет файла v8 УНФ Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД) Перенос данных из 1С7.7 в 1C8.X

В типовой УНФ нет РИБа. Исправляем этот недостаток, используя УТ 11 и ИТС. Статья подойдет для настойки распределенки в любой конфе на базе БСП.

16.10.2012    36758    ptkrzy    23       

Исправление ошибки в РИБ (некорректные данные в базе) 50

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Если у вас выгрузились в одну из периферийных баз данные из другой – эта инструкция для вас. :) Пример из реальной практики.

27.09.2012    15904    Korolev    11       

Обмен данными по планам обмена 39

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Распределенная БД (УРИБ, УРБД) Перенос данных из 1C8 в 1C8

В этой статье я постараюсь рассказать, как перенести механизм обмен данными из типовой конфигурации в нетиповую и создать свои планы обмена.

19.07.2012    45779    kereo    17       

Обмен по расписанию типовыми средствами. 81

Статья Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД) Обмен через XML Перенос данных из 1C8 в 1C8

Часто перед интеграторами стоит задача организовать автообмен (по расписанию или при наступлении какого-либо события) данными между различными конфигурациями. В этой статье я попробую изложить простую инструкцию, как это можно сделать средствами, заложенными в типовые конфигурации 1С (ЗУП, БП, УПП и т.д.). Для обмена используется подсистема "Обмен данными" из БСП

20.06.2012    94691    kser87    50       

Скрипт для обмена между двумя базами УРБД на Java-Script 19

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД) Перенос данных из 1C8 в 1C8

Я создал копию базы, чтобы на работе и дома работать с одной и той же базой. Делать обмены мне быстро надоело, поэтому я потрудился, и за 2 часа написал скрипт на языке java-script для обмена между этими базами. Он даже обновляет конфигурацию периферийной базы! Для работы нужно, чтобы в конфигурации не было ошибок при компиляции модулей для внешнего соединения, т.к. используется внешнее соединение. Программа сделана для файловой версии, вы можете переделать ее для серверной версии.

27.03.2012    14576    fixin    7       

Обновление УТ РИБ 44

Статья Системный администратор Нет файла v8 УТ10 Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Простой пошаговый способ обновления РИБ на примере УТ 10.3 - 1С 8.2

10.02.2012    46676    alitvin    21       

Базы данных 1С8 для сетевых структур 22

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Распределенная БД (УРИБ, УРБД)

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

18.12.2011    14930    fixin    6       

Дата последнего обмена данными между узлами РИБ 1С: 8 ЗУП 1

Статья Программист Нет файла v8 ЗУП2.5 Россия Бесплатно (free) Практика программирования Распределенная БД (УРИБ, УРБД)

При настройке РИБ и проведении обменов в РС "Параметры обмена данными" не записывалась дата выполнения обмена данными между узлами РИБ и соответственно не отображалась в Сервис - Настройка обмена данными.

19.10.2011    5887    flybread    1       

Настройка одностороннего обмена в РИБ 8.1, 8.2 БЕЗ ИЗМЕНЕНИЯ КОНФИГУРАЦИИ 49

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Статья описывает простой универсальный алгоритм настройки одностороннего обмена в РИБ 8.1 и 8.2 для любых конфигураций, имеющих план обмена, БЕЗ ИЗМЕНЕНИЯ КОДА.

22.09.2011    40713    monster6666    37       

Обработка по сохранению/восстановлению настроек обмена. 1

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 1cv8.cf Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Обработка позволяет сохранить в файл или восстановить из файла ранее сохраненные настройки обмена.

18.11.2010    4307    42    IgorMgn    2       

Популярные ошибки РИБ и способы их исправления. Часть 1. Конфигурация узла распределенной ИБ не соответствует ожидаемой 383

Статья Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Бесплатно (free) Распределенная БД (УРИБ, УРБД) Тестирование и исправление Перенос данных из 1C8 в 1C8

Конфигурация узла распределенной ИБ не соответствует ожидаемой. Одна из самых популярных ошибок РИБ. Приведены стандартная методика устранения (уже публиковалась ранее) и расширенная (для сложных случаев).

09.02.2010    176960    5740    mbreaker    166       

Распределенные базы данных 15

Статья Системный администратор Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free) Распределенная БД (УРИБ, УРБД)

При росте предприятия, рано или поздно встает вопрос, о консолидации данных. И тут главное правильно сделать выбор в пользу той или иной схемы. Надеюсь, что данная статья поможет вам в этом не простом выборе.

20.01.2010    22800    awk    32       

Пример настройки РИБ 8.1 112

Статья Системный администратор Архив с данными v8 1cv8.cf Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Имеется центральный офис и очень удаленный филиал. Между собой территории связаны медленным каналом. В центральном офисе хотят иметь актуальную копию базы данных филиала. Реализовано с помощью механизма РИБ.

10.11.2009    47679    1153    daulberg    61       

Групповая обработка документов и справочников с возможностью регистрации объектов для обмена 16

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Работая над одним из проектов я часто встречался с необходимостью регистрация объектов для выгрузки. Для решения этой задачи доработал типовую обработку документов и справочников.

29.07.2009    10514    183    Pim    5       

УРИБ автообмен данными/конфигурацией 48

Инструменты и обработки Системный администратор Приложение (exe) v8 1cv8.cf Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Программа написана на VC6.0 автоматизирует автообмен конфигурацией и данными. Привожу исходные тексты модулей.

07.10.2008    10635    654    kick    8       

РИБ на v 8: Фильтрация данных по узлам распределенной информационной базы. 46

Статья Системный администратор Программист Нет файла v8 Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД)

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

09.08.2007    23531    coder1cv8    20