Принятие изменений конфигурации периферийной базы из Центральной базы

29.05.23

Интеграция - Перенос данных 1C

Обновление конфигурации из внешней базы. Пример работы с Новый АдминистрированиеСервера(), АдминистрированиеКластер и т.п.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Принятие изменений конфигурации перифирийной базы из Центральной базы:
.epf 15,42Kb
0 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Обработку нужно открывать во внешней по отношению к обновляемой базе. Например в Центральной базе при принятии изменений конфигурации перифирийной базы.

Обработка блокирует работу в другой базе, удаляет все сеансы, запускает обновление (пакетный запуск, с ключом "/UpdateDBCfg"), снимает блокировку.

ВАЖНО! Обработка предназначена для работы с удаленной базой (не в той, в которой запускают обработку)! Не пытайтесь запускать её в текущей базе. Текущая база будет заблокирована, все сеансы включая текущий удалены. В результате обновление не запуститься (так как удалили сеанс), а база останется заблокированной. Если же текущий сеанс не удалять, то он помешает базе обновиться.

Если база заблокирована, то её можно разблокировать по кнопке "Разблокировать работу с базой магазина" не указывая код доступа.

Обработка написана на обычных формах, но если кто то заинтересуется статьей, то могу переписать на УФ

Обработка имеет два способа работы с базой магазина:

1. Через Новый COMОбъект("V83.COMConnector")

Взял с минимальными изменениями из этой статьи. Там всё описано:

//infostart.ru/public/1733458/

2. Через Новый АдминистрированиеСервера

Анонс метода:

//infostart.ru/journal/news/mir-1s/v-novoy-versii-1s-predpriyatiya-anonsirovali-razvitie-klasterov-serverov_892774/

Для работы с этой вкладки на сервере удаленной базы должен быть расшарен порт 1545 и установлен Сервер Администрирования (//infostart.ru/1c/articles/810752/).

 

Выкладываю саму процедуру работы через Новый АдминистрированиеСервера

Процедура СоединитьсяССерверомМагазина(СтруктураДействий) Экспорт
    
    БлокироватьСеансыВБазе = ПрочитатьДействие(СтруктураДействий, "БлокироватьСеансыВБазе");
    РазблокироватьСеансыВБазе = ПрочитатьДействие(СтруктураДействий, "РазблокироватьСеансыВБазе");
    ТолькоНайтиБазы = ПрочитатьДействие(СтруктураДействий, "ТолькоНайтиБазы");
    ВыгнатьВсехИзБазы = ПрочитатьДействие(СтруктураДействий, "ВыгнатьВсехИзБазы");
    
    Агент = Новый АдминистрированиеСервера(ИмяСервера, 1545);     
    //Агент.ВыполнитьАутентификацию();
    Clusters = Агент.ПолучитьКластеры();
    
    Для Каждого Кластер из Clusters Цикл  
        
        Кластер.ВыполнитьАутентификацию();
                
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Подключились к рабочему процессу кластера " + СокрЛП(Кластер.ИмяКомпьютера));
        МассивИнформационныхБаз = Кластер.ПолучитьИнформационныеБазы();
        
        НашлиБазу = Ложь;
        
        Для каждого InfoBase Из МассивИнформационныхБаз Цикл   
            Если ТолькоНайтиБазы = Истина Или ИмяБазы = "" Тогда
                
                ОбщегоНазначенияКлиентСервер.СообщитьПользователю("База: " + СокрЛП(InfoBase.Name));
                
                Если ИмяБазы = "" Тогда
                    
                    НашлиБазу = Истина;
                    ИмяБазы = СокрЛП(InfoBase.Name);
                ИначеЕсли Врег(InfoBase.Name) = ВРЕГ(ИмяБазы) Тогда
                    
                    НашлиБазу = Истина;
                    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нашли базу: " + СокрЛП(InfoBase.Name));
                    
                КонецЕсли;  
            Иначе      
                Если Врег(InfoBase.Name) = ВРЕГ(ИмяБазы) Тогда  
                    НашлиБазу = Истина;  
                    InfoBase.ВыполнитьАутентификацию(ИмяПользователя, ПарольПользователя);     
                    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Залогинились в базе: " + СокрЛП(InfoBase.Name));
                    
                    Если БлокироватьСеансыВБазе = Истина Или РазблокироватьСеансыВБазе = Истина Тогда   
                        
                        InfoBase.БлокировкаРегламентныхЗаданий = БлокироватьСеансыВБазе;
                        InfoBase.ВключенаБлокировкаНачалаСеансов = БлокироватьСеансыВБазе;
                        
                        Если БлокироватьСеансыВБазе = Истина Тогда
                            InfoBase.КодРазрешенияНачалаСеансов = КодДоступа;
                            InfoBase.СообщениеБлокировки = "Работа с базой временно недоступна! Идет обновление конфигурации.";   
                            InfoBase.Записать();
                            ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заблокировали базу: " + СокрЛП(InfoBase.Name) + " код доступа: " + СокрЛП(КодДоступа));
                        Иначе  
                            InfoBase.СообщениеБлокировки = "";
                            InfoBase.Записать();
                            ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Разблокировали базу: " + СокрЛП(InfoBase.Name));
                        КонецЕсли;  
                    КонецЕсли;
                    
                    Если ВыгнатьВсехИзБазы = Истина Тогда
                        
                        Сообщение = "Начато обновление Конфигурации";
                        
                        МассивСеансов = InfoBase.ПолучитьСеансы();
                        
                        Для каждого Cеанс Из МассивСеансов Цикл
                            
                            ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Завершаем сеанс приложения " + СокрЛП(Cеанс.ИмяПриложения) + " Пользователь " + СокрЛП(Cеанс.ИмяПользователя) + " подключенного с " + СокрЛП(Cеанс.ИмяКомпьютера));
                            Cеанс.ЗавершитьСеанс(Сообщение);    
                            
                        КонецЦикла;
                        
                        МассивСоединений = InfoBase.ПолучитьСоединения();
                        
                        Для каждого Соединение Из МассивСоединений Цикл
                            
                            Если НРЕГ(СокрЛП(Соединение.ИмяПриложения)) = "srvrconsole"
                                Или НРЕГ(СокрЛП(Соединение.ИмяПриложения)) = "jobscheduler"
                                //Или НРЕГ(СокрЛП(Соединение.ИмяПриложения)) = "ras"
                                Тогда
                                
                                // Это служебные сеансы, их не дает отключать
                                Продолжить;
                                
                            КонецЕсли;
                            
                            Попытка
                                ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Отключаем соединие " + СокрЛП(Соединение.ИмяПриложения) + " ВремяУстановкиСоединения: " + СокрЛП(Соединение.ВремяУстановкиСоединения) + " ИмяКомпьютера: " + СокрЛП(Соединение.ИмяКомпьютера));
                                Соединение.Отключить();    
                            Исключение
                                ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
                            КонецПопытки;       
                            
                        КонецЦикла;
                        
                    КонецЕсли;
                    
                КонецЕсли;  
                
            КонецЕсли;
        КонецЦикла;
        Если НашлиБазу = Ложь И Не ИмяБазы = "" Тогда
            
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не нашли базу " + СокрЛП(ИмяБазы) + " на кластере " + СокрЛП(Кластер.ИмяКомпьютера));
            
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры // СоединитьсяССерверомМагазина    

Процедура ОбновлениеКонфигурации(ИмяБазы, ПутьКФайлуЛога) Экспорт
    Попытка
        
        Кавычка = """";       
        КодВозврата = Неопределено;
        
        ПутьКБазе = "Srvr=""" + СокрЛП(ИмяСервера) + """;Ref=""" + СокрЛП(ИмяБазы) + """";
                
        СтрокаКоманды  = Кавычка + КаталогПрограммы() + "1cv8.exe" + Кавычка + " DESIGNER"
        + " /IBConnectionString " + ПутьКБазе
        + " /N "                  + Кавычка + ИмяПользователя + Кавычка
        + " /P "                  + Кавычка + ПарольПользователя + Кавычка
        + " /UpdateDBCfg "
        + " /UC "           + Кавычка + КодДоступа + Кавычка
        + " /Out "                + Кавычка + ПутьКФайлуЛога + Кавычка + " -NoTruncate"
        + " /DisableStartupMessages /DisableStartupDialogs ";  
          
    
    ЗапуститьПриложение(СтрокаКоманды
        ,
        ,
        Истина,
        КодВозврата);
        
        Сообщить("Обновление запущено");
    Исключение
        Сообщить(ОписаниеОшибки());             
        
    КонецПопытки;
    
КонецПроцедуры

 

Тестировалось на 8.3.20.2184.

Вступайте в нашу телеграмм-группу Инфостарт

АдминистрированиеСервера АдминистрированиеКластер АдминистрированиеИнформационнаяБаза Обновление конфигурации COMConnector UpdateDBCfg

См. также

SALE! 10%

Перенос данных 1C Программист 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

61356 55220 руб.

04.08.2015    179237    405    293    

421

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 24894 руб.

12.06.2017    153122    897    302    

463

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

61356 55220 руб.

15.04.2019    79102    213    163    

152

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

52967 47670 руб.

25.02.2015    178262    328    275    

396

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

58422 52580 руб.

03.12.2020    42135    120    75    

114

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.255.x) и БП 3.0 (3.0.183.x). Правила подходят для версии ПРОФ и КОРП.

38000 34200 руб.

15.12.2021    29848    214    58    

159

SALE! 10%

Перенос данных 1C Системный администратор Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Правила переноса данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных) Воспользовались более 122 предприятий! |

61356 55220 руб.

31.10.2014    242954    112    351    

316

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.24.x).

38000 34200 руб.

23.07.2020    61863    290    81    

230
Для отправки сообщения требуется регистрация/авторизация