Автообновление конфигурации после обмена

Публикация № 1508304 02.09.21

Администрирование БД - Архивирование (backup)

Обмен РБД конфигурация обновление powershell

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

Тестировалось на релизах 8.3.10 (32 бита) и 8.3.16 (64 бита). Файловый и клиент-серверный варианты. Толстый клиент, регламентное задание.

Требования: сеанс 1С, в котором выполняется данный функционал, должен быть запущен от имени локального администратора. В случае использования в регламентном задании - от имени админа должна быть запущена служба 1С. При работе с файловым вариантом базы дополнительно потребуется запуск на компьютере, с непосредственным расположением базы данных. Пользователь 1С должен обладать административными правами.

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

Обработку, точнее ее процедуру "ВыполнитьОбработку" можно вызывать, например после обмена. Либо как процедуру в регламентном задании. А можно выдернуть нужное и оформить в виде "батника", скрипта или любом другом. 

ДЛЯ ИСПОЛЬЗОВАНИЯ ТРЕБУЕТСЯ ПЕРЕОПРЕДЕЛИТЬ НАЗНАЧЕНИЕ ПЕРЕМЕННЫХ, ОПИСАННЫХ В БЛОКЕ "ЗДЕСЬ ЗАДАЮТСЯ ПАРАМЕТРЫ".

 

Процедура ВыполнитьОбработку() Экспорт
//---------------ЗДЕСЬ ЗАДАЮТСЯ ПАРАМЕТРЫ-----------------------------------------------
	//ТУТ МЕНЯЕМ ПАРАМЕТРЫ ДЛЯ РАБОТЫ В КЛИЕНТ-СЕРВЕРНОМ ВАРИАНТЕ, если необходимо
	ИмяКластера = "Локальный кластер";
	АдминистраторКластера = "";
	ПарольАдминистратораКластера = "";
	
	//каталог для записи выгрузки БД и логов
	КаталогДляБекапа = "C:\TEMP\";
	
	Роль = Метаданные.Роли.Администратор;   //тут заменить на свою роль
	
	//время для запуска
	ТекущийЧас = Час(ТекущаяДата());
	
	//Если ТекущийЧас >= 8 И ТекущийЧас <= 21 Тогда
	//	возврат;
	//КонецЕсли;
	
//---------------ЗДЕСЬ	НИЧЕГО НЕ   МЕНЯТЬ-----------------------------------------------
	Если НЕ КонфигурацияИзменена() Тогда
		Возврат;
	КонецЕсли;
	
	//определим тип платформы 1с
	СистемнаяИнформация = Новый СистемнаяИнформация;
	лпТипПлатформы = СокрЛП(СистемнаяИнформация.ТипПлатформы);
	
	//определим разрядность ОС
	WshShell = Новый COMОбъект("WScript.Shell");
	Разрядность = ?(Найти(WshShell.Environment("SYSTEM").item("PROCESSOR_ARCHITECTURE"), "64") > 0, 64, 32);			
	
	//определение пути запуска powershell
	Если Разрядность = 64 И лпТипПлатформы = "Windows x86" Тогда
		PS = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe";
	Иначе
		PS = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe";
	Конецесли;
	
	//файл выгрузки
	ФайлВыгрузки = КаталогДляБекапа + "Base.dt";
	
	//файл логов
	ФайлЛогов = КаталогДляБекапа + "Log_Execute_ANR_"+Формат(ТекущаяДата(),"ДФ=ддММгггг")+".txt";
	
	//файл скрипта
	ФайлСкрипта = КаталогВременныхФайлов()+"Автообновление.ps1";
	
	//ПРОВЕРКА НА ПОВТОРНЫЙ ЗАПУСК
	Файл = Новый Файл(ФайлЛогов);
	Если Файл.Существует() Тогда
		возврат;
	Иначе
		Текст = Новый ТекстовыйДокумент;
		Текст.ДобавитьСтроку("Команда запуска скрипта: "+PS+" -ExecutionPolicy RemoteSigned -File " + ФайлСкрипта);
		Текст.Записать(ФайлЛогов,"windows-1251");
	КонецЕсли;
	
	
	//определение файла запуска 1с
	ИсполняемыйФайл = КаталогПрограммы()+"1cv8s.exe";
	
	//создание пользователя для выполнения операций
	Если ПользователиИнформационнойБазы.НайтиПоИмени("СервисныйПользователь_АвтообновлениеКонфигурации") = Неопределено Тогда
		НовыйПользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
		НовыйПользователь.Имя = "СервисныйПользователь_АвтообновлениеКонфигурации";
		НовыйПользователь.ПолноеИмя = "СервисныйПользователь_АвтообновлениеКонфигурации";
		НовыйПользователь.АутентификацияСтандартная = Истина;
		НовыйПользователь.Пароль = "iddqd";
		НовыйПользователь.Роли.Добавить(Роль);
		НовыйПользователь.ПоказыватьВСпискеВыбора = Ложь;
		НовыйПользователь.Записать();
	КонецЕсли;
	
	
	//объект для записи скрипта
	Текст = Новый ТекстовыйДокумент;

	//определение типа БД
	СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
	
	
	//создание файла-скрипта
	Если Найти(СтрокаСоединения,"Srvr=") = 0 Тогда	//это файловая база
		
		//переменные
		КаталогИБ = УНФ.ОпциональныйБэкСлеш_(НСтр(СтрокаСоединения, "File"));
		
		ПараметрыБекап = " DESIGNER /F""" + КаталогИБ + """ /NСервисныйПользователь_АвтообновлениеКонфигурации /Piddqd /DumpIB """ + ФайлВыгрузки + """ /Out """ + КаталогДляБекапа + "Log_Dump_ANR.txt""";
		
		ПараметрыАпдейт = " DESIGNER /F""" + КаталогИБ + """ /NСервисныйПользователь_АвтообновлениеКонфигурации /Piddqd /UpdateDBCfg /Out """ + КаталогДляБекапа + "Log_Update_ANR.txt""";
		
		
		//запись в файл
		Текст.ДобавитьСтроку("$ИсполняемыйФайл = """ + ИсполняемыйФайл + """");
		Текст.ДобавитьСтроку("$КаталогИБ = """ + КаталогИБ + """");
		Текст.ДобавитьСтроку("$ПараметрыБекап = '" + ПараметрыБекап + "'");
		Текст.ДобавитьСтроку("$ПараметрыАпдейт = '" + ПараметрыАпдейт + "'");
		Текст.ДобавитьСтроку("$ФайлВыгрузки = '" + ФайлВыгрузки + "'");
		Текст.ДобавитьСтроку("$ФайлЛогов = '" + ФайлЛогов + "'");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Скрипт запущен""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Отключаем сетевые соединения""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("net files | where {$_.Contains($КаталогИБ)} | foreach {$_.Split( ' ' )[0]} | foreach {net file $_ /close}");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Отключили сетевые соединения""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Завершаем процессы 1cv8""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("Get-WmiObject -Class Win32_Process -Filter ""Name like '1cv8%'"" | Foreach-Object {$_.Terminate()}");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Завершили процессы 1cv8""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Выполняем бекап базы""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("$procid = (Start-Process $ИсполняемыйФайл -ArgumentList $ПараметрыБекап -Passthru).id");
		Текст.ДобавитьСтроку("$countchild = 1");
		Текст.ДобавитьСтроку("while ($countchild -ne 0)");
		Текст.ДобавитьСтроку("	{");
		Текст.ДобавитьСтроку("	$pr = Get-WmiObject Win32_Process -Filter ""ParentProcessId='$procid' or ProcessId='$procid'"" | measure");
		Текст.ДобавитьСтроку("	$countchild = $pr.Count");
		Текст.ДобавитьСтроку("	Start-Sleep 10");
		Текст.ДобавитьСтроку("	}");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Выполнили бекап базы""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("Start-Sleep 10");
		Текст.ДобавитьСтроку("$isfile = Test-Path $ФайлВыгрузки");
		Текст.ДобавитьСтроку("if ($isfile -eq ""True"")");
		Текст.ДобавитьСтроку("	{");
		Текст.ДобавитьСтроку("	(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Выполняем обновление конфигурации""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("	Start-Process $ИсполняемыйФайл -ArgumentList $ПараметрыАпдейт");
		Текст.ДобавитьСтроку("	(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Выполнили обновление конфигурации""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("	}");
		Текст.ДобавитьСтроку("else");
		Текст.ДобавитьСтроку("	{");
		Текст.ДобавитьСтроку("	(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Файл бекапа не найден. Обновление не выполнено""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("	}");
		
		Текст.Записать(ФайлСкрипта);
		
	Иначе         //клиент-серверный вариант
		
		//регистрация COM из "правильной" папки
		Если Разрядность = 64 И лпТипПлатформы = "Windows x86" Тогда
			ПутьРегистратора = "C:\Windows\SysWOW64\regsvr32.exe";
		Иначе
			ПутьРегистратора = "C:\Windows\System32\regsvr32.exe";
		Конецесли;
		
		WshShell.Run(ПутьРегистратора + " /s """+КаталогПрограммы()+"comcntr.dll""");
		
		Попытка
			Коннектор = Новый COMОбъект("v83.COMConnector");
		Исключение
			//нет объекта - нет пруфа
			возврат;
		КонецПопытки;
		
		Коннектор = Неопределено;
		
		//переменные
		ИмяСервера = Сред(СтрокаСоединения, 7, Найти(СтрокаСоединения, ";")-8);
		
		ИмяБазы = Сред(СтрокаСоединения, Найти(СтрокаСоединения, "Ref=")+5, СтрДлина(СтрокаСоединения)-СтрДлина(ИмяСервера)-15);
		
		ПараметрыБекап = " DESIGNER /S""" + ИмяСервера + "\" + ИмяБазы + """ /NСервисныйПользователь_АвтообновлениеКонфигурации /Piddqd /DumpIB """ + ФайлВыгрузки + """ /UC iddqd /Out """ + КаталогДляБекапа + "Log_Dump_ANR.txt""";
		
		ПараметрыАпдейт = " DESIGNER /S""" + ИмяСервера + "\" + ИмяБазы + """ /NСервисныйПользователь_АвтообновлениеКонфигурации /Piddqd /UpdateDBCfg /UC iddqd /Out """ + КаталогДляБекапа + "Log_Update_ANR.txt""";
		
		
		//запись в файл
		Текст.ДобавитьСтроку("$ИсполняемыйФайл = """ + ИсполняемыйФайл + """");
		Текст.ДобавитьСтроку("$ИмяСервера = """+ИмяСервера+"""");
		Текст.ДобавитьСтроку("$ИмяКластера = """+ИмяКластера+"""");
		Текст.ДобавитьСтроку("$АдминистраторКластера = """+АдминистраторКластера+"""");
		Текст.ДобавитьСтроку("$ПарольАдминистратораКластера = """+ПарольАдминистратораКластера+"""");
		Текст.ДобавитьСтроку("$ИмяБазы = """+ИмяБазы+"""");
		Текст.ДобавитьСтроку("$АдминистраторИБ = 'СервисныйПользователь_АвтообновлениеКонфигурации'");
		Текст.ДобавитьСтроку("$ПарольАдминистратораИБ = 'iddqd'");
		Текст.ДобавитьСтроку("$ПараметрыБекап = '" + ПараметрыБекап + "'");
		Текст.ДобавитьСтроку("$ПараметрыАпдейт = '" + ПараметрыАпдейт + "'");
		Текст.ДобавитьСтроку("$ФайлВыгрузки = '" + ФайлВыгрузки + "'");
		Текст.ДобавитьСтроку("$ФайлЛогов = '" + ФайлЛогов + "'");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Скрипт запущен""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("$Коннектор = New-Object -COMObject ""V83.COMConnector""");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Создание СОМ-соединения с сервером""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("$Агент = $Коннектор.ConnectAgent($ИмяСервера)");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Подключение к серверу""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("$Кластеры = $Агент.GetClusters()");
		Текст.ДобавитьСтроку("foreach ($Кластер in $Кластеры) {if ($ИмяКластера.ToUpper() -eq $Кластер.ClusterName.ToUpper()) {break}}");
		Текст.ДобавитьСтроку("$Агент.Authenticate($Кластер, $АдминистраторКластера, $ПарольАдминистратораКластера)");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Аутентификация в кластере""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("$Процессы = $Агент.GetWorkingProcesses($Кластер)");
		Текст.ДобавитьСтроку("Foreach ($Процесс in $Процессы)");
		Текст.ДобавитьСтроку("	{");
		Текст.ДобавитьСтроку("	$Порт = $Процесс.MainPort");
		Текст.ДобавитьСтроку("	$РабПроц = $Коннектор.ConnectWorkingProcess($ИмяСервера + "":"" + $Порт)");
		Текст.ДобавитьСтроку("	$РабПроц.AddAuthentication($АдминистраторИБ, $ПарольАдминистратораИБ)");
		Текст.ДобавитьСтроку("	$Базы = $РабПроц.GetInfoBases()");
		Текст.ДобавитьСтроку("	$БазаНайдена = $false");
		Текст.ДобавитьСтроку("	Foreach ($База in $Базы) {if ($База.Name.ToUpper() -eq $ИмяБазы.ToUpper()) {$БазаНайдена = $true; break}}");
		Текст.ДобавитьСтроку("	if ($БазаНайдена -eq $false) {continue}");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Нашли базу""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("	$База.SessionsDenied = $True");
		Текст.ДобавитьСтроку("	$ЗапускРегЗаданий = $База.ScheduledJobsDenied");
		Текст.ДобавитьСтроку("	$База.ScheduledJobsDenied = $True");
		Текст.ДобавитьСтроку("	$База.PermissionCode = ""iddqd""");
		Текст.ДобавитьСтроку("	$РабПроц.UpdateInfoBase($База)");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Установили блокировки на базу""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Отключаем соединения с базой""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("	$СоединенияБазы = $РабПроц.GetInfoBaseConnections($База) | Foreach {if ($_.AppID -ne ""COMConsole"") {$РабПроц.Disconnect($_)}}");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Отключили соединения с базой""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("	}");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Выполняем бекап базы""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("$procid = (Start-Process $ИсполняемыйФайл -ArgumentList $ПараметрыБекап -Passthru).id");
		Текст.ДобавитьСтроку("$countchild = 1");
		Текст.ДобавитьСтроку("while ($countchild -ne 0)");
		Текст.ДобавитьСтроку("	{");
		Текст.ДобавитьСтроку("	$pr = Get-WmiObject Win32_Process -Filter ""ParentProcessId='$procid' or ProcessId='$procid'"" | measure");
		Текст.ДобавитьСтроку("	$countchild = $pr.Count");
		Текст.ДобавитьСтроку("	Start-Sleep 10");
		Текст.ДобавитьСтроку("	}");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Выполнили бекап базы""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("Start-Sleep 10");
		Текст.ДобавитьСтроку("$isfile = Test-Path $ФайлВыгрузки");
		Текст.ДобавитьСтроку("if ($isfile -eq ""True"")");
		Текст.ДобавитьСтроку("	{");
		Текст.ДобавитьСтроку("	(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Выполняем обновление конфигурации""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("	Start-Process $ИсполняемыйФайл -ArgumentList $ПараметрыАпдейт");
		Текст.ДобавитьСтроку("	(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Выполнили обновление конфигурации""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("	}");
		Текст.ДобавитьСтроку("else");
		Текст.ДобавитьСтроку("	{");
		Текст.ДобавитьСтроку("	(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Файл бекапа не найден. Обновление не выполнено""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("	}");
		Текст.ДобавитьСтроку("$Процессы = $Агент.GetWorkingProcesses($Кластер)");
		Текст.ДобавитьСтроку("Foreach ($Процесс in $Процессы)");
		Текст.ДобавитьСтроку("	{");
		Текст.ДобавитьСтроку("	$Порт = $Процесс.MainPort");
		Текст.ДобавитьСтроку("	$РабПроц = $Коннектор.ConnectWorkingProcess($ИмяСервера + "":"" + $Порт)");
		Текст.ДобавитьСтроку("	$РабПроц.AddAuthentication($АдминистраторИБ, $ПарольАдминистратораИБ)");
		Текст.ДобавитьСтроку("	$Базы = $РабПроц.GetInfoBases()");
		Текст.ДобавитьСтроку("	$БазаНайдена = $false");
		Текст.ДобавитьСтроку("	Foreach ($База in $Базы) {if ($База.Name.ToUpper() -eq $ИмяБазы.ToUpper()) {$БазаНайдена = $true; break}}");
		Текст.ДобавитьСтроку("	if ($БазаНайдена -eq $false) {continue}");
		Текст.ДобавитьСтроку("");
		Текст.ДобавитьСтроку("	$База.SessionsDenied = $False");
		Текст.ДобавитьСтроку("	$База.ScheduledJobsDenied = $ЗапускРегЗаданий");
		Текст.ДобавитьСтроку("	$База.PermissionCode = """"");
		Текст.ДобавитьСтроку("	$РабПроц.UpdateInfoBase($База)");
		Текст.ДобавитьСтроку("(Get-Date -UFormat ""%d.%m.%Y %T"").ToString() + ""   Сняли блокировки с базы""| Add-Content $ФайлЛогов");
		Текст.ДобавитьСтроку("	}");
		
		Текст.Записать(ФайлСкрипта);
		
	КонецЕсли;
	
	Текст = Неопределено;
	
	WshShell.Run(PS+" -ExecutionPolicy RemoteSigned -File " + ФайлСкрипта,0,Ложь);
	
КонецПроцедуры

 

Скачать файлы

Наименование Файл Версия Размер
Автообновление конфигурации после обмена:

.epf 9,61Kb
2
.epf 1.0 9,61Kb 2 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Volvo32 24 02.09.21 13:51 Сейчас в теме
Да, совсем забыл.
УНФ.ОпциональныйБэкСлеш_ - функция просто проверяет наличие обратного слеша в конце строки, и добавляет при его отсутствии
Оставьте свое сообщение

См. также

Универсальная выгрузка/загрузка данных для отличающихся конфигураций (JSON, Такси+ОФ) Промо

Перенос данных из 1C8 в 1C8 Универсальные обработки Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Абонемент ($m)

Простой перенос через JSON данных между двумя базами 1С (документов, справочников, ПВХ, ПВР, счетов). Аналогична произвольной выгрузке в типовой "Выгрузка/загрузка XML", но может использоваться для отличающихся конфигураций. Подходит для любых пар баз с любым интерфейсом (управляемый + обычный). Без настроек. Не требует идентичности конфигураций и платформ. При переносе типы данных сопоставляются по наименованиям метаданных, объекты и ссылки по UID.

1 стартмани

22.10.2014    225821    4385    ekaruk    186    

Восстановление 1С РИБ (распределенная база) при проблемах обмена конфигураций и расширений

Распределенная БД (УРИБ, УРБД) Обмен через XML v8 1cv8.cf Россия Абонемент ($m)

Работая с 1С РИБами в разных конфигурациях: типовых, переписанных, отраслевых, доработанных, с расширениями и пр. Неоднократно сталкивался с различными проблемами, связанными с обменом в распределенных узлах. Например, некорректно проходит обмен, не принимается обновления конфигурации, после обновления крашится база на расширении или на объекте конфигурации, либо просто перестает запускать в режим предприятия по какой то причине. На самом деле проблемы с распределенной базой возникают довольно часто, в данной статье рассмотрим самые основные, с которыми приходилось сталкиваться. Описанные методы никогда не подводили и всегда работали, что бы с базой ни случилось. Делюсь опытом, кому-то будет спасательным кругом.

1 стартмани

23.09.2021    1204    12    ClickUp    4    

Конфигурация для создания резервных копий баз на сервере 1С: предприятие (SQL)

Архивирование (backup) v8 8.3.14 Россия Абонемент ($m)

Конфигурация выполняет выгрузку баз в файлы DT, работающих в клиент-серверном режиме (SQL).

1 стартмани

11.08.2021    1657    5    macrosina    5    

История данных - расширение для конфигурации "INFOSTART ERP community edition"

Архивирование (backup) Infostart ERP community v8 1cv8.cf Абонемент ($m)

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

10 стартмани

16.03.2021    2636    5    33lab    9    

Соответствия объектов обмена Промо

Распределенная БД (УРИБ, УРБД) Перенос данных из 1C8 в 1C8 v8 КА1 Россия Абонемент ($m)

Обработка позволяет проверять, исправлять ошибки, добавлять и удалять соответствия объектов в обменах данными между конфигурациями на основе «Комплексной автоматизации 1.1» или похожими конфигурациям. Подходит для обменов с использованием регистра сведений «СоответствиеОбъектовДляОбмена».

1 стартмани

26.08.2016    27891    9    xxxelaaa    1    

Выгрузка информативных остатков в РИБ с фильтром для УТ 11

Распределенная БД (УРИБ, УРБД) v8 УТ11 Россия УУ Абонемент ($m)

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

1 стартмани

14.03.2021    2481    4    Makyrka    0    

Регистрация объектов и подчинённых объектов на узлах (УФ)

Распределенная БД (УРИБ, УРБД) v8 v8::УФ Розница УТ11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Абонемент ($m)

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

3 стартмани

18.10.2020    4353    8    ClickUp    12    

Создание копии рабочей базы

Свертка базы Архивирование (backup) v8 Абонемент ($m)

Как регулярно создавать копии рабочей базы для разработки? Как уменьшить объём тестовой базы? Как получать всегда актуальную тестовую базу?

1 стартмани

28.05.2020    8531    19    imm0rtal    0    

Универсальная обработка сравнения документов распределенных информационных баз (вер 2.5.6) (Обычный интерфейс) 1С 8.2, 8.3 Промо

Распределенная БД (УРИБ, УРБД) Универсальные обработки v8 1cv8.cf Абонемент ($m)

Сравнение документов между двумя распределенными базами или между базами с одинаковой конфигурацией на Обычном интерфейсе. Управляемый в разработке

2 стартмани

03.02.2014    47802    402    kot_stouk    19    

Синхронизация после закрытия смены

Распределенная БД (УРИБ, УРБД) Розничная торговля v8 v8::ОУ v8::УФ Розница Абонемент ($m)

Данное расширение решает проблему своевременной синхронизации с РИБ между магазином и центральной базой для конфигурации РОЗНИЦА 2.2. Почему в первой рознице была автоматическая синхронизация после закрытия смены, и почему её убрали. Какие возникают технические риски и как этого проще всего избежать, об этом вы тоже узнаете из этой публикации.

1 стартмани

13.02.2020    6677    10    alsen    10    

Ошибки РИБ и как с ними бороться

Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Абонемент ($m)

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

1 стартмани

08.10.2019    17034    12    @lexandr    1    

Создание выгрузок файлов .dt с помощью PowerShell и RAS\RAC для клиент-серверных баз

Архивирование (backup) v8 1cv8.cf Абонемент ($m)

У платформы 1С 8.3 есть кроссплатформенная утилита RAS\RAC(Remote Administration Server\Remote Administration Client), которая позволяет удаленно управлять кластером серверов 1C. Ниже выложен шаблон скрипта PowerShell для выгрузки базы 1C в файл dt с помощью этой утилиты.

1 стартмани

23.09.2019    10929    23    alexer    27    

Обработка для управления подключениями пользователей и создание бэкапа КЛИЕНТ-СЕРВЕРНОЙ базы данных 1С 8.2-8.3 (управляемое приложение,"такси") Промо

Архивирование (backup) Инструменты администратора БД v8 v8::УФ 1cv8.cf Абонемент ($m)

(©Топчий Д.Ю.) Данная обработка позволяет легко и быстро отключить от любой БД одного или несколько пользователей одновременно, установить блокировку сеансов, что необходимо при регламентных операциях с БД, создать резервную копию базы, удалить "дубли" сеансов. Обработка отключает соединения и сеансы указанных пользователей, даже если сеанс или соединение были "повисшими". Возможна интеграция в любую конфигурацию! (Обновление от 11.03.2016, версия 3.0)

2 стартмани

06.11.2012    60820    614    hakerxp    44    

Бэкап средствами 1С для баз под управлением СУБД

Архивирование (backup) v8 Абонемент ($m)

Скрипт для создания бэкапов баз 1С под управлением СУБД с созданием log-файла и отправки уведомлений на почту.

2 стартмани

18.09.2019    9906    9    ketr    24    

Альтернативное получение значения из хранилища значения. Свой ХранилищеЗначения.Получить();

Распределенная БД (УРИБ, УРБД) Обмен через XML v8 1cv8.cf Абонемент ($m)

Данная публикация не претендует на использование в продакшене, но когда "Нельзя, но очень хочется" в отношении получения ооочень больших данных из ХранилищаЗначения и когда сама платформа не может получить значение и падает, при этом, перед падением съедает почти всю память. Это своего рода костыль, в безвыходной ситуации. Речь пойдет про получение больших данных из хранилища значения в файловых базах на 32-х битной платформе. Данное не касается 64-х битных клиентов/серверов где нет ограничения на размер потребляемой памяти (верней есть, но доступно памяти гораздо больше, чем 32-х битному приложению без PAE).

1 стартмани

22.04.2019    15247    7    markers    0    

Внешняя компонента для безопасного копирования файловой базы без отключения пользователей

Архивирование (backup) v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя компонента для блокировки и последующего безопасного копирования файловой базы 1С, написанная по технологии NativeAPI.

1 стартмани

17.04.2019    5736    3    frkbvfnjh    3    

Последовательный и параллельный бэкап баз в MS SQL скриптами

Архивирование (backup) v8 Россия Абонемент ($m)

На картинке старый добрый Maintaince Plan. Работает давно и надежно. Но вот при 30 активных и столько же архивных базах каждое изменение - это много щелканий мышкой и сохранений. А хочется просто исправить список баз в одном месте, и все. В процессе переписывания Maintaince Plan в скрипт возникла идея попробовать обрабатывать базы параллельно. В конце концов, зачем была потрачена куча денег на "ядра, кэш и прочий треш"?

1 стартмани

28.02.2019    8748    4    DonAlPatino    24    

РИБ и расширения

Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Абонемент ($m)

Как заставить работать РИБ с расширением.

1 стартмани

20.02.2019    35335    54    RocKeR_13    53    

Легкое создание резервной копии типовой ИБ в режиме 1С:Предприятие

Архивирование (backup) v8 УНФ БГУ ERP2 ЗКГУ3.0 БП3.0 КА2 ЗУП3.x Абонемент ($m)

Обработка позволяет создавать и восстанавливать резервную копию информационной базы ряда типовых конфигураций в режиме 1С:Предприятие силами рядовых сотрудников без посторонней помощи.

1 стартмани

04.02.2019    10051    9    Леонов Александр    0    

Выгрузка/загрузка данных в формате JSON v 1.1.0 Промо

Распределенная БД (УРИБ, УРБД) Перенос данных из 1C8 в 1C8 v8 1cv8.cf Абонемент ($m)

Обработка предназначена для обмена данными между схожими конфигурациями в формате JSON. Этот формат обладает рядом существенных преимуществ по сравнению с xml и прочими популярными форматами. В отличие от существующих аналогов, обработка не использует никаких дополнительных библиотек. (де)Сериализация всех объектов происходит средствами встроенного языка и методов ЗаписатьJSON() и ПрочитатьJSON(). Работает на платформе версии не ниже 8.3.6.

3 стартмани

27.01.2016    52287    372    kser87    47    

Групповое создание начальных образов для узлов РИБ

Распределенная БД (УРИБ, УРБД) v8 Розница Абонемент ($m)

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

1 стартмани

21.01.2019    7974    11    KroVladS    4    

Групповое изменение расписания Сценариев обменов данными (РИБ)

Распределенная БД (УРИБ, УРБД) v8 Розница Россия Абонемент ($m)

Внешняя обработка для группового изменения расписания Сценариев обменов данными (РИБ).

1 стартмани

18.01.2019    7141    4    KroVladS    2    

ЗУП 3.1.7-3.1.8. Решаем проблему "неснимаемой" регистрации связанных регистров сведений

Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) v8 ЗКГУ3.0 ЗУП3.x Россия Абонемент ($m)

Частный случай решения проблемы обмена в распределенной базе ЗУП 3.1.7 - 3.1.8.

1 стартмани

15.01.2019    10110    6    tomvlad    14    

Управление изменениями в планах обмена (Управляемое приложение) v 1.0 Промо

Распределенная БД (УРИБ, УРБД) Внешние источники данных Перенос данных из 1C8 в 1C8 v8 1cv8.cf Абонемент ($m)

Простая в использовании и наглядная обработка для регистрации изменений или отмены регистрации в планах обмена используя гибкие возможности отбора СКД.

2 стартмани

15.08.2015    33831    51    kser87    3    

Простая проверка "целостности" и резервное копирование реестра кластера сервера 1С Предприятия на Linux-сервере

Архивирование (backup) v8 Абонемент ($m)

Bash-скрипт для проверки контрольной суммы файла реестра кластера и создания резервной копии данного файла в случае, если изменение считается "корректным", при работе сервера 1С Предприятия на платформе GNU/Linux.

1 стартмани

09.01.2019    9188    1    Sloth    0    

Резервное копирование прикрепленных файлов ИБ на Linux-сервере

Архивирование (backup) v8 1cv8.cf Абонемент ($m)

Немного о том, как организовать резервное копирование прикрепленных файлов информационной базы, хранящихся в файловых томах, а не в самой ИБ, в случае когда сервер 1С Предприятия работает на платформе GNU/Linux.

1 стартмани

21.12.2018    8386    0    Sloth    0    

РИБ с фильтрами - Информативные остатки в узлах. УТ 11.4

Распределенная БД (УРИБ, УРБД) Учет ТМЦ Учет ТМЦ v8 УТ11 Россия УУ Абонемент ($m)

Расширение для УТ 11.4, которое позволяет прогружать остатки в РИБ справочно по всем складам.

1 стартмани

28.11.2018    11186    11    SeerRM    6    

Создание и сброс главного узла, Признак РИБ. 8.2 - 8.3 Промо

Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Абонемент ($m)

Обработка предназначена для сброса и создания главного узла РИБ 8.2 - 8.3

1 стартмани

04.04.2015    46094    364    programmistSVS    7    

Резервное копирование по расписанию для MS SQL Express

Архивирование (backup) v8 1cv8.cf Абонемент ($m)

Внешняя дополнительная обработка, которая позволяет использовать регламентные задания 1С для запуска сценария резервного копирования на сервере MS SQL Express. Таким образом решается проблема отсутствия у Express версии сервера MS SQL собственного агента и планировщика заданий. Обработка позволяет настроить для себя разрешение записи на диск и выполняться в безопасном режиме.

1 стартмани

15.10.2018    9445    4    elian    34    

Резервное копирование файлов 1С:Документооборот

Архивирование (backup) v8 ДО Абонемент ($m)

WSH файл резервного копирования файлов инкрементальный.

1 стартмани

28.09.2018    9586    6    ligsht    0    

Копирование / хранение бекапов

Архивирование (backup) v8 1cv8.cf Россия Абонемент ($m)

Обработка копирует файловые базы или sql бекапы на ftp. При этом сохраняет на ftp только 5 последний файлов, и удаляет старые, при успешной и/или не успешном копировании может производиться рассылка email

2 стартмани

20.07.2018    8492    1    thueirby    0    

Конфигурация для автоматизации бэкапов Промо

Архивирование (backup) v8 1cv8.cf Абонемент ($m)

Конфигурация для организации резервного копирования и хранения бэкапов информационных баз во внутреннем формате 1С *.dt

1 стартмани

23.01.2015    33603    178    dusha0020    43    

R2-D2: журнал регистрации, монитор обменов, аварийные уведомления

Сервисные утилиты Распределенная БД (УРИБ, УРБД) Инструменты администратора БД Журнал регистрации v8 Россия Абонемент ($m)

Обслуживание Журналов регистрации нескольких баз 1С. Сбор и обработка сведений о статусах обменов баз 1С, рассылка аварийных уведомлений.

2 стартмани

14.06.2018    18986    22    pbabincev    8    

Бэкапер файловых баз с хранением на яндекс-диске

Архивирование (backup) v8 1cv8.cf Россия Абонемент ($m)

Еще один бекапер файловых баз на инфостарте. Возможно будет интересен франчам, у кого много небольших клиентов с файловыми базами. У себя используем больше года. Состоит из 3-х частей: 1 - размещается на компьютере клиента; 2 - настраивается яндекс-диск; 3 - у себя на рабочем компьютере. Настроенная система организует архивацию файловых баз данных на компьютере клиента, копирование их на яндекс-диск, сбор и анализ информации о наличии архивов на яндекс-дисках с возможностью закачки к себе на рабочий компьютер.

5 стартмани

04.06.2018    11205    3    yabrus    5    

Генератор скриптов резервного копирования

Архивирование (backup) v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка, которая позволяет генерировать скрипты для резервного копирования баз 1С.

1 стартмани

03.06.2018    10997    20    Dream_kz    6    

Безопасное копирование файловых баз данных 1С (1Cv8.1CD) Промо

Архивирование (backup) Сервисные утилиты v8 1cv8.cf Абонемент ($m)

Безопасное копирование файловых баз данных 1С (1Cv8.1CD) При подключенных пользователях!

1 стартмани

22.12.2014    53442    121    BorovikSV    28    

bat-файл для копирования с FTP *.cfu и обновления 1С

Сервисные утилиты Архивирование (backup) v8 1cv8.cf Абонемент ($m)

Батник для загрузки с FTP файла обновления 1С (*.cfu), создания резервной копии и обновления 1С.

1 стартмани

07.05.2018    12711    2    pyrkin_vanya    2    

Автоматизируем "перезаливку" баз (Скрипты для SQL-Server - Часть 1)

Архивирование (backup) v8 1cv8.cf Абонемент ($m)

Предлагаю вашему вниманию несколько SQL-скриптов (для MS SQL-Server) для автоматизации процесса резервного копирования и восстановления баз данных. Скрипты для восстановления позволяют "перезаливать" базы данных, т. е. восстанавливать одну базу из копий другой базы данных. Все скрипты формируют лог для вывода и при необходимости могут отправлять результат работы по электронной почте.

1 стартмани

15.03.2018    40222    24    Tavalik    15    

Проверка обмена РИБ по всем документам и регистрам

Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Абонемент ($m)

Обработка проверяет наличие документов при обмене между аналогичными базами.

1 стартмани

06.03.2018    11344    5    Matveev_VS    0    

Выборочная регистрация справочников и документов в плане обмена Промо

Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

13.04.2010    35662    635    tomvlad    25    

Динамическое обновление больше не страшно! Сохранение таблицы Config перед динамическим обновлением

Архивирование (backup) v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Обработка для резервного сохранения SQL-таблиц Config b ConfigSave перед динамическим обновлением, а также восстановления этих таблиц в случае сбоя.

1 стартмани

09.02.2018    23402    58    santon    14    

Временное устранение ошибки при обмене с узлами РИБ. Данные принимаются от узла с другим набором расширений, меняющих структуру данных

Распределенная БД (УРИБ, УРБД) v8 КА1 БП2.0 УТ10 Россия Абонемент ($m)

После установки новой платформы 1с 8.3.11.2924 при обмене с узлами РИБ возникла ошибка. Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Данные принимаются от узла с другим набором расширений, меняющих структуру данных.

1 стартмани

19.01.2018    22112    35    vgraz    7    

Создаем начальный образ УПП с данными по одному юридическому лицу (РИБ)

Распределенная БД (УРИБ, УРБД) Практика программирования v8 УПП1 Абонемент ($m)

Как я создавал план обмена для УПП по конкретной организации (РИБ).

1 стартмани

14.12.2017    16117    47    9093042    5    

Резервное копирование SQL-базы 1С в два клика Промо

Архивирование (backup) v8 1cv8.cf Абонемент ($m)

Простой и надежный способ бэкапа без углубления в тонкости настройки SQL Server Management Studio

1 стартмани

26.09.2012    54252    140    skilster    9    

Бэкапер-1С: резервные копии бухгалтерии (1С 7.7 - 8.3) Промо

Архивирование (backup) v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Бэкапер-1С: версия 1.5.0. Появилась гибкая система удаления старых копий! А также: автоматический поиск баз, архивация документов, встроенный архиватор 7-Zip, целостность создаваемых копий, шифрование, отправка отчетов на почту и каталогизация. Ещё никогда резервное копирование не делалось так просто.

1 стартмани

16.05.2013    67938    633    alexey.karmanov    181