Имя: Пароль:
1C
1С v8
Обычная форма в Управляемом приложении
0 Force1984
 
10.03.16
09:53
Добрый день, знатоки.
Столкнулся с проблемой, не могу сам разобраться и поиск не помог.
Есть обработка написанная под 8.1, которую хотелось бы заставить работать под 8.3 в режиме УправляемоеПриложение. Для этого обработку включил в конфигурацию и само предприятие запускаю в ТолстомКлиенте, но при компиляции ошибка, в модуле объекта не виден общий модуль УчетнаяПолитика, а у него действительно галочка Клиент не стоит. Если модуль формы и модель объекта обернуть в #Если Сервер или ТолстыйКлиентУправляемоеПриложение, то тогда при запуске обработка кнопки формы становятся СЕРЫМИ, то есть недоступными.
Подскажите может кто сталкивался с такой проблемой как решали? Переносить содержимое общего модуля в обработку как то некрасиво.
1 Cyberhawk
 
10.03.16
09:59
Поставь режим редактирования конфигурации "ОП и УП", а у общего модуля галку "Клиент (обычное приложение)"
2 Force1984
 
10.03.16
10:07
Спасибо за ответ -  Cyberhawk
Режим редактирование "ОП и УП" стоит. А вот насчет галки "Клиент (обычное приложение)" я ее конечно поставлю, если для модуля включу возможность изменения, но при обновлении она же будет сниматься.
3 xxTANATORxx
 
10.03.16
10:35
(0)тебе как-то нужно вызвать процедуру/функцию из модуля УчетнаяПолитика с сервера, думай как из толстой формы передать управление на сервер
4 Cyberhawk
 
10.03.16
10:40
(2) Ну тогда добавь свой модуль только с галкой "Сервер", а из него уже зови УчетнуюПолитику.
Твой новый модуль зови из своей обычной формы...
5 Force1984
 
10.03.16
10:47
Так делать пробовал. Например, у меня модуле объекта обработки есть процедура СоздатьДокумент, если я перед ней пишу &НаСервере, то на общий модуль компилятор уже не ругается, но в модуле формы я не могу вызвать эту процедуру СоздатьДокумент, компилятор ее не видит, потому что она существует только на сервере.
6 patria0muerte
 
10.03.16
10:50
(5) Ну так а если определить в модуле формы так:
&НаКлиенте
Процедура СоздатьДокумент
СоздатьДокументНаСервере();
КонецПроцедуры

&НаСервере
Процедура СоздатьДокументНаСервере()
//Тут дергаешь свои серверные методы
КОнецПроцедуры

Не взлетит?
7 hhhh
 
10.03.16
10:51
(5) ну тогда общий модуль Клиент (обычное приложение), из него вызываешь общий модуль Вызов сервера, а потом уже Сервер
8 patria0muerte
 
10.03.16
10:52
Или обычная форма все эти &НаКлиенте не умеет? чет я не помню..
9 hhhh
 
10.03.16
10:52
(8) обычные формы все на клиенте находятся. Не воспринимают они слово &НаСервере
10 hhhh
 
10.03.16
10:54
(5) но вообще тупо перепиши свою обработку под управляемые формы и не парься. Или она тебе дорога, как увесистый кусок дерьма?
11 Force1984
 
10.03.16
11:03
patria0muerte

&НаКлиенте
Процедура СоздатьДокумент
СоздатьДокументНаСервере();
КонецПроцедуры


&НаСервере
Процедура СоздатьДокументНаСервере()
//Тут дергаешь свои серверные методы

КОнецПроцедуры


Я боюсь что процедура СоздатьДокумент не увидит процедуры СоздатьДокументНаСервере так как одна из них на клиенте, а вторая на сервере
12 Force1984
 
10.03.16
11:05
ну тогда общий модуль Клиент (обычное приложение), из него вызываешь общий модуль Вызов сервера, а потом уже Сервер.

hhhh - поясни эту фразу подробнее, надо какие то свои общие модули делать?
13 Force1984
 
14.03.16
06:58
Сделал для себя выводы, может кому будет полезно.
Вот этот код ниже работает в Управляемой форме и не работает в обычной. Решено переделать обработку на Управляемую форму.


&НаКлиенте
Процедура СоздатьДокумент
СоздатьДокументНаСервере();
КонецПроцедуры


&НаСервере
Процедура СоздатьДокументНаСервере()
//Тут дергаешь свои серверные методы

КОнецПроцедуры