Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: распознать вид элемента формы в 1с 8
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Gigi
Всем привет!
Опять приходиться выходить на форум.. ПРИХОДИТЬСЯ!!!!
Никто не подскажет как распознать вид элемента формы
Вот варианты:
Сообщить(Элементы[ЭлИмя].Вид="Обычная группа");
Сообщить(Элементы[ЭлИмя].Вид="Поле ввода");

В обеих случаях выдает ложь.
Что нужно... нужно что бы тип элемента был "ПолеФормы", но при этом что бы этот элемент был полем ввода, а не переключателем и т.д.
Как распознать первое разобрался, а как второе нет.
Т.е. вопрос в том как указать что элемент "ПолеФормы" это поле ввода, а не поле переключателя, поля надписи и т.д.
Буду признателен!

Gigi @ Сегодня, 15:10 необходимо зарегистрироваться для просмотра ссылки ,
Еще малый пример:
Сообщить(Элементы[ЭлИмя].Вид);
//Выдает значение: "Поле ввода"
//Но если написать так .. т.е. указать вид :):) то говорит ЛОЖЬ ... дур дом ))))
Сообщить(Элементы[ЭлИмя].Вид="Поле ввода");
Сообщить(Элементы[ЭлИмя].Вид="ПолеВвода");

Короче опять какая то ерунда эта целая головоломка smile.gifsmile.gif
Буду признателен!
Petre
Почему вы игнорируете СП?
хакерок
Gigi @ Сегодня, 15:51 необходимо зарегистрироваться для просмотра ссылки ,
Небольшая подсказка
Сообщить(Элементы[ЭлИмя].Вид);

В процессе происходит выдача строкового предстваления объекта Элементы[ЭлИмя].Вид в строку.

Сообщить(Строка(Элементы[ЭлИмя].Вид) = "Поле ввода")


может дать тебе Истина

Тоесть Элементы[ЭлИмя].Вид это не строка а объект
Gigi
Petre @ Сегодня, 15:53 необходимо зарегистрироваться для просмотра ссылки ,
Цитата
ПолеФормы (FormField)
Вид (Type)
Использование:
Чтение и запись.
Описание:
Тип: ВидПоляФормы.
Определяет способ представления данных реквизита в форме.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
Изменение свойства на клиенте требует обращения к серверу.

Вот все что написано в СП
Гуууу... а где пример? без лишней никчемной теории... в чем тоже кот наплакал
Один пример и все... это лучше чем тоны теории.
хакерок
Gigi @ Сегодня, 15:58 необходимо зарегистрироваться для просмотра ссылки ,
Опишите что хочете сделать в форме может и подскажем куда копать
Gigi
Цитата(хакерок @ 25.05.18, 15:58) необходимо зарегистрироваться для просмотра ссылки
Сообщить(Строка(Элементы[ЭлИмя].Вид) = "Поле ввода")

Да .. точно ... как сам не догнал
Думаю конечно даст истину.
Но вообще мне эти танцы с бубнами ... знаете зачем?
Дело в том, что я просто никак не могу найти способ как запеременить поле элемента формы.
Ну на пример:
//Так сделать не проблема
&НаКлиенте
Процедура Тест()
Значение=ТестФункц(Элементы,Отчет,"Реквизит1");
КонецПроцедуры
&НаКлиенте
Функция ТестФункц(Элементы,ОбъектФормы,ИмяЭлементаИлиРеквизита)
Возврат ОбъектФормы[ИмяЭлементаИлиРеквизита];
КонецФункции

//А как запеременить и возвратить значение не объекта формы а элемента?
//Поэтому уже таким маккром:
Процедура Тест()
Значение=ТестФункц(Элементы,Отчет,"Реквизит2");
КонецПроцедуры
&НаКлиенте
Функция ТестФункц(Элементы,ОбъектФормы,ИмяЭлементаИлиРеквизита)
Возврат Элементы[ИмяЭлементаИлиРеквизита];
КонецФункции
//Уже РУГАЕТЬСЯ...

Т.е. как запеременить элемент формы и так получить.

Gigi @ Сегодня, 16:11 необходимо зарегистрироваться для просмотра ссылки ,
Цитата(Gigi @ 25.05.18, 16:11) необходимо зарегистрироваться для просмотра ссылки
//Уже РУГАЕТЬСЯ...

Прадон Вернее не ругается а выдает "ПолеФормы"
А нужно получить ЗНАЧЕНИЕ
И поэтому как реквизит элемента формы запеременить?
С объектом все номрально:
Возврат ОбъектФормы[ИмяЭлементаИлиРеквизита];

А как в случае реквизита элемента?
Вот так что ли? smile.gif
Возврат [ИмяЭлементаИлиРеквизита];

Где уже точно заругается
хакерок
Gigi @ Сегодня, 16:11 необходимо зарегистрироваться для просмотра ссылки ,
Делаешь реквизит формы например ВводСуммы тип Число перетаскиваете на форму вот у тебя поле вода на форме.

Нажимаешь на этот элемент в форме там есть обработчик ПриИзменени

В нём пишешь
Сообщить(ВводСуммы)



Gigi
Gigi @ Сегодня, 16:21 необходимо зарегистрироваться для просмотра ссылки ,
Знаю что можно еще так..
Возврат  Элементы[ИмяЭлементаИлиРеквизита].ТекстРедактирования;

Но в таком случае и столкнулся с тем, что в цикле если попадаться Вид "Поле переключателя" то выдаст ошибку.
Вот для чего нужно было распознать вид.
Но я хотел спросить более простой путь.
Нельзя ли простым путем .. без этих танцев с бубном.
Как при
Возврат ОбъектФормы[ИмяЭлементаИлиРеквизита];

Так же просто с реквизитом элемента.
Вот что хотел спросить.

Цитата(хакерок @ 25.05.18, 16:27) необходимо зарегистрироваться для просмотра ссылки
В нём пишешь

Да это я знаю smile.gif азбуку ...
Просто нужно то что выше написано...
как раз реквизит на пример: "ВводСуммы" запеременить ... сделать переменную на него.
Что бы можно было его значение получить из функции общего модуля.
хакерок
Gigi @ Сегодня, 16:32 необходимо зарегистрироваться для просмотра ссылки ,
В общем модуле тебе доступен объект Метаданные там вся конфигурация попробуй с ним поработать.
Magvay_k
Для сравнения вида поля, правильнее использовать Элементы.Реквизит1.Вид = ВидПоляФормы.ПолеВвода



Magvay_k @ Сегодня, 18:20 необходимо зарегистрироваться для просмотра ссылки ,
А так я думаю можно получить значение реквизиты формы ЭтаФорма[Элементы.Реквизит1.ПутьКДанным]
Gigi
Magvay_k @ Сегодня, 17:22 необходимо зарегистрироваться для просмотра ссылки ,
Огромное спасибо...
Попытаюсь так как сказали.
Но если будут вопросы продолжу тему..
Спасибо!
Vofka
хакерок, за нарушение пункта 1 необходимо зарегистрироваться для просмотра ссылки: режим только чтение на 2 недели.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.