Работа с ячейками табличного документа в 1С 8.3

· 9 мин

Содержание

Чаще всего под «добавить ячейку» понимают одно из трёх разных действий, и путают их постоянно. Ячейка в табличном документе 1С (отчёт, печатная форма, макет) живёт на пересечении строки и колонки — отдельную ячейку туда не вставить, зато можно раздвинуть строку или колонку, объединить несколько ячеек в одну и заполнить её текстом или параметром. А вот строку в накладной или в акте добавляют совсем иначе — кнопкой Добавить в табличной части документа. Это не ячейка, хотя выглядит похоже.

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

Что именно нужно добавить?

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

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

Чтобы разблокировать правку:

  1. Откройте главное меню — кнопка с тремя полосками (≡) в левом верхнем углу окна.
  2. Найдите подменю Таблица → Вид.
  3. Снимите флажок Только просмотр.

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

Правка в режиме Предприятия меняет только открытый на экране документ. Если это результат отчёта или печатная форма — после закрытия или повторного формирования всё вернётся к исходному виду. Для постоянных изменений правят макет (см. раздел про Конфигуратор).

Как объединить ячейки . Выделите мышью нужный диапазон, щёлкните правой кнопкой и выберите Объединить. Текст окажется в левой верхней ячейке диапазона, остальные станут её частью. Повторная команда Объединить на объединённой области разъединяет её обратно.

Как раздвинуть строку или колонку. «Добавить ячейку» в середину таблицы нельзя — сдвинется вся разметка. Вместо этого добавляют целую строку или колонку:

  • щёлкните по номеру строки слева (или по заголовку колонки сверху) — выделится вся строка/колонка;
  • правой кнопкой вызовите контекстное меню и выберите вставку строки/колонки;
  • новая пустая строка встанет перед выделенной, существующие сдвинутся вниз.

Ширина и высота. Границу между заголовками строк или колонок тянут мышью — так меняют размер. Двойной щелчок по границе колонки подгоняет ширину под содержимое.

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

Отдельно полезно закрепление шапки: команда фиксации строк и колонок удерживает заголовок на месте при прокрутке длинного отчёта — его видно всегда, даже на сотой строке.

Если нужно просто красиво выгрузить данные в файл, не трогайте разметку вручную. Сохраните документ в Excel (следующий раздел) и доводите оформление уже там — это быстрее и ничего не сломает в 1С.

Перенос данных в Excel и обратно

Табличный документ 1С и лист Excel — близкие форматы, поэтому данные ходят между ними свободно.

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

Загрузка из Excel . Открыть .xlsx как табличный документ можно через Файл → Открыть — 1С прочитает лист в новый табличный документ. Дальше его можно просмотреть, распечатать или сохранить.

А вот загрузить данные из Excel прямо в табличную часть документа (в строки накладной, в номенклатуру) одной кнопкой нельзя. Для этого используют:

  • типовую обработку загрузки из табличного документа — есть в большинстве типовых конфигураций в разделе работы с данными;
  • сервис Загрузка данных в 1С:Бухгалтерии 3.0 — для банковских выписок, справочников, остатков.
ЗадачаИнструментКуда
Выгрузить отчёт в файлФайл → Сохранить как, тип .xlsxНа диск
Открыть чужой Excel-файл в 1СФайл → ОткрытьВ табличный документ
Залить номенклатуру/контрагентовТиповая обработка загрузкиВ справочник или табличную часть

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

Редактирование макетов печати в Конфигураторе

Макет — это тот же табличный документ, но он лежит внутри конфигурации и служит шаблоном. Именно макет определяет, как выглядит печатная форма у всех документов. Правьте его, если ячейку нужно добавить навсегда.

Порядок в Конфигураторе:

  1. Откройте нужный объект (документ, обработку) и его макет в дереве конфигурации.
  2. Снимите конфигурацию с поддержки или включите возможность изменения, если она защищена.
  3. Выделите строку/колонку и добавьте строки так же, как в режиме Предприятия — через контекстное меню заголовков.
  4. Задайте тип ячейки: откройте её свойства (правая кнопка → Свойства) и в поле Заполнение выберите значение:
    • Текст — в ячейке статичный текст;
    • Параметр — 1С подставит значение из кода при печати (имя параметра пишут в самой ячейке в угловых скобках);
    • Шаблон — смесь текста и параметров в [квадратных скобках].

Чтобы вывод работал, строки макета группируют в именованные области: выделяете диапазон строк и задаёте имя области (Таблица → Имена → Назначить имя). Потом код получает эту область и выводит её в документ.

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

Без Конфигуратора. В 1С:Бухгалтерии 3.0 и других типовых пользователь может менять макеты печати прямо из Предприятия: Администрирование → Печатные формы, отчёты и обработки → Макеты печатных форм. Там выбираете нужный макет, открываете на редактирование как табличный документ и добавляете строки, ячейки, логотип. Права на этот раздел нужны administraторские.

Добавление поля и колонки в отчётах на СКД

В системе компоновки данных «ячеек» в привычном смысле нет — вы добавляете поля, а СКД сама разворачивает их в колонки и строки готового отчёта.

Пользовательский уровень (в режиме Предприятия). Сформированный отчёт на СКД почти всегда можно донастроить:

  1. В окне отчёта откройте Ещё → Изменить вариант отчёта (или кнопку Настройки).
  2. На вкладке выбранных полей добавьте нужное поле из списка доступных — перетащите его или отметьте флажком.
  3. Нажмите Завершить редактирование и сформируйте отчёт заново — появится новая колонка.

Там же меняют группировки, отборы, порядок колонок и условное оформление — всё без Конфигуратора.

Уровень схемы (в Конфигураторе). Если нужного поля вообще нет в списке:

  • откройте схему компоновки данных у отчёта;
  • на вкладке наборов данных добавьте поле в запрос или в состав набора;
  • для расчётного значения используйте вкладку вычисляемых полей — туда пишут выражение (например, Цена * Количество);
  • итоговую сумму по колонке задают через ресурсы.

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

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

Когда табличный документ формируется кодом, ячейки заполняют двумя способами: напрямую по координатам или через области макета.

Напрямую по координатам. Метод Область возвращает диапазон по номерам строк и колонок — начальная строка, начальная колонка, конечная строка, конечная колонка:

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

Ячейка = ТабДок.Область(1, 1, 1, 1); // строка 1, колонка 1
Ячейка.Текст = "Наименование";

ТабДок.Область(1, 2, 1, 4).Объединить();     // объединили B1:D1
ТабДок.Область(1, 2, 1, 4).Текст = "Период";

ТабДок.Показать();

Метод Объединить() склеивает диапазон в одну ячейку — тот же результат, что команда меню в интерактиве.

Через области макета. Так строят печатные формы: берут готовый макет с именованными областями, подставляют параметры и выводят области одну за другой.

ТабДок = Новый ТабличныйДокумент;
Макет  = Обработки.ПечатьАкта.ПолучитьМакет("Макет");

Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.НомерДокумента = "УТ-0001";
ТабДок.Вывести(Шапка);

Строка = Макет.ПолучитьОбласть("Строка");
Для Каждого ТекСтрока Из Товары Цикл
    Строка.Параметры.Товар   = ТекСтрока.Номенклатура;
    Строка.Параметры.Сумма   = ТекСтрока.Сумма;
    ТабДок.Вывести(Строка);
КонецЦикла;

ТабДок.Показать();

Вывести добавляет область новой строкой вниз, Присоединить — пристыковывает справа к предыдущей. На этом строятся таблицы с переменным числом колонок.

Сохранить в файл программно:

ТабДок.Записать("C:\Отчёт.xlsx", ТипФайлаТабличногоДокумента.XLSX);

Обратная операция — чтение Excel в табличный документ методом Прочитать.

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

Частые ошибки и как их обойти

  • 📌 Документ не редактируется. Включён режим Только просмотр. Снимите флажок в Таблица → Вид. У печатных форм правка всё равно временная.
  • 📌 Правка в отчёте пропала после переформирования. Так и задумано: результат отчёта пересобирается из данных. Постоянные изменения — только в макете или в настройках СКД.
  • 📌 Объединённые ячейки разъехались в Excel. Сложное форматирование не всегда переносится один в один. Для файлов под загрузку держите плоскую таблицу без объединений.
  • 📌 Поле добавили в схему СКД, а колонки нет. Поле не вынесено в «Выбранные поля» настроек. Схема хранит доступные поля, настройки — выводимые.
  • 📌 Параметр в макете не заполняется. Либо тип ячейки стоит Текст, а не Параметр, либо имя параметра в ячейке не совпадает с именем в коде.
  • 📌 Перепутали ячейку и строку табличной части. Строку в накладную добавляют кнопкой Добавить в самом документе — это не имеет отношения к табличному документу и его ячейкам.
Можно ли вставить одну ячейку в середину таблицы, как в Excel?
Нет. В табличном документе 1С ячейка привязана к пересечению строки и колонки. Добавляют целую строку или колонку либо объединяют соседние ячейки — отдельную ячейку «вклинить» нельзя.
Чем ячейка табличного документа отличается от строки табличной части?
Табличный документ — это отчёт, печатная форма или макет (аналог листа Excel). Табличная часть — это набор строк внутри документа (товары в накладной). В первом случае работают с ячейками, во втором добавляют строки кнопкой Добавить.
Как сделать так, чтобы изменения в печатной форме сохранились для всех документов?
Править нужно макет, а не результат печати на экране. В Конфигураторе — лучше через расширение конфигурации. В типовых конфигурациях есть пользовательский раздел макетов печатных форм в настройках администрирования.
Почему добавленное в СКД поле не выводится в отчёт?
Поле из схемы компоновки нужно отдельно добавить в настройки, в состав выбранных полей. Пока оно только в наборе данных, оно доступно, но в готовом отчёте не появится.
Как объединить ячейки программно?
Получите диапазон методом Область(строка1, колонка1, строка2, колонка2) и вызовите у него Объединить(). Текст задаётся через свойство Текст объединённой области.