Справочники в 1С
Справочники в 1С используются для работы с постоянной или условно постоянной информацией, но, в отличие от констант, данная информация может содержать множество значений. К примеру, если мы разрабатываем конфигурацию для учета движения товаров на складе, то такой информацией может быть вид товара, информация о самих товарах, информация о складах и т.п. Таким образом, справочники необходимы для хранения аналитики учета (то, по чему в дальнейшем будет осуществляться анализ, например, сколько товаров продано). В пользовательском режиме работа осуществляется с элементами справочника. Именно элементы справочника и являются объектами аналитики (именно они и будут анализироваться). Например, у справочника Товары могут быть элементы «Гвозди», «Хлеб» и «Молоко».
Элементы справочника создают операторы в пользовательском режиме 1С. В дальнейшей своей работе они могу использовать тот или иной созданный ранее элемент справочника. Например, элементы справочника Товары могут использоваться в отображении прихода или расхода товара в соответствующих документах.
По умолчанию у любого справочника имеется два реквизита — это Код и Наименование. Это так называемые стандартные реквизиты. Наименование обычно заполняет оператор, а код заполняется автоматически. Иногда стандартных реквизитов Код и Наименование бывает достаточно для работы, но чаще всего прикладная задача требует хранения вспомогательной информации. Для этого создаются реквизиты справочника, позволяющие хранить любую дополнительную информацию об элементе справочника.
Применительно к товарам это может быть артикул, полное наименование, наименование для продажи, вид товара и т.п. Еще новая возможность справочников (в 1С 7.7. этого нет) — это возможность создавать табличные части, в которых хранится однотипная информация, количество которой может быть изменчивым. Например, для товара это могут быть какие-то дополнительные свойства.
Реквизитов и табличных частей может быть неограниченное количество.
Создать новый справочник в 1С достаточно просто. Для этого необходимо зайти в конфигуратор 1С, открыть окно конфигурации, выделить ветвь Справочники, вызвать правой кнопкой мышки контекстное меню, где выполнить команду Добавить.
После этого откроется конструктор справочника, где на закладке «Основные» необходимо ввести имя справочника.
На закладке Данные можно задать длину кода и наименования, тип кода (число или строка) и основное представление элемента справочника (в виде кода или в виде строки).
А также можно создать необходимые реквизиты и табличные части.
В отличие от наименования, код может элементу справочника присваиваться автоматически, если установлен флаг Автонумерация на закладке нумерация.
Реквизиты справочников 1С
Реквизиты справочников 1С создаются на закладке Данные в окне реквизитов.
В качестве реквизитов справочника могут выступать, как примитивные типы, так и ссылочные. Например, мы уже создали справочник ВидыТоваров, а сейчас создадим справочник Товары, где будут реквизиты Артикул (тип Строка) и ВидТовара (ссылка на справочник ВидыТоваров).
В режиме «1С: Предприятия» это будет выглядеть следующим образом.
Обращаю внимание, на что влияет свойство «Основное представление» (закладка Данные конструктора справочника). Если у нас основное представление в виде наименования, то представление элемента справочника в каком-либо реквизите будет в виде наименование этого элемента, как на рисунке представлен элемент справочника ВидыТоваров в реквизите справочника Товары. А если основное представление в виде кода, то тогда представление этого элемента будет в виде кода элемента.
Табличные части справочников 1С
Табличные части создаются на закладке «Данные» в конструкторе справочника.
Можно создавать неограниченное количество табличных частей.
Сделаем справочник Комплектация, у которого будет табличная часть Состав.
У табличной части может быть неограниченное количество реквизитов. Для того, чтобы создать реквизит табличной части, её необходимо выделить и нажать на кнопку «Добавить реквизит».
Реквизиты табличной части могут быть как примитивных типов, так и ссылочных.
Подчиненные справочники 1С
В конфигурации 1С 8.3 можно разрабатывать Подчиненные справочники. В Подчиненном справочнике каждый его элемент имеет владельца, который является элементом или группой другого справочника. Элемент подчиненного справочника не может существовать без владельца.
Сделаем возможность учета единиц измерения. Сначала создадим справочник «Классификатор единиц измерения», в котором будут храниться различные единицы измерения (штуки, килограммы и тд).
У справочника Товары сделаем реквизит основная единица измерения (ссылка на справочник классификатор единиц измерения)
И сделаем справочник, подчиненный справочнику Товары, в котором будут храниться коэффициенты соотношений единиц измерения к основной единице измерения товара. К примеру, основная единица измерения килограмм, но есть еще единица тонна и центнер. Соответственно в первом случае коэффициент будет 1000, а во втором 100.
Создадим справочник ЕдиницыИзмерения.
На закладке Владельцы установим, что владельцем этого справочника является справочник Товары.
И создадим реквизиты: Коэффициент (тип число) и единица измерения (тип ссылка на справочник «Классификатор единиц измерения»).
Вот как это будет выглядеть в режим «1С: Предприятия».
Подробно о подчиненных справочниках читайте в этой статье:
Иерархический справочник 1С
Любой справочник можно сделать Иерархическим – это значит, что пользователь сможет создавать каталоги (или, говоря простым языком, папки), в которых будут содержаться элементы.
Сделаем справочник Товары иерархическим. Для этого переходим на закладку «Иерархия» конструктора справочника и установим флаг «Иерархический».
Иерархия у справочников бывает двух видов: Иерархия групп и элементов и просто Иерархия элементов.
Иерархия групп — это каталоги, которые в себе содержат определенные элементы. А что такое Иерархия элементов? Это когда один элемент подчинен другому.
Посмотрим, как выглядит иерархический справочник в «1С:Предприятии»
Как видите, в форме списка появилось две команды. «Создать» и «Создать группу». При выполнении команды «Создать» будет открыта форма на создание нового элемента, а при выполнении команды «Создать группу» — форма на создание группы (папки).
Вы можете создавать нужные группы, в этих группах создавать элементы, или переносить уже созданные элементы в группы.
Подробно, про иерархический справочник читайте в этой статье:
Что такое предопределенные элементы справочников, и как с ними работать, читайте в этой статье:
Остальные статьи по теме конфигурирования:
Более подробно и основательно работа со справочникам в дается в моей книге:
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Справочники
Справочники в 1С – объекты для хранения однородно постоянной и условно постоянной информации. В справочниках системы 1С Предприятие 8.3 обычно хранят:
- список физических лиц
- список сотрудников
- виды документов
- номенклатуру
- список организаций и т.п.
Каждая запись в справочнике называется элементом справочника.
Основные особенности справочников в том, что они могут быть иерархическими и иметь владельца в виде другого справочника.
Добавление справочника в конфигурацию 1С 8.3.
Для добавления справочника необходимо в дереве объектов метаданных перейти на узел “Справочники” и с помощью контекстного меню данного узла у вас будет возможность добавить новый справочник в конфигурацию.
Для примера добавим новый справочник и на открытой вкладке “Основные” в поле “Имя” введем название: “ПримерСправочника”. Как мы зададим поле “Имя” справочника, так мы сможем обратиться к нему из кода в конфигураторе 1C. Синоним зададим “(Softrema) Пример справочника”.
Синоним – это название справочника, которое мы будем видеть в пользовательском режиме.
Вкладка “Подсистемы”.
На этой вкладке можем отметить к каким подсистемам относится справочник, например, подсистемы могут быть: “Закупки”, “Продажи”, “Казначейство”, “Бюджетирование” и т.п.
Подсистемы служат для того, чтобы логически разделить предназначение объекта метаданных. Не редки случаи, когда один справочник относится к нескольким подсистемам, например, “Продажи”, и к подсистеме “Закупки”, примером служит справочник “Партнеры” в УТ (Управлении торговлей).
Вкладка “Иерархия”.
Содержит настройки для создания справочника иерархичным.
Вид иерархии справочника может выбран один из списка:
- Иерархия групп и элементов. Является классическим вариантом, который содержит папки и вложенные в них элементы.
- Иерархия элементов. При данной настройке элементы справочника могут выступать еще и родителями дочерних записей.
Отличия данных настроек приведены на картинках.
Вкладка “Владельцы”.
У справочника может быть владелец, что бы понять смысл данной опции, представим, что у нас есть два справочника, “Регион” и “Офис”. В справочнике “Регион” перечислены регионы страны, а в справочнике “Офис” представлены офисы, входящие в данный регион. Т.к. “Офис” подчинен своему “Региону”, справочник “Регион” будет владельцем справочника “Офис”.
Вкладка “Данные”.
На данной вкладке можно добавить новые реквизиты справочника и табличные части. На данной вкладке нужно внимательно отнестись к полям “Длина кода” и “Длина наименования” справочника. Длина наименования может быть максимум 150 символов.
Вкладка “Формы”.
Объект метаданных “Справочник” поддерживает следующие формы:
- форма элемента
- форма группы
- форма списка
- форма выбора
- форма выбора группы
Рассмотрим некоторые из них.
Форма элемента открывается тогда, когда мы открываем элемент справочника из 1С Предприятия. Что бы программно открыть новую форму элемента справочника достаточно написать код:
ОткрытьФорму ( «Справочник. ПримерСправочника.ФормаОбъекта» );
Если необходимо открыть форму справочника модально, нужно написать следующий код:
ОткрытьФорму ( «Справочник. ПримерСправочника.ФормаОбъекта» ,, ЭтаФорма );
В третьем параметром указываем значение “ЭтаФорма”, это будет означать, что текущая форма является владельцем открываемой формы. Оба примера необходимо выполнять в функции или процедуре с директивой “&НаКлиенте”, т.к. формы открываются только на клиенте.
Форма списка справочника. Данная форма содержит список всех элементов, когда мы только открываем справочник. Примером может служить список сотрудников или организаций. Что бы открыть форму списка справочника из конфигуратора, нужно написать так:
ОткрытьФорму ( «Справочник. ПримерСправочника.ФормаСписка» );
Форма выбора справочника. Форма выбора справочника открывается, тогда, когда мы выбираем элемент, например, если мы принимаем на работу сотрудника, мы кликаем по реквизиту “Сотрудник” из документа “Прием на работу” и перед нами открывается форма со списком сотрудников, именно эта форма и называется формой выбора справочника.
Как создать новую группу справочника?
Для создания новой группы справочника нужно выполнить код на 1С:
НоваяГруппаСправочника = Справочники . ПримерСправочника . СоздатьГруппу ();
НоваяГруппаСправочника . Наименование = «Новая группа справочника» ;
НоваяГруппаСправочника . Записать ();
Как создать элемент справочника программно?
Новый элемент справочника создается аналогично предыдущему примеру:
НовыйЭлементСправочника = Справочники . ПримерСправочника . СоздатьЭлемент ();
НовыйЭлементСправочника . Наименование = «Имя нового элемента справочника» ;
НовыйЭлементСправочника . Записать ();
Как создать элемент справочника в группе?
Для того, чтобы разместить новый элемент справочника в группе, достаточно в предыдущем примере при создании элемента указать строчку перед вызовом функции “Записать()”:
НовыйЭлементСправочника . Родитель = НоваяГруппаСправочника . Ссылка ;
Как получить нужное нам значение справочника?
Что бы получить значение справочника можно воспользоваться двумя приемами, через запрос и через функции, которые поддерживает сам справочник.
Запросы к справочникам 1С.
Описываются через конструкцию “Запрос”, например, выберем из справочника значения реквизитов Ссылка, Владелец и Родитель:
Запрос = Новый Запрос ( «ВЫБРАТЬ
| ПримерСправочника.Ссылка КАК Ссылка,
| ПримерСправочника.Владелец КАК Владелец,
| ПримерСправочника.Родитель КАК Родитель
|ИЗ
| Справочник.ПримерСправочника КАК ПримерСправочника» );
ЗапросВыборка = Запрос . Выполнить (). Выбрать ();
Пока ЗапросВыборка . Следующий () Цикл
ЗначениеЭлементаСправочника = ЗапросВыборка . Ссылка ;
ВладелецЭлементаСправочника = ЗапросВыборка . Владелец ;
РодительЭлементаСправочника = ЗапросВыборка . Родитель ;
КонецЦикла;
Функции поиска элементов, поддерживаемые самим справочником.
Что бы найти нужный нам элемент, можно воспользоваться функциями:
НайтиПоКоду ( “Код справочника” );
В параметрах нужно указать код искомого элемента справочника
Или
НайтиПоНаименованию ( “Наименование элемента” );
В данном случае необходимо указать название искомого элемента.
Стоит отметить, что получение элементов справочника по коду и наименованию являются не самыми элегантными приемами получения элементов, рекомендуется пользоваться запросами и в них указывать нужные отборы.
Справочники
Справочники хранят в себе одинаковые по структуре данные. Например, справочник товаров или справочник должностей. Справочники это ссылочный тип данных, на любой элемент справочника можно сослаться, в документах, константах или вообще в каких либо реквизитах.
Структура справочника
Справочник обычно описываются следующим набором данных:
Предопределенные реквизиты
У каждого справочника есть номер и наименование. В принципе их можно отключить, указав длину 0. Так же код может быть числовым или текстовым, если код текстовый для удобства сортировки система дополняет код лидирующими нулями на всю длину кода, например если у справочника указана длина кода 9 и справочнику был присвоен код 3 то система дополнит нулями до такого вида: "000000003". Также в случае если имеется распределенная база в код обычно добавляется префикс той базы в которой был создан элемент, например: "ЦН0000003". Нужно учитывать эту особенность если вы соберетесь указывать числовой код, этот объект не сможет корректно работать в распределенной базе. У справочника есть и другие предопределенные реквизиты:
Иерархичность.
Иерархия это способность выводить справочник в виде дерева. Эта возможность бывает очень удобной, в случаях когда в справочнике содержится много информации. В таких случаях бывает полезно разложить номенклатуру "по полочкам". При включении иерархичности у справочника, добавляются два стандартных реквизита ЭтоГруппа и Родитель . Манипулируя значением реквизита Родитель, можно переназначать родителей элемента. Строится иерархия на группах, в эти группы могут входить другие элементы или другие группы. Аналогию можно провести с проводником windows или с большинством файловых систем если вам будет удобно: есть папки в которых могут быть как файлы так и папки в которых в свою очередь тоже могут быть и файлы и папки итд. Иерархия может работать и без групп. То есть родителями могут выступать другие элементы справочника. Такой вид иерархии называется иерархия элементов. Если мы настроили иерархию, у нас появляется возможность настраивать, для какого типа могут использоваться реквизиты, для групп, элементов, или и для того и для другого. Иерархия настраивается на закладке Иерархия свойств справочника.
Подчиненность
Подчиненность это возможность сделать несколько записей одного справочника уникальными для одной записи другого справочника (если вы знакомы с основами реляционных баз даных, это связь, один ко многим ) . Например: у одного контрагента, может быть много договоров, но это будут только его договора, у второго контрагента будет свой набор договоров. В этом случае справочник договоры подчинен справочнику контрагенты. Подчинение справочника реализовано предопределенным реквизитом Владелец , следовательно у одной конкретно взятой записи справочника, может быть только один владелец. В то же время у одного справочника может быть несколько владельцев. Владельцами могут быть не только справочники, а также планы обмена, планы видов характеристик, планы счетов, планы видов расчета. Также можно указать вид объекта для подчинения, доступны элементы, группы или и то и другое. Если для справочника определены подчиненные справочники и у элемента справочника не назначена основная форма, то при открытии элемента этого справочника в режиме предприятия, в управляемых формах система автоматически добавит панель для открытия подчиненных справочников с фильтром на поле владелец по текущему элементу. Такое поведение можно настроить и на уже существующих формах. (скрин)
Ввод по Строке
При выборе ссылочных данных в 1С есть возможность выбрать элемент справочника или документ, набирая ключевые реквизиты объекта который мы хотим найти, выглядит это следующим образом: пользователь, набирает «масло моторное» в поле ввода с типом "Справочник.Номенклатура" и нажимает ввод. 1С находит все записи которые начинаются с названия со слов "масло моторное" и показывает их в виде выпадающего списка под полем где пользователь вводил текст. Такой же ввод возможен и для документов. Это поведение системы можно настроить на закладке «Формы». Там есть поле Ввод по строке , по умолчанию для справочников указана возможность поиска по коду и наименованию, но туда можно добавить и свои реквизиты, для того, что бы добавить этот реквизит, он должен быть индексирован и реквизит должен быть примитивного типа.
Предопределенные элементы справочников.
Предопределенные элементы справочников определяются в конфигураторе на закладке Прочие . При создании элемента указывается имя и наименование предопределенного элемента. Имя и будет являться идентификатором для обращения к этому предопределенному элементу, поэтому к имени предъявляются такие же требования как и к другим идентификаторам(не может начинаться с числа, нельзя использовать пробелы и тд). Наименование может быть любым, его пользователь и увидит в справочнике и сможет его при желании изменить. Пользователь не может изменить имя который был указано при создании этого элемента, зато он может удалить предопределенный элемент.(надо бы найти номер релиза когда это стало возможным). Обращение к предопределенным элементам происходит так:
Таким образом, очень удобно ссылаться на предопределенные элементы из встроенного языка или опираться на них при построении каких то условий. Предопределенные элементы справочников можно использовать в схемах СКД и запросах.
Важно. Контроль за удалением предопределенных элементов лежит на плечах разработчиков, а не платформы.
Для предопределенных элементов справочников, стандартный реквизит Предопределенный имеет значение Истина. Это свойство которое доступно только на чтение, но это не означает, что нельзя "обычный" элемент справочника сделать предопределенным и наоборот. В последних релизах 8.3FIXME(Надо узнать в каких именно), появилась возможность переопределять предопределенные элементы изменяя свойство ИмяПредопределенныхДанных . Например, вот так можно сделать элемент не предопределенным:
И наоборот указав в свойстве ИмяПредопределенныхДанных имя предопределенного элемента справочника, можно сделать его предопределенным. У иерархических справочников возможно указывать предопределенные группы. Предопределенные элементы нельзя создавать у подчиненных справочников. В пользовательском режиме предопределенный элемент отличается, от обычного, следующим образом(показать скрин).
Подсказка. Предопределенные элементы часто используют для того, что бы избавиться в коде от конструкций вида: НайтиПоКоду и НайтиПоНаименованию . Использование этих методов считается дурным тоном, так как наименование и код справочника достаточно часто изменяются. Обычно поступают следующим образом: Создают справочник, например Настройки с единственным реквизитом Значение . После этого в конфигураторе добавляют предопределенный элемент с нужным названием а в режиме 1с Предприятие, задают его значение. Теперь вместо того что бы писать в коде:
или что еще хуже
Можно просто указать:
Классы для работы со справочниками.
Все классы справочника можно увидеть в ветке Прикладные объекты –> Справочники .
Cправочники это элементы которые хранятся в базе данных, считается очевидным, что обращение к любому из классов возможно только на сервере.
Справочник менеджер
Справочник менеджер – можно получить с помощью переменных глобального контекста:
Этот класс служит для:
Получать пустые ссылки:
И много еще разных возможностей которые можно наблюдать в синтаксис помощнике в ветке: Прикладные объекты – >Справочники – СправочникМенеджер.<ИмяСправочника>
Справочник ссылка
Справочник ссылка – самый часто используемый тип. Используется для чтения данных справочника. Его можно получить с помощью НайтиПоНаименованию , НайтиПоКоду и др методов класса СправочникМенеджер . Так же его можно получить с помощь класса Выборка и этот тип данных хранится в реквизите Cсылка объекта класса Справочник объект . В этом классе нам доступны все реквизиты справочника, табличные части и все стандартные реквизиты. Абсолютно все свойства этого класса нам доступны только на чтение. Для того что бы изменять реквизиты справочника нам нужен класс Справочник Объект . Получить его можно с помощью метода Получить Объект() .
Справочник Объект
Класс Справочник Объект отличается от класса Справочник Ссылка не многим, основная его функция обеспечить возможность изменения элемента справочника. Запись происходит с помощью метода Записать()
Справочник Выборка
Справочник Выборка получается с помощью методов Выбрать и Выбрать Иерахически он позволяет обойти элементы справочника в цикле, с помощью метода Следующий() .
Популярные приемы работы со справочниками
Поиск по наименованию.
Несмотря на то, что неоднократно рассматривается поиск элемента справочника по наименованию, "зашивать" в код значения из базы данных считается дурным тоном.
Для поиска по наименованию используется функция НайтиПоНаименованию() . Для использования этого метода необходимо указать наименование по которому будет происходить поиск. Если поиск должен проходить по точному соответствию с указанной строкой то вторым параметром, нужно указать Истина, иначе поиск будет проходить по первым буквам указанного шаблона поиска, то есть если в качестве строки для поиска указать "Слон" то под шаблон попадут и "Слон" и "Слон игрушечный" и "Слонопотам". Поиск можно ограничить определенной группой, если справочник иерархический или владельцем, если справочник подчиненный. Если значение не найдено, метод вернет пустую ссылку того типа справочника для которого производился поиск.
Поиск по коду
Для поиска по коду используется функция НайтиПоКоду() . Для использования этого метода необходимо в параметре "Код" указать код, по которому будет производиться поиск. Если в качестве кода указывается полный путь с учетом иерархии (уровни справочника разделяются символом "/"), то второй параметр поиск по полному коду, необходимо установить в Истина. Например: Номенклатура "Слонопотам" с кодом "001142" находится в папке "Мягкие Игрушки" с кодом "000826" которая находится в папке "Игрушки" с кодом 000375. Тогда можно найти ее с помощью вот такой строки
Или можно искать сразу:
Поиск можно ограничить определенной группой, если справочник иерархический или владельцем, если справочник подчиненный. Если значение не найдено, метод вернет пустую ссылку того типа справочника для которого производился поиск. Поиск может осуществляться и по реквизиту с помощью одноименного метода, главное условие реквизит должен быть индексирован.
Выборка
Выборка позволяет обходить в цикле элементы справочника. Для иерарахических справочников доступна выборка по родителю, для подчиненных по владельцу. Для любого вида справочника возможно указать отбор, которому будут соответствовать элементы в выборке и поле по которому выборка будет упорядочена. Работает выборка следующим образом:
При использовании метода Следующий() в классе выборка, текущим устанавливается следующий элемент из текущей выборки. Если в выборка спозиционировалась на определенном элементе, она возвращает Истина, иначе Ложь. Для класса Справочник Выборка доступны все поля и табличные части, которые определены для текущего справочника, а так же есть свойство Ссылка которое позволяет получить ссылку на текущий элемент справочника из выборки. Для того что бы при выборке учитывалась иерархия справочника, необходимо использовать метод ВыбратьИерархически() .
Программное создание элементов справочника
Элементы и группы справочников, можно создавать и не посредственно из программного кода. Для этого используется следующий код:
Группа справочника создается аналогично с помощью метода СоздатьГруппу() В том случае, если у справочника установлено свойство Автонумерация код указывать не нужно, он устанавливается автоматически.
Проверка переменной с типом СправочникСсылка на заполненность
Иногда возникает необходимость проверить заполнено ли значение с типом «Справочник.Ссылка». Такая необходимость может возникнуть, когда реквизит какого либо объекта имеет тип «Справочник.Ссылка» или когда вы например ищете элемент справочника по коду или наименованию, или в ряде других случаев, когда метод возвращает пустую ссылку на справочник. Есть несколько способов это сделать:
Только для сервера
Проверка элемента справочника на вхождение в какую либо группу или подчинение элементу
Когда мы говорим о проверке подчиненности, необходимо понимать, что все методы справедливы не только для групп, но и для элементов, если у справочника установлен вид иерархии "Иерархия элементов". Здесь возможно несколько вариантов: если у нас есть группа и нам необходимо знать если ли именно в ней и нигде иначе определенный элемент справочника, то можно сравнить предопределенный реквизит Родитель нужного нам элемента справочника с ссылкой на группу, например:
Если справочник многоуровневый и нужно знать есть ли элемент в этой группе или где то в подчинненых группах то можно воспользоваться методом "ПринадлежитЭлементу()" этот метод вернет Истина если элемент содержится в текущей или любой подчиненной группе. Например в этом случае
условие будет истинным.
СправочникСсылка <> СправочникОбъект
При работе со справочниками очень важно понимать, что во всех реквизитах, выборках и тд, мы чаще всего работаем с типом СправочникСсылка и этот тип позволяет получить любую информацию которая находится в его реквизитах, но не поддерживает запись. Для изменения реквизитов справочника и записи следует использовать тип СправочникОбъект. Преобразовать ссылку в объект можно с помощью метода ПолучитьОбъект() Например:
Проверка на то что ссылка является ссылкой на справочник
Проверить то что справочник является ссылкой можно очень просто, с помощью одной строки:
Где СсылкаНаЭлементСправочника проверяемая ссылка, эта строка вернет Истина если проверяемая ссылка является ссылкой на какой либо элемент справочника.
Практикум 1. Создание справочников
- список сотрудников предприятия, которые будут оказывать услуги;
- список клиентов, с которыми работает фирма;
- перечень услуг, которые может оказывать фирма;
- список материалов, которые могут быть израсходованы;
- список складов, на которых могут находиться материалы фирмы.
- Найдите в дереве конфигуратораСправочники. Правой кнопкой мыши вызываем контекстное меню «Добавить». Аналогичное действие можно получить с помощью клавиши меню
.
- Нажмите «Добавить», система откроет окно редактирования объекта конфигурации на закладке «Основные».
3. Для того, чтобы придерживаться правильной последовательности действий, в нижней части окна имеются кнопки . Кнопка «Далее» позволяет задавать свойства объекта в нужной последовательности. Кнопка «Назад» позволяет вернуться на несколько шагов назад, если вы обнаружили, что ранее ввели не все или ошибочные данные.
Создание справочника Клиенты
1. Задайте имя справочника «Клиенты». Имя является основным свойством любого объекта конфигурации . Имя можно задавать любое, главное, чтобы оно начиналось с буквы и не содержало некоторых специальных символов. И если оно состоит из нескольких слов, то между этими словами не ставят пробелы и каждое слово начинают с большой буквы.
2. Нажмите Enter. На основании имени платформа автоматически создаст синоним → «Клиенты». Синоним также есть у любого объекта и предназначен для хранения альтернативного наименования объекта конфигурации . Он будет использоваться в элементах интерфейса → то есть будет показан пользователю . Поэтому на синоним практически нет никаких ограничений, и его можно задавать в привычном для человека виде.
3. Закладка «Данные».
Длина кода → важное свойство справочника. Как правило, код справочника используется для идентификации элементов справочника и содержит уникальные для каждого элемента значения. Уникальность кодов платформа отслеживает сама, поэтому от длины кода будет зависеть количество элементов, которые могут содержаться в справочнике . Длина кода 5 символов → это от 0 до 99 999, то есть сто тысяч элементов. Для нашей небольшой фирмы этого вполне достаточно.
Тип кода → число.
Длину наименования увеличим до 50 символов.
4. Все остальные свойства объекта конфигурации Справочник оставить такими, как их предлагает система по умолчанию, и нажмите «Закрыть».
5. Теперь посмотрим, что создаст система на основе того объекта конфигурации Справочник, который вы добавили.
Выполните пункт меню Отладка в†’ Начать отладку. Или можно воспользоваться иконкой .
На появившийся вопрос:
ответьте «Да» и в следующем окне нажмем «Принять».
6. Подождите и перед вами откроется окно системы, в режиме 1С:Предприятие .
7. Выполним пункт меню Операции в†’ Справочник в†’ Клиенты.
8. Система откроет одну из основных форм справочника → основную форму списка. Пока наш справочник «Клиенты» пуст, поэтому добавим в него несколько элементов. Добавить новый элемент в справочник можно с помощью меню Действия в†’ Добавить, иконкой или клавишей «Insert».
9. В окне «Клиенты. Новый» введем информацию о клиентах фирмы:
- Иванов Михаил Юрьевич;
- Синицын Роман Григорьевич;
- Спиридонова Галина Вячеславовна.
10. Если нажать кнопкуОК, то окно ввода закроется, и для ввода следующего клиента вам снова нужно будет его открыть.
При нажатии кнопки «Записать», элемент в справочник будет добавлен, но окно при этом не закроется. И следующего клиента можно создать с помощью иконки . При этом появится новое окно ввода, содержащее следующий по счету код, и вам остается только ввести информацию о новом клиенте.
Нового клиента можно создать и с помощью иконки в окне Справочник Клиенты.
Если при вводе ФИО клиента вы записали в Справочник Клиенты ошибочную информацию, то ее можно исправить, дважды кликнув по этой неправильной записи и в появившемся окне внести исправления.
11. Если вам необходимо удалить из Справочник Клиенты некоторые записи, нужно выполнить следующую последовательность действий:
- выделить те объект, который вы собираетесь удалить;
- нажать на иконку
в меню Справочник Клиенты, помечая выделенный объект «на удаление». В появившемся окне на вопрос ответить утвердительно;
- справа от выделенных объектов появятся отметки «на удаление»
- выполнить Операции в†’ Удаление помеченных объектов
- в окне «Поиск и удаление помеченных объектов » нажать клавишу «Контроль»;
- в окне « Удаление объектов » нажать клавишу «Удалить»;
- окно «Служебные сообщения», расположенное внизу монитора, покажет удаляемые объекты. Это окно можно закрыть;
- закрыть окно «Поиск и удаление помеченных объектов».
12. После добавления элементов, Справочник Клиенты будет выглядеть следующим образом:
Создание справочника Сотрудники
Справочник «Сотрудники» будет устроен несколько сложнее. Дело в том, что в нем мы будем хранить не только ФИО сотрудника, но и информацию о его прошлой трудовой деятельности . Эта информация однородна по своей структуре (организация, начало, окончание работы, занимаемая должность), но количество предыдущих мест работы у разных сотрудников может быть различным. Поэтому для хранения такой информации мы будем использовать табличную часть справочника.
1. Создайте новый объект конфигурации Справочник. Назовем его «Сотрудники».
2. На закладке «Данные»:
- длина кода → 5;
- длина наименования — 50;
- тип кода → число.
3. Добавим в справочник новую табличную часть, нажав иконку :
4. Появится окно «Свойства: Табличная часть». Зададим имя табличной части «ТрудоваяДеятельность». Синоним после ввода появится автоматически (причем правильно написанный!). Закроем это окно.
5. Создадим реквизиты табличной части, нажав пиктограмму :
В появившемся окне «Свойства: Реквизит табличной части» заполняем необходимые поля:
- «Организация» — тип Строка, длина 100;
- «НачалоРаботы» — тип Дата, состав даты → «Дата»;
- «ОкончаниеРаботы» — тип Дата, состав даты → «Дата»;
- «Должность» — тип Строка, длина 100.
Выбор типа реквизита делаем по стрелочке справа. Состав даты → «Дата» выбирается потому, что в системе 1С:Предприятие значения типа Дата содержат как дату, так и время. В данном случае время начала и окончания работы нам безразлично. В результате окошко с табличной частью должно выглядеть так:
6. Закладка «Формы». Выберем вариант редактирования справочника. Очевидно, что редактирование в списке не подойдет, поскольку в списке мы не сможем редактировать табличную часть справочника и вводить информацию о трудовой деятельности.
Поэтому установим соответствующий переключатель на вариант «обоими способами».
7. Закроем окно «Справочник Сотрудники», запустим 1С:Предприятие в режиме отладки и заполним справочник.
8. В появившемся окне программы откройте справочник «Сотрудники».
9. Создайте сотрудников Гусакова Николая Дмитриевича, Делового Ивана Сергеевича и Симонова Валерия Михайловича, как показано на рисунках.
Обратите внимание, что строки табличной части справочника можно сортировать по содержимому любой из колонок, или располагать в произвольном порядке, используя иконки командной панели окна «Сотрудники: ФИО»:
Создание справочника Номенклатура
Справочник « Номенклатура » будет содержать информацию об услугах, которые оказывает фирма, и о тех материалах, которые при этом могут быть использованы.
Этот справочник будет обладать иерархической структурой. Для того чтобы справочником было удобно пользоваться, мы сгруппирует услуги в одну группу, а материалы → в другую. Кроме того, поскольку фирма оказывает самые разные услуги, они также будут логически собраны в несколько групп. То же самое можно сказать про материалы.
1. Создайте новый объект конфигурации Справочник и назовите его «Номенклатура».
2. На закладке «Иерархия» установим флаг «Иерархический справочник».
3. На закладке «Данные» зададим длину наименования справочника равной 100 символам.
4. Закроем окно «Справочник Номенклатура», запустим 1С:Предприятие в режиме отладки и заполним справочник.
5. Выполните Операции в†’ Справочник в†’ Номенклатура.
6. Создадим две группы в корне справочника: «Материалы» и «Услуги».
Выполните Действия в†’ Новая группа или просто кликните по иконке («Добавить группу»). Появится новое окно «Группа Номенклатура: Группа Новый».
В поле «Наименование» введите «Материалы». В поле «Родитель» ничего не вводим. ОК.
Аналогично создаем группу «Услуги».
7. В группе «Материалы» создадим пять элементов:
- «Строчный трансформатор Samsung»;
- «Строчный трансформатор GoldStar»;
- «Транзистор Philips 2N2369»;
- «Шланг резиновый»;
- «Кабель электрический».
Дважды кликните по группе «Материалы» в левом или правом окошке Справочник Номенклатура. Вид правого окошка при этом изменится и станет следующим:
Добавьте новый элемент группы «Материалы» с помощью пиктограммы .
8. В группе «Услуги» тоже создадим несколько элементов:
- услуги по ремонту телевизоров:
- «Диагностика»;
- «Ремонт отечественного телевизора»;
- «Ремонт импортного телевизора»;
- «Подключение воды»;
- «Подключение электричества».
9. Теперь разнесем услуги по двум смысловым группам:
- услуги по ремонту телевизоров;
- услуги по установке стиральных машин.
Для этого в группе «Услуги» создайте еще две подгруппы:
- «Телевизоры»;
- «Стиральные машины».
В левом окошке Справочник Номенклатура выделите группу «Услуги» и кликните по иконке
. Появится окно «Группа Номенклатура: Группа Новый». В этом окне в поле «Родитель» уже будет автоматически указана та номенклатурная группа, в которой вы создаете подгруппу.
Добавьте две названные подгруппы.
Теперь обратите внимание на вид правого окошка → в нем в группе «Услуги» появились еще две «папочки» — две наших подгруппы «телевизоры» и «Стиральные машины».
10. Для того чтобы переместить услуги в соответствующие подгруппы выполните следующие действия:
- в правом окошке списка выделите ту услугу, которую вы хотите переместить;
- выполните команду Действия в†’ Переместить в группу или просто кликните по иконке
;
- в открывшемся окне выберите (двойным щелчком) нужную подгруппу.
11. В группе «Материалы» создайте две подгруппы: «Радиодетали» и «Прочее». В подгруппу «Прочее» поместите «Кабель электрический» и «Шланг резиновый». Остальные материалы переместите в группу «Радиодетали».
Создание справочника Склады
Справочник «Склады» будет содержать информацию о складах, используемых фирмой. Этот справочник будет содержать один предопределенный элемент → склад «Основной», на который будут поступать все материалы.
1. Откройте конфигуратор и создайте новый объект конфигурации Справочник с именем «Склады».
2. Перейдите на закладку «Прочее» и нажмите кнопку «Предопределенные». Система откроет список предопределенных элементов справочника. Сейчас он пуст.
3. Создайте предопределенный элемент справочника с именем «Основной».
Обратите внимание на то, что помимо наименования мы задали еще и имя предопределенному элементу справочника. В дальнейшем, когда мы будем использовать средства встроенного языка, мы сможем обратиться к этому элементу справочника, используя имя, которое присвоили ему в конфигураторе .
4. Запустим 1С:Предприятие в режиме отладки и откроем справочник «Склады».
5. Добавьте в справочник еще один склад → «Розничный».
Обратите внимание, что система отмечает различными пиктограммами простой и предопределенный элементы справочника.
Несмотря на то, что можно изменить код или наименование у обоих элементов, пометка на удаление возможна только для простых элементов справочника. При попытке пометить на удаление предопределенный элемент, система выдаст предупреждение: