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

Хранилище

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

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



> Обращение к элементам диалога в цикле , Как програмно задать имя элемента диалога 2 страниц V   1 2 >          
Игорь К Подменю пользователя
сообщение 17.10.10, 22:32
Сообщение #1

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

Ув. коллеги,

у меня есть форма обработки. На ней в цикле создаются закладки. На всех этих закладках одинаковые элементы диалога. Мне нужо в цикле пробежаться по этим закладкам и прочитать или задать значение каждого из аналогичных элементов диалога. Закладок от 20 до 50. Если для каждого элемента писать:

<ИмяЭлементаДиалога1> = ...
<ИмяЭлементаДиалога2> = ...
....
<ИмяЭлементаДиалога50> = ...

ИЛИ

Форма.<ИмяЭлементаДиалога1>.Заголовок(...)
Форма.<ИмяЭлементаДиалога2>.Заголовок(...)
....
Форма.<ИмяЭлементаДиалога50>.Заголовок(...)


то придется писать 50 строк. А если таких элементов на закладке несколько 3-5? А если закладок не 50 а 70-100?

ВОПРОС - как можно обратиться к свойству или методу элемента диалога не указывая имя этого элемента диалога явно, а задавать его имя в виде какой то переменной или как-то еще.

ЗАРАНЕЕ БЛАГОДАРЕН ВСЕМ ЗА СОВЕТЫ ИЛИ ИДЕИ.

Vofka Подменю пользователя
сообщение 18.10.10, 7:25
Сообщение #2

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

ПолучитьАтрибут(<?>);

Синтаксис:
Форма.ПолучитьАтрибут(ИмяРеквизита)
Назначение:
Возвращает ссылку на элемент формы.
Параметры:
ИмяРеквизита - строковое выражение, содержащее идентифика-тор элемента формы, как он задан в Конфигураторе.
Замечание:
Доступ к методу возможен только в контексте Модуля формы через атрибут Форма.

Спасибо сказали: Игорь К,

Игорь К Подменю пользователя
сообщение 18.10.10, 9:05
Сообщение #3

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

Цитата(Vofka @ 18.10.10, 9:25) *
ПолучитьАтрибут(<?>);

Синтаксис:
Форма.ПолучитьАтрибут(ИмяРеквизита)
Назначение:
Возвращает ссылку на элемент формы.
Параметры:
ИмяРеквизита - строковое выражение, содержащее идентифика-тор элемента формы, как он задан в Конфигураторе.
Замечание:
Доступ к методу возможен только в контексте Модуля формы через атрибут Форма.



Ув. VOFKA,


похоже что это сработает! Только не пойму как получив ссылку на данный элемент, изменить его параметры - Видимость, Доступность, Значение...
Черкните пару строк примера.

ЗАРАНЕЕ БЛАГОДАРЕН!

Vofka Подменю пользователя
сообщение 18.10.10, 9:20
Сообщение #4

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

Наверное как-то так (не проверял):

Рекв = "Контрагенты";
РеквКонтрагенты = Форма.ПолучитьАтрибут(Рекв);
РеквКонтрагент.Видимость(0);

Спасибо сказали: olgapyat, Игорь К,

Игорь К Подменю пользователя
сообщение 18.10.10, 9:45
Сообщение #5

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

VOFKA - спасибо! Проверю и отпишусь...

Игорь К Подменю пользователя
сообщение 18.10.10, 16:06
Сообщение #6

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

Цитата(Игорь К @ 18.10.10, 11:45) *
VOFKA - спасибо! Проверю и отпишусь...



Ув. VOFKA,
попробовал вот такой код

ПолеНомерВарианта = Форма.ПолучитьАтрибут(ИмяПоля);
НомерВарианта = ПолеНомерВарианта.ПорядковыйНомер();

Но к сожаления ссылка на элемент диалога не генерируется - элемент диалога не обнаруживается :-(

Помогите разобраться почему.

Vofka Подменю пользователя
сообщение 18.10.10, 16:48
Сообщение #7

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

Что говорит отладчик по поводу:
Форма.ПолучитьАтрибут("ИмяРеквизита")

?

Игорь К Подменю пользователя
сообщение 18.10.10, 17:27
Сообщение #8

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

Цитата(Vofka @ 18.10.10, 18:48) *
Что говорит отладчик по поводу:
Форма.ПолучитьАтрибут("ИмяРеквизита")

?



Я написал:

ИмяПоля = "НомерВариантаДляБронирВFS"+Строка(НомерСлоя);
Форма.ПолучитьАтрибут(ИмяПоля);


Ответ отладчика

Форма.ПолучитьАтрибут(ИмяПоля) = НеизвестныйОбъект

Vofka Подменю пользователя
сообщение 18.10.10, 17:29
Сообщение #9

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

Ну а если просто напрямую:
Форма.ПолучитьАтрибут("НомерВариантаДляБронирВFS1")

?

И точно есть атрибут с именем "НомерВариантаДляБронирВFS"+Строка(НомерСлоя) ?

Игорь К Подменю пользователя
сообщение 18.10.10, 18:05
Сообщение #10

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

Цитата(Vofka @ 18.10.10, 19:29) *
Ну а если просто напрямую:
Форма.ПолучитьАтрибут("НомерВариантаДляБронирВFS1")

?

И точно есть атрибут с именем "НомерВариантаДляБронирВFS"+Строка(НомерСлоя) ?



Поменяля имя реквизита.

Форма.ПолучитьАтрибут("ПолеВводаПеречисл");

Результат тот-же Неизвестный объект

Может со свойствами что-то не так - посмотрите картинки в аттачменте (извинте пока немогу приаттачить их сюда)


Кстати реквизит диалога с которым работаем имеет тип ПЕРЕЧИСЛЕНИЕ. Это что-то меняет?

Vofka Подменю пользователя
сообщение 18.10.10, 18:19
Сообщение #11

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

А так:
Рекв = "Контрагенты";
РеквКонтрагенты = ПолучитьАтрибут(Рекв);
РеквКонтрагент.Видимость(0);

?

Картинку непосредственно сюда приаттачить нельзя. Можно её куда-то залить, а здесь в специальных тегах разместить ссылку wink.gif

Игорь К Подменю пользователя
сообщение 18.10.10, 18:24
Сообщение #12

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

Цитата(Vofka @ 18.10.10, 20:19) *
А так:
Рекв = "Контрагенты";
РеквКонтрагенты = ПолучитьАтрибут(Рекв);
РеквКонтрагент.Видимость(0);

?

Картинку непосредственно сюда приаттачить нельзя. Можно её куда-то залить, а здесь в специальных тегах разместить ссылку wink.gif



В таком варианте ругается не отладчик а синтаксис-контроль - говорит

Функция не обнаружена (ПолучитьАтрибут)

alex1c Подменю пользователя
сообщение 18.10.10, 18:56
Сообщение #13

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 235
Спасибо сказали: 45 раз
Рейтинг: 40

ДокМД = Метаданные.Документ(ТекущийДокумент().Вид());
Для Ин = 2 По ДокМД.РеквизитТабличнойЧасти() Цикл
ИдРекв = ДокМД.РеквизитТабличнойЧасти(Ин).Идентификатор;
Форма.ПолучитьАтрибут(ИдРекв).Видимость(0);
КонецЦикла;

Этот вариант работает точно.
Обращаю внимание Форма.ПолучитьАтрибут(ИдРекв).Видимость(0);

Игорь К Подменю пользователя
сообщение 18.10.10, 18:59
Сообщение #14

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

Цитата(alex1c @ 18.10.10, 20:56) *
ДокМД = Метаданные.Документ(ТекущийДокумент().Вид());
Для Ин = 2 По ДокМД.РеквизитТабличнойЧасти() Цикл
ИдРекв = ДокМД.РеквизитТабличнойЧасти(Ин).Идентификатор;
Форма.ПолучитьАтрибут(ИдРекв).Видимость(0);
КонецЦикла;

Этот вариант работает точно.
Обращаю внимание Форма.ПолучитьАтрибут(ИдРекв).Видимость(0);



Так я работаю с реквизитаим диалога на форме обоработки. Или я по молодости чего-то не понял?

Vofka Подменю пользователя
сообщение 18.10.10, 19:30
Сообщение #15

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

Пробовал только что:
Форма.ПолучитьАтрибут("Контрагент").Видимость(0);

все ок.

Vofka Подменю пользователя
сообщение 18.10.10, 19:37
Сообщение #16

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

[необходимо зарегистрироваться для просмотра ссылки] пример

Игорь К Подменю пользователя
сообщение 18.10.10, 19:38
Сообщение #17

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

Цитата(Vofka @ 18.10.10, 21:30) *
Пробовал только что:
Форма.ПолучитьАтрибут("Контрагент").Видимость(0);

все ок.


Я проверил - у меня тоже работает.
Возможно я некорректно сформулировал вопрос в начале.

Моя задача прочитать выбранное в этом реквизите значение.

Vofka Подменю пользователя
сообщение 18.10.10, 19:51
Сообщение #18

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

Форма.ПолучитьАтрибут("ДатаОплПодпись").Заголовок()

Игорь К Подменю пользователя
сообщение 18.10.10, 20:34
Сообщение #19

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

Цитата(Vofka @ 18.10.10, 21:51) *
Форма.ПолучитьАтрибут("ДатаОплПодпись").Заголовок()


Я вас уже наверное задолбал :-)
Я работаю с реквизитом диалога, тип которого ПЕРЕЧИСЛЕНИЕ. И мне нужно получить .ПорядковыйНомер()

Строка
НомерВариантаДляБронирВFS1.ПорядковыйНомер();
Дает нормальный результат

На строку
Форма.ПолучитьАтрибут("НомерВариантаДляБронирВFS1").ПорядковыйНомер();
выдает ошибку:
Поле агрегатного объекта не обнаружено (ПорядковыйНомер)

Ardi Подменю пользователя
сообщение 18.10.10, 21:31
Сообщение #20

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

подозреваю что нужен какой-нибудь formex.dll
"Методы для последовательного перебора и перебора по условию всех реквизитов формы "
[необходимо зарегистрироваться для просмотра ссылки]


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

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


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

 

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