|
Подписка на события и Серверный вариант | ☑ | ||
---|---|---|---|---|
0
Rustik666
13.12.11
✎
14:40
|
В общем чтоб не лезть в модуль проведения - сделал подписку на событие ОбработкаПроведения конкретного документа и там дописываю нужные движения.....
В файловом варианте все замечательно работает... а в серверном ругается на мутабельное значение.....наверно из-за того, что там в подписку передается объект а не ссылка..... как быть?.....можно как-нибудь решить это или все-таки в моделе прийдется все дописывать.... |
|||
1
ДенисЧ
13.12.11
✎
14:41
|
На модуле поставь галку серверный, остальные сними. &НаСервере не ставь
|
|||
2
H A D G E H O G s
13.12.11
✎
14:43
|
(1) Кхм.
|
|||
3
ДенисЧ
13.12.11
✎
14:43
|
(2) сам на той неделе с этим сношался...
|
|||
4
H A D G E H O G s
13.12.11
✎
14:44
|
В Толстом Клиенте объект документа на Клиенте же. Так и ОМ должен быть клиентским.
|
|||
5
ДенисЧ
13.12.11
✎
14:45
|
(4)
процедура должна быть расположена в общем модуле; процедура должна быть объявлена с ключевым словом Экспорт; у общего модуля, в котором расположена процедура, должны быть заданы следующие свойства: флаг Глобальный - сброшен; флаг Сервер - установлен; остальные флажки Клиент (управляемое приложение), Клиент (обычное приложение), Внешнее соединение - не влияют на подписку (наличие нужного модуля в нужном соединении/клиенте системой не проверяется!); (с) |
|||
6
H A D G E H O G s
13.12.11
✎
14:53
|
(5) Толстый Обычный?
|
|||
7
H A D G E H O G s
13.12.11
✎
14:54
|
Клиент (обычное приложение) надо еще поставить флажок.
|
|||
8
H A D G E H O G s
13.12.11
✎
14:54
|
Иначе вы не праввы, Денисч.
Включите логику! |
|||
9
H A D G E H O G s
13.12.11
✎
14:55
|
Денисч-> ДенисЧ. Извиняюсь.
|
|||
10
ДенисЧ
13.12.11
✎
14:56
|
Не хочу я ничего включать :-)
Просто описываю свой опыт... |
|||
11
acsent
13.12.11
✎
14:58
|
(10) ты не прав. Дожны быть: Сервер, Тольстый клиент
|
|||
12
GROOVY
13.12.11
✎
14:58
|
Подписки на события инициируются сервером. Всегда. Откель там клиентский контекст?!
|
|||
13
H A D G E H O G s
13.12.11
✎
14:59
|
Аутор, делай как (5) + (7) и будет щастье.
Делай лучше в отдельном модуле, чтобы не похерить существующие тонкие душевные нити конфы. Никаких инструкций препроцессору писать не надо. |
|||
14
H A D G E H O G s
13.12.11
✎
15:00
|
(12) Объект документа лежит на Клиенте, в ТолстомОбычном.
Вот его 1С и пытается засунуть в параметр Источник, в процедуру, на Сервер и сама обливается яйцами, когда наступает на свои грабли. |
|||
15
H A D G E H O G s
13.12.11
✎
15:05
|
**GROOVY полез в реестр прописывать ключ -debug в службу сервера 1С
|
|||
16
GROOVY
13.12.11
✎
15:08
|
(15) Только что проверил во всех режимах запуска. Для корректной работы подписки на событие достаточно у общего модуля галки "Сервер". Вызов производится после отрабатывания самого события (ОбработкаПроведния). ЧЯНД?
|
|||
17
GROOVY
13.12.11
✎
15:11
|
(11) Галки "Толстый клиент" там нет вообще. Есть "Клиент (обычное приложение)"
|
|||
18
H A D G E H O G s
13.12.11
✎
15:13
|
||||
19
ЧеловекДуши
13.12.11
✎
15:13
|
А куда пропал автор :(
ДенисЧ - прав, я за одну галочку на каждый модуль :) |
|||
20
acsent
13.12.11
✎
15:16
|
(16) Ты не проверил в толстый клиент, серверный вариант
|
|||
21
acsent
13.12.11
✎
15:17
|
Я лично писал что в УТ 11 на таких модулях не стоят галки ТолстыйКлиент. Н
Они ответили: есть сэр, ошибка признана |
|||
22
GROOVY
13.12.11
✎
15:19
|
Сорри, сервера под рукой нет. Проверить не могу.
(18) Нафига у модуля "Вызов сервера" стоит? Это тоже фишка? |
|||
23
GROOVY
13.12.11
✎
15:20
|
И что за галка "Толстый клиент"?
|
|||
24
H A D G E H O G s
13.12.11
✎
15:20
|
(22) По привычке поставил. Нет, надо убрать.
|
|||
25
acsent
13.12.11
✎
15:20
|
(23) Клиент "обычное приложение"
|
|||
26
GROOVY
13.12.11
✎
15:21
|
Блин, счаз буду сервер поднимать :)
|
|||
27
acsent
13.12.11
✎
15:21
|
Но! Чтоб поставить эту галку для ут 11 нужно включить в параметрах редактирование толстого клиента
|
|||
28
H A D G E H O G s
13.12.11
✎
15:21
|
(23) Клиент (обычное приложение) - он имел ввиду.
|
|||
29
GROOVY
13.12.11
✎
15:27
|
(27) Это понятно... Счаз скуль поставится, пошаманю...
|
|||
30
acsent
13.12.11
✎
15:28
|
(29) Не веришь чтоли? В (14) же понятно объяснено причина ошибки
|
|||
31
GROOVY
13.12.11
✎
15:32
|
(30) Всегда проверяю. Я понимаю что при открытии формы копия объекта читается. Не вся, движения, например не читаются. Но это форма! А событие проведение может быть инициировано и без формы, следовательно копия объекта как то без клиентов должна быть доступна.
|
|||
32
acsent
13.12.11
✎
15:33
|
(31) Уж от тебя такого не ожидал (((
|
|||
33
acsent
13.12.11
✎
15:34
|
1С никаких копий объекта не создает
|
|||
34
GROOVY
13.12.11
✎
15:35
|
(33) Ну здрасьте. В базе есть запись. При открытии формы мы получаем в понятие "Объект" копию этой записи и с ней работаем.
|
|||
35
GROOVY
13.12.11
✎
15:36
|
НаборЗаписей на встроенном языке это тоже копия данных регистра "В переменной". Мы же не напрямую с базой работаем, а иначе как быть с транзакциями...
|
|||
36
H A D G E H O G s
13.12.11
✎
15:38
|
(32) Он хотел сказать "объект в памяти".
|
|||
37
СвинТуз
13.12.11
✎
15:42
|
(12)
Я извиняюсь ... Вы профессионала по платформе сдавали? а то людей учите на спеца ... разные мысли лезут может я и ошибаюсь, но там было два вопроса в тему ... один про "глобальность" другой про флажки ну ладно не важно ... |
|||
38
СвинТуз
13.12.11
✎
15:44
|
еще "13 ошибок" вспоминется знаменитые
в документации вроде явно прописано но человек видимо слаб и делает ошибки надо предупредить |
|||
39
СвинТуз
13.12.11
✎
15:45
|
хотя все это бурчание ))))
удалюсь |
|||
40
СвинТуз
13.12.11
✎
15:48
|
(14)
там лежит не объект вроде ну не важно |
|||
41
GROOVY
13.12.11
✎
15:49
|
(37) Сдавал. Давно. Про "галочки" знаю все. Но топик не про галочки, а про то от куда вызывается подписка.
|
|||
42
СвинТуз
13.12.11
✎
15:51
|
вроде с клиента
но я нуб (14) вроде как прав в 13 ошибках у Фарида все есть само выглядит как передергивание проблемы но показано вроде все четко и причины и т.д. |
|||
43
СвинТуз
13.12.11
✎
15:53
|
проблема вроде возникает именно в толстом клиенте
но я могу и ошибится я не методист ))) |
|||
44
acsent
13.12.11
✎
15:53
|
(34) Объект - это не "копия записи". Помоему ты слишком долго учишь 1Су
|
|||
45
GROOVY
13.12.11
✎
15:54
|
(44) А = Ссылка.ПолучитьОбъект();
Что есть А? |
|||
46
СвинТуз
13.12.11
✎
15:55
|
я подробностей не помню
но вроде как в толстом весь код на клиенте идет а вот подписки на сервере и когда Вы пхаете туда "объект" ... |
|||
47
GROOVY
13.12.11
✎
15:55
|
+45 Не копия записи, а копия объекта. Экземпляр объекта.
|
|||
48
acsent
13.12.11
✎
15:55
|
Объект - это классический объект из любого языка программирования, инициализированный данными из базы
|
|||
49
СвинТуз
13.12.11
✎
15:56
|
да ладно
все все знают просто друг друга не поняли |
|||
50
H A D G E H O G s
13.12.11
✎
15:57
|
(49) Кто здесь??!
|
|||
51
GROOVY
13.12.11
✎
16:57
|
Резюмирую:
В старом жирном клиенте подписка на событие инициализируется вместе с инициализацией объекта. Там же объект является контекстом формы и при открытии формы вся инициализация производится по факту на клиенте. Без галок "Толстый клиент (обычное приложение)" и "Вызов сервера" подписка не инициализируется (что понятно). Вывод: Поведение самой системы понятно. Не понятна логика разработчиков. От форм зависят серверные (совсем не интерактивные) механизмы. Пичалька. Уже вторая пичалька на эту тему. Вывод 2: Что бы подписка выполнялась на сервере гарантированно, придется описывать разделение логики допроведения двумя общими модулями и проверками исполнения контекста Если ТолстыйКлиент Тогда и тп. Хотя над последним я еще медитирую... Как можно так криво и не универсально сделать клиент-серверную логику?! |
|||
52
H A D G E H O G s
13.12.11
✎
17:29
|
<<В старом жирном клиенте подписка на событие инициализируется вместе с инициализацией объекта.
Там же объект является контекстом формы и при открытии формы вся инициализация производится по факту на клиенте.>> бррр, какая глупость. Павел, вы похоже правда слишком долго дружите только с 1С -ом. У вас и мысли стали такие же, 1С-овские. |
|||
53
H A D G E H O G s
13.12.11
✎
17:30
|
Вывод 2: Что бы подписка выполнялась на сервере гарантированно, придется описывать разделение логики допроведения двумя общими модулями и проверками исполнения контекста Если ТолстыйКлиент Тогда и тп. Хотя над последним я еще медитирую...
Да, это так. |
|||
54
H A D G E H O G s
13.12.11
✎
17:30
|
Логика разработчиков как раз очень очень понятна.
|
|||
55
GROOVY
13.12.11
✎
17:48
|
(52) Да серьезно, инициализация объекта приводит к инициализации подписки на событие. И без возможности вызова общего клиентского модуля все падает. Повторюсь ___При открытии формы___. Точно клиентский контекст.
|
|||
56
H A D G E H O G s
13.12.11
✎
17:49
|
(55) Галочку "вызов сервера" поставь.
|
|||
57
GROOVY
13.12.11
✎
17:49
|
А дружу долго... Да... Ну уж у кого какая судьба.
|
|||
58
GROOVY
13.12.11
✎
17:50
|
(56) Стоит галочка... Означает она вызов сервера из контекста клиента.
|
|||
59
H A D G E H O G s
13.12.11
✎
17:54
|
(58) Когда галочка стоит - в ПриОткрытии - ничего не падает.
Ну да ладно, не в этом соль. Соль в том, что НЕ "От форм зависят серверные (совсем не интерактивные) механизмы" Формы здесь не причем, объект документа вообще без форм можно провести. Просто объект создается на Клиенте. |
|||
60
GROOVY
13.12.11
✎
17:56
|
(59) эй! Я могу провести документ на сервере. Например при восстановлении последовательности, регламентным заданием и пр. Причем здесь клиент?! Обработкой в конце концов. И тогда передача параметров и вызов подписки на события будут совсем другие. Я об этом.
|
|||
61
Rustik666
14.12.11
✎
06:29
|
Всем спасибо....получилось.....
Какие галки стояли: ВызовСервера Привелигерованный Сервер Какие поставил ВызовСервера Клиент(обычное приложение) Сервер и заработало!... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |