1С 8.3 Табличный документ - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

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

Данные > Примеры кода 1С > 1С 8.3 Табличный документ / Макет
Табличный документ в 1С 8.3 - это объект встроенного языка, который используется для создания печатных форм документов и отчетов. Является электронной таблицей, так как состоит из строк и столбцов и имеет функциональность, определенную следующими методами: ввод данных, группировка элементов, расшифровка, примечание в ячейках, оформление ячеек, форматирование, сохранение. Табличный документ использоваться как сам по себе, и может входить в состав любой из форм и служит для отображения информации.
Создание печатной формы из табличного документа в 1С 8.3:
&НаКлиенте
Процедура СозданиеПечатнойФормыИзТабличногоДокумента(Команда)

   
ФормаПечати = СозданиеПечатнойФормыИзТабличногоДокументаНаСервере();

   
НастройкаКолонтитуловПечатнойФормы(ФормаПечати);
   
НастройкаПараметровПечатиТабличногоДокумента(ФормаПечати);

   
ФормаПечати.Показать("Отчет по долгам");

   
// Сохранение "Отчета по долгам"
   
ФормаПечати.Записать("D:\Storage\data\ОтчетПоДолгам.xls", ТипФайлаТабличногоДокумента.XLS);

   
// Печать "Отчета по долгам" сразу на принтер
   
ФормаПечати.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);

КонецПроцедуры

&НаСервере
Функция СозданиеПечатнойФормыИзТабличногоДокументаНаСервере()

   
Макет = ЭтотОбъект.ПолучитьМакет("Макет_Табл");

   
// Изменение табличного макета после его создания.
   
ПрограммноеИзменениеТабличногоДокумента(Макет);

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

   
// Получение области и макета по имени
   
Шапка = Макет.ПолучитьОбласть("Шапка");
    
// Заполнение параметров
   
Шапка.Параметры.Дата = ТекущаяДата();
   
Шапка.Параметры.Номер = 2020;
    
// Вывод шапки в документ
   
ФормаПечати.Вывести(Шапка);

   
// Заголовок табличной части.
   
ЗаголовокТ = Макет.ПолучитьОбласть("ТЧ_Заголовок");
   
ФормаПечати.Вывести(ЗаголовокТ);

   
ТЧ_Строка = Макет.ПолучитьОбласть("ТЧ_Строка");
   
SSDIntelOptaneDC = Справочники.Номенклатура.НайтиПоНаименованию("SSD Intel Optane DC P4800X 1.5TB");

   
// Группировка строк таблицы в сворачивающийся блок
   
ФормаПечати.НачатьГруппуСтрок("Номенклатура", Истина);

    Для
Х = 1 По 100 Цикл
       
ТЧ_Строка.Параметры.Номенклатура = SSDIntelOptaneDC;
       
ТЧ_Строка.Параметры.Количество = Х;

       
// Параметр расшифровки "РасшифровкаНоменклатуры" - для открытия формы номенклатуры из макета по клику
       
ТЧ_Строка.Параметры.РасшифровкаНоменклатуры = SSDIntelOptaneDC;
       
ФормаПечати.Вывести(ТЧ_Строка);
    КонецЦикла;

   
// Конец группировки
   
ФормаПечати.ЗакончитьГруппуСтрок();

    Возврат
ФормаПечати;

КонецФункции
Программное изменение табличного документа в 1С 8.3:
&НаСервере
Процедура ПрограммноеИзменениеТабличногоДокумента(Макет)

   
ОбластьШапки = Макет.Область("Шапка");
   
ОбластьШапки.ЦветТекста = Новый Цвет(0, 255, 0);
   
ОбластьШапки.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.РедкийПунктир, 1);
   
ОбластьШапки.ГраницаСлева = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.РедкийПунктир, 1);
   
ОбластьШапки.ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.РедкийПунктир, 1);
   
ОбластьШапки.ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.РедкийПунктир, 1);
   
ОбластьШапки.Примечание.Текст = "Тут текст примечания...";

КонецПроцедуры
Настройка параметров печати табличного документа в 1С 8.3:
&НаКлиенте
Процедура НастройкаПараметровПечатиТабличногоДокумента(ФормаПечати)

   
// Поля страницы
   
ФормаПечати.ПолеСлева = 20;
   
ФормаПечати.ПолеСверху = 5;
   
ФормаПечати.ПолеСправа = 5;
   
ФормаПечати.ПолеСнизу = 5;

   
ФормаПечати.АвтоМасштаб = Истина; // Установка авто-масштаба: "по ширине страницы"
   
ФормаПечати.МасштабПечати = 85; // ИЛИ Установка определенного масштаба 85%

    // Ориентация: Портрет или альбом (ландшафт)
   
ФормаПечати.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;

   
// Двусторонняя печать = Да
   
ФормаПечати.ДвусторонняяПечать = ТипДвустороннейПечати.Да;

   
// Количество страниц на листе: 0 - автоматическое определение
   
ФормаПечати.ЭкземпляровНаСтранице = 1;

   
// Количество одинаковых копий
   
ФормаПечати.КоличествоЭкземпляров = 1;

   
// При печати несколько экземпляров, желательно установить "Истина"
   
ФормаПечати.РазборПоКопиям = Истина;

   
// Отключение отображения сетки в пользовательском режиме
   
ФормаПечати.ОтображатьСетку = Ложь;

   
// Запрет редактирования ячеек отчёта
   
ФормаПечати.ТолькоПросмотр = Истина;

   
// Фиксация двух верхних строк таблицы и одной строи слева для отображения заглавной информации при прокручивании
   
ФормаПечати.ФиксацияСверху = 2;
   
ФормаПечати.ФиксацияСлева = 1;

КонецПроцедуры
Настройка колонтитулов печатной формы в 1С 8.3:
&НаКлиенте
Процедура НастройкаКолонтитуловПечатнойФормы(ФормаПечати)

   
ФормаПечати.ВерхнийКолонтитул.Выводить = Истина;
   
ФормаПечати.ВерхнийКолонтитул.НачальнаяСтраница = 1;
   
ФормаПечати.ВерхнийКолонтитул.ТекстСлева = "Отчет по реализации и полученной прибыли";
   
ФормаПечати.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Центр;

   
ФормаПечати.НижнийКолонтитул.Выводить = Истина;
   
ФормаПечати.НижнийКолонтитул.ТекстВЦентре = "[&Дата][&Время]";
   
ФормаПечати.НижнийКолонтитул.ТекстВЦентре = "[&НомерСтраницы] из [&СтраницВсего]";

КонецПроцедуры
Обработка расшифровки отчета в 1С 8.3:
&НаКлиенте
Процедура ОбработкаРасшифровкиОтчета(Элемент, Расшифровка, СтандартнаяОбработка)

   
// Возможна только для табличного документа, который выведен на форму
    // Необходимо прописать для элемента формы, который связан с "ТабличныйДокумент"
   
Сообщить(Расшифровка);
   
Сообщить(Элемент.ТекущаяОбласть.Имя);
   
СтандартнаяОбработка = Ложь;

КонецПроцедуры
Вывод табличного документа на форму в 1С 8.3:
&НаКлиенте
Процедура ВыводТабличногоДокументаНаФорму(Команда)

   
ВыводТабличногоДокументаНаФормуНаСервере();
   
// На форме нужно создать реквизит с именем "ПолеВвода", тип "ТабличныйДокумент"
    // и перенести на элементы формы.

КонецПроцедуры

&НаСервере
Процедура ВыводТабличногоДокументаНаФормуНаСервере()

   
// Формирование табличного документа
   
ФормаПечати = СозданиеПечатнойФормыИзТабличногоДокументаНаСервере();

   
// Вывод табличного документа в нужный реквизит формы
   
ПолеВвода.Очистить();
   
ПолеВвода.Вывести(ФормаПечати); // Произойдет авто.отображение в поле формы (с которым связан)

КонецПроцедуры
Настройка табличного документа для ввода данных в 1С 8.3:
&НаКлиенте
Процедура НастройкаТабличногоДокументаДляВводаДанных(Команда)

   
// Вывод из макета с именем "Макет_Табл_Ввод" в поле формы ТабличногоДокумента
   
НастройкаТабличногоДокументаДляВводаДанныхНаСервере();

   
// Получение значения после его ввода пользователем
    // см.Процедуру: ПолучениеЗначенияПослеЕгоВводаПользователемНаКлиенте

КонецПроцедуры

&НаСервере
Процедура НастройкаТабличногоДокументаДляВводаДанныхНаСервере()

   
ПолеВвода.Очистить();
   
Макет = Обработки.ОбработкаДляИспытаний.ПолучитьМакет("Макет_Табл_Ввод");
   
Форма = Макет.ПолучитьОбласть("ФормаДляВвода");
   
ПолеВвода.Вывести(Форма);

КонецПроцедуры
Получение значения после его ввода пользователем в 1С 8.3:
&НаКлиенте
Процедура ПолучениеЗначенияПослеЕгоВводаПользователемНаКлиенте(Команда)

   
// Имя ячейки для ввода задано в макете
   
ПолеОбластьВвода = ПолеВвода.Область("ПолеТовар");

    Если
ПолеОбластьВвода.Значение.Пустая() Тогда
       
Сообщить("В табличной форме ввода не указана номенклатура!");
    Иначе
       
Сообщить("Выбрана номенклатура: " + ПолеОбластьВвода.Значение);
    КонецЕсли;

КонецПроцедуры
📰 Актуальные новости с тегом #Табличный документ (Макет):
  • В версии 8.3.27 реализована поддержка форматированной строки в ячейках макета компоновки данных.
  • В версии 8.3.27 добавлена возможность использования форматированной строки в качестве значения параметра для ячейки с шаблоном или параметром.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 02.06.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому