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

Обновлено: 06.07.2024

Ниже приведено несколько полезных шаблонов кода по работе с табличным документом:

Код 1C v 8.х Код 1C v 8.х Код 1C v 8.х Код 1C v 8.х

Для того, чтобы появилась возможность использовать свойство "Значение", необходимо явно присвоить свойству ячейки "СодержитЗначение" значение Истина или установить флажок "Содержит значение" в палитре свойств.

Для ячейки, у которой установлен признак "СодержитЗначение", можно задать тип значения, размещаемого в ячейке.

Следующий фрагмент демонстрирует, как можно управлять этими свойствами из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"

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

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

Для ячейки, у которой установлен признак "СодержитЗначение", можно также задать элемент управления, который будет использоваться для редактирования этого значения.

Элемент управления можно назначить через палитру свойств или из встроенного языка с помощью метода "УстановитьЭлементУправления()". Чтобы проверить в программе, установлен ли элемент управления для конкретной ячейки, можно использовать свойство "ЭлементУправления", которое возвращает элемент управления, назначенный для ячейки.

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

Ниже показан пример установки элемента управления типа "Флажок" из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"

Для элементов управления, расположенных в табличном документе, расширяется набор свойств, методов и событий:

Разберем самые важные свойства и методы:

Свойство "ВстроенВЯчейку" имеет тип "булево" и говорит о том, что элемент управления встраивается в ячейку или просто привязывается к ней, о чем было рассказано выше.

Свойство "Видимость" позволяет показать или скрыть элемент управления.

Свойство "Значение" предоставляет доступ к значению, которое редактируется в элементе управления. Оно используется только для элементов управления, поддерживающих связь с данными.

Метод "Расположить" позволяет разместить элемент управления в конкретной области ячеек табличного документа. Именно этот метод был использован в вышеприведенном примере.

Основы формирования табличного документа на основе макета

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

Области макета предназначены для однократного или многократного вывода, например, ниже представлен макет для печати расходной накладной:

Некоторые ячейки содержат только текст, который должен быть выведен. Другие ячейки содержат имена параметров (в угловых скобках). Значения этих параметров должны указываться в программном модуле. В отличие от версии 7.7, в ячейку нельзя вписать выражение. В версии 8.0 весь программный код сосредоточен в программных модулях и при выводе секций нет связи с текущим контекстом программного модуля. Назначение параметров табличного документа должно производиться явно из программного модуля через коллекцию "Параметры" объекта "ТабличныйДокумент".

Область может состоять из нескольких расположенных подряд строк или колонок, либо быть прямоугольной областью таблицы. К области можно обратиться по имени или по координатам. Можно также обращаться к пересечению областей, используя вертикальную черту (как в версии 7.7).

Общая схема

Общая схема формирования печатной формы на основе макета:

  1. Создание макета в табличном редакторе (определение областей, имен параметров, форматирования).
  2. Создание нового табличного документа (этот пункт не требуется, если отчет выводится в элемент управления ПолеТабличногоДокумента).
  3. Получение макета в переменную (метод ПолучитьМакет).
  4. Получение областей макета (метод ПолучитьОбласть).
  5. Заполнение параметров области (свойство Параметры).
  6. Вывод области в табличный документ (методы Вывести и Присоединить).
  7. Установка свойств отображения табличного документа (сетка, заголовки, только просмотр и т.д.).
  8. Отображение табличного документа на экране (а может быть отправка на принтер или сохранение).

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

Ниже приведен пример формирования печатной формы расходной накладной из модуля документа:

Процедура Печать(ТабДок) Экспорт

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

//получение макета для печати расходной накладной
Макет = Документы.РасходнаяНакладная. ПолучитьМакет ("Основной");

//получим область "Заголовок" как новый табличный документ (!)
Область = Макет. ПолучитьОбласть ("Заголовок");

//укажем параметры области
Область. Параметры .НомерДокумента = Номер;
Область.Параметры.От = Дата;
Область.Параметры.Кому = Контрагент;

//выведем заполненную область "Заголовок" в табличный документ
ТабДок. Вывести (Область);

//выведем область "Шапка" в табличный документ
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));

//получение области "Строка"
//обратите внимание, что это можно сделать до цикла по строкам
Область = Макет.ПолучитьОбласть("Строка");

//вывод строк документа в печатную форму
Для Каждого СтрСостава Из Состав Цикл

//заполнение параметров области из строки табличной части
Область.Параметры. Заполнить (СтрСостава);

//вывод сформированной области в табличный документ
ТабДок.Вывести(Область);

КонецЦикла;

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

//установим параметры отображения табличного документа
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ОтображатьСетку = Ложь;

//покажем табличный документ на экране
ТабДок. Показать ();

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

Редактор табличного документа

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

Общие свойства табличного документа

Редактор табличного документа

Редактор позволяет устанавливать общие свойства табличного документа, такие как:
  • варианты отображения итогов при использовании в документе группировок строк и столбцов;
  • использование документа в качестве макета;
  • использование картинки в качестве фона для документа;
  • указание области документа, которая будет выводиться на печать;
  • задание цветового оформления документа;
  • указание строк и столбцов документа, которые будут печататься на каждом новом листе.

Именованные области

Реактор позволяет разработчику задавать имена областей документа. В качестве области может выступать ячейка или группа ячеек.

При именовании строк и столбцов документа, редактор может отображать имена областей в окне редактирования и выделять именованные области. Поддерживается многоуровневая вложенность именованных областей:

Редактор табличного документа

Примечания

Разработчик имеет возможность задавать примечания для отдельных ячеек или групп ячеек документа:

Редактор табличного документа

Группировки

Редактор табличного документа поддерживает возможность группирования строк или столбцов документа. Группы можно создавать, удалять, расширять (включать в них дополнительные соседние строки или колонки), создавать вложенные и внешние группы:

Редактор табличного документа

Графические объекты

Редактор позволяет использовать при оформлении табличного документа рисование прямых, прямоугольников, овалов и вставлять в документ готовые картинки, сохраненные во внешних файлах или созданные с помощью редактора картинок:

Редактор табличного документа

Кроме этого редактор поддерживает возможность группировки (разгруппировки) графических объектов и задания имен графических объектов.

Сводные таблицы

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

Редактор табличного документа

Использование OLE-объектов

Поддержка работы с OLE-объектами является универсальной возможностью, позволяющей внедрять в табличные документы объекты, созданные в других Windows-приложениях. Например, это может быть лист Word, рисунок CorelDraw или лист Excel. Использование механизма OLE позволяет редактировать внедренные объекты так, как будто разработчик находится в «родном» приложении, в котором создан внедренный объект:

Редактор табличного документа

Редактор табличного документа

Диаграммы

Редактор поддерживает использование в табличных документах специальных графических объектов 1С:Предприятия, таких как диаграмма, диаграмма Ганта и дендрограмма. Эти объекты позволяют представлять данные 1С:Предприятия в удобном графическом виде и могут быть доступны средствами встроенного языка:

Редактор табличного документа

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

Как сделать тоже самое, но из модуля объекта/обработки?

ТабличныйДокумент.Область (SpreadsheetDocument.Area)
ТабличныйДокумент (SpreadsheetDocument)
Область (Area)
Вариант синтаксиса: По имени

Тип: Строка.
Имя области или адрес в формате "R1C1:R2C2", где число после "R" обозначает номер строки, число после "C" - номер колонки, символом ":" (двоеточие) разделяются координаты левого верхнего и правого нижнего угла области. В качестве имени также можно передавать пересечение двух областей, записываемое как "<Имя области 1> | <Имя области 2>".
Вариант синтаксиса: По адресу

Область(<НомерПервойСтроки>, <НомерПервойКолонки>, <НомерПоследнейСтроки>, <НомерПоследнейКолонки>)
Параметры:

Тип: Число.
Номер первой строки области таблицы.
Если отсутствует, то указывается область, состоящая из колонок.
<НомерПервойКолонки> (необязательный)

Тип: Число.
Номер первой колонки области таблицы.
Если отсутствует, то указывается область, состоящая из строк.
<НомерПоследнейСтроки> (необязательный)

Тип: Число.
Номер последней строки области таблицы.
Если выделяется область из колонок (параметр <НомерПервойСтроки> не задан), то указывается номер строки, из которой берется формат строк.
<НомерПоследнейКолонки> (необязательный)

Тип: Число.
Номер последней колонки области таблицы.
Описание варианта метода:

Если последняя строка и последняя колонка отсутствуют, то область задана единственной ячейкой. Если строки или колонки отсутствуют, то область задана диапазоном строк или колонок соответственно. Если метод вызван без параметров, то область задана всей таблицей.
Возвращаемое значение:

Тип: ОбластьЯчеекТабличногоДокумента; РисунокТабличногоДокумента.

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

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример:

ИменованнаяОбласть = ТабДок.Область("Шапка");
Ячейка = ТабДок.Область("R2C5");
ПрямоугольнаяОбластьЯчеек = ТабДок.Область("R2C2:R3C5");
ОбластьСтрока = ТабДок.Область("R2");
ОбластьСтрок = ТабДок.Область("R2:R4");
ОбластьКолонка = ТабДок.Область("C4");
ОбластьКолонок = ТабДок.Область("C4:C5");

Читайте также: