Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> распознать вид элемента формы в 1с 8          
Gigi Подменю пользователя
сообщение 25.05.18, 14:51
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Всем привет!
Опять приходиться выходить на форум.. ПРИХОДИТЬСЯ!!!!
Никто не подскажет как распознать вид элемента формы
Вот варианты:
Сообщить(Элементы[ЭлИмя].Вид="Обычная группа");
Сообщить(Элементы[ЭлИмя].Вид="Поле ввода");

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

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

Короче опять какая то ерунда эта целая головоломка smile.gifsmile.gif
Буду признателен!

Petre Подменю пользователя
сообщение 25.05.18, 14:53
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Почему вы игнорируете СП?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

хакерок Подменю пользователя
сообщение 25.05.18, 14:58
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Gigi @ Сегодня, 15:51 * ,
Небольшая подсказка
Сообщить(Элементы[ЭлИмя].Вид);

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

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


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

Тоесть Элементы[ЭлИмя].Вид это не строка а объект

Gigi Подменю пользователя
сообщение 25.05.18, 14:58
Сообщение #4

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

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

Вот все что написано в СП
Гуууу... а где пример? без лишней никчемной теории... в чем тоже кот наплакал
Один пример и все... это лучше чем тоны теории.

хакерок Подменю пользователя
сообщение 25.05.18, 15:09
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Gigi @ Сегодня, 15:58 * ,
Опишите что хочете сделать в форме может и подскажем куда копать

Gigi Подменю пользователя
сообщение 25.05.18, 15:21
Сообщение #6

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Цитата(хакерок @ 25.05.18, 15:58) *
Сообщить(Строка(Элементы[ЭлИмя].Вид) = "Поле ввода")

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

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

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

Gigi @ Сегодня, 16:11 * ,
Цитата(Gigi @ 25.05.18, 16:11) *
//Уже РУГАЕТЬСЯ...

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

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

Где уже точно заругается

хакерок Подменю пользователя
сообщение 25.05.18, 15:27
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

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

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

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




Gigi Подменю пользователя
сообщение 25.05.18, 15:32
Сообщение #8

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

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

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

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

Цитата(хакерок @ 25.05.18, 16:27) *
В нём пишешь

Да это я знаю smile.gif азбуку ...
Просто нужно то что выше написано...
как раз реквизит на пример: "ВводСуммы" запеременить ... сделать переменную на него.
Что бы можно было его значение получить из функции общего модуля.

хакерок Подменю пользователя
сообщение 25.05.18, 16:18
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Gigi @ Сегодня, 16:32 * ,
В общем модуле тебе доступен объект Метаданные там вся конфигурация попробуй с ним поработать.

Magvay_k Подменю пользователя
сообщение 25.05.18, 16:22
Сообщение #10

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Из: Москва
Спасибо сказали: 1 раз
Рейтинг: 0

Для сравнения вида поля, правильнее использовать Элементы.Реквизит1.Вид = ВидПоляФормы.ПолеВвода



Magvay_k @ Сегодня, 18:20 * ,
А так я думаю можно получить значение реквизиты формы ЭтаФорма[Элементы.Реквизит1.ПутьКДанным]

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 25.05.18, 16:44
Сообщение #11

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Magvay_k @ Сегодня, 17:22 * ,
Огромное спасибо...
Попытаюсь так как сказали.
Но если будут вопросы продолжу тему..
Спасибо!

Vofka Подменю пользователя
сообщение 29.05.18, 8:14
Сообщение #12

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

хакерок, за нарушение пункта 1 правил: режим только чтение на 2 недели.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.04.24, 10:03
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!