#0
by Rizhij_Nikitos
Собственно задача поднималась мною пару дней назад и кое-как я решил вопрос, получаю на клиенте форму, открываю ее, перебираю все значения полей ввода и флажков, записываю имена таблиц, после чего закрываю форму и передаю инфу на сервак, клепаю простенький отчет о том как называется элемент и что содержит, в т.ч. отслеживаю на каких страницах что находится. Но вот косяк. Господа разработчики, как последние собаки, взяли и назвали реквизит немного не так, как называется элемент на форме, в итоге обращаясь к Форма[Элемент.Имя] или к Форма.Объект[Элемент.Имя], дабы получить его содержание, я вылетаю с ошибкой потому что Элемент.Имя=РеализацияПоЗаказу, а Форма.Объект[Элемент.Имя]=РеализацияПоЗаказам. Возник вопрос, как мне управляемую форму разобрать так, чтобы полностью получить имя реквизита, соответствующего полю на форме.
#5
by GANR
В модуле формы можно сделать что-то вроде &НаСервере Ты хочешь передать форму в некий общий модуль так? Тогда дествия такие (с клиента, на сервер в качестве параметра ее передать нельзя) 2. серверный общий модуль Функция ТвояФункция(Форма) ... КонецФункции Пойдет?
#6
by GANR
С клиента, на сервер в качестве параметра процедуры/функции форму передать нельзя. Обходной путь - зайти в подпрограмму с директивой &НаСервере.
#7
by Rizhij_Nikitos
Так объясню. Я выбираю на форме отчета любой справочник или документ, после чего выбираю объектдокумент. Надо получить его форму, после чего обойти все его элементы формы и вывести их названия и значения которые они содержат. Это внешний отчет и работать должно в любой типовой УТ11/КА1.1/БП3.0
#10
by Rizhij_Nikitos
Все было хорошо и даже получалось, пока совпадали имена реквизитов формы и пути к данным
#11
by MSII
Записать имена элементов, реквизитов и значения реквизитов в какую-то подходящую коллекцию и передать ее на сервер. В чем проблема? Или я неправильно понял задачу?
#13
by MSII
На клиенте же ты их можешь сопоставить. У элемента читаешь свойство ПутьКДанным, пишешь в коллекцию - имя элемента, его путь к данным, значение реквизита. Все это пакуй и на сервер. Нет?
#14
by Rizhij_Nikitos
Нет. У элемента на форме нет пути к данным, потому что как не странно, у элемента на форме нет доступа к данным. Путь к данным возможен только на сервере.
#18
by V_V_V
Если тебе данные нужно возвращать на сервер - почему не перебрать все элементы еще ПриСозданииНаСервере?
#19
by Rizhij_Nikitos
при создании на сервере чего? У меня внешний отчет. Я в нем получаю основную форму указанного документа или справочника.
#20
by MSII
Тогда беда. Жди, когда подписки на события форм появятся. Все ждем и ты жди. Или модифицируй форму.
#21
by Rizhij_Nikitos
все управляемые формы во всех конфах с управляемыми формами у всех клиентов?))))
#23
by MSII
Без паники. Предлагаю решение - обернуть присваивание в попытку, а в исключении сообщать - "Внимание! Имена реквизита формы и элемента формы различны! Немедленно внесите изменения в конфигурацию!" и на этом завершать построение отчета.
#24
by Rizhij_Nikitos
почти это и делаю, только я придумал так - записывать имя элемента и давать пользователю сопоставить со всеми объектами это имя элемента, типа как "Для элемента ХХХ не определен источник данных, пожалуйста определите имя реквизита, который является источником данных для данного реквизита:" И вываливается список всех объектов с возможностью выбора одного. А данные выбора засуну в отчет.
#25
by GANR
Пиши рационализаторское предложение разработчикам платформы на v8@1c.ru с указанием конфы, платформы, рег. номера программного продукта и фирмы (без этого - пошлют).
#31
by Rizhij_Nikitos
Одна проблема, для типов данных элементов на форме нет типов данных на сервере: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'param': форма: Элемент имя: { по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ГруппаФормы'
#33
by Rizhij_Nikitos
ты о чем?) В общем объясняю, что нужны отображения типов на сервере для того что бы передавать на сервер клиентские типы данных. Каждый раз определять что за тип и что то придумывать(а я честно даже не знаю, есть ли для этих типов отображения на сервере)...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Получить id и получить объект по id
- 7.7: Как получить значение элемента диалога формы по идентификатору?
- Как программно получить получить пароль пользователя в текущем сеансе работ
- Как получить разность дат (Нужно получить количество дней)
- v7: Получить через СОМ соединение значение периодического элемента
- Как получить ГУИД элемента по OLE, записать и получить по нему ссылку?
- Бухгалтерия 8.2 функция ПолучитьЗначениеПоУмолчанию() как получить значение ПВХ?
- Как получить значение реквизита Поля флажок, если свойства Значение у него нет.
- Как и где получить значение константы в управляемой форме
В этой группе 1С
- спец платформа решение расчетных задач
- Как открыть документ созданный программно но ещё не записанный-управляемые формы
- Тонкий клиент очистить табличную часть документа.
- v7: 1SQLite: Условие на дату в справочнике
- Как получить движения по всем регистрам по одному измерению ?
- 1с ЗУП. 2НДФЛ. Не попадает отпуск в "доход".
- ХранилищеСистемныхНастроек - удаляет только настройки текущего пользователя.
- Подключение ТСД motorola MC3190 к Windows 7
- Как реализовать составной набор у свойств в УТ 11?
- Проведение документа Комплектация номенклатуры в БП 2.0
- Расчет времени в отчете скд
- v7: ошибка при загрузке базы
- Получается косвенная адресация?
- Транзакция. Когда начинается блокировка таблиц перед записью данных?
- Бланк товарного наполнения
- УТ 11. Запрет на редактирование закрытых заказов.
- ЗуП 2.5 (остатки оптусков), резерв отпусков,
- Ошибка при реструктуризации "Имеются записи с одинаковыми измерениями"
- Можно ли работать с файлом Excel без создания COMОбъекта?
- Конвертировать MXL в PDF (XLS...)