Ячейки табличного документа 1С

В этой статье я покажу, как работать с ячейками табличного документа. Мы создадим табличный документ и заполним его какими-нибудь данными, не обращаясь при этом к макету табличного документа, как мы это делали раньше, а получая напрямую доступ к ячейкам табличного документа.

Также, как и во всех предыдущих статьях, для демонстрации создадим обработку и основную форму обработки, на которую поместим команду.

Обработка и форма обработки

Создадим обработчик команды в клиентском контексте, и функцию тоже в клиентском контексте, в которой создадим табличный документ, и этот табличный документ функция вернет. А в обработчике команды покажем возвращаемый функцией табличный документ.

&НаКлиенте
Функция ВозвратТабличногоДокумента()
	ТабличныйДокумент = Новый ТабличныйДокумент;
	Возврат ТабличныйДокумент;
КонецФункции // ВозвратТабличногоДокумента()

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

В дальнейшем весь код будет из метода ВозвратТабличногоДокумента(). В этом коде мы будем обращаться к ячейкам табличного документа по их наименованию. А для удобства работы с именами ячеек табличного документа создадим пустой макет табличного документа. Он нам нужен только как вспомогательный инструмент. Для вывода табличного документ этот макет не требуется.

Макет табличного документа 1С

Макет табличного документа 1С

Если необходимо узнать имя ячейки или группы ячеек (области), следует выделить ячейку, открыть палитру свойств этой ячейки, и в этой палитре свойств интересует одно свойство Имя.

Имя ячейки табличного документа 1С

Зная имя ячейки или области ячеек, мы можем получить эту область из уже созданного документа при помощи метода Область().

ОбластьШапка = ТабличныйДокумент.Область("R2C1:R3C5");
ОбластьШапка.Объединить();
ОбластьШапка.Текст = "Шапка примера табличного документа";
ОбластьШапка.Примечание.Текст = "Это примечание";
ОбластьШапка.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
ОбластьШапка.ВертикальноеПоложение   = ВертикальноеПоложение.Центр;

В коде выше мы получили область ячеек табличного документа по имени, которое определили при помощи пустого макета табличного документа (он и нужен только для выяснения названий ячеек). Потом, мы объединили область ячеек в одну ячейку, указали текст ячейки, примечание, и отцентрировали текст в объединенной ячейке.

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

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

Пойдем дальше. Создадим таблицу в нашем табличном документе. Сначала сделаем шапку таблицы из ячеек, которые идут после области, из которой сделали шапку отчета. У нас будет две колонки у шапки таблицы.

Ячейки первой колонки.

Ячейки табличного документа 1С

Получим область для этих ячеек, объединим ячейки этой области, напишем какой-нибудь текст и обведем эту область, используя метод Обвести табличного документа.

ЛинияОбвода = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
	
ОбластьШапкаТаблицы1 = ТабличныйДокумент.Область("R4C1:R4C2");
ОбластьШапкаТаблицы1.Объединить();
ОбластьШапкаТаблицы1.Текст = "Номер";
ОбластьШапкаТаблицы1.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
ОбластьШапкаТаблицы1.Обвести(ЛинияОбвода,ЛинияОбвода,ЛинияОбвода,ЛинияОбвода);

Точно также получим область для соседней колонки.

Первым делом узнаем имя ячеек. Ячейки второй колонки.

Ячейки табличного документа 1С

А потом получим область, и выполним над ней те же самые манипуляции, что и над соседней областью.

ОбластьШапкаТаблицы2 = ТабличныйДокумент.Область("R4C3:R4C5");
ОбластьШапкаТаблицы2.Объединить();
ОбластьШапкаТаблицы2.Текст = "Номер (строка)";
ОбластьШапкаТаблицы2.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
ОбластьШапкаТаблицы2.Обвести(ЛинияОбвода,ЛинияОбвода,ЛинияОбвода,ЛинияОбвода);

 А дальше, для вывода таблицы сделаем цикл от 0 до 9, в котором в каждой итерации цикла будем обращаться к областям табличного документа, но в этот раз мы будем использовать не имена областей, а номера ячеек.

Для н = 0 По 9 Цикл
	
	ОбластьСтрока1 = ТабличныйДокумент.Область(5 + н,1,5 + н,2);
	ОбластьСтрока1.Объединить();
	ОбластьСтрока1.Текст = Строка(н + 1);
	ОбластьСтрока1.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
        ОбластьСтрока1.Обвести(ЛинияОбвода,ЛинияОбвода,ЛинияОбвода,ЛинияОбвода);
	 
	ОбластьСтрока2 = ТабличныйДокумент.Область(5 + н,3, 5 + н, 5);  		 
	ОбластьСтрока2.Объединить();
	ОбластьСтрока2.Текст = ЧислоПрописью(н + 1,"НП = Ложь",",,,,,,,,0");
	ОбластьСтрока2.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
	ОбластьСтрока2.Обвести(ЛинияОбвода,ЛинияОбвода,ЛинияОбвода,ЛинияОбвода);	 
	 
КонецЦикла;	

На этом мы закончим изменять табличный документ. Полная версия кода в функции ВозвратТабличногоДокумента будет следующей:

&НаКлиенте
Функция ВозвратТабличногоДокумента()

	ТабличныйДокумент = Новый ТабличныйДокумент;
	
	ОбластьШапка = ТабличныйДокумент.Область("R2C1:R3C5");
	ОбластьШапка.Объединить();
	ОбластьШапка.Текст = "Шапка примера табличного документа";
	ОбластьШапка.Примечание.Текст = "Это примечание";
	ОбластьШапка.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
	ОбластьШапка.ВертикальноеПоложение   = ВертикальноеПоложение.Центр;
	
	ЛинияОбвода = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
	
	ОбластьШапкаТаблицы1 = ТабличныйДокумент.Область("R4C1:R4C2");
	ОбластьШапкаТаблицы1.Объединить();
	ОбластьШапкаТаблицы1.Текст = "Номер";
	ОбластьШапкаТаблицы1.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
	ОбластьШапкаТаблицы1.Обвести(ЛинияОбвода,ЛинияОбвода,ЛинияОбвода,ЛинияОбвода);
	
	ОбластьШапкаТаблицы1 = ТабличныйДокумент.Область("R4C3:R4C5");
	ОбластьШапкаТаблицы1.Объединить();
	ОбластьШапкаТаблицы1.Текст = "Номер (строка)";
	ОбластьШапкаТаблицы1.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
	ОбластьШапкаТаблицы1.Обвести(ЛинияОбвода,ЛинияОбвода,ЛинияОбвода,ЛинияОбвода);
	
	Для н = 0 По 9 Цикл
	
		 ОбластьСтрока1 = ТабличныйДокумент.Область(5 + н,1,5 + н,2);
		 ОбластьСтрока1.Объединить();
		 ОбластьСтрока1.Текст = Строка(н + 1);
		 ОбластьСтрока1.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
		 ОбластьСтрока1.Обвести(ЛинияОбвода,ЛинияОбвода,ЛинияОбвода,ЛинияОбвода);
		 
		 ОбластьСтрока2 = ТабличныйДокумент.Область(5 + н,3, 5 + н, 5);  
		 ОбластьСтрока2.Объединить();
		 ОбластьСтрока2.Текст = ЧислоПрописью(н + 1,"НП = Ложь",",,,,,,,,0");
		 ОбластьСтрока2.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
		 ОбластьСтрока2.Обвести(ЛинияОбвода,ЛинияОбвода,ЛинияОбвода,ЛинияОбвода);
		 
	КонецЦикла;	
	
	Возврат ТабличныйДокумент;

КонецФункции // ВозвратТабличногоДокумента() 

Проверим, что у нас выведет табличный документ.

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

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

Другие статьи про табличные документы в 1С:

Создание макета табличного документа 1С

Вывод на печать табличного документа в 1С 8.3

Области табличного документа 1С 8.3

Табличный документ на управляемой форме 1С 8.3

Группировка в табличном документе 1С 8.3

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

Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»

Это изображение имеет пустой атрибут alt; его имя файла - 1C-в-желтом-цвете-3D-221x300.png

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Это изображение имеет пустой атрибут alt; его имя файла - 1_в-желтом-цвете-3D-маленькая-221x300.jpg

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

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *