Добрый день!
Думаю, многие сталкивались с такой проблемой: есть много типовых баз 1С Бухгалтерия 3.0, которые нужно обновить.
Обновляю я их скриптом, все происходит достаточно прилично.
А вот после обновления нужно первый раз запустить каждую 1С под администратором, ответить на вопрос о легальности обновления, подождать пол часа, чтобы выполнились процедуры и закрыть базу.
Это оказывается самым трудоемким процессом. Да еще нужно запомнить в какую базу зашел, а в какую нет...
Лень - двигатель автоматизации. Поделитесь опытом, как сделать, чтобы базы сами первый раз позапускались и сами себе ответили про обновление :)
Думаю, многие сталкивались с такой проблемой: есть много типовых баз 1С Бухгалтерия 3.0, которые нужно обновить.
Обновляю я их скриптом, все происходит достаточно прилично.
А вот после обновления нужно первый раз запустить каждую 1С под администратором, ответить на вопрос о легальности обновления, подождать пол часа, чтобы выполнились процедуры и закрыть базу.
Это оказывается самым трудоемким процессом. Да еще нужно запомнить в какую базу зашел, а в какую нет...
Лень - двигатель автоматизации. Поделитесь опытом, как сделать, чтобы базы сами первый раз позапускались и сами себе ответили про обновление :)
По теме из базы знаний
- Технология обновления нетиповых конфигураций 1С:Предприятия 8 (редакция 12.04.2012)
- Осторожно: обновление ЗУП 2.5.52.*
- Конфигурация для отключения зависших сеансов пользователей при резервном копировании, обновлении конфигурации узла распределенной клиент-серверной базы 8.2, 8.3
- Подбор последовательности обновления
- "Обновление через копию" - как это использовать?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Кстати, подсмотрел в комментариях Armando:
Буду пробовать так, отпишусь
Если обновлять через внешнее соединение (COM), то подтверждение легальности не требуется. Например у меня в скрипте обновления бухгалтерии 3.0 прописано вот так:
ExternalConnection.[СтандартныеПодсистемыСервер].[УстановитьЗапускОбновленияИнформационнойБазы](True)
ExternalConnection.[ОбновлениеИнформационнойБазы].[ВыполнитьОбновлениеИнформационнойБазы]()
ExternalConnection.[СтандартныеПодсистемыСервер].[УстановитьЗапускОбновленияИнформационнойБазы](True)
ExternalConnection.[ОбновлениеИнформационнойБазы].[ВыполнитьОбновлениеИнформационнойБазы]()
Буду пробовать так, отпишусь
В итоге я сделал так:
Работает в Бухгалтерии 3.0, в результате после обновления нормально выполняются служебные действия в режиме пользователя. Но при первом запуске все равно спрашивает про легальность обновления - следовательно, первым может зайти только администратор с полными правами. Раньше администратора обычного пользователя в базу не пускает.
Подскажите, каким кодом отключается этот назойливый вопрос?
ОбновлениеИнформационнойБазыСлужебный.УстановитьЗапускОбновленияИнформационнойБазы(Истина);
СтатусОбновления = ОбновлениеИнформационнойБазы.ВыполнитьОбновлениеИнформационнойБазы();
Сообщить(СтатусОбновления);
Работает в Бухгалтерии 3.0, в результате после обновления нормально выполняются служебные действия в режиме пользователя. Но при первом запуске все равно спрашивает про легальность обновления - следовательно, первым может зайти только администратор с полными правами. Раньше администратора обычного пользователя в базу не пускает.
Подскажите, каким кодом отключается этот назойливый вопрос?
Вот куски кода которые устанавливают версию, для которой подтверждена легальность, пока она та же вопроса не будет, остальное поиском можно найти:
// Только для внутреннего использования.
Процедура ЗаписатьПодтверждениеЛегальностиПолученияОбновлений() Экспорт
Если ОбщегоНазначенияПовтИсп.РазделениеВключено()
И Не ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных()
Или СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() Тогда
Возврат;
КонецЕсли;
СведенияОбОбновлении = СведенияОбОбновленииИнформационнойБазы();
СведенияОбОбновлении.ЛегальнаяВерсия = "3.0.43.239";
ЗаписатьСведенияОбОбновленииИнформационнойБазы(СведенияОбОбновлении);
КонецПроцедуры
Показать
Процедура ЗаписатьСведенияОбОбновленииИнформационнойБазы(Знач СведенияОбОбновлении) Экспорт
Если СведенияОбОбновлении = Неопределено Тогда
НовоеЗначение = НовыеСведенияОбОбновлении();
Иначе
НовоеЗначение = СведенияОбОбновлении;
КонецЕсли;
МенеджерКонстанты = Константы.СведенияОбОбновленииИБ.СоздатьМенеджерЗначения();
МенеджерКонстанты.Значение = Новый ХранилищеЗначения(НовоеЗначение);
ОбновлениеИнформационнойБазы.ЗаписатьДанные(МенеджерКонстанты);
КонецПроцедуры
Показать
Спасибо всем!
Финальный рабочий код:
Код запускается из V83.COMConnector и отлично все отрабатывает. Кому надо код целиком вместе с COM подключением - пишите
Финальный рабочий код:
ОбновлениеИнформационнойБазыСлужебный.УстановитьЗапускОбновленияИнформационнойБазы(Истина);
СтатусОбновления = ОбновлениеИнформационнойБазы.ВыполнитьОбновлениеИнформационнойБазы();
ОбновлениеИнформационнойБазыСлужебный.ЗаписатьПодтверждениеЛегальностиПолученияОбновлений();
Сообщить(СтатусОбновления);
Код запускается из V83.COMConnector и отлично все отрабатывает. Кому надо код целиком вместе с COM подключением - пишите
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот