<<
>>

5.6. Общие свойства объектов конфигурации

Данный раздел содержит описание общих свойств объектов метаданных.

5.6.1. Основные свойства

Практически все объекты конфшурацнй имеют следующие свойства.

располагающиеся в категории свойств Основные:

Имя имя объекта конфигурации. Имя должно состоять из одного слова, начинаться с буквы и не содержать специальных символов, кроме «_». По имени объекта производится доступ п управление объектом конфигурации средствами встроенного языка.

Синоним - помимо имени можно указать также его синоним.

Если конфигурация создается для использования на разных языках, то следует указать синонимы на используемых языках. При работе с системой «ЮПредприятие» он будет выдаваться в различных списках выбора, заголовках окон, текстах надписей, при формировании интерфейсов с учетом текущего языка. Синоним не имеет ограничений на использование символов. Если синоним не задан, выбирается имя.

ПРИМЕЧАНИЕ. Имя или синоним, выдаваемые пользователю, также называются представлением объекта кинфш лр:ишм

5.6.2, Представление объектов метаданных

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

Сяойстш ПдашТшкора X йі х- - В вод по строке *^0^*ec ... х А

І'ї--»<аес«:|5мд- ':ь?к-5 Фс<)иа1Ъ> ... х Q 1 =opua ov :-a «ГссшаСгыс-з ... x Q Осгеииаі сери* s»5opa ... X Q Реал»*»*:*- !х*дстмг*гв«е --5ьеі

"Tree Пепвяие TVC«2 Г\?СТ>ПГСНИВ товаро e

Рйоо.сж^-'С^ гс-ад.rraerewe тисі

Певсхчч

')чАагіфенатнйноЕаі*код«іго объекта 1 иотогьз.вніє t

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

Например, существует справочник Товары (Имя объекта метаданных - Товары. Синоним объекта метаданных- Товары), элементами которого могут быть товары и услуги. Но в текстах команд вы хотите использовать единственное число дія команды (создать товар) и не хотите отражать информацию об услугах, т. к. она «удлиняет» текст команды. В то же время в форме объекта вы хотите указать пользователю, что в данной форме можно редактировать и товары, н услуги. Тогда имеет смысл свойство Представление объекта заполнить текстом Товар, а свойство Расширенное представление объекта заполнить текстом Товар (услуга). Тогда команда создания элемента справочника товары будет выглядеть как Товар: создать, а заголовок формы - Товар (услуга).

Подробную информацию о том. какие из вышеперечисленных свойств каким объектам метаданных соответствуют см. стр. 2-і 083. Там же можно получить информацию о правилах формирования текстов стандартных команд, подсказок команд п заголовков форм.

5.6.3. Стандартные реквизиты

Для того чтобы на уровне конфигурации переопределять некоторые интерфейсные свойства (такие как синоним, проверка заполнения и т. д.) стандартных реквизитов (например, Код, Наименование, Родитель) и стандартных табличных частей (например, ВидыСубконто, Базо- выеВидыРасчета) прикладных объектов, существует возможность настройки этих свойств.

' ?ютч»аать FS

Ej ХЬкг рекимжгк _ ? X

X XfflmTt M

Стандартные репають

'J ПЕРЕМЕСТИТЬ ВВЕРЇ QJI-SJTA-UB
Лата

-* ПометкаУдалснн» —* Ісилга —1 Псове дек

4 Перенесите pt'.T Ort-SMt-Down

Q Ссриччвдт.

= Станйфтные "

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

Например, для свойства Владелец справочника РасчетныеСчета можно задать синоним Контрагент. Тогда во всех формах представление этого реквизита (Владелец) по умолчанию будет выглядеть как «Контрагент:».

В гом случае если свойства стандартного реквизита (или стандартной табличной части) не заданы, будут использованы свойства стандартных реквизитов по умолчанию.

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

имя стандартного реквизита,

тип стандартного реквизита.

имя стандартной табличной части,

индексирование стандартного реквизита.

ВНИМАНИЕ! Наличие описания стандартного реквизита не меняет его имени, то есть все обращения к реквизиту во встроенном языке it в языке запросов остаются неизменными.

5.6.4. Ввод по строке

