К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Программная кнопка в типовой конфе, НЕ УФ.

0 - 01.11.2016 - 07:30
Всем привет.
Помогите разобраться, можно ли не трогая типовой документ скажем Поступление добавить туда кнопку (с этим проблем нет) и добавить туда действие вызов обработки, которая есть в конфе не меняя код документа?

Кнопки = ФормаОбъекта.ЭлементыФормы.КоманднаяПанельТовары.К нопки.ПодменюЗаполнить.Кнопки;
Если Кнопки.Найти("ЗагрузкаИзЕкселя") = Неопределено Тогда
НоваяКнопка = Кнопки.Добавить();
НоваяКнопка.ТипКнопки = ТипКнопкиКоманднойПанели.Действие;
НоваяКнопка.Имя = "ЗагрузкаИзЕкселя";
НоваяКнопка.Подсказка = "Загрузить из Excel";
НоваяКнопка.Пояснение = НоваяКнопка.Подсказка;
НоваяКнопка.Текст = "Загрузить из Excel";
НоваяКнопка.ИзменяетДанные = Истина;
//НоваяКнопка.Действие = Новый Действие("ЗагрузкаПоступленийИзExcel");
КонецЕсли;

Вот что в Действие записать, чтобы сделать это или это не возможно и должны быть только процедуры/функции формы документа?



Гость
1 - 01.11.2016 - 09:28
Типовой механизм обработок заполнения таб.частей не устравает?
2 - 01.11.2016 - 10:31
к сожалению нет, заказчика не устраивает.
3 - 01.11.2016 - 10:43
Заказчик говорит - не надо типовой конфигурации. Мы хотим ежемесячно платить Одинэсникам за обновление нетиповой? Да и чем отличается - Действия - запустить нетленку от Заполнить - заполнить нетленкой?
4 - 01.11.2016 - 10:46
Есть свои типы фактур, которые нужно загрузить. Загрузить одной кнопкой. Это и делает обработка. Нужно просто добавить кнопку (программно, а не каждый раз возвращать ее) и при ее нажатии вызвать обработку.
Просил совета, а не то как и что навязывать заказчику.
5 - 01.11.2016 - 10:49
Цитата:
Сообщение от pavlo1c Посмотреть сообщение
Нужно просто добавить кнопку (программно, а не каждый раз возвращать ее)
Есть несколько способов. Наиболее логичный - обработка табличных частей. У тебя появляется одна(!!! как ты и хочешь) кнопка. Открываешь документ и у тебя в документе кнопка "заполнить - Что то заполнить". Чем этот способ противоречит сказанному в (0) и (4) ???
6 - 01.11.2016 - 10:55
А куда код из (0) вставляешь?
Гость
7 - 01.11.2016 - 10:55
(4) см (1)
чтобы сделать это нужно куда-то написать код, который вызовет твою обработку. Такой код уже написан в механизмах подключаемых обработок заполнения и подменю печати. Не устраивает - пиши свой. Но его где-то в доступном в контексте формы месте придётся разместить.
8 - 01.11.2016 - 11:45
(6) УстановитьЗаголовокФормыДокумента в РаботаСДиалогами
там одна строчка и вызывает мой общий модуль.
этот модуль через форму добавляет кнопку, а вот с действием беда.
9 - 01.11.2016 - 11:50
(5) обработку то придется менять и каждый раз при обновлении следить все равно не затереть же.
10 - 01.11.2016 - 11:52
8-pavlo1c > Вот я пользователь. Как я могу отличить кнопку, которую ты добавил через ... РаботаСДиалогами и кнопку которая появилась в результате стандартного механизма подключения обработки табличных частей?
11 - 01.11.2016 - 11:52
2(8) У тебя два варианта:
1. Вносим изменения в конфу:
- копируем Форму ФОрмаДокумента в МояФормаДокумента;
- Устнавливаем у документа в качестве формы документа форму МояФормаДокумента;
- В форме МояФормаДокумента делаем все необходимые свистелки и перделки;
- Профит!
2. Конфу не трогаем. Никаких собственных кнопок на форме не появляется. Используем штатный механизм обработок заполнения.
12 - 01.11.2016 - 11:53
характерная картинка, не?
13 - 01.11.2016 - 11:55
(11) как же не трогаем? обновился и по умолчанию форма перешла назад. И в догонку не получишь новые пополнения формы от новых версий типовой.
14 - 01.11.2016 - 11:56
Цитата:
Сообщение от pavlo1c Посмотреть сообщение
(5) обработку то придется менять и каждый раз при обновлении следить все равно не затереть же.
????????
Мы все таки на разных языках с тобой разговариваем
https://www.google.ru/search?q=1%D1%...82%D0%B5%D0%B9
15 - 01.11.2016 - 11:59
+14 Сделал, поставил - забыл. Совсем забыл. Ничего при обновлении затереться не может.
16 - 01.11.2016 - 12:04
Цитата:
Сообщение от pavlo1c Посмотреть сообщение
характерная картинка, не?
для китайцев делаешь? без картинки не поймут куда жать надо?
17 - 01.11.2016 - 13:04
(14) спасибо, понял о чем речь, но у меня не удается запустить этот механизм. Не дает открыть форму самой обработки :(
Саму обработку сразу открывать тоже не удается, так как Инициализировать() срабатывает, но дальше форма обработки не открывается.
18 - 01.11.2016 - 13:06
(16) ну ты спросил как (ты пользователь) поймешь что жать, вот как и все остальные кнопки знают что жать. Картинку к примеру тебе написал :)
19 - 01.11.2016 - 13:16
17-pavlo1c >
Как вариант:
Перем ДокументОбъект экспорт;


Процедура Инициализировать(Объект,ТабЧасть,ТабличноеПолеОбъе кта) экспорт
ДокументОбъект = Объект;
Форма = ЭтотОбъект.ПолучитьФорму("Форма");
форма.ЭлементыФормы.СсылкаНаОбъект.доступность =ложь; //Это поле на форме и данную строку можно удалить- используется для отладки (если запускать обработку не подключая к справочнику допобработок)
Форма.Открыть();

КонецПроцедуры
20 - 01.11.2016 - 13:23
18-pavlo1c >Я тебе говорил о том, что пользователю наплевать как ты сделаешь - внешней обработкой ТЧ, в копии форме, в общем модуле - он этого даже не заметит. А то что нельзя картинку подвесить к пункту меню заполнить - так это вообще не проблема, подписать кнопку для пользователя можно на любом языке мира.
21 - 01.11.2016 - 15:49
(19) хм, через ОткрутьФорму() не взлетело, да и не верно было, а как ты предложил вполне верное и не плохое решение, спасибо большое.
Это решит вопрос, но вот вопрос можно ли добавлять именно программно кнопки с внешним действием остался открыт (уже из спортивного интереса)
Если действия могут быть функции/процедуры самого объекта, то возможно ли добавить туда свою динамически сначала?

(20) Как я сделаю ему наплевать, но это должно быть не мене удобно чем есть. Я и не говорил, что нужно только так, но я подумал сделать так и спросил может кто знает почему не получается.
22 - 01.11.2016 - 16:59
Цитата:
Сообщение от pavlo1c Посмотреть сообщение
Я и не говорил, что нужно только так
Да ладно: Тебе в (1) сказали как надо делать.
а ты :
Цитата:
Сообщение от pavlo1c Посмотреть сообщение
Нужно просто добавить кнопку (программно, а не каждый раз возвращать ее) и при ее нажатии вызвать обработку. Просил совета, а не то как и что навязывать заказчику.
ПРОСТО ДОБАВИТЬ КНОПКУ и только ПРОГРАММНО.


Цитата:
Сообщение от pavlo1c Посмотреть сообщение
но вот вопрос можно ли добавлять именно программно кнопки с внешним действием остался открыт (уже из спортивного интереса)
Чисто из-за спортивного интереса (если оно тебе надо):
1. Создаешь пустую управляемую форму своего документа. В обработчике ПриОткрытии пишешь Закрыть(); Назначаешь эту форму основной
2. Создаешь подписку на ОбработкаПолученияФормы для ДокументМенеджер
3. В модуле подписки открываешь стандартную форму и делаешь с формой что хочешь.
При обновлении следишь что бы форма по умолчанию оставалась ТвояНоваяФорма

И как говориться успехов в личной жизни...

Отредактировано GariPortman; 01.11.2016 в 17:02. Причина: ....
23 - 01.11.2016 - 17:13
+22 А обработчики свои на элементы формы ты так не повесишь. Так что бубен.
Гость
24 - 01.11.2016 - 17:22
(0) СП наше всё
КнопкаКоманднойПанели (CommandBarButton)
Действие (Action)
Использование:

Чтение и запись.
Описание:

Тип: Действие.
=======
Читаем описание типа

Действие (Action)
....

Описание:

Предназначен для получения действия, которое можно назначить в качестве обработчика события элемента управления или команды пользовательского интерфейса.
Для обработки события может быть вызвана процедура или функция модуля формы или общего модуля, имя которой задано в конструкторе.
При использовании в форме в качестве имени процедуры может использоваться только процедура модуля данной формы.

Доступность:

Толстый клиент.
Сериализуется.
25 - 01.11.2016 - 19:05
(22) делаешь форму основной это вообще не вариант, снесется.
(23) так и подозревал, спс
(24) потому и спросил, может есть возможность динамически добавить процедуру и тогда она будет удовлетворять этому описанию.


К списку вопросов






Copyright ©, Все права защищены