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

Справочники и Данные · 9 мин

Как в 1С очистить поле: простые способы и нюансы

Как очистить поле в 1С: в форме документа, справочника, через код 1С:Предприятие 8.3, групповой обработкой. Различия типов полей, ошибки и проверка результата.

Очистить поле в 1С — задача, которая встречается и у обычного пользователя, и у разработчика. У пользователя это выглядит как удаление значения в карточке контрагента, документе или настройке отчёта. У разработчика — как присвоение полю пустого значения в коде. Способ зависит от типа поля: строка, число, дата, ссылка на справочник или составное поле очищаются по-разному.

Главная сложность в том, что «пустое значение» в 1С не всегда равно пустой строке. Для ссылочных полей существует понятие пустой ссылки, для дат — дата '00010101', для чисел — ноль. Если очистить поле неподходящим способом, программа может сохранить техническое значение вместо реальной пустоты, и отчёты начнут вести себя неожиданно.

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

Очистка поля в форме: что делает обычный пользователь

В интерфейсе «Такси» (1С:Предприятие 8.3) большинство полей ввода очищаются стандартно. Установите курсор в поле и нажмите клавишу Delete или Backspace, либо выделите всё содержимое (Ctrl+A) и удалите его. Для ссылочных полей — например, «Контрагент» или «Склад» — рядом с полем часто есть кнопка с крестиком, которая очищает значение одним нажатием.

Если кнопки очистки не видно, кликните по полю правой кнопкой мыши — в контекстном меню обычно есть пункт «Очистить». Этот способ работает и в табличных частях документов: встаньте на нужную ячейку и вызовите контекстное меню.

После очистки обязательно запишите объект кнопкой «Записать» или «Провести и закрыть». Пока объект не записан, очистка существует только на экране и в базу данных не попадёт.

Порядок действий в форме
  1. 1
    Откройте объект (документ, элемент справочника) на редактирование
  2. 2
    Установите курсор в нужное поле
  3. 3
    Нажмите Delete, кнопку с крестиком или выберите «Очистить» в контекстном меню
  4. 4
    Запишите объект кнопкой «Записать» или «Провести и закрыть»
  5. 5
    Переоткройте объект и убедитесь, что поле пустое

Почему поле не очищается: обязательные и недоступные реквизиты

Иногда программа не даёт очистить поле или возвращает старое значение после записи. Самая частая причина — реквизит обязательный для заполнения. Такие поля обычно подчёркнуты красным, и при попытке записи с пустым значением 1С выдаёт сообщение «Поле не заполнено». Очистить его штатно нельзя — только заменить на другое корректное значение.

Вторая причина — поле заполняется автоматически. Например, «Организация» может подставляться из настроек пользователя, а «Счёт учёта» — из регистра соответствий. Вы очищаете поле, а при записи или переключении на другую строку механизм заполнения возвращает значение обратно.

Третья причина — недостаточно прав. Если реквизит недоступен для редактирования (отображается серым), значит, роль пользователя не разрешает его менять, либо объект заблокирован другим сеансом. В этом случае обратитесь к администратору базы.

Маршрут решения

Как выбрать действие

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

Очистка поля программно: пустые значения для разных типов

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

Основные варианты: для строки — пустая строка "", для числа — 0, для булево — Ложь, для даты — '00010101'. Для ссылочных реквизитов (справочники, документы, перечисления) используется пустая ссылка соответствующего типа. Для реквизита составного типа корректно работает Неопределено.

bsl
// Строка
Объект.Комментарий = "";

// Число
Объект.Скидка = 0;

// Дата
Объект.ДатаОкончания = '00010101';

// Ссылка на справочник
Объект.Контрагент = Справочники.Контрагенты.ПустаяСсылка();

// Перечисление
Объект.Статус = Перечисления.СтатусыЗаказа.ПустаяСсылка();

// Составное поле
Объект.Владелец = Неопределено;

Объект.Записать();

Обратите внимание: присваивание Неопределено ссылочному реквизиту простого типа не всегда даёт ожидаемый результат — в базе может остаться техническое значение. Правильнее использовать ПустаяСсылка() конкретного менеджера объекта.

Проверка поля на пустоту в коде

Обратная задача — проверить, очищено ли поле. Для этого во встроенном языке есть функция ЗначениеЗаполнено(). Она возвращает Ложь для пустых строк, нулей, пустых дат и пустых ссылок, что избавляет от сравнения с конкретными пустыми значениями каждого типа.

bsl
Если НЕ ЗначениеЗаполнено(Объект.Контрагент) Тогда
	Сообщить("Поле Контрагент очищено");
КонецЕсли;

Для строк дополнительно используйте СокрЛП() — поле, заполненное пробелами, визуально выглядит пустым, но ЗначениеЗаполнено() может считать его заполненным, если в строке есть хотя бы один непробельный символ. Проверка вида СокрЛП(Объект.Комментарий) = "" надёжнее.

Массовая очистка полей у множества объектов

Когда очистить поле нужно у десятков или тысяч элементов справочника, ручное редактирование неприемлемо. В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) есть обработка «Групповое изменение реквизитов» — обычно она находится в разделе «Администрирование» → «Обслуживание» или доступна по кнопке «Ещё» в списке справочника.

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

Для нетиповых задач разработчики применяют обработку «Универсальный подбор и обработка объектов» с диска ИТС или пишут собственную процедуру с запросом и циклом записи объектов. При больших объёмах запись выполняют в транзакции порциями, чтобы не блокировать базу надолго.

Очистка полей в табличных частях и настройках отчётов

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

В настройках отчётов на СКД (например, «Остатки товаров») поля отбора и параметров очищаются снятием флажка слева от параметра или удалением значения в поле. Если отбор мешает построению отчёта, достаточно отключить флажок — само значение можно не стирать, оно сохранится для следующего запуска.

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

Типичные ошибки
01
Присвоение строки "" ссылочному реквизиту — в базе остаётся некорректное значение вместо пустой ссылки
02
Очистка поля без записи объекта — изменения теряются при закрытии формы
03
Массовая очистка без резервной копии — данные невозможно восстановить
04
Попытка очистить обязательный реквизит — объект не записывается, пользователь считает это сбоем
05
Игнорирование автозаполнения — очищенное поле заполняется снова при записи

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

Чем отличается очистка поля от его удаления?

Очистка убирает только значение — сам реквизит остаётся в структуре объекта. Удаление реквизита возможно только через конфигуратор и меняет структуру базы данных. Пользователю доступна только очистка значений.

Как очистить поле «Дата», если программа требует её заполнить?

Если дата обязательна, очистить её нельзя — только заменить другой датой. Если обязательность мешает бизнес-процессу, её снимает разработчик в конфигураторе, убирая проверку заполнения у реквизита.

Можно ли очистить поле сразу во всех документах за период?

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

Почему после очистки ссылочного поля в отчёте видна надпись вместо пустоты?

Вероятно, реквизиту присвоили строку или Неопределено вместо пустой ссылки нужного типа. Проверьте значение функцией ЗначениеЗаполнено() и присвойте корректную пустую ссылку через менеджер объекта.

Как очистить поле в мобильном клиенте 1С?

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

Итог

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

В форме поле очищается клавишей Delete или кнопкой очистки с последующей записью объекта. В коде пустое значение должно соответствовать типу реквизита: пустая строка, 0, '00010101' или ПустаяСсылка(). Массовую очистку выполняйте групповой обработкой и только после резервного копирования.