Обновление конфигурации 1С:Управление производственным предприятием (УПП) 1.3 — это всегда ответственный процесс, особенно когда база содержит множество доработок, а история обновлений была нарушена. В такой ситуации стандартный механизм "Конфигурация — Поддержка — Обновить конфигурацию" может работать некорректно или привести к потере данных. Рассмотрим ситуацию, когда версия конфигурации поставщика "отстала" от реальной версии основной конфигурации, и разберем по шагам, как безопасно привести систему к актуальному релизу.
Часто встречается ситуация, когда в окне "О программе" значится один релиз (например, 1.3.106.1), а в окне "Настройка поддержки" — гораздо более старый (например, 1.3.85.3). Это означает, что предыдущие обновления выполнялись некорректно (например, простым сравнением-объединением с .cf файлом без обновления конфигурации поставщика). Перед началом масштабного обновления нам необходимо "выравнять" эти версии.
Проанализируем методику приведения конфигурации поставщика к актуальному состоянию основной конфигурации без изменения самого кода:
.cf файл той версии, которая сейчас реально установлена у клиента (в нашем примере — 1.3.106.1)..cf файл версии 1.3.106.1.Для сильно измененных конфигураций не рекомендуется "прыгать" через десятки релизов сразу в рабочую базу. Разберем правильный подход с использованием промежуточного эталонного файла. Выясним причину, почему это важно: УПП содержит сложные процедуры обработки данных (обработчики обновления), которые должны выполняться последовательно.
Проделаем следующие действия в отдельной пустой базе:
.cf файл актуального релиза, который является "чистым" эталоном.Чтобы понять, что именно было изменено в вашей базе (так как документации часто нет), воспользуемся механизмом сравнения. Рассмотрим этот процесс подробнее:
Возьмем вашу текущую рабочую конфигурацию (1.3.106.1 с доработками) и сравним ее с чистым типовым .cf файлом версии 1.3.106.1. Для этого идем в Конфигурация — Сравнить конфигурации. Те объекты, которые будут помечены в дереве сравнения, и есть ваши доработки. Рекомендуем сохранить этот список (можно сделать скриншот дерева или выгрузить отчет о сравнении), так как именно эти места потребуют внимания при объединении с новым релизом.
Теперь, когда у нас есть выравненная поддержка и финальный типовой .cf, приступаем к объединению. Выполняем Конфигурация — Поддержка — Обновить конфигурацию, выбрав финальный типовой .cf.
В окне сравнения-объединения крайне важно правильно настроить фильтры. Рассмотрим основные правила:
Пример анализа кода в общем модуле:
// Было в типовой 1.3.106
Процедура РассчитатьНалог()
// Типовой код
КонецПроцедуры
// Стало в вашей доработанной 1.3.106
Процедура РассчитатьНалог()
// Типовой код
// ВАША ДОРАБОТКА: Дополнительный расчет
КонецПроцедуры
// Стало в новой типовой 1.3.160
Процедура РассчитатьНалог(НовыйПараметр = Истина)
// НОВЫЙ Типовой код от 1С
КонецПроцедуры
В данном случае вам нужно перенести вашу доработку в новую структуру процедуры, учитывая изменившиеся параметры от 1С.
Разберем типичную ошибку, упомянутую в сообщении №46: Ошибка при получении значения атрибута контекста (ТекущийПользователь) ... Слишком много фактических параметров.
Проанализируем ситуацию: такая ошибка часто возникает из-за кэша конфигурации или некорректного обновления метаданных ПараметрыСеанса. Если вы обновили код модуля, который обращается к параметру сеанса, но сам параметр сеанса (объект метаданных) еще не был обновлен в базе данных или "завис" в кэше, система может выдавать подобные странные ошибки.
Рекомендации по устранению:
УстановкаПараметровСеанса(ИменаПараметровСеанса) должна соответствовать актуальному типовому коду.После успешного объединения в конфигураторе и сохранения (F7), наступает самый ответственный момент — первый запуск в режиме "1С:Предприятие".
Важные правила:
Проанализировав весь процесс, мы видим, что ключ к успеху — это последовательность и аккуратность. Никогда не пренебрегайте промежуточными этапами и всегда имейте под рукой "чистый" типовой релиз для сравнения. Это позволит вам контролировать каждое изменение и гарантировать стабильную работу обновленной УПП.