helpf.pro
Регистрация

Как добавить ссылку на обработку из внешней обработки?

bugor666
02.11.2010 16:28Прочитано: 14916
Как можно добавить ссылку на внешнюю обработку из другой внешней обработки, но чтобы эта ссылка попала на форму, существующую в нетронутой конфигурации?
Проблема в том, что конфигурацию трогать нельзя.

К примеру, в конфигурации ЗиУП 1С8 есть обработка Рабочий стол, которая запускается при старте. Как добавить туда ссылку не трогая конфигурацию?
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
02.11.2010 16:49Ответ № 1
(1) Если ты добавляешь ссылку - то ты уже правишь эту обработку, соответсвенно и конфигурацию - при обновлении это слетит *09
bugor666
02.11.2010 17:07Ответ № 2
(1) E_Migachev, Вот именно, слетит. Поэтому я ищу способ сделать так, чтобы конфигурация осталась нетронутой, но ссылка появлялась в нужном месте.
Ну скажем так, существует форма. Она открыта, функционирует, но хочется добавить на нее скажем "Отчет". Чтобы при клике на этот самый "Отчет", открывалась бы внешняя обработка, способная сформировать этот отчет.

Еще пример: В С++ есть возможность создать объект управления, на запущенной из другой программы форме. Причем программа запустившая форму не меняется.
Вот как-то так...
E_Migachev
02.11.2010 17:32Ответ № 3
(2) я тебя понял ),
но тебе в любом случае придется какой-нибудь модуль изменить, т.к. например ты программно можешь добаывить на форму ссылку, но этот код нужно откуда-то вызвать! соответсвенно менять модуль при загрузке *09

У меня кстати почти так и есть! В конфе я постоянно добавляю 6 строчек кода, а все остальное во внешних печатных формах, отчетах, обработках заполнения табл частей и т.д!
bugor666
03.11.2010 08:52Ответ № 4
Ну с этим вообще никаких проблем. Создаем новый ярлык, и в параметре запуска пишем:

"C:\Program Files\1cv82\8.2.11.235\bin\1cv8s.exe" /F "D:\1C\HRM" /N user /P password /Execute "D:\1C\Внешние_обработки_1С\РаботающиеОбработки\РабочийСтол.epf"

Здесь с паролем, но можно и без него. Запускается 1С, и сразу запускается внешняя обработка "РабочийСтол.epf".
А вот как программно добавить ссылку, я даже примерно не представляю...
E_Migachev
03.11.2010 09:29Ответ № 5
(4) ну раз ты хочешь таким способом ), тогда зачем тебе программное добавление? Меняй свою обработку как хочешь D:\1C\Внешние_обработки_1С\РаботающиеОбработки\РабочийСтол.epf и все! Только у пользователей в Настройках нужно отключить"Показывать панель функций" - чтобы Рабочий стол конфигурации не грузился *13
bugor666
03.11.2010 10:21Ответ № 6
(5) E_Migachev, так проблема в том, что эта обработка меняется с обновлениями. Иногда появляются новые ссылки. Каждый раз переписывать обработку не очень интересно, да и забыть могу. К тому же я в своей организации не хочу вечно работать...
E_Migachev
03.11.2010 10:27Ответ № 7
(6) тогда значит: Прописываешь при запусе свою обработку, которая добавить в стандартную обработку Рабочий стол новые ссылки!
Вот пример программного добавление кнопки на командную панель, действуй по аналогии...
bugor666
03.11.2010 10:36Ответ № 8
(7) E_Migachev, спасибо!
bugor666
03.11.2010 13:48Ответ № 9
(7) E_Migachev, получается! Остается одна проблемка, как сделать, чтобы обработка выполнялась при запуске? Как нужно для этого главную функцию обозвать?
E_Migachev
03.11.2010 14:22Ответ № 10
(9) ПриОткрытии
покажи потом код который получится )
bugor666
03.11.2010 15:07Ответ № 11
(10) E_Migachev, возникла проблема. Туплю уже похоже... Как указать кнопке, что ей делать при нажатии?
bugor666
03.11.2010 16:16Ответ № 12
(10) E_Migachev, вот такой код получается:

Код 1C v 8.2 УП
 
Функция ДобавитьСсылки() Экспорт
Сообщить("Начнем...");
ЦветСсылки = Новый Цвет(100, 150, 255);
ШрифтСсылки = Новый Шрифт("MS Shell Dlg", 8, Истина, Ложь, Ложь, Ложь);
ПанельКадров = Обработки.РабочийСтол.ПолучитьФорму("Форма").ЭлементыФормы;
Если ПанельКадров.Найти("КадровыйУчетОтчеты") <> неопределено Тогда
Ссылка = Обработки.РабочийСтол.ПолучитьФорму("Форма").ЭлементыФормы.Добавить(Тип("Надпись"), "СправкаЗП", Истина, ПанельКадров.КадровыйУчетОтчеты);
Сообщить("Где-то добавилось...");
Ссылка.Гиперссылка = Истина;

//Следующая строка не работает. Говорит нет такого поля "Нажатие".
Ссылка.Нажатие = ВнешниеОтчеты.ПолучитьФорму("D:\1С\РаботающиеОбработки\СправкаОЗаработнойПлате.erf").Открыть();
Ссылка.Верх = 30;
Ссылка.Лево = 215;
Ссылка.Ширина = 250;
Ссылка.Высота = 30;
Ссылка.ЦветТекста = ЦветСсылки;
Ссылка.Шрифт = ШрифтСсылки;
Ссылка.Заголовок = "Справка о ЗП";
Ссылка.Картинка = БиблиотекаКартинок.МотивацияПерсонала32
Иначе
Сообщить("Обломись!");
КонецЕсли;

// До кучи выводим фотку пользователя, если она есть, на основную панель рабочего стола,
// туда где указан текущий пользователь
Если ПанельКадров.Найти("ПолеКартинки87") <> неопределено Тогда
ТекПользов = глЗначениеПеременной("глТекущийПользователь");
Фотка = Справочники.Пользователи.НайтиПоНаименованию(ТекПользов).ФизЛицо.ОсновноеИзображение;
Если НЕ Фотка.ИмяФайла = "" Тогда
ПанельКадров.ПолеКартинки87.Картинка = Фотка.Хранилище.Получить();
ПанельКадров.ПолеКартинки87.РазмерКартинки = РазмерКартинки.Пропорционально;
КонецЕсли;
КонецЕсли;
КонецФункции
E_Migachev
03.11.2010 16:50Ответ № 13
(12) нужно так:
Код 1C v 8.х
 Ссылка.УстановитьДействие("Нажатие", обработка)   
E_Migachev
03.11.2010 16:53Ответ № 14
+(12) обработка - как написано в синтаксисе - Процедура должна быть экспортируемой и распологаться в модуле формы!

Попоробуй как ты пробовал в вышеуказанном примере - задать путь к обработке, если не прогкатит придется создавать в конфе свой общий модуль и ссылаться на него *09
bugor666
03.11.2010 17:26Ответ № 15
(13) E_Migachev, уже накопал, только пока не получается... Ладно, после праздников порою...
Но в принципе вопрос можно считать закрытым. Все что нужно узнал, а дальше - дело моей личной криворукости...
Благодарю за ответы!
bugor666
03.11.2010 17:27Ответ № 16
О! Да! Вопрос закрываю!
bugor666
08.11.2010 16:18Ответ № 17
Однако втыкать свой код в конфигурацию не хочу... Что же, отложу идею в долгий ящик...
Если вдруг у кого идея появится, прошу подсказать. Очень зацепило...
E_Migachev
08.11.2010 18:17Ответ № 18
(17) еще варинат, в одной контере я написал обработку - которая в дерево выводит все отчеты и обработки из указанного каталога. Сама обработка постоянно висит справа как Прячущееся и Соединяемое окно, так сказать аля рабочий стол в типовых!
Пользователи когда нужно, открываю ее и запускаю необходимый им отчет, быстро и удобно! вот так оно выглядит:
title

Вообщем, прописав ее при запуске(выше предложенным способом), не нужно менять конфу *13
bugor666
09.11.2010 08:23Ответ № 19
(18) E_Migachev, пожалуй так и придется сделать... мой изначальный вариант конечно круче, но без изменения конфигурации его не добиться... Зато преобрел опыт изменения внешнего вида окон, не меняя конфигурации. *07
Благодарю за ответы!
Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.