К статье
Практический материал

Разработка и Конфигурация · 10 мин

1С 8: как убрать слово «Копия» при копировании объектов

Как убрать слово «Копия» в 1С 8 при копировании документов и элементов справочников: настройки, конфигуратор, код обработчика и проверка результата.

При копировании документа или элемента справочника в 1С 8 платформа автоматически добавляет к наименованию приставку «Копия:» или «Копия_». Это стандартное поведение, заложенное в обработчик события «При копировании» модуля объекта. В одних конфигурациях приставка удобна — она защищает от случайных дублей, в других только мешает: приходится вручную стирать её из наименования каждого нового объекта.

Убрать слово «Копия» можно несколькими способами: через изменение кода в конфигураторе, через расширение конфигурации без снятия её с поддержки, а в ряде случаев — просто отредактировав наименование вручную в режиме «Предприятие». Выбор зависит от того, кто вы — пользователь без доступа к конфигуратору, администратор или разработчик, и от того, типовая у вас конфигурация или самописная.

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

Откуда берётся слово «Копия» в 1С 8

Платформа 1С:Предприятие 8 сама по себе не добавляет никаких приставок. Слово «Копия» появляется потому, что разработчик конфигурации прописал это в коде. Когда пользователь нажимает F9 или кнопку «Скопировать», система создаёт новый объект и вызывает обработчик события ПриКопировании в модуле объекта (или в общем модуле, подписанном на это событие).

Типичный код выглядит так: Наименование = "Копия: " + Источник.Наименование; или через подписку на событие в общих модулях типовых конфигураций. В «1С:Бухгалтерии», «Управлении торговлей» и других типовых решениях логика копирования часто вынесена в общие модули подсистемы, поэтому строку приходится искать по всей конфигурации.

Важно различать две ситуации: приставка добавляется один раз в момент копирования, и после этого наименование — обычный редактируемый реквизит. Если объекты уже скопированы, убрать слово «Копия» из существующих записей изменением кода нельзя — потребуется ручная правка или обработка группового изменения реквизитов.

Как найти код, который добавляет приставку

Откройте конфигуратор и перейдите в меню «Конфигурация → Открыть конфигурацию». Затем воспользуйтесь глобальным поиском: «Правка → Глобальный поиск по текстам» (Ctrl+Shift+F). В поле поиска введите Копия и ограничьте область поиска модулями объектов и общими модулями.

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

Порядок поиска кода
  1. 1
    Откройте конфигуратор и конфигурацию базы
  2. 2
    Нажмите Ctrl+Shift+F и введите слово «Копия»
  3. 3
    Отфильтруйте результаты по модулям объектов и общим модулям
  4. 4
    Найдите строку вида Наименование = «Копия: » + ... в обработчике ПриКопировании
  5. 5
    Если строка не найдена — проверьте подписки на события (ветка «Общие → Подписки на события»)

Если прямой поиск ничего не дал, откройте в дереве конфигурации нужный объект (документ или справочник), перейдите в его модуль объекта и найдите процедуру ПриКопировании. Если её нет — приставка добавляется через подписку на событие: смотрите ветку «Общие → Подписки на события» и ищите подписку с событием «ПриКопировании» и источником вашего типа объекта.

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

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

bsl
Процедура ПриКопировании(ОбъектКопирования)
	// Было:
	// Наименование = "Копия: " + ОбъектКопирования.Наименование;
	// Стало: оставляем наименование без изменений или очищаем
	Наименование = ОбъектКопирования.Наименование;
КонецПроцедуры

Есть два варианта правки. Первый — оставить наименование таким же, как у исходного объекта: тогда копия будет полным визуальным дубликатом, и отличить её можно только по коду или дате создания. Второй — очищать наименование, чтобы пользователь обязательно ввёл осмысленное: Наименование = "";. Выбор зависит от того, что удобнее пользователям и не нарушит ли пустое наименование контроль заполнения.

После правки обновите конфигурацию базы данных (F7) и проверьте результат в режиме «Предприятие»: скопируйте объект и убедитесь, что приставка больше не появляется. Обратите внимание: правка действует только на новые копии, ранее созданные объекты со словом «Копия» останутся как есть.

Способ 2: расширение конфигурации без снятия с поддержки

Для типовых конфигураций правильный путь — расширение. Оно накладывается поверх основной конфигурации, не нарушает поддержку и легко отключается. Создайте расширение: «Конфигурация → Расширения конфигурации → Создать».

Дальше есть два подхода. Если приставка добавляется в модуле объекта — заимствуйте обработчик ПриКопировании в расширение с аннотацией &После и в нём уберите приставку, перезаписав наименование. Если приставка добавляется подпиской на событие — создайте в расширении свою подписку на то же событие, которая выполнится позже и скорректирует наименование.

bsl
&После("ПриКопировании")
Процедура Расш1_ПриКопировании(ОбъектКопирования)
	Наименование = СтрЗаменить(Наименование, "Копия: ", "");
КонецПроцедуры

После сохранения расширения перезапустите сеанс «Предприятия» и проверьте копирование. Учтите ограничение: если типовой код добавляет приставку не в самом обработчике, а в вызываемой из него процедуре общего модуля, аннотация &После всё равно сработает — вы просто исправляете итоговое значение после всех типовых манипуляций.

Способ 3: убрать «Копию» из уже созданных объектов

Изменение кода не трогает существующие записи. Чтобы почистить накопившиеся наименования, используйте типовую обработку «Групповое изменение реквизитов» (в типовых конфигурациях: «Администрирование → Обслуживание → Корректировка данных», доступна пользователю с правами администратора). Отберите элементы, у которых наименование содержит «Копия», и замените подстроку на пустую.

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

Типичные ошибки
01
Правка кода без резервной копии — при ошибке в синтаксисе обновление конфигурации может завершиться сбоем, а откат будет невозможен
02
Групповая замена подстроки «Копия» без учёта контекста — слово может встречаться в осмысленных наименованиях, например «Копия договора от поставщика», и такие записи испортятся
03
Ожидание, что правка обработчика очистит старые записи — обработчик срабатывает только при создании новых копий
04
Снятие типовой конфигурации с поддержки ради одной строки — при следующем обновлении правка может быть затёрта или вызвать конфликт

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

У документов наименования как такового обычно нет — пользователь видит номер и дату. Слово «Копия» у документов может появляться в комментарии, в представлении или в печатной форме. Если приставка видна в печатной форме, искать нужно не обработчик копирования, а макет или модуль формирования печатной формы.

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

Контрольные точки

Как проверить результат

Скопируйте объект после правки
Норма

Новый объект имеет то же наименование без приставки «Копия»

Тревожный признак

Приставка осталась — значит, она добавляется в другом месте (подписка, команда формы, печатная форма)

Откройте список ранее созданных копий
Норма

Понятно, какие записи требуют ручной или групповой чистки

Тревожный признак

Ожидание, что старые записи изменились сами — так не бывает

Обновите типовую конфигурацию
Норма

Расширение продолжает работать, приставка не возвращается

Тревожный признак

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

Когда лучше вообще не убирать приставку

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

Разумный компромисс — не убирать приставку полностью, а заменить её на более короткую и понятную, например «(копия)» в конце наименования, или добавлять дату копирования. Такая правка делается в той же строке обработчика и сохраняет защитный эффект.

Итог

Что важно запомнить

Приставку «Копия» добавляет код в обработчике ПриКопировании, подписке на событие или команде формы. Найдите её глобальным поиском, для типовой конфигурации правьте через расширение, для своей — напрямую в модуле. Старые записи чистятся отдельно групповой обработкой, а перед любыми изменениями делайте резервную копию базы.

Частые вопросы

Можно ли убрать слово «Копия» без конфигуратора, обычному пользователю?

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

Почему после правки модуля объекта приставка всё равно появляется?

Значит, приставку добавляет другой код: подписка на событие «ПриКопировании», обработчик «ОбработкаЗаполнения» или команда формы «Скопировать». Повторите глобальный поиск по слову «Копия» по всей конфигурации и проверьте ветку «Подписки на события».

Снимется ли конфигурация с поддержки, если использовать расширение?

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

Как массово убрать «Копию» из сотен уже созданных элементов справочника?

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

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

Да. В обработчике ПриКопировании замените строку формирования наименования на присваивание пустой строки. Учтите, что при записи объекта может сработать проверка заполнения, и пользователю придётся ввести наименование до сохранения.

Почему слово «Копия» видно в печатной форме, хотя в наименовании его нет?

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