Привязать кнопку к краю табличной части

Автор SnakePlisskin, 11 апреля 2025, 12:39

« назад - далее »

SnakePlisskin

Доброго дня! Господа, можно ли используя формекс привязать кнпоку к краю табличной части, ибо когда форму растягиваешь кнопка остается на своем месте а тч увеличивается. Вот так в оригинальном размере формы https://s.mail.ru/cbBC/N2JiecTVG , а вот так в развёрнутом https://s.mail.ru/8MFS/FTb6Gy98p, а хотелось бы что бы кнопка уехала по стрелочке.

Arbuz

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

Процедура ПриИзмененииРазмераОкна()
	
	Перем Лево, Верх, Ширина, Высота;
	
	ФормаРасш = СоздатьОбъект("РасширениеФормы"); 	
	АтрФормы = СоздатьОбъект("АтрибутФормы");
	
	ФормаШирина = ФормаРасш.Ширина;

	АтрФормы.УстановитьАтрибут(Форма,"кнВосстановитьИсторию");
	АтрФормы.ПолучитьКоординаты(Лево, Верх, Ширина, Высота);
	АтрФормы.УстановитьКоординаты(ФормаШирина - 22);
	
КонецПроцедуры

Злоп

положи кнопку слева и пусть лежит без передвижки.

Злоп

и в ТЧ доках, списках справочников, ТЗ - положи себе курсор на всю строку.
сделай невидимую текстовую колонку, заголовок колонки "Formex_ПланРаскраски"
в формулу колонки положи значение (или переменную со значением)
"BRUSH_S[0xCCCCCC]PADDINGLEFT[3]PADDINGRIGHT[3]"

SnakePlisskin

Цитата: Злоп от 11 апреля 2025, 18:57и в ТЧ доках, списках справочников, ТЗ - положи себе курсор на всю строку.
сделай невидимую текстовую колонку, заголовок колонки "Formex_ПланРаскраски"
в формулу колонки положи значение (или переменную со значением)
"BRUSH_S[0xCCCCCC]PADDINGLEFT[3]PADDINGRIGHT[3]"

А что за фишка такая ? Я сделал, а разницы что-то не увидел.

Arbuz

После появления возможности умолчания для плана раскраски, я считаю, добавлять неспецифичискую раскраску для таблиц – это неверно, только как легаси.
Лучше сразу при начале работы
Сервис.ПланРаскраскиПоУмолчанию("(BRUSH_S["+ПолучитьЦвет(___ЦВЕТ_КУРСОРА)+"])");

SnakePlisskin

Цитата: Arbuz от 14 апреля 2025, 12:48После появления возможности умолчания для плана раскраски, я считаю, добавлять неспецифичискую раскраску для таблиц – это неверно, только как легаси.
Лучше сразу при начале работы
Сервис.ПланРаскраскиПоУмолчанию("(BRUSH_S["+ПолучитьЦвет(___ЦВЕТ_КУРСОРА)+"])");

А что должно было произойти от этого ""BRUSH_S[0xCCCCCC]PADDINGLEFT[3]PADDINGRIGHT[3]"" - ? 

Злоп

Уберите уже как рудимент эти ПолучитьЦвет()
Тыщу лет уже пишу в простой нотации BGR в 16ричном виде, например,
BRUSH_S[0x6633CC]

Arbuz

Цитата
FONT[<Цвет>] BRUSH[<Цвет>] FONT_S[<Цвет>] BRUSH_S[<Цвет>] FONT_C[<Цвет>] BRUSH_C[<Цвет>]
COUNT[<КоличествоКолонок>] INDENT[<Отступ>] FONTSET[<КодШрифта>] FONTSET_S[<КодШрифта>]
Синтаксис:
FONT[<Цвет>] - задает цвет шрифта строки;
BRUSH[<Цвет>] - задает цвет фона строки;
FONT_S[<Цвет>] - задает цвет шрифта строки, если она является текущей (не влияет на текущую ячейку);
BRUSH_S[<Цвет>] - задает цвет фона строки, если она является текущей (не влияет на текущую ячейку);
FONT_C[<Цвет>] - задает цвет шрифта ячейки, если она является текущей ячейкой (работает только при использовании плана раскраски);
BRUSH_C[<Цвет>] - задает цвет фона ячейки, если она является текущей ячейкой (работает только при использовании плана раскраски);
COUNT[<КоличествоКолонок>] - задает количество колонок, на которые распространяется раскраска (игнорируется при использовании плана раскраски);
INDENT[<Отступ>] - задает количество колонок, которое необходимо пропустить перед началом раскраски (игнорируется при использовании плана раскраски);
FONTSET[<КодШрифта>] - задает шрифт строки;
FONTSET_S[<КодШрифта>] - задает шрифт строки, если она является текущей;
PADDINGLEFT[<Отступ>] - отступ текста в пикселях от левого края ячейки (только в плане раскраски);
PADDINGRIGHT[<Отступ>] - отступ текста в пикселях от правого края ячейки (только в плане раскраски);
Назначение:
Компонента позволяет устанавливать произвольную раскраску в таблицах 1С (многострочные части документов, формы списков, таблицы значений на форме, дерево+таблица и т.д.).
Разрешить раскраску таблиц можно с помощью метода ВключитьРаскраскуТаблиц / ColourBrowse или с помощью флажка на странице свойств компоненты. Запрет раскраски производится вызовом метода ВыключитьРаскраскуТаблиц / UnColourBrowse или снятием флажка на странице свойств.
Для включения раскраски в таблицу необходимо добавить колонку, формула в которой должна содержать служебную строку. В общем случае колонка должна располагаться левее колонок, которые предполагается раскрасить.
Служебная строка может быть, как напрямую прописана в формуле колонки (или формироваться функцией, вызываемой из формулы), так и быть содержимым реквизита. Для таблиц значений строка раскраски устанавливается в качестве значения ячейки таблицы. Служебная строка состоит из макрокоманд, которые формируют стиль строки. Макрокоманды регистронезависимы и могут располагаться в любой последовательности. Ни одна из макрокоманд не является обязательной, т.е. любая из них может быть опущена при формировании служебной строки.
Параметры:
<Цвет> - представление необходимого цвета в формате BGR в виде положительного числа. Может быть как десятеричным, так и шестнадцатеричным (в этом случае необходимо добавить "0x" перед числом).
<КоличествоКолонок> - положительное число.
<Отступ> - положительное или отрицательное число.
<КодШрифта> - код пользовательского шрифта, возвращенный методом СоздатьШрифт / CreateFont.
Вместо любого из параметров можно написать строку NONE, тогда соответствующая макрокоманда применит текущую системную настройку. Если Отступ задан отрицательным числом, то КоличествоКолонок считает только видимые колонки до текущей колонки со служебной строкой. После текущей строки (или если Отступ >=0) КоличествоКолонок считает как видимые, так и невидимые колонки.
Служебная строка с макрокомандами действует только в пределах одной строки. Макрокоманды FONT, FONT_S, BRUSH, BRUSH_S, FONTSET и FONTSET_S сбрасывают значения макрокоманд COUNT и INDENT, заданные предыдущей служебной строкой, к нулевому состоянию. Макрокоманда COUNT сбрасывает значение макрокоманды INDENT, заданное предыдущей служебной строкой, к нулевому состоянию.


Arbuz

Цитата: Злоп от 14 апреля 2025, 13:11Уберите уже как рудимент эти ПолучитьЦвет()
Да ладно?!
ПолучитьЦвет(___ЦВЕТ_КУРСОРА)
ПолучитьЦвет(___ЦВЕТ_КРАСНЫЙ)
ПолучитьЦвет(___ЦВЕТ_ФОРМЫ)
ПолучитьЦвет(___ЦВЕТ_ШРИФТ)
ПолучитьЦвет(___ЦВЕТ_СВ_БИРЮЗОВЫЙ)
ПолучитьЦвет(220,100,0)
ПолучитьЦвет("0xCC00CC")
ПолучитьЦвет("FF00FF")
ПолучитьЦвет(13421772)
ПолучитьЦвет("серый_25")
А так? :D

Злоп

Цитата: SnakePlisskin от 14 апреля 2025, 12:53А что должно было произойти от этого ""BRUSH_S[0xCCCCCC]PADDINGLEFT[3]PADDINGRIGHT[3]"" - ? 

курсорчик на всю строку


Padding - дает отступы слева/справа в ячейках таблиц

Злоп

Цитата: Arbuz от 14 апреля 2025, 13:24
Цитата: Злоп от 14 апреля 2025, 13:11Уберите уже как рудимент эти ПолучитьЦвет()
Да ладно?!
ПолучитьЦвет(___ЦВЕТ_КУРСОРА)
ПолучитьЦвет(___ЦВЕТ_КРАСНЫЙ)
ПолучитьЦвет(___ЦВЕТ_ФОРМЫ)
ПолучитьЦвет(___ЦВЕТ_ШРИФТ)
ПолучитьЦвет(___ЦВЕТ_СВ_БИРЮЗОВЫЙ)
ПолучитьЦвет(220,100,0)
ПолучитьЦвет("0xCC00CC")
ПолучитьЦвет("FF00FF")
ПолучитьЦвет(13421772)
ПолучитьЦвет("серый_25")
А так? :D

это ты такой продвинутый
в остальных местах встречал только типа ПолучитьЦвет(220,100,0)

SnakePlisskin

Цитата: Злоп от 14 апреля 2025, 13:33
Цитата: SnakePlisskin от 14 апреля 2025, 12:53А что должно было произойти от этого ""BRUSH_S[0xCCCCCC]PADDINGLEFT[3]PADDINGRIGHT[3]"" - ? 

курсорчик на всю строку


Padding - дает отступы слева/справа в ячейках таблиц

Ага, интересная фишка. Работает.

Злоп

Чтобы PADDING работал - в настройках формекса надо включить Использовать план раскраски = 1

SnakePlisskin

Интересный баг заметил, если сделать новый пустой документ и ткнуть курсором в низ или середину таблицы выходит сообщение об ошибке

<<?>>"BRUSH_S[0xCCCCCC]PADDINGLEFT[3]PADDINGRIGHT[3]"
Неопознанный оператор