![]() |
|
v7: Установка элементов на форму программно | ☑ | ||
---|---|---|---|---|
0
TDV
14.05.20
✎
16:40
|
Возможно ли устанавливать разные элементы (флажок, выбор и тому подобное) программно на форму, если возможно то можно увидеть пример?
|
|||
1
АЛьФ
14.05.20
✎
16:47
|
||||
2
Злопчинский
14.05.20
✎
19:13
|
(1) а можно как-то в ТЧ документа и списках форм журналов/справочников -
1. менять программно положение колонок..? 2. задавать программно ширину колонок? |
|||
3
Mikeware
14.05.20
✎
20:03
|
Динамическое добавление флажков "Упр" и "бух" на форму документа, если справочником разрешено использование этих флажков в документ такого вида... Ну, как в документах УПП
(сами реквизиты - общие с отбором, ДокБух и ДокУпр) И динамическое добавления флажка разрешеиня редактирования, если пользователю разрешено разрешать редактирование:-) В перехватчике ////====================================================================== Функция Событие_ПослеОткрытия() Экспорт Если ТипОбъекта="Документ" Тогда ТекДок = КонтФормы.ТекущийДокумент(); ДобавитьФлажкиУчета(КонтФормы); ДобавитьФлажокРазрешения(КонтФормы); ДобавитьФлажокЗапрещения(КонтФормы); ИначеЕсли ТипОбъекта="Справочник" Тогда ТекДок=КонтФормы.ТекущийЭлемент(); КонецЕсли; Если ЗакладкиСканов.ЗакладкиСканов_РазрешеныСканыОбъекта(ПолныйТипОбъекта)=1 Тогда ЗакладкиСканов.ЗакладкиСканов_СоздатьЗакладку(КонтФормы); КонецЕсли; Если ТипОбъекта="Документ" Тогда КонтФормы.Форма.Обновить(); //!! ФормаРасш.СбросМодифицированности(); КонецЕсли; Возврат Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы,"ПослеОткрытия"); КонецФункции //====================================================================== Процедура ДобавитьФлажкиУчета(Конт) //ФормаРасш = СоздатьОбъект("РасширениеФормы"); //ФормаРасш.УстановитьФорму(КонтФормы.Форма); ВидДокумента=Конт.Вид(); СпрПравил=СоздатьОбъект("Справочник.ПравилаБухУпр"); Если СпрПравил.НайтиПоНаименованию(ВидДокумента,0,1)=0 Тогда // Нет правила для объекта Возврат; КонецЕсли; Попытка Флажок = ФормаРасш.ПолучитьАтрибут("КДИР"); СтильФлажка=Флажок.Стиль; Исключение СтильФлажка=1073889283; КонецПопытки; ШиринаФ=ФормаРасш.Ширина; ВысотаФ=ФормаРасш.Высота; Попытка АттрДатаДок=ФормаРасш.ПолучитьАтрибут("ДатаДок"); ЛевК_АДД=0; ВерхК_АДД=0; ШирК_АДД=0; ВысК_АДД=0; СлойДатаДок=АттрДатаДок.Слой; АттрДатаДок.ПолучитьКоординаты(ЛевК_АДД, ВерхК_АДД, ШирК_АДД, ВысК_АДД); ЛевоК=ЛевК_АДД+ШирК_АДД+2; ВерхК=?(ВерхК_АДД>0,ВерхК_АДД,-ВерхК_АДД); ШиринаК=Цел(ШирК_АДД/2); ВысотаК=ВысК_АДД; Исключение ШиринаК=20; ЛевоК=2; ВерхК=2; ВысотаК=10; СлойДатаДок="Основной"; КонецПопытки; ф_флУпр_Идентификатор="флДокУпрУчет"; ф_флУпр=ФормаРасш.ДобавитьАтрибут("флДокУпрУчет",12,"Число"); ф_флУпр.Слой=СлойДатаДок; ф_флУпр.УстановитьКоординаты(ЛевоК, ВерхК, ШиринаК, ВысотаК); ф_флУпр.Формула="ПриНажатииФлагаУчета"+"(Контекст,"""+ф_флУпр.Идентификатор+""",""ДокУпр"")"; ф_флУпр.Заголовок="Упр"; ф_флУпр.Подсказка="Документ по упручету"; ф_флУпр.Стиль=СтильФлажка; Зн=Конт.ПолучитьАтрибут("ДокУпр"); ф_флУпр.Значение=Зн; ф_флБух_Идентификатор="флДокБухУчет"; ф_флБух=ФормаРасш.ДобавитьАтрибут("флДокБухУчет",12,"Число"); ф_флБух.Слой=СлойДатаДок; ЛевоК=ЛевоК+2+ШиринаК; ф_флБух.УстановитьКоординаты(ЛевоК, ВерхК, ШиринаК, ВысотаК); ф_флБух.Формула="ПриНажатииФлагаУчета"+"(Контекст,"""+ф_флБух.Идентификатор+""",""ДокБух"")"; ф_флБух.Заголовок="Бух"; ф_флБух.Подсказка="Документ по бухучету"; ф_флБух.Стиль=СтильФлажка; зн=Конт.ПолучитьАтрибут("ДокБух"); ф_флБух.Значение=Зн; КонтФормы.Форма.ИспользоватьСлой(СлойДатаДок,1); КонецПроцедуры //====================================================================== Процедура ДобавитьФлажокРазрешения(Конт) ВидДокумента=Конт.Вид(); СпрПравил=СоздатьОбъект("Справочник.ПравилаЗапрета"); Если СпрПравил.НайтиПоНаименованию(ВидДокумента,0,1)=0 Тогда // Нет правила для объекта Возврат; КонецЕсли; Если СпрПравил.ПометкаУдаления()=1 Тогда Возврат; КонецЕсли; Если СпрПравил.Запрещать=1 Тогда Возврат; КонецЕсли; Попытка Флажок = ФормаРасш.ПолучитьАтрибут("КДИР"); СтильФлажка=Флажок.Стиль; Исключение СтильФлажка=1073889283; КонецПопытки; ШиринаФ=ФормаРасш.Ширина; ВысотаФ=ФормаРасш.Высота; Попытка АттрДатаДок=ФормаРасш.ПолучитьАтрибут("ДатаДок"); ЛевК_АДД=0; ВерхК_АДД=0; ШирК_АДД=0; ВысК_АДД=0; СлойДатаДок=АттрДатаДок.Слой; АттрДатаДок.ПолучитьКоординаты(ЛевК_АДД, ВерхК_АДД, ШирК_АДД, ВысК_АДД); ЛевоК=ЛевК_АДД+ШирК_АДД+2; ВерхК=?(ВерхК_АДД>0,ВерхК_АДД,-ВерхК_АДД); ШиринаК=Цел(ШирК_АДД*2); ВысотаК=ВысК_АДД; Исключение ШиринаК=40; ЛевоК=2; ВерхК=2; ВысотаК=10; СлойДатаДок="Основной"; КонецПопытки; ф_флУпр_Идентификатор="флИзмененияРазрешены"; ф_флУпр=ФормаРасш.ДобавитьАтрибут("флИзмененияРазрешены",12,"Число"); ф_флУпр.Слой=СлойДатаДок; ф_флУпр.УстановитьКоординаты(ЛевоК, ВерхК+ВысотаК*1.2, ШиринаК, ВысотаК); ф_флУпр.Формула="ПриНажатииФлагаУчета"+"(Контекст,"""+ф_флУпр.Идентификатор+""",""ИзмененияРазрешены"")"; ф_флУпр.Заголовок="Изменения разрешены"; ф_флУпр.Подсказка="Изменения документа разрешены"; ф_флУпр.Стиль=СтильФлажка; Зн=Конт.ПолучитьАтрибут("ИзмененияРазрешены"); ф_флУпр.Значение=Зн; ф_флУпр.Доступность=0; СтрокаРолей=СокрЛП(СпрПравил.РазрешающиеРоли); сз=глРазложить(СтрокаРолей); разрешаем=0; Для сч=1 По сз.РазмерСписка() Цикл Если глИграетРоль(сз.получитьЗначение(сч))=1 Тогда //Сообщить("разрешено для роли "+сз.получитьЗначение(сч)); разрешаем=разрешаем+1; КонецЕсли; КонецЦикла; Если разрешаем<>0 Тогда ф_флУпр.Доступность=1; КонецЕсли; КонтФормы.Форма.ИспользоватьСлой(СлойДатаДок,0); КонтФормы.Форма.ИспользоватьСлой(СлойДатаДок,1); КонецПроцедуры //====================================================================== |
|||
4
Злопчинский
14.05.20
✎
20:06
|
особенно поянтно вот это
СтильФлажка=1073889283; ;-) |
|||
5
Mikeware
14.05.20
✎
20:10
|
(4) магическое число от Ёпа :-)
|
|||
6
Mikeware
14.05.20
✎
20:16
|
(4) вообще, стиль нужно задавать числом. Но почему-то не во всех формах получалось. поэтому было взято значение стиля этого самого флажка КДИР...
вообще, тонкостей не помню, уж лет 5 прошло. |
|||
7
Mikeware
14.05.20
✎
20:19
|
кому-то обещал почти год назад классы для подбора а-ля снеговик, но не было времени, вот только начал разгребать, поднял клюшки на ноуте - лепота. после идиотских УФ - все летает.
|
|||
8
Злопчинский
14.05.20
✎
21:23
|
(7) может, ну его нах, эту 8-ку..? организуем секту иеговистов 77 дня?
|
|||
9
big
15.05.20
✎
05:39
|
(8) Надо перенести ТиС на 8-ую платформу. И можно будет дальше спокойно жыть ))
|
|||
10
ДенисЧ
15.05.20
✎
06:39
|
МОжно, я сохраню эту ветку до зимы? Там дорожки посыпать буду...
|
|||
11
MWWRuza
гуру
15.05.20
✎
07:42
|
(7) лепота. после идиотских УФ - все летает.
(8) организуем секту иеговистов 77 дня? +100500 :-) |
|||
12
vcv
15.05.20
✎
08:07
|
(9) Где-то был на инфостарте такой проект. То ли разработка простой торговли на 1с8, то ли перенос ТиС на 1с8.
|
|||
13
Mikeware
15.05.20
✎
09:40
|
(10) у тебя собственной генерации нет?
(12) анафига? все равно все работают на более-менее типовых. (9) "фарш невозможно провернуть назад". кроме простого ТиС еще и нормальная платформа нужна. |
|||
14
ДенисЧ
15.05.20
✎
09:42
|
(13) Мне не хватает ))
|
|||
15
Mikeware
15.05.20
✎
09:49
|
(14) ограничивай себя в пространствах
|
|||
16
ДенисЧ
15.05.20
✎
09:52
|
(15) До зимы ещё долго, режим самоограничения закончится...
|
|||
17
Mikeware
15.05.20
✎
09:53
|
(16) так ты в Сахаре самоизолировался?
|
|||
18
smitti911
15.05.20
✎
10:16
|
(7) Хммм, а вдруг найдется
Полнотекстовый поиск по одному полю. Как можно реализовать? |
|||
19
smitti911
15.05.20
✎
10:17
|
(18) 9- сообщение, не?
|
|||
20
ДенисЧ
15.05.20
✎
10:26
|
(17) Почему? Я у нас, в России... Но летом тут хватает...
|
|||
21
trdm
15.05.20
✎
10:57
|
(8) > может, ну его нах, эту 8-ку..? организуем секту иеговистов 77 дня?
Я бы согласился на 7.8 c нехилыми модификациями. Ибо многое приходится делать через жопу. |
|||
22
big
15.05.20
✎
11:10
|
(13) Ну, дык, платформа то будет 8.3, а "наполнение" ТиС-овское.
|
|||
23
trdm
15.05.20
✎
11:31
|
(4) > особенно поянтно вот это "СтильФлажка=1073889283;"
По хорошему надо было сделать объект типа структуры , где в названии - стили а в значениях - значения стилей. А потом просто дать прогу складывать их. |
|||
24
Arbuz
15.05.20
✎
13:38
|
(21) да-да, помечтаем. пусть 1с сорцы клюшек на гитхаб выложит и отпустит. разойдись нога - раззудись плечо! на любом утюге со сверхзвуковой скоростью - нативная поддержка скулайта, ооп из коробки, нормальный сетевой стек, управление исполнением потоков, интерфейс внешним модулем в виарэмэль. преферанс, комсомолки. а там и Сталин в кремлин вернётся.
|
|||
25
Mikeware
15.05.20
✎
14:43
|
(18) дык этта... это я и был. про это и говорю.
|
|||
26
Mikeware
15.05.20
✎
14:44
|
(23) да это уже делалось на "вотщазз", уже переход на снеговика маячил, делать по человечески лениво было.
Или ты про реализацию стилей в формексе? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |