Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 13:45

Как установить источник данных для поля ввода

Автор valeriyp, 20 окт 2011, 12:19

0 Пользователей и 1 гость просматривают эту тему.

valeriyp

Добрый день.

Недавно начал изучать 1с, возникла такая проблема:

Есть ПолеВвода1, связанное со справочником НалоговыйПреиод, который имеет два значения - Месяц и Квартал.
Нужно чтобы в ПолеВвода2 в зависимости от выбора в ПолеВвода1 осуществлялся выбор значений из Справочника Месяца или Квартала.

Заранее спасибо.

Андрей Федотов

1) Делаете ПолеВвода2 составным (на справочники Месяца и Квартал).
2) Делаете обработчик события "ОкончаниеВыбора" на ПолеВвода1, в котором устанавливаете из какого справочника будет выбираться значение в ПолеВвода2 в зависимости от выбранных данных в ПолеВвода1.

valeriyp

Пожалуйста скажите подробнее момент присвоения полю нужного справочника

Андрей Федотов

Используйте свойство ОграничениеТипа элемента формы

Массив=Новый Массив();
Массив.Добавить("СправочникСсылка.Месяц");
ЭлементыФормы.ПолеВвода2.ОграничениеТипа=Новый ОписаниеТипов(Массив);


Код примерно такой. Добавьте его в нужные проверки и используйте.

valeriyp

При таком обработчике:

Процедура НалоговыйПериодОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
      Если ВыбранноеЗначение.Наименование="Месяц" Тогда
         Массив = Новый Массив();
         Массив.Добавить(Тип("СправочникСсылка.Месяца"));
         ЭлементыФормы.НомерМесяца.ОграничениеТипа = Новый ОписаниеТипов(Массив);      
      Иначе
         Массив = Новый Массив();
         Массив.Добавить(Тип("СправочникСсылка.Квартала"));
         ЭлементыФормы.НомерМесяца.ОграничениеТипа = Новый ОписаниеТипов Массив);      
      КонецЕсли;
КонецПроцедуры

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

Андрей Федотов

Вам при обработке выбора сначала нужно снять ограничение типа, а затем уже устанавливать.
Иначе работать будет некорректно

valeriyp

Спасибо за помощь, направили в нужном русле. Нашел пример вот получился нормальный обработчик:

Если ВыбранноеЗначение.Наименование="Месяц" Тогда
         ТипСтр = "СправочникСсылка.Месяца";
         ЭлементыФормы.НомерМесяца.ОграничениеТипа = Новый ОписаниеТипов(ТипСтр);
         Значение = ЭлементыФормы.НомерМесяца.Значение;
         ЭлементыФормы.НомерМесяца.Значение = ЭлементыФормы.НомерМесяца.ОграничениеТипа.ПривестиЗначение(Значение);
         ЭлементыФормы.НомерМесяца.ВыбиратьТип = Ложь;
         Иначе          
         ТипСтр = "СправочникСсылка.Квартала";
         ЭлементыФормы.НомерМесяца.ОграничениеТипа = Новый ОписаниеТипов(ТипСтр);
         Значение = ЭлементыФормы.НомерМесяца.Значение;
         ЭлементыФормы.НомерМесяца.Значение = ЭлементыФормы.НомерМесяца.ОграничениеТипа.ПривестиЗначение(Значение);
         ЭлементыФормы.НомерМесяца.ВыбиратьТип = Ложь;         
КонецЕсли;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск