Обучение и Решения · 10 мин
Как очистить поле ввода в 1С
Как очистить поле ввода в 1С: горячие клавиши, кнопка очистки, программные методы в коде, обработка обязательных полей и типичные ошибки.
Поле ввода в 1С — это элемент формы, в который пользователь заносит текст, число, дату или ссылку на объект базы. Очистить поле может понадобиться в разных ситуациях: исправить ошибочно введённое значение, убрать отбор в отчёте, обнулить реквизит документа или сбросить параметры обработки. Способ зависит от того, работаете ли вы как пользователь в интерфейсе или пишете код в конфигураторе.
Важно понимать разницу между очисткой значения на форме и очисткой данных в базе. Пока документ или элемент справочника не записан, очищенное поле влияет только на текущий сеанс редактирования. После записи изменения фиксируются в информационной базе, и вернуть прежнее значение можно только вручную или из резервной копии.
Ниже разобраны все основные способы: горячие клавиши, кнопки формы, программная очистка в коде, особенности обязательных полей и типичные ошибки, которые мешают добиться результата.
Очистка поля в режиме пользователя
Самый простой способ — выделить содержимое поля и удалить его. Установите курсор в поле, нажмите Ctrl+A для выделения всего текста, затем Delete или Backspace. Для полей с датой и числом это работает аналогично.
Быстрый вариант — клавиша Shift+F4. В большинстве полей ввода 1С она очищает значение целиком без предварительного выделения. Это особенно удобно для полей со ссылками на справочники: не нужно стирать длинное наименование посимвольно.
Многие поля в управляемых формах имеют кнопку очистки — небольшой крестик (×) справа от поля. Он появляется, когда поле заполнено. Один щелчок по крестику сбрасывает значение. Если крестика нет, значит разработчик формы отключил кнопку очистки или поле обязательно для заполнения.
- 1Установите курсор в нужное поле ввода
- 2Нажмите Shift+F4 или кликните по крестику справа от поля
- 3Если поле не очистилось — выделите текст через Ctrl+A и нажмите Delete
- 4Проверьте, не выделено ли поле красной рамкой (признак обязательного заполнения)
- 5Запишите документ или закройте форму без сохранения, если очистка была ошибочной
Особенности обязательных и вычисляемых полей
Не каждое поле можно очистить. Если реквизит помечен в конфигурации как обязательный, платформа не даст записать объект с пустым значением: при записи появится сообщение вида «Поле "Контрагент" не заполнено». Само поле при этом очистить на форме можно, но сохранить объект не получится, пока вы не укажете новое значение.
Некоторые поля заполняются автоматически: по значениям по умолчанию, из настроек пользователя или из связанных реквизитов. Например, очистив организацию в документе, вы можете обнаружить, что она подставилась снова при следующем открытии — это работает механизм подстановки основной организации. Чтобы изменить такое поведение, нужно смотреть настройки учётной записи или обращаться к администратору.
Поля, доступные только для просмотра (серый цвет, без возможности редактирования), очистить в режиме пользователя нельзя. Это либо вычисляемые показатели, либо реквизиты, заблокированные правами доступа или функциональными опциями.
Программная очистка реквизита в коде
Разработчику для очистки простого реквизита достаточно присвоить ему пустое значение соответствующего типа. Универсальный способ — присвоить Неопределено, но корректнее очищать с учётом типа, чтобы не нарушать логику проверок заполнения.
Для строкового реквизита присваивают пустую строку, для числового — ноль, для даты — пустую дату, для ссылочного — пустую ссылку конкретного справочника или документа. Примеры:
Объект.Комментарий = "";
Объект.Сумма = 0;
Объект.ДатаОплаты = '00010101';
Объект.Контрагент = Справочники.Контрагенты.ПустаяСсылка();
Если реквизит составного типа (может хранить ссылки разных справочников), безопаснее присвоить Неопределено — платформа сама сбросит значение. После программной очистки на управляемой форме иногда требуется обновить отображение, но обычно платформа делает это автоматически при изменении реквизита объекта.
Очистка табличных частей и списков
Табличная часть документа — это не одно поле, а коллекция строк. Чтобы удалить все строки разом, используется метод Очистить(). Он удаляет все строки без перебора и работает быстрее цикла с удалением.
Объект.Товары.Очистить();
Если нужно удалить не все строки, а только часть, используют либо перебор с конца коллекции с методом Удалить(), либо отбор через НайтиСтроки() с последующим удалением найденных строк. Удалять строки в прямом цикле «с начала» нельзя — индексы смещаются, и часть строк будет пропущена.
В пользовательском режиме табличную часть очищают кнопкой «Ещё» в панели таблицы либо выделением всех строк (Ctrl+A в таблице) и нажатием Delete. В некоторых конфигурациях есть отдельная команда «Очистить» в меню табличной части.
Очистка полей отбора в отчётах и динамических списках
Частая задача — убрать значение в поле отбора отчёта или настройки списка. В отчётах на СКД (например, «Остатки товаров», «Продажи») откройте панель настроек, найдите нужный отбор и либо снимите флажок использования, либо очистите значение поля крестиком или Shift+F4. Снятие флажка предпочтительнее: отбор просто перестаёт применяться, а значение сохраняется для будущего использования.
В динамических списках (журналы документов, списки справочников) быстрый отбор по полю сбрасывается очисткой соответствующего поля над таблицей. Если отборов много, проще воспользоваться командой сброса настроек списка — обычно она находится в меню «Ещё» под названием «Установить стандартные настройки» или похожим образом.
Учтите, что отчёт после очистки отбора нужно пересформировать — данные на экране не обновятся сами. Если после пересчёта результат не изменился, проверьте, не задан ли тот же отбор на другом уровне настроек: в варианте отчёта или в отборе самой схемы компоновки.
Как проверить результат
Поле пустое, курсор доступен, крестик исчез
Значение вернулось после записи или перехода по полям
Документ записался без сообщений о незаполненных полях
Появляется ошибка «Поле не заполнено» — реквизит обязательный
Данные пересчитались, лишних ограничений нет
Результат прежний — отбор задан в другом месте настроек
Типичные ошибки и ограничения
Самая частая ошибка пользователя — попытка очистить обязательное поле и непонимание, почему объект не записывается. Платформа подсвечивает такие поля и выводит сообщение; решение — либо заполнить поле корректным значением, либо отменить редактирование.
Вторая ошибка разработчика — присвоение пустой строки ссылочному реквизиту. Типы несовместимы, и в зависимости от контекста это даст ошибку или неочевидное поведение. Всегда используйте ПустаяСсылка() конкретного менеджера или Неопределено для составных типов.
Третья ситуация — очистка поля на форме без изменения данных объекта. Если поле связано с реквизитом формы, а не объекта, очистка визуального элемента не всегда сбрасывает значение в данных. Разработчику нужно очищать именно реквизит, а не пытаться управлять текстом элемента формы.
Когда очистка не помогает: альтернативные действия
Если цель — не очистить, а вернуть прежнее значение, не записывайте объект: закройте форму с отказом от сохранения. Для уже записанных изменений поможет только история изменений (если включено версионирование объектов) или резервная копия.
Если поле блокируется правами, обратитесь к администратору: ограничение задано ролями доступа или функциональными опциями, и обойти его штатными средствами пользователь не должен. Массовую очистку реквизитов у множества объектов выполняйте групповой обработкой изменения реквизитов — она есть в большинстве типовых конфигураций в разделе администрирования.
Что важно запомнить
Пользователю поле очищается через Shift+F4, крестик или Delete после выделения; обязательные поля не дадут записать объект пустыми. В коде используйте значения по типу: пустая строка, ноль, пустая дата, ПустаяСсылка(), а для таблиц — метод Очистить(). Перед массовой очисткой делайте резервную копию.
Частые вопросы
Почему поле очищается, но после записи значение появляется снова?
Срабатывает автозаполнение: обработчик в коде формы, подписка на событие записи или подстановка значения по умолчанию (например, основной организации или склада). Проверьте настройки пользователя, а если не помогло — попросите разработчика посмотреть обработчики ПередЗаписью и ПриЗаписи объекта.
Как очистить поле, если крестика рядом с ним нет?
Используйте Shift+F4 или выделите содержимое (Ctrl+A) и нажмите Delete. Отсутствие крестика означает, что кнопка очистки отключена разработчиком формы, но само значение обычно всё равно можно стереть вручную, если поле доступно для редактирования.
Чем отличается очистка отбора от снятия флажка в настройках отчёта?
Очистка значения оставляет отбор активным с пустым значением, что может скрыть все данные отчёта. Снятие флажка отключает само условие отбора, сохраняя введённое значение. Для отключения фильтрации предпочтителен второй способ.
Как программно удалить не все строки табличной части, а только часть?
Используйте метод НайтиСтроки() с отбором по условию и удаляйте найденные строки в цикле методом Удалить(). Либо перебирайте коллекцию с конца (от последнего индекса к первому) — тогда удаление не нарушит нумерацию оставшихся элементов.
Можно ли восстановить очищенное поле после записи документа?
Штатной отмены после записи нет. Варианты: ввести значение заново вручную, восстановить объект из версии (если включено версионирование объектов в настройках) или из резервной копии базы. Поэтому перед массовыми изменениями всегда делайте копию.
Почему Shift+F4 не срабатывает в некоторых полях?
Сочетание работает не во всех типах элементов: в многострочных текстовых полях и некоторых специальных элементах оно может быть не назначено. В таком случае выделяйте текст через Ctrl+A и удаляйте клавишей Delete — этот способ универсален.