helpf.pro
Регистрация

v8: Начало Выбора Из Списка

Ermak
09.12.2013 21:38Прочитано: 2426
Код 1C v 8.х
 Процедура ЕИ_ПолеВвода1НачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
СписокРегистров = Новый СписокЗначений;
СписокРегистров.Добавить("Встраиваемая техника");
СписокРегистров.Добавить("Варочные панели электрические");
СписокРегистров.Добавить("Варочные панели газовые");

Результат = ВыбратьИзСписка(СписокРегистров, Элемент);
Если Результат <> Неопределено Тогда
Элемент.Значение = Результат.Значение;
КонецЕсли;
Если Элемент.Значение = "Встраиваемая техника" Тогда
ЭлементыФормы.Панель1.Страницы.Страница1.Доступность = Истина;
ЭлементыФормы.Панель1.Страницы.Страница1.Видимость = Истина;
ЭлементыФормы.Панель1.Страницы.Страница2.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница2.Видимость = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница3.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница3.Видимость = Ложь;
КонецЕсли;
Если Элемент.Значение = "Варочные панели электрические" Тогда
ЭлементыФормы.Панель1.Страницы.Страница1.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница1.Видимость = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница2.Доступность = Истина;
ЭлементыФормы.Панель1.Страницы.Страница2.Видимость = Истина;
ЭлементыФормы.Панель1.Страницы.Страница3.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница3.Видимость = Ложь;

КонецЕсли;
Если Элемент.Значение = "Варочные панели газовые" Тогда
ЭлементыФормы.Панель1.Страницы.Страница1.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница1.Видимость = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница2.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница2.Видимость = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница3.Доступность = Истина;
ЭлементыФормы.Панель1.Страницы.Страница3.Видимость = Истина;

КонецЕсли;

СтандартнаяОбработка = Ложь;

КонецПроцедуры

Делаю в справочнике Номенклатура
По умолчанию все три страницы не видны и не доступны. Когда я открываю нужную мне номенклатуру Панели я не вижу, после я выбираю из списка категорию "Встраиваемая техника" открывается нужная мне Страница1, я ее заполняю и сохраняю.
Вот в чем проблема, если я опять захожу в эту же номенклатуру то не вижу ни одной страницу, если я выберу нужную мне категорию "Встраиваемая техника" то открывается моя Страница1 и я вижу так заполненные данные, как сделать чтобы нужна мне страница (выбранная из списка) отображалась.
Yandex
Возможно, вас также заинтересует
Реклама на портале
Mokey
10.12.2013 09:55Ответ № 1
надо значение "Встраиваемая техника" как-то сохранять в элементе, иначе как определить при открытии, какую вкладку надо показывать?
Ermak
10.12.2013 11:30Ответ № 2
Я добавил список значение в перечисление ЕИ_Список, добавил реквизит Категории с типом Перечесление.ЕИ_Список. Теперь нужно когда выбираю нужное мне значение из ЕИ_Список в панели отображалась страница. Например я выбирают из ЕИ_Список значение "Встраиваемая техника", должна отображаться Страница1. Не получается у меня.
Mokey
10.12.2013 11:34Ответ № 3
Хм, а ЕИ_Список сохраняете в реквизите Категории?
Если да, то при открытии формы элемента анализируете значение реквизита.
Только по Вашему первому посту мне не очень понятно, где там у Вас перечисление задействовано?

Я бы сделал так:
Если есть перечисление, то ПолеВыбора - это реквизит справочника с типом перечисление, галочка "Быстрый выбор" и получаете выбор из списка, при этом выбранное значение сохраняется в реквизите. И уже ПОСЛЕ выбора значения открываем ту или иную страницу на форме. При открытии, соответственно, анализируем значение реквизита и опять же вызываем процедуру открытия страниц.
Изменено 10.12.13 11:36:49
Ermak
10.12.2013 11:52Ответ № 4
Как бы сделали вы так я и делаю.
Я получаю выбор из списка, значение тоже у меня сохраняется. Но страница у меня не отображается. Я страницы сделал чтобы они были не доступны и не видны, смысл такой, когда пользователь хочет добавить инфо он выбирается из списка ПолеВыбора нужно значение после чего становится видна и доступна страница. Я в процедуре ПриОткрытии добавил такое условие

Код 1C v 8.х
 	Если ЭлементыФормы.Категории.Значение = Перечисления.ЕИ_СписокРегистров.ВстраиваемаяТехника Тогда
ЭлементыФормы.Панель1.Страницы.Страница1.Доступность = Истина;
ЭлементыФормы.Панель1.Страницы.Страница1.Видимость = Истина;
ЭлементыФормы.Панель1.Страницы.Страница2.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница2.Видимость = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница3.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница3.Видимость = Ложь;
Иначе
КонецЕсли;
Если ЭлементыФормы.Категории.Значение = Перечисления.ЕИ_СписокРегистров.ВарочныеПанелиЭлектрические Тогда
ЭлементыФормы.Панель1.Страницы.Страница1.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница1.Видимость = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница2.Доступность = Истина;
ЭлементыФормы.Панель1.Страницы.Страница2.Видимость = Истина;
ЭлементыФормы.Панель1.Страницы.Страница3.Доступность = Ложь;
ЭлементыФормы.Панель1.Страницы.Страница3.Видимость = Ложь;
Иначе
КонецЕсли;

но оно не работает. не понимаю почему
Mokey
10.12.2013 12:08Ответ № 5
А зачем сравнивать ЭлементыФормы? Можно ведь просто
Категории = Перечисления.ЕИ_СписокРегистров.ВстраиваемаяТехника
Проверьте отладчиком, всё должно работать
Mokey
10.12.2013 12:09Ответ № 6
Да, и лучше использовать конструкцию
Если Тогда
ИначеЕсли Тогда
КонецЕсли
чтобы каждый раз не проверялось значение
Ermak
10.12.2013 12:16Ответ № 7
Как сейчас стала работать: я выбираю категорию, страница не отображается, я сохраняю, захожу заново страница отобразилась. Как сделать чтобы она еще отображалась когда я выбираю категорию
DJ_Serega
10.12.2013 12:17Ответ № 8
Если Категории это реквизит объекта, тогда попробуй вместо
Если ЭлементыФормы.Категории.Значение = Перечисления.ЕИ_СписокРегистров.ВстраиваемаяТехника Тогда
Написать
Если Категории = Перечисления.ЕИ_СписокРегистров.ВстраиваемаяТехника Тогда

А условия вынеси в процецедуру и вызывай её и с ПриОткрытии и ПриИзменении категории.
Ermak
10.12.2013 12:18Ответ № 9
все работает, разобрался
Ermak
10.12.2013 12:18Ответ № 10
Всем спасибо
Изменено 10.12.13 12:18:50
Ermak
10.12.2013 12:18Ответ № 11
Вопрос закрыт!
DJ_Serega
10.12.2013 12:32Ответ № 12
Так а что было?
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.