Справочники
По условию поставленной задачи система хранит в себе списки знакомых нам людей и
событий, происходящих в нашей жизни. При этом, кроме хранения собственно
информации о своих знакомых, хотелось бы иметь под рукой список их контактных
данных и как-то разделять (например: друг, знакомый, член семьи и т. п.). События тоже
бывают разные, и нужно иметь какой-то способ разделять их по статусам.
Примечание. Более подробно об объектах метаданных вида Справочник можно
узнать по этой ссылке:
http://v8.1c.ru/overview/Term_000000168.htm
Таким образом, у нас «прорисовываются» три справочника, связанных с нашими
знакомыми: Друзья, где будут храниться все записи о наших знакомых, ВидыКонтактов,
где мы будем хранить список различных вариантов контактных данных (например:
«телефон», «адрес», «e-mail» и т. п.), и СтатусыДрузей – список назначаемых нашим
знакомым статусов (например, «семья», «друг», «знакомый» и т. п.).
Еще два справочника подходят для хранения данных о событиях: События, где,
собственно, будут регистрироваться произошедшие и планируемые события и
СтатусыСобытий, где мы сможем вести разнообразные статусы, к которым будут
относиться те или иные события (например, «учеба», «спорт», «отдых» и т. п.).
Справочники находятся в ветке дерева, которая так и называется – Справочники.
Добавим новый справочник.
При добавлении справочника открылось уже знакомое нам по подсистемам окно –
окно редактирования объекта конфигурации. Справочник – довольно сложный
объект конфигурации, поэтому для того, чтобы легче и быстрее задать его
свойства, система использует этот диалог.
Хотя все те же свойства справочника можно задать и в палитре свойств справа,
удобнее пользоваться этим диалогом. Последовательно переходя по закладкам
этого диалога, можно заполнить все нужные свойства и ничего не пропустить.
Начнем с имени – ВидыКонтактов. Больше здесь ничего заполнять не нужно – перейдем
на закладку Подсистемы.
Здесь мы укажем, что справочник будет относиться к подсистеме Контакты.
В принципе, для хранения видов контактов мы сделали все, что нужно.
Запустим систему в пользовательском режиме (1С:Предприятие) и посмотрим, как
выглядит справочник ВидыКонтактов.
Чтобы из режима конфигуратор запустить систему в пользовательском режиме
(1С:Предприятие), нужно нажать кнопку Начать отладку (F5).
Система предложит обновить конфигурацию базы данных – согласимся.
После этого система проанализирует изменения, которые мы сделали в объектах
конфигурации, и сообщит, что добавлен новый объект – справочник ВидыКонтактов.
Снова согласимся и скажем, что эти изменения надо принять. Такой контроль
может выглядеть странным в нашем случае, но для больших информационных
баз, содержащих десятки и сотни объектов конфигурации, он совсем не лишний.
После небольшого ожидания система запустится в режиме 1С:Предприятие. Мы
увидим пустое основное окно нашей программы, на которой уже платформой
«1С:Предприятие 8» будет создано четыре раздела: один из которых – Рабочий
стол (Главное), а три остальных по названиям соответствуют заведенным нами
ранее подсистемам – Контакты, События и Финансы.
Интересующий нас справочник расположен в подсистеме Контакты. Поэтому
нажимаем на кнопку Контакты, видим единственный элемент на экране – надпись-
ссылку Виды Контактов слева сверху.
Нажав на эту ссылку, увидим список видов контактов, который в данный момент
пуст.
Для сокращения ручной работы в специальном файле у нас уже подготовлены
демонстрационные данные для заполнения этого справочника. В
пользовательском режиме мы запустим специальную обработку, которая позволит
заполнить этими данными справочник Виды Контактов, чтобы нам не вводить эти
данные вручную.
Чтобы выбрать файл с обработкой, нажмем кнопку Главного меню, которая всегда
нам доступна в левом верхнем углу окна программы.
В главном меню выберем Файл4Открыть… (Ctrl+O)
Файл обработки называется «ЗагрузкаДанныхXML83.epf». Найдем его на диске и нажмем
кнопку Открыть.
Откроется обработка, которая позволит загрузить данные из файлов формата XML.
В открывшейся обработке найдем на диске и выберем файл «01-ВидыКонтактов.xml».
Выбрав файл, нажмем на кнопку Импорт, после чего, через некоторое время, получим
уведомление о том, что данные загружены.
Закрываем окно обработки и возвращаемся к нашему справочнику Виды контактов. Если
список уже открыт – можно нажать F5 для обновления.
Видим, что данные загрузились успешно. Хорошо.
Заметьте, форму списка справочника (то есть форму, в которой отображаются все
элементы этого справочника) мы не создавали. Система сгенерировала ее
автоматически, основываясь на том, как мы описали этот справочник в дереве
объектов метаданных. При этом доступны все команды работы со списком
справочника: добавление новых элементов, удаление, поиск и пр.
Отлично. Закрываем окно программы и возвращаемся в Конфигуратор. Там мы
создадим оставшиеся справочники, по ходу создания рассматривая отличия
одного от другого.
Полностью аналогично справочнику ВидыКонтактов создаем справочник
СтатусыДрузей. Единственное, что его отличает – длина поля Наименование,
которое мы увеличим до 150 на закладке Данные.
Снова запустим систему в режиме 1С:Предприятие, воспользуемся обработкой и
загрузим подготовленные данные в справочник Статусы друзей из файла «02-
СтатусыДрузей.xml».
В результате справочник Статусы друзей будет выглядеть следующим образом.
Теперь создадим основной справочник, который будет хранить всех наших
знакомых – Друзья. Аналогично предыдущим справочникам заполним у него имя
(«Друзья»), привяжем к подсистеме Контакты, перейдем на закладку Данные и
установим длину Наименования равной 150 (в нем мы будем хранить ФИО
людей).
До этого момента ничего нового мы не сделали – получили еще один справочник,
способный учитывать список наших друзей и знакомых, сохраняя их имена в
реквизите Наименование. Согласитесь, мало пользы было бы от просто хранения
списка имен. Поэтому сейчас мы воспользуемся возможностью платформы
«1С:Предприятие 8» и дополним этот справочник необходимыми нам
реквизитами, в которых будем хранить дополнительную информацию о наших
друзьях.
Для хранения дополнительной информации имеется возможность указать
произвольное количество реквизитов в справочнике. В нашем случае мы начнем с
реквизитов Пол, Статус и Комментарий.
В реквизите Пол будем хранить пол знакомого.
В реквизите Статус – один из статусов ранее созданного справочника
СтатусыДрузей.
В Комментарии – любую произвольную информацию о нашем знакомом, которую
захочется сохранить.
Добавляем новый реквизит Пол кнопкой Добавить (Ins) на закладке Данные
нашего справочника Друзья.
Добавление нового реквизита породило вызов уже знакомой нам палитры
свойств. В ней мы указываем Имя реквизита, синоним традиционно заполняется
автоматически. Все хорошо.
Остается одно но – как именно мы будем хранить данные о поле того или иного
знакомого? Как видно по палитре свойств, по умолчанию для нового реквизита
предлагается строковый тип. В принципе, можно оставить все как есть и потом,
при заполнении справочника, каждый раз вписывать руками пол вновь
добавляемых друзей. Но, во-первых, при большом количестве записей, ручное
заполнение однообразной информации может порядком надоесть. А, во-вторых,
вероятен риск ошибки (опечатки) и нечеткость написания (вариантов указания
пола в строке – масса), что затруднит автоматический анализ этих данных в
будущем, если таковой понадобится.
Первое, что может прийти в голову – завести еще один справочник, где сразу
указать оба пола и в будущем использовать эти элементы. Логично, но создание
объекта справочник для всего двух записей довольно избыточная операция. Как
же быть? Выход есть – воспользуемся таким объектом нашей конфигурации, как
Перечисление.
Перечисления – это объекты, которые задаются разработчиком на этапе создания
конфигурации и хранящие в себе ограниченный и заранее известный набор
однотипной информации. Пол как раз идеально подходит для того, чтобы
поместить его не в справочник, а в перечисление.
Для того чтобы создать новое перечисление, оставим пока наш справочник
Друзья как есть, перейдем в дерево конфигурации и найдем там раздел
Перечисления и воспользуемся уже знакомым нам методом добавления нового
объекта конфигурации.
В открывшемся окне нового перечисления заполняем имя – Пол. Относим новое
перечисление к подсистеме Контакты. После чего переходим на закладку Данные.
На закладке Данные добавляем два значения этого перечисления кнопкой Добавить (Ins):
«Мужской» и «Женский».
После того, как значения добавлены, закрываем окно перечисления кнопкой Закрыть. И
попадаем в отрытое ранее окно справочника Друзья. Теперь для реквизита Пол можно
изменить тип со «Строка» на тип только что созданного нами перечисления «Пол». Для
этого устанавливаем курсор на реквизит Пол, а в палитре свойств нажимаем кнопку
выбора в строке типа (если вдруг палитру свойств вы случайно закрыли, ее всегда можно
открыть, нажав правой кнопкой мыши на нужном объекте конфигурации или реквизите и
выбрав «Свойства», а можно просто кликнуть дважды по нужному реквизиту).
В открывшемся окне выбора типа находим наше перечисление Пол, выбираем его и
заканчиваем выбор кнопкой OK.
Корректность выбора нужного типа можно всегда проконтролировать в палитре свойств.
Убедившись, что все сделано верно, возвращаемся в окно справочника Друзья и
продолжаем добавлять новые реквизиты. На очереди реквизит Статус. По аналогии с
Полом, добавляем новый реквизит и выбираем для него тип «СтатусыДрузей»,
расположенный в Справочниках.
Остался реквизит Комментарий, в который мы решили записывать все мысли и заметки,
касающиеся нашего знакомого. Добавляем этот реквизит. Тут нас устраивает вариант
типа по умолчанию – Строка. Не устраивает только длина этой строки, в которую никакая
заметка не поместится. А чтобы не гадать, хватит нам длины строки или нет, установим
для Комментария строку неограниченной длины.
Помня условия нашей задачи, мы, по идее, должны еще создать набор
реквизитов, которые должны хранить в себе контактные данные наших знакомых.
Логично предположить, что раз уж мы завели ранее справочник ВидыКонтактов,
то надо добавить реквизит Контакт этого типа (который будет хранить выбранный
вид) и еще как минимум один реквизит, хранящий в себе значение вида контакта
(пусть он так и будет называться – Значение). То есть для того, чтобы сохранить
адрес знакомого, надо будет выбрать вид контакта «Адрес», а в реквизит
значения записать собственно сам адрес.
Тут надо учесть один момент. Если мы создадим пару «контактных» реквизитов
там же, где делали это только что, то в один момент времени для одного
знакомого сможем сохранить только один контакт – ведь все реквизиты, которые
мы добавляли до этого времени, относятся к одному элементу (записи)
справочника.
Можно, конечно, добавить столько пар «контактных» реквизитов Контакт-
Значение, сколько нам нужно на текущий момент времени. Но тогда сломается
элегантность хранения контактов – ведь у каждого друга будет свой набор
данных. Кроме этого, в случае, если в будущем вдруг появится новый вид
контакта, придется в конфигураторе вновь добавлять очередную пару реквизитов
Контакт-Значение и так каждый раз, когда будет появляться что-то новое.
Благо, ничего подобного из того, что описано выше, делать не нужно. Понятно, что
у каждого человека может быть свой набор контактной информации и платформа
«1С:Предприятие 8» позволяет элегантно решить эту задачу путем формирования
табличных частей для каждого элемента (записи) справочника.
В нашем случае в справочнике Друзья создаем табличную часть Контакты.
Воспользуемся кнопкой Добавить табличную часть, после чего назовем новую
табличную часть «Контакты».
Вернувшись в окно справочника Друзья и установив курсор на только что созданную
табличную часть Контакты, добавим в нее новый реквизит кнопкой Добавить реквизит.
Назовем только что созданный реквизит Контакт и выберем для него тип
«ВидыКонтактов», расположенный в Справочниках.
Аналогичным образом добавим реквизит Значение строкового типа (длина строки – 1024).
На этом создание справочника Друзья можно считать законченным. Посмотрим,
что у нас получилось с точки зрения пользователя. Запускаем пользовательский
режим – кнопка Начать отладку (F5).
Снова соглашаемся на предложение обновления конфигурации и принимаем
изменения в структуре информации конфигурации.
Переходим в уже знакомый нам раздел Контакты и смотрим, что у нас с Друзьями.
На данный момент этот справочник пуст. Открываем обработку
«ЗагрузкаДанныхXML83.epf» и загружаем с ее помощью файл «03-Друзья.xml».
После чего обновляем список – F5.
В списке появились загруженные люди. Проверим, что содержится в каждой записи о
человеке – достаточно дважды кликнуть по любой из записей.
Хорошо видно, что основные реквизиты, относящиеся к человеку, вынесены в
верхнюю часть окна. А контактные данные, расположенные в табличной части,
удобно размещены внизу.
Обратите внимание на тот факт, что кроме форм отображения списков элементов,
содержащихся в справочниках, система автоматически построила для нас и
форму элемента (записи) справочника.
Закрываем пользовательский интерфейс и возвращаемся в конфигуратор – пора
создать оставшиеся два справочника: СтатусыСобытий и События.
Справочник СтатусыСобытий создадим по аналогии с СтатусыДрузей – длину
наименования тоже сделаем 150. Отличие будет лишь в том, что этот справочник
мы отнесем к подсистеме События.
В пользовательском режиме загружаем данные этого справочника из файла «04-
СтатусыСобытий.xml».
Нам осталось создать последний справочник нашего примера – События.
Его тоже отнесем к подсистеме События. Длину наименования на закладке
Данные сделаем 150. После чего там же сформируем набор дополнительных
реквизитов этого справочника:
ДатаНачала, тип – Дата, состав даты – Дата и Время
ДатаОкончания, тип – Дата, состав даты – Дата и Время
Статус, тип – СправочникСсылка.СтатусыСобытий (воспользуйтесь кнопкой
выбора типов)
Описание, тип – Строка, неограниченная длина
В табличные части добавим новую табличную часть Участники, в которую
добавим единственный реквизит табличной части – Друг типа
СправочникСсылка.Друзья.
В результате этих действий данные справочника будут иметь следующий вид:
Запускаем отладку (F5), соглашаемся со всеми изменениями. В пользовательском
режиме загружаем данные для этого справочника из файла «05-События.xml».
Проверяем результат в разделе События.
Проверим, как выглядит элемент справочника События.
Все, что мы хотели получить для учета событий, происходящих в нашей жизни,
мы получили.
Отлично, справочник Друзья может содержать записи обо всех наших
родственниках, знакомых и друзьях (включая разнообразные контактные данные
этих людей). Справочник События – информацию о произошедших и
планируемых событиях (включая возможность указания друзей, участвующих в
том или ином событии). При этом три «вспомогательных» справочника (Виды
контактов, Статусы друзей и Статусы событий) помогают гибко настраивать учет
различных данных, связанных с «основными» справочниками.
Идем дальше.
Достарыңызбен бөлісу: |