1с обновить конфигурацию базы данных на сервере

Обновлено: 06.07.2024

Программные продукты 1С технически состоят из двух частей:

  • Программная платформа — 1С:Предприятие 8.1, 1С:Предприятие 8.2, 1С:Предприятие 8.3
  • Прикладные конфигурации — 1С:Бухгалтерия, 1С:Управление торговлей и пр.

Регулярные обновления выпускаются фирмой 1С для обоих частей, т.е. обновлению подлежат и платформа и конфигурация.

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

Внимание! Последние версии обновлений некоторых конфигураций (в частности 1С:Бухгалтерии 3.0) требуют для своего применения версии платформы 1С:Предприятие 8.3 и не доступны для платформы версии 8.2.
Поэтому перед применением обновления информационную базу необходимо перевести на использование платформы 1С:Предприятие 8.3. Данная процедура описана в инструкции по переводу информационной базы на платформу 1С:Предприятие 8.3.

Перед обновлением конфигурации

Создание резервной копии

Резервную копию можно создать одним из следующих способов:

  • Вариант А) Простым копированием файла 1СV8.1CD в отдельный каталог.
  • Вариант Б) Используя режим выгрузки информационной базы. Для этого:
    • запустите 1С:Предприятие в режиме «Конфигуратор»;
    • в меню «Администрирование» выберите пункт «Выгрузить информационную базу»;
    • в открывшемся диалоге укажите имя файла, в который будут записаны данные.

    Остановка регламентных и фоновых заданий

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

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

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

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

    Обновление конфигурации

    Запустите 1С:Предприятие 8:



    Откройте вашу информационную базу в режиме Конфигуратора (режим Конфигуратора доступен пользователю 1С с полными правами доступа).


    В интерфейсе конфигуратора необходимо открыть конфигурацию вашей базы. Для этого используйте пункт меню "Конфигурация → Открыть конфигурацию".


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


    В открывшемся диалоге обновления конфигурации выберите пункт "Поиск доступных обновлений" и нажмите кнопку "Далее".


    На следующем экране снимите галку с пункта "Искать обновления в каталоге" (должен остаться выбранным только пункт "Искать в текущих каталогах шаблонов и обновлений") и нажмите кнопку "Далее".


    В списке доступных обновлений выберите нужное вам и нажмите "Готово".


    На экране с описанием обновления нажмите кнопку "Продолжить обновление".


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


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



    После обновления необходимо открыть вашу базу в обычном режиме использования (режим 1С:Предприятие) от лица пользователя 1С с полными правами. Вам будет предложено прочитать условия распространения обновлений программ 1С:Предприятие. Для начала работы выберите пункт "Я подтверждаю легальность получения обновления в соответствии с вышеизложенными условиями" и нажмите кнопку "Продолжить".

    Данная статья является анонсом новой функциональности.
    Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
    Полное описание новой функциональности будет приведено в документации к соответствующей версии.
    Полный список изменений в новой версии приводится в файле v8Update.htm.

    Мы разработали новый механизм реструктуризации базы данных, который позволяет ускорить обновление конфигурации в среднем в 3-4 раза, а в отдельных случаях на порядки. Ускорение достигается за счёт минимизации манипуляций над данными и максимального их переноса на уровень системы управления базой данных (СУБД).

    Что такое реструктуризация?

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

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

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

    01.jpg

    «Традиционная» реструктуризация

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

    • Анализ его изменений;
    • Создание новых таблиц в базе данных, которые соответствуют новой структуре объекта;
    • Перенос данных.

    Из этих трёх шагов перенос данных занимает наибольшее количество времени. При этом сами операции переноса данных могут быть простыми и сложными.

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

    02.jpg

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

    03.jpg

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

    Новый механизм реструктуризации

    Главное изменение заключается в том, что оптимизация реструктуризации достигнута не за счёт локальных изменений «традиционного» механизма, а за счёт создания полностью нового механизма реструктуризации.

    Это непростая и трудоёмкая задача, потому что механизм реструктуризации должен обеспечивать транзакционность изменений, то есть надежность и целостность базы данных во всех случаях. Механизм должен быть готов к тому, что процесс реструктуризации может прерваться в любой момент (в результате сбоя, например), и при этом система должна остаться в консистентном состоянии. То есть либо в виде старой версии, либо в виде новой версии. Старый механизм для этого создавал новые версии изменённых таблиц, и заполнял их. А потом подменял все старые версии на новые.

    Новый механизм тоже обеспечивает транзакционность, но более сложным способом.

    Кроме этого новый механизм основан на ряде идей, которые позволили получить значительное ускорение:

    • Максимальное количество операций делегируется на уровень СУБД, потому что это наиболее близкая к данным часть, и она имеет большие возможности изменения данных.
    • Обрабатываются только те таблицы СУБД, в которых изменения конфигурации могут вызвать изменение данных. В «традиционном» механизме это было не всегда так. Например, при изменении реквизита табличной части документа копировались данные и основной таблицы, и всех табличных частей документа.
    • Табличные части реструктуризируются отдельно. При этом возможно отдельное «пореквизитное» их изменение. Например, если вы добавили реквизит к табличной части, то к таблице просто добавляется новый столбец, без модификации основной таблицы.

    04.jpg

    На основе этих идей мы достигли максимальной оптимизации на тех изменениях конфигурации, которые приводят к следующим операциям с данными:

    • Добавление или удаление столбцов таблиц. Эти операции проводятся теперь на текущих таблицах (раньше создавались новые таблицы и в них переносились данные). Необходимость добавления или удаления столбцов возникает, например, при добавлении или удалении реквизитов, при изменении некоторых свойств объекта конфигурации (иерархия справочника и столбец _ParentID) и др.
    • Добавление или удаление индексов. Просто создаётся новый индекс, без создания новых таблиц и переноса данных. Эти операции выполняются, если вы установили индексирование у реквизита, например.
    • Изменение существующих индексов. Также выполняется без создания таблиц и переноса данных. Например, кластерный индекс регистра сведений меняется тогда, когда вы добавляете измерение.

    В других операциях перенос данных требуется как и раньше, но практически всегда (в большей части операций) он осуществляется на уровне СУБД. Данные переносятся единым запросом. Это может быть INSERT для новых таблиц, или UPDATE существующих таблиц.

    Конечно, существуют такие изменения, которые всё равно проходят обработку на сервере с выгрузкой данных построчно. Например, преобразование строки в число, или в дату. Такие операции нецелесообразно делать на уровне СУБД, к тому же они довольно редко встречаются. Но наиболее частые изменения проводятся всё же на уровне СУБД, одним запросом на одну таблицу.

    В среднем ускорение достигает 4 раз. Это, конечно, зависит от конкретной конфигурации, от конкретных изменений, и даже конкретных данных. В отдельных случаях ускорение может быть до 20 раз. Такое возможно, например, при удалении реквизита в большой таблице, или если изменения затрагивают маленькие таблицы, но сам объект при этом является довольно большим.

    Помимо ускорения есть и другой положительный момент. Во многих случаях не перестраиваются индексы. Это позволяет сохранить их актуальность, сохранить статистику, сократить место, требуемое для реструктуризации.

    Мы провели несколько сравнительных экспериментов на реальных информационных базах, и получили следующие результаты:

    • Добавление реквизитов к документам и измерений к регистрам сведений. База 400 Гб. Новый механизм позволяет ускорить реструктуризацию с 2 часов до 15 минут.
    • Изменение режима совместимости с 8.2.19 на 8.3.6. База 6 Тб. Ускорение с 5 дней до 12 часов.

    Особенности текущей реализации

    Новый механизм реструктуризации мы планируем включить в версию 8.3.11 в статусе бета. Он реализован только на сервере, причём на сервере должна быть установлена Java 8.

    Чтобы использовать новый механизм реструктуризации, вы можете запустить Конфигуратор в пакетном режиме. Кроме этого в файле conf.cfg вы также можете указать необходимость использования нового механизма. Тогда новая реструктуризация будет выполняться при нажатии Конфигурация – Конфигурация базы данных – Обновить конфигурацию базы данных на сервере. Если никаких специальных действий не предпринимать (просто установить новую платформу), то стандартно будет использоваться старый механизм.

    Пока поддерживаются только две СУБД: MS SQL Server и PostgreSQL.

    На текущий момент мы оптимизировали реструктуризацию не всех объектов конфигурации, а только основных:

    • Планов обмена,
    • Справочников,
    • Документов,
    • Журналов документов,
    • Планов видов характеристик,
    • Планов счетов,
    • Регистров сведений,
    • Регистров накопления,
    • Регистров бухгалтерии.

    Для перечисленных объектов (кроме регистров) оптимизированы любые их изменения. Для регистров мы оптимизировали реструктуризацию движений и реструктуризацию таблиц регистрации изменений. Операции пересчёта итогов и пересчёта срезов для регистра сведений мы пока не оптимизировали. Однако, несмотря на это, использование нового механизма уже даёт существенное ускорение всего обновления регистров в целом.

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

    При применении обновлений в базе 1с, часто случается ситуации когда необходимо реструктуризировать таблицы хранимые в базе данных, порой это бывает очень долгий процесс. Ниже приведен способ стандартными средствами платформы ускорить реструктуризацию в 4 раза, но при условии что у вас MS SQL Server или PostgreSQL и платформа старше 8.3.11.2867

    Что такое реструктуризация?

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

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

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

    Реструктуризация базы данных

    После того, как вы обновляете конфигурацию базы данных, создаются новые структуры данных, в которые переносятся старые данные.

    Более подробно про техническую часть и теорию можно почитать на заметках из зазеркалья.

    Как перейти на новый механизм реструктуризации данных

    обновить конфигурацию БД на сервере

    Обновить конфигурацию базы данных на сервере

    Удобнее всего выполнять обновление баз 1С в режиме Конфигуратора.

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

    Для начала запустите Link42 и выберите базу для обновления, откройте ее в режиме Конфигуратора.

    Важно! Обновить базу может только пользователь с правами Администратора.


    Далее уточните текущий релиз конфигурации. Это необходимо для правильного выбора файла обновления. Для этого перейдите в раздел Справка – О программе. В открывшемся окне вы увидите полную информацию о базе: название конфигурации, релиз, каталог, в котором размещена база и т.д.






    Далее переходим в раздел Конфигурация – Открыть конфигурацию.


    Далее в этом же разделе выбираем пункт Поддержка – Обновить конфигурацию.



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

    Далее нам необходимо выбрать файл обновления для нашей базы 1С. Для этого выбираем диск Внешние обработки (N:), открываем папку Обновления 1С. В открывшемся списке конфигураций ищем папку с обновлениями для вашей конфигурации. В нашем примере это Бухгалтерия для Казахстана, редакция 3.0, открываем ее. В этой папке Вы увидите список обновлений, выбираем файл, следующий за текущим релизом вашей базы 1С.

    Для примера, текущий релиз 3.0.17.11, мы выбираем следующий – 3.0.18.11.


    Далее в открывшемся окне нажимаем кнопку Готово



    Открылось информационное окно с версиями программ , для продолжения обновления нажимаем ОК.

    Через несколько секунд откроется еще одно информационное окно, для продолжения обновления нажимаем Да.



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

    Готово, ваша 1С обновлена. Запускайте базу в режиме 1С Предприятие и продолжайте работу.

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

    Для этого запустите базу в режиме Конфигуратор и перейдите в раздел Администрирование - Загрузить информационную базу и выберите файл копии базы.

    Читайте также: