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