Имя: Пароль:
1C
1С v8
Объект с УФ и толстой - модуль может выполняться и на сервере и на тлстм клнте?
0 Живой Ископаемый
 
10.07.15
21:12
1. Может, сейчас расскажу как 0% (0)
2. Не может, нужно выносить в модуль 0% (0)
3. Просто зашел сюда почитать ответы 0% (0)
Всего мнений: 0

Была обработка, у которой была толстая форма. Вся логика была запрограммирована в модуле этой толстой формы.
Сделал форму-диспетчер, с помощью которой можно выбрать режим - толстый или УФ, и УФ, скопировал логику из модуля толстой в модуль УФ, разделил на клиентскую и серверную часть - добился того, чтобы это все работало.

Теперь стоит задачка сделать это по-человечески, ради чего хочу чтобы обе формы в своих модулях имели только то, что касается интерфейса (то есть Контроллер из паттерна MVC), ну а то что касается самой обработки данных - жило бы в модуле объекта (обработки) - и с удивлением обнаружил, что процедуры помещаемые в него, не видимы в тех процедурах модуля УФ, которые объявлены &НаСервере. Даже если я их тоже помечаю как &НаСервере (хотя в таком случае они ведь перестанут быть видимы в модуле Толстой Формы, потому что он целиком выполняется на клиенте - верно?)


Я не закапывался глубоко в книжечки, может и есть какой-то способ, может я его и найду,  но вдруг кто подскажет быстрее - я был бы благодарен
1 ДенисЧ
 
10.07.15
21:15
Поток сознания...

&НаСервере
Процедура ПозватьМодульОбъекта()
об = РеквизитФормыВЗНачение("Объект");
об.МояНавороченнаяПроцедура();
КОнецПроцедуры
2 Casey1984
 
10.07.15
21:16
(0) А я думал при чем тут Лев Николаевич?
3 Живой Ископаемый
 
10.07.15
21:18
2(1) а... блин, точно...
сенкс
4 Живой Ископаемый
 
10.07.15
21:19
Попробую в понедельник
Я попытался так

&НаСервере

Процедура ПозватьМодульОбъекта()
МояНавороченнаяПроцедураОбъекта();

и мне было сказано, что процедура не определена...


Спасибо еще раз
5 H A D G E H O G s
 
10.07.15
21:50
Странно видеть такие темы от ТС
6 H A D G E H O G s
 
10.07.15
21:51
Но я думаю, ткэема будет продолжена, хех.
7 Лефмихалыч
 
10.07.15
22:00
(4) так не работает. Потому, что в модуле формы &НаСервере основной реквизит формы имеет тип ДанныеФормыСтруктура, а у него ни каких твоих навороченных методов нет.
Только так (1) и ни как иначе
8 Живой Ископаемый
 
10.07.15
22:05
2(7) да уже понял... просто это был единственный эксперимент, потом я успел удивиться и меня чем-то отвлекли, а вечером эта тема с удивлением меня догнала. вы объяснили, и я вспомнил что уже сталкивался с этим и вроде должен знать. :)
9 Лефмихалыч
 
10.07.15
22:07
(7) кстати, это еще один повод для Ненавижу1С - в конфигуратор показывает, что тип основного реквизита "ОбработкаОбъект", хотя на самом деле это совсем вообще не так
10 hhhh
 
10.07.15
22:34
(4) диспетчер делать не надо оно там само диспетчируется. Назначаешь одну из форм основной, другую дополнительной. И в зависимости от запуска автоматом запускается та форма, которая подходит.
11 ДенисЧ
 
10.07.15
22:34
(10) не мешай извращаться человеку...
12 Живой Ископаемый
 
11.07.15
17:13
2(10) я не хочу в заивисимости от запуска программы. Запуск идет только в толстом клиенте.
Все сложно, нельзя ломать пользователей, надо дать им привыкнуть и имитировать их собственный выбор в пользу УФ. Потому что в них выполняется быстрее и богаче возможности.
13 hhhh
 
11.07.15
21:42
(12) там не клиент. .два варианта: обычное и управляемое приложение.
14 Живой Ископаемый
 
13.07.15
10:44
Понял... У нас одна галка стоит,а другая нет... И юзеры не будут управляемое запускать все равно
15 Живой Ископаемый
 
13.07.15
15:10
Блин, еще один момент - оказывается нужно было процедуру модуля объекта объявить со словом Экспорт...
ктобы мог подумать. :)