Программное добавление кнопки и реквизита на форму
Создаём расширение в ERP

«Конфигурация» Справочник — Номенклатура — открываю форму — Модуль
Нахожу Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) — жму ПКМ — Добавить в расширение — выбираю своё
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
&НаСервере Процедура Расш_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) ГруппаФормы = ЭтаФорма.Элементы.Найти("ГруппаЗаполнитьПоШаблону"); //Добавление команды формы Команда = Команды.Добавить("ПерейтиВДОпоСсылке"); //Имя команды Команда.Заголовок = "Перейти в ДО по навигационной ссылке"; Команда.Действие = "КомандаПерейтиВДОпоСсылке"; //Имя связанной процедуры //Добавление кнопки формы КнопкаФормы = Элементы.Добавить("КнопкаПерейтиВДОпоСсылке", Тип("КнопкаФормы"), КоманднаяПанель); // КнопкаФормы = Элементы.Добавить("КнопкаПерейтиВДОпоСсылке", Тип("КнопкаФормы"), ГруппаФормы); КнопкаФормы.ИмяКоманды = "ПерейтиВДОпоСсылке"; //Связь с командой по имени КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; Элементы.СтраницыКарточкаНоменклатуры.ТекущаяСтраница = Элементы.СтраницаРеквизитыНоменклатуры; НастройкаВидимостиФормы = "ПоказатьВсе"; РежимВидимостиПоказатьТолькоВажные = Ложь; НастроитьФормуИОбновитьКарточку(); КонецПроцедуры &НаКлиенте Процедура КомандаПерейтиВДОпоСсылке(Команда) НавигСсылка = Объект.НавСсылка; // Открытие внешней обработки из ЕРП Если ЗначениеЗаполнено(Объект.НавСсылка) Тогда ЗапуститьПриложение(КаталогПрограммы() + "1cv8c.exe ENTERPRISE /S ""***\***"" /N ""***"" /P ""***"" /DisableStartupMessages /Execute ""\\***КарточкаЧертежа.epf"" /C ""1;"+Строка(НавигСсылка)+"""",,Истина); // /S База /N Пользователь /P пароль /Execute Внешняя обработка /С передать параметр /N ""ОбменСДокументооборотом"" /P """" /itdi-открытие форм в основном окне /DisableStartupMessages ЭтаФорма.Прочитать(); КонецЕсли КонецПроцедуры |
Конфигурация — Общие — ОбщиеМодули — УправлениеСвойствами
Процедура ПриСозданииНаСервере (…) — ПКМ — Добавить в расширение — Расш_ДОНоваяНоменклатура — Вызвать после
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
Процедура РасшПриСозданииНаСервере(Форма, ДополнительныеПараметры) //*********************************НОМЕНКЛАТУРА********************************* Если Форма.ИмяФормы = "Справочник.Номенклатура.Форма.ФормаЭлемента" Тогда #Область ДобавлениеРеквизитовФормы // Массив для новых реквизитов ДобавляемыеРеквизиты = Новый Массив; // Опишем реквизиты формы Реквизит_НавСсылка = Новый РеквизитФормы("НавСсылка", Новый ОписаниеТипов("Строка"), , "Ссылка на чертёж в ДО"); // Заполним массив после описания реквизитов формы ДобавляемыеРеквизиты.Добавить(Реквизит_НавСсылка); // Добавим новые реквизиты в форму Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); #КонецОбласти #Область ДобавлениеЭлементовФормы ЭлементПередЧемВставляем = Форма.Элементы.Найти("ГруппаЗаполнитьПоШаблону"); ГруппаФормы = Форма.Элементы.Найти("ГруппаНаименование"); Если ГруппаФормы <> Неопределено Тогда ИмяЭлемента = "НавСсылка"; Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда ЭлементФормы = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы); //ЭлементФормы = Форма.Элементы.Вставить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы,ЭлементПередЧемВставляем ); ЭлементФормы.Вид = ВидПоляФормы.ПолеВвода; ЭлементФормы.ПутьКДанным = "Объект.НавСсылка"; КонецЕсли; КонецЕсли; #КонецОбласти КонецЕсли; |
PS / ПриСозданииНаСервере изменил код, чтоб стартовать со всеми видимыми полями
1 2 3 4 5 |
// Режим создания Элементы.СтраницыКарточкаНоменклатуры.ТекущаяСтраница = Элементы.СтраницаРеквизитыНоменклатуры; НастройкаВидимостиФормы = "ПоказатьВсе"; //"ПоказатьОсновные"; РежимВидимостиПоказатьТолькоВажные = Ложь; // Истина; |
Комментарии закрыты