Клавиша F9 не копирует строку в 1С 8.3: проверка, конфигуратор, расширение
Содержание
В 1С 8.3 клавиша F9 по умолчанию копирует текущую строку табличной части, элемент справочника или документ в списке. Специально настраивать ничего не нужно: это стандартная команда платформы «Скопировать». Если копирование по F9 не срабатывает, причина обычно в одном из трёх мест: клавиатура, форма с отключённой командой или доработка конфигурации.
Пользователю хватает проверки клавиатуры и фокуса. Администратору и программисту доступны два пути настройки: включить стандартную команду в конфигураторе или добавить своё копирование через расширение, не снимая типовую конфигурацию с поддержки.
Что делает F9 в 1С и как проверить текущее назначение клавиши
Платформа назначает F9 стандартной команде «Скопировать». Что именно скопируется, зависит от того, где стоит курсор:
- 📄 табличная часть документа (товары, услуги, сотрудники) — появляется новая строка с теми же значениями: номенклатура, количество, цена, сумма;
- 📋 список документов — открывается новый документ, заполненный как исходный, с новой датой и без номера; он не проведён, пока вы его не запишете и не проведёте;
- 📚 список справочника — открывается карточка нового элемента с реквизитами исходного;
- 🧾 форма списка регистра сведений — создаётся новая запись по образцу текущей.
Быстрая проверка назначения прямо в режиме «Предприятие»:
- Поставьте курсор в нужную таблицу.
- Нажмите кнопку
Ещёнад таблицей. - Найдите строку «Скопировать». Справа от неё платформа показывает сочетание клавиш.
Если строки нет или она серая, команда скрыта или недоступна в этой форме. Если рядом указано не F9, а другое сочетание, значит, программист переназначил клавишу.
F9 работает и в конфигураторе, но там это другая команда: в модуле она ставит или снимает точку останова. Путать эти режимы не стоит.
Почему не работает копирование по F9: проверка у пользователя
Прежде чем звать программиста, проверьте простые причины по порядку.
Клавиатура. На ноутбуках и компактных клавиатурах F9 часто занята мультимедийной функцией: яркость, громкость, тачпад. Тогда нажатие уходит в систему, а 1С ничего не получает.
- Нажмите
Fn+F9. Если копирование сработало, дело в режиме функциональных клавиш. - Включите режим
Fn Lock(на многих клавиатурахFn+Esc) или переключите поведение F-клавиш в BIOS либо фирменной утилите производителя.
Фокус. Команда относится к той таблице, в которой стоит курсор. Если курсор в шапке документа, в поле «Комментарий» или в подвале, F9 ничего не скопирует. Щёлкните по нужной строке таблицы и повторите.
Режим только просмотра. Копировать строку нельзя, если документ открыт только для просмотра:
- 🔒 дата документа попадает в закрытый период (дата запрета изменения);
- 🔒 документ заблокирован другим пользователем;
- 🔒 у вашей роли нет права на изменение этого вида документа.
Перехват клавиши. Некоторые программы регистрируют F9 как глобальную горячую клавишу: утилиты записи экрана, переключатели раскладки, оверлеи видеокарт. Закройте их по одной и проверьте снова.
Веб-клиент. В браузере часть функциональных клавиш может обрабатывать сам браузер. Если в тонком клиенте F9 работает, а в веб-клиенте нет, используйте команду из меню Ещё.
Включение копирования по F9 в управляемой форме через конфигуратор
Если в меню Ещё нет «Скопировать», команду убрали в форме. Вернуть её может только тот, у кого есть доступ к конфигуратору. Для типовой конфигурации на поддержке этот путь означает снятие объекта с поддержки, поэтому сначала оцените вариант с расширением из следующего раздела.
Порядок действий в конфигураторе:
- Откройте нужный документ в дереве метаданных и его форму (обычно
ФормаДокумента). - В дереве элементов выделите таблицу, например
Товары. - Откройте палитру свойств таблицы и проверьте:
ТолькоПросмотр— должно быть выключено;ИзменятьСоставСтрок— должно быть включено. Без него недоступны добавление, копирование и удаление строк.
- Раскройте командную панель таблицы. Если у неё выключено
Автозаполнение, стандартные команды не добавятся сами. Добавьте кнопку со стандартной командой таблицыСкопироватьвручную. - Проверьте, не скрыта ли кнопка: у неё должна быть включена
Видимость. Если кнопку скрыли, а в менюЕщёеё тоже нет, клавиша не сработает. - Сохраните конфигурацию и выполните
Конфигурация → Обновить конфигурацию базы данных(F7).
Перед изменением конфигурации рабочей базы сделайте её выгрузку в файл .dt и согласуйте правку с ответственным за сопровождение.
Своя команда на F9. Иногда стандартного поведения мало: нужно копировать строку, но очищать часть полей. Тогда создают команду формы и задают ей в палитре свойств СочетаниеКлавиш = F9. Стандартной кнопке «Скопировать» при этом нужно убрать сочетание или скрыть её, иначе на одну клавишу будут назначены две команды и поведение станет непредсказуемым.
Очистка полей при копировании. Чаще всего своя команда не нужна. Достаточно обработчика события таблицы ПриНачалеРедактирования: у него есть параметр Копирование.
&НаКлиенте
Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока И Копирование Тогда
ТекДанные = Элемент.ТекущиеДанные;
// Количество в новой строке вводим заново
ТекДанные.Количество = 0;
ТекДанные.Сумма = 0;
КонецЕсли;
КонецПроцедуры
Для копирования документа целиком есть другой обработчик — ПриКопировании(ОбъектКопирования) в модуле объекта. В нём очищают реквизиты, которые не должны переходить в копию: номер входящего документа, ссылку на основание, отметку о согласовании.
Копирование по F9 через расширение конфигурации
Расширение (появились в платформе 8.3.6) позволяет поменять поведение формы без снятия типовой конфигурации с поддержки. Обновления потом ставятся как обычно, а доработка лежит отдельно.
Порядок:
- В конфигураторе откройте
Конфигурация → Расширения конфигурациии создайте новое расширение. - В основной конфигурации найдите документ, правой кнопкой по его форме выберите «Добавить в расширение». Форма будет заимствована.
- В заимствованной форме добавьте команду, например
СкопироватьСтрокуБезСерий, и задайте ейСочетаниеКлавиш= F9. - Перетащите команду в командную панель таблицы. У стандартной кнопки «Скопировать» уберите видимость, чтобы не было конфликта.
- Напишите обработчик команды.
- Сохраните расширение и обновите конфигурацию базы данных. Это отдельный шаг: без него расширение не применится.
Пример обработчика, который вставляет копию сразу под текущей строкой:
&НаКлиенте
Процедура СкопироватьСтрокуБезСерий(Команда)
Идентификатор = Элементы.Товары.ТекущаяСтрока;
Если Идентификатор = Неопределено Тогда
Возврат;
КонецЕсли;
Исходная = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
Индекс = Объект.Товары.Индекс(Исходная);
НоваяСтрока = Объект.Товары.Вставить(Индекс + 1);
ЗаполнитьЗначенияСвойств(НоваяСтрока, Исходная, , "НомерСтроки");
Элементы.Товары.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
Модифицированность = Истина;
КонецПроцедуры
Имя таблицы Товары замените на своё. Поля, которые нельзя копировать, добавьте в четвёртый параметр ЗаполнитьЗначенияСвойств через запятую.
Типовые формы при изменении строки обычно пересчитывают итоги, НДС и связанные поля в своих обработчиках. Строка, вставленная кодом, этих обработчиков не вызывает. Если документ считает итоги в подвале, проверьте их после копирования или вызовите пересчёт, который использует сама форма.
Если нужна только очистка полей, а не своя команда, всё проще. В заимствованной форме выделите таблицу, у события ПриНачалеРедактирования создайте обработчик расширения с вызовом «после» основного и поместите туда код из предыдущего раздела.
Копирование строк в разных табличных частях
В одном документе бывает несколько табличных частей: «Товары», «Услуги», «Агентские услуги», «Возвратная тара». F9 работает в каждой отдельно и копирует строку только той таблицы, где стоит курсор. Перенести строку из «Товаров» в «Услуги» клавишей нельзя.
Что учитывать для разных видов строк:
| Что в строке | Что происходит при копировании | Что проверить |
|---|---|---|
| Номенклатура, количество, цена | Копируется всё | Количество и сумму в новой строке |
| Номер ГТД (регистрационный номер декларации), страна происхождения | Копируются вместе со строкой | Подходит ли номер ГТД для новой партии |
| Серии, коды маркировки | Могут храниться отдельно и не перейти в копию | Привязку серий и кодов к новой строке |
| Счета учёта в бухгалтерских документах | Копируются из исходной строки | Совпадают ли счета для нового товара |
| Строки сотрудников в зарплатных документах | Копируются начисления и показатели | Не задвоился ли сотрудник в документе |
Копирование документа целиком по F9 из списка несёт свой риск. Новый документ повторит суммы, контрагента и договор. Если провести копию по ошибке, движения задвоятся: в учёте окажется две реализации или две оплаты.
Скопированный документ проверяйте до проведения. Если копию провели случайно, отмените проведение и пометьте её на удаление.
Ошибки при настройке копирования по F9
Эти ошибки встречаются у тех, кто дорабатывает форму сам.
- ❌ Две команды на одной клавише. Свою команду назначили на F9, а стандартную «Скопировать» не тронули. Сработает одна из них, причём пользователь не поймёт, какая. Держите на F9 ровно одну видимую команду.
- ❌ Забыли обновить базу
после расширения. Расширение сохранено, но
Обновить конфигурацию базы данныхне выполнено. Пользователи видят старую форму. - ❌ Код копирует служебные поля. Ключ связи с подчинёнными таблицами, идентификатор строки, признак «обработано». Такие поля исключайте в
ЗаполнитьЗначенияСвойств, иначе две строки будут ссылаться на одни серии. - ❌ Правка в основной конфигурации без снятия с поддержки. Конфигуратор не даст изменить форму объекта на замке, а снятие с поддержки усложнит каждое следующее обновление. Для типовых баз используйте расширение.
- ❌ Команда на сервере. Копирование строки — действие на клиенте. Если обработчик команды помечен
&НаСервере, форма будет лишний раз обращаться к серверу на каждом нажатии и заметно подтормаживать. - ❌ Не проверили безопасный режим. При подключении расширения конфигуратор предлагает безопасный режим. Для простого копирования строк он не мешает, отключать его без причины не нужно.
Альтернативные способы быстрого ввода строк в 1С
Иногда копирование строки по F9 — не самый быстрый вариант. Полезно знать соседние клавиши и команды.
| Задача | Как сделать быстрее |
|---|---|
| Добавить пустую строку | Ins или кнопка «Добавить» |
| Скопировать строку | F9 |
| Удалить строку | Del |
| Начать редактирование ячейки | F2 или Enter |
| Выбрать значение из списка | F4 в поле ввода |
| Очистить поле | Shift + F4 |
| Переместить строку вверх или вниз | Ctrl + Shift + стрелка |
| Добавить много позиций сразу | Кнопка «Подбор»: отбираете товары с количеством и переносите одним действием |
| Заполнить таблицу по другому документу | Ввод на основании или кнопка «Заполнить», если она есть в форме |
| Перенести список из Excel | Загрузка из файла или вставка из буфера обмена, если конфигурация её поддерживает |
Для типовой реализации на 30 позиций «Подбор» почти всегда быстрее, чем 30 раз нажать F9 и менять номенклатуру. F9 выигрывает, когда строки отличаются одним полем: один товар разными партиями, одна услуга на разные подразделения.
Если документ каждый месяц повторяет прошлый (аренда, абонентское обслуживание), удобнее копировать весь документ из списка по F9 и менять только дату и период.
Частые вопросы
Можно ли переназначить F9 на другую клавишу без программиста?
Копируется ли табличная часть при копировании документа по F9?
Почему после копирования документа нет номера?
Работает ли F9 в обычных формах старых конфигураций?
Как скопировать сразу несколько строк?
Ctrl + C и проверьте, поддерживает ли форма вставку из буфера. Иначе нужна своя команда в расширении.