|   |   | 
| 
 | 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) да это уже делалось на "вотщазз", уже переход на снеговика маячил, делать по человечески лениво было.
 Или ты про реализацию стилей в формексе? | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |