Групповое обновление конфигураций 1С


Обработка для группового обновления конфигураций 1С

Надеюсь, кому-нибудь будет полезной.
В основе — параметры работы с 1С из командной строки.

Назначение:

1. Обновление типовых и нетиповых БД из хранилища

2. Обновление типовых БД (на поддержке) из внешнего файла (*.cf; *.cfu)

3. Архивирование баз до и после обновления

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

5. Анализ ошибок: подробный лог ведется в файле 1c_log.log (по умолчанию в папке temp, можно изменить), результат основных действий выводится в виде сообщений

Предварительные действия:

1. Создать файл со списком баз *.v8i

2. Обновить конфигурацию хранилища или подготовить файлы обновления

Порядок работы:

1. Запускать в толстом клиенте (неуправляемая форма)

2. Заполнить пользователя и пароль администратора баз

3. Поставить флаг «Архивировать базы» — становится доступным раздел «Параметры архивирования»

4. Поставить флаг «Обновить базы» — становится доступным раздел «Параметры обновления»

5. Флаг «Выполнить обновление неинтерактивно» — обновление релизов пройдет через ком-соединение, то есть в обход модального окна подтверждения легальности.

6. Флаг «Блокировать базы» — если нужно всех выкинуть из базы и заблокировать вход, при этом автоматом ставится флаг «Разблокировать базы» из пункта 7, так как нужно будет разблокировать базы. 
   

7. Флаг » Разблокировать базы» — базы запускаются, выполняются процедуры обновления релизов, базы разблокируются и закрываются. (Есть «НО», смотри предупреждение ниже)

Варианты настройки:

1.Базы типовые или нетиповые, но в них имеются процедуры обновления БСП:

Ставим флаг «Выполнить обновление неинтерактивно», чтобы обойти окно проверки легальности

Остальные флаги по мере необходимости

2.Базы нетиповые, процедур обновления БСП нет  

В этом случае можно внести ещё одно маленькое изменение, а именно — отключить процедуру проверки легальности при запуске БД:

В типовых конф-ях Бух 2.0, Зуп 2.5 и т.п. — закомментировать вызов в процедуре «ВыполнитьОбновлениеИнформационнойБазы()». В типовых Бух 3.0, Зуп 3.0 и т.п — вставить «Возврат Ложь» в функцию «ТребуетсяПроверитьЛегальностьПолученияОбновления()». 

Флаг «Выполнить обновление неинтерактивно» снимаем
Ставим флаг «Блокировать базы…» или флаг «Разблокировать базы»
Остальные флаги по мере необходимости

Предупреждение:

Если процедура вывода модального окна проверки легальности при запуске БД НЕ отключена
+ не стоит флаг «Выполнить обновление неинтерактивно» или процедуры обновления БСП отсутствуют в конфигурации
+ стоят флаги «Блокировать базы» или «Разблокировать базы»
то
Окно подтверждения легальности придется закрывать вручную

  

Изменения от 24.02.2014:

1. Добавлена возможность обновлять серверные базы

 

Изменения от 11.04.2014: (версия _005)

1. Флаг «Выполнить обновление неинтерактивно» использовал объект «v82.COMConnector». При использовании других версий (8.0, 8.1, 8.3) обработка не запускалась. Ошибка исправлена. Запускать можно на любой платформе 8.*

 

 

Изменения от 05.08.2014: (версия _006)

1. Наличие пользователей и/или паролей в базах стало НЕобязательным

2. Имена пользователей, названия баз, пути к архивам, логу и т.п. теперь МОГУТ содержать пробелы, ошибку выдавать не будет.

3. Для каждой базы определяется релиз приложения 1cv8, если он установлен в настройках базы. Если не установлен — запускается самый свежий.

4. В командное окно добавлено описание выполняемой операции

 

Изменения от 03.04.2024: (версия _007)

1. Обновление через обработку переделано для работы с БСП. Изменено название флага на «Выполнить обновление неинтерактивно». Сделано для того, чтобы обновлять базы, где есть процедуры обновления БСП.

2. Добавил обработку прерывания пользователя

3. Заметил, что на некоторых новых релизах Бухгалтерии 3.0 после блокировки пользователей вываливается ошибка «Прекращена работа программы 1cv8c» и это окошко не дает закрыться командной строке и продолжиться обработке. С чем это связано пока не понял, при обновлении таких баз просто снимаю флажок «Блокировать базы».

 

Изменения от 08.04.2024: (версия _008)

1. Название модуля обновления в ЗУП «ОбновлениеИнформационнойБазыЗК» отличается от других конфигураций. Забыл исправить в прошлой версии. 

53 Comments

  1. AgregatAvia

    Вот она обработка моей мечты!

    Спасибо, забираю)

    Reply
  2. AgregatAvia

    При открытии обработки выдает следующую ошибку:

    {Форма.Форма.Форма(253,17)}: Переменная не определена (Пользователи)

    ТекТаблица = <<?>>Пользователи;

    {Форма.Форма.Форма(270,17)}: Переменная не определена (Пользователи)

    ТекТаблица = <<?>>Пользователи;

    1С 8.2.19.83 УПП 1.3.48.2

    Reply
  3. flexornail

    (2) AgregatAvia,

    Ошибку исправил. На УПП 1.3 протестировал, перезалил.

    До этого тестировал на БУХе, ЗУПе и самописных. В них случайно имя таблицы «Пользователи» в обработке совпало с именем общего модуля, поэтому ошибку не выдавал при открытии. Прошу прощения.

    Reply
  4. AgregatAvia

    (3) Спасибо, теперь запускается)

    Reply
  5. asseke

    Не заполняет список баз. Есть версия для серверного варианта?

    Reply
  6. flexornail

    (5) asseke,

    Добавил возможность обновлять серверные базы

    Reply
  7. BuchCentr

    Отличная обработка. Список баз около 100. Вручную обновлять сводит с ума.

    Reply
  8. flexornail

    (7) BuchCentr,

    Спасибо на добром слове!

    Reply
  9. COMPER

    Не работает. Платформа 8.3.

    Заполнился список баз. Выбрал файл цф. Выбрал Обновить базы. Пользователи в 1С не заведены.

    Запустил. Появляется черное окно выполнения системных комманд и модальное окошко запуска 1С.

    Потом молчание пока не нажмешь кнопку Выход. Потом пишет «процедуры обновления выполнены!», хотя Ничего не обновилось. В логе практически пусто. Подскажите плиз куда копать?

    Reply
  10. flexornail

    (9) COMPER,

    Добрый день!

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

    !!!В версии 006 от 05.08.2014 уже не требуется!!!

    2. Если пользователи не заведены, то в модальном окошке запуска 1С нужно очистить поле «Пользователь» и запустить базу с пустыми пользователем и паролем (и так придется делать каждый раз при появлении этого окошка). Как это обойти — пока не соображу.

    !!!В версии 006 от 05.08.2014 исправлено!!!

    3. Черное окно выполнения команд — это нормально, закрывать его не нужно.

    4. «процедуры обновления выполнены!» — такого сообщения не смог получить. Если завершить работу во время обновления, то выдается сообщение типа: «Обновление основной конфигурации [111]: Обновление:», а дальше пусто. То есть выводить нечего, потому что в логе пусто (из-за аварийного завершения команды, в нашем случае Вы нажали «Отмена» или «Выход»).

    Reply
  11. o00oalex

    Добрый день. Сборка супер, спасибо за труды.

    Но наткнулся на одну заковыку. Если в названии папки с базой есть пробел, то выдается ошибка что не найдена база, например «С:1CООО Рога и копыта». Можно ли это исправить на уровне обработки, дабы не переименовывать папки с базами?

    Reply
  12. vanndj777

    Обработка для группового обновления конфигураций 1С

    Надеюсь, кому-нибудь будет полезной.

    В основе — параметры работы с 1с из командной строки.

    Групповое обновление конфигураций 1С

    Reply
  13. y-ha

    Очень хочется поставить минус, но пока воздержусь, надеюсь ошибка будет исправлена или может я что не так делаю:

    Пробую обновление на демо базе УТ 11.1.2.25.

    Обработку запускаю на УТ 10. (1С 8.2.19.83, версия обработки 005). Установлены флаги:

    «Запускать обновление через обработку»

    «Запускать базы после обновления»

    «Архивировать базы» + добавлять префикс даты + архивировать до и после.

    Имя пользователя: Федоров (Администратор)

    Пароль — пустой (в демо базе его нет).

    лог:

    Архивирование [УТ Демо 11.1 (последняя) SSD] (_20140710_До): Архивирование (_20140710_До):

    Архивирование [УТ Демо 11.1 (последняя) SSD] (_20140710_После): Архивирование (_20140710_После):

    [УТДемо11.1(последняя)SSD]: процедуры обновления не выполнены!

    Обработка завершена!

    Что происходит:

    1. По кнопке Запустить обработку вываливается окно вводя логина/пароля. Установлен пользователь «Федоров» !!! (куда подевалось (Администратор)????

    2. ок, вручную выбираю пользователя Федоров (Администратор) и ОК.

    3. запускается конфигуратор и … тишина.

    После закрытия конфигуратора опять окно ввода логина/пароля ну и т.п.

    + пожелание — анализировать версию платформы. Если обработка запущена под 8.2, а база под 8.3 то вылазит ошибка несоответствия клиента и сервера (для серверных баз). Надо из списка баз брать параметр версии платформы и запускать под нужной версией платформы (если это возможно).

    Reply
  14. flexornail

    (11) o00oalex,

    В версии 006 от 05.08.2014 исправил, сейчас пробелы допустимы.

    Reply
  15. flexornail

    (13) y-ha, добрый вечер! Указанные Вами ошибки исправил + добавил анализ версии платформы.

    Что нового в версии 006 от 05.08.2014:

    1. Наличие пользователей и/или паролей в базах стало НЕобязательным. Раньше при пустом юзере или пароле обработка прерывалась.

    2. Имена пользователей, названия баз, пути к архивам, логу и т.п. теперь МОГУТ содержать пробелы, ошибку выдавать не будет. Федоров (администратор) как раз из этой оперы.

    3. Для каждой базы определяется релиз приложения 1cv8, если он установлен в настройках базы. Если не установлен — запускается самый свежий.

    4. В командное окно добавлено описание выполняемой операции (чтобы было видно, что что-то выполняется, а не висит).

    Reply
  16. shusharu

    Добрый день!

    Почему то обработка работает не везде. На одном комьютере отработала корректно, на сервере проскакивает окно CMD при запуске батника. Т.е. открывается и тут же закрывается. Причем если запустить сам батник из временной папки то нормально отрабатывает. У меня подозрения, что может быть это как то связано с кодировкой.

    Использую последнюю версию.

    Reply
  17. shusharu

    (16) shusharu, отвечаю сам себе.

    Проблема оказалась в том, что КомнадаСистемы не отрабатывает при использовании КаталогаВременныхФайлов. Если катало задать более простой, тогда все нормально.

    Reply
  18. y-ha

    Добрый день!

    Не отрабатывает обработка свое!

    Автор, попробуй сам обновить УТ11 или Бух 3.0.

    Посмотрев код, можно увидеть что обработка ОбновлениеИнформационнойБазы не имеет экспортных процедур в модуле объекта!

    т.е. данная обработка подходит под БП2.0, к примеру. Необходимо это указать в описании, или изменить обработку доработав под обновление конфигураций на базе БСП.

    Reply
  19. LineykaSBK

    Добрый вечер. Сейчас обязательно опробую Вашу обработку, дело в том, что приобрели ИжТиСи Обновление типовых, но пока есть проблемы у данного продукта. Вопрос, данная обработка обновляет базы на различных конфигурациях? 8.2 и 8.3 подвластны ей ? 🙂 Спасибо за труды, для меня, если данная обработка работает, просто находка 🙂

    Reply
  20. flexornail

    (18) y-ha, приветствую! Исправил под БСП. Протестировал на Бух 2.0, Зуп 2.5, УТ 11, Бух 3.0 и Зуп 3.0. Благодарю за интерес к обработке.

    Reply
  21. flexornail

    (20) LineykaSBK, добрый день! До версии _007, как выяснилось, не отрабатывала обработка неинтерактивного обновления для обхода модального окна подтверждения лицензии. В версии _007 данный косяк исправил. На данный момент, надеюсь, обработка способна обновлять любые конфигурации.

    Reply
  22. flexornail

    (17) shusharu, добрый день! Пару раз натыкался на данную ошибку, тоже путь менял.

    Reply
  23. Stas84

    Подскажите как быть в такой ситуации есть 10 типовых БП. Пропущено порядка 10 обновлений. С помощью данной обработки нужно накатывать по одному обновлению на все базы, используя файлы cfu или есть возможность скормить сразу все файлики cfu?

    Reply
  24. flexornail

    (24) Stas84,

    1.Создайте хранилище на основе одной из баз БП

    2.Накатите на него последовательно 10 обновлений

    3.Обновите 10 баз из хранилища (с помощью обработки)

    Reply
  25. Stas84

    Не работал раньше с хранилищем. При таком порядке, как вы описали, при обновлении из хранилища остальных баз, они автоматически пройдут все 10 обновлений последовательно, с запуском процедуры обновления или обновление из хранилища пройдет за один раз (аналогично сравнить/объединить с последним релизом)???

    Reply
  26. Stas84

    В вашей обработке нашел недоработку. В серверном варианте, при подключении к базе и запуске обработки обновления есть ошибка в строке подключения. Исправил так:

    Если Найти(Нрег(СокрЛП(База.КаталогБазы)),»srvr»)=0 Тогда

    БазаКОМ = V8.Connect(«File=»»»+СокрЛП(База.КаталогБазы)+»»»;Usr = «»»+СокрЛП(ИмяПользователя)+»»»;Pwd = «»»+СокрЛП(Пароль)+»»»;»);

    Иначе

    БазаКОМ = V8.Connect(СокрЛП(База.КаталогБазы)+»;Usr = «»»+СокрЛП(ИмяПользователя)+»»»;Pwd = «»»+СокрЛП(Пароль)+»»»;»);

    КонецЕсли;

    Reply
  27. network-demon

    flexornail, спасибо за обработку, есть вопрос. обновляю несколько баз Бух 8.3 из файла cfu, ставлю галку Выполнять обновление неинтерактивно. обновление проходит без ошибок, при запуске баз все равно выскакивает Проверка легальности и смущает то, что проходит она мгновенно. вопрос, это нормальная ситуация, так и должно быть? для сравнения, с базами Бух 8.2 такого не происходит, если стоит галка проверки легальности нет.

    Reply
  28. TorLink

    За обработку спасибо,помогла!

    Однако полностью на автомате не получается.(

    Каждый раз ругается на процедуры «неинтерактивного обновления ИБ не выполнены!» так и не понял в чем проблема.

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

    И по интерфейсу замечания, настройки надо сохранять, каждый раз прописывать пути не удобно, список баз в идеале сделать древовидным, т.к. когда в списке 100 баз раскиданным по подпапкам, визуально их отмечать тяжеловато выходит, пока найдешь нужную…, а ещё галочки добавьте стандартные, поставить все, убрать все.

    Reply
  29. network-demon

    (22) flexornail, а теперь все в точности как у TorLink, стоит только галка Выполнять обновление неинтерактивно, выдает ошибку «процедуры неинтерактивного обновления ИБ не выполнены» и проверку легальности в каждой базе приходится выполнять вручную. Не знаете в чем дело? Конфигурации Бухгалтерия 8.3 как файловые так и sql версии.

    Reply
  30. alexchibisov2008

    Здравствуйте! Обработка очень полезная это и не обсуждается! Спасибо большое.

    Есть у меня несколько вопросов

    1) Что то я не очень понимаю как ей пользоваться. Мои действия: запускаю ее в одной из баз, ставлю галочки какие нужны, выбираю базы из списка для обновления. Базы должны быть одного релиза?

    2) Что происходит потом? у меня открывается конфигуратор и мне самому обновления ставить в одной из базы?

    Был бы очень благодарен небольшой инструкции.

    И если в пути к базе есть пробел или » -» то пишет, что база не найдена.

    Reply
  31. network-demon

    При обновлении с версии 3.0.40.42 на версию 3.0.41.49 и на более поздние выдает ошибку:

    {Форма.Форма.Форма(236)}: Ошибка при вызове конструктора (COMObject)

    V8 = Новый COMObject(Версия+».COMConnector»);

    по причине:

    -2147221164(0x80040154): Класс не зарегистрирован

    Конфигурация Бухгалтерия 8.3 типовая, платформа последняя.

    Reply
  32. nikonorov

    А если пропущено несколько релизов для типовой конфигурации, то при обновлении указывать каждый новый файл cfu?

    Reply
  33. 2PRV

    Добрый день! В лог пишет «Невозможно выполнение обновления конфигурации в командном режиме». Означает какие то проблемы с конфигурацией? Конфигурация (БГУ 1.0.31.6) редактировалась с сохранением поддержки. В ручном режиме (через конфигуратор) обновляется без проблем

    Reply
  34. flexornail

    (34) 2PRV, добрый вечер! Попробуйте сократить путь к файлу обновления или убрать пробелы и кириллицу. Для пробы можно в корень диска кинуть. Может в этом дело.

    Reply
  35. 2PRV

    (35) flexornail,

    Для пробы можно в корень диска кинуть

    -не помогло. Видимо проблема все таки в конфигурации, т.к. на демо версии базы все успешно обновляется.

    Reply
  36. flexornail

    (36) 2PRV, а в процессе ручного обновления не предлагает установить режим поддержки? Если предлагает, значит не все объекты находятся на поддержке с возможностью изменения. Для исправления ситуации при следующем ручном обновлении нужно поставить «изменение с сохранением поддержки» для всех объектов. Ну или можно в дереве поискать объекты, у которых стоит замок и «снять» его.

    Reply
  37. pavlin7

    Флаг «Выполнить обновление неинтерактивно» — обновление релизов пройдет через ком-соединение, то есть в обход модального окна подтверждения легальности. — Не нашла где устанавливается, Окно подтверждения легальности появляется.

    Reply
  38. pavlin7

    У меня УТ. разобралась

    Reply
  39. chmv

    В каком виде должен быть файл баз

    Reply
  40. chmv

    Не срабатыает connect()

    хотя comобъект создан

    Reply
  41. flexornail

    (40) chmv, добрый день! файл со списком баз должен быть в формате *.v8i

    Reply
  42. flexornail

    (41) chmv, если комобъект создан и ошибка при коннекте, возможно неправильно указан путь к базе, пользователь или пароль

    Reply
  43. chmv

    В том то и дело, что Вы задали Пароль+Пользователь.

    До этого места архивировалось

    Reply
  44. chmv

    Очень понравилась программа. Правда пришлось переписать под тонкий клиент.

    А можно ли как-нибудь программно в этой программе написать релиз

    Reply
  45. flexornail

    (45) chmv, доброе утро! Спасибо! Я почему-то не увидел смысла переписывать обработку под тонкий клиент, запускаю её в толстом клиенте и обновляю любые базы, и на обычных формах и на управляемых.

    Релиз заполнить можно, но для этого при заполнении списка баз, нужно подключаться к каждой базе по ком и вытягивать релиз «Метаданные.Версия»

    Reply
  46. a_v_u

    хотелка: улучшить следующим образом

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

    у меня ситуации мало баз, много обновлений — суть та же — автоматизация

    Reply
  47. chmv

    Хотелось бы узнать как можно обойти легальность в 8,3,8

    Reply
  48. chmv

    Не работает проверка легальности в версии 3.0.44.124

    Reply
  49. chmv

    1. Надо передать параметры обновления

    2. в 3.0.44.124 ошибки

    Reply
  50. NazarovV

    Большое спасибо. Сэкономили кучу времени.

    Reply
  51. wmonref1

    Есть куча одинаковых конфигураций. У всех установил признак «Редактируется с сохранением поддержки». Сделал изменения в одной базе, выгрузил конфигурацию в .cf. Пытаюсь обновить все остальные базы — ничего не выходит. только сообщение «Файл не содержит доступных обновлений»

    Как так??

    Reply
  52. Hidden0084

    Ура! Большое спасибо!

    Reply
  53. wmonref1

    flexor nail, подскажите, пожалуйста, можно ли выполнить «Сравнение, объединение с конфигугарацией из файла» с помощью вашей обработки?

    Я изменил:

    |» + КаталогПриложения + » DESIGNER » + КаталогБазы+ИмяПользователяТекст+ПарольТекст + » /UpdateCfg»+ФайлОбновления+» /UCКодРазрешения»+ТекстЛог+»

    на:

    |» + КаталогПриложения + » DESIGNER » + КаталогБазы+ИмяПользователяТекст+ПарольТекст + » /LoadCfg «+ОбернутьВКавычки(ФайлОбновления)+»/UpdateDBCfg»+»

    но ничего не выходит…

    Помогите пожалуйста.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *