Обновление тяжелых конфигураций, таких как 1С:Бухгалтерия 8.3 КОРП или 1С:Комплексная автоматизация, часто превращается в проблему, если сервер обладает ограниченными ресурсами (например, в недорогом облачном сервисе), а интернет-канал не позволяет быстро перекачивать гигабайты данных. Ситуация осложняется, если конфигурация доработана, а временное окно на обслуживание ограничено разницей в часовых поясах. Разберем по шагам, как оптимизировать этот процесс и минимизировать время простоя системы.
Проанализируем классический сценарий: последовательное обновление через Конфигуратор на сервере. При таком подходе мы сталкиваемся с тремя основными препятствиями:
Недостаточно памяти при попытке сравнения и объединения конфигураций.Рассмотрим наиболее эффективный метод, который позволяет обойти большинство ограничений. Суть заключается в том, чтобы перенести всю тяжелую вычислительную работу по сравнению и объединению кода на мощный локальный компьютер программиста, а на сервер передавать только готовый результат.
Шаг 1: Подготовка эталонной копии локально
Сначала мы создаем полную копию рабочей базы у себя на локальном компьютере. Важно, чтобы конфигурация этой копии была идентична рабочей базе. На этом этапе мы не ограничены ресурсами сервера и можем спокойно проводить все манипуляции.
Шаг 2: Последовательное обновление конфигурации поставщика
Выясним причину, по которой нельзя просто загрузить последний cf от типовой базы. Поскольку наша конфигурация доработана, нам необходимо обновить именно конфигурацию поставщика, сохраняя при этом свои изменения. Рассмотрим последовательность действий:
Конфигурация — Поддержка — Обновить конфигурацию.1С:Предприятие для выполнения обработок обновления. Мы обновляем только метаданные. Однако помните, что прыгать через слишком большое количество релизов (например, сразу на 20 версий вперед) опасно, так как могут удалиться объекты, которые переименовывались в промежуточных версиях.Шаг 3: Сохранение финального файла конфигурации
После того как мы довели конфигурацию до актуального релиза и проверили работоспособность своих доработок в коде, мы сохраняем результат. Для этого выберем в меню: Конфигурация — Сохранить конфигурацию в файл.... В итоге мы получаем один файл 1cv8.cf, который весит значительно меньше, чем вся база (обычно от 500 МБ до 1 ГБ).
Теперь разберем, как применить подготовленный файл к рабочей базе в облаке. Посмотрим на алгоритм:
1cv8.cf на сервер облачного провайдера.Конфигурация — Сравнить, объединить с конфигурацией из файла....После того как метаданные обновлены, наступает самый важный этап — запуск информационной базы в пользовательском режиме. Выясним, почему это нельзя игнорировать. В современных конфигурациях на базе Библиотеки Стандартных Подсистем (БСП) большая часть логики обновления перенесена в программный код.
При первом запуске системы после обновления метаданных платформа начнет выполнять обработчики:
// Пример того, что происходит внутри системы:
ПроцедурыОбновленияДанных.ВыполнитьОбновление();
Рассмотрим, как ускорить этот процесс в условиях дефицита времени:
1С:Бухгалтерия 3.0 и КА 2 большинство тяжелых процедур (например, пересчет итогов или заполнение новых регистров за прошлые годы) могут выполняться в фоновом режиме. Это позволяет пустить пользователей в базу практически сразу.Администрирование — Обслуживание — Результаты обновления программы мы можем настроить скорость выполнения процедур. В условиях облака лучше не ставить максимальную скорость, чтобы не «повесить» слабый сервер.Если даже при сравнении cf-файла сервер выдает ошибку памяти, проанализируем дополнительные методы оптимизации:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "Server\Base" /N "Admin" /P "Pass" /UpdateCfg "C:\Update\1cv8.cf"
Мы выяснили, что наиболее правильный и быстрый путь для доработанных конфигураций в «слабом» облаке — это подготовка единого файла конфигурации (.cf) на локальной машине. Это позволяет:
Помните: Никогда не пренебрегайте запуском пользовательского режима после загрузки cf. Даже если вы объединили десять релизов за один раз в Конфигураторе, в пользовательском режиме система должна последовательно отработать все процедуры обновления данных для каждого релиза, иначе целостность информации будет нарушена.