Атрибутформы.Положение

Автор mEnter, 24 апреля 2024, 17:08

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

mEnter

А был ли Атрибутформы Положение?

АЛьФ

УстановитьКоординаты(<?>,,,)
Синтаксис:
УстановитьКоординаты(<Лево>,<Верх>,<Ширина>,<Высота>)
Назначение:
Устанавливает новые значения для положения и размеров атрибута. Если какой-либо параметр
при вызове метода не задан, то данный параметр не изменяется.
Параметры:
<Лево> - Необязательный параметр.  Расстояние от левой границы формы до левой границы атрибута.
<Верх> - Необязательный параметр.  Расстояние от верхней границы формы до верхней границы атрибута.
<Ширина> - Необязательный параметр.  Ширина атрибута.
<Высота> - Необязательный параметр.  Высота атрибута.
ПРИМЕР: 
АтрФормы = СоздатьОбъект("АтрибутФормы"); 
АтрФормы.УстановитьАтрибут(Форма,3);
Высота=0;
АтрФормы.ПолучитьКоординаты(,,,Высота);
АтрФормы.УстановитьКоординаты(,,,Высота+40);

mEnter

Я не про координаты.
Был такай атрибутформы положение - определял положение колонки в табличной части, по крайней мере в версии .166 он есть.

РасшФормы = СоздатьОбъект("РасширениеФормы");
   РасшФормы.УстановитьФорму(КонтекстФормы.Форма);
   Для НомерАтрибута = 1 По РасшФормы.КоличествоАтрибутов() - 1 Цикл
      АтрФормы = РасшФормы.ПолучитьАтрибут(НомерАтрибута);
      Если ТипЗначенияСтр(АтрФормы) <> "АтрибутФормы" Тогда
         Продолжить;
      КонецЕсли;
      Если АтрФормы.Тип = 5 Тогда
         ИДРеквизита = АтрФормы.Идентификатор;
         МетаРеквизит = МетаДокумент.РеквизитТабличнойЧасти(ИДРеквизита);
         Если МетаРеквизит.Выбран() = 0 Тогда
            Продолжить;
         КонецЕсли;
         ВложеннаяСтруктура = ПолучитьВложеннуюСтруктуру();
         ВложеннаяСтруктура.Идентификатор = МетаРеквизит.Идентификатор;
         ВложеннаяСтруктура.Синоним = МетаРеквизит.Синоним;
         ВложеннаяСтруктура.Комментарий = МетаРеквизит.Комментарий;
         ВложеннаяСтруктура.ТипВид = МетаРеквизит.Тип + ?(ПустоеЗначение(МетаРеквизит.Вид) = 1,"",".") + МетаРеквизит.Вид;
         ВложеннаяСтруктура.Тип = МетаРеквизит.Тип;
         ВложеннаяСтруктура.Вид = МетаРеквизит.Вид;
         ВложеннаяСтруктура.Длина = МетаРеквизит.Длина;
         ВложеннаяСтруктура.Точность = МетаРеквизит.Точность;
         ВложеннаяСтруктура.Неотрицательный = МетаРеквизит.Неотрицательный;
         ВложеннаяСтруктура.РазделятьТриады = МетаРеквизит.РазделятьТриады;
         ВложеннаяСтруктура.ЗаголовокКолонки = Сервис.ПолучитьЗаголовокКолонки(МетаРеквизит);
         ВложеннаяСтруктура.ИнформационноеПоле = 0;
         ВложеннаяСтруктура.ФормулаПоля = АтрФормы.Формула;
         ВложеннаяСтруктура.СвязанС = АтрФормы.СвязанС;
         ВложеннаяСтруктура.Положение = АтрФормы.Положение;

Это код Поставщик данных.табличнаяЧасть

АЛьФ

Тогда так:

Объект РасширениеФормы

ПоложениеКолонкиТаблицы(<?>,,)
Синтаксис:
ПоложениеКолонкиТаблицы(<Имя>,<Колонка>,<Положение>)
Назначение:
Метод служит для изменения положения колонки таблицы значений на форме.
Параметры:
<Имя> - идентификатор таблицы значений на форме;
<Колонка> - идентификатор или номер колонки таблицы;
<Положение> - число, задающее положение колонки: 1 - новая колонка, 2 - на следующей строке, 3 - в той же колонке.
ЗАМЕЧАНИЕ: 
Метод работает только после физического открытия окна формы.
ПРИМЕР: 
Процедура Выполнить()
	РФорма = СоздатьОбъект("РасширениеФормы");
	РФорма.ПоложениеКолонкиТаблицы("Табл",2,2);
КонецПроцедуры

