Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Выбор из справочника с отбором в управляемой форме

Лада-НТ
читатель
офлайн
Дата регистрации: 04.02.2009
Сообщений: 72
Пост №1
 
15.08.2012 13:50

"Требуется при выборе реквизита открыть ФормуВыбора справочника с отбором по списку кодов.<br> <br>****************************************<br> &НаКлиенте<br><br>Процедура РеквизитНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)<br><br> СтандартнаяОбработка = Ложь;<br> УстановитьОтбор(Элемент.Имя);<br><br>КонецПроцедуры<br>*****************************************<br>&НаКлиенте<br> <br>Процедура УстановитьОтбор(ИмяЭлемента)<br> <br>СписокОтбора = ПолучитьСписокОтбора(ИмяЭлемента); //получили список нужных кодов для отбора<br> <br> Форма = ПолучитьФорму("Справочник.ИмяСправочника.ФормаВыбора",,);<br><br> ЭлементОтбора = Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));<br> ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Код");<br> ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;<br> ЭлементОтбора.Использование = Истина;<br> ЭлементОтбора.ПравоеЗначение = СписокОтбора; <br> <br> Форма.Открыть();<br> <br>КонецПроцедуры<br>**************************************************<br> <br>Форма открывается с необходимым отбором, но при выборе значения из этой формы в поле реквизита оно не встает.<br> <br>Нашла на форумах что в модуль формы выбора справочника нужно добавить<br> <br>*************************************************<br> &НаКлиенте<br><br> Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)<br><br> ОповеститьОВыборе(ВыбранноеЗначение);<br><br>КонецПроцедуры<br>*************************************************<br> <br>Не помогло. При отладке туда даже не заходит... При двойном клике на выбранном элементе справочника форма выбора закрывается но поле остается пустым."

Tanya
читатель
офлайн
Дата регистрации: 03.12.2001
Сообщений: 8412
Пост №2
 
15.08.2012 14:18

"> Не помогло. При отладке туда даже не заходит...<br>Потому как сама отключила<br>СтандартнаяОбработка = Ложь;"

Лада-НТ
читатель
офлайн
Дата регистрации: 04.02.2009
Сообщений: 72
Пост №3
 
15.08.2012 14:26

Ну да, иначе открывалось две формы выбора, одна с отбором и одна без

Tanya
читатель
офлайн
Дата регистрации: 03.12.2001
Сообщений: 8412
Пост №4
 
15.08.2012 14:39

Конечно, ведь ты потом в процедуре установки выбора сама открываешь форму.

Петров-В
читатель
офлайн
Дата регистрации: 23.01.2011
Сообщений: 581
Пост №5
 
15.08.2012 16:04

>При отладке туда даже не заходит...<br>Потому что "Процедура ОбработкаВыбора" надо писать на той же форме, где РеквизитНачалоВыбора. Как событие этого реквизита.<br>И в ней написать что-то типа:<br>Реквизит= ВыбранноеЗначение<br> <br>А "ОповеститьОВыборе(ВыбранноеЗначение)" надо написать в обработке события "Выбор" и "ВыборЗначения" в форме выбора, как события элемента "Список".

Skromnyi
читатель
офлайн
Дата регистрации: 10.01.2009
Сообщений: 31
Пост №6
 
16.08.2012 10:21

"Во первых Вы не передали владельца формы при вызове "ПолучитьФорму" поэтому и не возвращается выбранное значение<br>Во вторых, 1С рекомендует использовать не "ПолучитьФорму" а "ОткрытьФорму" и туда передавайте параметры открытия формы, т.е. у Вас должно быть что-то типа:<br> <br>&НаКлиенте<br>Процедура РеквизитНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)<br>СтандартнаяОбработка = Ложь;<br>СписокОтбора = ПолучитьСписокОтбора(Элемент.Имя); //получили список нужных кодов для отбора<br>ПараметрыФормы = Новый Структура ("Отбор", СписокОтбора );<br>ОткрытьФорму("Справочник.ИмяСправочника.ФормаВыбора",ПараметрыФормы ,Элемент); <br>КонецПроцедуры"

Лада-НТ
читатель
офлайн
Дата регистрации: 04.02.2009
Сообщений: 72
Пост №7
 
16.08.2012 11:37

Если делаю через ОткрытьФорму, то форма открывается без отбора. Отбор должен быть Код в списке СписокОтбора . Через ОткрытьФорму я так понимаю можно только установить Код равно СписокОтбора?<br>В процедуру ОбработкаВыбора не приходит совсем, то есть я понимаю что Форма справочника значение вобще не передает.

Skromnyi
читатель
офлайн
Дата регистрации: 10.01.2009
Сообщений: 31
Пост №8
 
16.08.2012 11:44

какой у Вас код в процедуре ПолучитьСписокОтбора?

Лада-НТ
читатель
офлайн
Дата регистрации: 04.02.2009
Сообщений: 72
Пост №9
 
16.08.2012 12:55

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

Skromnyi
читатель
офлайн
Дата регистрации: 10.01.2009
Сообщений: 31
Пост №10
 
16.08.2012 12:58

"нет, не только равно. Если Вы передаете массив в качестве параметра, то автоматом будет "ВСписке". <br>В предыдущем посте я немного ошибся, надо поменять строки:<br> <br><pre>СписокОтбора = ПолучитьСписокОтбора(Элемент.Имя); //получили список нужных кодов для отбора<br>УсловияОтбора = Новый Структура ("Код", СписокОтбора);<br>ПараметрыФормы = Новый Структура ("Отбор", УсловияОтбора ); </pre><br><br><br><pre> </pre>"

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация