Для чего используются реквизиты справочника
Для чего используются реквизиты справочника
Что такое реквизиты 1С?
Мы с Вами недавно обсуждали справочники 1С и документы 1С. Работа пользователя со справочниками и документами в 1С состоит из заполнения полей на форме.
Реквизиты 1С – это поля справочника и документа, которые отображаются на форме, чтобы пользователь их заполнил.
Рассмотрим подробно тему реквизитов в 1С.
Что такое Реквизиты 1С
Каждый справочник и документ 1С состоит из набора полей. Такие поля называются реквизиты 1С (для программиста 1С).
В конфигураторе, в дереве конфигурации 1С, раскройте любой справочник или документ и Вы увидите ветку Реквизиты. Это список реквизитов (полей) справочника.
Поглядите как те же реквизиты 1С выглядят на форме справочника 1С.
Каждый реквизит 1С имеет свойства, в которых указано какой вид значения хранится в реквизите (строка, число и т.п.) и как с ним будет работать пользователь.
Нажмите правой кнопкой на любой реквизит 1С и нажмите Свойства. В окне справа откроется список свойств выбранного реквизита.
Основные свойства реквизитов 1С:
Вы можете поставить галочку Составной тип данных и тогда 1С позволит Вам выбрать несколько типов данных одновременно. В этом случае пользователю будет отображаться кнопка Т, при нажатии на которых он выберет какие данные он хотел бы ввести.
Стандартные реквизиты 1С
Как Вы заметили, на форме справочника есть реквизиты 1С, которые отсутствуют в списке в конфигураторе: группа, наименование, БИК.
В форме списка справочника тоже есть реквизиты 1С, которых нет в списке: пометка удаления.
Это – стандартные реквизиты 1С. Что это такое? У каждого объекта 1С есть набор реквизитов 1С по умолчанию. У справочников это, например – код и наименование. У документов это – дата и номер.
Стандартные реквизиты 1С можно посмотреть следующим образом:
Общие реквизиты 1С
Начиная с версии 1С 8.2.14 в 1С появился новый Объект 1С – Общие реквизиты 1С. С помощью него можно добавить реквизит (поле), который будет присутствовать сразу во множестве справочников и документов.
Свойства общего реквизита 1С:
Как добавить реквизит 1С
Нажмем правой кнопкой на ветку Реквизиты 1С нужного справочника и выберем Добавить.
Введем нужно Имя реквизита 1С, например «АдресОфиса» и синоним «Адрес офиса». Тип оставим по умолчанию Строка, но поставим галочку Неограниченная длина.
Добавим еще один реквизит 1С точно так же, только выберем тип Булево, назовем его «РаботаетПоВыходным».
Как вывести реквизит на форму 1С (толстый клиент 1С)
Раскроем ветку Формы того же справочника. Чтобы открыть форму — выберем форму элемента и нажмем на нее два раза мышкой.
Потяните мышкой за край формы и растяните ее (необязательный пункт).
В панели конфигуратора нажмите кнопку «Размещение данных». Также можно использовать меню Форма / Размещение данных.
Вы видите – наши реквизиты на форму не выведены. Установите на них галочку. А также галочки Вставить надписи и Разместить автоматически.
Как вывести реквизит на форму 1С (тонкий клиент 1С)
Раскроем ветку Формы того же справочника. Выберем форму элемента и нажмем на нее два раза мышкой.
На закладке Реквизиты раскройте строку Объект. Вы увидите список реквизитов, добавленных ранее в справочник.
Теперь просто перетяните из правого окна в левую нужный реквизит и он появится на форме.
Реквизиты формы 1С
В толстом клиенте у формы есть свои собственные реквизиты. Они находятся на закладке Реквизиты.
Эти реквизиты не сохраняются в базе данных, однако их можно использовать на форме для полей, которые нужны для работы с формой.
Например, Вы добавили на форму галочку. При ее нажатии на форме что-то происходит. Значение галочки для Вас неважно (записывать его не нужно) – она используется только для переключения формы при работе с ней. В этом случае в качестве данных Вы используете не реквизит справочника, а реквизит формы.
Периодические реквизиты 1С
В 1С версии 7.7 были периодические реквизиты. Их смысл таков: значение у реквизита разное в разные даты. Например, значение на 1 сентября – одно, а на 1 октября – другое. У одного и того же реквизита.
В 1С 8 периодических реквизитов нет. Это реализуется следующим образом:
Инструменты пользователя
Инструменты сайта
Боковая панель
Базовые положения
Общие объекты
Общие метаданные
Прикладные объекты
Содержание
Справочники
Описание
Справочники хранят в себе одинаковые по структуре данные. Например, справочник товаров или справочник должностей. Справочники это ссылочный тип данных, на любой элемент справочника можно сослаться, в документах, константах или вообще в каких либо реквизитах.
Структура справочника
Справочник обычно описываются следующим набором данных:
Предопределенные реквизиты
У каждого справочника есть номер и наименование. В принципе их можно отключить, указав длину 0. Так же код может быть числовым или текстовым, если код текстовый для удобства сортировки система дополняет код лидирующими нулями на всю длину кода, например если у справочника указана длина кода 9 и справочнику был присвоен код 3 то система дополнит нулями до такого вида: «000000003». Также в случае если имеется распределенная база в код обычно добавляется префикс той базы в которой был создан элемент, например: «ЦН0000003». Нужно учитывать эту особенность если вы соберетесь указывать числовой код, этот объект не сможет корректно работать в распределенной базе. У справочника есть и другие предопределенные реквизиты:
Иерархичность.
Подчиненность
Ввод по Строке
Предопределенные элементы справочников.
Таким образом, очень удобно ссылаться на предопределенные элементы из встроенного языка или опираться на них при построении каких то условий. Предопределенные элементы справочников можно использовать в схемах СКД и запросах.
Важно. Контроль за удалением предопределенных элементов лежит на плечах разработчиков, а не платформы.
И наоборот указав в свойстве ИмяПредопределенныхДанных имя предопределенного элемента справочника, можно сделать его предопределенным. У иерархических справочников возможно указывать предопределенные группы. Предопределенные элементы нельзя создавать у подчиненных справочников. В пользовательском режиме предопределенный элемент отличается, от обычного, следующим образом(показать скрин).
Можно просто указать:
Классы для работы со справочниками.
Cправочники это элементы которые хранятся в базе данных, считается очевидным, что обращение к любому из классов возможно только на сервере.
Справочник менеджер
Справочник менеджер – можно получить с помощью переменных глобального контекста:
Этот класс служит для:
Получать пустые ссылки:
И много еще разных возможностей которые можно наблюдать в синтаксис помощнике в ветке: Прикладные объекты – >Справочники – СправочникМенеджер.
Справочник ссылка
Справочник Объект
Класс Справочник Объект отличается от класса Справочник Ссылка не многим, основная его функция обеспечить возможность изменения элемента справочника. Запись происходит с помощью метода Записать()
Справочник Выборка
Популярные приемы работы со справочниками
Поиск по наименованию.
Несмотря на то, что неоднократно рассматривается поиск элемента справочника по наименованию, «зашивать» в код значения из базы данных считается дурным тоном.
Поиск по коду
Или можно искать сразу:
Поиск можно ограничить определенной группой, если справочник иерархический или владельцем, если справочник подчиненный. Если значение не найдено, метод вернет пустую ссылку того типа справочника для которого производился поиск. Поиск может осуществляться и по реквизиту с помощью одноименного метода, главное условие реквизит должен быть индексирован.
Выборка
Выборка позволяет обходить в цикле элементы справочника. Для иерарахических справочников доступна выборка по родителю, для подчиненных по владельцу. Для любого вида справочника возможно указать отбор, которому будут соответствовать элементы в выборке и поле по которому выборка будет упорядочена. Работает выборка следующим образом:
Программное создание элементов справочника
Элементы и группы справочников, можно создавать и не посредственно из программного кода. Для этого используется следующий код:
Группа справочника создается аналогично с помощью метода СоздатьГруппу() В том случае, если у справочника установлено свойство Автонумерация код указывать не нужно, он устанавливается автоматически.
Проверка переменной с типом СправочникСсылка на заполненность
Иногда возникает необходимость проверить заполнено ли значение с типом «Справочник.Ссылка». Такая необходимость может возникнуть, когда реквизит какого либо объекта имеет тип «Справочник.Ссылка» или когда вы например ищете элемент справочника по коду или наименованию, или в ряде других случаев, когда метод возвращает пустую ссылку на справочник. Есть несколько способов это сделать:
Только для сервера
Проверка элемента справочника на вхождение в какую либо группу или подчинение элементу
Когда мы говорим о проверке подчиненности, необходимо понимать, что все методы справедливы не только для групп, но и для элементов, если у справочника установлен вид иерархии «Иерархия элементов». Здесь возможно несколько вариантов: если у нас есть группа и нам необходимо знать если ли именно в ней и нигде иначе определенный элемент справочника, то можно сравнить предопределенный реквизит Родитель нужного нам элемента справочника с ссылкой на группу, например:
Если справочник многоуровневый и нужно знать есть ли элемент в этой группе или где то в подчинненых группах то можно воспользоваться методом «ПринадлежитЭлементу()» этот метод вернет Истина если элемент содержится в текущей или любой подчиненной группе. Например в этом случае
условие будет истинным.
СправочникСсылка <> СправочникОбъект
При работе со справочниками очень важно понимать, что во всех реквизитах, выборках и тд, мы чаще всего работаем с типом СправочникСсылка и этот тип позволяет получить любую информацию которая находится в его реквизитах, но не поддерживает запись. Для изменения реквизитов справочника и записи следует использовать тип СправочникОбъект. Преобразовать ссылку в объект можно с помощью метода ПолучитьОбъект() Например:
Проверка на то что ссылка является ссылкой на справочник
Проверить то что справочник является ссылкой можно очень просто, с помощью одной строки:
Где СсылкаНаЭлементСправочника проверяемая ссылка, эта строка вернет Истина если проверяемая ссылка является ссылкой на какой либо элемент справочника.
Программирование в 1С для всех
Справочники в 1С используются для работы с постоянной или условно постоянной информацией, но, в отличие от констант, данная информация может содержать множество значений. К примеру, если мы разрабатываем конфигурацию для учета движения товаров на складе, то такой информацией может быть вид товара, информация о самих товарах, информация о складах и т.п. Таким образом, справочники необходимы для хранения аналитики учета (то, по чему в дальнейшем будет осуществляться анализ, например, сколько товаров продано). В пользовательском режиме работа осуществляется с элементами справочника. Именно элементы справочника и являются объектами аналитики (именно они и будут анализироваться). Например, у справочника Товары могут быть элементы «Гвозди», «Хлеб» и «Молоко».
Элементы справочника создают операторы в пользовательском режиме 1С. В дальнейшей своей работе они могу использовать тот или иной созданный ранее элемент справочника. Например, элементы справочника Товары могут использоваться в отображении прихода или расхода товара в соответствующих документах.
По умолчанию у любого справочника имеется два реквизита — это Код и Наименование. Это так называемые стандартные реквизиты. Наименование обычно заполняет оператор, а код заполняется автоматически. Иногда стандартных реквизитов Код и Наименование бывает достаточно для работы, но чаще всего прикладная задача требует хранения вспомогательной информации. Для этого создаются реквизиты справочника, позволяющие хранить любую дополнительную информацию об элементе справочника.
Применительно к товарам это может быть артикул, полное наименование, наименование для продажи, вид товара и т.п. Еще новая возможность справочников (в 1С 7.7. этого нет) — это возможность создавать табличные части, в которых хранится однотипная информация, количество которой может быть изменчивым. Например, для товара это могут быть какие-то дополнительные свойства.
Реквизитов и табличных частей может быть неограниченное количество.
Создать новый справочник в 1С достаточно просто. Для этого необходимо зайти в конфигуратор 1С, открыть окно конфигурации, выделить ветвь Справочники, вызвать правой кнопкой мышки контекстное меню, где выполнить команду Добавить.
После этого откроется конструктор справочника, где на закладке «Основные» необходимо ввести имя справочника.
На закладке Данные можно задать длину кода и наименования, тип кода (число или строка) и основное представление элемента справочника (в виде кода или в виде строки).
А также можно создать необходимые реквизиты и табличные части.
В отличие от наименования, код может элементу справочника присваиваться автоматически, если установлен флаг Автонумерация на закладке нумерация.
Реквизиты справочников 1С
Реквизиты справочников 1С создаются на закладке Данные в окне реквизитов.
В качестве реквизитов справочника могут выступать, как примитивные типы, так и ссылочные. Например, мы уже создали справочник ВидыТоваров, а сейчас создадим справочник Товары, где будут реквизиты Артикул (тип Строка) и ВидТовара (ссылка на справочник ВидыТоваров).
В режиме «1С: Предприятия» это будет выглядеть следующим образом.
Обращаю внимание, на что влияет свойство «Основное представление» (закладка Данные конструктора справочника). Если у нас основное представление в виде наименования, то представление элемента справочника в каком-либо реквизите будет в виде наименование этого элемента, как на рисунке представлен элемент справочника ВидыТоваров в реквизите справочника Товары. А если основное представление в виде кода, то тогда представление этого элемента будет в виде кода элемента.
Табличные части справочников 1С
Табличные части создаются на закладке «Данные» в конструкторе справочника.
Можно создавать неограниченное количество табличных частей.
Сделаем справочник Комплектация, у которого будет табличная часть Состав.
У табличной части может быть неограниченное количество реквизитов. Для того, чтобы создать реквизит табличной части, её необходимо выделить и нажать на кнопку «Добавить реквизит».
Реквизиты табличной части могут быть как примитивных типов, так и ссылочных.
Подчиненные справочники 1С
В конфигурации 1С 8.3 можно разрабатывать Подчиненные справочники. В Подчиненном справочнике каждый его элемент имеет владельца, который является элементом или группой другого справочника. Элемент подчиненного справочника не может существовать без владельца.
Сделаем возможность учета единиц измерения. Сначала создадим справочник «Классификатор единиц измерения», в котором будут храниться различные единицы измерения (штуки, килограммы и тд).
У справочника Товары сделаем реквизит основная единица измерения (ссылка на справочник классификатор единиц измерения)
И сделаем справочник, подчиненный справочнику Товары, в котором будут храниться коэффициенты соотношений единиц измерения к основной единице измерения товара. К примеру, основная единица измерения килограмм, но есть еще единица тонна и центнер. Соответственно в первом случае коэффициент будет 1000, а во втором 100.
Создадим справочник ЕдиницыИзмерения.
На закладке Владельцы установим, что владельцем этого справочника является справочник Товары.
И создадим реквизиты: Коэффициент (тип число) и единица измерения (тип ссылка на справочник «Классификатор единиц измерения»).
Вот как это будет выглядеть в режим «1С: Предприятия».
Иерархический справочник 1С
Любой справочник можно сделать Иерархическим – это значит, что пользователь сможет создавать каталоги (или, говоря простым языком, папки), в которых будут содержаться элементы.
Сделаем справочник Товары иерархическим. Для этого переходим на закладку «Иерархия» конструктора справочника и установим флаг «Иерархический».
Иерархия у справочников бывает двух видов: Иерархия групп и элементов и просто Иерархия элементов.
Иерархия групп — это каталоги, которые в себе содержат определенные элементы. А что такое Иерархия элементов? Это когда один элемент подчинен другому.
Посмотрим, как выглядит иерархический справочник в «1С:Предприятии»
Как видите, в форме списка появилось две команды. «Создать» и «Создать группу». При выполнении команды «Создать» будет открыта форма на создание нового элемента, а при выполнении команды «Создать группу» — форма на создание группы (папки).
Вы можете создавать нужные группы, в этих группах создавать элементы, или переносить уже созданные элементы в группы.
Подробно, про иерархический справочник читайте в этой статье:
Что такое предопределенные элементы справочников, и как с ними работать, читайте в этой статье:Остальные статьи по теме конфигурирования:
Более подробно и основательно работа со справочникам в дается в моей книге:
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Платформа 1с. Просто о сложном
Основные положения
Многие работают с базами 1С, но не многие понимают внутренние процессы этой системы. Для большинства платформа 1С все также остается «черным ящиком»: ввели какие-то данные, система с ними что-то сделала, получили некий результат. Чтобы уйти от этих неоднозначных понятий, давайте разберемся что же, все-таки, происходит внутри.
Для начала вспомним или узнаем что такое 1С. 1С ‒ это российская компания, специализирующаяся на дистрибуции, поддержке и разработке компьютерных программ и баз данных делового и домашнего назначения. Компания была основана в 1991г. Главными разработками компании 1С являются «1С: Предприятие», «1С: Школа», «1С: Образование», различные компьютерные игры.
Из перечисленного выше списка нас интересует лишь «1С: Предприятие». Это технологическая среда, с помощью которой разработчики создают программы. То есть некий конструктор, позволяющий разработчикам собирать различные программные продукты.
Компания «1С» выпускает собственные решения «1С: Предприятие»:
1С Зарплата и управление персоналом (1с ЗУП);
1С Управление торговлей;
Используя среду «1С: Предприятие», разработчики могут создавать собственные решения и дорабатывать существующие под нужды клиентов. Рассмотрим, какие существуют инструменты для реализации этих нужд.
Метаданные
Так как 1С – это некоторая база данных, то метаданные – это структура этих данных. Некоторая сущность, которая описывает как мы будем хранить данные в системе.
Всю систему можно представить следующей схемой:
Конфигурация = структура всей базы.
Это самый верхний уровень. Сама конфигурация состоит из метаданных уровнем ниже, таких как: справочники, документы, регистры, перечисления и так далее, которые, в свою очередь, делятся на более мелкие объекты метаданных.
В данной статье разберем подробнее справочники, документы и слегка затронем регистры.
Справочники
Справочники – это прикладные объекты конфигурации, которые позволяют хранить в базе данные, имеющую одинаковую структуру и носящие списочный характер. Например: физ.лица, сотрудники, перечень товаров. Для того, чтобы хранить более подробную информацию, а не только, например, ФИО сотрудника, у справочника есть реквизиты и табличные части. Рассмотрим подробнее что это такое.
Структура справочника
Реквизит – это поле, которое содержит определенную информацию элемента справочника.
Представим, что у нас есть справочник «Номенклатура», который хранит перечень всех номенклатурных позиций. Помимо наименования в данном справочнике есть, например, артикул этой номенклатуры. Это и есть реквизит справочника.
Пример справочника
Табличная часть справочника
Например, у справочника «Комплектация» ‒ это список номенклатурных позиций. Мы заранее не знаем, сколько их будет, но даем пользователю структуру, чтобы он заполнил эту таблицу нужной информацией.
Документы
В большинстве своем документы в 1С являются электронными аналогами стандартных бумажных документов, являющихся основаниями для тех или иных учетных действий или расчетов. У каждого документа в 1С обязательно есть номер и дата.
Документы, как и Справочники, включают в себя реквизиты и табличные части. Кроме того, у них есть такое понятие как «Движения».
Структура документа
Но рассмотрим все по порядку.
Реквизиты – это поля, для хранения определенной информации документа. Например, есть документ «Приходная накладная». Данный документ отражает факт того, что на склад поступили те или иные товары. Значит, нам в документе нужно хранить информацию о складе, поэтому в документе будет реквизит “Склад” и так далее.
Пример документа
Табличные части – это таблицы, которые хранят в себе однотипную информацию
Если говорим о документе «Приходная накладная», то нам надо указать какие товары и в каком количестве поступили. По своей структуре это однотипные данные и их можно хранить в таблице с колонками (реквизитами): номенклатура, цена, количество, сумма и так далее.
Документы отражают ФАКТ совершения операции, но чтобы эти действия отразились в системе, документы должны сделать некие манипуляции, движения.
То есть они должны быть не только статическим доказательством определенной операции, но и отразить ее в нашей учетной системе. По своей сути они делают движения, то есть какие-то действия. В 1С есть такое понятие как «провести документ» и «распровести». Проведение – это когда мы документу говорим: «сделай движения, соверши эту операцию», распровести – «удали эти действия», при этом сам документ остается.
Какие же движения (действия) и где делает документ? При проведении документ делает записи в таблицы, которые называются регистры и отражают суть данной операции. Допустим, мы говорим о документе «Приходная накладная». Данный документ должен делать записи в таблицу (регистр), например, «Остатки на складах». Что он должен туда записать? Что на такой-то склад, такого-то числа, такого-то товара пришло 10 шт.
Записи в регистры
Для отражения операций в системе 1С существует 4 вида регистров:
Регистры
Регистр бухгалтерии используе тся в механизме бухгалтерского учета и позволяет вести многоуровневый и многомерный аналитический учет, учет по нескольким планам счетов, опциональное ведение количественного, суммового и валютного учета по отдельным разрезам аналитики и т. д.
Регистр бухгалтерии
Данный регистр представляет собой таблицу проводок. А проводка должна содержать счет дебет и счет кредит. Аналогично, этот регистр содержит счет дебет и счет кредит. Есть данные, которые отражаются во всех проводках, такие как «Организация» и «Сумма», например. А есть данные, которые отражаются, в зависимости от счета. Такая аналитика называется «субконто». Например, на счете 79.09 нам нужно хранить информацию о контрагентах, а на счете 51 такая информация не нужна, но необходима информация о расчетном счете. Тогда для каждого счета мы настраиваем собственное субконто.
Регистр накопления – это более универсальный регистр, который предназначен для разных учетов, не только бухгалтерского. Эта таблица как бы накапливает информацию из документов.
Регистр накопления
Регистр сведений 1С: 8 — объект метаданных, предназначенный для хранения справочной информации с какой-то периодичностью или на постоянной основе. По сравнению с другими регистрами, в регистре сведений информация может вносится не только документами, но и непосредственно пользователем. Самым распространенным регистром сведений можно назвать «Курсы валют».
Регистр сведений
Здесь информация хранится по каждой валюте с определенной периодичностью (обычно каждый день) и записывается она не документом, а подгружается из сети.
Регистр расчета
С этим регистром тесно связан план видов расчетов (если говорить о зарплате, то это объект метаданных, который хранит виды расчетов такие как “оплата по часам”, “оклад”, “премия” и т.п.). Когда документ делает движения в этот регистр, регистр расчета выполняет анализ полученных данных, определенный расчет и записывает полученный результат как строку таблицы, где обязательно указан вид расчета и суммовой показатель. Например, оплата по окладу – 55 000.
Стоит отметить, что все записи в регистры осуществляются по алгоритмам, зашитым непосредственно в код. Если вам необходимо будет поменять эти алгоритмы, то нужно обращаться к разработчикам или приобрести специальные продукты, позволяющие вмешиваться в алгоритмы проведения документов без разработчиков, такие как “Модификатор” от компании Галочка или сам сервис Галочка.
Отчеты
После введения всех необходимых данных в систему и отражения операций в регистрах, появляется необходимость упорядочить всю эту информацию и получить ее в нужном нам виде. Для этого в 1С предусмотрен такой элемент как «Отчеты».
Сами отчеты никакой информации не хранят, они получают ее из регистров, определенным образом компонуют и выводят на экран в том виде, в котором было предусмотрено разработчиками.
Стандартные конфигурации поставляются со стандартными отчетами, которые чаще всего используются пользователями. Например, в 1С Бухгалтерии есть такие отчеты как Оборотно-сальдовая ведомость, где за период выводятся обороты и сальдо по всем счетам, в 1С ЗУП можно построить 2 НДФЛ и 6 НДФЛ, а также различные отчеты по задолженностям сотрудников или организации и так далее.
Отчеты, как и записи в регистры, формируются по алгоритмам, зашитым непосредственно в код. Для того, чтобы создать собственные отчеты, которых нет в базе, также необходимо приглашать разработчика или прибегать к существующим на рынке инструментам, например, «Конструктор отчетов» от компании Галочка.
Итоги
Мы прошлись по основным терминам и составляющим платформы 1С, которые помогут понять принцип работы любой системы 1С. Регистры – очень обширная тема, в этой статье мы просто рассказали что они из себя представляют и где используются, в следующих статьях мы подробнее рассмотрим каждый, расскажем где какие регистры можем встретить в стандартных конфигурациях, разберем их структуру.