Обновление большого количества типовых баз с помощью хранилища конфигураций

07.12.12

База данных - Инструменты администратора БД

Надоело обновлять 100 типовых баз БП и ЗиУП руками? Милости просим!

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

Итак:

Хранилище конфигураций 1С по своей сути является системой контроля версий. Главным удобством хранилища для обновления баз является возможность пакетного запуска 1С и обновления конфигурации из этого хранилища. Как это выглядит на деле: для каждой поддерживаемой конфигурации создается хранилище. Эти хранилища обновляются штатными методами по факту выхода новых релизов от поставщиков. Чтобы обновить "боевую" базу 1С из этого хранилища требуется последовательно запустить 1С в режиме конфигуратора с ключами

1) ConfigurationRepositoryF("Путь к хранилищу") /ConfigurationRepositoryN("Пользователь хранилища") /ConfigurationRepositoryP("Пароль пользователя хранилища") /ConfigurationRepositoryUpdateCfg

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

2) /UpdateDBCfg

эта команда выполняет обновление конфигурации базы данных. Тут нужно понимать, что системе наверняка потребуется изменять структуру таблиц БД, поэтому доступ должен быть монопольным. Как этого добиться? Все теми же ключами запуска

1) /CЗавершитьРаботуПользователей - для того, чтобы отключить всех пользователей (тут присутствуют известные проблемы с модальными окнами и запросами на выход из системы)

2) /CРазрешитьРаботуПользователей /UCКодРазрешения - для разрешения работы.

ВАЖНО! Если используется запрет на работу пользователей, то при обновлении базы необходимо добавлять ключ /UCКодРазрешения.

 

Итого, для обновления мы получаем всего 4 последовательных операции:

ENTERPISE /F"Путь" /N"Юзер" /P"Пароль" /CЗавершитьРаботуПользователей

DESIGNER /F"Путь" /N"Юзер" /P"Пароль" /ConfigurationRepositoryF"Путь к хранилищу" /ConfigurationRepositoryN"Пользователь хранилища" /ConfigurationRepositoryP"Пароль пользователя хранилища" /ConfigurationRepositoryUpdateCfg /UCКодРазрешения

DESIGNER /F"Путь" /N"Юзер" /P"Пароль" /UpdateDBCfg /UCКодРазрешения

ENTERPISE /F"Путь" /N"Юзер" /P"Пароль" /CРазрешитьРаботуПользователей /UCКодРазрешения

Загоняем в цикл по своим базам и радуемся жизни.

Казалось бы все элементарно, но существует ряд ошибок, которые, судя по форумам, встречаются довольно часто.

  1. Пытаемся завершить/разрешить работу пользователей в режиме конфигуратора
  2. Пытаемся обновить конфигурацию, к которой запрещен доступ, не используя /UCКодРазрешения
  3. Забываем, что лучший штатный механизм для получения монопольного режима - телефон Laughing

 Конечно, статья не станет откровением для гуру, но новичкам вполне может пригодиться.

 

UPD: Типовая БП 2.0.12.2 обновляется до 2.0.42.6 за 6.5 минут (замер производился без данных в базе)

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2961    12    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3492    11    1    

33

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177719    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27367    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61307    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11742    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    31104    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10973    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. makas 44 06.12.12 10:23 Сейчас в теме
Конечно, статья не станет откровением для гуру, но новичкам вполне может пригодиться


Ха-ха-ха! Пригодится и некоторым программерам, которые приходят и обновлять 1С и балду пинают пару часов, делавид что трудная работа = обновлять!
2. serega3333 06.12.12 11:52 Сейчас в теме
а через инет я как к хранилищу буду подрубаться?
3. 0vrcr 57 06.12.12 12:03 Сейчас в теме
(2) VPN в руки, какие проблемы? в путях можно использовать ip-адреса. Или я не понимаю сути вопроса?
8. serega3333 06.12.12 13:07 Сейчас в теме
(3) 0vrcr, это я так понял помогает в локальной системе, на вашем предприятии...а пришел я к клиенту просто, у него обычный инет...щас я качаю файл с its сайта, а должен из хранилища?
5. bforce 481 06.12.12 12:34 Сейчас в теме
(2) serega3333, а так не прокатит?
/ConfigurationRepositoryF "http://my.global.rep/accounting"
4. bforce 481 06.12.12 12:31 Сейчас в теме
Почему для обновления обязательно использовать хранилище? Разве не будет достаточно написать такой же пакетный файл для обычного обновления конфигурации?
Указал файл обновления поставщика и с теми же ключами командной строки обновил все базы... Я так делаю пакетное обновление застарелых конфигураций, когда нужно избежать прыжков через несколько версий сразу.
6. 0vrcr 57 06.12.12 12:44 Сейчас в теме
(4) в хранилище у нас всегда самая последняя версия. Для обновления из файла можно использовать /UpdateCfg"ИмяФайла". Но ведь при каждом последующем обновлении этот .cf-ник надо будет заменять
7. bforce 481 06.12.12 12:54 Сейчас в теме
(6) 0vrcr, ну, на мой скромный взгляд, при работе с хранилищем действий больше.
С Хранилищем: устанавливаем обновление, захватываем все в хранилище, находим cfu, обновляем локальную базу, помещаем в хранилище, запускаем скрипт.
Без Хранилища: устанавливаем обновление, находим cfu, запускаем скрипт.

Ну, а функционирование хранилища та еще песня... Кто-то неграмотный зашел в конфигуратор и отключился от хранилища, а потом еще что-то подправил (конфа, ведь, с поддержки снята). А раз конфа снята с поддержки, то обновления будут проходить дольше, хотя если получаются только изменения из хранилища, то, возможно, даже быстрее...
9. 0vrcr 57 06.12.12 14:11 Сейчас в теме
(7) Не надо подключать рабочие базы к хранилищу, и тогда никто их не отключит, т.к. нечего отключать. Вся прелесть моего метода как раз в том, что есть только одна база, подключенная к хранилищу, не рабочая. Все остальные базы просто ползут в папку хранилища и берут оттуда обновление. Доступ к своей базе, которая хранилище и образует надо паролить, да и все. А в самой базе можно постоянно держать хранилище захваченным рекурсивно, чтобы не выполнять лишних телодвижений. Благо, никто не мешает помещать новые данные в хранилище без отпускания объектов метаданных. Да плюс история, которая позволит резво откатить все базы сразу, в том случае, если в обновлении был косяк разрабов

(8) Мы говорим об абсолютно разных вещах. Но если уж на то пошло - поясняю. Если у клиента 100500 баз и надо их резво обновить на один релиз, то быстрее использовать механизм из (4) + (6). Если надо проползти много релизов, то проще создать голую базу, накатить на нее обновления, создать из этой базы хранилище, а уже потом воспользоваться методом, описанным в статье.
10. bforce 481 06.12.12 14:25 Сейчас в теме
(9) 0vrcr, суть вашего метода мне понятна. И методы работы с хранилищем всем известны. У меня остаются только вопросы по
  • Необходимости именно хранилища. Преимущество только в том, что вы что-то можете откатить, указав версию. Как часто такое будет необходимо? Я могу точно также хранить cf файлы всех релизов и выбрав нужный подсуну его в свой скрипт
  • Размер базы (конфигурации). Вы увеличиваете размеры баз из-за того, что снимаете их с поддержки
  • Вы замедляете обновление за счет того, что конфа не на поддержке и системе приходится анализировать все объекты.
  • Вы качаете полный cf из хранилища, что происходит катастрофически долго (проверено на практике на 16-й платформе), потому что в момент подключения к хранилищу оно еще "компонует" из себя нужный cf файл. И так каждый раз, и не важно, что версия одна и та же. Кэш в этом случае не помогает.
11. 0vrcr 57 06.12.12 14:35 Сейчас в теме
(10) bforce,
Размер базы (конфигурации). Вы увеличиваете размеры баз из-за того, что снимаете их с поддержки

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

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

Опять же, о чем Вы? Вы используете хранилище только на снятых с поддержки конфигурациях? :)

Вы качаете полный cf из хранилища, что происходит катастрофически долго (проверено на практике на 16-й платформе), потому что в момент подключения к хранилищу оно еще "компонует" из себя нужный cf файл. И так каждый раз, и не важно, что версия одна и та же. Кэш в этом случае не помогает.

С этим я я согласен, но то же самое происходит, если сразу кушать cf-файл
13. bforce 481 07.12.12 00:37 Сейчас в теме
(11) 0vrcr,
Зачем что-либо снимать с поддержки, о чем Вы? В конфигурациях рабочих баз вообще никаких изменений производит не надо.

То есть, для рабочих баз у вас редактирование конфигрурации отключено (конфигурация на замке)? Если это так, то происходит чудо и конфа понимает, что это обновление для нее, а не просто какая-то левая конфигурация.
Опять же, о чем Вы? Вы используете хранилище только на снятых с поддержки конфигурациях? :)
Я использую хранилище для типовых, но только для того, чтобы посмотреть на изменения в версиях. Ваш вариант использования пока уникален.

PS. Попробуйте еще использовать ключ /UpdateDBCfg после ключа /ConfigurationRepositoryUpdateCfg. Они вместе должны работать. Одной строчкой кода станет меньше.
14. 0vrcr 57 07.12.12 09:12 Сейчас в теме
(13) bforce, именно, что цепляется и прелестно обновляется "зазамоченная версия". Однако, сегодня устрою тестовые запуски в трех вариантах:
  • Именно из хранилища
  • Выгрузкой .cf-из хранилища и обновление через него (хотя не уверен, что имеет смысл)
  • Обновление именно из cf
Притом возьму заведомо большой промежуток между релизами. Потом посмотрим как пройдет ОбновлениеКонфигурации.
Результаты выложу в тему

Они вместе должны работать.
Вот почему-то у меня отложилось, что не отрабатывало так... При замере сегодня попробую
16. bforce 481 07.12.12 10:27 Сейчас в теме
(14) 0vrcr, в третьем пункте имеется ввиду файл обновления cfu или полный cf?
17. 0vrcr 57 07.12.12 10:34 Сейчас в теме
(16) bforce, полный .cf. Но почему-то у меня не обновляет пакетно с ключом запуска:
/UpdateCfg"C:\Хранилище\1Cv8.cf" /UpdateDBCfg /UCКодРазрешения

А вот из хранилища типовая БП 2.0.12.2 (чистая) обновилась до 2.0.42.6 за 6.5 минут. Имхо, очень даже неплохой результат!

-----------------------
Тест1: 07.12.2012 9:28:52
9:28:57: Завершена и запрещена работа пользователей
9:35:46: Конфигурация обновлена из хранилища
18. bforce 481 07.12.12 16:33 Сейчас в теме
Но почему-то у меня не обновляет пакетно с ключом запуска:
/UpdateCfg"C:\Хранилище\1Cv8.cf" /UpdateDBCfg /UCКодРазрешения
(17) 0vrcr, У меня в скрипте работает с ключом /LoadCfg, а здесь написано, что может работать и со всеми остальными.
12. 0vrcr 57 06.12.12 14:45 Сейчас в теме
(10) Вероятно, для ускорения процесса имеет смысл выгружать из хранилища cf, а уже его подпихивать для обновления. Но надо бы замерить. У меня сложилось четкое ощущение, что типовые конфигурации через хранилище обновляются со скоростью света
15. 0vrcr 57 07.12.12 09:50 Сейчас в теме
Они вместе должны работать.
Вот почему-то у меня отложилось, что не отрабатывало так... При замере сегодня попробую

Действительно работает, спасибо. Первый замер есть, через хранилище. Сейчас буду делать замер через .cf-ник, потом выложу результаты в шапку
19. oberon355 15 10.12.12 09:05 Сейчас в теме
Походу я чего то не понимаю.... Разве не нужно последовательно обновлять через cfu ? Помню пытался обновлять через cf, получил облом. C тех пор храню полный набор cfu для рабочих конфигураций. Я так понял что халяву как в 7 ке прикрыли. Или я не прав?
20. 0vrcr 57 10.12.12 09:13 Сейчас в теме
(19) вообще нежелательно делать полную загрузку из .cf. А обновление проходит нормально, выполняет нужные скрипты в режиме предприятия. Так что тебя обманули :)
21. oberon355 15 10.12.12 09:46 Сейчас в теме
(20) Никто меня не обманывал, сам ошибся. Надо будет попробовать еще раз. Спасибо за подсказку!
22. zzz_natali 61 12.12.12 18:14 Сейчас в теме
(про себя): --А еще он обозвал тебя земляным червяком! (с) Маугли
(вслух): добавьте хотя бы в свои батники процедуру бакапа базы перед обновлением
23. 0vrcr 57 12.12.12 19:17 Сейчас в теме
(22) zzz_natali, бекапить это святая обязанность каждого. В данной статье вопрос бекапа мы не рассматриваем. Но вообще /dumpIB путь
24. CagoBHuK 32 17.12.12 18:19 Сейчас в теме
Все, конечно, хорошо. А что делать с http://i45.tinypic.com/347tquq.png ?
25. 0vrcr 57 17.12.12 19:54 Сейчас в теме
НЕ надо держать рабочие базы подключенными к хранилищу. Базы подключаются к хранилищу только на момент обновления, автоматически, скриптом. Вручную держать их подключенными не надо
Оставьте свое сообщение