1С:Предприятие 8.3 (8.3.6.2449)
"Управление торговлей для Украины" (2.3.25.1)
Сопсно задача создать 1 универсальную кнопку для всех документов которая изменяла бы данные общего реквезита тип булево на истину или ложъ
Создал свой общий модуль и вызываю процедуры в нем из общего модуля к которому обращаются все документы....
Теперь сама суть... если кнопке задать ту же процедуру то вылетает ошибка о том что данное имя не уникально.... я не хочу сильно грубить други модуля... хотел обойтись только вставкой одной строки на обращение к моей процедуре...
Что я хотел уточнить.... ну 1. Привести в порядок код (глазом человека который в этом шарит) что 2. Можно ли как кнопке КП передать процедуру не из формы а из моего модуля или хотя бы просто "Выгружать = Истина\ложъ" ?
Процедура ПриОткрытии (объект) Экспорт
НазваниеДокумента = Метаданные.НайтиПоТипу(ТипЗнч(объект)).Имя;
ИндДок = Метаданные.Документы.Найти(НазваниеДокумента);
ИмяФормы = ИндДок.Формы.ФормаДокумента.Имя;
НД = ВРег(НазваниеДокумента);
КолвоСим = СтрДлина(НазваниеДокумента);
Форма = объект.ПолучитьФорму(ИмяФормы);
КоличествоЭлементов = Форма.ЭлементыФормы.Количество();
Для Каждого Док из Документы Цикл
НазвДок = Прав(Док,КолвоСим);
НазвДок = ВРег(НазвДок);
Если НазвДок = НД ТОгда
Форма1 = Док.ПолучитьФорму(ИмяФормы);
КолЭлем = Форма1.ЭлементыФормы.Количество();
КонецЕсли;
КонецЦикла;
Если Форма.ЭлементыФормы.ДействияФормы.Кнопки.Найти("Выгружать") = Неопределено Тогда
КП = Форма.ЭлементыФормы.ДействияФормы.Кнопки;
инд = КП.Количество();
ПодМенюВыгружать = КП.Вставить(инд,"Выгружать", ТипКнопкиКоманднойПанели.Подменю, "Выгружать");
ПодМенюВыгружать.Отображение = ОтображениеКнопкиКоманднойПанели.НадписьКартинка;
ДействиеКнопкиДа = Новый Действие ("ПриОткрытии");
ДействиеКнопкиНет = Новый Действие ("УстановитьКнопкиПодменюЗаполненияТЧ");
индкн = ПодМенюВыгружать.Кнопки.Количество();
ПодМенюВыгружать.Кнопки.Вставить(индкн,"Да", ТипКнопкиКоманднойПанели.Действие,"Да",ДействиеКнопкиДа);
ПодМенюВыгружать.Кнопки.Да.Картинка = БиблиотекаКартинок.Галочка;
ПодМенюВыгружать.Кнопки.Да.Отображение = ОтображениеКнопкиКоманднойПанели.НадписьКартинка;
ПодМенюВыгружать.Кнопки.Вставить(индкн+1,"Нет", ТипКнопкиКоманднойПанели.Действие,"Нет",ДействиеКнопкиНет);
ПодМенюВыгружать.Кнопки.Нет.Картинка = БиблиотекаКартинок.Крест;
ПодМенюВыгружать.Кнопки.Нет.Отображение = ОтображениеКнопкиКоманднойПанели.НадписьКартинка;
КонецЕсли;
КонецПроцедуры
Процедура Выгружать(Форма)Экспорт
НазваниеДокумента = Метаданные.НайтиПоТипу(ТипЗнч(Форма)).Имя;
ИндДок = Метаданные.Документы.Найти(НазваниеДокумента);
ИмяФормы = ИндДок.Формы.ФормаДокумента.Имя;
Форма1 = Форма.ПолучитьФорму(ИмяФормы);
Форма1.Выгрузка = Истина;
КП = Форма1.ЭлементыФормы.ДействияФормы.Кнопки;
КП.Выгружать.Картинка = БиблиотекаКартинок.Галочка;
КонецПроцедуры
Процедура НеВыгружать(Форма)Экспорт
НазваниеДокумента = Метаданные.НайтиПоТипу(ТипЗнч(Форма.ДокументОбъект.Ссылка)).Имя;
ИндДок = Метаданные.Документы.Найти(НазваниеДокумента);
ИмяФормы = ИндДок.Формы.ФормаДокумента.Имя;
Форма1 = Форма.ПолучитьФорму(ИмяФормы);
Форма1.Выгрузка = Ложь;
КП = Форма1.ЭлементыФормы.ДействияФормы.Кнопки;
КП.Выгружать.Картинка = БиблиотекаКартинок.Крест;
//Shell = Новый COMОбъект("WScript.Shell");
//НажатиеМышки = shell.run("rundll32.exe user32.dll, mouse_event 1", 1, "true");
КонецПроцедуры