|
Переменные модуля управляемого приложения | ☑ | ||
---|---|---|---|---|
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) Ну вот же оно !!!! Спасибо добрый человек !!! Тема закрыта.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |