1С-Предприятие 8.0. Практическое пособие разработчика

Интерфейсные объекты


Чем в 1С:Предприятии 8.0 отличаются формы справочников, документов и других объектов?

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

Функциональность формы определяется исключительно реквизитами формы и связанными с ними элементами управления. В большинстве случаев функциональность формы обеспечивается за счет выбора основного реквизита формы. Он определяет наличие расширения формы и обеспечивает специфическое поведение формы для конкретного прикладного объекта. [640]

Например, форма документа будет поддерживать функциональность, ориентированную на редактирование документа, если в качестве ее основного реквизита выбрано значение типа ДокументОбъект.<имя>.

Таким образом, при выборе соответствующих типов реквизитов любая форма может использоваться для редактирования и просмотра любых данных.

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

Более подробную информацию можно найти в разделах "Данные и элементы управления" на странице 502 и "Механизм основных форм" на странице 542.

Выполняется ли автоматическое обновление списков в формах?

Да, выполняется, но не всегда.

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

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






Вычисляемое значение в поле ввода строки табличного поля – процедура "МатериалыКоличествоПриИзменении" в модуле формы документа "ПриходнаяНакладная" в разделе "Создание процедуры обработки события в модуле формы" на странице 74.

Создание обработчиков событий элементов управления – процедура "МатериалыКоличествоПриИзменении" в модуле формы документа "ПриходнаяНакладная" в разделе "Создание процедуры обработки события в модуле формы" на странице 74.

Обработка нескольких событий одной процедурой – модуль формы документа "ПриходнаяНакладная" в разделе "Создание процедуры обработки события в общем модуле" на странице 77.

Использование макета для вывода в табличный документ – процедура "РеестрДокументовОказаниеУслуги" в модуле формы отчета "РеестрДокументовОказаниеУслуги" в разделе "Отчет РеестрДокументовОказаниеУслуги" на странице 166.

Управление группировками при выводе в табличный документ – процедура "ВыручкаМастеров" в модуле формы отчета "ВыручкаМастеров" в разделе "Отчет ВыручкаМастеров" на странице 183.

Работа с элементом управления Список выбора – модуль формы отчета "РейтингКлиентов" в разделе "Создание отчета РейтингКлиентов" на странице 198.

Заполнение диаграммы данными – процедура "Сформировать" в модуле формы отчета "РейтингКлиентов" в разделе "Создание отчета РейтингКлиентов" на странице 198. [649]

Использование сводной таблицы – модуль отчета "Универсальный" в разделе "Создание универсального отчета" на странице 211.

Вывод данных в сводную диаграмму – отчет "ВыручкаМастеров2" в разделе "Отчет ВыручкаМастеров2" на странице 227.

Заполнение диаграммы Ганта данными – процедура "КнопкаСформироватьНажатие" в модуле отчета "ДиаграммаНачислений" в разделе "Создание отчета ДиаграммаНачислений" на странице 366.




Наличие параметра "Элемент" позволяет реализовывать один обработчик для событий нескольких элементов управления и анализировать, какой элемент вызвал событие. В частности, это необходимо, если элементы управления создаются средствами встроенного языка. [642]

Рекомендуется создавать обработчики в модуле нажатием кнопки с изображением лупы в соответствующем событии в палитре свойств. В этом случае будет создан обработчик с необходимым составом параметров.

Почему при активизации элемента управления не вызывается автоматически выбор из списка, как это было в 7.7?

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

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

Оно выполняется теперь не при активизации элемента управления, а при нажатии клавиши "Enter", если значение не заполнено. Таким образом, после активизации элемента управления пользователь может либо ввести несколько первых символов и нажать "Enter" для выполнения поиска по символам, либо сразу нажать "Enter" чтобы инициировать выбор из списка. Такое решение позволяет эффективно сочетать обе возможности.

Для включения режима выбора незаполненного значения нужно установить свойство АвтоВыборНезаполненного. Кроме того, с помощью свойства РежимВыбораНезаполненного можно установить вариант открытия списка при активизации элемента управления.

Однако это рекомендуется делать только в отдельных случаях, так как открытие списка при активизации поля ввода не позволит использовать режим ввода значения по первым буквам.

Почему поиск по первым символам в списке справочника работает только по колонке Наименование?

Это не так.

В динамических списках 1С:Предприятия 8.0 поиск по первым символам выполняется по той колонке, по которой в данный момент упорядочен список (установлена сортировка), независимо от того какая колонка является текущей. [643]



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

Следует сказать, что поиск в динамическом списке выполняется среди десятков и сотен тысяч записей базы данных. Он выполняется не сразу, а с некоторой задержкой, таким образом, чтобы не выполнять поиск при каждом нажатии символа.

Так как поиск ведется по той же колонке, по которой установлена сортировка, то после выполнения поиска пользователь видит не только одну строку с указанными символами в начале, но и соседние строки, имеющие такое же начало. Это позволяет эффективно использовать поиск даже при больших объемах информации отображаемой в списке.

Не отображается новое содержимое табличного поля при программном изменении источника данных.

Элемент управления табличное поле имеет особенное от других поведение при смене источника данных.

Если источник данных меняется интерактивно, в конфигураторе, платформа автоматически создает в табличном поле колонки, соответствующие новому источнику данных. Этот процесс разработчик может наблюдать своими глазами.

Однако если происходит программное изменение источника данных табличного поля, платформа не создает колонки самостоятельно. Создание колонок перекладывается на плечи разработчика, поскольку подразумевается, что разработчик может желать создать собственный набор колонок табличного поля.

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

Пример смены источника данных у табличного поля можно посмотреть в процедуре "ОстаткиМатериаловПриИзменении" в модуле формы документа "ПриходнаяНакладная" в разделе "Изменение источника данных табличного поля" на странице 516.

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


Содержание раздела