Редактирование типа данных 1с где найти
В модели разработки прикладных решений 1С:Предприятия для ряда сущностей предметной области используется объектный подход манипулирования данными.
Эти сущности описываются в конфигурации объектами метаданных:
-
; ;
- ПланВидовХарактеристик;
- ПланСчетов;
- ПланВидовРасчета.
С точки зрения модели данных 1С:Предприятия, в базе данных для этих сущностей хранятся объекты.
Рассмотрим состав типов, используемых для манипулирования этими сущностями в конфигурации на примере справочника ( для других перечисленных объектов метаданных имеется аналогичный состав типов ).
Справочник хранится в таблице. Запись (строка) таблицы определяет объект базы данных – элемент справочника. Но объект базы данных включает не только запись в основной таблице справочника, но и все записи всех табличных частей справочника, относящиеся к данному объекту. Таким образом, объект базы данных включает в себя:
- запись основной таблицы;
- записи табличных частей.
Объектные таблицы - это справочники, документы, планы видов характеристик и т.д. (все, что имеет ссылку) - характеризуются тем, что каждая запись имеет внутренний уникальный идентификатор (GUID), которая генерируется автоматически при записи объекта в базу. Поэтому, например, если создать элемент справочника, удалить его, а потом создать элемент с точно такими же значениями всех абсолютно реквизитов, ссылка все равно будет другая, так как с точки зрения системы это уже другой объект (несмотря на то, что для пользователя визуально все тоже самое, те же значения всех реквизитов).
Необъектные таблицы - предназначены для хранения сущностей, не имеющих объектной природы (например, табличные части справочников, регистры сведений). Уникальность их записей определяется набором измерений и никакого дополнительного уникального идентификатора не существует. Поэтому, если вы удалите запись, а потом добавите точно такую же, с точки зрения логики программы это будет одно и тоже.
Тип СправочникиМенеджер
Тип СправочникиМенеджер предназначен в основном для доступа к менеджерам конкретных справочников. Кроме того, он имеет метод ТипВсеСсылки (), который позволяет получить значение ОписаниеТипов , содержащее типы ссылок всех справочников конфигурации. Например, с помощью данного значения (используя метод СодержитТип ()) можно проверить, является ли тип некоторого значениям типом ссылки какого-либо справочника.
Тип СправочникМенеджер
Тип СправочникМенеджер предоставляет доступ к общим действиям, относящимся к конкретному справочнику . С помощью его методов выполняются действия, относящиеся к справочнику, а не к его конкретным объектам, например:
- создать новый объект справочника;
- найти объект справочника по коду, и т.д.
Данный менеджер является своего рода "точкой входа" в конкретный справочник в объектной модели встроенного языка.
Объекты типа СправочникиМенеджер и СправочникМенеджер имеются в системе в единственном экземпляре.
Тип СправочникСсылка
Справочник хранится в таблице. В таблице справочника присутствует поле Ссылка, которое хранит значения, однозначно идентифицирующие объекты (элементы справочника) в базе данных 1С:Предприятия. Если в какой-либо другой таблице (табличной части) нужно сослаться на некоторый объект базы данных, то в поле этой таблицы будет храниться именно значение ссылки.
Значение типа СправочникСсылка – хранит ссылку, идентифицирующую объект в базе данных 1С.
Фактически значение СправочникСсылка хранит только внутренний идентификатор, хранящийся в поле Ссылка таблицы справочника. Это значение:
- хранится в полях других таблиц базы данных,
- выбирается в поле ввода,
- указывается в параметрах запроса при поиске по ссылке и т.д.
Важно, что значение типа СправочникСсылка можно сравнивать с другим значением типа СправочникСсылка и они буду всегда равны, если это ссылка на один и тот же объект в базе данных (независимо от способа получения и от того откуда получено значение).
Тип СправочникОбъект
Значение типа СправочникОбъект используется (в основном):
- для создания нового объекта,
- изменения существующего объекта,
- удаления объекта,
- для отображения и редактирования всех данных элемента справочника в форме элемента,
- при редактировании строки списка справочника ( при отображении строк списка СправочникОбъект не используется ).
Для одного и того же элемента справочника можно получить несколько объектов типа СправочникОбъект:
- При сравнении этих значений они будут равны, только если это один и тот же объект встроенного языка.
- Два объекта встроенного языка, полученные для одного элемента справочника, не будут равны, даже если в них считан один и тот же объект базы данных и совпадают все данные объекта.
СправочникОбъект оптимизирует запись изменений в базу данных, например:
- если не менялись реквизиты самого объекта, то будет записываться только минимальная информация об изменении;
- если не менялись строки табличной части, то табличная часть записываться не будет;
- если менялись только отдельные строки или добавлялись строки, то будут записываться только измененные и добавленные строки;
- если строки удалялись или изменялся порядок строк, то будут записываться все строки табличной части.
Т.о. для манипулирования справочником во встроенном языке существуют два основных типа СправочникСсылка.ХХХХ и СправочникОбъект.ХХХХ , где ХХХХ — имя справочника в метаданных.
Важно, что имеются отдельные типы для каждого справочника, они появляются в системе при создании справочника в метаданных. Таким образом, типы ссылок двух разных справочников не будут совпадать между собой.
Отличие типов СправочникСсылка и СправочникОбъект:
- значение типа СправочникСсылка хранит ссылку, идентифицирующую объект в базе данных;
- значение типа СправочникОбъект позволяет считывать и записывать данные объекта.
И СправочникСсылка, и СправочникОбъект предоставляют доступ через свойства к данным объекта - значениям полей таблицы. Однако это происходит совершенно по-разному, так как назначение и использование этих типов принципиально отличается:
- Значение СправочникОбъект хранит свойства непосредственно в объекте встроенного языка. Они заполняются при считывании существующего объекта значениями из базы данных, а для нового объекта инициализируются значениями по умолчанию.
- Значение СправочникСсылка при обращении к свойствам осуществляет считывание информации из базы данных. Однако чтобы считывание происходило не при каждом обращении – данные объектов кэшируются системой.
Если обращаться через ссылки к свойствам одного и того же объекта базы данных, то считывание данных будет происходить только при первом обращении, а так же после того как система выгрузит этот объект из кэша.
Данные объекта удерживаются в кэше около 20 минут , но после интервала в 20 секунд при очередном обращении будет выполняться проверка того, что объект в базе данных не менялся, и, при необходимости, выполняется обновление данных в кэше. Если объект записывается в данной сессии, то он сразу обновляется в кэше. Также имеются ограничения на количество объектов хранимых в кэше. Следует заметить, что в рамках транзакции система использует отдельный кэш, поэтому обращение к данным объекта через ссылки в транзакциях гарантированно выдает актуальные данные.
Для объектов обеспечивается оптимистическая блокировка : объект не может быть записан, если он был изменен в базе данных после считывания.
Этот механизм обеспечивает логическую целостность изменения объектов. Каждый, кто меняет объект, может быть уверен, что его изменения не "затрут" изменений сделанных другими пользователями (сессиями) или другими объектами в этой же сессии. Такая блокировка не препятствует изменению объекта другими сессиями или этой сессией. Однако если с момента считывания объекта и до попытки его записи объект был изменен в базе данных, то запись не будет выполнена.
Механизм пессимистической блокировки запрещает изменения другими сессиями или этой сессией, до снятия блокировки этим объектом встроенного языка. Данный механизм необходимо включать в явном виде методом Заблокировать (). В основном он предназначен для блокировки объектов, редактируемых в форме. Расширение формы элемента справочника автоматически включает блокировку, чтобы пользователь был уверен что, начав редактировать объект, он сможет его записать.
Тип СправочникВыборка
Тип СправочникВыборка предназначен для динамического обхода элементов справочника. Механизм выборок для объектных таблиц не имеет существенных отличий от выборок других таблиц. Можно заметить, что считанные в выборке элементы могут быть получены в качестве значений типа СправочникОбъект. При этом они не будут повторно считываться из базы данных.
ВАЖНО! Выборка всегда считывает данные объектов целиком (все поля и все табличные части).
Тип СправочникСписок
Тип СправочникСписок предназначен для динамического просмотра данных справочника в элементе управления ТабличноеПоле . У него может быть настроен состав считываемых полей (колонок), отбор и сортировка. Список осуществляет считывание данных порциями в процессе навигации пользователем в табличном поле.
Кроме указанных типов значений справочник определяет несколько расширений элементов управления и форм, предназначенных для интерактивного ввода и просмотра данных справочника. Расширения не являются типами данных, а добавляют специфические свойства, методы и события к соответствующим объектам. Кроме того, расширения определяют некоторое специфическое поведение форм и элементов управления при конфигурировании и работе пользователя с системой.
Рисунок отсюда , там же можно почитать подробнее.
На схеме показаны не все возможные объекты и взаимосвязи. Например, метод Скопировать () существует не только у объекта СправочникСсылка, но и у самого объекта СправочникОбъект. Кроме того, у объекта СправочникМенеджер есть методы НайтиПоНаименованию () и НайтиПоРеквизиту (), которые действуют аналогично методу НайтиПоКоду и возвращают ссылку на найденный элемент или пустую ссылку, если элемент не найден. Также на схемах не показаны специфические объекты и объекты типа "Список".
Свойства и методы прикладных объектов
Менеджер прикладных объектов данного типа
- СправочникиМенеджер
- ДокументыМенеджер
- КонстантыМенеджер
- РегистрыНакопленияМенеджер
- ОтчетыМенеджер
- ОбработкиМенеджер
Объекты данного вида обеспечивают доступ к менеджерам конкретного прикладного объекта.
Обычно доступ к таким объектам производится через свойства глобального контекста, например, Справочники.Сотрудники, Документы.Счет, РегистрыСведений.КурсыВалют и т.д.
Эти объекты являются коллекциями значений и позволяют перебрать свои элементы с помощью цикла "Для Каждого".
Менеджер прикладного объекта
- СправочникМенеджер
- ДокументМенеджер
- КонстантаМенеджер
- РегистрНакопленияМенеджер
- ОтчетМенеджер
- ОбработкаМенеджер
Данный объект является "центральным" в объектной модели, из которого можно получить остальные объекты, например, ссылки, выборки, объекты для изменения, наборы записей и т.д. (см. ниже параграф "Взаимосвязь объектов").
Объект этого вида обеспечивает доступ к операциям над прикладным объектом как множеством элементов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новые записи, обращаться к формам и макетам прикладного объекта.
Типичные свойства (для справочников и планов):
- Выбрать()
- НайтиПоКоду()
- НайтиПоРеквизиту()
- ПустаяСсылка()
- СоздатьЭлемент()
- СоздатьНаборЗаписей()
- ПолучитьМакет()
- ПолучитьФорму()
- СправочникСсылка
- ДокументСсылка
- ПланСчетовСсылка
- ПланВидовРасчетаСсылка
Данный объект однозначно идентифицирует объект базы данных (например, элемент справочника, документ) и позволяет обращаться к нему в режиме "только чтение". Через свойства и методы этого объекта можно прочитать реквизиты элемента, обратиться к его табличным частям.
Ссылки хранятся в реквизитах, ссылающихся на элементы данного прикладного объекта, например, в реквизите "Сотрудник" документа "ПриемНаРаботу" хранится ссылка на конкретный элемент справочника "Сотрудники".
Заметьте, что у записей регистров нет ссылок.
Для изменения объекта базы данных (элемента справочника, документа) нужно получить другой объект с помощью метода ПолучитьОбъект().
- ПометкаУдаления
- Дата
- Предопределенный
- Ссылка
- Пустая()
- ПолучитьОбъект()
- ПолучитьФорму()
- Метаданные()
- Скопировать()
- СправочникВыборка
- ДокументВыборка
- ЖурналДокументовВыборка
- РегистрНакопленияВыборка
Этот объект предоставляет возможность обхода (перебора) объектов базы данных. Например, можно перебрать элементы справочника или перебрать документы, входящие в конкретный журнал.
Обратите внимание, что данный объект не является коллекцией значений и, следовательно, нельзя использовать цикл "Для Каждого" для перебора элементов.
Свойства аналогичны свойствам объекта типа "Ссылка".
- СправочникОбъект
- ДокументОбъект
- ПланСчетовОбъект
- ОтчетОбъект
- ОбработкаОбъект
Предоставляет доступ к элементу с возможностью записи изменений в базу данных. Этот объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить.
Для отчетов и обработок через этот объект обычно осуществляется формирование отчета или выполнение обработки.
Если в модуле прикладного объекта (не путать с модулем формы) есть экспортируемые переменные модуля или процедуры/функции, то они дополняют набор свойств и методов именно этого программного объекта.
Для регистров подобного объекта не существует, а изменение данных всегда производится через набор записей (см. ниже).
Свойства аналогичны свойствам объекта типа "Ссылка".
- Записать()
- Удалить()
- Заблокировать()
- Разблокировать()
- Заблокирован()
- Скопировать()
- ПолучитьФорму()
- ПолучитьМакет()
- Метаданные()
- СправочникСписок
- ДокументСписок
- ЖурналДокументовСписок
- ПланСчетовСписок
- РегистрНакопленияСписок
- КритерийОтбораСписок
Этот программный объект предназначен для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке.
Этот объект нельзя создать программно, он создается системой автоматически при размещении на форме табличного поля. Конечно, программно можно создать табличное поле в экранной форме и тогда будет создан объект данного типа.
Набор записей
- РегистрСведенийНаборЗаписей
- РегистрНакопленияНаборЗаписей
- РегистрБухгалтерииНаборЗаписей
- РегистрРасчетаНаборЗаписей
- ПоследовательностьНаборЗаписей
Набор записей позволяет оперировать сразу несколькими записями прикладного объекта (обычно регистра). Набор записей можно целиком прочитать из базы данных, добавить в него записи или изменить их, а зетем записать в базу данных (в одной транзакции).
У документов есть свойство-коллекция "Движения", которое предоставляет доступ к наборам записей по каждому регистру, отмеченному на закладке "Движения". Через это свойство обычно производится формирование движений документа при его проведении.
- Добавить()
- Удалить()
- Очистить()
- Записать()
- Прочитать()
- Количество()
- Выгрузить()
- Загрузить()
- РегистрСведенийЗапись
- РегистрНакопленияЗапись
- РегистрБухгалтерииЗапись
- РегистрРасчетаЗапись
Обеспечивает доступ к одной записи из набора, для того чтобы установить ее измерения, ресурсы и т.д. Этот объект возвращается методами других объектов, например, методом Добавить у объекта типа РегистрНакопленияНаборЗаписей.
Объект типа "Запись" не является постоянным идентификатором конкретной записи регистра, наподобие объекта "Ссылка" для справочников и документов. У записей регистра сведений вообще нет неизменяемого во времени идентификатора и каждая запись регистра однозначно определяется значениями своих измерений (включая системные, например, Период, Регистратор, НомерСтроки)
После создания реквизита, по умолчанию, изменение типа реквизита не доступно.
Для того, чтобы все-таки изменить тип, необходимо открыть карточку реквизита и выбрать пункт меню: "Еще - Разрешить редактирование реквизитов".
После этого появится возможность изменить тип. Система может предупредить, что уже есть введенные значения с данным набором типов и Вы можете все сломать.
Но что именно Вы можете сломать и какой истинный масштаб трагедии Вы не узнаете.
В БСП в части дополнительных реквизитов имеем следующую структуру.
Настройки дополнительных реквизитов хранятся в объекте "ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения"
Сами значения реквизитов хранятся в табличной части "ДополнительныеРеквизиты" соответствующих справочников и документов.
Таким образом для корректного изменения типа у дополнительного реквизита необходимо найти в базе существующие значения данного реквизита, определить минимальный набор используемых им типов и их квалификаторов.
После чего можно изменять тип реквизита, но так, чтобы состав типов содержал уже используемые типы и квалификаторы были не "меньше" используемых.
Пример:
Есть некий абстрактный дополнительный реквизит Реквизит1 с доступными типами Контрагент, Договор, Строка(100)>
Проанализировав базу, определили, что данный реквизит принимает значения с типом Контрагент и Строка. Причем максимальное строковое значение имеет длину 50.
Таким образом, мы можем безболезненно удалить из списка доступных типов данного дополнительного реквизита тип Договор, а длину строковых значений уменьшить до 50. Также можем добавить другие произвольные типы.
Для верности анализ существующих значений в базе лучше проводить в монопольном режиме, чтобы в промежутке между анализом и изменением типа кто-то не добавил новое значение дополнительного реквизита с новым типом.
Для автоматизации описанных действий собственно и написана данная обработка.
На самом деле, на момент написания обработки автор не обнаружил типовой функционал, разрешающий изменения типа (о чем сообщила пользователь
Проверка на удаление используемого типа (вариант изменения нового типа после анализа данных базы);
Проверка на удаление используемого типа (вариант изменения нового типа до анализа данных базы);
Элементы управления - это объекты формы, определяющие визуальное представление формы и предназначенные для интерактивного взаимодействия с пользователем (например, кнопки, флажки, поля ввода и т.д., визуальное объединение "элементарных" элементов управления).
Поведение каждого типа элементов управления по умолчанию задано платформой, однако может корректироваться разработчиком.
Для обычных форм элементы управления настраиваются только конфигуратором, а для управляемых возможны определенные корректировки элементов в режиме 1С:Предприятие.
В элементах управления данные не хранятся!
Для обычной формы полный список элементов можно открыть из меню "Форма" - "Список элементов управления формы" (рис. отсюда ):
- через пункт главного меню "Форма - Вставить элемент управления";
- с помощью командной панели "Элементы управления".
Элемент управления "Панель"
Элемент управления "Панель" предназначен для разделения визуального пространства формы на отдельные закладки, причем на каждой закладке могут быть расположены свои элементы управления.
Особенности использования элемента управления "Панель":
- Если в форму вставлен элемент управления "Панель", то для этого элемента можно задать режим "Автоправила", отличный от одноименного режима формы, причем данный режим будет действовать на все страницы панели. Свойство "Автоправила" обеспечивает автоматическую привязку границ элементов управления. Для Панели автоправила можно выставить в значение, отличающееся от значения родительской формы.
- При размещении элементов управления в форме нельзя разместить один и тот же элемент управления на двух страницах.
- Многостраничная форма может не иметь закладок, если:
- для свойства формы "Отображать закладки" установлено значение "Не отображать";
- отображение закладок отключено программным способом.
- Закладки на форме могут быть расположены сверху, снизу, справа и слева.
-
используя пункт контекстного меню формы "Добавить страницу";
Элемент управления "Поле HTML-документа"
Элемент управления "Поле HTML-документа" предназначен для просмотра или редактирования HTML-документов и позволяет:
- отобразить на форме веб-страницу;
- назначить обработчики для множества событий.
HTML-документ в элементе управления "Поле HTML-документа" может быть сформирован:
- программно;
- загружен из ресурса, указываемого через URL;
- загружен из макета типа HTML-документ.
Редактировать HTML-документ, отображаемый в элементе управления "Поле HTML-документа", можно в режиме 1С:Предприятие (в конфигураторе документ не редактируется).
Элементы формы для списочных значений
В ходе разработчик прикладного решения, может возникнуть задача выбора какого-либо значения из заранее заданного списка. Список значений при этом может быть связан с какими-то данными конфигурации, либо определяться для формы. Эта задача может быть реализована с использованием элементов формы для выбора, ввода и вывода списочных значений:
- "Поле выбора" (пользователь может выбрать значение из списка, который можно как связать с данными, так и определить произвольный для данной формы через опцию "Строки списка выбора");
- "Поле списка" (пользователю показывается полный список значений, список раскрывать не нужно);
- "Поле ввода" (можно выбрать из данных ссылочного типа).
Можно одновременно создать элемент управления "Поле ввода" вместе с поясняющей надписью, представляющей элемент управления "Надпись", для чего необходимо создавать поле ввода через пункт главного меню "Форма - Вставить элемент управления. ".
Особенности работы с элементами формы для списочных значений:
- Элемент управления "Поле ввода" предназначен для:
- ввода значений непосредственно в поле, например, с клавиатуры;
- выбора ссылок на объекты;
- выбора значений из предварительно сформированного списка.
- Тонкая прерывистая линия красного цвета в поле ввода означает, что данное поле обязательно к заполнению.
- Состав кнопок, расположенных справа у элемента управления "Поле ввода", определяется:
- значением свойства поля ввода "Тип значения";
- выбором соответствующего свойства в окне свойств элемента управления.
Отсюда . Первая опция определяется тем, что не каждый тип данных можно открыть скажем на просмотр (например для перечислений). Вторая опция также существует:
Редактор формы используется для создания и редактирования форм объектов прикладного решения.
Формы объектов используются системой для визуального отображения данных в процессе работы пользователя.
Составляющие управляемой формы 1С:
- элемент - объект, определяющий визуальное представление формы и осуществляющий взаимодействие с пользователем;
- командный интерфейс - совокупность команд, отображаемых в форме;
- реквизит - объект, данные которого форма использует в своей работе;
- команда - действие, которое определено в данной конкретной форме;
- параметр - объект, значения которого характеризует саму форму и используются при ее создании (остаются постоянными в процессе "жизни" формы);
- модуль - программа на встроенном языке, отвечающая за работу с элементами и за обработку событий.
Редактор формы содержит несколько закладок, обеспечивающих редактирование всех составляющих формы.
В отдельном окне, в нижней части редактора, отображается внешний вид формы в режиме 1С:Предприятие.
Редактирование элементов формы 1С
Элементы формы 1С
Элементы управления - это объекты формы, определяющие визуальное представление формы и предназначенные для интерактивного взаимодействия с пользователем (например, кнопки, флажки, поля ввода и т.д., визуальное объединение "элементарных" элементов управления).
Поведение каждого типа элементов управления по умолчанию задано платформой, однако может корректироваться разработчиком.
Для обычных форм элементы управления настраиваются только конфигуратором, а для управляемых возможны определенные корректировки элементов в режиме 1С:Предприятие.
В элементах управления данные не хранятся!
Для управляемой формы, список элементов управления доступен из соответствующего окна:
Редактор форм позволяет разработчику использовать широкий набор возможностей для изменения набора элементов формы и, соответственно, внешнего вида формы - того вида, который форма будет иметь в режиме 1С:Предприятие.
Особенности элементов управляемых форм:
- Поведение элементов управлениястандартно, но имеет место специфичное поведение, определяемое расширениями формы, расширениями элементов управления и расширениями, связанными с отображаемыми данными.
- Свойство "Тип значения" элемента управления формы нельзя изменить, если задана связь элемента управления с данными (некоторые элементы управления могут быть связаны с реальными данными формы - например, табличное поле соответствует реальной табличной части).
- Изменение размера элемента управления в диалоге управляемой формы осуществляется с помощью определенных свойств элемента управления.
- добавить элемент "Поле";
- связать его с реквизитом, у которого задан тип "Диаграмма".
Создадим внешнюю обработку, зададим в ней реквизит (HTMLполе) с типом "Строка" (длина строки должна превышать длину URL сайта, иначе будет обрезать):
- поле для реквизита с типом HTMLполе;
- команду перехода ("Команды - Команды формы");
- кнопку действия, которую свяжем с командой перехода.
Результат исполнения обработки:
Редактор позволяет добавлять в форму различные элементы:
- с помощью команды добавления или
- путем перетаскивания реквизитов формы в дерево элементов.
Все элементы формы представляются в виде иерархической структуры, корнем которой является сама форма. Это позволяет быстро перемещаться к нужному элементу формы.
Располагая элементы выше (ниже) в дереве, подчиняя их другим элементам и задавая свойства элементов-групп можно задавать порядок, в котором пользователь будет обходить элементы управления формы при вводе и редактировании данных.
В режиме 1С:Предприятие элементы формы будут обходиться:
- в порядке их иерархии и
- в соответствии с тем, какой тип группировки выбран для групп (вертикальная или горизонтальная).
Если в обычной форме разработчик в явном виде определяет местоположение для каждого реквизита или команды, то в управляемом приложении визуальный интерфейс программа отрисовывает на основе особенностей расположения, размерности, графического выделения объектов (элементов) через их группировку и настройку этих групп.
Редактор форм позволяет добавлять в форму специальные элементы, которые позволяют:
- придать форме собственный узнаваемый стиль;
- сделать доступ к данным простым и понятным;
- разместить большой объем информации на ограниченной площади.
Заголовок каждой группы-страницы отображается на отдельной закладке. Разработчик имеет возможность задать режим отображения закладок (снизу или сверху) в свойствах группы.
Исходный вариант формы элемента:
Элементы "Код", "Услуга" и "Наименование" помещены на разные закладки:
Вид формы в режиме 1С:Предприятие:
Разделители формы 1С
Разделители являются специальными элементами, с помощью которых возможно перераспределение пространства формы без изменения ее размеров.
Платформа в режиме 1С:Предприятие для управляемых форм самостоятельно добавляет эти элементы в форму.
При построении обычных форм используются вертикальные и горизонтальные разделители.
Элемент управления Разделитель позволяет пользователю менять пространство формы, сдвигая ее части. Разделитель может быть как с отображением, так и невидимый.
Наличие разделителя должно интуитивно угадываться при работе с формой, поэтому ближайшие от разделителя по направлениям его передвижения элементы управления размещаются вплотную к нему, таким образом визуально предполагая его расположение:
- вертикальным разделителям устанавливается ширина 6, горизонтальную привязку рекомендуется устанавливать в НеПривязано ;
- горизонтальным разделителям устанавливается высота 6, вертикальную привязку рекомендуется устанавливать в НеПривязано;
- рамку рекомендуется устанавливать в НетРамки . В сложных случаях, когда пользователю может быть тяжело догадаться о наличие разделителя, допускается устанавливать рамку Одинарная .
Разделитель обладает способностью "захватываться" мышью и перемещаться внутри формы в ее пределах с учетом возможности расположения других элементов и ориентации разделителя.
При перемещении разделителя, все элементы, связанные с разделителем, будут изменять свои размеры или перемещаться.
Таким образом, элемент управления "Разделитель" позволяет перераспределять внутреннее пространство формы, изменяя размеры расположенных в ней элементов управления, привязанных к разделителю. Размеры самой формы при этом не меняются.
Модуль формы 1С
Для редактирования модуля формы конфигуратор вызывает редактор текстов и модулей. Этот редактор предоставляет разработчику большое разнообразие возможностей для создания и изменения текста модуля формы.
Модуль формы 1C предназначен для обработки:
- событий, связанных непосредственно с самой формой (например, открытие или закрытие), а также
- событий, связанных с действиями пользователя (например, вводом данных и обработкой корректности их ввода).
Модуль формы компилируется:
- обычной - на клиенте;
- управляемой - четко разграничен по контексту выполнения, поэтому все переменные и методы должны иметь директиву компиляции (если директива в явном виде не указана, тогда эта переменная или метод будут скомпилированы на стороне сервера).
В модуле формы доступны разделы описания переменных и методов, а также раздел основной программы.
К стандартным событиям формы можно обратиться:
- через список процедур и функций (Ctrl+Alt+P) либо
- в палитре свойств самой формы.
Особенности модуля управляемых форм:
- модуль управляемой формы четко разделяется на контекст: каждая процедура (функция) должна иметь директиву компиляции;
- в модуле управляемой формы можно объявлять процедуры и функции, объявлять переменные и описывать раздел основной программы;
- в управляемой форме можно обработать событие записи элемента (присутствует только для форм объектов - справочников, документов и некоторых других).
Реквизиты формы 1С
Редактирование реквизитов формы выполняется в списке, который позволяет создавать новые реквизиты, изменять имеющиеся и удалять ненужные реквизиты.
Свойства реквизитов задаются с помощью палитры свойств .
Если у формы существует основной реквизит, определяющий поведение формы, отличное от типового, - он выделяется жирным шрифтом.
Командный интерфейс формы 1С
Командный интерфейс 1С - это основное средство навигации пользователя по функциональности конфигурации.
В системе 1С:Предприятие он строится на основе иерархии подсистем, которую должен создать в конфигурации разработчик, и отражающую для пользователя структуру функциональности прикладного решения (подробнее читай Командные интерфейсы 1С).
Все прикладные объекты конфигурации (справочники, документы, отчеты и т. д.) привязываются разработчиком конфигурации к подсистемам. Иерархия подсистем должна отражать структуру функциональности именно так, как она будет представляться пользователю.
Уже на основе этой информации (структуры подсистем и привязки объектов к подсистемам) платформа автоматически строит командный интерфейс для пользователя. Пользователю отображается структура прикладного решения (иерархия подсистем) и предоставляются стандартные команды доступа к функциональности прикладных объектов (вызов списков справочников, документов, открытие отчетов, обработок и т. д.). Однако разработчик, разумеется, может отредактировать предлагаемое системой построение командного интерфейса (изменить порядок, видимость команд). Для этого предназначен целый ряд редакторов командного интерфейса, которые позволяют настраивать различные части интерфейса программы.
Командный интерфейс формы редактируется в дереве. Основные ветви дерева содержат команды, добавленные в панель навигации окна, в котором будет показана форма, и в командную панель формы. Внутри каждой из этих ветвей команды разделены по стандартным группам.
Часть команд в командный интерфейс платформа добавляет автоматически. Наряду с этим разработчик самостоятельно может добавить в командный интерфейс команды, перетащив их из списка команд формы, стандартных команд или из списка доступных глобальных команд.
Для всех команд, добавленных в командный интерфейс, разработчик может задать их видимость для различных ролей, определенных в конфигурации.
Команды формы 1С
Команды формы редактируются в списке. Разработчик имеет возможность:
- добавить, удалить команды формы;
- задать свойства команд с помощью палитры свойств;
- назначить для команды процедуру, которая будет выполняться при вызове этой команды пользователем.
На закладках "Стандартные команды" и "Глобальные команды" разработчику предоставляются списки команд, генерируемых платформой и доступных для использования в данной форме. Их свойства изменять нельзя, можно только добавлять их в форму.
С помощью мыши разработчик может перетащить команду в командный интерфейс формы (платформа автоматически нарисует кнопку). Также можно перетащить команду и прямо в дерево элементов, если нужно, например, отобразить эту команду в виде кнопки, расположенной в форме (платформа автоматически нарисует кнопку).
В 8.2 эту возможность убрали из целей производительности, Максим Радченко пишет в своей книге:
В версии 8.2 не поддерживается режим редактирования ссылочных данных информационной базы в списке. Данные можно редактировать только в форме.
При работе в режиме управляемого приложения свойство объекта конфигурации Способ редактирования игнорируется, и данные редактируются всегда в отдельной форме.
Это относится ко всем таблицам, источником данных которых является динамический список.
Если же таблица имеет другой источник данных (табличная часть, дерево значений и т.д.), то ее данные редактируются непосредственно в списке
В обычных формах, программно можно установить режим редактирования в списке
Для Регистра Сведений или Справочника - открыть палитру Свойства - закладка - представление - установить способ редактирования В Списке
Похожие FAQ
Еще в этой же категории
Как в форме списка реализовать сортировку по своему реквизиту? 12
Если реквизит примитивного типа, то достаточно установить для свойства реквизита «Индексировать» значение «Индексировать» или «Индексировать с доп. упорядочиванием» (не доступно для реквизитов типа ХранилищеЗначения). Если же реквизит ссылочного типа Сортировка списка по произвольной колонке? 7
В процедуру ПриОткрытии или в конец модуля добавить: ЭлементыФормы.РегистрСведенийСписок.НастройкаПорядка.НомерСоглашения.Доступность=Истина; Где НомерСоглашения - Колонка в списке регистра сведений по которой нужно сортировать! Далее щелкнув Оформление строки в ПриПолученииДанных или ПриВыводеСтроки 7
Событие ПриПолученииДанных использется для оформления ячеек строк данных, отображаемых табличным полем. Обработчик данного события вызывается табличным полем в тех же случаях, что и обработчик ПриВыводеСтроки , т.е. при обновлении данных, отображ Табличное поле ~ Как получить строки табличного поля, отобранные отбором? 4
ОтборСтрок = ТабличнаяЧастьИсточник.ОтборСтрок ; ПостроительЗапроса = Новый ПостроительЗапроса; ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличнаяЧастьИсточник); // Добавляются необходимые отборы, такие же как в отбор Отбор по списку значений 3
СозданныйСписок = Новый СписокЗначений; СозданныйСписок.Добавить(Перечисления.СтатусЗаявки.Выполнено); СозданныйСписок.Добавить(Перечисления.СтатусЗаявки.ЗакрытиеЗаявки); СозданныйСписок.Добавить(Перечисления.СтатусЗаявки.ОтклоненаРукОтдЗакупок); Посмотреть все в категории Список Справочника, Документов, Регистров
Читайте также: