Табличные документы в 1С

На ИТС информация

https://its.1c.ru/db/metod8dev/content/2581/hdoc

Дополнительно синтакс-помощник смотри

 

Макеты табличных доков (заметки на примере отчета "Прайс-лист)

Есть ли скрытые строки или столбцы в макете — смотри по нумерации колонок!

Я не мог понять, почему у меня артикул выводится после кода в скрытой колонке! Выяснилось:

  • Установка ширины колонок не открывает скрытые колонки!

  • Установка высоты строк не открывает скрытые строки!

  • Только команда "Отобразить" откроет скрытые колонки и строки!

  • Бывают не скрытые колонки (строки), а колонки нулевой ширины (строки нулевой высоты)! Так что для открытия всего надо и ширину/высоту задать, и отобразить все!



Бывают области макета без параметров (пустые), которые однако "именованные". Так на первый взгляд ничего не видно! А в коде идет обращение к именованным областям макета, в которых нет значения (параметра). Как "ПустаяЦена" в отчете "Прайс-лист".

Когда в макете тупо скопировал ячейку "Группа" в ячейку "КатегорияЦены" и затер именованное наименование ячейки, вышла такая ошибка:

Ошибка при вызове метода контекста (ПолучитьОбласть)

{Отчет.ПрайсЛист.МодульОбъекта(514)}: МакетПустойЦены = Макет.ПолучитьОбласть("ПустаяЦена");

{Отчет.ПрайсЛист.Форма.ФормаОтчета.Форма(162)}: СформироватьПрайс(ЭлементыФормы.Результат);

по причине:

Область не найдена: ПустаяЦена

 

Потому что в строке "Группа" в колонке "Цена" была именованная область "ПустаяЦена". См рисунок.

 

Вопрос — как увидеть все именованные области макета?

 

Вывод колонки пример

ОбластьМакета = Макет.ПолучитьОбласть("Заголовок|" + "КодАртикул");

ТабДок.Вывести(ОбластьМакета);



 

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

Параметры нельзя задавать как переменные и вписывать в любые секции макета!

Делается так:

1) В секциях макета (в ячейках) пишут "параметры".

2) В коде этим параметрами конкретных секций присваивают значения:

Секция.Параметр.ИмяПараметра=Какое-либо значение!



Надо задавать в коде значения именно как параметры каждой конкретной выводимой секции макета!



Вот была ошибка

Поле объекта не обнаружено (Группа)

{Отчет.ПрайсЛист.МодульОбъекта(21)}: ОбластьГруппыПервойКолонки.Параметры.Группа = СтрокаДерева.Номенклатура;

{Отчет.ПрайсЛист.МодульОбъекта(522)}: МакетГруппы, МассивВыбранныхКатегорий.Количество(), ОбластьКоличества, ОбластьПервойКолонки,

{Отчет.ПрайсЛист.Форма.ФормаОтчета.Форма(162)}: СформироватьПрайс(ЭлементыФормы.Результат);

 

Это будет, если в макете в секции удалить параметр (потому что мы его перенесли в другую секцию), а в коде будет попытка присвоения значения параметра секции.!

Когда удалил "Группу" из шаблона в колонке "КодАртикул", и перенес в графу "Номенклатура", вышла ошибка "Поле объекта не обнаружено (Группа)".

Так что в коде это присвоение закомментировал!



В тоже время в колонке "Номенклатура" группа не выводилась, пока для секции "Номенклатура" не сделал в коде присвоение значения параметру "Группа".



// РСА Удаляю вывод группы номенклатуры в колонку "Код, Артикул, КодАртикул"
// ОбластьГруппыПервойКолонки.Параметры.Группа = СтрокаДерева.Номенклатура;
// РСА Конец правки
ОбластьГруппыПервойКолонки.Область("R1C1").Отступ = СтрокаДерева.Уровень();
ТабДок.Вывести(ОбластьГруппыПервойКолонки);

// РСА Начало вставки
МакетГруппы.Параметры.Группа = СтрокаДерева.Номенклатура; // РСА Добавил вывод группы в колонку "Номенклатура"
// РСА Конец вставки
ТабДок.Присоединить(МакетГруппы);

 

СП: Защита табличного дока — запрет на редактирование и копирование! ТолькоПросмотр — запрет на редактирование защищенных областей!

ТабличныйДокумент (SpreadsheetDocument)

Защита (Protection)

Использование:

Чтение и запись.

Описание:

Тип: Булево
Содержит признак защиты таблицы от редактирования и копирования. В режиме защиты таблица может быть только распечатана.
Истина - защита включена.



ТабличныйДокумент (SpreadsheetDocument)

ТолькоПросмотр (ReadOnly)

Использование:

Чтение и запись.

Описание:

Тип: Булево
Содержит признак того, что табличный документ открыт в режиме просмотра. В режиме просмотра в таблице не доступны для редактирования ячейки и рисунки, у которых установлено свойство Защита.
Истина - режим просмотра.



Вот инфа, как скрыть колонку в табличном доке (метод? или свойство? "Область")

https://forum.infostart.ru/forum9/topic248408/

user1252779 127 26.01.22 14:19

    Если НадоСкрытьКолонку5 Тогда
        ТабДок.Область(,5,,5).Видимость = Ложь;    
    КонецЕсли;    

    Если НадоСкрыть10КолонокНачинаяС5 Тогда
        ТабДок.Область(,5,,15).Видимость = Ложь;    
    КонецЕсли;    



Вот СП по методу Область

ТабличныйДокумент (SpreadsheetDocument)

Область (Area)

Вариант синтаксиса: По имени

Синтаксис:

Область(<ИмяОбласти>)

Параметры:

<ИмяОбласти> (обязательный)

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

Вариант синтаксиса: По адресу

Синтаксис:

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

Параметры:

<НомерПервойСтроки> (необязательный)

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

<НомерПервойКолонки> (необязательный)

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

<НомерПоследнейСтроки> (необязательный)

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

<НомерПоследнейКолонки> (необязательный)

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

<ФорматСтрок> (необязательный)

Тип: ФорматСтрокТабличногоДокумента
Содержит формат строк, колонки которого нужно получать. Параметр можно указывать только при получении области колонок. Для других областей при указании этого параметра будет сгенерировано исключение.
Значение по умолчанию: Неопределено.

Описание варианта метода:

Если последняя строка и последняя колонка отсутствуют, то область задана единственной ячейкой. Если строки или колонки отсутствуют, то область задана диапазоном строк или колонок соответственно. Если метод вызван без параметров, то область задана всей таблицей.
Нумерация строк и колонок начинается с 1. Значение 0 трактуется как 1.

Возвращаемое значение:

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

Описание:

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

Доступность: 

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

Пример:

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

См. также:

ОбластьЯчеекТабличногоДокумента

Использование в версии:

Доступен, начиная с версии 8.0.

Описание изменено в версии 8.3.22.



Вот СП по "ВысотаСтроки" для ячеек табличного документа

ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)

ВысотаСтроки (RowHeight)

Использование:

Чтение и запись.

Описание:

Тип: Число
Содержит высоту строк в области (в пунктах). Если свойство АвтоВысотаСтроки установлено Истина, - содержит максимальную высоту строки.

Доступность: 

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

Примечание:

При присвоении свойству значения 0, значение свойства АвтоВысотаСтроки выставляется в Истина. При присвоении других значений свойство АвтоВысотаСтроки выставляется в Ложь.

Использование в версии:

Доступен, начиная с версии 8.0.





РСА Можно задать фиксированную высоту, можно задать максимальную высоту (с учетом переносов текста высота строки не превысит максимум).

Хотелось бы опцию "добавить отступы сверху/снизу строки", как в эл таблицах, текстовом редакторе.



Вот пример вывода табличных доков

https://tokmakov.msk.ru/blog/item/40