1с управляемые формы ширина колонок табличной части

Ширина колонок ТаблицыФормы

В общем такая дилемма, программно рисую колонки у таблицы значений на форме. Сама таблица размещена на форме в конфигураторе, без колонок. Все хорошо выводится, но есть один нюанс, не могу принудительно установить ширину колонок, то есть задаю НовыйЭлементФормы.Ширина = 5; но ширина устанавливается таким образом, чтобы отображался почти весь заголовок колонки, он в общем-то не всегда нужен, чтобы весь отображался, если надо, пользователи раздвинут ширину, но если текст заголовка сделать меньше, то ширина тоже уменьшается.
В связи с этим вопрос, как задать фиксированную ширину колонки Таблицы формы?

Управляемые формы, платформа 8.3.8.2197

ТаблицаЭлементРеквизита = Элементы[ИмяТаблицы];
КолКол = 0; НомерКолонок = 1;
ГруппаКолонок = «»;
Для каждого Колонка Из ТаблицаРезультат.Колонки Цикл

Если КолКол%2=0 или КолКол = 0 Тогда
ГруппаКолонок = Элементы.Добавить(ИмяТаблицы +»ГруппыКолонок»+НомерКолонок,Тип(«ГруппаФормы»),ТаблицаЭлементРеквизита);
ГруппаКолонок.Вид = ВидГруппыФормы.ГруппаКолонок;
ГруппаКолонок.Группировка = ГруппировкаКолонок.Горизонтальная;
ГруппаКолонок.ОтображатьВШапке = Истина;
НомерКолонок = НомерКолонок + 1;
КонецЕсли;

ЭлементРеквизита = Элементы.Добавить(ИмяТаблицы + Колонка.Имя, Тип(«ПолеФормы»), ГруппаКолонок);
ЭлементРеквизита.ПутьКДанным = ИмяТаблицы + «.» + Колонка.Имя;
ЭлементРеквизита.Вид = ВидПоляФормы.ПолеВвода;
//ЭлементРеквизита.ОтображатьВШапке = Ложь;

Если Найти(Колонка.Имя,»ТМЦ») Тогда
ЭлементРеквизита.Ширина = 5;
Иначе
ЭлементРеквизита.Ширина = 5;
ГруппаКолонок.Заголовок = Колонка.Заголовок;
КонецЕсли;

Источник

Как программно установить ширину колонки в табличном документе

ШиринаКолонки (ColumnWidth)
Использование:

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

Тип: Число.
Содержит ширину колонок в области (в так называемых средних символах шрифта).

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

а может просто «Переносить» нуна сделать в параметрах ячеек?

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

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

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

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

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

Источник

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

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

Табличная часть документа в 1С 8.3

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

1

2

Второй способ: непосредственно в окне редактирования метаданных. Для этого нужно мышкой выделить ветвь дерева документа, вызвать контекстное меню и выполнить единственную команду «Добавить»

34

Табличная часть справочника 1С 8.3

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

Колонки табличной части 1С

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

5

6

Второй способ, посредством окна метаданных (нужно выделить мышкой табличную часть).

7

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

8

Количество колонок вы можете создавать практически неограниченное количество, в зависимости от вашей прикладной задачи.

9

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

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

10

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

11

При переносе на вопрос «Добавить колонки», отвечаем «Да» (иначе придется добавлять колонки вручную, о чем мы поговорим ниже).

12

После этого табличная часть со всеми колонками будет добавлена на форму.

13

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

14

У ветки табличной части в дереве Объекты управляемой формы имеются также элементы, которые не соответствуют текущим реквизитам. Как привило, это итог по суммовым полям табличной части. Эти поля можно разместить на форме.

15

16

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

Для этого в палитре свойств таблицы формы необходимо установить признак Подвал.

17

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

18

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

19

Остальные статьи по теме конфигурирования в 1С:

Более подробно и основательно конфигурирование в 1С дается в моей книге:

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

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

1 %D0%B2 %D0%B6%D0%B5%D0%BB%D1%82%D0%BE%D0%BC %D1%86%D0%B2%D0%B5%D1%82%D0%B5 3D %D0%BC%D0%B0%D0%BB%D0%B5%D0%BD%D1%8C%D0%BA%D0%B0%D1%8F

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

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

Источник

Размеры управляемой формы

Как известно, у управляемой формы нельзя определить реальные размеры. То есть у нее имеются свойства «Ширина» и «Высота», но при изменении размеров самой формы эти свойства не изменяются.
Если поискать в интернете, то предлагают использовать поле HTML документа. Я применял этот способ несколько раз, поэтому опишу как это делается.

Чтобы рассчитать ширину формы или элемента, необходимо разместить на ней поле HTML документа и установить ему признак «Растягивать по горизонтали». Тогда можно прочитать его «clientWidth» (или «clientHeight» для опреледения высоты). Это делается, например, из подписки «ДокументСформирован». Но как отследить момент, когда размер формы или элемента изменяется?
Можно поставить обработчик ожидания, который будет постоянно опрашивать поле HTML. Но это плохое решение.
Гораздо лучше подписаться на изменение размеров документа. Приведу код страницы, и опишу как это работает.

Итак, применяем идею, предложенную в статье Javascript и 1С. Кросс-платформенное взаимодействие.
Поместим на HTML страницу невидимую кнопку, а в свойстве документа «onresize» пропишем, чтобы при изменении размера страницы выполнился клик по этой кнопке. У элемента поле HTML сработает событие ПриНажатии(). Вот в этом событии и надо будет считать новые размеры страницы и выполнить необходимые действия при изменении. Кроме того, при загрузке страницы тоже вызывается клик, чтобы обработку изменения размера не дублировать в событии ДокументСформирован().

Вот как это выглядит на примере.

7ef07f36b7857410cd25b9cc05e80c29

Итак, принцип понятен. Отстался один недостаток, само поле HTML будет видно на форме и это выглядит некрасиво. Необходимо его спрятать.
Если конфигурация имеет режим совместимости 8.3.7 и выше, то можно сделать так. Создаем страницы, на одну страницу помещаем основные элементы, на другую страницу помещаем служебное поле HTML документа. У страницы выставляем «ОтображениеСтраниц»=»Нет».
Вот как это выглядит.

d6a93dcbdf3c0f55ffc1a7f2d29f7e7e

Все диаграммы полностью заполняют всю область табличного документа, в котором они выводятся, и при изменении его размера подстраиваются

1dde5293394efa1447711fc6b685cb6f

При изменении размеров формы количество картинок по горизонтали пересчитывается и изменяется, без появления горизонтального скрола

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 1

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

2 1

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

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

3 1

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

4

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

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

5

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

6

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

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

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

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

1 %D0%B2 %D0%B6%D0%B5%D0%BB%D1%82%D0%BE%D0%BC %D1%86%D0%B2%D0%B5%D1%82%D0%B5 3D %D0%BC%D0%B0%D0%BB%D0%B5%D0%BD%D1%8C%D0%BA%D0%B0%D1%8F

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

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


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

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

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

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с управляемые формы фиксация слева
  • 1с управляемые формы текущий пользователь