Вопрос по управляемой форме как передать из клиента на сервер #717346


#0 by svv1979
1с 8.3 ут 11.1 Есть внешняяобработка в ней идет обработка Документов(заказ клиента) В ней модуль             Форму получает при передаче Пишет ошибку {Форма.Форма.Форма}: Ошибка при вызове метода контекста (ЗаполнитьОбеспечениеВУстановленномПорядке)             Детали = ЗаполнитьОбеспечениеВУстановленномПорядке(ВыбранноеЗначение,ЗаказОбъект,Форма1); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'param':     форма: Элемент     имя: { по причине: Ошибка отображения типов: Отсутствует отображение для типа 'УправляемаяФорма' Как я понял Основная проблема в том что я передаю Управляемую Форму на Сервер КонецФункции Что посоветуете как можно обойти или другой вариант реализации передачи формы? Или как можно обратиться к форме например по УникальномуИндефикатору? Если можно напишите с командами заранее БЛАГОДАРЕН
#1 by toypaul
не понятно что откуда вызывается
#2 by H A D G E H O G s
Не передавать форму на сервер.
#3 by Garykom
НЕ НАДО передавать УФ на сервер Блин УФ это примерно как веб-страницы, т.е. есть запрос от клиента с данными (только простые типы, которые сериализуются легко) в ответ на запрос сервер возвращает результат (тоже только простые типы, которые сериализуются легко) Клиент и сервер это 2 в одном флаконе в исполнении 1С, не важно что оно на одном компе к примеру работает, всегда лучше считать что оно раздельно пашет и сервер это там далеко куда надо отправлять данные и получать а не передавать млин формы на сервер Если надо передать форму то нужно использовать специальные механизмы придуманные на этот случай (ЗначениеВРеквизитФормы и РеквизитФормыВЗначение) но лучше просто передать данные из формы а не всю форму...
#4 by toypaul
помнится аналогичный геморой был, когда надо было создать новый документ в обработке и чтобы отработали все процедуры из формы. по-моему передавал не форму, а структуру с минимальным набором реквизитов
#5 by StaticUnsafe
зачем передавать на сервер форму когда у нее есть контекст и можно просто передать управление на сервер с контекстом формы
#6 by toypaul
разработчики УТ 11 тупо не задумывались, что документы нужно будет программно создавать, а не только интерактивно. и нужный функционал для программного заполнения не предусмотрели.
#7 by toypaul
все прям такие умные "для чего передавать форму на сервер". для чего тогда в ТИПОВОЙ вот этот код
#8 by H A D G E H O G s
Ставлю дайм, что там ЭтаФорма1 - это кусок серверного контекста формы.
#9 by H A D G E H O G s
Ну, собственно, вот: &НаСервере Плохо, Павел, плохо.
#10 by toypaul
але, гараж. может для кого-то "кусок серверного контекста формы" это не форма. для меня эта форма. и метод этот написан тупо. потому что предусматривает только интерактивную работу. никак больше ты этот "кусок" в этот вызов по-другому (без извращений) не передашь.
#11 by H A D G E H O G s
Ты формалист. Возьми да перепиши.
#12 by hhhh
ну вообще-то здесь передается с сервера на клиент. А мы другой вопрос обсуждаем: с клиента на сервер.
#13 by toypaul
а я не знаю как назвать людей, которые не пытаясь понять суть задачи, начинают давать бестолковые советы. чего? с какого сервера на клиент?
#14 by H A D G E H O G s
Ты опять, опять ошибаешься. Я прекрасно понял суть задачи, а также ее неверность. Я даже знаю обходной костыль ее решения, но сама суть передачи формы ошибочна. Да, 1С написали "некрасиво", забив болт на пейсателей, но по сравнению с болтом на посерийный учет вне ордерных складов (к примеру) - это мелочи, и такие светочи, как ты прекрасно допишут процедурку Документы.ЗаказКлиента.ПодготовитьДанныеДляОбеспечения И возьмут по пяток часов с несчастных клиентов. С каждого.
#15 by svv1979
Всем огромное спасибо за участие Может тогда можно обратиться к Форме в МодулеМенеджера документа Чтобы по минимуму дописывать эту процедуру Документы.ЗаказКлиента.ПодготовитьДанныеДляОбеспечения Вообще-то хотелось ее вообще не изменять
#16 by toypaul
я же писал - анализируй процедуру и передавай не форму, а структуру с нужными реквизитами.
#17 by svv1979
Документы.ЗаказКлиента.ПодготовитьДанныеДляОбеспечения(ЗаказОбъект, ЭтаФорма1, "СтрокиТовары")? ЭтаФорма1 = ЭтоФорма Процедуры взяты из модуля Формы документа
#18 by svv1979
Как я писал все обрабатывается во внешней обработке Поэтому поменял ЭтаФорма на ЭтаФорма1 что бы обращение шло к форме документа Как можно полностью выгрузить все реквизиты формы в структуру 8 недавно начал осваивать так что извините если что не так пишу
#19 by hhhh
(180 а точно все нужны? Может два -три реквизита?
#20 by svv1979
Суть проблемы в чем что в процедуре Документы.ЗаказКлиента.ПодготовитьДанныеДляОбеспечения Идет обращение к двум реквизитам         УникальныйИдентификатор = Форма.УникальныйИдентификатор; А Форма в данном случае открытая форма документа Сделали бы в 1С получил Управляемую форму и двигай ее куда хочешь
#21 by svv1979
Еще хочется же вносить минимум изменений в конфигуратор Да и УникальныйИдентификатор и ТолькоПросмотр можно получить при открытой форме так как они не реквизиты объекта Остальные данные объекта передать не проблема
#22 by svv1979
Чувствую придется перетаскивать процедуру Документы.ЗаказКлиента.ПодготовитьДанныеДляОбеспечения  в обработку
#23 by svv1979
Перешел в форму объекта Сделал в форме экспортную процедуру и от нее отталкивался Форма.МояПроцедура По другому неполучилось
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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