Имя: Пароль:
1C
1С v8
Как обратиться к экспортной процедуре модуля формы обработки?
,
0 DenYuliya
 
26.10.16
17:20
Подскажите, плиз, как обратиться к экспортной процедуре модуля формы одной обработки из модуля формы другой обработки? Платформа 8.2, не УФ.
1 Naf_kultura
 
26.10.16
17:24
через ЭКЗЕМПЛЯР формы другой обработки
2 osa1C
 
26.10.16
17:25
(0) Если форма обработки не создается, то и никакой процедуры модуля формы не существует.
3 Naf_kultura
 
26.10.16
17:25
(2) метафизика
4 DenYuliya
 
26.10.16
17:25
(1) это как? Первый раз такое слышу, если честно.
5 DenYuliya
 
26.10.16
17:26
(2) т.е. если обработка2 не запущена, то никак?
6 Lexey_
 
26.10.16
17:27
(5) что значит "запущена"?
7 Naf_kultura
 
26.10.16
17:28
(4) это чуть-чуть из ООП
на самом деле процедуры модуля формы - это методы экземпляров формы
8 DenYuliya
 
26.10.16
17:28
(6)вызвана, используется в режиме 1С Предприятие
9 DenYuliya
 
26.10.16
17:31
(7) понятно, что ничего не понятно. Какой метод погуглить))?

А = Обработки.Обработка2.ПолучитьФорму.Форма.НазваниеЭкспортнойПроцедуры()- так не работает, зараза.
10 Lexey_
 
26.10.16
17:31
(8) не знаю, что значит "вызвана", но добавлю к (1), что через точку
11 Lexey_
 
26.10.16
17:32
(9) нет такого свойства "ПолучитьФорму"
12 singlych
 
26.10.16
17:32
(9) погугли как получить форму
13 DenYuliya
 
26.10.16
17:34
(12) ОбработкаПодбора = Обработки.ПодборНоменклатуры.ПолучитьФорму("ОсновнаяФорма");

Так.
14 osa1C
 
26.10.16
17:34
(9) Не понятен смысл зачем вызывать из одной обработки процедуру другой, да еще из модуля формы? ... А как насчет того чтобы нужную процедуру скопировать в нужную обработку?
15 singlych
 
26.10.16
17:37
(13) теперь вызывай свою процедуру
16 osa1C
 
26.10.16
17:38
(9) +  В том что написано - ошибка хотя бы в том, что идет обращение к процедуре, как к функции
17 Пузан
 
26.10.16
17:40
(9) Пойдите и пять лет поучитесь на программиста - все сразу станет понятно. :)
18 aleks_default
 
26.10.16
17:41
(17) а где учат "на программиста"?
19 DenYuliya
 
26.10.16
17:51
(14) нужная процедура ссылается к куче других процедур обработки2
20 DenYuliya
 
26.10.16
17:53
(16) т.е не
ОбработкаПодбора = Обработки.ПодборНоменклатуры.ПолучитьФорму("ОсновнаяФорма");
а
Обработки.ПодборНоменклатуры.ПолучитьФорму("ОсновнаяФорма");
21 newbling
 
26.10.16
17:55
экспортные обработки формы...вообще казуистика
22 osa1C
 
26.10.16
17:55
(20) вы отличаете (9) от (13) ? Я только про то что в (9) говорил.
23 newbling
 
26.10.16
17:56
Мб там в модуле объекта асть что вызвать?
24 DenYuliya
 
26.10.16
17:57
(22) я в (9) имела в виду то же, что и в (13), только написала криво.
(13) - верно?
25 DenYuliya
 
26.10.16
17:58
(23) ну вызвать-то много чего можно, но нужное в модуле формы генерируется.
26 newbling
 
26.10.16
17:58
Попробуй ПолучитьФорму
27 newbling
 
26.10.16
18:00
ФормаГдеЧтоТоНужное = ПолучитьФорму("Обработки.НужнаяОбработка.НужнаяФорма");
ФормаГдеЧтоТоНужное.НужныйМетод();

Хз. мб взлетит
28 osa1C
 
26.10.16
18:01
(24) вы можете в конце концов объяснить что вы хотите добиться? В модуле формы объекта обычно располагаются процедуры относящиеся к форме объекта. Что вы хотите делать с формой одной обработки из другой?
29 DenYuliya
 
26.10.16
18:07
(28) я в (13) через ПолучитьФорму(), вот так:
Обработки.ПодборНоменклатуры.ПолучитьФорму("ОсновнаяФорма").СправочникНоменклатураПриПолученииДанныхКатегории(Элемент, ОформленияСтрок);

Ругается на переменные "Элемент, ОформленияСтрок" не найдены.
"Элемент" в обработке "ПодборНоменклатуры" имеет тип "ТабличноеПоле"
30 Пузан
 
26.10.16
18:12
(18) Ты не поверишь - в университете.
31 DenYuliya
 
26.10.16
18:15
(28) В Обработке2 есть часть процедур, раскрашивающих список номенклатуры в цвета по определенному принципу. Хочу перетащить этот принцип в Обработку1.
И в Обработке1, и в Обработке2 - работа со спр. Номенклатура
32 singlych
 
26.10.16
18:19
(29) так не взлетит, прислушайся к (14)
33 Михаил Козлов
 
26.10.16
18:19
(31) Т.е. процедура формы обработки2 будет раскрашивать элемент формы обработки1?
34 DenYuliya
 
26.10.16
18:20
(33) да.
Там работа со всеми элементами спр.Номенклатура. Что в Обработка1, что в Обработка2. Одни и те же.
35 DenYuliya
 
26.10.16
18:21
(32) изначально так и хотела))). потом подумала, что может можно как-то упростить и не заниматься копи-пастом
36 osa1C
 
26.10.16
18:32
(32) Разочарую вас. Если вы хотите раскрасить строки в табличной части обработки, то существуют два события табличной части в которых это можно сделать. Это ПриПолученииДанных и ПриВыбореСтроки... Даже если вы опишите (и правильно) эти процедуры, то ничего работать не будет, так как они должны быть привязаны к табличной части. Надо их выбрать в Событиях табличной части. Тем более глупой звучит идея вызова процедур из других объектов. Эти процедуры работают с формами тех (других) объектов. Так что создавайте указанные выше процедуры для табличной части, а логику их делайте на основании второй обработки, раз та логика вас устраивает
37 osa1C
 
26.10.16
18:33
(36) --- это к (34)
38 Lexey_
 
26.10.16
18:33
(35) ну если очень надо, вызывай ее в соответствующем событии, все будет работать
39 osa1C
 
26.10.16
18:34
(36) опечатка... событие ПриВыводеСтроки вместо при ПриВыборе...
40 DenYuliya
 
26.10.16
18:38
(39) строки должны раскрашиваться все, а не выбранная. В Обработке2 инициализация абсолютно точно в "ПередОткрытием" происходит
41 DenYuliya
 
26.10.16
18:40
(36) оке, спасибо за совет, значит придется копипастить
42 osa1C
 
26.10.16
18:42
(40) Я же написал, что это опечатка... событие ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки). Это вывод строки на экран, а вывод идет построчно. Вот при выводе строку по каким-то условиям можно раскрасить. Или задать другое условное оформление через параметр ОформлениеСтроки
43 singlych
 
26.10.16
18:45
(38) в данном случае будет работать неправильно, тк оформление зависит от значений переменных и реквизитов второй обработки
44 shpioleg
 
26.10.16
18:47
(35) Это все на скорую руку делаешь. У тебя есть некая общая для форм сущность Раскраска (Класс). Ее нужно выделить отдельно (Общий модуль или обработка). В Раскраске выделить экспортный метод и только с ним работать из твоих форм.

Например, завтра разработчик Формы2 поменяет алгоритмы или названия методов и твоя обработка "заглохнет".
45 DenYuliya
 
27.10.16
10:09
(44) так-то да, по-хорошему надо сам принцип вынести в общий модуль.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс