Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "УправлениеФормой" (число прочтений - 37816 )
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Класс "УправлениеФормой"
10. Июля 2010 :: 10:00
Печать  
Решил завести отдельную тему для данной разработки.
В общем основное назначение класса - управление привязкой реквизитов, а также создание и управление сплиттерами (на базе реквизитов формы).
Также есть дополнительный функционал реализации Гиперссылок.
Планируется реализовать интерфейс для управления привязками реквизитов (т.е. метод который открывает форму для настройки привязок).

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

Требования:
1. Наличие класса "Коллекция" (вложен в запрос)
2. ВК FormEx
3. ВК 1C++

Особенности:
1. При создании класса "УправлениеФормой" инициализируется перехватчик, и если после инициализации формы создать еще один перехватчик на контекст формы, то привязки будут работать только при принудительном вызове необходимых процедур:
- ПриИзмененииРазмераОкна
- ПриНажатииЛевойКнопки
- ПриОтжатииЛевойКнопки
- ПриДвиженииМыши
- ПослеСозданияФормы
- ПослеОткрытия
- ПриЗакрытии
2. При закрытии формы сохраняются размеры формы, при повторном открытии размеры восстанавливаются автоматически (при вызове ПослеОткрытия)

Текущая версия:
2.01.002 от 15.07.10 г.
- Исправлена ошибка класс «Коллекция». Не уничтожался из-за наличия внутренних ссылок.
- Исправлена ошибка привязки при открытии максимизированной формы со сплиттерами.
« Последняя редакция: 15. Июля 2010 :: 10:55 - vandalsvq »  

1Cv7_form_man_001.rar ( 70 KB | Загрузки )

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #1 - 10. Июля 2010 :: 10:23
Печать  
В общем пример привязки атрибутов и сплиттеров. Обратите внимание что указание атрибутов для сплиттера необходимо только для того чтобы определить минимальную левую и максимальную правую границу сплиттера.
  

anchoring.ert ( 10 KB | Загрузки )

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #2 - 10. Июля 2010 :: 10:30
Печать  
Предвидя вопрос, чем он отличается от класса "Общие.Форма.Привязки":
- иной интерфейс программиста, никакой обратной связи;
- иная логика реализации расчетов смещений при изменении формы и движении сплиттеров;
- более правильный расчет изменения границ элементов привязанных друг к другу при движении сплиттеров, поскольку при привязке происходит ранжирование элементов относительно атрибутов к кому они привязаны (форма, или другие элементы);
- сплиттер выступает элементом управления, если к нему никто не привязан он существует сам по себе;
- возможность реализации сплиттера таким образом чтобы при движении измерение привязанных реквизитов происходило не одновременно, а только по факту остановки сплиттера пользователем.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #3 - 12. Июля 2010 :: 06:53
Печать  
Скачал обработку, подвигал - все работает, потом решил поменять размеры формы - вроде тоже двигается, но в какой-то момент - привязка слетает и изменение размера формы - перестает влиять на размеры кнопок. Сплиттеры после этого тоже не двигаются.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #4 - 12. Июля 2010 :: 07:18
Печать  
При самостоятельном изменении размеров как атрибутов так и формы (например через Сервис) необходимо вызывать метод "Привязать".
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #5 - 12. Июля 2010 :: 12:23
Печать  
vandalsvq писал(а) 12. Июля 2010 :: 07:18:
При самостоятельном изменении размеров как атрибутов так и формы (например через Сервис) необходимо вызывать метод "Привязать".

Не, ты не понял... Я просто скачал твою обработку и начал испытывать сплиттеры - работает, потом начал изменять размеры формы - сначала работает, но в какой-то момент - перестает работать.
Добавлено:
Изменяешь сплиттером размер кнопки, чтобы она стала ма-а-аленькой, потом изменение размера формы перестает влиять на привязки и сплиттеры тоже перестают работать. Похоже когда проверка на размер кнопки дает "отказ", с размером формы - это приводит к указанным мной последствиям. Как вариант - устанавливать размер "малой" кнопки = минимальному размеру (вроде 5 у тебя), а остальные рисовать не "в пропорции", а просто на оставшееся место.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #6 - 12. Июля 2010 :: 12:56
Печать  
Вот как раз "на оставшееся" место и есть "в пропорции". До этого ни руки, ни голова не доходят.
В общем я бы это багом не назвал, а скорее "фичей". С ней можно побороться. Но если есть желание, я не против.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #7 - 14. Июля 2010 :: 10:11
Печать  
Проблема с УправлениеФормой.ПривязкаЭлементов;

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

Как с этим бороться?
  

Всем спасибо, я не понял!
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #8 - 14. Июля 2010 :: 10:32
Печать  
Форма именно "развернута" (максимизирована), или самостоятельно на весь экран растянута?
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #9 - 14. Июля 2010 :: 13:40
Печать  
Форма именно "развернута" (максимизирована)!
  

Всем спасибо, я не понял!
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #10 - 14. Июля 2010 :: 13:45
Печать  
Дружеский совет.
После того как разберетесь с привязками в максимизированной форме проверьте работу в модальной форме и в форме с закладками, а также в их комбинации.
  

1&&2&&3
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #11 - 14. Июля 2010 :: 15:00
Печать  
Ну с модальными все очень просто. Они не изменяются в размере Улыбка. Ну по крайней мере у меня.
Что же касается закладок, я давно стандартными не пользуюсь. Через активикс все делаю. А "общеформенные" закладки вообще не пользую. Имхо не очень то и надо.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #12 - 14. Июля 2010 :: 15:03
Печать  
trad писал(а) 14. Июля 2010 :: 13:45:
Дружеский совет.

Это "недружеский" совет  Смех
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #13 - 14. Июля 2010 :: 17:10
Печать  
vandalsvq писал(а) 14. Июля 2010 :: 15:00:
Ну с модальными все очень просто. Они не изменяются в размере
и сплиттеры там не ездят?
  

1&&2&&3
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #14 - 15. Июля 2010 :: 06:31
Печать  
trad писал(а) 14. Июля 2010 :: 17:10:
vandalsvq писал(а) 14. Июля 2010 :: 15:00:
Ну с модальными все очень просто. Они не изменяются в размере
и сплиттеры там не ездят?

Ездит только тот что слева-направо Улыбка. А "верх-вниз" проблемы. Мда.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #15 - 15. Июля 2010 :: 10:56
Печать  
Выложил обновление:
2.01.002 от 15.07.10 г.
- Исправлена ошибка класс «Коллекция». Не уничтожался из-за наличия внутренних ссылок.
- Исправлена ошибка привязки при открытии максимизированной формы со сплиттерами.

Собственно попытка исправить поведение максимизированной формы.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Andrey (sttt)
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Зарегистрирован: 10. Января 2009
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #16 - 06. Сентября 2010 :: 12:48
Печать  
начало диалога:
http://www.1cpp.ru/forum/YaBB.pl?num=1283760571/0#0

собственно ничего особенного:

Код
Выбрать все
Перем УправлениеФормой;
Перем Привязка;

Процедура УстановитьПривязки()
	ЭлементПривязки = Привязка.Получить("РамкаШапка");
	ЭлементПривязки.Установить("Верх","В","Форма");
	ЭлементПривязки.Установить("Низ","В","РамкаШапка1");
	ЭлементПривязки.Установить("Лево","Л","Форма");
	ЭлементПривязки.Установить("Право","П","Форма");

        Привязка.Привязать();
КонецПроцедуры

Процедура ДобавитьЭлементыПривязки()
	Привязка = УправлениеФормой.ПривязкаЭлементов;
	Привязка.Добавить("РамкаШапка");
КонецПроцедуры

Процедура ПриОткрытии()
        Загрузить1cpp();
        ЗагрузитьFormEx();

	УправлениеФормой = СоздатьОбъект("УправлениеФормой");
	ДобавитьЭлементыПривязки();
КонецПроцедуры

Процедура ПриИзмененииРазмераОкна()
	УстановитьПривязки();
КонецПроцедуры

Процедура ПослеОткрытияФормы()
	УстановитьПривязки();
КонецПроцедуры 



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

и еще интересует, как можно пропорции задать?
Этого недостаточно:
Код
Выбрать все
ЭлементПривязки.Установить("Низ","В","РамкаШапка1"); 

  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #17 - 06. Сентября 2010 :: 13:32
Печать  
Собственно есть некоторые ошибки:

Код
Выбрать все
Перем УправлениеФормой;
Перем Привязка;

Процедура УстановитьПривязки()
	ЭлементПривязки = Привязка.Получить("РамкаШапка");
	//ЭлементПривязки.Установить("Верх","В","Форма"); // привязка по умолчанию есть
	ЭлементПривязки.Установить("Низ","В","РамкаШапка1");
	//ЭлементПривязки.Установить("Лево","Л","Форма"); // аналогично верху
	ЭлементПривязки.Установить("Право","П","Форма");

	  Привязка.Привязать();
КонецПроцедуры

Процедура ДобавитьЭлементыПривязки()
	Привязка = УправлениеФормой.ПривязкаЭлементов;
	Привязка.Добавить("РамкаШапка");
КонецПроцедуры

Процедура ПриОткрытии()
	  Загрузить1cpp();
	  ЗагрузитьFormEx();

	УправлениеФормой = СоздатьОбъект("УправлениеФормой");
	ДобавитьЭлементыПривязки();
	УстановитьПривязки();
КонецПроцедуры 


Собственно если не работает то надо смотреть включен ли EnableTurboBL, загрузку ВК вообще следует делать в глобальнике ибо это не гуд. В остальном проблем не должно быть если не используешь перехватчик.
Перепривязывать элементы не нужно при изменениях. Он (класс) сам умеет все делать как надо.

Пы.сы. а с пропорциями класс не умеет работать.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Andrey (sttt)
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Зарегистрирован: 10. Января 2009
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #18 - 06. Сентября 2010 :: 14:00
Печать  
vandalsvq писал(а) 06. Сентября 2010 :: 13:32:
Собственно есть некоторые ошибки:
...
Собственно если не работает то надо смотреть включен ли EnableTurboBL, загрузку ВК вообще следует делать в глобальнике ибо это не гуд. В остальном проблем не должно быть если не используешь перехватчик.
Перепривязывать элементы не нужно при изменениях. Он (класс) сам умеет все делать как надо.

Пы.сы. а с пропорциями класс не умеет работать.


ошибки: ну, стоило ожидать :0) буду знать. особо не вникал в класс.
перехватчик: перехватчик не использую
Перепривязывать:  упс! а как нужно? т.е. Привязка.Привязать() так я пере привязываю?
  
Наверх
 
IP записан
 
Andrey (sttt)
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Зарегистрирован: 10. Января 2009
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #19 - 06. Сентября 2010 :: 14:11
Печать  
к сожалению не помогло включение:

Код
Выбрать все
			УправлениеНастройками = СоздатьОбъект("УправлениеНастройками");
			УправлениеНастройками.Включить("EnableTurboBL"); 



скорее всего лечиться загрузкой dll глобальным модулем
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #20 - 06. Сентября 2010 :: 14:24
Печать  
Привязка.Привязать() вызывается один раз сразу после указания всех настроек. Больше в принципе вообще телодвижений не нужно.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "УправлениеФормой"
Ответ #21 - 07. Сентября 2010 :: 14:19
Печать  
Посмотрел класс, так и не понял, зачем в классе УправлениеФормой описана куча событий от перехватчика, которые никогда вызываться не будут (а некоторые, еще и с неправильным синтаксисом - недостаточно параметров), да и описать нужно было только используемые... нипанятна.


  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #22 - 07. Сентября 2010 :: 17:49
Печать  
Eprst писал(а) 07. Сентября 2010 :: 14:19:
Посмотрел класс, так и не понял, зачем в классе УправлениеФормой описана куча событий от перехватчика, которые никогда вызываться не будут (а некоторые, еще и с неправильным синтаксисом - недостаточно параметров), да и описать нужно было только используемые... нипанятна.

Прошу указать все ошибки Подмигивание. А остальное "на всякий случай" %)
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
viddik
Junior Member
**
Отсутствует



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #23 - 08. Сентября 2010 :: 02:29
Печать  
Слетают привязки при использовании на форме ПоставщикаДанных, после метода Обновить()... Это с последним поставщиком, с версией 3.04 такого не происходит.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #24 - 08. Сентября 2010 :: 03:51
Печать  
viddik писал(а) 08. Сентября 2010 :: 02:29:
Слетают привязки при использовании на форме ПоставщикаДанных, после метода Обновить()... Это с последним поставщиком, с версией 3.04 такого не происходит.


У меня не слетают. И объективных причин такому поведению я не знаю Печаль.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "УправлениеФормой"
Ответ #25 - 08. Сентября 2010 :: 05:03
Печать  
vandalsvq писал(а) 07. Сентября 2010 :: 17:49:
Прошу указать все ошибки Подмигивание. А остальное "на всякий случай" %)


В данном классе, никогда не будет событий
Событие_ВводНового(),Событие_ВводНаОсновании() и т.д
+ в событии ВВодНового есть параметры + возвращать нужно тоже разные параметры в этом методе, в зависимости от типа контекста - для документа/справочника одно, для отчета - другое.
Да и зачем описывать остальные события - тоже нипанятна, они же нигде не используются потом.
Эта ошибка вылезет, если перехватывать глоб.модуль и оттуда перехватывать локальные события, когда работать будут все события формы - создание контекста, вводнового, приОткрытии и т.д.
У тебя же этих событий никогда не будет - ты инициализацию класса привязок делаешь уже в созданной форме, в ПриОткрытии.

  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #26 - 08. Сентября 2010 :: 05:57
Печать  
Согласен. Спасибо за наводку.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #27 - 08. Сентября 2010 :: 12:45
Печать  
Andrey (sttt) писал(а) 06. Сентября 2010 :: 14:00:
vandalsvq писал(а) 06. Сентября 2010 :: 13:32:
Собственно есть некоторые ошибки:
загрузку ВК вообще следует делать в глобальнике ибо это не гуд.


http://www.1cpp.ru/forum/YaBB.pl?num=1157706754/4#4
Рекомендация по загрузке 1С++ из внешней обработки, если 1С++ не загружена в глобальном модуле
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #28 - 06. Октября 2010 :: 09:50
Печать  
Наблюдаю проблему: при использовании закладок и ПоставщикаДанных с командной панелью и с закладками на форме - панель кнопок перекрывается табличным полем.
  

_________.png ( 5 KB | Загрузки )
_________.png

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #29 - 06. Октября 2010 :: 10:27
Печать  
вот демо-обработка.
  

_____003.ert ( 67 KB | Загрузки )

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #30 - 08. Октября 2010 :: 16:25
Печать  
2 Amel.
А Вы на форме своей обработки кнопки-контейнеры немного ниже разместите( не в плотную к верху формы) и между контейнерами чуть больше растояние сделайте, и все прекрасно отображается, ничего не накладывается.
  
Наверх
 
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #31 - 11. Октября 2010 :: 06:35
Печать  
Подтверждаю, если сместить кнопки ниже, при определенном расстоянии от верхнего края окна, отображается нормально.
Но, если закладки на форме нужны не всегда, то такое расположение кнопок при выключенных закладках приводит к тому, что табличное поле ниже, чем нужно.
Это, конечно можно корректировать, управляя отдельно расположением кнопок Но, мне кажется, это неправильно - лишний код, который будет повторяться там, где потребуется форма с закладками и без.
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #32 - 11. Октября 2010 :: 07:59
Печать  
Упс, не туда Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #33 - 12. Октября 2010 :: 11:46
Печать  
Amel, нужно перенести Форма.ИспользоватьЗакладки(1); и связанный код из ПриОткрытии() в ПослеСозданияФормы()
Вот исправленный тест
  

_____003_001.ert ( 60 KB | Загрузки )
Наверх
www  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #34 - 14. Октября 2010 :: 05:49
Печать  
Подтверждаю, так действительно работает!
Спасибо огромное!
Как же я сам не догадался Улыбка
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
kansler
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 05. Октября 2010
Re: Класс "УправлениеФормой"
Ответ #35 - 09. Ноября 2010 :: 09:01
Печать  
Доброго времени суток.
Заметил такую проблему. Узнал про ТурбоМД, подключил, после этого привязка элементов не работает. Убрал ТурбоМД, всё работает как задумано. Эта проблема как-то решается? Я, конечно, не парюсь и без ТурбоМД, но иногда бывает так, что она бы пригодилась.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #36 - 09. Ноября 2010 :: 13:19
Печать  
kansler писал(а) 09. Ноября 2010 :: 09:01:
Доброго времени суток.
Заметил такую проблему. Узнал про ТурбоМД, подключил, после этого привязка элементов не работает. Убрал ТурбоМД, всё работает как задумано. Эта проблема как-то решается? Я, конечно, не парюсь и без ТурбоМД, но иногда бывает так, что она бы пригодилась.

У тебя наверняка турбоМД старый.
читай ветку http://www.1cpp.ru/forum/YaBB.pl?num=1193164139
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kansler
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 05. Октября 2010
Re: Класс "УправлениеФормой"
Ответ #37 - 09. Ноября 2010 :: 18:02
Печать  
[quote author=artbear link=1278756052/30#36 date=1289308783][quote author=kansler link=1278756052/30#35 date=1289293294]Доброго времени суток.
Заметил такую проблему. Узнал про ТурбоМД, подключил, после этого привязка элементов не работает. Убрал ТурбоМД, всё работает как задумано. Эта проблема как-то решается? Я, конечно, не парюсь и без ТурбоМД, но иногда бывает так, что она бы пригодилась.[/quote]
У тебя наверняка турбоМД старый.
читай ветку http://www.1cpp.ru/forum/YaBB.pl?num=1193164139[/quote]
Большое спасибо, буду пробовать.
  
Наверх
 
IP записан
 
Laurus
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 3
Зарегистрирован: 16. Ноября 2010
Re: Класс "УправлениеФормой"
Ответ #38 - 25. Ноября 2010 :: 17:25
Печать  
При обновлении класса ПоставщикДанных до версии 4.1.1, обновился класс Коллекция, в результате класс УправлениеФормой стал шибко ругаться...
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #39 - 25. Ноября 2010 :: 18:59
Печать  
Обновление правильное.
  

1Cv7_form_man_002.rar ( 125 KB | Загрузки )

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
imiha
YaBB Newbies
*
Отсутствует


Чем можем тем поможем

Сообщений: 2
Местоположение: Ужгород
Зарегистрирован: 16. Сентября 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #40 - 08. Января 2011 :: 21:14
Печать  
После длительной борьбы с деревом групп формы списка справочника сделал небольшое изменение для призвяки к сплиттеру.
Имя элемента "ДеревоГруппФормыСпискаСправочника".
Исправлен класс "УправлениеФормой.Привязки.ert", см.приложение.
  

__________________________002.ert ( 29 KB | Загрузки )

Что один человек сделал, другой завсегда поломать может.
Наверх
 
IP записан
 
Петр
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 06. Августа 2010
Re: Класс "УправлениеФормой"
Ответ #41 - 27. Марта 2011 :: 17:46
Печать  
Подскажите пожалуйста как побороть.

В обработке несколько ТаблицЗначений на разных слоях формы.
я ПослеОткрытия создаю объект Привязки и добавляю все тз методом УстановитьГраницыПоФорме. После чего даю команду использовать слой. При изменеии размера формы видимая тз на первой активной странице меняется а остальные нет.
  
Наверх
 
IP записан
 
elkpro
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Класс "УправлениеФормой"
Ответ #42 - 07. Апреля 2011 :: 06:20
Печать  
Обнаружилась неприятная проблема.
На форме списка справочника есть таблица значений, в которую выводится список товаров из поиска по ключевому слову. Суть проблемы в том, что на таблице значений есть процедура, при нажатии на Enter выполняются следующие две команды

АктивизироватьОбъект(ЛистТ.Товар_);  позиционируемся на позицию товара в списке справочника
Активизировать("Код",0);  устанавливаем фокус собственно на списке справочника

Последняя команда не срабатывает в том случае, если включен иерархический режим просмотра списка. Это только в случае если используется привязка элементов. Если отключить привязки - все тип-топ. Установка фокуса работает в любом случае.
Еще один момент - если в процедуре перехода убрать позиционирование АктивизироватьОбъект(ЛистТ.Товар_); - тогда установка фокуса срабатывает.

УправлениеФормой = СоздатьОбъект("УправлениеФормой");
Привязки = УправлениеФормой.ПривязкаЭлементов;
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #43 - 07. Апреля 2011 :: 08:26
Печать  
elkpro писал(а) 07. Апреля 2011 :: 06:20:
не срабатывает

насколько я понял, это связано с перехватом события изменения размера формы...

Уже писал ранее об этом:
Dmitry The Wing писал(а) 25. Января 2011 :: 09:13:
  
Наверх
 
IP записан
 
dimas_1cnik
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 27. Мая 2011
Re: Класс "УправлениеФормой"
Ответ #44 - 29. Мая 2011 :: 13:17
Печать  
пригодиться
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #45 - 25. Октября 2011 :: 11:18
Печать  
Есть несколько похожих обработок где на разных закладках на форме выведены таблицы значений. Все ТЗ на формах растягиваются с помощью привязок.

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

привязки назначаются в ПослеОткрытия()

Код
Выбрать все
		УправлениеФормой = СоздатьОбъект("УправлениеФормой");

	Привязка = УправлениеФормой.ПривязкаЭлементов; //Привязка:УправлениеФормой.Привязка
	Параметры = Привязка.Добавить("ТЗ3");
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Низ.Вид = Привязка.НижняяГраница;
	Параметры.Низ.Элемент = "Форма";

	Параметры = Привязка.Добавить("ТЗ4");
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Низ.Вид = Привязка.НижняяГраница;
	Параметры.Низ.Элемент = "Форма";

	Параметры = Привязка.Добавить("ТЗ11");
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Низ.Вид = Привязка.НижняяГраница;
	Параметры.Низ.Элемент = "Форма";

	Привязка.Привязать();

 



Пробовал переносить привязки в ПослеСозданияФормы() - то же самое

Как исправить ситуацию?
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #46 - 25. Октября 2011 :: 11:25
Печать  
Создавай в "ПриОткрытии".
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #47 - 25. Октября 2011 :: 12:14
Печать  
zk96 писал(а) 25. Октября 2011 :: 11:25:
Создавай в "ПриОткрытии".



Тогда ТЗ по форме криво разъезжаются, выше обсуждалось
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "УправлениеФормой"
Ответ #48 - 26. Октября 2011 :: 06:00
Печать  
Используй класс Общие.Форма.Привязка или Общие.Форма.Привязки - там таких проблем нет.

ЗЫ: вероятно, в том классе, что ты используешь, неправильно определяется контекст формы в классе-перехватчике, в тех двух, что я сказал - перехватчик не используется вообще.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #49 - 26. Октября 2011 :: 07:10
Печать  
Eprst писал(а) 26. Октября 2011 :: 06:00:
Используй класс Общие.Форма.Привязка или Общие.Форма.Привязки - там таких проблем нет.

ЗЫ: вероятно, в том классе, что ты используешь, неправильно определяется контекст формы в классе-перехватчике, в тех двух, что я сказал - перехватчик не используется вообще.


спасибо, все заработало нормально с классом Общие.Форма.Привязки
  
Наверх
 
IP записан
 
Vit
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 24. Июля 2006
Re: Класс "УправлениеФормой"
Ответ #50 - 31. Октября 2011 :: 04:44
Печать  
доброе время суток!
При попытке создания объекта "УправлениеФормой" вываливается ошибка :
Код
Выбрать все
Класс: УправлениеФормой.Привязки - ошибка синтаксиса
Строка №622  Расстояние = ЛевоС-Право<<?>>;
Ожидается скалярное выражение (Право)
{R:\1C_ADMIN\Classes\УправлениеФормой\УправлениеФормой.Привязки.ert(622) }
Класс: УправлениеФормой.Привязки Файл: R:\1C_ADMIN\Classes\УправлениеФормой\УправлениеФормой.Привязки.ert компиляция не выполнена!
УправлениеФормой::Конструктор() : Внимание! Инициализация класса: УправлениеФормой.Привязки закончилась неудачно!
 



версия 1С++ 3.2.3.1
версия FormEx 2.0.5.92
версия 1sqlite 1.0.2.3
1C  7.70.027

причем если пытаюсь создать в демо конфигурации (на базе md из класса ПоставщикДанных), то всё ок, если в своей конфигурации - выдает указанную ошибку. DLL в обоих случаях грузятся из одного места.  
В чем может быть проблема?
  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #51 - 31. Октября 2011 :: 04:52
Печать  
У тебя в коде используется переменная "ПРАВО" переименуй её и будет тебе счастье.
  
Наверх
 
IP записан
 
Vit
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 24. Июля 2006
Re: Класс "УправлениеФормой"
Ответ #52 - 31. Октября 2011 :: 05:03
Печать  
Нет, переменной "ПРАВО" точно нет (это первое что проверил).
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #53 - 14. Ноября 2011 :: 11:34
Печать  
Можно ли както привязать подобные реквизиты указав их через запятую или как то еще (через список, коллекцию, вектор и т.д.)?

Сейчас пишу так:
Код
Выбрать все
Параметры = Привязка.Добавить("кСфЗаказы");
	Параметры.Низ.Вид = Привязка.ВерхняяГраница;
	Параметры.Низ.Элемент = "Форма";
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Лево.Вид = Привязка.ПраваяГраница;
	Параметры.Лево.Элемент = "ТП_Отчета";

	Параметры = Привязка.Добавить("кИстория");
	Параметры.Низ.Вид = Привязка.ВерхняяГраница;
	Параметры.Низ.Элемент = "Форма";
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Лево.Вид = Привязка.ПраваяГраница;
	Параметры.Лево.Элемент = "ТП_Отчета";

	Параметры = Привязка.Добавить("кПодчиненные");
	Параметры.Низ.Вид = Привязка.ВерхняяГраница;
	Параметры.Низ.Элемент = "Форма";
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Лево.Вид = Привязка.ПраваяГраница;
	Параметры.Лево.Элемент = "ТП_Отчета";

	Параметры = Привязка.Добавить("кДерево");
	Параметры.Низ.Вид = Привязка.ВерхняяГраница;
	Параметры.Низ.Элемент = "Форма";
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Лево.Вид = Привязка.ПраваяГраница;
	Параметры.Лево.Элемент = "ТП_Отчета";

	Параметры = Привязка.Добавить("кДвижения");
	Параметры.Низ.Вид = Привязка.ВерхняяГраница;
	Параметры.Низ.Элемент = "Форма";
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Лево.Вид = Привязка.ПраваяГраница;
	Параметры.Лево.Элемент = "ТП_Отчета";

	Параметры = Привязка.Добавить("кРеестр");
	Параметры.Низ.Вид = Привязка.ВерхняяГраница;
	Параметры.Низ.Элемент = "Форма";
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Лево.Вид = Привязка.ПраваяГраница;
	Параметры.Лево.Элемент = "ТП_Отчета";

	Параметры = Привязка.Добавить("кАвтор");
	Параметры.Низ.Вид = Привязка.ВерхняяГраница;
	Параметры.Низ.Элемент = "Форма";
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Лево.Вид = Привязка.ПраваяГраница;
	Параметры.Лево.Элемент = "ТП_Отчета";

	Параметры = Привязка.Добавить("кРасходные");
	Параметры.Низ.Вид = Привязка.ВерхняяГраница;
	Параметры.Низ.Элемент = "Форма";
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Лево.Вид = Привязка.ПраваяГраница;
	Параметры.Лево.Элемент = "ТП_Отчета";
 


Можно ли как то оптимизировать этот код, указав идентификаторы в какой то массив?
  
Наверх
IP записан
 
sava
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 56
Зарегистрирован: 18. Февраля 2010
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #54 - 15. Ноября 2011 :: 05:51
Печать  
А чем не устраивает функция с передачей строки идентификаторов?
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #55 - 15. Ноября 2011 :: 06:59
Печать  
sava писал(а) 15. Ноября 2011 :: 05:51:
А чем не устраивает функция с передачей строки идентификаторов?

Извините, а что это за функция?
В Классе метод "Добавить" не предусматривает передачу больше одного атрибута, да и возвращает он только ссылку на один элемент. Т.е. если даже взять и подправить метод Добавить чтобы добавлялись атрибуты из строки через запятую, то в конце вернется ссылка только на последний и все привязки выполняться только для последнего добавленного.
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #56 - 16. Ноября 2011 :: 08:06
Печать  
Нашел интересное поведение привязки. Если правые кнопки и сплитер привязать не по ширине формы а сделать ширину неизменяемой, и при этом левый край привязать с вертикальному сплитеру, то при перемещении сплитера вправо до конца - реквизиты скрываются (и это правильно), но обратно их показать двигая сплитер влево уже нельзя.

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

attachments.ert ( 58 KB | Загрузки )
Наверх
IP записан
 
elkpro
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Класс "УправлениеФормой"
Ответ #57 - 23. Декабря 2011 :: 13:37
Печать  
Что может быть такого, что у меня сплиттер вообще не работает?
В вышеупомянутом примере вообще ничего не могу подвигать, т.к. он даже никак не выделяется при подведении курсора.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #58 - 19. Января 2012 :: 06:30
Печать  
,1,0);
{Обработка.СправочникСписокКлиенты.Форма.Модуль(110)}: УправлениеФормой.Привязки::УстановитьГраницыПоФорме(Строка ИмяАтрибута=КоманднаяПанельМногострочнойЧастиКлиенты, Число Лево=1, Число Право=1, Число Верх=1, Число Низ=0) : УправлениеФормой.ЭлементПривязки::Установить(Строка ГраницаЭлементаФормы=Право, Строка Вид=П, Строка Элемент=Форма) : Коллекция::ИнформироватьОЗаписиКлюча(Строка Ключ=Вид, Строка Значение=П, Число ФСО=1) : Не найдена функция обратного вызова ОбработкаСобытияОтКласса()
вирт().ОтправитьСообщениеМодулюХоз("Коллекция","ПриЗаписи",Структура);
{D:\База_1С\Рабочая_SQL\SystemData\Classes\Объекты_V8\Коллекция.ert(25) }

Право.Вид = Вид;
ментПривязки.ert(93) }

ЭлементФормы.Установить("Право","П","Форма");


Вот такая ошибка при выполнении
Код
Выбрать все
ВидыСравнения = СоздатьОбъект("ПоставщикДанных.ВидыСравнения"); // для удобства работы с отборами

	УправлениеФормой = СоздатьОбъект("УправлениеФормой");
	Привязка = УправлениеФормой.ПривязкаЭлементов;
	,1,0);
	,0);
	,1,0);
	,1);
	ЭлементПривязки = Привязка.Добавить("КоманднаяПанельМногострочнойЧастиКарты");

	ЭлементПривязки.Установить("Низ","Н","ТабличноеПолеМногострочнойЧастиКлиенты");
	ЭлементПривязки.Установить("Лево","Л","Форма");
	ЭлементПривязки.Установить("Право","П","Форма");

	ЭлементПривязки = Привязка.Добавить("ТабличноеПолеМногострочнойЧастиКарты");

	ЭлементПривязки.Установить("Низ","Н","Форма");
	ЭлементПривязки.Установить("Лево","Л","Форма");
	ЭлементПривязки.Установить("Право","П","Форма");

	Привязка.Привязать();

	// есть некоторые нюансы если не указать конкретно слой
	Форма.ИспользоватьСлой("Основной",2);
 

  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #59 - 19. Января 2012 :: 07:45
