Ошибка передачи данных между клиентом и сервером #608468


#0 by ChAlex
Никак не пойму в чем причина. 1С запускается в режиме толстого клиента, открывается управляемая форма документа, в модуле документа в событии "ПередЗаписью" вызывается функция общего модуля ОбщиеПроцедурыОбъектов.ПередЗаписьюДокумента(Ссылка), модуль компилируется только на сервере, флаг "Вызов сервера" установлен. Выдается ошибка: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: НачалоСвойства: linkByType    Форма: Элемент    Тип: { по причине: Ошибка преобразования данных XDTO: КонецСвойства: linkByType    Форма: Элемент    Тип: { Но! Тут сразу непонятки. Во-первых: процедура "ПередЗаписью" в управляемой форме вызывается на сервере (для полного счастья даже перед процедурой поставил директиву компиляции #Если Сервер тогда), вызываемая функция тоже скомпилирована на сервере - причем здесь тогда передача параметров с клиента?! Во-вторых: даже если предположить, что перед записью выполняется на клиенте, то Ссылка разрешена как на клиенте, так и на сервере (из Хелпа: Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Возможен обмен с сервером. Сериализуется. ) В чем трабл?
#1 by Лоботряс
Как причем передача параметров с клиента? Форма это всегда клиент, а параметры на ней указываются.
#2 by Лоботряс
В данных косяк
#3 by H A D G E H O G s
ПередЗаписью вызывается все же с клиента
#4 by H A D G E H O G s
ПередЗаписьюНаСервере - вот на сервере
#5 by ChAlex
В каких данных? Из данных в функцию попытка передать ссылку документа - и все.
#6 by H A D G E H O G s
В переменной Ссылка хранится хрень
#7 by H A D G E H O G s
Объект.Ссылка надо
#8 by ChAlex
- не стану спорить, только точка останова срабатывает на сервере, а не на клиенте! И Функция прописана в МОДУЛЕ ДОКУМЕНТА, а не в МОДУЛЕ ФОРМЫ
#9 by H A D G E H O G s
Код полностью показывать надо. Телепатов нету
#10 by H A D G E H O G s
Пардон, неправильно посмотрел
#11 by ChAlex
- А хоть как хочешь, одно и тоже. Кроме того в Ссылка - именно ссылка сохраняемого документа
#12 by H A D G E H O G s
В ОМ, в процедуре ОбщиеПроцедурыОбъектов.ПередЗаписьюДокумента; сразу 1 строчкой пропиши Возврат, чтобы она не делала ничего
#13 by ChAlex
Ну вот полностью код: #Если Сервер Тогда Процедура ПередЗаписью(Отказ,РежимЗаписи,РежимПроведения) Для тестирования урезал всякую логику
#14 by H A D G E H O G s
И ппоробуй
#15 by ChAlex
- результат тот же
#16 by H A D G E H O G s
А то у тебя в ОМ, в этой процедуре ПередЗаписью, параметр Ссылка может переписаться на непотребное, и вернуться измененным в модуль объекта и 1С удивиться.
#17 by H A D G E H O G s
Давай rdp/team даже интересно стало
#18 by H A D G E H O G s
e-mail:    Liveups@yandex.ru   ICQ:    374-881-272
#19 by le_
Почему бы не сделать по-человечески - обработчик ПередЗаписью формы - на клиенте, из него вызов серверной процедуры?
#20 by ChAlex
- ну хотя бы потому, что нужно иногда что-то делать и когда клиент из списка например отменил проведение документа, не открывая формы.
#21 by ChAlex
Все несколько стало проясняться. Закоментировал остальные процедуры модуля - стало работать. Получается ошибка не в конкретноой вызываемой процедуре, а хрен знает где!
#22 by le_
Для этого есть модуль документа и там свой обработчик.
#23 by ChAlex
- ну так вы бы внимательнее читали. А о чем по-вашему здесь идет речь?
#24 by Nesh
ну а если новый объект? какая тогда ссылка в передзаписью?
#25 by ChAlex
-  вообще-то изначально стояла не ссылка а объект, это уже для поиска причины заменил и пробовал на уже существующем документе.Ну а вообщем как оказывается проблема совсем в другой функции, которая даже не вызывается в данном случае, а просто присутствует в общем модуле, но сообщение об ошибке и именно такое как указано раньше выдается в момент вызова работающей функции.
#26 by le_
Меня вот это смутило:
#27 by ChAlex
То бишь в модуле есть с 10 функци, я вызываю одну  - я ее даже вообще урезал к виду и получаю ошибку. А оказывается вообще-то алгоритм должен выполняться. Комментирую все остальные функции - и все работает. Вот блин - какое-то не от мира сего сообщение об ошибке. - ну я пояснил, что хоть и толстый клиент, но процедура выполняется на сервере, ибо управляемая форма открывалась, а если бы открывалась обычная форма, то и процедура выполнялась бы на клиенте
#28 by Лоботряс
"ну я пояснил, что хоть и толстый клиент, но процедура выполняется на сервере, ибо управляемая форма открывалась, а если бы открывалась обычная форма, то и процедура выполнялась бы на клиенте" - по-моему есть недопонимаение что есть клиент и что сервер
#29 by le_
Какая разница толстый или тонкий клиент - и там и там в управляемом приложении есть разделение на клиент и сервер. И всё-таки, чисто для себя - процедура ПередЗаписью находится в модуле документа или в модуле формы?
#30 by le_
к
#31 by ChAlex
- лично у меня нет недопонимания что есть что - речь идет про МОДУЛЬ ДОКУМЕНТА.
#32 by Лоботряс
Что за "все остальные функции"? И не смущает что у тебя Ссылка в процедуре ПередЗаписью?
#33 by ChAlex
:) специально для тех кто опоздал (пост 25) относительно Ссылки. А остальные функции - тут все без подтекста, просто еще ряд функций, на разные случаи и нужды. К конкретному моменту не имеющие никакой прямой связи, кроме того, что они располагаются в этом же модуле
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С

В этой группе 1С