|
Запись документа через COM | ☑ | ||
---|---|---|---|---|
0
ДядяМитяй
23.05.22
✎
11:58
|
Понимаю, что тема обсосана много раз, но мне что-то ничего не помогло.
База Альфа-авто. Из самописной конфы надо создать Заявку на ремонт. Фрагментъ кода: НоваяЗаявка = БазаАльфа.Документы.ЗаявкаНаРемонт.СоздатьДокумент(); НоваяЗаявка.ОбменДанными.Загрузка = Истина; НоваяЗаявка.ХозОперация = БазаАльфа.Справочники.ХозОперации.ЗаявкаНаРемонт; НоваяЗаявка.Организация = БазаАльфа.Справочники.Организации.ОсновнаяОрганизация; НоваяЗаявка.Контрагент = БазаАльфа.Справочники.Контрагенты.ОсновнойПокупатель; НоваяЗаявка.Автомобиль = БазаАльфа.Справочники.Автомобили.НайтиПоРеквизиту("VIN", Объект.Машина.Вин); БазаАльфа.Документы.ЗаявкаНаРемонт.АвтомобильПриИзменении(НоваяЗаявка); //НоваяЗаявка.ДатаНачала = Объект.ДатаНач; НоваяЗаявка.Дата = БазаАльфа.ТекущаяДатаСеанса(); Попытка НоваяЗаявка.Записать(БазаАльфа.РежимЗаписиДокумента.Запись); Из внешней обработки в Альфе этот код работает на ура. При Ком-соединении валится на обработчике события ПриЗаписи (по подписке). Причем сообщает, что нельзя передавать с клиента на сервер мутабельное значение (сам созданный объект имеется в виду). Во-первых, там клиент близко не лежал, во-вторых - работает же в самой базе. Думаю, что дело в Ком-объекте, в уровнях вложенности его структуры. Подписка на это события нафик никому не нужна, она в общем модуле ОбменСМобильнымУстройством без галки Внешнее соединение. Как это можно обойти не ломая конфигурацию? В расширении можно было бы заменить процедуру подписки на пустой код, но ругань-то на параметр ее вызова, а его не изменишь.. |
|||
1
ДядяМитяй
23.05.22
✎
12:15
|
На тему как добавить в расширение подписку пишут все, кто знает буквы. А вот как в расширении прибить подписку? Чтобы прописанная процедура не просто не работала, а и не вызывалась?
|
|||
2
yopQua
23.05.22
✎
12:17
|
мутануть сервис?
|
|||
3
ДядяМитяй
23.05.22
✎
12:19
|
(2) чуть подробнее?
|
|||
4
Bigbro
23.05.22
✎
12:21
|
да сделай вместо ком объекта аппликейшен и забей.
|
|||
5
ДядяМитяй
23.05.22
✎
12:23
|
Кто-то удалил сообщение, видимо, сочтя его неполиткорректным... Я спрашивал, можно ли прибить подписку на события в расширении
|
|||
6
ДядяМитяй
23.05.22
✎
12:25
|
(4) Что именно имеется в виду?
У меня там БСПшная красота ОбщегоНазначенияКлиентСервер.УстановитьВнешнееСоединениеСБазой(ПараметрыСоединения); |
|||
7
H A D G E H O G s
23.05.22
✎
12:29
|
(0) Никак
|
|||
8
Bigbro
23.05.22
✎
12:30
|
ну подмени, чтоб БазаАльфа была ОЛЕ объектом и все полетит.
|
|||
9
H A D G E H O G s
23.05.22
✎
12:32
|
(0) Сделай в расширении ОбщийМодуль, серверный, вызов сервера.
В нем - экспортную процедуру, назови ЗаписатьЗаявкуНаРемонт() В нее засунь свой код |
|||
10
H A D G E H O G s
23.05.22
✎
12:32
|
ЗаписатьЗаявкуНаРемонт()->
СоздатьЗаявкуНаРемонт() |
|||
11
H A D G E H O G s
23.05.22
✎
12:33
|
В процедуру передавай свой vin
|
|||
12
ДядяМитяй
23.05.22
✎
12:43
|
(11) О! точно. Спасибо
|
|||
13
Жан Пердежон
23.05.22
✎
13:43
|
(11) (12) а тут уже и до веб-сервиса недалеко
|
|||
14
yopQua
23.05.22
✎
14:02
|
(3) сделать сервис - не ест лицензию, код работает от сервера, что в эти ваши контексты хорошо встанет
|
|||
15
ДядяМитяй
23.05.22
✎
22:50
|
(9) А вот ни фига. Все сделал, правда не процедуру, а функцию (мне надо получать номердату созданного документа). Поставил галки "Сервер", "Внешнее соединение", "Вызов сервера". И опять - в базе работает, с внешним соединением -
{Расширение1 ОбщийМодуль.Расш1_ОбщийМодульОбменС_УТ.Модуль(14)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПриЗаписи': Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ЗаписьЗаявкиНаРемонтПриЗаписи (). |
|||
16
H A D G E H O G s
23.05.22
✎
22:54
|
(15) ВнешнееСоединение зачем галку поставил?
|
|||
17
ДедМорроз
23.05.22
✎
22:55
|
Внешнее соединение работает в режиме толстого клиента обычного приложения,то есть выполняется на клиенте.
На сервер с такого клиента очент сложно уйти,так как из него чисто серверные процедуры не видны. Единственный выход - это фоновое задание и подключение в нем внешней обработки,тогда все выполняется на чистом сервере и все подписки,которые серверные,не требуют передачи с клиента на сервер. Ну или в подписке все процедуры размещать в модулях,у которых галка Внешнее соединение. |
|||
18
H A D G E H O G s
23.05.22
✎
23:04
|
Откуда вы только беретесь
https://prnt.sc/E1h60wgwwxom |
|||
19
H A D G E H O G s
23.05.22
✎
23:05
|
А вот с ненужной галочкой
https://prnt.sc/RKb_4r2lnjcn |
|||
20
H A D G E H O G s
23.05.22
✎
23:07
|
МихаилМ гордился бы. У него появились достойные продолжатели.
|
|||
21
yopQua
24.05.22
✎
08:20
|
>>>Внешнее соединение работает в режиме толстого клиента обычного приложения
херасе заявление >>>На сервер с такого клиента очент сложно уйти,так как из него чисто серверные процедуры не видны еще интересней |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |