![]() |
|
Расширение. Кнопки не отображаются на форме в польз режиме. | ☑ | ||
---|---|---|---|---|
0
realevgenius
23.01.24
✎
11:34
|
Всем - здравствуйте, уважаемые!
Расширения не люблю из-за их глючности... Но в очередной раз пробую делать расширениями. Что сделал: Копию базы, добавил на форму кнопки, обработчики, все работает. Выгрузил расширение конфигурации из копии, загрузил в в актуальную базу. Кнопок нету на форме. Добавил в расширение "ПриОткрытии", поставил туда точку останова. - при открытии формы - останавливается, т.е. расширение работает, все нормально. Безопасный режим и остальное, это все гуглил, смотрел... Вдруг кто знает, где искать, смотреть. https://ibb.co/h9MrrtL https://ibb.co/5nJTzqs https://ibb.co/tqcS8Zz |
|||
1
yurikmellon2
23.01.24
✎
11:39
|
||||
2
spiller26
23.01.24
✎
11:49
|
(0) Права проверь
|
|||
3
DrZombi
23.01.24
✎
12:00
|
(0) Лепите элементы "при создании формы" программно.
|
|||
4
realevgenius
23.01.24
✎
12:07
|
(1) Да, спасибо! Помогло...
(2) Спасибо! но - не то... Все проверял. (3) Спасибо! Да, наверное, так лучше... Ну хотел Расширениями как-то ускорить |
|||
5
DrZombi
23.01.24
✎
12:42
|
(4) Да там все просто.
Процедура СОГ_ПриСозданииНаСервереПосле&НаСервере &После("ПриСозданииНаСервере") //Указать, если есть в основной форме, если нет, то все через диалог формы в расширения (увы) Процедура СОГ_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) СОГ_ИнтерфейсВызовСервера.ДобавитьНаФормуЭлементаЭлементы_ОсновныеСредства(ЭтотОбъект); КонецПроцедуры //СОГ_ИнтерфейсВызовСервера Процедура ДобавитьНаФормуЭлементаЭлементы_ОсновныеСредства(ЭтотОбъект_) Экспорт Элементы = ЭтотОбъект_.Элементы; Форма = ЭтотОбъект_.ЭтаФорма; Объект = Форма.Объект; Команды = Форма.Команды; ИмяКоманды_О = "СОГ_СоздатьПеремещениеОС"; ИмяКоманды_О_Элемента = ИмяКоманды_О; Если Команды.Найти(ИмяКоманды_О_Элемента) = Неопределено Тогда Картинка = Неопределено; //ПолучитьИзБиблиотекиКартинку("ЗаписатьИзменения"); Команда = Команды.Добавить(ИмяКоманды_О_Элемента); //Имя команды Команда.Заголовок = "Изменить"; Команда.Действие = "Расш1_СоздатьПеремещениеОСВместо"; //Имя связанной процедуры Команда.Подсказка = "Создать перемещение ОС (МОЁ)"; Команда.Отображение = ?(Картинка = Неопределено,ОтображениеКнопки.Текст,ОтображениеКнопки.КартинкаИТекст); Если Картинка <> Неопределено Тогда Команда.Картинка = Картинка; КонецЕсли; Команда.ИзменяетСохраняемыеДанные = Истина; КонецЕсли; ГруппаФормы = Элементы.Найти("ГруппаМестонахождение"); Если ГруппаФормы = Неопределено Тогда ГруппаФормы = Форма; //Если поплывет интерфейс, то его надо будет поправить... КонецЕсли; ЭлементФормы_Кнопка1 = Элементы.Найти(ИмяКоманды_О); Если ЭлементФормы_Кнопка1 = Неопределено Тогда ЭлементФормы_Кнопка1 = Элементы.Добавить(ИмяКоманды_О, Тип("КнопкаФормы"), ГруппаФормы); ЭлементФормы_Кнопка1.Вид = ВидКнопкиФормы.Гиперссылка; ЭлементФормы_Кнопка1.ИмяКоманды = ИмяКоманды_О_Элемента; ЭлементФормы_Кнопка1.ТолькоВоВсехДействиях = Ложь; КонецЕсли; ИмяЭлемента = "СОГ_Декорация2"; ЭлементФормы = ДобавитьДекорациюНаФорму(ИмяЭлемента, ГруппаФормы, Неопределено, Элементы); ЭлементФормы.Заголовок = "Комментарий:"; КонецПроцедуры // Служебные процедуры СОГ_ИнтерфейсВызовСервера //Получить картинку оп наименованию... Функция ПолучитьИзБиблиотекиКартинку(ИмяКартинки) Попытка Возврат БиблиотекаКартинок[ИмяКартинки]; Исключение Возврат Неопределено; КонецПопытки; КонецФункции #Область Дополнительные_Функции Функция ПолучитьСвойствоДопРеквизита(ИмяСвойства) Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("Имя", ИмяСвойства); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка, | ДополнительныеРеквизитыИСведения.Имя КАК Имя, | ДополнительныеРеквизитыИСведения.ПометкаУдаления КАК ПометкаУдаления, | ДополнительныеРеквизитыИСведения.Наименование КАК Наименование |ИЗ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения |ГДЕ | ДополнительныеРеквизитыИСведения.Имя = &Имя | |УПОРЯДОЧИТЬ ПО | ПометкаУдаления"; РезЗапроса = Запрос.Выполнить(); Если РезЗапроса.Пустой() Тогда Возврат Неопределено; КонецЕсли; Выбор = РезЗапроса.Выбрать(); Выбор.Следующий(); стрСвойства = Новый Структура("Ссылка,Имя,ПометкаУдаления,Наименование"); ЗаполнитьЗначенияСвойств(стрСвойства, Выбор); Возврат стрСвойства; КонецФункции Функция НайтиРеквизитПоНаименованию(МассРекв, ИмяРеквизита) Перем РезФункци,СчИндекса,КолВо,Реквизит; РезФункци = Неопределено; СчИндекса = 0; КолВо = МассРекв.Количество(); Пока КолВо > 0 Цикл Реквизит = МассРекв[КолВо-1]; СчИндекса = СчИндекса + 1; Если Реквизит.Имя = ИмяРеквизита Тогда РезФункци = СчИндекса - 1; Прервать; КонецЕсли; КолВо = КолВо - 1; КонецЦикла; Возврат РезФункци; КонецФункции Функция ДобавитьЭлементНаФорму(ИмяЭлемента, ПутьКДанным, ЭлементТаблицы_Список, ЭлементТаблицы_После, Элементы) ЭлементФормы = Элементы.Найти(ИмяЭлемента); Если ЭлементФормы = Неопределено и ЭлементТаблицы_Список <> Неопределено Тогда Если ЭлементТаблицы_После = Неопределено Тогда ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ЭлементТаблицы_Список); Иначе ЭлементФормы = Элементы.Вставить(ИмяЭлемента, Тип("ПолеФормы"), ЭлементТаблицы_Список, ЭлементТаблицы_После); КонецЕсли; ЭлементФормы.Вид = ВидПоляФормы.ПолеВвода; Если ПутьКДанным <> Неопределено И ЗначениеЗаполнено(ПутьКДанным) Тогда Попытка ЭлементФормы.ПутьКДанным = ПутьКДанным; Исключение КонецПопытки; КонецЕсли; КонецЕсли; Возврат ЭлементФормы; КонецФункции //ГруппаФормы Функция ДобавитьГруппуНаФорму(ИмяЭлемента, ЭлементТаблицы_Список, ЭлементТаблицы_После, Элементы) ЭлементФормы = Элементы.Найти(ИмяЭлемента); Если ЭлементФормы = Неопределено и ЭлементТаблицы_Список <> Неопределено Тогда Если ЭлементТаблицы_После = Неопределено Тогда ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список); Иначе ЭлементФормы = Элементы.Вставить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список, ЭлементТаблицы_После); КонецЕсли; ЭлементФормы.Вид = ВидГруппыФормы.ОбычнаяГруппа; КонецЕсли; Возврат ЭлементФормы; КонецФункции //ТаблицаФормы Функция ДобавитьТаблицуНаФорму(ИмяЭлемента, ПутьКДанным, ЭлементТаблицы_Список, ЭлементТаблицы_После, Элементы) ЭлементФормы = Элементы.Найти(ИмяЭлемента); Если ЭлементФормы = Неопределено и ЭлементТаблицы_Список <> Неопределено Тогда Если ЭлементТаблицы_После = Неопределено Тогда ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ТаблицаФормы"), ЭлементТаблицы_Список); Иначе ЭлементФормы = Элементы.Вставить(ИмяЭлемента, Тип("ТаблицаФормы"), ЭлементТаблицы_Список, ЭлементТаблицы_После); КонецЕсли; ЭлементФормы.ПутьКДанным = ПутьКДанным; КонецЕсли; Возврат ЭлементФормы; КонецФункции //ДобавитьГруппуКнопокНаФорму Функция ДобавитьГруппуКнопокНаФорму(ИмяЭлемента, ЭлементТаблицы_Список, ЭлементТаблицы_После, Элементы) ЭлементФормы = Элементы.Найти(ИмяЭлемента); Если ЭлементФормы = Неопределено и ЭлементТаблицы_Список <> Неопределено Тогда Если ЭлементТаблицы_После = Неопределено Тогда ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список); Иначе ЭлементФормы = Элементы.Вставить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список, ЭлементТаблицы_После); КонецЕсли; ЭлементФормы.Вид = ВидГруппыФормы.ГруппаКнопок; КонецЕсли; Возврат ЭлементФормы; КонецФункции Функция ДобавитьГруппуКолонокНаФорму(ИмяЭлемента, ЭлементТаблицы_Список, ЭлементТаблицы_После, Элементы) ЭлементФормы = Элементы.Найти(ИмяЭлемента); Если ЭлементФормы = Неопределено и ЭлементТаблицы_Список <> Неопределено Тогда Если ЭлементТаблицы_После = Неопределено Тогда ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список); Иначе ЭлементФормы = Элементы.Вставить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список, ЭлементТаблицы_После); КонецЕсли; ЭлементФормы.Вид = ВидГруппыФормы.ГруппаКолонок; КонецЕсли; Возврат ЭлементФормы; КонецФункции Функция ДобавитьСтраницуНаФорму(ИмяЭлемента, ЭлементТаблицы_Список, ЭлементТаблицы_После, Элементы) ЭлементФормы = Элементы.Найти(ИмяЭлемента); Если ЭлементФормы = Неопределено и ЭлементТаблицы_Список <> Неопределено Тогда Если ЭлементТаблицы_После = Неопределено Тогда ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список); Иначе ЭлементФормы = Элементы.Вставить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список, ЭлементТаблицы_После); КонецЕсли; ЭлементФормы.Вид = ВидГруппыФормы.Страница; КонецЕсли; Возврат ЭлементФормы; КонецФункции Функция ДобавитьСтраницыНаФорму(ИмяЭлемента, ЭлементТаблицы_Список, ЭлементТаблицы_После, Элементы) ЭлементФормы = Элементы.Найти(ИмяЭлемента); Если ЭлементФормы = Неопределено и ЭлементТаблицы_Список <> Неопределено Тогда Если ЭлементТаблицы_После = Неопределено Тогда ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список); Иначе ЭлементФормы = Элементы.Вставить(ИмяЭлемента, Тип("ГруппаФормы"), ЭлементТаблицы_Список, ЭлементТаблицы_После); КонецЕсли; ЭлементФормы.Вид = ВидГруппыФормы.Страницы; КонецЕсли; Возврат ЭлементФормы; КонецФункции Функция ДобавитьДекорациюНаФорму(ИмяЭлемента, ЭлементТаблицы_Список, ЭлементТаблицы_После, Элементы) ЭлементФормы = Элементы.Найти(ИмяЭлемента); Если ЭлементФормы = Неопределено и ЭлементТаблицы_Список <> Неопределено Тогда Если ЭлементТаблицы_После = Неопределено Тогда ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ДекорацияФормы"), ЭлементТаблицы_Список); Иначе ЭлементФормы = Элементы.Вставить(ИмяЭлемента, Тип("ДекорацияФормы"), ЭлементТаблицы_Список, ЭлементТаблицы_После); КонецЕсли; ЭлементФормы.Вид = ВидДекорацииФормы.Надпись; КонецЕсли; Возврат ЭлементФормы; КонецФункции #КонецОбласти |
|||
6
DrZombi
23.01.24
✎
12:34
|
+ (5) Искать элементы простым...
ЭлементФормы_Осн = Форма; //Элементы.Найти("Страницы"); ЭлементФормы_Перед = Элементы.Найти("Страницы"); Если ЭлементФормы_Перед <> Неопределено Тогда ЭлементФормы_Осн = ЭлементФормы_Перед.Родитель; КонецЕсли; |
|||
7
realevgenius
23.01.24
✎
12:58
|
(6) Да, спасибо! Так и делаю, когда без расширений... В общем модуле
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |