Разработка и Конфигурация · 10 мин
1С 8: как убрать слово «Копия» при копировании объектов
Как убрать слово «Копия» в 1С 8 при копировании документов и элементов справочников: настройки, конфигуратор, код обработчика и проверка результата.
При копировании документа или элемента справочника в 1С 8 платформа автоматически добавляет к наименованию приставку «Копия:» или «Копия_». Это стандартное поведение, заложенное в обработчик события «При копировании» модуля объекта. В одних конфигурациях приставка удобна — она защищает от случайных дублей, в других только мешает: приходится вручную стирать её из наименования каждого нового объекта.
Убрать слово «Копия» можно несколькими способами: через изменение кода в конфигураторе, через расширение конфигурации без снятия её с поддержки, а в ряде случаев — просто отредактировав наименование вручную в режиме «Предприятие». Выбор зависит от того, кто вы — пользователь без доступа к конфигуратору, администратор или разработчик, и от того, типовая у вас конфигурация или самописная.
Ниже разобраны все рабочие варианты с конкретными шагами, кодом и проверкой результата. Отдельно рассмотрены риски: неаккуратное изменение типовой конфигурации усложняет обновление, а массовое переименование объектов может нарушить обмены данными.
Откуда берётся слово «Копия» в 1С 8
Платформа 1С:Предприятие 8 сама по себе не добавляет никаких приставок. Слово «Копия» появляется потому, что разработчик конфигурации прописал это в коде. Когда пользователь нажимает F9 или кнопку «Скопировать», система создаёт новый объект и вызывает обработчик события ПриКопировании в модуле объекта (или в общем модуле, подписанном на это событие).
Типичный код выглядит так: Наименование = "Копия: " + Источник.Наименование; или через подписку на событие в общих модулях типовых конфигураций. В «1С:Бухгалтерии», «Управлении торговлей» и других типовых решениях логика копирования часто вынесена в общие модули подсистемы, поэтому строку приходится искать по всей конфигурации.
Важно различать две ситуации: приставка добавляется один раз в момент копирования, и после этого наименование — обычный редактируемый реквизит. Если объекты уже скопированы, убрать слово «Копия» из существующих записей изменением кода нельзя — потребуется ручная правка или обработка группового изменения реквизитов.
Как найти код, который добавляет приставку
Откройте конфигуратор и перейдите в меню «Конфигурация → Открыть конфигурацию». Затем воспользуйтесь глобальным поиском: «Правка → Глобальный поиск по текстам» (Ctrl+Shift+F). В поле поиска введите Копия и ограничьте область поиска модулями объектов и общими модулями.
Найденные вхождения проверьте по контексту: нужна строка, где к наименованию или другому строковому реквизиту прибавляется строка с приставкой. Игнорируйте комментарии, строки журналов регистрации и тексты сообщений пользователю — они не влияют на поведение.
- 1Откройте конфигуратор и конфигурацию базы
- 2Нажмите Ctrl+Shift+F и введите слово «Копия»
- 3Отфильтруйте результаты по модулям объектов и общим модулям
- 4Найдите строку вида Наименование = «Копия: » + ... в обработчике ПриКопировании
- 5Если строка не найдена — проверьте подписки на события (ветка «Общие → Подписки на события»)
Если прямой поиск ничего не дал, откройте в дереве конфигурации нужный объект (документ или справочник), перейдите в его модуль объекта и найдите процедуру ПриКопировании. Если её нет — приставка добавляется через подписку на событие: смотрите ветку «Общие → Подписки на события» и ищите подписку с событием «ПриКопировании» и источником вашего типа объекта.
Способ 1: изменить модуль объекта в конфигураторе
Это самый прямой способ, подходящий для самописных конфигураций и баз, где снятие с поддержки допустимо. Откройте модуль объекта, найдите обработчик ПриКопировании и удалите или закомментируйте строку, добавляющую приставку.
Процедура ПриКопировании(ОбъектКопирования)
// Было:
// Наименование = "Копия: " + ОбъектКопирования.Наименование;
// Стало: оставляем наименование без изменений или очищаем
Наименование = ОбъектКопирования.Наименование;
КонецПроцедурыЕсть два варианта правки. Первый — оставить наименование таким же, как у исходного объекта: тогда копия будет полным визуальным дубликатом, и отличить её можно только по коду или дате создания. Второй — очищать наименование, чтобы пользователь обязательно ввёл осмысленное: Наименование = "";. Выбор зависит от того, что удобнее пользователям и не нарушит ли пустое наименование контроль заполнения.
После правки обновите конфигурацию базы данных (F7) и проверьте результат в режиме «Предприятие»: скопируйте объект и убедитесь, что приставка больше не появляется. Обратите внимание: правка действует только на новые копии, ранее созданные объекты со словом «Копия» останутся как есть.
Способ 2: расширение конфигурации без снятия с поддержки
Для типовых конфигураций правильный путь — расширение. Оно накладывается поверх основной конфигурации, не нарушает поддержку и легко отключается. Создайте расширение: «Конфигурация → Расширения конфигурации → Создать».
Дальше есть два подхода. Если приставка добавляется в модуле объекта — заимствуйте обработчик ПриКопировании в расширение с аннотацией &После и в нём уберите приставку, перезаписав наименование. Если приставка добавляется подпиской на событие — создайте в расширении свою подписку на то же событие, которая выполнится позже и скорректирует наименование.
&После("ПриКопировании")
Процедура Расш1_ПриКопировании(ОбъектКопирования)
Наименование = СтрЗаменить(Наименование, "Копия: ", "");
КонецПроцедурыПосле сохранения расширения перезапустите сеанс «Предприятия» и проверьте копирование. Учтите ограничение: если типовой код добавляет приставку не в самом обработчике, а в вызываемой из него процедуре общего модуля, аннотация &После всё равно сработает — вы просто исправляете итоговое значение после всех типовых манипуляций.
Способ 3: убрать «Копию» из уже созданных объектов
Изменение кода не трогает существующие записи. Чтобы почистить накопившиеся наименования, используйте типовую обработку «Групповое изменение реквизитов» (в типовых конфигурациях: «Администрирование → Обслуживание → Корректировка данных», доступна пользователю с правами администратора). Отберите элементы, у которых наименование содержит «Копия», и замените подстроку на пустую.
Если типовой обработки нет, задачу решает небольшой фрагмент кода через «Консоль кода» или внешнюю обработку: перебрать элементы справочника с отбором по вхождению подстроки и записать их с очищенным наименованием. Перед массовой обработкой обязательно сделайте копию базы и сначала проверьте результат на одном-двух элементах.
Особенности для документов и разных конфигураций
У документов наименования как такового обычно нет — пользователь видит номер и дату. Слово «Копия» у документов может появляться в комментарии, в представлении или в печатной форме. Если приставка видна в печатной форме, искать нужно не обработчик копирования, а макет или модуль формирования печатной формы.
В управляемых формах копирование может идти через команду формы «Скопировать», которая вызывает серверную процедуру заполнения. В этом случае приставка добавляется в обработчике ОбработкаЗаполнения или в коде команды формы, а не в ПриКопировании. Проверьте все три места, если первый поиск не дал результата.
Как проверить результат
Новый объект имеет то же наименование без приставки «Копия»
Приставка осталась — значит, она добавляется в другом месте (подписка, команда формы, печатная форма)
Понятно, какие записи требуют ручной или групповой чистки
Ожидание, что старые записи изменились сами — так не бывает
Расширение продолжает работать, приставка не возвращается
Правка в основной конфигурации затёрлась обновлением — нужно было использовать расширение
Когда лучше вообще не убирать приставку
Приставка «Копия» выполняет защитную функцию: она сразу показывает, что объект создан копированием, и снижает риск спутать дубликат с оригиналом. В справочниках контрагентов или номенклатуры полные дубликаты наименований приводят к ошибкам в документах и отчётах.
Разумный компромисс — не убирать приставку полностью, а заменить её на более короткую и понятную, например «(копия)» в конце наименования, или добавлять дату копирования. Такая правка делается в той же строке обработчика и сохраняет защитный эффект.
Что важно запомнить
Приставку «Копия» добавляет код в обработчике ПриКопировании, подписке на событие или команде формы. Найдите её глобальным поиском, для типовой конфигурации правьте через расширение, для своей — напрямую в модуле. Старые записи чистятся отдельно групповой обработкой, а перед любыми изменениями делайте резервную копию базы.
Частые вопросы
Можно ли убрать слово «Копия» без конфигуратора, обычному пользователю?
Только вручную: откройте скопированный объект и отредактируйте наименование в поле формы. Автоматически приставка убирается только изменением кода, для чего нужны права на конфигуратор и, как правило, роль администратора или разработчика.
Почему после правки модуля объекта приставка всё равно появляется?
Значит, приставку добавляет другой код: подписка на событие «ПриКопировании», обработчик «ОбработкаЗаполнения» или команда формы «Скопировать». Повторите глобальный поиск по слову «Копия» по всей конфигурации и проверьте ветку «Подписки на события».
Снимется ли конфигурация с поддержки, если использовать расширение?
Нет. Расширение работает поверх основной конфигурации и не изменяет её модули, поэтому поддержка и автоматические обновления сохраняются. Это рекомендуемый способ для типовых решений.
Как массово убрать «Копию» из сотен уже созданных элементов справочника?
Используйте типовую обработку «Групповое изменение реквизитов» с отбором по вхождению подстроки «Копия» в наименование и заменой её на пустую строку. Перед запуском сделайте резервную копию и проверьте, что подстрока не встречается в осмысленных наименованиях, которые трогать нельзя.
Можно ли вместо удаления приставки сделать так, чтобы наименование копии было пустым?
Да. В обработчике ПриКопировании замените строку формирования наименования на присваивание пустой строки. Учтите, что при записи объекта может сработать проверка заполнения, и пользователю придётся ввести наименование до сохранения.
Почему слово «Копия» видно в печатной форме, хотя в наименовании его нет?
Печатная форма формируется отдельным кодом и макетом, а не берёт текст напрямую из наименования. Ищите приставку в модуле менеджера объекта (процедуры печати) или в общем модуле формирования печатных форм.