Имя: Пароль:
1C
1С v8
Программно создать команду на У-форме (вызов процедуры из общего модуля)
0 live in sky dreams
 
04.06.17
19:36
Возможен ли сабж?
Программно добавить команду в форму, программно добавить кнопку на форму и привязать к ней команду - все получилось. Не получается вызвать этой командой процедуру общего модуля.
1 Волшебник
 
модератор
04.06.17
19:38
У-формы — интересный мем.
2 live in sky dreams
 
04.06.17
19:40
:) О как... это мем оказывается :)
3 Неверный Параметр И
 
04.06.17
19:41
(0) Нет. Про это даже в СП написано. Да-да, в описанит реквизитов команды.
4 live in sky dreams
 
04.06.17
19:43
Довольно хреново.. Придется дописывать в модуль формы свои команды... :(
5 vde69
 
04.06.17
19:44
(4) можешь через расширение добавить
6 Неверный Параметр И
 
04.06.17
19:45
(4) Дык со времён О-форм нельзя. Вы вообще описание системы там, справку читаете?
7 live in sky dreams
 
04.06.17
19:49
(5) это да, но в расширение потянется вся шелуха с формы и потом если форма как-то поменяется, придется все руками тащить и заново весь этот ад...
Как-нибудь вообще можно доработать бухию, чтобы потом это все в ночной кошмар при обновлении не превращалось?
Мне всего то нужно добавить пару кнопок и их обработчиков. Программно. Имея в общем модуле контекст формы, добавить программно реквизит и команду получилось, но задачи это не решило. Как еще можно вывернуться, чтобы не править форму на поддержке?

(6)Чукча не читатель, чукча писатель)))
Справку читаю на уровне СП. Все больше форумы и статьи.
Решил попробовать этот вариант, авось получится.
8 vde69
 
04.06.17
19:50
9 Неверный Параметр И
 
04.06.17
19:55
(7) Если "пару кнопок" - то дополнительный отчёт/обработку.
10 vde69
 
04.06.17
19:59
кстати сабж можно добавить через внешнюю обработку
11 live in sky dreams
 
04.06.17
20:01
(8)спасибо, изучу
(9)я добавляю кнопку ввода на основании документа А -
документа Б. Оба документа присутствуют в типовой, но ввод документа Б на основании документа А не предусмотрен. Это личное пожелание бухии сократить время на операторский ввод. Как внешняя обработка поможет модифицировать форму и дополнить ее функционалом?
12 live in sky dreams
 
04.06.17
20:04
(8)изучил. "Крыжиния" при обновлении это решение не снимает. Все равно код должен быть на контроле.
13 live in sky dreams
 
04.06.17
20:06
Я по расширениям понять не могу однозначно. Вроде как есть расширения модулей форм. Но нет однозначного пояснения, вот чтобы без сомнений было ясно - а можно ли создать расширение только на модуль форму не затаскивая в расширение конфигурации и саму форму и реквизиты и все на что ссылается все что ты тащишь?
14 Неверный Параметр И
 
04.06.17
20:11
(11) БСПшный механизм - дополнительная обработка заполнения объекта. Подробности, как всегда, на ИТС (:
15 live in sky dreams
 
04.06.17
20:22
Нашел в тырнетах некое "СозданиеСвязанныхОбъектов"
На ИТС чот не найду инфы, только на инфостарте что-то есть
16 RomaH
 
naïve
05.06.17
06:53
(0)(3) я чего-то не понимаю?
подсистема печати в старой бсп 1 версии - там вроде все вызывается
17 RomaH
 
naïve
05.06.17
06:54
// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
    
    Если ЗапретРедактированияРеквизитовОбъектовКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтаФорма) Тогда
        ЗапретРедактированияРеквизитовОбъектовКлиент.УстановитьДоступностьЭлементовФормы(ЭтаФорма);//это ведь именно вызов процедуры общего модуля
    КонецЕсли;
    
КонецПроцедуры
// Конец СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
18 live in sky dreams
 
05.06.17
08:24
(17)Да, это он, но немного не так вызывается, как хотелось бы мне. Из какого-либо модуля вызвать экспортный метод другого модуля получается без проблем.
Не получается вызвать подобие

НоваяКоманда = НекаяФорма.Команды.Добавить("ИмяКоманды1");
НоваяКоманда.ИмяКоманды = "ИмяОбщегоМодуля.ИмяЭкспортнгоМетодаОбщегоМодуля";
НоваяКоманда.Заголовок = "блаблабла";

В данном случае "ИмяОбщегоМодуля.ИмяЭкспортнгоМетодаОбщегоМодуля" не вызывается. Просто молча без ошибок не отрабатывает.
Таким образом получается вызвать только методы формы &НаКлиенте. То есть модуль формы один хрен править как ни крути, чего я хотел всячески избежать
19 Maniac
 
05.06.17
08:36
Ну так создай процедуру - ее в команду. в ней вызов обработки серверной
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.