Имя: Пароль:
1C
1С v8
Перебор элементов формы
,
0 Rizhij_Nikitos
 
10.02.13
23:22
Задача стоит в сабже. Надо достать каждый элемент, взять его свойства, его значение и... ну напечатать например - не важно.

Усугубляется все тем, что работа в упр формах.

С получением формы я кое-как разобрался, до элементов добрался, но в значении ПутьКДанным стоит Ошибка чтения значения...

Вопрос, а как достать данные то?
1 wade25
 
10.02.13
23:24
Если реквизит, то на сервере кажись нужно это юзать.
2 Rizhij_Nikitos
 
10.02.13
23:27
Юзать что?

Форму я на сервере не получу. Ну либо я кретин, либо есть другой метод о котором я не знаю, либо на сервере форму реально нельзя получить. Пока склоняюсь к третьему.

Мне надо не просто взять реквизит, мне надо еще чтобы была связь с элементом управления. Ну то есть знать что к чему.
3 wade25
 
10.02.13
23:31
(2) Так зачем тебе форма на сервере,  тебе же данные нужны, а данные в объекте, который не сервере. Я чисто теоретически, уже год не трогал УФ)
4 Rizhij_Nikitos
 
10.02.13
23:34
Мне радикально наплевать где я получу положительный результат, я хочу просто взять форму и распечатать Имя элемента управления:значение элемента управления.
В обычных формах это задача для дебила, в управляемых, у меня складывается ощущение, что задача для шахтера. Сам только разбираюсь с этой дрянью, постоянно плююсь и ругаюсь, надеюсь тут уже кто то через это прошел и подскажет чего мне не хватает для счастья или хотя бы что курить.
5 zladenuw
 
10.02.13
23:36
6 Rizhij_Nikitos
 
10.02.13
23:48
Ага, почитал, проблема похожая. Объект я могу получить - не дурак, форму я тоже получил. Как мне теперь понять какой реквизит объекта лежит в каком поле на форме?
7 DrShad
 
10.02.13
23:51
как форму получил?
8 IamAlexy
 
10.02.13
23:53
не вкуриваю проблему вообще ни разу..

а что собственно не получается?
9 IamAlexy
 
10.02.13
23:54
10 Rizhij_Nikitos
 
10.02.13
23:56
&НаКлиенте
Процедура Печать(Команда)
   //Определяем тип объекта через сервер, потому что на клиенте нет нужных нам типов
   ТипОбъекта=ОпределитьТип(ОбъектПечати);
   //Ищем символ двоеточия в названии типа чтобы знать где начинается название объекта
   СимволДвоеточия=Найти(ТипОбъекта,":");
   //Достаем название объекта
   НазваниеОбъекта=СокрЛП(Прав(ТипОбъекта,СтрДлина(ТипОбъекта)-СимволДвоеточия));        
   //Убираем пробелы из названия если название объекта состоит из нескольких слов
   НазваниеОбъекта=СтрЗаменить(НазваниеОбъекта," ","");
   //Получаем форму объекта в зависимости от того справочник это или документ
   ПараметрыФормы=Новый Структура("Ключ",ОбъектПечати);
   Если Найти(ТипОбъекта,"Справочник") Тогда        
       Форма=ПолучитьФорму("Справочник."+НазваниеОбъекта+".Форма.ФормаЭлемента",ПараметрыФормы);
   ИначеЕсли Найти(ТипОбъекта,"Документ") Тогда
       Форма=ПолучитьФорму("Документ."+НазваниеОбъекта+".Форма.ФормаДокумента",ПараметрыФормы);
   КонецЕсли;
   
   
   Для Каждого Элемент Из Форма.Элементы Цикл
       Сообщить("");
   КонецЦикла;
   
   
КонецПроцедуры


&НаСервере
Функция ОпределитьТип(ОбъектПечати)
   Возврат(Строка(ТипЗнч(ОбъектПечати.ПолучитьОбъект())));
КонецФункции
11 IamAlexy
 
10.02.13
23:57
жесть жестяная...
12 IamAlexy
 
10.02.13
23:58
кури БСП подсистему запрета изменения данных.
там форма лочится не форма.толькопросмотр а через установку доступности и толькопросмотра каждому элементу формы..

вот там как раз каждая форма перебирается и в зависимости от типа и значения применяется тот или иной метод блокировки доступа.
13 DrShad
 
11.02.13
00:07
(10) а форму какого объекта ты там получаешь и откуда у элементов возьмутся значения?

такое даже на обычном приложение не канает
14 Rizhij_Nikitos
 
11.02.13
09:00
Объект выбирается на форме, как видишь я его тип определяю и его как параметр ключ передаю.
15 Rizhij_Nikitos
 
11.02.13
09:43
(12) куда конкретно копать. Каждый модуль брать и перекапывать от и до?
16 НЕА123
 
11.02.13
10:06
(0)
>ПутьКДанным стоит Ошибка чтения значения...
у всех?
17 Rizhij_Nikitos
 
11.02.13
10:15
У всех. Вот открыл я БСП, там такие лихие разбирают этот путь данных... я вроде не дурак, догадался куда смотреть, но там данных то нет. В чем проблема?
18 НЕА123
 
11.02.13
10:21
ПутьКданным на сервере только.
19 Rizhij_Nikitos
 
11.02.13
10:31
А как я форму на сервере посмотрю? ПолучитьФорму только на клиенте работает.
20 Rizhij_Nikitos
 
11.02.13
10:59
Сделал в тестовом варианте такую ерунду: беру название поля ввода с формы, передаю на сервер, а там обращаюсь от объекта и возвращаю значение реквизита.

Проблема в том, что на форме есть такие вещи, которые заполняются при открытии формы. Например справочник валюты содержит в себе реквизит ПараметрыПрописиНаРусском.
В строке эта дрянь выглядит как "доллар, доллара, долларов, м, цент, цента, центов, м, 2", а при открытии формы раскладывается в 8 реквизитов на форме и рассовывается по полям ввода. Как мне такие вещи достать?
21 DrShad
 
11.02.13
11:03
(19) передавай ее на сервак как параметр процедуры и там смотри
22 Rizhij_Nikitos
 
11.02.13
11:16
На сервак форма не передается.
23 DrShad
 
11.02.13
11:19
(22) ну как бы у всех передается, а у тебя может и нет, я хз...
24 DrShad
 
11.02.13
11:20
УправляемаяФорма.ЭтаФорма (ManagedForm.ThisForm)
УправляемаяФорма (ManagedForm)
ЭтаФорма (ThisForm)
Использование:

Только чтение.
Описание:

Тип: УправляемаяФорма.
Содержит данную форму. Может быть использовано в модуле формы для получения данной формы и передачи ее в качестве параметра в другие формы, глобальные процедуры и функции и т.д.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
25 Rizhij_Nikitos
 
11.02.13
11:28
{Форма.ФормаОтчета.Форма(29)}: Ошибка при вызове метода контекста (ПередатьФормуНаСервер)
   ПередатьФормуНаСервер(Форма);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
   форма: Элемент
   имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'УправляемаяФорма'
26 DrShad
 
11.02.13
11:33
не Форма, а ЭтаФорма (ThisForm)
27 Rizhij_Nikitos
 
11.02.13
11:41
Сейчас потраим
28 Rizhij_Nikitos
 
11.02.13
11:44
ЭтаФорма возвращает тоже самое. То есть я беру Форма.ЭтаФорма и это тоже как ни странно "УправляемаяФорма"
29 DrShad
 
11.02.13
11:53
сорри, малость ошибся, ее не нужно передавать, она и так доступна - передавать ее нужно только в модуль менеджера
30 Rizhij_Nikitos
 
11.02.13
14:18
Она не может быть доступна. Это форма, которую я получаю программно. Документа, который я указываю сам на форме обработки или справочника - не важно. Форма не обработки.