Печать  
Разобрался спасибо, что то с V8 было заменил на другой и все заработало
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #60 - 07. Февраля 2012 :: 07:22
Печать  
Всем привет.

Перепостю сюда, по совету vandalsvq.

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

У меня есть текст на форме, с индификаторов предположим текстПолноеНаименованиеДоп, рядом справа на одной линии (по замыслу) если реквизит ПолнНаименованиеДоп.

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

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

Т.е. при открытии пытаюсь делать что-то типа такого

    УправлениеФормой = СоздатьОбъект("УправлениеФормой");
   
    Привязка = УправлениеФормой.ПривязкаЭлементов;
         
    ЭлементПривязки = Привязка.Добавить("текстПолноеНаименованиеДоп");
    ЭлементПривязки.Установить("Верх","С","Форма");
    ЭлементПривязки.Установить("Низ","С","ПолноеНаименованиеДоп");
    ЭлементПривязки.Установить("Лево","Л","Форма");
    ЭлементПривязки.Установить("Право","Л","Форма");

Может кто объяснит на пальцах что я не так делаю.



  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #61 - 07. Февраля 2012 :: 07:37
Печать  
Мне бы для начало вообще понять какой тут принцип, т.е. вот один реквизит у меня не уезжает, второй уезжает, хочу второй привязать к первому.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "УправлениеФормой"
Ответ #62 - 07. Февраля 2012 :: 08:11
Печать  
первый привязывают к границе формы, второй - к границе первого.. всё собственно.
ЗЫ: указывать все привязки не обязательно (имеется ввиду все типы для одного контрола)
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #63 - 07. Февраля 2012 :: 08:25
Печать  
Почему то ничего не выходит.

Процедура ПриОткрытии() // Предопределенная процедура
     
     УправлениеФормой = СоздатьОбъект("УправлениеФормой");
     
     Привязка = УправлениеФормой.ПривязкаЭлементов;
           
     ЭлементПривязки = Привязка.Добавить("текстПолноеНаименованиеДоп");
     ЭлементПривязки.Установить("Верх","В","Форма");
     
     ЭлементПривязки = Привязка.Добавить("ПолнНаименование1");
     ЭлементПривязки.Установить("Верх","В","текстПолноеНаименованиеДоп");

Что не так делаю...
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "УправлениеФормой"
Ответ #64 - 07. Февраля 2012 :: 10:50
Печать  
Важна последовательность привязок в коде, как это сделано именно в этом классе - не скажу, ибо пользуюсь классом привязок от А'Dirks
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #65 - 07. Февраля 2012 :: 11:01
Печать  
Да я вчера с его классом начинал разбираться но почему то на этот переключился, задача то у меня элементарная по сути.

  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #66 - 07. Февраля 2012 :: 13:08
Печать  
Кроме добавления надо в конце вызвать "Привязать()" тогда система выстраивает их для себя в определенной последовательности в которой потом и обрабатывает Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #67 - 07. Февраля 2012 :: 13:35
Печать  
Да у меня было Привязать, просто в пример не вошло.
Странное дело, переместил пару элементов форм которые были ниже, на другой слой, и заработало....
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "УправлениеФормой"
Ответ #68 - 09. Февраля 2012 :: 07:06
Печать  
Надеюсь, галку изменять размер в свойствах формы убрал ?

А то "заработало" на новом слое как-то не оптимистично
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #69 - 02. Марта 2012 :: 13:07
Печать  
"Надеюсь, галку изменять размер в свойствах формы убрал ?"

Ааа, вот оно че Михалыч)) Спс)
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #70 - 13. Марта 2012 :: 06:48
Печать  
Наткнулся на следующую проблему с данным классом.
Если используется библиотека decoder.dll, то использование данного класса возможно с ограничениями.
Форму можно открыть ТОЛЬКО 1 РАЗ. Если форма открыта и ее попытаться открыть еще раз 1С "ВАЛИТСЯ".
У кого есть мысли поделитесь!

в классе есть событие
Код
Выбрать все
Процедура Событие_ПриПовторномОткрытии() Экспорт
СообщитьПодписчикам("ПриПовторномОткрытии");
;
КонецПроцедуры 



Проблема в этом. если этот блок комментировать, то все работает
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #71 - 15. Марта 2012 :: 05:39
Печать  
Eprst писал(а) 07. Февраля 2012 :: 10:50:
ибо пользуюсь классом привязок от А'Dirks

Дай ссылку на класс попробовать хочу вместо этого
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "УправлениеФормой"
Ответ #72 - 15. Марта 2012 :: 05:43
Печать  
Ищи здесь в репозитарии или на рикцентре - ОбщикеФормаПривязки и сплитеры.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #73 - 19. Марта 2012 :: 11:40
Печать  
Eprst писал(а) 15. Марта 2012 :: 05:43:
Ищи здесь в репозитарии или на рикцентре - ОбщикеФормаПривязки и сплитеры.

Здесь не нашел ... может кинешь?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "УправлениеФормой"
Ответ #74 - 20. Марта 2012 :: 05:20
Печать  
  
Наверх
wwwICQ  
IP записан
 
DmitriyOvchinnikov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 48
Местоположение: Екатеринбург
Зарегистрирован: 05. Марта 2012
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #75 - 21. Марта 2012 :: 03:55
Печать  
mozer писал(а) 19. Января 2012 :: 07:45:
Разобрался спасибо, что то с V8 было заменил на другой и все заработало


Что-то у меня не получается, может ссылку дашь на "правильный" V8?
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #76 - 24. Марта 2012 :: 06:01
Печать  
DmitriyOvchinnikov писал(а) 21. Марта 2012 :: 03:55:
mozer писал(а) 19. Января 2012 :: 07:45:
Разобрался спасибо, что то с V8 было заменил на другой и все заработало


Что-то у меня не получается, может ссылку дашь на "правильный" V8?

Вот.
  

________v8.rar ( 35 KB | Загрузки )
Наверх
 
IP записан
 
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #77 - 02. Июня 2023 :: 07:24
Печать  
Добрый день!

Есть форма с закладками. На каждой закладке есть ТабличноеПоле. А под табличным полем в общем слое есть стандартные кнопки "Заполнить", "Закрыть".

Делаю привязки с помощью этого класса. Привязки вроде работают.
Но после установки привязок размеры кнопок меняются: кнопки ("Закрыть" и "Заполнить") становятся более узкими, а ТабличноеПоле становится чуть больше, и все наезжает друг на друга.

Можно это исправить?
  
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #78 - 04. Июня 2023 :: 11:41
Печать  
Я не пользуюсь этим классом, вернее пользовался но очень давно...

Исправить то можно. Но отсюда не видно ни формы ни привязок.
Причин может быть несколько:
- не снят флаг формы "Изменять размер"
- кнопки привязаны неверно, лево/право насколько помню привязывать не надо

А если это классическая форма 1с, то этот класс не нужен.
Втыкаем на форму пустую тз, флаг "Изменять размер" ставим.
Расставляем кнопки, проверяем ресайз, тз отправляем на невидимый слой, она все равно будет ресайзится, сниферим координаты тз в ПриИзмененииРазмераОкна и устанавливам их для тп.
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать