Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_1 Дневник.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
13.74 Mб
Скачать

Изменение формы объекта

Теперь вы можете заняться третьей задачей. Напомню. В форме учебного дня мало информации (рис. 2.243).

Рис. 2.243. Форма учебного дня

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

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

Рис. 2.244. Форма документа в дереве

А в рабочей области откроется конструктор этой формы (рис. 2.245).

Рис. 2.245. Форма документа

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

В предыдущем задании вы работали с элементами формы. Для одного из элементов вы изменили свойство Формат. А в этом задании вам понадобятся реквизиты формы.

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

ПРИМЕЧАНИЕ

Бывают формы без основного реквизита, но вы их рассматривать не будете.

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

Рис. 2.246. Взрослый велосипедист и молодой велосипедист

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

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

Рис. 2.247. Основной реквизит – список

Если основной реквизит – это объект, то форма будет уметь записывать данные, если это документ – то еще и проводить их (рис. 2.248). Что такое «проводить», я расскажу позже.

Рис. 2.248. Основной реквизит – объект

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

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

Сейчас вы собрались изменять форму документа. В форме у вас единственный реквизит, он же является основным реквизитом. И называется он Объект. Что в этом реквизите? Раскройте его содержимое, нажав мышью на крестик (рис. 2.249).

Рис. 2.249. Состав основного реквизита

В этом реквизите то же самое, что в объекте конфигурации УчебныйДень: Ссылка, Дата, Проведен и т. д. Это стандартные реквизиты. Они не видны в дереве объектов конфигурации. А вот дальше идет табличная часть Уроки. Та самая, которую добавляли вы. Раскройте ее (рис. 2.250).

Рис. 2.250. Реквизиты табличной части в форме

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

А теперь вспомните: где вы записывали, какой учитель какой предмет преподает? Правильно. В справочнике Предметы. И в табличной части как раз есть реквизит, который ссылается на элемент этого справочника. Если вы раскроете реквизит Предмет и посмотрите на его содержимое, то увидите, что в нем есть и кабинет, и учитель. То есть ровно то, что содержится в справочнике Предметы (рис. 2.251).

Рис. 2.251. Состав реквизита «Предмет»

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

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

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

Попробуйте. Потащите мышью реквизит Кабинет и поместите его после элемента УрокиПредмет (рис. 2.252).

Рис. 2.252. Перетаскивание реквизита «Кабинет»

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

Рис. 2.253. Новый элемент «УрокиПредметКабинет»

И если теперь вы посмотрите на форму, то увидите, что в таблице после колонки Предмет появилась еще одна колонка (рис. 2.254).

Рис. 2.254. Новая колонка в таблице

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

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

Рис. 2.255. Учебный день 4 сентября

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

Ничего страшного. Эти данные можно расположить более компактным образом.

Закройте «1С:Предприятие» и вернитесь в конфигуратор.

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

Вызовите контекстное меню у элемента Уроки (это как раз и есть ваша таблица). И выполните команду Добавить (рис. 2.256).

Рис. 2.256. Добавление элемента в форму

В открывшемся окне выберите элемент Группа – Группа колонок и нажмите ОК (рис. 2.257).

Рис. 2.257. Добавление группы

В дереве элементов появится группа (рис. 2.258).

Рис. 2.258. Новая группа

В палитре свойств назовите ее ГруппаКабинетУчитель. А затем с помощью стрелок вверх или вниз поставьте ее после реквизита Предмет (рис. 2.259).

Рис. 2.259. «ГруппаКабинетУчитель»

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

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

Платформа сразу же покажет вам подходящие свойства (рис. 2.260).

Рис. 2.260. Поиск в палитре свойств

СОВЕТ

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

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

Итак, группа, которую вы добавили, располагает элементы вертикально. Перенесите в нее несколько элементов.

Выделите в дереве (удерживая клавишу Ctrl) элементы УрокиПредметКабинет и УрокиПредметУчитель (рис. 2.261).

Рис. 2.261. Выделение нескольких элементов

А затем перетащите их в группу ГруппаКабинетУчитель. У вас получится такая картинка (рис. 2.262).

Рис. 2.262. Колонки, размещенные вертикально

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

Рис. 2.263. Реквизиты, расположенные вертикально

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

Продолжим работать над формой и исправим эти недостатки. Закройте «1С:Предприятие» и вернитесь в конфигуратор.

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

Выделите элемент УрокиПредметУчитель и поставьте его перед элементом УрокиПредметКабинет (рис. 2.264).

Рис. 2.264. Элементы «УрокиПредметУчитель» и «УрокиПредметКабинет»

Откройте свойства группы ГруппаКабинетУчитель. Для этой группы задайте группировку – В ячейке (рис. 2.265).

Рис. 2.265. Группировка «В ячейке»

Внизу вы видите, как это будет выглядеть в форме (рис. 2.266).

Рис. 2.266. Эскиз формы

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

Выделите оба этих элемента, найдите в палитре свойство ЦветТекста (рис. 2.267).

Рис. 2.267. Цвет текста

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

Теперь запустите конфигурацию в режиме отладки и посмотрите, что получилось (рис. 2.268).

Рис. 2.268. Таблица уроков

Так стало гораздо «веселее».

И теперь сделайте еще одно изменение. Чтобы понять, зачем оно нужно, попробуйте в ячейку Домашнее задание ввести какой-нибудь длинный текст. Любой. Например:

Домашнее задание, которое нам задали в самый первый день. Хотя обещали, что ничего задавать не будут (рис. 2.269).

Рис. 2.269. Текст домашнего задания

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

Кроме того, если где-то в середине этой фразы вы захотите перенести ее продолжение на другую строку, то вам это не удастся. Нажатие клавиши Enter просто приведет к тому, что редактирование будет закончено (рис. 2.270).

Рис. 2.270. Редактирование закончено

В результате введенный вами текст будет расположен в одну строку. Если ширина колонки не позволяет увидеть его полностью, вы можете подвести к нему мышь и подождать немного. Появится всплывающая подсказка, в которой он будет показан полностью (рис. 2.271).

Рис. 2.271. Текст во всплывающей подсказке

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

Это легко исправить. Закройте «1С:Предприятие», не сохраняйте этот документ. Вернитесь в конфигуратор.

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

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

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

Итак, выделите в дереве конфигурации реквизит ДомашнееЗадание и найдите в палитре два свойства: Многострочный режим и Расширенное редактирование. Они расположены рядом, и поиском можно не пользоваться.

Установите оба этих флажка (рис. 2.272).

Рис. 2.272. Многострочный режим и расширенное редактирование

Флажок Многострочный режим позволит вам редактировать текст не в одной строке, а в нескольких.

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

Теперь запустите конфигурацию в режиме отладки и снова попробуйте ввести какой-нибудь текст домашнего задания.

В процессе ввода, чтобы перейти на новую строку, нажмите сочетание клавиш Shift + Enter (рис. 2.273).

Рис. 2.273. Ввод нескольких строк текста

Ну, и теперь, если вы не поленитесь и введете длинное домашнее задание, вы увидите, что оно показывается не в две строки, как раньше, а в три (рис. 2.274). Так удобнее.

Рис. 2.274. Показ длинного текста в три строки

А если вы решите его отредактировать, то оно будет показано не в одну строку, как раньше, а в несколько. И это гораздо удобнее (рис. 2.275).

Рис. 2.275. Редактирование текста в несколько строк

Остался один маленький нюанс. После того как реквизит ДомашнееЗадание вы сделали многострочным, автоматически раздвинулись все строки в табличной части документа. И те, где написан текст, и пустые строки тоже (рис. 2.276).

Рис. 2.276. Высота всех строк увеличилась

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

Чтобы это поправить, вернитесь в конфигуратор, откройте свойства элемента формы УрокиДомашнееЗадание. С помощью строки поиска найдите свойство АвтоВысотаЯчейки. Установите флажок (рис. 2.277).

Рис. 2.277. Свойство «АвтоВысотаЯчейки»

Если теперь вы запустите «1С:Предприятие» в режиме отладки и откроете документ, то увидите такую картину (рис. 2.278).

Рис. 2.278. Раздвигаются только заполненные строки

Подробнее

Подробнее вы можете прочитать о редакторе формы в документации «Руководство разработчика. Раздел 27.1. "Редактор формы"».

Подробнее про сочетания клавиш для работы с полем ввода вы можете прочитать во встроенной справке: Главное меню – Справка – Содержание справки – Сочетания клавиш (Конфигуратор) – Поле ввода.

Итак, вы уже создали целое полезное прикладное решение! Да, оно, конечно, обладает пока не очень большими возможностями. Но в нем уже можно хранить расписание занятий и домашние задания. То есть это полноценное прикладное решение, которым можно пользоваться.

А ведь при этом вы не написали пока ни одной строчки программного кода. Все потому, что до сих пор вы занимались визуальным конструированием. И все команды, которые нужно выполнять, платформа подставляла за вас сама. Так, что вы этого даже не замечали.

Но теперь вы подошли к тому моменту, когда одного только визуального конструирования мало. Чтобы продвигаться дальше и сделать прикладное решение более удобным и полезным, вам понадобится использовать встроенный язык. То есть вам понадобится еще глубже проникнуть в «1С:Предприятие». Заняться еще более тонкой настройкой вашего прикладного решения.

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

Демонстрационная база

Прикладное решение, которое должно получиться у вас к этому моменту, содержится в демонстрационной базе «03 ВизуальноеКонструированиеИтог.dt». Как ее подключить, написано в разделе «Как подключить демонстрационную базу».