Работа с ячейками табличного документа в 1С 8.3
Содержание
Чаще всего под «добавить ячейку» понимают одно из трёх разных действий, и путают их постоянно. Ячейка в табличном документе 1С (отчёт, печатная форма, макет) живёт на пересечении строки и колонки — отдельную ячейку туда не вставить, зато можно раздвинуть строку или колонку, объединить несколько ячеек в одну и заполнить её текстом или параметром. А вот строку в накладной или в акте добавляют совсем иначе — кнопкой Добавить в табличной части документа. Это не ячейка, хотя выглядит похоже.
Разберём все режимы: правку готового табличного документа прямо в режиме Предприятия, перенос в Excel и обратно, редактирование макета в Конфигураторе, вывод колонок в системе компоновки данных (СКД) и программное заполнение ячеек на встроенном языке. Для каждого случая — где в интерфейсе «Такси» нажимать и чем это грозит.
Добавить над табличной частью — появится новая строка для заполнения.Ещё → Изменить вариант отчёта или Настройки) и добавьте поле в «Выбранные поля». Колонка появится при следующем формировании.Правка готового табличного документа в режиме Предприятия
Отчёты и печатные формы открываются как табличный документ. По умолчанию он доступен только для чтения — поэтому курсор по ячейкам ходит, а поменять ничего нельзя.
Чтобы разблокировать правку:
- Откройте главное меню — кнопка с тремя полосками (≡) в левом верхнем углу окна.
- Найдите подменю
Таблица → Вид. - Снимите флажок
Только просмотр.
После этого ячейки станут редактируемыми: можно вписать текст, поменять форматирование, объединить диапазон.
Правка в режиме Предприятия меняет только открытый на экране документ. Если это результат отчёта или печатная форма — после закрытия или повторного формирования всё вернётся к исходному виду. Для постоянных изменений правят макет (см. раздел про Конфигуратор).
Как объединить ячейки
. Выделите мышью нужный диапазон, щёлкните правой кнопкой и выберите Объединить. Текст окажется в левой верхней ячейке диапазона, остальные станут её частью. Повторная команда Объединить на объединённой области разъединяет её обратно.
Как раздвинуть строку или колонку. «Добавить ячейку» в середину таблицы нельзя — сдвинется вся разметка. Вместо этого добавляют целую строку или колонку:
- щёлкните по номеру строки слева (или по заголовку колонки сверху) — выделится вся строка/колонка;
- правой кнопкой вызовите контекстное меню и выберите вставку строки/колонки;
- новая пустая строка встанет перед выделенной, существующие сдвинутся вниз.
Ширина и высота. Границу между заголовками строк или колонок тянут мышью — так меняют размер. Двойной щелчок по границе колонки подгоняет ширину под содержимое.
Оформление ячейки. Выделите ячейку или диапазон, вызовите правой кнопкой Свойства — откроется палитра с настройками. Здесь задают шрифт и его размер, заливку фона, границы (рамку можно включить только снизу, только по контуру диапазона или по всем линиям), выравнивание по горизонтали и вертикали. Для переноса длинного текста внутри узкой ячейки включите в свойствах перенос по словам — иначе текст уйдёт за край и обрежется при печати.
Отдельно полезно закрепление шапки: команда фиксации строк и колонок удерживает заголовок на месте при прокрутке длинного отчёта — его видно всегда, даже на сотой строке.
Если нужно просто красиво выгрузить данные в файл, не трогайте разметку вручную. Сохраните документ в Excel (следующий раздел) и доводите оформление уже там — это быстрее и ничего не сломает в 1С.
Перенос данных в Excel и обратно
Табличный документ 1С и лист Excel — близкие форматы, поэтому данные ходят между ними свободно.
Выгрузка в Excel. Откройте табличный документ (отчёт, печатную форму) и вызовите Файл → Сохранить как. В поле типа файла выберите формат листа Excel (.xlsx). Получится обычная книга, где каждой ячейке 1С соответствует ячейка Excel — добавляйте строки, колонки и ячейки штатными средствами Excel.
Загрузка из Excel
. Открыть .xlsx как табличный документ можно через Файл → Открыть — 1С прочитает лист в новый табличный документ. Дальше его можно просмотреть, распечатать или сохранить.
А вот загрузить данные из Excel прямо в табличную часть документа (в строки накладной, в номенклатуру) одной кнопкой нельзя. Для этого используют:
- типовую обработку загрузки из табличного документа — есть в большинстве типовых конфигураций в разделе работы с данными;
- сервис
Загрузка данныхв 1С:Бухгалтерии 3.0 — для банковских выписок, справочников, остатков.
| Задача | Инструмент | Куда |
|---|---|---|
| Выгрузить отчёт в файл | Файл → Сохранить как, тип .xlsx | На диск |
| Открыть чужой Excel-файл в 1С | Файл → Открыть | В табличный документ |
| Залить номенклатуру/контрагентов | Типовая обработка загрузки | В справочник или табличную часть |
Объединённые ячейки и хитрое форматирование при переносе в Excel и обратно часто съезжают. Если файл пойдёт на загрузку в 1С, держите данные простой таблицей: одна строка — одна запись, без объединений и пустых колонок.
Редактирование макетов печати в Конфигураторе
Макет — это тот же табличный документ, но он лежит внутри конфигурации и служит шаблоном. Именно макет определяет, как выглядит печатная форма у всех документов. Правьте его, если ячейку нужно добавить навсегда.
Порядок в Конфигураторе:
- Откройте нужный объект (документ, обработку) и его макет в дереве конфигурации.
- Снимите конфигурацию с поддержки или включите возможность изменения, если она защищена.
- Выделите строку/колонку и добавьте строки так же, как в режиме Предприятия — через контекстное меню заголовков.
- Задайте тип ячейки: откройте её свойства (правая кнопка →
Свойства) и в полеЗаполнениевыберите значение:Текст— в ячейке статичный текст;Параметр— 1С подставит значение из кода при печати (имя параметра пишут в самой ячейке в угловых скобках);Шаблон— смесь текста и параметров в[квадратных скобках].
Чтобы вывод работал, строки макета группируют в именованные области: выделяете диапазон строк и задаёте имя области (Таблица → Имена → Назначить имя). Потом код получает эту область и выводит её в документ.
Главный приём, который экономит часы: не снимайте типовую конфигурацию с поддержки ради одной печатной формы. Создайте расширение конфигурации и правьте макет в нём. Типовая останется нетронутой — обновления встанут без конфликтов, а ваш макет переопределит стандартный.
Без Конфигуратора. В 1С:Бухгалтерии 3.0 и других типовых пользователь может менять макеты печати прямо из Предприятия: Администрирование → Печатные формы, отчёты и обработки → Макеты печатных форм. Там выбираете нужный макет, открываете на редактирование как табличный документ и добавляете строки, ячейки, логотип. Права на этот раздел нужны administraторские.
Добавление поля и колонки в отчётах на СКД
В системе компоновки данных «ячеек» в привычном смысле нет — вы добавляете поля, а СКД сама разворачивает их в колонки и строки готового отчёта.
Пользовательский уровень (в режиме Предприятия). Сформированный отчёт на СКД почти всегда можно донастроить:
- В окне отчёта откройте
Ещё → Изменить вариант отчёта(или кнопкуНастройки). - На вкладке выбранных полей добавьте нужное поле из списка доступных — перетащите его или отметьте флажком.
- Нажмите
Завершить редактированиеи сформируйте отчёт заново — появится новая колонка.
Там же меняют группировки, отборы, порядок колонок и условное оформление — всё без Конфигуратора.
Уровень схемы (в Конфигураторе). Если нужного поля вообще нет в списке:
- откройте схему компоновки данных у отчёта;
- на вкладке наборов данных добавьте поле в запрос или в состав набора;
- для расчётного значения используйте вкладку вычисляемых полей — туда пишут выражение (например,
Цена * Количество); - итоговую сумму по колонке задают через ресурсы.
Добавили поле в схему, а в отчёте оно не появилось? Поле из схемы — это ещё не колонка. Его нужно отдельно вынести в настройки, в «Выбранные поля». Без этого шага оно останется доступным, но невидимым.
Программное заполнение ячеек на встроенном языке
Когда табличный документ формируется кодом, ячейки заполняют двумя способами: напрямую по координатам или через области макета.
Напрямую по координатам. Метод Область возвращает диапазон по номерам строк и колонок — начальная строка, начальная колонка, конечная строка, конечная колонка:
ТабДок = Новый ТабличныйДокумент;
Ячейка = ТабДок.Область(1, 1, 1, 1); // строка 1, колонка 1
Ячейка.Текст = "Наименование";
ТабДок.Область(1, 2, 1, 4).Объединить(); // объединили B1:D1
ТабДок.Область(1, 2, 1, 4).Текст = "Период";
ТабДок.Показать();
Метод Объединить() склеивает диапазон в одну ячейку — тот же результат, что команда меню в интерактиве.
Через области макета. Так строят печатные формы: берут готовый макет с именованными областями, подставляют параметры и выводят области одну за другой.
ТабДок = Новый ТабличныйДокумент;
Макет = Обработки.ПечатьАкта.ПолучитьМакет("Макет");
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.НомерДокумента = "УТ-0001";
ТабДок.Вывести(Шапка);
Строка = Макет.ПолучитьОбласть("Строка");
Для Каждого ТекСтрока Из Товары Цикл
Строка.Параметры.Товар = ТекСтрока.Номенклатура;
Строка.Параметры.Сумма = ТекСтрока.Сумма;
ТабДок.Вывести(Строка);
КонецЦикла;
ТабДок.Показать();
Вывести добавляет область новой строкой вниз, Присоединить — пристыковывает справа к предыдущей. На этом строятся таблицы с переменным числом колонок.
Сохранить в файл программно:
ТабДок.Записать("C:\Отчёт.xlsx", ТипФайлаТабличногоДокумента.XLSX);
Обратная операция — чтение Excel в табличный документ методом Прочитать.
Имена параметров в коде (Строка.Параметры.Товар) должны точно совпадать с именами, вписанными в ячейки макета в угловых скобках. Опечатка — и ячейка в печати останется пустой, без ошибки. Проверяйте в первую очередь именно это.
Частые ошибки и как их обойти
- 📌 Документ не редактируется. Включён режим
Только просмотр. Снимите флажок вТаблица → Вид. У печатных форм правка всё равно временная. - 📌 Правка в отчёте пропала после переформирования. Так и задумано: результат отчёта пересобирается из данных. Постоянные изменения — только в макете или в настройках СКД.
- 📌 Объединённые ячейки разъехались в Excel. Сложное форматирование не всегда переносится один в один. Для файлов под загрузку держите плоскую таблицу без объединений.
- 📌 Поле добавили в схему СКД, а колонки нет. Поле не вынесено в «Выбранные поля» настроек. Схема хранит доступные поля, настройки — выводимые.
- 📌 Параметр в макете не заполняется. Либо тип ячейки стоит
Текст, а неПараметр, либо имя параметра в ячейке не совпадает с именем в коде. - 📌 Перепутали ячейку и строку табличной части. Строку в накладную добавляют кнопкой
Добавитьв самом документе — это не имеет отношения к табличному документу и его ячейкам.
Можно ли вставить одну ячейку в середину таблицы, как в Excel?
Чем ячейка табличного документа отличается от строки табличной части?
Добавить.Как сделать так, чтобы изменения в печатной форме сохранились для всех документов?
Почему добавленное в СКД поле не выводится в отчёт?
Как объединить ячейки программно?
Область(строка1, колонка1, строка2, колонка2) и вызовите у него Объединить(). Текст задаётся через свойство Текст объединённой области.