Как работать с элементом управления ПолеВыбора?

В 1С:Предприятии 8.0 значением поля выбора является собственно само выбираемое значение, а не список выбора.

Список выбора, соответствующий полю выбора, задается в свойстве СписокВыбораэлемента управления.

Заполнять список выбора рекомендуется в теле модуля, а не в обработчиках событий «Перед открытием» и «При открытии».

Это связано с тем, что значение, устанавливаемое для поля выбора, сохраняется, если оно найдено в списке выбора этого поля. Если же устанавливаемое значение не найдено в списке выбора - сохраняется значение Неопределено.

Таким образом, поскольку установка значения поля выбора в открываемой форме производится в процессе создания формы (до вызова событий «Перед открытием» и «При открытии») - список выбора поля выбора должен быть заполнен в теле модуля формы.

В противном случае, при создании формы значение, устанавливаемое для поля ввода, не будет найдено в его списке выбора (потому что список выбора еще пустой), и в поле выбора будет сохранено значение Неопределено (несмотря на то, что реквизит, с которым связано поле выбора, имеет другое значение). Последующие попытки заполнить список выбора в обработчиках событий «Перед открытием» или «При открытии» не дадут ожидаемого результата, поскольку в поле ввода ранее уже сохранено значение Неопределено.

Например:

ЭлементыФормы.ПолеВыбора 1 .СписокВыбора.Добавить( 1,"Один"); ЭлементыФормы.ПолеВыбора 1 .СписокВыбора.Добавить( 2,"Два"); ЭлементыФормы.ПолеВыбора 1 .СписокВыбора.Добавить( 3,"Три");


После этого, используя значение реквизита формы, связанного с полем выбора, можно устанавливать текущее и получать выбранное значение в поле выбора.

Пример работы с полем выбора можно посмотреть в модуле формы отчета «РейтингКлиентов» в разделе «Создание отчета РейтингКлиентов» настранице 198.

Не могу найти аналог «семерочного» Активизировать(<имя реквизита>). Нужно периодически программно активизировать элемент формы.

Для указания текущего активного элемента управления, расположенного в форме, следует использовать свойство объекта Форма- ТекущийЭлемент.

Справочник

Есть ли в версии 8.0 аналог методу формы справочника ИспользоватьСписокЭлементов()?

Нет.

Для того чтобы отобразить в списке специально отобранный перечень объектов, следует использовать выборку данных запросом и отображение их в форме в таблице значений или табличном документе. При этом система 1С:Предприятие 8.0 будет обеспечивать полноценное взаимодействие других системных механизмов с такими формами.

При использовании динамических списков документов, справочников и т.д., также можно программно установить отбор по полю Ссылка,и указать, что в качестве вида сравнения будет использовано вхождение в список значений. Такой прием тоже позволяет отображать в списке только определенные объекты. Однако такой способ может иметь только ограниченное применение, потому что динамический список обладает большим количеством универсальных возможностей (установка отбора пользователем, переходы по уровням в иерархических списках и т.д.), и сложно совместить в прикладных решениях эти механизмы с отбором по конкретным значениям ссылок.


623


раткий справочник разработчика


Вопросы при переходе с версии


 


Говорят, что в версии 8.0 нет периодических реквизитов справочников. А как же теперь хранить историю изменения их значений?

Действительно, в версии 8.0 нет возможности создавать периодические реквизиты объектов. На смену им пришел новый, более универсальный механизм, представленный регистрами сведений. Регистры сведений позволяют хранить информацию любого типа на пересечении комбинации значений измерений.

Регистр сведений можно сделать периодическим, и тогда он будет хранить историю изменения этих значений, с заданной точностью (имеется возможность задать различную периодичность регистра сведений - месяц, день, позиция документа и пр.).

В качестве примера можно посмотреть периодический регистр сведений «Цены», хранящий историю изменения цен номенклатуры, в главе «Периодический регистр сведений» на странице 118.

Более подробную информацию можно найти на диске ИТС в статье "Периодические регистры сведений".

Написал процедуру ПриОткрытии() в модуле формы, но она не вызывается, когда я открываю форму. В чем дело?

Дело в том, что в версии 8.0 любому событию формы может быть назначена процедура, которая будет обрабатывать это событие. Имя такой процедуры может не совпадать (а в большинстве случаев и несовпадает) с именем события, поэтому для того, чтобы ваша процедура «ПриОткрытии» стала обрабатывать событие формы «При открытии» необходимо в конфигураторе, в палитре свойств формы, явным образом назначить ее обработчиком этого события.

Для упрощения работы, в версии 8.0 можно создавать шаблоны обработчиков событий формы. Для этого следует выбрать нужное событие в палитре свойств и нажать на символ лупы в конце поля ввода. Система создаст объявление процедуры в модуле формы и свяжет ее с выбранным событием.

Подробнее можно прочитать об этом в главе «Обработчики событий» на странице 546, и на диске ИТС в статье "Процедуры -обработчики событий".