- •Режим отладки
- •Добавление данных
- •Объект данных
- •Объект конфигурации описывает, как будут выглядеть его данные
- •Интерфейс
- •Что такое формы?
- •Представления объекта конфигурации в интерфейсе
- •Наименование и код
- •Реквизиты
- •Командный интерфейс раздела
- •Ввод по строке
- •Добавление формы
- •Редактор формы
- •Изменение формы списка
- •Изменение формы объекта
- •3. Встроенный язык
- •Простые типы Почему текст разноцветный
- •Какие бывают инструкции
- •Инструкция присваивания
- •Переменная
- •Точки останова и просмотр значений
- •Изменение значений переменных
- •Контекстная подсказка
- •Выбор имени для переменной
- •Выражение
- •Арифметические операции
- •Операции со строками
- •Тип «Дата» и операции с датами
- •Тип «Булево» и логические операции
- •Булевы операции
- •Инструкция «Если»
- •Красивая программа
- •Инструкция «Цикл»
- •Функции
- •Контекст и область видимости
- •Процедуры
- •Чтение и отладка процедур и функций
Наименование и код
Теперь я хочу показать вам одну интересную особенность. Для того чтобы вы ее увидели, создайте еще один кабинет. Но создайте его «модным» способом – с помощью команды Создать в панели функций текущего раздела (рис. 2.102).
Рис. 2.102. Добавление нового кабинета
Теперь задайте наименование 101.
Нажмите Записать и закрыть.
Откройте список всех кабинетов (рис. 2.103).
Рис. 2.103. Два кабинета с одинаковым номером
У вас получилось два кабинета с одним и тем же номером 101. Это плохо. Так не может быть.
Но это две разные строчки. А чем они отличаются? Они отличаются колонкой Код. В одном случае там 000000001, а в другом 000000002.
Когда вы создавали кабинеты, вы вводили только наименование. Код платформа подставила сама. Может быть, вы неправильно используете эти поля? Может быть, 101 нужно было писать туда, где код? И вообще, зачем нужен Код? И что такое Наименование? Давайте разберемся.
Вспомните эту картинку (рис. 2.104).
Рис. 2.104. Объект конфигурации и объект данных
Я уже говорил, что объект конфигурации не просто описывает стены, в которых будут жить данные. Еще он описывает то, как эти данные будут выглядеть. Он содержит описание того, что вы хотите знать о каждом из объектов данных.
Сейчас вы видели, что стандартно, если ничего не менять, про каждый из объектов данных платформа хочет знать его код и его наименование. Каждая такая вещь, «которую вы (или платформа) хотите знать про объект данных», описывается в объекте конфигурации с помощью реквизита. То есть у вашего объекта конфигурации Кабинеты сейчас есть два реквизита: Код и Наименование. Посмотрите на них.
Закройте сеанс «1С:Предприятие».
Перейдите в конфигуратор.
Раскройте ветку Кабинеты (рис. 2.105).
Рис. 2.105. Реквизиты справочника
Вы видите ветку Реквизиты. Но эта ветка пуста. Где же Код и Наименование?
Дело в том, что в этой ветке будут находиться те реквизиты, которые вы добавите самостоятельно. А Код и Наименование вы не добавляли. Их платформа создала сама. В тот момент, когда вы добавляли справочник Кабинеты.
Такие реквизиты, которые платформа создает сама, стандартным образом, не спрашивая вас, называются стандартные реквизиты. Чтобы их увидеть, откройте контекстное меню у объекта конфигурации и выполните команду Стандартные реквизиты (рис. 2.106).
Рис. 2.106. Команда «Стандартные реквизиты»
На экране, в отдельном окне, появятся все стандартные реквизиты, которые могут быть у справочника (рис. 2.107).
Рис. 2.107. Стандартные реквизиты справочника
Тут их много. Но, когда вы создавали кабинеты, вы видели только Код и Наименование. А для чего остальные?
Во-первых, тут все реквизиты. Вообще все, которые могут быть у справочника. Это не значит, что все они есть у вашего справочника Кабинеты. Например, серым цветом обозначены реквизиты Владелец, Родитель и ЭтоГруппа. Серые они потому, что у вашего справочника Кабинеты их нет.
Во-вторых, не все реквизиты предназначены для того, чтобы пользователь менял их вручную. Но они могут понадобиться вам, разработчику, когда вы будете писать программу на встроенном языке «1С:Предприятия». Это такие реквизиты, как Ссылка, ПометкаУдаления, Предопределенный и ИмяПредопределенныхДанных.
Что остается? Остаются Код и Наименование, которые вы и видели.
|
Благодаря тому, что у объекта конфигурации есть реквизит Код и реквизит Наименование, вы имеете возможность для каждого объекта данных (элемента справочника) указать код этого элемента и наименование этого элемента (рис. 2.108).
Рис. 2.108. Реквизиты «Код» и «Наименование» |
Очень хорошо. Теперь вы знаете, где живут стандартные реквизиты. Пока они вам больше не понадобятся, поэтому можете закрыть это окно.
Теперь посмотрите, как так получилось, что платформа сама придумала какие-то коды для ваших кабинетов. В одном случае там 000000001, а в другом 000000002.
Откройте окно редактирования справочника Кабинеты.
Перейдите на закладку Нумерация (рис. 2.109).
Рис. 2.109. Закладка «Нумерация»
Тут вас будут интересовать два флажка: Автонумерация и Контроль уникальности. Оба эти флажка рассказывают о том, как будет использоваться реквизит Код.
Автонумерация означает, что платформа сама будет придумывать код – по порядку, друг за другом. И вам не нужно вводить его вручную (рис. 2.110).
Рис. 2.110. Код в режиме «1С:Предприятие»
Контроль уникальности означает, что платформа будет следить за тем, чтобы коды не повторялись. Неважно, сама она их придумывает или вы их вводите. В любом случае она проследит за тем, чтобы не было двух одинаковых кодов.
Вот так устроен стандартный справочник. У каждого элемента есть наименование и код. Наименование может быть каким угодно. А код платформа придумывает сама, и он все время разный.
То есть код – это что-то особенное, уникальное для каждого элемента. А наименование – это просто какое-то обозначение, которое может быть одинаковым у разных элементов.
На что это похоже в жизни?
Например, на список ваших друзей. Наименование – это имя друга. Может быть несколько друзей с одинаковыми именами. А что у них разное? А разные у них фамилии (табл. 2.1).
Таблица 2.1. Имя и фамилия
Наименование |
Код |
Юра |
Никитин |
Ваня |
Трофимов |
Юра |
Пестов |
Но может быть, что среди ваших друзей два Юры Никитина. Как быть тогда? Тогда лучше в качестве уникального признака, в качестве кода, использовать не фамилию, а, например, адрес (табл. 2.2).
Таблица 2.2. Имя, фамилия и адрес
Наименование |
Код |
Юра Никитин |
г. Москва, ул. Тверская, д. 5 |
Ваня Трофимов |
г. Москва, ул. Мытная, д. 2 |
Юра Пестов |
г. Москва, ул. Полярная, д. 7 |
Юра Никитин |
г. Минск, ул. Достоевского, д. 3 |
Итак, это стандартное поведение справочника.
А что нужно вам? Вам нужен просто список кабинетов. Каждый кабинет обозначается своим номером. И этот же номер отличает один кабинет от другого. Двух кабинетов с одинаковым номером быть не может.
Значит, номер кабинета – это уникальный признак. Код. А наименование вам вообще не нужно.
Что еще не похоже на стандартное поведение справочника? Код вы хотите вводить самостоятельно. Вам не нужно, чтобы его придумывала платформа. Но при этом нужно, чтобы она следила за тем, чтобы номера кабинетов не повторялись.
Все это вы сейчас и сделаете.
Вы не хотите, чтобы платформа сама придумывала код, значит, флажок Автонумерация нужно сбросить (рис. 2.111).
Рис. 2.111. Сбросить свойство «Автонумерация»
А контроль уникальности нужно оставить, чтобы не было возможности ввести два одинаковых номера кабинета.
Дальше нужно избавиться от реквизита Наименование. Переходите на закладку Данные (рис. 2.112).
Рис. 2.112. Закладка «Данные»
Чтобы избавиться от наименования, установите длину наименования равной 0.
Длина кода. Сейчас она 9 символов. Вам столько не нужно. Для номера кабинета обычно хватает трех символов. Или четырех. Установите 4.
Последнее, что вам понадобится изменить, – это тип кода. Он может быть или числом, или строкой. Число – это 101, 203 и так далее. А строка может понадобиться, если у вас есть кабинеты 101а или 203-б. Для простоты будем считать, что таких кабинетов у вас нет. Поэтому установите тип кода Число.
В результате у вас должно получиться так (рис. 2.113).
Рис. 2.113. Длина наименования 0
Теперь, чтобы не было ошибок, нужно сделать одно изменение, которое платформа не умеет делать сама. Вы убрали наименование, но есть одно место, где оно осталось. Там его нужно убрать вручную.
Перейдите на закладку Поле ввода.
Нажмите кнопку выбора у поля Ввод по строке (рис. 2.114).
Рис. 2.114. Ввод по строке
Здесь нажмите кнопку Исключить поле из списка, чтобы поле Наименование пропало. И осталось только поле Код (рис. 2.115).
Рис. 2.115. Поля ввода по строке
После этого нажмите ОК.
В результате в окне редактирования справочника Кабинеты у вас должно быть так (рис. 2.116).
Рис. 2.116. Ввод по строке – «Код»
Итак, наименование вы убрали совсем. Остался только код. Его вы и будете использовать. В режиме 1С:Предприятие, вы видели это, он так и будет называться – Код.
Но это некрасиво и непонятно. Ведь на самом деле это просто номер кабинета, а никакой не код. Вы можете это исправить!
Откройте стандартные реквизиты справочника Кабинеты. Кстати, обратите внимание, что реквизит Наименование тоже стал серым. Его нет теперь.
Откройте контекстное меню у реквизита Код (рис. 2.117).
Рис. 2.117. Контекстное меню реквизита «Код»
Выполните команду Свойства. Как вы, наверное, уже догадываетесь, откроется палитра свойств. В ней укажите Синоним для поля Код – Номер кабинета (рис. 2.118).
Рис. 2.118. Синоним поля «Код»
Теперь, когда вы запустите «1С:Предприятие», везде вместо Код будет написано Номер кабинета.
Проверьте.
Запустите конфигурацию в режиме отладки. Откройте список справочника Кабинеты. Теперь вы увидите такую картинку (рис. 2.119).
Рис. 2.119. Список кабинетов
Что изменилось?
Во-первых, нет колонки Наименование.
Во-вторых, колонка Код теперь называется Номер кабинета.
В третьих, код раньше был строкой. Теперь он у вас число. Поэтому платформа преобразовала, как смогла, код 000000001 в число 1, а код 000000002 в число 2. Числа платформа всегда прижимает к правому краю, поэтому они оказались справа.
Но ваши кабинеты имеют другие номера. Измените их. Первому кабинету задайте номер 101, а второму – 127 (рис. 2.120).
Рис. 2.120. Новые номера кабинетов
А теперь попробуйте создать новый кабинет с тем же номером 101. Каким хотите способом. С помощью команды Создать, которая есть в форме списка. Или с помощью команды Создать: Кабинет, которая есть в панели функций текущего раздела.
Платформа не даст вам это сделать и сообщит об ошибке (рис. 2.121).
Рис. 2.121. Кабинет 101 уже есть
Тогда напишите номер кабинета 131 и нажмите Записать и закрыть. Он вам тоже пригодится.
Ну что? Здорово?
|
ПОДРОБНЕЕ Подробнее вы можете прочитать о свойствах справочника в документации «Руководство разработчика 8.3. Раздел 5.8.2. "Свойства справочника"». |
Смотрите, сколько всего интересного вы уже сделали! Вы запрограммировали справочник таким образом, что он отслеживает уникальность номера кабинета, который вы создаете. И не позволяет вам создавать кабинеты с теми номерами, которые уже есть.
А ведь при этом вы не написали ни одной строчки программы! Все только с помощью визуального конструирования!
Надо ли создавать в этом справочнике все кабинеты, которые есть в школе? Нет, не надо. Ведь вам понадобятся только те кабинеты, в которых проходят ваши занятия. А как узнать, какие это кабинеты?
Оказывается, что специально узнавать это не нужно. Очень скоро вы увидите, что само собой получится так, что в вашем прикладном решении окажутся только те кабинеты, которые вам нужны.
Учителя
Вспомните, какие данные вы собирались хранить в программе:
предметы,
учителя,
кабинеты,
учебные дни.
Для хранения кабинетов вы создали справочник. Теперь придумайте, как хранить список учителей. Справочник подходит для этого?
Вспомните, какие признаки подсказывают вам, что нужно использовать справочник.
Нужен ли вам список учителей сам по себе? Важно ли вам знать, какие вообще есть учителя в школе? Нет. Значит, по первому признаку не подходит.
Надо ли указывать одного и того же учителя в разных местах программы? Да. Потому что рядом с названием урока вы хотите записывать и фамилию учителя, который проводит урок. И таких мест много, потому что один и тот же учитель может проводить занятия в разные дни. Более того, один и тот же учитель может вести разные предметы.
Поэтому для учителей нужно создать справочник. Вы уже достаточно хорошо ориентируетесь в конфигураторе, поэтому вполне можете сделать это самостоятельно.
Добавьте новый справочник и назовите его Учителя. Посмотрите и решите самостоятельно, какие нужно задать представления для этого справочника, чтобы команды в интерфейсе выглядели хорошо. Чтобы заголовки форм, которые будут открываться, тоже выглядели хорошо и правильно.
После того как вы это сделаете, можете посмотреть мой вариант (рис. 2.122).
Рис. 2.122. Справочник «Учителя»
Я добавил только представление объекта – Учитель. Чтобы в форме объекта был правильный заголовок (рис. 2.123).
Рис. 2.123. Форма объекта для справочника «Учителя»
|
ПРИМЕЧАНИЕ Тут вы можете возразить, что в заголовке формы ведь используется расширенное представление. Да, вы правы. Используется оно, если оно есть. А если его нет, то представление объекта. То есть принцип такой. В заголовке формы отображается:
|
В остальных местах интерфейса (в панели функций текущего раздела, в форме списка) подходит тот синоним, который есть у справочника, – Учителя. Поэтому каких-то особенных представлений я не задавал.
Теперь нужно решить вопрос с кодом и наименованием. В наименование удобно записывать фамилию и инициалы учителя. А нужен ли код? Есть вероятность, что в школе окажутся два учителя с одинаковыми фамилией и инициалами? Наверное, совсем исключать это нельзя.
Значит, пусть поле Код остается. Тем более что платформа заполняет его сама. Если вдруг появятся два одинаковых учителя, вы сможете отличить их по коду.
Что еще полезно сделать из того, что вы умеете?
Полезно посмотреть, какая длина наименования у справочника Учителя. Когда вы добавляли справочник, платформа установила стандартную длину наименования 25 символов. Этого хватит, чтобы записать фамилию и инициалы. Я так и буду делать. Но если вы хотите записывать имя и отчество полностью, тогда увеличьте длину наименования до 50 символов, например.
Полезно поменять синоним у стандартного реквизита Наименование. Ведь в это поле вы будете записывать фамилию и инициалы? Значит, задайте ему синоним ФИО.
Как все это делать, вы знаете. Сделайте это самостоятельно.
В результате у вас должно получиться так (рис. 2.124).
Рис. 2.124. Синоним для поля «Наименование»
И в форме объекта, и в форме списка вместо Наименование должно появиться ФИО.
Теперь можно заполнить справочник данными. Всех учителей сейчас добавлять не надо. Вы сделаете это позже, совсем скоро. Сейчас добавьте только одного учителя, чтобы посмотреть, как это выглядит. Пусть это будет Евсеева Ольга Юрьевна (рис. 2.125).
Рис. 2.125. Евсеева Ольга Юрьевна
