Имя: Пароль:
1C
1С v8
Переменные модуля управляемого приложения
0 Mr_Best
 
10.12.18
14:03
Коллеги, доброго дня!
В модуле управляемой формы, создаю переменную (в верхней части), а в нижней присваевою ей значение. Это все с директивой компиляции НаКлиене. Но 1С ругается на нижнюю часть, с ошибкой: "Ожидается определение процедуры/функции".

В обычном приложении так можно было делать, а в управляемом теперь нельзя ? И как тогда инициализировать переменные на клиенте если я не открываю форму, а получаю ее в переменную ?
1 Windyhead
 
10.12.18
14:07
Зачем тогда вообще получать форму?
2 Mr_Best
 
10.12.18
14:10
(0) для программной обработки и последующего открытия на клиенте
3 runoff_runoff
 
10.12.18
14:15
ПриНачалеРаботыСистемы()
4 Mr_Best
 
10.12.18
14:18
Вообщем дело такое: есть com-компонента которая реализует программный интерфейс, есть форма которая содержит необходимый набор процедур и функций для работы с компонентой. Форма выступает своего рода экземпляром класса на клиенте, который хранит текущее состояние взаимодействия с компонентой, занимается конвертацией данных из формата компоненты в формат требуемый для работы в 1с, и вообще, реализует готовой программный интерфейс для работы с компонентов в 1с так, что бы разработчику 1с не нужно было думать о компоненте. Все работает быстро, удобно и т.д. Только вот как выполнить например метод "Инициализировать" при создании формы и без ее открытия ?
5 Mr_Best
 
10.12.18
14:18
не хочется после:
МояФорма = ПолучитьФорму("БлаБлаБла")

еще писать и это:
МояФорма.Инициализировать()
6 Mr_Best
 
10.12.18
14:19
(3) я привязываюсь к конфигурации, а не хочу, это внешняя обработка )))
7 toypaul
 
гуру
10.12.18
14:23
правильно будет не объявлять переменные, а создать функцию по типу как во внешних печатных формах.
8 Mr_Best
 
10.12.18
14:25
(7) функция не может хранить состояния, поэтому нужна переменная.
9 RomanYS
 
10.12.18
14:29
(5) используй реквизиты формы, инициализирую приСозданииНаСервере
10 toypaul
 
гуру
10.12.18
14:32
в erp в типовой обработке КлиентБанк есть переменные и их инициализация
11 Mr_Best
 
10.12.18
14:35
&НаКлиенте
Перем Компонента;

&НаКлиенте
Перем СобытияБезРегистрации;

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
  
  // какой то код
  
КонецПроцедуры

&НаКлиенте
Компонента = Неопределено;  

&НаКлиенте
СобытияБезРегистрации = Новый Массив;
СобытияБезРегистрации.Добавить("Init");
СобытияБезРегистрации.Добавить("Status");
СобытияБезРегистрации.Добавить("Profiles");
12 Mr_Best
 
10.12.18
14:35
раньше можно было вот-так делать, в обычно приложении. Не пойму почему в управляемом 1с отказалась от такого подхода ?
13 Mr_Best
 
10.12.18
14:37
самое интересное,что на сервере работает, а на клиенте болты
14 RomanYS
 
10.12.18
14:37
(11) а где экспортная часть?
15 Mr_Best
 
10.12.18
14:38
(14) вы хотите сказать что нужно слово Экспорт к переменным дописать ?
16 RomanYS
 
10.12.18
14:44
(15) я просто думаю, форма реализующая некий интерфейс должна иметь что-то доступное извне
17 Mr_Best
 
10.12.18
14:46
(16) ну это же пример был, я не стал копировать весь модуль, он большой))))
18 Mr_Best
 
10.12.18
14:47
ладно, забить надо на это, будет метод Инициализировать, платформу же в России делали, чего тут удивлятся
19 Mr_Best
 
10.12.18
14:47
все через жопу
20 toypaul
 
гуру
10.12.18
14:48
&НаКлиенте
Перем Компонента;

вот это не прокатит в УФ.

нельзя создать обработку на клиенте. а модуль доступен только при создании обработки.

на клиенте ты можешь создать только форму.
21 Smile 8D
 
10.12.18
14:48
(18) В форму можно передавать параметры, а затем их разбирать уже в коде формы. Сейчас так делается.
22 Mr_Best
 
10.12.18
14:50
(20) причем тут модуль объекта ? Речь идет про модуль формы, я и создаю модуль формы, в нем и делаю переменные модуля на клиенте. Вопрос в том, как их инициализировать при ПолучитьФорму, не путать с ОткрытьФорму. Вот в чем вопрос
23 Mr_Best
 
10.12.18
14:52
(22) при таком подходя, прийдется разделить прикладную логику, т.е. все для работы с компонентой в модуле формы, а параметры инициализации в другой форме. И все это при том, что в другой форме они вообще не нужны ни разу.
24 toypaul
 
гуру
10.12.18
14:52
тогда тебе в (9) уже ответ написали
25 Mr_Best
 
10.12.18
14:53
(24) ну это понятно, но жаль что только так ...
26 Mr_Best
 
10.12.18
14:54
В 1с какие то буржую сидят, жадный до событий, ни че нету
27 RomanYS
 
10.12.18
15:10
(26) они уже придумали интеграцию внешних обработок через БСП , а также общие модули в расширениях
28 ssh2006
 
10.12.18
15:27
(11) как правильно делать написали.

для справки :

В программном модуле формы (т. е. фрагменте кода, размещенном вне процедур и функций) допустимо использование инструкций препроцессора для явного выделения участков кода инициализации соответствующих переменных.

Приведем пример использования директив компиляции:

&НаСервере
Перем СервернаяПеременная;
&НаКлиенте
Перем КлиентскаяПеременная;
&НаСервере
Процедура Серверная()
    Сообщить(СервернаяПеременная);
КонецПроцедуры
&НаКлиенте
Процедура Команда1Выполнить()
    Сообщить(КлиентскаяПеременная);
    Серверная();
КонецПроцедуры
#Если Сервер Тогда
    СервернаяПеременная = "Сервер";
#КонецЕсли
#Если НаКлиенте Тогда
    КлиентскаяПеременная = "Клиент";
#КонецЕсли

https://its.1c.ru/db/v8313doc#bookmark:dev:TI000000404
29 Mr_Best
 
10.12.18
15:41
(28) Ну вот же оно !!!! Спасибо добрый человек !!! Тема закрыта.
AdBlock убивает бесплатный контент. 1Сергей