Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Переменные модуля управляемого приложения

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

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

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

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

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

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

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

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

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

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

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

для справки :

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

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

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

    СервернаяПеременная = "Сервер";
#КонецЕсли

#Если НаКлиенте Тогда

    КлиентскаяПеременная = "Клиент";
#КонецЕсли

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует