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

Обучение и Решения · 9 мин

Как удалить ячейку в 1С: полная инструкция

Пошаговая инструкция: как удалить ячейку в 1С в табличном документе, макете и таблице значений. Горячие клавиши, очистка содержимого, удаление строк и колонок.

Вопрос «как удалить ячейку в 1С» возникает в трёх разных ситуациях, и у каждой своё решение. Первый случай — работа с табличным документом (печатная форма, макет, произвольная таблица), где ячейка похожа на ячейку Excel. Второй — редактирование табличной части документа или справочника, где «ячейки» на самом деле являются полями строки, и удалить отдельную ячейку нельзя. Третий случай — программное удаление области через встроенный язык 1С, когда макет формируется кодом.

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

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

Как очистить содержимое ячейки в табличном документе

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

Чтобы очистить сразу несколько ячеек, выделите диапазон мышью (или с клавишей Shift) и нажмите Delete. Очистке поддаются текст, числа, параметры макета и шаблоны — всё, что введено в область.

Если кнопка Delete не срабатывает, проверьте, не открыт ли документ в режиме «только просмотр». Печатные формы, сформированные из документа, по умолчанию защищены от редактирования: в командной панели табличного документа найдите кнопку с изображением замка («Только просмотр») и отключите её. После этого ячейки станут доступны для изменения.

Как удалить строку или колонку в табличном документе

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

Для удаления строки щёлкните правой кнопкой мыши по заголовку строки (серая область с номером слева) и выберите «Удалить». Аналогично для колонки: правый клик по заголовку колонки (буква сверху) → «Удалить». Выделить можно сразу несколько строк или колонок, протянув мышью по заголовкам.

Порядок действий
  1. 1
    Откройте табличный документ и отключите режим «Только просмотр», если он активен
  2. 2
    Выделите строку или колонку кликом по её заголовку
  3. 3
    Щёлкните правой кнопкой мыши и выберите «Удалить»
  4. 4
    Проверьте, что соседние области и формулы не потеряли смысл
  5. 5
    Сохраните документ или макет

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

Как удалить ячейку в макете конфигуратора

В конфигураторе макеты редактируются как обычные табличные документы, но есть особенности, связанные с именованными областями и параметрами. Откройте нужный объект (документ, отчёт, справочник), перейдите на вкладку «Макеты» и откройте макет двойным щелчком.

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

Также учтите: если в ячейке был параметр вида [НомерДокумента] или шаблон, а код продолжает заполнять этот параметр через Параметры.НомерДокумента = ..., ошибки не будет — лишнее заполнение просто игнорируется. А вот обратная ситуация опасна: если параметр остался в макете, а код его не заполняет, в печатной форме появится пустое место или текст параметра.

Как удалить «ячейку» в табличной части документа

Табличные части документов и справочников (например, список товаров в реализации) устроены иначе: это не сетка ячеек, а набор строк с колонками-реквизитами. Удалить отдельную ячейку здесь невозможно в принципе — можно только очистить значение поля или удалить строку целиком.

Чтобы очистить значение в поле, встаньте в него и нажмите Shift+F4 (стандартная команда «Очистить») либо Delete, если поле текстовое. Значение сбросится в пустое, при этом типовые проверки заполнения могут не дать провести документ, пока обязательное поле не заполнено снова.

Чтобы удалить строку табличной части, выделите её и нажмите Delete или кнопку с крестиком в командной панели таблицы. В управляемых формах также работает комбинация Ctrl+Shift+F9 («Удалить строку»). Для удаления всех строк сразу используйте кнопку «Ещё» в командной панели табличной части и пункт «Очистить» либо аналогичную команду конкретной конфигурации.

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

Программное удаление области и ячеек

Разработчики удаляют области табличного документа кодом. Для этого используется метод УдалитьОбласть() объекта «ТабличныйДокумент» с указанием области и типа смещения. Пример для удаления строк со сдвигом вверх:

ТабДок = Новый ТабличныйДокумент;

// ... заполнение документа ...

Область = ТабДок.Область(5, 1, 5, 10); // строка 5, колонки с 1 по 10

ТабДок.УдалитьОбласть(Область, ТипСмещенияТабличногоДокумента.ПоВертикали);

Тип смещения определяет, куда сдвинутся оставшиеся ячейки: ПоВертикали — снизу вверх, ПоГоризонтали — справа налево, БезСмещения — область просто очищается. Чтобы очистить содержимое ячейки без удаления, достаточно присвоить пустое значение свойству Текст области: ТабДок.Область(3,2).Текст = "";.

1c
ТабДок.УдалитьОбласть(ТабДок.Область(5,1,5,10), ТипСмещенияТабличногоДокумента.ПоВертикали);

Учтите, что УдалитьОбласть() работает только для обычных (не именованных) областей. Именованные области сначала нужно удалить из коллекции областей или работать с ними через получение диапазона.

Проверка результата и типичные ограничения

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

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

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

Печатная форма после правки макета
Норма

Формируется без ошибок, данные выводятся в нужных местах

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

Ошибка «Область не найдена» или пустые параметры в тексте

Табличная часть документа
Норма

Документ проводится, итоги пересчитаны

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

Сообщение о незаполненном обязательном поле

Табличный документ в режиме предприятия
Норма

Ячейки редактируются, Delete очищает содержимое

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

Включён режим «Только просмотр», изменения недоступны

Основные ограничения, о которых стоит помнить. Во-первых, сдвиг ячеек при удалении возможен только программно, через УдалитьОбласть(); в интерактивном режиме удаляется строка или колонка целиком. Во-вторых, объединённые ячейки удаляются только как единая область — сначала может потребоваться разъединить их через контекстное меню «Разъединить». В-третьих, в защищённых макетах расширений и в режиме «Только просмотр» редактирование недоступно до снятия защиты.

Итог

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

В 1С нельзя удалить одиночную ячейку со сдвигом соседних: очищайте содержимое клавишей Delete, удаляйте строку или колонку через контекстное меню заголовка, а в табличной части документа — удаляйте строку целиком. Перед правкой типового макета сделайте копию и проверьте печатную форму после изменений.

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

Как в 1С удалить ячейку со сдвигом влево, как в Excel?

Интерактивно — никак, такой команды в табличном документе нет. Удалите колонку целиком или перенесите данные вручную. Программно сдвиг выполняется методом УдалитьОбласть() с типом смещения ПоГоризонтали.

Почему клавиша Delete не очищает ячейку в печатной форме?

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

Как удалить сразу несколько строк в табличной части документа?

Выделите строки с зажатой клавишей Ctrl или Shift и нажмите Delete. Если нужно очистить табличную часть полностью, откройте меню «Ещё» в командной панели таблицы и выберите команду очистки — в большинстве типовых конфигураций она присутствует.

Удалил строки из макета, и теперь печать выдаёт ошибку. Что делать?

Скорее всего, удалённые строки входили в именованную область, которую код выводит через ПолучитьОбласть(). Верните строки на место, либо скорректируйте границы области в макете, либо поправьте код. Если копии макета нет, сравните с макетом поставщика в конфигурации поддержки.

Можно ли удалить объединённую ячейку?

Объединённая область удаляется только целиком вместе со строкой или колонкой. Если нужно работать с отдельными ячейками, сначала щёлкните по объединённой области правой кнопкой и выберите «Разъединить», затем очищайте или редактируйте ячейки по отдельности.

Как программно очистить ячейку табличного документа, не удаляя её?

Получите область через ТабДок.Область(номерСтроки, номерКолонки) и присвойте свойству Текст пустую строку. Форматирование ячейки при этом сохранится, изменится только содержимое.