ТаблицаЗначений управляемые формы #707629


#0 by an_str
Здравствуйте. Управляемые формы. В документе есть реквизит ФОРМЫ с типом "ТаблицаЗначений". По кнопке "Загрузить" открывается форма обработки, которая должна загрузить в эту таблицу данные из екселя. пока по кнопке Загрузить следующий код: В процедуре ПриСозданииНаСервере в форме обработки: &НаСервере КонецПроцедуры но так я могу получить доступ к реквизитам объектам, а мне нужно именно формы получить ту таблицу значений и заполнить ее. подскажите, пожалуйста, как можно это реализовать
#1 by su_mai
1. Не надо использовать модальное открытие форм, надо пользоваться методом ОткрытьФорму, а у формы устанавливать режим блокирования владельца. На сервере можно так: Таблица = РеквизитФормыВЗначение("ФОРМЫ"); В этом стучае Таблица это таблица значений, как работать с неё знаешь. После окончания её изменения необходимо преобразовать её в реквизит формы: ЗначениеВРеквизитФормы
#2 by an_str
первый пункт исправила, спасибо за уточнение про открытие форм. Второй пункт: если бы нужно было менять в этой же форме то понятно, можно так сделать. вопрос как передать эту таблицу значений в форму обработки и там его менять. Передать вот так получилось: В обработке в форме: &НаСервере получить могу, но как с ней дальше работать? и вернуть обратно, чтобы на форме документа отобразились загруженные мною данные из екселя.
#3 by su_mai
В клиентском контексте формы тип данных "ТаблицаЗначений" обрабатываться не может. В нем только массивы структур и тп
#4 by su_mai
+ Ты с серверными вызовами борешся?
#5 by an_str
я просто не знаю как в форме обработки с этой таблицей работать и вернуть ее обратно. ПриСозданииНаСервере я ее получила. Дальше по кнопке "Выполнить в обработке":
#6 by su_mai
&НаСервере
#7 by su_mai
+ Дело в том, что даже в серверном контексте формы реквизит "ФОРМЫ" имеет тип "ДанныеФормаКоллекция". Тип "ДанныеФормаКоллекция" позволяет добавлять строки и тп. По этому можно не преобразовывать в таблицу значений.
#8 by su_mai
+ При этом, если не сервере необходимо работать именно с типом "ТаблицаЗначений", то необходимо выполнить преобразование данных: При возврате на клиента "уедет" именно "ДанныеФормаКоллекция"
#9 by an_str
это я понимаю. но так хорошо получается, если в одном модуле все делать. Сначала. Тыкаем кнопку загрузить, по которой должна открыться форма обработки "ЗагрузкаПланирование": как в нее передать реквизит формы TOTALКалендарный, который имеет тип ТаблицаЗначений? &НаКлиенте У меня передать получилось вот так: каковы должны быть мои действия в форме обработки а не документа
#10 by su_mai
Можно передать данные из другой формы через временное хранилище, но напрямую работать с таблицей значений можно только в серверном контексте формы.
#11 by an_str
Попробовала еще в ременным хранилищем. В документе: &НаКлиенте В обработке: как мне с ней тут дальше работать? на форме может тоже нужно создать таблицу значений и скопировать это туда?
#12 by su_mai
&НаКлиенте
#13 by su_mai
Сори: "Обработка.АппроксимацияДанных.Форма - имя вашей формы обработки :)
#14 by su_mai
Процедура ПриСозданииНаСервере - это уже модуль открываемой формы
#15 by su_mai
Если есть доступ к ИТС: "Минимизация количества серверных вызовов" - "Выполнение подбора элементов" - "7.2. В целях оптимизации передачи данных между формой объекта и формой подбора рекомендуется использовать временное хранилище, чтение и запись которого должна выполняться на сервере."
#16 by an_str
Да, спасибо огромное. у меня так все и работает. Вопрос то  что дальше делать. Получила я эту таблицу в процедуре на сервере. а как мне в нее внести изменения??? &НаКлиенте
#17 by ProProg
на сервере ком объекты работать не будут.
#18 by ProProg
Кстати путь к файлу - должен быть серверным ))) Те файл нужно передать опять таки на сервер через хранилище и обрабатывать там получив из хранилища.
#19 by an_str
- сплошные расстройства(
#20 by su_mai
COMОбъект (COMObject) Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Так что если на сервере установлен MS Excel, то будет работать. А файл необходимо передать на сервер опять же через временное хранилище "ПоместитьФайл".
#21 by an_str
это радует, но это уже другой вопрос) что с таблицей то в итоге делать? мне бы ее хоть как-то изменить и вернуть обратно для начала)
#22 by an_str
Попробовала добавить тоже реквизит на форму с типом ТаблицаЗначений. но так работать не захотело
#23 by su_mai
Адрес временного хранилища по которому мы поместили ТаблицаПрогноза в форме документа "живет" пока открыта форма документа. В этом случае можно вернуть подготовленную таблицу прогноза поместив по этому же адресу: Параметры.ТаблицаПрогноза. Только в этом случае либо параметр "Параметры.ТаблицаПрогноза" должен ключевым, либо этот адрес надо сохранить в реквизите формы обработки. А так же в форме документа надо сохранить в отдельной переменной адрес в который поместили ТаблицаПрогноза. Тогда после возврата в форму документа можно прочитать данные ТаблицаПрогноза по адресу.
#24 by su_mai
+ Т.е. в сделать так : было
#25 by an_str
С вернуть разобрались, как изменить в обработке эту таблицу не в процедуре ПриСозднииНаСервере)
#26 by su_mai
Отставить! Мы же вызывали асинхронно форму, по этому необходимо возвращать данные в форму документа через механизм оповещений. В форме документа реализовать обработчик "ОбработкаОповещения(ИмяСобытия, Параметр, Источник)" В форме обработки при закрытии используя метод "Оповестить" передать в форму документа адрес во временном хранилище ТаблицаПрогноза.
#27 by su_mai
см.
#28 by an_str
- так, хорошо, я поняла можно не преобразовывать. так тоже не копируется полученная таблица
#29 by su_mai
&НаСервере Если дальше в обработчиках команд формы TOTALКалендарный заполняется, то см. ,,
#30 by an_str
Ошибка при вызове метода контекста (ЗначениеВДанныеФормы)   ЗначениеВДанныеФормы(ТаблицаПрогноза, "TOTALКалендарный"); по причине: Несоответствие типов (параметр номер '2') Хотя ТаблицаПрогноза тип ТаблицаЗначений и TOTALКалендарный тип ТаблицаЗначений, просто беда какая-то(
#31 by su_mai
Ну тада так:
#32 by an_str
su_mai, спасибо большущее...победила)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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