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

Управление видимостью ячеек табличного поля

В табличном поле существует возможность изменять видимость отдельных ячеек при отображении данных . Для этого необходимо использовать обработчик события ПриВыводеСтроки() табличного поля . Параметрами данного события являются объекты типа ОформлениеСтроки и ДанныеСтроки . Объект ОформлениеСтроки имеет свойство Ячейки — коллекцию ячеек отображаемой строки . Каждая ячейка в этой коллекции является объектом типа ОформлениеЯчейки , который содержит свойства , влияющие на отображение ячеек . Для установки видимости отдельных ячеек отображаемой строки необходимо использовать свойство Видимость ячейки отображаемой строки . При установке данного свойства в Ложь табличное поле не будет отображать содержимое соответствующей ячейки табличного поля . Также стоит отметить , что если все ячейки , находящиеся в одной строке составной колонки , имеют выключенное свойство Видимость , то такая строка не будет отображена табличным полем . Объект ДанныеСтроки содержит коллекцию значений текущей строки , соответствующую коллекции колонок отображаемого динамического списка .

Поясним использование данного свойства на следующем примере . Пусть существует журнал документов ДокументыПокупателей (реквизит формы ЖурналДокументовСписок ) , у которого имеются графы Контрагент ( тип СправочникСсылка.Контрагенты ) и Информация (тип СправочникСсылка.ДоговорыВзаиморасчетов) . Колонки , отображающие значения данных граф, объединены в одну составную колонку , причем колонка Информация находится под колонкой Контрагент . Необходимо отображать значения указанных граф только если они не являются пустыми . Тем самым , строки табличного поля , у которых заполнены значения обоих граф , будут отображаться в две строки и в одну строку в противном случае .

Читайте также:  Как почистить наушник iphone

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

Для того чтобы в шапке табличного поля составная колонка отображалась как единственная колонка, необходимо для колонки Информация сбросить свойство » Отображать в шапке » в палитре свойств . Также в нашем примере для колонки Контрагент устанавливается текст шапки » Контрагент / Информация «, указывающий , что в данной колонке отображаются значения граф Контрагент и Информация .

Необходимо помнить , что так как журнал документов является динамическим списком , то возможно удаление табличным полем колонок , у которых которых сброшено свойство Видимость . Если при обработке события ПриВыводеСтроки() произойдет обращение к таким колонкам , то возникнет ошибка времени выполнения . Для того чтобы определенные колонки не удалялись табличным полем, необходимо запретить данным колонкам удаление из динамического списка при изменении их видимости в табличном поле . Для этого необходимо при обработке события формы ПриОткрытии() добавить их в динамический список и запретить им удаление :

Более подробно ознакомиться с отличиями работы табличного поля при отображении динамических списков можно в разделе Особенности работы табличного поля с динамическими списками.

Источник

Работаем с таблицей значений программно

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

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

Пересечения строк и колонок образуют ячейки, в которых содержатся значения. Тип значения определяется типом значения колонки.

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

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

Создание таблицы значений

Как и большинство объектов встроенного языка, новая таблица значений может быть создана с помощью оператора Новый :

Колонки таблицы значений

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

  1. Имя — идентификатор колонки (может содержать только алфавитные символы, цифры и знаки подчеркивания. Причем, начинаться имя колонки может только с буквы или символа подчеркивания);
  2. Заголовок — представление колонки в диалогах (может содержать произвольные символы);
  3. ТипЗначения — тип значения содержимого ячеек в этой колонке. Если тип не задан, в ячейке можно хранить значения произвольного типа;
  4. Ширина — ширина колонки в диалогах;

Доступ к колонкам производится через свойство Колонки объекта ТаблицаЗначений . Для добавления новой колонки используется метод Добавить():

Для того, чтобы определить наличие колонки с нужным именем используется метод Найти():

Перебор колонок выполняется следующим образом:

Для удаления колонки используется метод Удалить():

Свойства колонки таблицы значений

Имя Тип Описание
Имя Строка символьный идентификатор колонки, по которому к ней можно обращаться из кода
Заголовок Строка строковое представление колонки на форме
ТипЗначения ОписаниеТипов свойство органичивает пространство доступных значений, которые можно указать в данной колонке
Ширина Число ширина колонки на форме (выражается в количестве символов)

Методы коллекции колонок таблицы значений

Вставить() Вставляет новую колонку в указанную позицию коллекции
Добавить() Добавляет новую колонку в конец коллекции
Количество() Возвращает количество колонок в коллекции
Найти() Ищет колонку в коллекции по имени
Очистить() Удаляет все колонки из коллекции
Сдвинуть() Сдвигает колонку влево или вправо
Удалить() Удаляет колонку из коллекции

Строки таблицы значений

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

Добавление и удаление строк

Для добавления новой строки используется метод Добавить() объекта ТаблицаЗначений . Метод возвращает объект СтрокаТаблицыЗначений , с которым доступны дальнейшие манипуляции:

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

Обратите внимание, что каждая СтрокаТаблицыЗначений ссылается на таблицу значений с помощью метода Владелец():

Для удаления строки используется метод Удалить() объекта ТаблицаЗначений . Строку можно удалить либо передав методу непосредственно строку, либо ее индекс:

Перебор строк таблицы значений

Для перебора строк удобнее всего использовать оператор цикла Для Каждого . В редких случаях оправдано применение цикла Для :

Поиск строк

В отличие от платформы 1С:Предприятие 7.7 в 8-ке расширен функционал работы с таблицей значений. Поиск можно выполнять не только по значению в колонке (в этом случае будет возвращена первая найденная строка), но и по набору свойств (в этом случае возвращается массив строк):

Все методы таблицы значений:

Вставить() Вставляет строку на указанное место
ВыбратьСтроку() Позволяет интерактивно выбрать строку в диалоговом окне
ВыгрузитьКолонку() Выгружает значения ячеек указанной колонки в массив значений
Добавить() Добавлет новую строку в таблицу значений
ЗагрузитьКолонку() Загружает значения в ячейки указанной колонки из массива
ЗаполнитьЗначения() Заполняет ячейки указанных колонок определенным значением
Индекс() Возвращает индекс строки таблицы значений
Итог() Возвращает просуммированный итог по колонке таблицы значений
Количество() Возвращает количество строк в таблице значений
Найти() Выполняет поиск строки по значению
НайтиСтроки() Выполняет поиск строк по указанным параметрам
Очистить() Очищает строки таблицы значений
Получить() Возвращает строку по ее индексу
Свернуть() Выполняет сжатие строк и колонок таблицы значений
Сдвинуть() Сдвигает строку вверх или вниз по таблице
Скопировать() Создает новую таблицу значений копированием текущей
СкопироватьКолонки() Создает новую пустую таблицу значений путем копирования колонок текущей таблицы
Сортировать() Выполняет сортировку строк таблицы значений по указанным колонкам
Удалить() Удаляет строку таблицы значений

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

Источник

ТаблицаЗначений и Колонки

Подскажите пожалуйста, почему если у меня на форме есть ТЗ , и я хочу получить количество колонок программно, то это не срабатывает, хотя остальные методы работы с ТЗ вроде как работают 🙂

вот эта строчка не срабатывает:
Кол = ТрудозатратыСотрудника.Колонки.Количество();

а вот эти прекрасно работают :

Для Каждого СтрокаТЗ Из ТрудозатратыСотрудника Цикл
ЧтоЭто=СтрокаТЗ.ТипРабот;
Сообщить(Строка(СтрокаТЗ.ТипРабот));
КонецЦикла;

Так сработает, если на форме табличное поле с типом значения ТаблицаЗначений

Таблица заполняется в модуле формы:

(12)
У вас на форме есть два одноимённых объекта «ТрудозатратыСотрудника»

Первый объект формы — это реквизит формы типа «ДанныеФормыКоллекция». Его назначение — хранить данные. К нему обращаются так: ЭтаФорма.ТрудозатратыСотрудника или просто ТрудозатратыСотрудника. Для этого типа нет возможности обратиться к колонкам. Возможно, это сделано потому, что это универсальный тип, который не обязательно относится к таблице (т.е. колонок может и не быть). Можно использовать функцию ДанныеФормыВЗначение, чтобы из этого объекта получить объект типа ТаблицаЗначений — у такого объекта уже есть возможность обращаться к колонкам.

Второй объект формы — это элемент формы типа «ТаблицаФормы». Его назначение — отображать данные. К нему обращаются так: Элементы.ТрудозатратыСотрудника. У него есть свойство «ПодчиненныеЭлементы», которое содержит коллекцию колонок и групп колонок для отображения на форме.

Источник

Программирование в 1С для всех

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

Но создать таблицу значений, это только малая часть работы, поскольку сама по себе таблица значений нам абсолютно не нужна. Чтобы начать с ней работать, необходимо ее, как минимум, заполнить колонками.

Программное создание колонок таблицы значений в 1С

Программно добавить колонку в таблицу значений 1С просто. Для этого необходимо использовать одно из основополагающих свойств таблиц значений — это свойство Колонки. Данное свойство представляет собой коллекцию значений, в которой хранятся все колонки конкретной таблицы, и имеет тип Коллекция колонок таблицы значений.

У объекта Коллекция колонок таблицы значений существует два метода по созданию новых колонок. Это Добавить и Вставить.

Метод Добавить – добавляет новую колонку в конец коллекции, а метод Вставить – вставляет колонку в нужное место по соответствующему индексу.

ФИО = Новый ТаблицаЗначений ;
ФИО . Колонки . Добавить ( «Фамилия» );
ФИО . Колонки . Добавить ( «Имя» );
ФИО . Колонки . Добавить ( «Отчество» );

В этом примере я использовал самый простой вариант использование метода Добавить: мы указываем только название колонки и всё.

Рассмотрим синтаксис этого метода

Добавить( , , , )

Как видно, у данного метода всего четыре параметра.

Параметр Имя — это имя колонки таблицы значений, задается также как и имя переменной. Обязательный параметр.

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

Параметр Заголовок имеет тип Строка и задает заголовок колонки, который отобразиться пользователю, если она будет создана программно на форме.

Параметр Ширина имеет тип Число и задает длину колонки(количество символов).

Если мы зададим все параметры, то наше создание колонок будет выглядеть следующим образом.

ОписаниеТиповСтрока = Новый ОписаниеТипов ( «Строка» );
ОписаниеТиповДата = Новый ОписаниеТипов ( «Дата» )

ФИО = Новый ТаблицаЗначений ;
ФИО . Колонки . Добавить ( «Фамилия» , ОписаниеТиповСтрока , «Фамилия» , 50 );
ФИО . Колонки . Добавить ( «Имя» , ОписаниеТиповСтрока , «Имя» , 50 );
ФИО . Колонки . Добавить ( «Отчество» , ОписаниеТиповСтрока , «Отчество» , 50 );
ФИО . Колонки . Добавить ( «ДатаРождения» , ОписаниеТиповДата , «Дата рождения» , 10 );

Метод Вставить имеет следующий синтаксис:

Вставить( , , , , )

Метод Вставить имеет синтаксис, как и у метода Добавить, но только появился первый параметр Индекс, он указывает тот индекс, на место которого будет вставляться новая колонка.

Доработаем предыдущий код:

ФИО . Колонки . Вставить ( 3 , «ФИО» , ОписаниеТиповСтрока , «ФИО» , 50 );

В нашем случае колонка ФИО встала точно между Отчеством и Датой рождения.

Создание колонок в таблице значений на форме

Если мы создали таблицу значений на управляемой форме 1С 8.3 в виде реквизита формы, то колонки также можно создать интерактивно. Для этого нужно выделить нужный реквизит, и нажать на кнопку «Добавить колонку реквизита».

После этого колонка будет создана, и нам нужно задать ей имя, заголовок и тип.

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

Первый способ – перетащить колонку из реквизитов в элементы.

После этого, колонка появиться под таблицей, а сама таблица отобразиться на форме (таблица без колонок на форме не отображается).

Второй способ – создать новое поле «под» таблицей на форме и привязать к нему нужную колонку таблицы значений 1С.

Для того, чтобы создать новое поле, привязанное к таблице на форме 1С, нужно выделить эту таблицу, нажать на кнопку «Добавить» панели управления дерева Элементы, и в открывшемся окне выбрать тип элемента «Поле».

После этого нужно задать имя нового поля и связать его с колонкой таблицы значений, используя свойство «ПутьКДанным».

После этого колонка сразу же появиться в таблице на форме 1С.


О работе со строками в таблицах значений читайте в статье по ссылке:
Таблице значений 1С: работа со строками

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

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

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

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

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

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


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

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

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

Источник

Оцените статью