В чем разница между командами Сохранить как и Сохранить копию для внешней обработки 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе в Конфигураторе 1С с внешними обработками (файлы .epf) или внешними отчетами (файлы .erf) разработчики часто сталкиваются с пунктами меню «Сохранить как...» и «Сохранить копию...». На первый взгляд может показаться, что они дублируют друг друга, однако между ними есть принципиальная разница в поведении самого редактора. Разберем детально, как работают эти механизмы, и почему обычное копирование файла не меняет его внутреннюю сущность.

Различия в поведении редактора Конфигуратора

Рассмотрим стандартную ситуацию: у нас открыта внешняя обработка с именем Обработка1.epf. Мы внесли в нее изменения и хотим сохранить результат в новый файл. Проанализируем два сценария работы платформы.

Сценарий 1: Использование команды «Сохранить как...»

Когда мы выбираем этот пункт и указываем новое имя (например, Обработка_Новая.epf), платформа выполняет следующие действия:

  1. Записывает текущее состояние объекта в новый файл на диске.
  2. Переключает фокус редактора на этот новый файл.
  3. Все последующие нажатия кнопки «Сохранить» (или Ctrl+S) будут записывать данные именно в Обработка_Новая.epf.
  4. Старый файл Обработка1.epf остается на диске в том состоянии, в котором он был до момента нажатия «Сохранить как...», и редактор с ним больше не связан.

Сценарий 2: Использование команды «Сохранить копию...»

Этот механизм работает иначе и часто используется для создания «быстрых бэкапов» прямо в процессе разработки. Разберем последовательность:

  1. Платформа берет текущее состояние открытой обработки и записывает его в указанный вами файл (например, Резерв_Обработка.epf).
  2. Редактор остается связанным с исходным файлом Обработка1.epf.
  3. Все дальнейшие правки и стандартные сохранения будут применяться к исходному файлу Обработка1.epf.

Таким образом, команда «Сохранить копию» — это способ сделать «снимок» текущей работы в отдельный файл, не прерывая основной процесс редактирования текущего объекта.

Почему UUID остается прежним и на что это влияет

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

Проанализируем, к каким последствиям это приводит:

  1. Хранилище настроек: В 1С настройки форм (ширина колонок, видимость кнопок, последние введенные значения) часто привязываются к внутреннему имени и UUID объекта. Если вы создали копию обработки через «Сохранить копию», запустили обе обработки в одной базе, то изменение настроек в одной из них может «прилететь» в другую, так как для системы они идентичны.
  2. Регистрация в справочнике «Дополнительные отчеты и обработки»: Если вы попытаетесь добавить две такие обработки в типовую конфигурацию на базе БСП (Библиотека стандартных подсистем), система может выдать предупреждение, что такая обработка уже зарегистрирована. Это происходит потому, что идентификация идет не по имени файла, а по внутренним свойствам.

Как сделать обработку по-настоящему уникальной

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

Способ 1: Смена внутреннего имени

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

  1. Откройте внешнюю обработку в Конфигураторе.
  2. В дереве объекта (самый верхний корень) нажмите правую кнопку мыши — «Свойства».
  3. Измените значение в поле «Имя». Например, вместо ЗаполнениеДокументов напишите ЗаполнениеДокументов_Версия2.
  4. Сохраните файл. Теперь для платформы путь к настройкам будет отличаться, так как имя объекта является частью ключа сохранения настроек.

Способ 2: Создание нового объекта через буфер обмена

Если вам нужно гарантированно получить новый UUID для объекта, выполните следующие шаги:

  1. Создайте новую внешнюю обработку через меню «Файл» — «Новый» — «Внешняя обработка». В этот момент платформа генерирует абсолютно новый уникальный идентификатор.
  2. Откройте старую обработку.
  3. Поочередно копируйте элементы из старой в новую:
    • Реквизиты и табличные части (выделить все — Ctrl+C — Ctrl+V в новой).
    • Формы (копируются аналогично).
    • Макеты.
  4. Перенесите код из модуля объекта.

Важно: При копировании форм платформой 1С версии 8.3 UUID самой формы также может сохраниться, если копировать файл целиком. Однако UUID основной обработки будет новым, что уже решит большинство проблем с идентификацией в системе.

Резюме по использованию команд

Рассмотрим рекомендации, когда и какую команду лучше использовать:

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

← На главную