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

Разработка и Конфигурация · 9 мин

Как добавить ячейку в 1С

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

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

Ключевое отличие 1С от Excel: ячейки табличного документа не «вдвигаются» между существующими с автоматическим сдвигом соседних. Табличный документ в 1С — это сетка строк и колонок, и добавить можно строку, колонку или область, а не одиночную ячейку посередине сетки. Поэтому правильная постановка задачи — понять, что именно вы хотите получить в итоге.

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

Как устроены ячейки в табличном документе 1С

Табличный документ — это объект 1С, который используется для отчётов, печатных форм и макетов. Внешне он похож на лист Excel: есть строки, колонки, ячейки с адресами вида R1C1. Но логика работы другая. В Excel вставка ячейки со сдвигом вниз или вправо — штатная операция. В 1С такой операции нет: минимальная вставляемая единица — строка или колонка целиком.

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

У каждой ячейки есть свойства: имя, тип значения, формат, шрифт, рамки, параметры расшифровки. Посмотреть и изменить их можно через контекстное меню ячейки — пункт «Свойства». Именно там настраивается, например, что ячейка содержит параметр макета, а не фиксированный текст.

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

Этот способ подходит, когда табличный документ уже сформирован и открыт на экране — например, вы сформировали отчёт и хотите вручную дописать в него данные. Условие: документ должен быть доступен для редактирования. Многие отчёты открываются в режиме «только просмотр», и сначала нужно снять защиту.

Порядок действий такой. Установите курсор в ячейку той строки, перед которой нужно вставить новую. Откройте главное меню программы (кнопка со стрелкой в левом верхнем углу) или меню «Таблица», выберите пункт «Вставить» → «Строки». Новая пустая строка появится выше текущей. Аналогично для колонки: курсор в нужный столбец, затем «Вставить» → «Колонки» — новый столбец появится слева.

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

Вставка строки в табличный документ
  1. 1
    Откройте табличный документ и снимите режим «Только просмотр» в меню «Таблица» → «Вид»
  2. 2
    Установите курсор в ячейку строки, перед которой нужна новая
  3. 3
    Выберите меню «Таблица» → «Вставить» → «Строки» (или «Колонки» для столбца)
  4. 4
    Заполните новые ячейки данными и проверьте, что оформление и итоги не нарушились

Как добавить ячейку в макет печатной формы

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

В редакторе макета работают те же команды: «Таблица» → «Вставить» → «Строки» или «Колонки». После вставки новой ячейки задайте её содержимое через палитру свойств. Если ячейка должна выводить данные из объекта, в свойстве «Заполнение» выберите «Параметр», а в свойстве «Текст» укажите имя параметра. Затем этот параметр нужно заполнить в программном коде формирования печатной формы — иначе ячейка выведется пустой.

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

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

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

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

Для динамических таблиц, которые формируются программно, колонку добавляют кодом: сначала в таблицу значений методом Таблица.Колонки.Добавить("ИмяКолонки"), затем создают элемент формы и связывают его с данными пути.

bsl
Таблица.Колонки.Добавить("Примечание", Новый ОписаниеТипов("Строка"));
Элемент = Элементы.Добавить("ТаблицаПримечание", Тип("ПолеФормы"), Элементы.Таблица);
Элемент.ПутьКДанным = "Таблица.Примечание";

Объединение и разъединение ячеек

Частая задача, которую ошибочно называют «добавить ячейку», — сделать в шапке таблицы широкую ячейку над несколькими колонками. Для этого выделите диапазон ячеек и выполните «Таблица» → «Объединить». Ячейки сольются в одну, текст внутри неё можно выровнять по центру. Обратная операция — «Разъединить» — доступна, когда курсор стоит в объединённой ячейке.

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

Как проверить результат и какие ошибки встречаются

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

Типичные ошибки
01
Попытка вставить одиночную ячейку со сдвигом, как в Excel — в 1С такой операции нет, вставляйте строку или колонку целиком
02
Добавление колонки только в одну область макета — шапка, строки и подвал перестают совпадать по колонкам
03
Ячейка-параметр добавлена в макет, но не заполняется в коде — на печати выводится пустое место
04
Правка типового макета без расширения — изменения теряются при очередном обновлении конфигурации

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

Итог

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

В 1С добавляют не одиночную ячейку, а строку или колонку табличного документа через меню «Таблица» → «Вставить». Для печатных форм правьте макет в конфигураторе и синхронно меняйте все области. Для таблиц на форме добавляйте колонку в данные и элемент формы. Типовые макеты меняйте через расширение, чтобы не потерять правки при обновлении.

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

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

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

Почему пункт «Вставить» в меню «Таблица» неактивен?

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

Добавил колонку в макет, а на печати она пустая. Что не так?

Ячейка в макете — это только место вывода. Если её заполнение задано как «Параметр», значение должно быть присвоено в коде формирования печатной формы через Область.Параметры.ИмяПараметра = Значение. Проверьте, что имя параметра в макете и в коде совпадает точно, включая регистр.

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

Штатно — никак: состав колонок табличной части определяется структурой конфигурации. Пользователь может лишь скрывать и показывать существующие колонки через «Изменить форму» (меню «Ещё»). Добавление нового реквизита требует доработки конфигурации или расширения.

Пропадут ли мои изменения макета при обновлении конфигурации?

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