Программная кнопка в типовой конфе, НЕ УФ. Всем привет. Помогите разобраться, можно ли не трогая типовой документ скажем Поступление добавить туда кнопку (с этим проблем нет) и добавить туда действие вызов обработки, которая есть в конфе не меняя код документа? Кнопки = ФормаОбъекта.ЭлементыФормы.КоманднаяПанельТовары.Кнопки.ПодменюЗаполнить.Кнопки; Если Кнопки.Найти("ЗагрузкаИзЕкселя") = Неопределено Тогда НоваяКнопка = Кнопки.Добавить(); НоваяКнопка.ТипКнопки = ТипКнопкиКоманднойПанели.Действие; НоваяКнопка.Имя = "ЗагрузкаИзЕкселя"; НоваяКнопка.Подсказка = "Загрузить из Excel"; НоваяКнопка.Пояснение = НоваяКнопка.Подсказка; НоваяКнопка.Текст = "Загрузить из Excel"; НоваяКнопка.ИзменяетДанные = Истина; //НоваяКнопка.Действие = Новый Действие("ЗагрузкаПоступленийИзExcel"); КонецЕсли; Вот что в Действие записать, чтобы сделать это или это не возможно и должны быть только процедуры/функции формы документа? |
Типовой механизм обработок заполнения таб.частей не устравает? |
к сожалению нет, заказчика не устраивает. |
[quote=pavlo1c;43156682] [/quote] Заказчик говорит - не надо типовой конфигурации. Мы хотим ежемесячно платить Одинэсникам за обновление нетиповой? Да и чем отличается - Действия - запустить нетленку от Заполнить - заполнить нетленкой? |
Есть свои типы фактур, которые нужно загрузить. Загрузить одной кнопкой. Это и делает обработка. Нужно просто добавить кнопку (программно, а не каждый раз возвращать ее) и при ее нажатии вызвать обработку. Просил совета, а не то как и что навязывать заказчику. |
[quote=pavlo1c;43156780]Нужно просто добавить кнопку (программно, а не каждый раз возвращать ее) [/quote] Есть несколько способов. Наиболее логичный - обработка табличных частей. У тебя появляется одна(!!! как ты и хочешь) кнопка. Открываешь документ и у тебя в документе кнопка "заполнить - Что то заполнить". Чем этот способ противоречит сказанному в (0) и (4) ??? |
А куда код из (0) вставляешь? |
(4) см (1) [em]чтобы сделать это[/em] нужно куда-то написать код, который вызовет твою обработку. Такой код уже написан в механизмах подключаемых обработок заполнения и подменю печати. Не устраивает - пиши свой. Но его где-то в доступном в контексте формы месте придётся разместить. |
(6) УстановитьЗаголовокФормыДокумента в РаботаСДиалогами там одна строчка и вызывает мой общий модуль. этот модуль через форму добавляет кнопку, а вот с действием беда. |
(5) обработку то придется менять и каждый раз при обновлении следить все равно не затереть же. |
8-pavlo1c > Вот я пользователь. Как я могу отличить кнопку, которую ты добавил через ... РаботаСДиалогами и кнопку которая появилась в результате стандартного механизма подключения обработки табличных частей? |
2(8) У тебя два варианта: 1. Вносим изменения в конфу: - копируем Форму ФОрмаДокумента в МояФормаДокумента; - Устнавливаем у документа в качестве формы документа форму МояФормаДокумента; - В форме МояФормаДокумента делаем все необходимые свистелки и перделки; - Профит! 2. Конфу не трогаем. Никаких собственных кнопок на форме не появляется. Используем штатный механизм обработок заполнения. |
характерная картинка, не? |
(11) как же не трогаем? обновился и по умолчанию форма перешла назад. И в догонку не получишь новые пополнения формы от новых версий типовой. |
[quote=pavlo1c;43157184] (5) обработку то придется менять и каждый раз при обновлении следить все равно не затереть же. [/quote] ???????? Мы все таки на разных языках с тобой разговариваем [url]https://www.google.ru/search?q=1%D1%81+%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0+%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D1%85+%D1%87%D0%B0%D1%81%D1%82%D0%B5%D0%B9&ie=utf-8&oe=utf-8&gws_rd=cr&ei=WlgYWOGsJ-bE6ATY7JFY#newwindow=1&safe=strict&q=1%D1%81+%D0%B4%D0%BB%D1%8F+%D1%87%D0%B5%D0%B3%D0%BE+%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0+%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D1%85+%D1%87%D0%B0%D1%81%D1%82%D0%B5%D0%B9[/url] |
+14 Сделал, поставил - забыл. Совсем забыл. Ничего при обновлении затереться не может. |
[quote=pavlo1c;43157196]характерная картинка, не? [/quote]для китайцев делаешь? без картинки не поймут куда жать надо? |
(14) спасибо, понял о чем речь, но у меня не удается запустить этот механизм. Не дает открыть форму самой обработки :( Саму обработку сразу открывать тоже не удается, так как Инициализировать() срабатывает, но дальше форма обработки не открывается. |
(16) ну ты спросил как (ты пользователь) поймешь что жать, вот как и все остальные кнопки знают что жать. Картинку к примеру тебе написал :) |
17-pavlo1c > Как вариант: Перем ДокументОбъект экспорт; Процедура Инициализировать(Объект,ТабЧасть,ТабличноеПолеОбъекта) экспорт ДокументОбъект = Объект; Форма = ЭтотОбъект.ПолучитьФорму("Форма"); форма.ЭлементыФормы.СсылкаНаОбъект.доступность =ложь; //Это поле на форме и данную строку можно удалить- используется для отладки (если запускать обработку не подключая к справочнику допобработок) Форма.Открыть(); КонецПроцедуры |
18-pavlo1c >Я тебе говорил о том, что пользователю наплевать как ты сделаешь - внешней обработкой ТЧ, в копии форме, в общем модуле - он этого даже не заметит. А то что нельзя картинку подвесить к пункту меню заполнить - так это вообще не проблема, подписать кнопку для пользователя можно на любом языке мира. |
(19) хм, через ОткрутьФорму() не взлетело, да и не верно было, а как ты предложил вполне верное и не плохое решение, спасибо большое. Это решит вопрос, но вот вопрос можно ли добавлять именно программно кнопки с внешним действием остался открыт (уже из спортивного интереса) Если действия могут быть функции/процедуры самого объекта, то возможно ли добавить туда свою динамически сначала? (20) Как я сделаю ему наплевать, но это должно быть не мене удобно чем есть. Я и не говорил, что нужно только так, но я подумал сделать так и спросил может кто знает почему не получается. |
[quote=pavlo1c;43159016] Я и не говорил, что нужно только так[/quote] Да ладно: Тебе в (1) сказали как надо делать. а ты : [quote=pavlo1c;43156780]Нужно просто добавить кнопку (программно, а не каждый раз возвращать ее) и при ее нажатии вызвать обработку. Просил совета, а не то как и что навязывать заказчику. [/quote] ПРОСТО ДОБАВИТЬ КНОПКУ [b]и только ПРОГРАММНО[/b]. [quote=pavlo1c;43159016]но вот вопрос можно ли добавлять именно программно кнопки с внешним действием остался открыт (уже из спортивного интереса)[/quote] Чисто из-за спортивного интереса (если оно тебе надо): 1. Создаешь пустую управляемую форму своего документа. В обработчике ПриОткрытии пишешь Закрыть(); Назначаешь эту форму основной 2. Создаешь подписку на ОбработкаПолученияФормы для ДокументМенеджер 3. В модуле подписки открываешь стандартную форму и делаешь с формой что хочешь. При обновлении следишь что бы форма по умолчанию оставалась ТвояНоваяФорма И как говориться успехов в личной жизни... [img]http://samopoznanie.ru/avatars/objects/3-152127_1_6.jpg?1476481128[/img] |
+22 А обработчики свои на элементы формы ты так не повесишь. Так что бубен. |
(0) СП наше всё КнопкаКоманднойПанели (CommandBarButton) Действие (Action) Использование: Чтение и запись. Описание: Тип:[b] Действие.[/b] ======= Читаем описание типа Действие (Action) .... Описание: Предназначен для получения действия, которое можно назначить в качестве обработчика события элемента управления или команды пользовательского интерфейса. Для обработки события может быть вызвана процедура или функция модуля формы или общего модуля, имя которой задано в конструкторе. [b]При использовании в форме в качестве имени процедуры может использоваться только процедура модуля данной формы[/b]. Доступность: Толстый клиент. Сериализуется. |
(22) делаешь форму основной это вообще не вариант, снесется. (23) так и подозревал, спс (24) потому и спросил, может есть возможность динамически добавить процедуру и тогда она будет удовлетворять этому описанию. |
Текущее время: 18:15. Часовой пояс GMT +3. |