mEnter

Спасибо что обратили на меня внимание.
Вопрос не как определить положение, а был ли такой атрибут?
После смены версии с 166 на 197, появилась ошибка в поставщикеданных.табличнаячасть неверный атрибут положение.
Поэтому и возник вопрос. Атрибута не стало?
т.е. придется подправить поставщик.


mEnter

Если точнее не изменить, а прочитать свойство колонки ТЧ положение.

АЛьФ

Цитата: mEnter от 25 апреля 2024, 10:13Спасибо что обратили на меня внимание.
Вопрос не как определить положение, а был ли такой атрибут?
После смены версии с 166 на 197, появилась ошибка в поставщикеданных.табличнаячасть неверный атрибут положение.
Поэтому и возник вопрос. Атрибута не стало?
т.е. придется подправить поставщик.



Я лично не помню, чтобы такой атрибут у меня был, всегда была функция. Может быть это была какая-то сторонняя сборка.

Djelf

Хм, проверил Информатором 2.0.5.166 нет там АтрибутФормы.Положение, вот все что есть.
Number	NameEng	NameRus
0	Caption	Заголовок
1	Hint	Подсказка
2	Description	Описание
3	Formula	Формула
4	Visible	Видимость
5	ReadOnly	Доступность
6	Layer	Слой
7	Value	Значение
8	AttribID	Идентификатор
9	Type	Тип
10	BkColor	ЦветФона
11	FontColor	ЦветШрифта
12	Mask	Маска
13	Related	СвязанС
14	Font	Шрифт
15	Class	Класс
16	Border	Рамка
17	ParentWindow	РодительскоеОкно
18	Handle	Дескриптор
19	Style	Стиль
20	StyleEx	РасширенныйСтиль
21	Picture	Картинка
22	Focus	Фокус
23	Autoselect	Автовыбор
24	HasButton	ИмеетКнопкуВыбора
25	Align	Выравнивание
26	BorderStyle	СтильРамкиКартинки

Злоп

Цитата: АЛьФ от 25 апреля 2024, 09:28Метод служит для изменения положения колонки таблицы значений на форме.
а чем это отличается от использования третьего параметра в ТЗ.ВидимостьКолонки()..?

АЛьФ

Цитата: Злоп от 25 апреля 2024, 11:19
Цитата: АЛьФ от 25 апреля 2024, 09:28Метод служит для изменения положения колонки таблицы значений на форме.
а чем это отличается от использования третьего параметра в ТЗ.ВидимостьКолонки()..?
Это о разных положениях. ВидимостьКолонки устанавливает порядок отображения колонок. Метод ПоложениеКолонкиТаблицы управляет флагом "Новая колонка/На следующей строке/В той же колонке".

Djelf

Интересно, свойство Информатор не видит, но на 2.0.5.183 ошибка не выдается и тип значения - Строка, а начиная с 2.0.5.185 выдается ошибка "Поле агрегатного объекта не обнаружено (Положение)".
Причем если поменять Положение в ячейка влево/вправо то строка все равно пустая.
Видимо, судя по отличию в als, дело в Процедура ПриВыводеСообщения(<ИдентификаторОкнаСообщений>, <ТекстСообщения>, <МаркерСообщения>, <СтрокаКода>, <идМодуля>, <ИмяМодуля>, <СтандартнаяОбработка>)
, ее в 2.0.5.183 нет.

АЛьФ

Цитата: Djelf от 25 апреля 2024, 13:23Интересно, свойство Информатор не видит, но на 2.0.5.183 ошибка не выдается и тип значения - Строка, а начиная с 2.0.5.185 выдается ошибка "Поле агрегатного объекта не обнаружено (Положение)".
Причем если поменять Положение в ячейка влево/вправо то строка все равно пустая.
Видимо, судя по отличию в als, дело в Процедура ПриВыводеСообщения(<ИдентификаторОкнаСообщений>, <ТекстСообщения>, <МаркерСообщения>, <СтрокаКода>, <идМодуля>, <ИмяМодуля>, <СтандартнаяОбработка>)
, ее в 2.0.5.183 нет.

Дело в исправлении ошибок, скорее всего. До некоторой версии любое имя свойства не выдавало ошибки, насколько я помню.

Djelf

Да, проверил.  Работало все что угодно, АтрибутФормы.ЭтоХрень="Хрень" ; Сообщить( АтрибутФормы. ЭтоХрень ); -> "Хрень".
Сообщить(АтрибутФормы. ЭтоНеХрень ); -> "Хрень".

mEnter

Спасибо. Точно. Выдавала пустоту. Атрибут мог быть любым.