Для прикладных объектов (справочники, документы, планы видов характеристик, планы счетов, планы видов расчета, регистры, бизнес- процессы и задачи, а также планы обмена) в свойстве Ввод по строке можно указать те реквизиты, по которым выполняется поиск. Если ввод по строке разрешен (заданы соответствующие реквизиты), то допустимо в поле ввода соответствующего типа не выполнять выбор из формы объекта, а ввести информацию, которая содержится в заданных реквизи тах объекта. : Т™С П; - -Г^ТТ"""' ".Ї, ¦ уШбаяпь ф X w « Вії - ЦЕЗЕИ N Товар - Вак*15 1 boscj «¦ швгте —— ^ Bosa,t?M (шхшпл ш vttoiiTtu Копчестяо їітог'і ' JV Рис. 77. Ввод по строке

Например, у нас есть справочник Номенклатура, в котором находится несколько товаров, начинающихся со слова Bosch. Тогда введя в поле ввода номенклатуры слово bosc, мы получим список товаров, которые начинаются с этого слова (см. рис. 77).

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

для справочников, планов видов характеристик, планов счетов, планов видов расчета, планов обмена - Код и Наименование;

для документов - Номер;

для бизнес-процессов и задач - Номер и Наименование;

реквизиты, имеющие тип Число или Строка, для которых свойство Индексировать имеет значение Индексировать или Индексировать с дол. упорядочиванием. Примером последних может служить поле для ввода артикула, штрихкода, ИНН.

Для формирования списка реквизитов нажмите кнопку выбора и в открывшемся диалоге перенесите в левый список те поля, по которым может производиться ввод по строке. Логе ввода по строке яшшяяшшшт Попп аостухье для ввода по строке Выбранные пол» ТІҐ Ф 1 Штрихкод HI Наименование |0 Код

Дот кул ОК Отмена Справка Рис. 78. Настройка ввода по строке

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

ВНИМАНИЕ! При выполнении поиска данных (во время ввода по строке) действуют ограничения доступа к данным (см. стр. 1-177).

Особенности поведения поля ввода

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

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

Если в результате набора обнаружено несколько объектов, начинающихся с введенного текста, то список этих объектов будет расположен в выпадающем списке (не более 50 элементов).

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

Программное формирование списка выбора

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

Сделать это можно двумя способами:

непосредственно в форме - в этом случае особое формирование списка выбора будет работать только для этого, единственного поля;

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

Подробнее остановимся на втором способе.

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

Набор параметров представляет собой структуру, которая содержит:

строку поиска- текстовую строку, содержащую текст, который пользователь ввел в поле ввода. Данный параметр присутствует всегда.

отбор - структура, которая описывает отбор гак, как его описывает параметр формы Отбор для расширения формы для динамического списка. Данный параметр присутствует всегда.

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

кроме этого, в структуре передаются элементы, которые заданы в свойствах элемента формы - Связи параметров выбора и Параметры выбора.

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

Если разработчик устанавливает параметр СтандартнаяОбработка в состояние Ложь, то ему необходимо самому полностью формировать список выбора (учитывая ограничение в 50 отображаемых элементов).

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

ПРИМЕЧАНИЕ 1. В случае если система сама формирует список выбора, при формировании списка учитываются ограничения доступа к данным (см. стр. 1-177).

ПРИМЕЧАНИЕ 2. Примеры, приведенные ниже, не являются законченным. Они предназначены для демонстрации различных механизмов получении списков выбора.

Так. следующий код в случае любого текста, вводимого пользователем, будет предоставлять выбор из трех товаров, с кодами 00000002. 00000003 и 00000004.

Пример:

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

ДанныеВыбора = Новый СписокЗначений;

ДанныеВыбора.Добавить(Справочники.Товары.НайтиПоКоду("0 0000002")); ДанныеВыбора.Добавить(Справочники,Товары.НайтиПоКоду{"0 0000003")); ДанныеВыбора.Добавить (Справочники.Товары. НайтиПоКоду ( "0000000411) ) ;

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

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

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

Пример:

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

Параметры.Отбор.Вставить("Вид", Перечисления.ВидыТоваров.Товар);

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

Пример:

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Товары.Ссылка как Товар |ИЗ

| Справочник.Товары КАК Товары | ГДЕ

| Товары.Наименование ПОДОБНО ЬНаименование"; Запрос.УстановитьПараметр("Наименование", Параметры.СтрокаПоиска + "%");

Результат = Запрос.Выполнить О; ТаблицаРезультатов = Результат.Выгрузить();

МассивТоваров = ТаблицаРезультатов. Выгрузить Колонку {"Товар") ,ДанныеВыбора = Новый СписОкЗначений; ДанныеВыбора.ЗагрузитьЗначения{МассивТоваров);

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

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

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

Эта структура состоит из следующих элементов:

Значение - собственно значение выбираемого элемента. Элемент структуры с таким именем должен быть обязательно.

ПометкаУдаления - признак, что выбираемое значение помечено на удаление в информационной базе. Элемент структуры с таким именем не является обязательным.

Предупреждение - строка с текстом предупреждения, которое отобразит «1С:Предприятие» при выборе такого элемента из списка значений. Элемент структуры с таким именем не является обязательным. Если в структуре свойство ПометкаУдаления равно значению Истина и не указано свойство Предупреждение, то система автоматически сформирует текст предупреждения. Если свойство Предупреждение указано, то отображается именно оно. Следует помнить, что текст Предупреждение завершается вопросом Продолжить? и отображается в качестве вопроса с вариантами ответа Да и Нет.

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

Также можно совмещать в одном списке выбора и значения типа

Структура, и простые значения.

Пример:

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь; ДанныеВыбора = Новый СписокЗначений;

//Сформируем список с предупреждениями Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Склады.Ссылка, | Склады.Наименование, | Склады.НеИспользовать |ИЗ

| Справочник.Склады КАК Склады";

Результат = Запрос.Выполнить(}; ВыборкаДетальныеЗаписи = Результат.Выбрать О;

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Структура = Новый Структура("Значение", ВыборкаДетальныеЗаписи.Ссылка) ,//Заполним предупреждение

Если ВыборкаДетальныеЗаписи.НеИспользовать Тогда Структура.Вставить("Предупреждение",

"Этот склад не должен использоваться!"},- КонецЕсли,Элемент = ДанныеВыбора.Добавить(); Элемент.Значение - Структура;

Элемент.Представление = ВыборкаДетальныеЗаписи.Наименование; КонецЦикла; КонецПроцедуры

ПРИМЕЧАНИЕ. Если представления элементов (в том числе и элементов структуры с именем Значение) не указаны в явном виде, то они будут получены автоматически.

5.6.5. Формы

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

В тех случаях, когда необходимо обеспечить функционирование конфигурации одновременно в обычном н управляемом режимах, можно использовать дополнительные формы объектов метаданных. При этом «ЮПредприятие» будет автоматически выбирать для использования ту форму, которая соответствует текущему режиму работы. Свойства Товары X ацци х - В вол по с*ро*в Кь'»»*«с»ваг*«« Код. ... X л Ооючаи ос©«а объекта Фор маЭге мечта Ээюввв оеема ФЇПГЇ. Эжниа* оорма emusа ФсемаОыов ... Основно вор ма ваЗора Формавыбора Оо*ов*ла осо**л соб гр>ттль _. X Q 1юлог»*1телы<аР оорма объекте ...«а ?Ьпог>іитег*^ав оорма гр>пяь ..«о ЛЪпогмиельпав оорма списка ... х а Долог»*ітеп«*іав оорма ввбора ... X Q Пологий те пь*а в оорма в»5 групп ! ... X Q Представление объекта Ими объекта метаданных • Рис. 79. Основные и дополнительные формы

Тонкий клиент и веб-клиент оперируют только управляемыми формами.

Значит:

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

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

в обычном режиме — обычная форма.

в управляемом режиме - управляемая форма;

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

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

в обычном режиме обычная форма.

в управляемом режиме - управляемая форма.

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

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

Однако следует учитывать, что на получение форм по умолчанию в толстом клиенте оказывают влияние свойства конфигурации Использовать управляемые формы в обычном приложении и Использовать обычные формы в управляемом приложении: реквизиты формы (включая подчиненные реквизиты первого уровня основного реквизита формы) того же типа, что и тип параметра команды.

Для команд требуется написать процедуру выполнения команды. Для этого служит модуль команды, в котором необходимо реализовать обработчик ОбработкаКомандыО . Данная процедура должна предваряться директивой &НаКлиенте, так как выполнение команды происходит в клиентском приложении. Однако другие процедуры п функции, расположенные в модуле команды, моїут предваряться другими директивами, если это необходимо для выполнения команды. Подробнее про директивы компиляции см. стр. 1-150.

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

5.6.7. Механизм заполнения реквизитов новых объектов

Существует возможность заполнения реквизитов новых объектов при интерактивном создании, при вводе на основании или при явном вызове метода Заполнить (). Это заполнение может выполняться:

значениями отбора при вводе из списка,

конкретными значениями, указанными в конфигурации в свойствах реквизитов (значения заполнения),

значениями, которые разработчик указал в обработчике события

ОбработкаЗаполнения().

Механизм обработки заполнения реализован для следующих объектов:

планы обмена,

справочники,

документы,

планы видов характеристик.

планы счетов.

планы видов расчета.

наборы записей регистров сведений,

бизнес-процессы.

задачи. Для получения данных заполнения в обработчике ОбработкаЗа- полнения () существует параметр ДанныеЗаполнения. В зависимости от тою. каким образом вызван обработчик, значение параметра Дан-ныеЗаполнения может принимать разные значения:

Ввод на основании - в качестве значения параметра передается ссылка на объект-основание. При этом значение параметра ДанныеЗаполнения буде г являться ссылкой на объект-основание базы данных.

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

Ввод нового объекта или записи без использования отбора значение

параметра равно Неопределено,

Ввод нового объекта или записи с помощью глобальной команды значение параметра равно Неопределено.

Программный вызов метода объекта Заполнить() - в качестве значения параметра передается та информация, которая передана в качестве параметра метода Заполнить ().

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

BIIIIM.-VIIIIL! Разработчик может управлять заполнением стандартных реквизитов объектов наравне с самостоятельно созданными реквизитами. Например, можно запретить заполнение стандартного реквизита Родитель, н тогда он не будет автоматически заполняться текущей группой.

Если после исполнения обработчика ОбработкаЗаполнения () параметр СтандартнаяОбработка равен значению Истина, то система автоматически заполнит те реквизиты (включая стандартные), дія которых в метаданных установлено свойство Заполнять из данных заполнения и которые не заполнены в обработчике (выполняется условие ЗначениеЗапол- нено (ЗначениеРеквизита) = Ложь). Свойство Заполнять из данных заполнения автоматически устанавливается системой для некоторых стандартных реквизитов ряда объектов:

для справочников - реквизиты Родитель и Владелец;

для планов счетов, планов видов характеристик и планов видов расчета - реквизит Родитель;

для регистра сведений - ведущие измерения;

для стандартных реквизитов остальных объектов данное свойство автоматически не устанавливается.

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

ДанныеЗаполнения.

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

ПРИМЕЧАНИЕ. При программном создании нового объекта обработка заполнения системой автоматически не вызывается. Для вызова обработчика заполнения существует метод Заполнить (),

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

ВНИМАНИЕ! Заполнение реквизитов из свойства Значение заполнения происходит после вызова обработчика ОбработкаЗаполнения(). Реквизит будет заполнен в том случае, если его значение не заполнено ранее (в обработчике ОбработкаЗаполнения {> или механизмом стандартного заполнения).

Тип значения заполнения совпадает с типом реквизита. При этом в качестве значения этого свойства можно указывать значения примитивных типов или предопределенные дан 11 ые.

5.6.8. Проверка заполнения реквизитов

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

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

Платформа выполняет автоматическую проверку заполнения:

констант;

справочников, документов. отчетов. обработок. планов видов характеристик, планов счетов, планов видов расчета, бизнес-процессов, задач:

реквизитов и стандартных реквизитов,

табличных частей,

реквизитов и стандартных реквизитов табличных частей;

наборов записей регистров бухгалтерии, регистра сведений, регистра накопления, регистра расчета, перерасчетов, последовательностей:

измерений, " ресурсов.

реквизитов и стандартных реквизитов;

реквизитов форм;

реквизитов форм отчетов;

реквизитов форм обработок.

ПРИМЕЧАНИЕ. Проверка заполнения реквизитов выполняется аналогично функции ЗначениеЗаполнено(). Проверка заполнения табличных частей подразумевает, что табличная часть считается заполненной, когда в ней присутствует хотя бы одна строка.

Проверка заполнения может быть вызвана двумя способами:

вызовом метода ПроверитьЗаполнения () (у объекта или формы),

автоматически.

ВНИМАНИЕ! Іх.ж свойство Режим совместимости установлено в значение Версия 8.1, то автоматическая проверка заполнения не работает. Установки по умолчанию

По умолчанию свойство устанавливается в значение Выдавать ошибку для следующих стандартных реквизитов:

ПланОбмена - Наименование;

Справочник - Владелец, Наименование;

Документ-Дата;

ПланВидовХарактеристик- Наименование;

ПланСчетов - Код, Наименование;

ПланСчетов . ВидыСубконто - ВидСубконто;

ПланВидовРасчета - Наименование;

ПланВидовРасчета. ВедущиеВидыРасчета - ВидРасчета;

ПланВидовРасчета. БазовыеВидыРасчета - ВидРасчета;

ПланВидовРасчета . ВытесняющиеВидыРасчета - ВидРасчета;

РегистрСведений - Период;

РегистрНакопления Период;

РегистрБухгалтерии - Период;

РегистрРасчета - ПериодРегистрации, ВидРасчета. ПериодДействияНачало, ПериодДействияКонец;

БизнесПродесс - Дата;

Задача - Наименование.

Порядок работы

Автоматическая проверка заполнения вызывается расширением формы перед интерактивной записью всех объектов, кроме документов, бизнес-процессов, отчетов п обработок. При этом если реквизит является основным реквизитом формы, для его значения будет вызвана проверка заполнения объекта. Для документов проверка заполнения вызывается расширением формы перед проведением. Дзя бизнес-процессов проверка заполнения вызывается расширением формы при старіє. Дія отчетов проверка заполнения вызывается автоматически при вызове команды Сформировать. Дія обработок проверка автоматически вызывается только в rex случаях, если на форме будут размещены стандартные команды формы ОК. Да. Повторить, Пропустить.

Для вызова проверки заполнения системой необходимо, чтобы у формы (с которой происходит работа) было установлено свойство Проверять заполнение автоматически. В этом случае вначале будет вызван обработчик ОбработкаПроверкиЗаполненияНаСервере() формы, а затем обработчик ОбработкаПроверкиЗаполнения () модуля объекта.

ВНИМАНИЕ! Если у формы свойство Проверять заполнение автоматически установлено в значение Истина при выполнении стандартных команд Записать (Провести для документов и т. дЛ, а также стандартных команд формы ОК. Да. Повторить. Пропустить, будет вызван метод ПроверитьЗаполнение(). В противном случае проверка заполнения не вызывается ни д ія формы, ни для объекта.

Процесс проверки заполнения происходит следующим образом:

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

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

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

Разработчик имеет возможность влиять на процесс проверки путем определения в модуле объекта, набора записей и в модуле формы обработчика события ОбработкаПроверкиЗаполнения.

Определив обработчик события, разработчик получает полный контроль над проверкой заполнения. В параметре ПроверяемыеРеквизиты в обработчик передается массив реквизитов, для которых в режиме Конфигуратор указано. что они должны проверяться. Разработчик может произвольно модифицировать этот массив:

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

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

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

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

Параметр события ПроверяемыеРеквизиты содержит имена атрибутов в следующем формате:

для реквизитов п констант — ИмяРеквизита. например Поставщик:

для табличных частей - ИмяТабличнойЧасти, например, Товары:

для реквизитов табличных частей- ИмяТабличнойЧасти . ИмяРеквизита, например. Товары.Номенклатура:

для реквизитов форм - ИмяРеквизита, например ДокументОбъект.

Для реквизитов, входящих в состав функциональных опций (см. стр. 1-197} без параметров, значение опции учитывается при проверке заполнения. Если функциональная опция включена, то реквизит будет включен в список проверяемых реквизитов; если опция выключена, реквизит не будет включен в список проверяемых реквизитов. Это значит, что отключенное поле не будет передано через параметры ПроверяемыеРеквизиты в ОбработкаПро- веркиЗаполнения.

Реквизиты, входящие в состав функциональной опции с параметрами (см. стр. 1-197), всегда включаются в список проверяемых реквизитов (параметр ПроверяемыеРеквизиты). Удаление реквизита из списка проверяемых реквизитов в таких случаях необходимо выполнять в обработчике ОбработкаПроверкиЗаполнения. Дтя этого следует получить значение функциональной опции, указав в качестве параметров необходимые данные объекта. 2. 5.6.8.3. Правила отображения отметки незаполненного

На отображение отметки незаполненного влияют следующие свойства элементов конфигурации:

свойство Проверка заполнения реквизита объекта метаданных,

свойство Проверка заполнения реквизита формы,

свойство Автоотметка незаполненного элемента формы.

свойство ОтметкаНезаполненного элемента формы (доступно только для программного изменения).

Свойство элемента формы Автоотметка незаполненного может быть установлено в значение:

Авто - отметка будет отображаться, если у реквизита формы или реквизита объекта метаданных свойство Проверка заполнения установлено в значение Выдавать ошибку и реквизит, связанный с элементом формы, содержит пустое значение.

Да - отметка будет отображаться для незаполненного элемента вне зависимости от того, в каком состоянии находится свойство Проверка заполнения.

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

Программное изменение свойства ОтметкаНезаполненного имеет более высокий приоритет над ранее описанным поведением элементов формы. Поэтому программная установка этого свойства в значение Истина всегда будет приводить к отображению отметки незаполненного, а программная установка этого свойства в значение Ложь - к снятию отметки. Установленное свойство действует до изменения данных, связанных с элементом формы (например, очистка поля ввода).

ПРИМЕЧАНИЕ. Если свойство ОтметкаНезаполненного установлено у таблицы, то для таблицы, в которой нет строк, будет подсвечена первая строка, а для заполненной таблицы - все строки.

Кроме того, отметка незаполненного также будет отображена, если в окне сообщений есть сообщение (см. стр. 1-350), связанное с конкретным полем формы, вне зависимости от установленных свойств элемента формы н связанных с ним реквизитов. После очистки окна сообщений отметка незаполненного снимается у тех элементов формы, значение свойства ОтметкаНезаполненного которых равно значению Ложь.

5.6.9. Индексирование реквизитов объектов

Большинство прикладных объектов конфигурации имеют в составе подчиненных объектов группу Реквизиты. В этой фуппе указываются дополнительные характеристики объектов.

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

Чтобы ускорить эту работу, следует реквизитам, по которым будет выполняться отбор или сортировка, устанавливать свойство Индексировать. Если свойство установлено (выбрано значение Индексировать или Индексировать с дополнительным упорядочиванием), то подобные задачи будут выполняться эффективнее. Для примитивных типов реквизитов указание индексирования предоставляет пользователям средство сортировки списка по щелчку мыши в области заголовка колонки.

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

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

ВНИМАНИЕ! Механизм дополнительного упорядочивания будет эффективно использоваться только в том случае, когда в режиме 1С:Г1редприятие в условиях сортировки списка указан определенный порядок сортировки: сначала по реквизиту, а затем по представленню.

Если такие условия сортировки не задаются, то использование значения Индексировать с дополнительным упорядочиванием не имеет смысла, т. к. оно будет эквивалентно обычному индексированию, однако размер индекса при этом будет больше.

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

Для реквизитов регистров допускается использование обычного индексирования.

Права

Права доступа к объектам конфигурации можно редактировать как с иомошью редактора нрав доступа ролей (см. стр. 1-174), так и с помощью окна редактирования объекта (см. стр. 1-68).

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

Имеется возможность задавать права доступа:

для собственно объектов метаданных,

табличных частей,

реквизитов объектов.

Быстрый выбор

За способ выбора объектов при заполнении полей ввода отвечают свойства Способ выбора и Быстрый выбор.

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

Допустим, у нас есть справочник Склады. У него свойство Способ выбора равно Обоими способами, а также установлено свойство Быстрый выбор. В этом случае по умолчанию выбор из значении справочника Склады во всей конфигурации будет осуществляться в режиме быстрого выбора. Если отключить свойство Быстрый выбор, то выбор по умолчанию станет Из формы.

Также имеется возможность явного переопределения режима выбора для реквизита объекта метаданных и/иди элемента формы. Для этого достаточно изменить значение Авто свойства Быстрый выбор на значение Использовать - для разрешения быстрого выбора или Не использовать для запрещения быстрого выбора. По умолчанию свойство Быстрый выбор реквизита объекта метаданных и элемента формы установлено в значение Авто.

Таким образом, получается трехуровневая схема управления режимом выбора:

!. Вначале платформа анализирует свойство Быстрый выбор элемента формы.

Если свойство равно Авто, то оно анализируется у реквизита объекта.

В случае равенства Авто выполняется анализ свойств Способ выбора п Быстрый выбор прикладного объекта, соответствующег о типу реквизита. Если на каком-то из первых двух уровней (элемент формы и реквизит объекта) значение свойства Быстрый выбор отлично от Авто, анализ прекращается и выполняется выбор в определенном режиме.

ПРИМЕЧАНИЕ. Если свойство Способ выбора прикладного объекта равно Из формы или Быстрый выбор (но только не Обоими способами), то установка свойств Быстрый выбор реквизита и элемента формы никак не влияет на способ выбора.

5.6.12. Прочее

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

Свойство Форма выбора устанавливает форму, которая будет применяться для выбора значения реквизита. Используется для реквизитов, тип которых образован объектом метаданных, имеющим понятие форма. Например, у справочника Товары есть несколько форм выбора, при этом для стандартного реквизита Родитель необходимо использовать особую форму. Для реализации такого поведения необходимо указать эту особую форму в свойстве Форма выбора стандартного реквизита Родитель (подробнее про стандартные реквизиты см. стр. 1-239).

Формат- для типов Число, Булево, Дата позволяет задать формат, с помощью которого при выводе будут отображаться данные реквизита.

Формат редактирования свойство позволяет задать формат редактирования данных типов Число, Булево, Дата.

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

Для того чтобы ограничить выбор, реквизиту в свойстве Связи параметров выбора устанавливается соответствие имени реквизита, по которому будет выполняться фильтрация выбираемых значений, и реквизита, из которого будет браться значение фильтрации. дме...» • @ <» .І х ¦ # yj;

* і , РасяодТЪвара

¦ LI Спгатэ - e Речей л',

Г

iljgl'Zl X > Звпор»«тьмэ aartHi _[

Рис. НО. Связи парамез ров выбора

ГЬоверка ;і-—rJtMO-l,

VJRACXSA. Раем mj^O^ii Ic Значения, указанные в данном свойстве, будут переданы в открываемую форму через структуру Параметры. При этом значение колонки Имя будет соответствовать ключу элемента структуры, а значение реквизита, указанное в колонке Реквизит, - значению элемента структуры. Если в колонке Имя указано значение вида Отбор.Владелец, то будет создан параметр формы Отбор {типа Структура). В этой структуре будет создан элемент с ключом Код п значением, полученным из реквизита, указанного в колонке Реквизит (в нашем примере - Поставщик).

Если имя у какого-либо элемента Связи параметров выбора совпадает с именем какого-либо элемента Параметры выбора, то приоритет отдается элементу из Связи параметров выбора (элемент из Параметры выбора игнорируется) в том случае, если значение поля, указанного в элементе Связи параметров выбора, переданное в функцию ЗначениеЗаполнено (}, возвращает Истина. Также в окне редактирования связей параметров выбора можно задать режим очистки поля при изменении полей связи. Если значение свойства Режим изменения связанного значения равен Очищать, то поле будет очищено при интерактивном изменении значения связи (изменением считается также повторный выбор значения, ранее находившегося в поле) до наступления

события ПриИзменении. В противном случае (значение свойства равно Не изменять) поле не будет очищено.

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

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

Реквизит не может быть очищен, если он связан с колонкой реквизита типа

ДинамическийСписок.

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

когда у справочника изменяется состояние подчиненности,

когда у справочника изменяется значенне свойства Иерархический справочник.

Это изменение происходит следующим образом:

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

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

Рассмотрим пример: на форме есть поле Покупатель и ноле РасчетныйСчетПокупателя. Для поля РасчетныйСчетПокупателя свойство СвязиПараметровВыбора установлено в значение Объект. Покупатель, которое будет устанавливаться в ноле отбора Владелец. (Дпкуме^тО

S Рвкиюсти

г; Кокапдь

Я Параметр»

Настройся параметров отосие

Caiooe >MrW

Объект Дет* Объект Номер Обмет Сто гам«заи*р Объект ПометкаУдаге™?я Объект Проведен

О к Этмеив Спим

Поступав nor*.

Рис. 81. Очистка связанных элементов формы

Тсс-a J Мод^ть

. Лслотъэо Т«і ГЛ ®сег?и Тогда при интерактивном изменении значения поля Покупатель будет происходить автоматическая очистка значения ноля РасчетныйСчетПокупателя.

Параметры выбора - данное свойство позволяет указать значения параметров, которые будут применяться при выборе значения реквизита. Данное ограничение будет выполняться при открытии формы выбора, при отображении списка быстрого выбора и при выполнении ввода по строке. Например, необходимо ограничить выбор только теми товарами, у которых реквизит Вид равно значению Перечисление. ВидыТоваров.Услуга. Для конкретного значения отбора можно указать список значений. Для этого при редактировании колонки Значение следует выбрать тип Фиксированный массив. П х

Пота

Отмена Справка .

шт

Конлмгдоаиив '

аштаг» - У ^ ^ X 4 в J У [J PacwnToeaoa • ¦ т Рвкщзить Ш Тавтчнй» частм - [D Tosap* ы Пена І - Сумі ¦ 1l1 Формь І » Команд» / t Спойстиа. Товар ' Редакпфо ванне паране ipo и иыбора

Нестройна параметров, которые буд/т «(пользоваться при выборе значений Задается ими параметра и значение

& Ed # *

Их»

Отбор Псме^эУдаґет*мі Отбор Вид

Провесна зэпс Выдавать ошибку Выбор групп и 1Эгементь Свяаі пара и? і Остатки По С кладут кла. бветрьй еьбо ! Не использовать ¦¦¦ Г Форма ЙВ&СІ; Параметры еь&ра

Рис. 82. Параметры выбора

Значения, указанные в данном свойстве, будут переданы в открываемую форму через структуру Параметры. При этом значение колонки Имя будет соответствовать ключу элемента структуры, а колонка Значение - значению элемента структуры. Если в колонке Имя указано значение вида Отбор.Код. то будет создан параметр формы Отбор (типа Структура). В этой структуре будет создан элемент с ключом Код и значением Значение.

Если имя у какого-либо элемента структуры СвязиПараметровВыбора совпадает с именем какого-либо элемента структуры ПараметрыВыбора, то приоритет отдается элементу из структуры СвязиПараметровВыбора (элемент из ПараметрыВыбора игнорируется). Приоритет будет отдан в том случае, если значение поля, указанного в элементе структуры СвязиПараметровВыбора, является заполненным (функция Значе- ниеЗаполнено () для этого значения возвращает значение Истина).

ПРИМЕЧАНИЕ. Значения, указанные в свойстве реквизита Па раме трыВыбора. также используются динамическим списком и системой компоновки данных.

Связь по типу — устанавливает связь с реквизитом, ограничивая тип вводимых значений для поля ввода. Настройка связи по типу имеет смысл дія реквизитов, имеющих составной тип данных, логически связанных с другим реквизитом, имеющим тип ПланВидовХарактеристик.Ссылка. в том числе для связи реквизита, содержащего субконто с реквизитом, содержащим значение типа Ссылка на план счетов. Элемент связи по типу содержит номер вида субконто для случая, если реквизит, с которым выбрана связь по типу, имеет значение типа Ссылка на план счетов.

Например, есть два реквизита - ВидХарактеристики и Характеристика. У реквизита ВидХарактеристики— тин ПланВидовХаракте- ристикВидыХарактеристикТоваров.Ссылка; у реквизита Характеристика - тип Характеристика.ВидыХарактеристикТоваров. В свойствах реквизита Характеристика можно установить свойство Связь по типу - ВидХарактеристики. Тогда тип выбираемого значения будет определяться типом, который задан для выбранного значения плана видов характеристик.

<< | >>
Источник: А.Алексеев, А. Безбородое, Д. Бескоровайнов. 1С:Предприятие 8.2. Руководство разработчика. 2009

Еще по теме 5.6. Общие свойства объектов конфигурации:

  1. 5.1. Свойства конфигурации
  2. 2.5Дерево объектов конфигурации
  3. 2.7. Создание и удаление объекта конфигурации
  4. 5.5. Ветвь конфигурации «Общие»
  5. 1.6. Объекты криминалистической идентификации. Их свойства и признаки
  6. 2.1. Не-стабильность и неустойчивость как свойства современной экономики и связь данных свойств с изменениями на мировых фондовых рынках в конце XX – начале XXI вв
  7. Общие объекты системы компоновки данных
  8. 2.1. Открытие конфигурации
  9. 2.2. Сохранение конфигурации
  10. 2.3Закрытие конфигурации
  11. 2.4Загрузка конфигурации из файла
  12. 2.8. Палитра свойств
  13. Глава 2. Работа с конфигураци
  14. 10. Объекты права интеллектуальной собственности в системе объектов гражданских прав
  15. 2.12. Работа с конфигурацией базы данных
  16. Динамическая конфигурация
  17. 52. НАРУШЕНИЕ ПРАВИЛ БЕЗОПАСНОСТИ НА ОБЪЕКТАХ АТОМНОЙ ЭНЕРГЕТИКИ, НА ВЗРЫВООПАСНЫХ ОБЪЕКТАХ, ПРИ ВЕДЕНИИ ГОРНЫХ, СТРОИТЕЛЬНЫХ ИЛИ ИНЫХ РАБОТ
  18. Некоторые свойства обобщенных функций