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

29.05.23

Интеграция - Обмен между базами 1C

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

Скачать исходный код

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

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

Обработка блокирует работу в другой базе, удаляет все сеансы, запускает обновление (пакетный запуск, с ключом "/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

См. также

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    135949    732    291    

393

SALE! 10%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

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

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

50722 45650 руб.

04.08.2015    160910    357    268    

349

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

Перенос данных 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 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

38500 34650 руб.

15.04.2019    69137    181    139    

111

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2. Переносятся начальные остатки, документы и справочники

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

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

50722 45650 руб.

31.10.2014    232681    126    327    

298

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

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

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

28000 руб.

15.12.2021    20775    136    38    

95

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

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

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

28000 руб.

23.07.2020    47071    201    64    

162

SALE! 10%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

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

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

48278 43450 руб.

03.12.2020    34598    83    58    

81

SALE! 10%

Перенос данных из БП 3.0 в УНФ 3.0 / УНФ 1.6. Переносятся остатки, документы и справочная информация

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

В продаже с 2018г. | Воспользовались более 41 предприятия! | Правила конвертации (КД 2) для переноса данных из БП 3 в УНФ | Переносятся все виды документов, начальные остатки и вся возможная справочная информация | Есть фильтр по организациям | Оперативно обновляем на новые релизы | Оказываем техподдержку | В комплект файлов входит инструкция, авторская версия обработки "Универсальный обмен...", актуальные правила переноса данных и архив старых версий переноса | Учет в БП 3 должен быть корректным, некорректные данные не переносятся | Можно бесплатно проверить на вашем сервере до покупки!

50722 руб.

10.07.2018    68003    41    123    

46
Оставьте свое сообщение