Справочники
Справочники хранят в себе одинаковые по структуре данные. Например, справочник товаров или справочник должностей. Справочники это ссылочный тип данных, на любой элемент справочника можно сослаться, в документах, константах или вообще в каких либо реквизитах.
Структура справочника
Справочник обычно описываются следующим набором данных:
Пользовательские реквизиты — при проектировании пользователь определяет какие данные, какого типа будут храниться в справочнике. Например у справочника Банковские счета будут определены реквизиты: номер счета, банк и тд, для справочника контрагенты ИНН, КПП и тд.
Предопределенные реквизиты
У каждого справочника есть номер и наименование. В принципе их можно отключить, указав длину 0. Так же код может быть числовым или текстовым, если код текстовый для удобства сортировки система дополняет код лидирующими нулями на всю длину кода, например если у справочника указана длина кода 9 и справочнику был присвоен код 3 то система дополнит нулями до такого вида: «000000003». Также в случае если имеется распределенная база в код обычно добавляется префикс той базы в которой был создан элемент, например: «ЦН0000003». Нужно учитывать эту особенность если вы соберетесь указывать числовой код, этот объект не сможет корректно работать в распределенной базе. У справочника есть и другие предопределенные реквизиты:
Покупка объектов строительства Монтаж
ЭтоГруппа – Имеет смысл только для иерархических справочников. Указывает на то что элемент является группой.
Родитель — Имеет смысл только для иерархических справочников. Указывает на группу или элемент который является родителем для этого справочника.
Владелец – Имеет смысл только для подчиненных справочников. Указывает на владельца данного справочника.
Ссылка – это самый главный атрибут, справочник потому и называется ссылочным типом, потому, что у него есть уникальная ссылка, которая хранится в этом атрибуте.
Иерархичность.
Иерархия это способность выводить справочник в виде дерева. Эта возможность бывает очень удобной, в случаях когда в справочнике содержится много информации. В таких случаях бывает полезно разложить номенклатуру «по полочкам».
При включении иерархичности у справочника, добавляются два стандартных реквизита ЭтоГруппа и Родитель . Манипулируя значением реквизита Родитель, можно переназначать родителей элемента. Строится иерархия на группах, в эти группы могут входить другие элементы или другие группы.
Аналогию можно провести с проводником windows или с большинством файловых систем если вам будет удобно: есть папки в которых могут быть как файлы так и папки в которых в свою очередь тоже могут быть и файлы и папки итд. Иерархия может работать и без групп. То есть родителями могут выступать другие элементы справочника. Такой вид иерархии называется иерархия элементов.
Если мы настроили иерархию, у нас появляется возможность настраивать, для какого типа могут использоваться реквизиты, для групп, элементов, или и для того и для другого. Иерархия настраивается на закладке Иерархия свойств справочника.
Как быстро найти пропавший объект учета? (для программ 1С:УПП, КА)
Подчиненность
Подчиненность это возможность сделать несколько записей одного справочника уникальными для одной записи другого справочника (если вы знакомы с основами реляционных баз даных, это связь, один ко многим ) . Например: у одного контрагента, может быть много договоров, но это будут только его договора, у второго контрагента будет свой набор договоров. В этом случае справочник договоры подчинен справочнику контрагенты.
Подчинение справочника реализовано предопределенным реквизитом Владелец , следовательно у одной конкретно взятой записи справочника, может быть только один владелец. В то же время у одного справочника может быть несколько владельцев. Владельцами могут быть не только справочники, а также планы обмена, планы видов характеристик, планы счетов, планы видов расчета. Также можно указать вид объекта для подчинения, доступны элементы, группы или и то и другое. Если для справочника определены подчиненные справочники и у элемента справочника не назначена основная форма, то при открытии элемента этого справочника в режиме предприятия, в управляемых формах система автоматически добавит панель для открытия подчиненных справочников с фильтром на поле владелец по текущему элементу. Такое поведение можно настроить и на уже существующих формах. (скрин)
Ввод по Строке
При выборе ссылочных данных в 1С есть возможность выбрать элемент справочника или документ, набирая ключевые реквизиты объекта который мы хотим найти, выглядит это следующим образом: пользователь, набирает «масло моторное» в поле ввода с типом «Справочник.Номенклатура» и нажимает ввод. 1С находит все записи которые начинаются с названия со слов «масло моторное» и показывает их в виде выпадающего списка под полем где пользователь вводил текст. Такой же ввод возможен и для документов. Это поведение системы можно настроить на закладке «Формы». Там есть поле Ввод по строке , по умолчанию для справочников указана возможность поиска по коду и наименованию, но туда можно добавить и свои реквизиты, для того, что бы добавить этот реквизит, он должен быть индексирован и реквизит должен быть примитивного типа.
Предопределенные элементы справочников.
Предопределенные элементы справочников определяются в конфигураторе на закладке Прочие . При создании элемента указывается имя и наименование предопределенного элемента. Имя и будет являться идентификатором для обращения к этому предопределенному элементу, поэтому к имени предъявляются такие же требования как и к другим идентификаторам(не может начинаться с числа, нельзя использовать пробелы и тд). Наименование может быть любым, его пользователь и увидит в справочнике и сможет его при желании изменить. Пользователь не может изменить имя который был указано при создании этого элемента, зато он может удалить предопределенный элемент.(надо бы найти номер релиза когда это стало возможным). Обращение к предопределенным элементам происходит так:
Таким образом, очень удобно ссылаться на предопределенные элементы из встроенного языка или опираться на них при построении каких то условий. Предопределенные элементы справочников можно использовать в схемах СКД и запросах.
Важно. Контроль за удалением предопределенных элементов лежит на плечах разработчиков, а не платформы.
Для предопределенных элементов справочников, стандартный реквизит Предопределенный имеет значение Истина. Это свойство которое доступно только на чтение, но это не означает, что нельзя «обычный» элемент справочника сделать предопределенным и наоборот. В последних релизах 8.3FIXME(Надо узнать в каких именно), появилась возможность переопределять предопределенные элементы изменяя свойство ИмяПредопределенныхДанных . Например, вот так можно сделать элемент не предопределенным:
И наоборот указав в свойстве ИмяПредопределенныхДанных имя предопределенного элемента справочника, можно сделать его предопределенным. У иерархических справочников возможно указывать предопределенные группы. Предопределенные элементы нельзя создавать у подчиненных справочников. В пользовательском режиме предопределенный элемент отличается, от обычного, следующим образом(показать скрин).
Подсказка. Предопределенные элементы часто используют для того, что бы избавиться в коде от конструкций вида: НайтиПоКоду и НайтиПоНаименованию . Использование этих методов считается дурным тоном, так как наименование и код справочника достаточно часто изменяются. Обычно поступают следующим образом: Создают справочник, например Настройки с единственным реквизитом Значение . После этого в конфигураторе добавляют предопределенный элемент с нужным названием а в режиме 1с Предприятие, задают его значение. Теперь вместо того что бы писать в коде:
или что еще хуже
Можно просто указать:
Классы для работы со справочниками.
Все классы справочника можно увидеть в ветке Прикладные объекты –> Справочники .
Cправочники это элементы которые хранятся в базе данных, считается очевидным, что обращение к любому из классов возможно только на сервере.
Справочник менеджер
Справочник менеджер – можно получить с помощью переменных глобального контекста:
Этот класс служит для:
Получать пустые ссылки:
И много еще разных возможностей которые можно наблюдать в синтаксис помощнике в ветке: Прикладные объекты – >Справочники – СправочникМенеджер.
Справочник ссылка
Справочник ссылка – самый часто используемый тип. Используется для чтения данных справочника. Его можно получить с помощью НайтиПоНаименованию , НайтиПоКоду и др методов класса СправочникМенеджер . Так же его можно получить с помощь класса Выборка и этот тип данных хранится в реквизите Cсылка объекта класса Справочник объект . В этом классе нам доступны все реквизиты справочника, табличные части и все стандартные реквизиты. Абсолютно все свойства этого класса нам доступны только на чтение. Для того что бы изменять реквизиты справочника нам нужен класс Справочник Объект . Получить его можно с помощью метода Получить Объект() .
Справочник Объект
Класс Справочник Объект отличается от класса Справочник Ссылка не многим, основная его функция обеспечить возможность изменения элемента справочника. Запись происходит с помощью метода Записать()
Справочник Выборка
Справочник Выборка получается с помощью методов Выбрать и Выбрать Иерахически он позволяет обойти элементы справочника в цикле, с помощью метода Следующий() .
Популярные приемы работы со справочниками
Поиск по наименованию.
Несмотря на то, что неоднократно рассматривается поиск элемента справочника по наименованию, «зашивать» в код значения из базы данных считается дурным тоном.
Для поиска по наименованию используется функция НайтиПоНаименованию() . Для использования этого метода необходимо указать наименование по которому будет происходить поиск. Если поиск должен проходить по точному соответствию с указанной строкой то вторым параметром, нужно указать Истина, иначе поиск будет проходить по первым буквам указанного шаблона поиска, то есть если в качестве строки для поиска указать «Слон» то под шаблон попадут и «Слон» и «Слон игрушечный» и «Слонопотам». Поиск можно ограничить определенной группой, если справочник иерархический или владельцем, если справочник подчиненный. Если значение не найдено, метод вернет пустую ссылку того типа справочника для которого производился поиск.
Поиск по коду
Для поиска по коду используется функция НайтиПоКоду() . Для использования этого метода необходимо в параметре «Код» указать код, по которому будет производиться поиск. Если в качестве кода указывается полный путь с учетом иерархии (уровни справочника разделяются символом «/»), то второй параметр поиск по полному коду, необходимо установить в Истина. Например: Номенклатура «Слонопотам» с кодом «001142» находится в папке «Мягкие Игрушки» с кодом «000826» которая находится в папке «Игрушки» с кодом 000375. Тогда можно найти ее с помощью вот такой строки
Или можно искать сразу:
Поиск можно ограничить определенной группой, если справочник иерархический или владельцем, если справочник подчиненный. Если значение не найдено, метод вернет пустую ссылку того типа справочника для которого производился поиск. Поиск может осуществляться и по реквизиту с помощью одноименного метода, главное условие реквизит должен быть индексирован.
Выборка
Выборка позволяет обходить в цикле элементы справочника. Для иерарахических справочников доступна выборка по родителю, для подчиненных по владельцу. Для любого вида справочника возможно указать отбор, которому будут соответствовать элементы в выборке и поле по которому выборка будет упорядочена. Работает выборка следующим образом:
При использовании метода Следующий() в классе выборка, текущим устанавливается следующий элемент из текущей выборки. Если в выборка спозиционировалась на определенном элементе, она возвращает Истина, иначе Ложь. Для класса Справочник Выборка доступны все поля и табличные части, которые определены для текущего справочника, а так же есть свойство Ссылка которое позволяет получить ссылку на текущий элемент справочника из выборки. Для того что бы при выборке учитывалась иерархия справочника, необходимо использовать метод ВыбратьИерархически() .
Программное создание элементов справочника
Элементы и группы справочников, можно создавать и не посредственно из программного кода. Для этого используется следующий код:
Группа справочника создается аналогично с помощью метода СоздатьГруппу() В том случае, если у справочника установлено свойство Автонумерация код указывать не нужно, он устанавливается автоматически.
Проверка переменной с типом СправочникСсылка на заполненность
Иногда возникает необходимость проверить заполнено ли значение с типом «Справочник.Ссылка». Такая необходимость может возникнуть, когда реквизит какого либо объекта имеет тип «Справочник.Ссылка» или когда вы например ищете элемент справочника по коду или наименованию, или в ряде других случаев, когда метод возвращает пустую ссылку на справочник. Есть несколько способов это сделать:
Использовать метод глобального контекста ЗначениеЗаполнено() который можно применить к любому типу а не только к справочнику. Доступно и на клиенте и на сервере.
Только для сервера
Проверка элемента справочника на вхождение в какую либо группу или подчинение элементу
Когда мы говорим о проверке подчиненности, необходимо понимать, что все методы справедливы не только для групп, но и для элементов, если у справочника установлен вид иерархии «Иерархия элементов». Здесь возможно несколько вариантов: если у нас есть группа и нам необходимо знать если ли именно в ней и нигде иначе определенный элемент справочника, то можно сравнить предопределенный реквизит Родитель нужного нам элемента справочника с ссылкой на группу, например:
Если справочник многоуровневый и нужно знать есть ли элемент в этой группе или где то в подчинненых группах то можно воспользоваться методом «ПринадлежитЭлементу()» этот метод вернет Истина если элемент содержится в текущей или любой подчиненной группе. Например в этом случае
условие будет истинным.
СправочникСсылка <> СправочникОбъект
При работе со справочниками очень важно понимать, что во всех реквизитах, выборках и тд, мы чаще всего работаем с типом СправочникСсылка и этот тип позволяет получить любую информацию которая находится в его реквизитах, но не поддерживает запись. Для изменения реквизитов справочника и записи следует использовать тип СправочникОбъект. Преобразовать ссылку в объект можно с помощью метода ПолучитьОбъект() Например:
Проверка на то что ссылка является ссылкой на справочник
Проверить то что справочник является ссылкой можно очень просто, с помощью одной строки:
Где СсылкаНаЭлементСправочника проверяемая ссылка, эта строка вернет Истина если проверяемая ссылка является ссылкой на какой либо элемент справочника.
ИсточникГде в 1с найти объекты строительства
Конфигурация 1С состоит из объектов 1С, правильно их называть — объекты метаданных 1С. Каждый объект 1С имеет свое предназначение, работа с каждым из объектов 1С имеет свои тонкости.
Сегодня мы рассмотрим все объекты 1С на примере конфигурации Бухгалтерия 1С редакции 2.
Объекты метаданных 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С.
Работать с объектами 1С можно двумя способами:
Способ 1
Раскрыть свойства объекта и работать с ними напрямую. Также есть контекстное меню (по нажатию правой кнопки мыши).
Суть работы составляет:
- Добавить или удалить свойства объекта
- Настроить характеристики конкретного свойства объекта 1С, нажав на нем правой кнопкой и выбрав в меню «Свойства».
Редактор всегда открывается справа.
- Исключение составляют Формы объекта 1С. Чтобы отредактировать форму нужно нажать на нее два раза мышкой и она откроется в редакторе.
Способ 2
Открыть редактор объекта 1С. Для этого нужно нажать на сам объект два раза мышкой.
В открывшемся редакторе все свойства расположены на закладках, которые их группируют.
Работа с конкретными свойствами и формами происходит аналогично со способом 1.
ИсточникУчет материалов в 1С 8.3: пошаговая инструкция со скриншотами
Материалы применяются в каждой организации. Любая деятельность, будь то производственная, торговая или оказание услуг, требует расходных материалов. Как вести учет материалов в 1С 8.3, покажем в нашей статье.
Поступление материалов от поставщика в 1С
Первый этап учета материалов – это их поступление и внесение в базу 1С.
Как правило, материалы приобретают у поставщиков. Отразим поступление материалов.
На главной странице на левом желтом фоне выбираем Покупки.
В разделе Покупки выбираем Поступление (акты, накладные, УПД).
По кнопке Поступление выпадает список, где мы выбираем Товары (накладная, УПД).
Появляется форма для внесения документа поступления материалов, где мы отражаем данные из накладной или УПД поставщика: номер и дату документа поставщика. Если такого контрагента у нас еще нет в базе, то необходимо будет его внести.
Для корректного отражения и списания авансов в 1С важно верно указывать договор, на основании которого поступили данные материалы. Если это постоянный поставщик, с которым работаем по договору, то можно на каждую поставку и оплату (документ списания с банковского счета поставщику за материалы) ставить этот договор. Если работаем по нескольким договорам, то надо единообразно отражать номер в обоих документах: поставки и оплаты.
Выбираем склад, на который поступили материалы.
Далее нажимаем кнопку Добавить и подсвеченное синим Показать все. Если в выпадающем списке появилось наименование нужного нам материала, то можно сразу выбрать его и не уходить в строку Показать все.
Мы попали в список номенклатуры, которая уже есть в нашей базе 1С. Если материал уже есть в базе, то по строке Поиск забиваем его, и программа выдаст нужный нам материал.
Допустим, мы вводим новый материал. Для этого зайдем в раздел Материалы. В справочнике Номенклатура можно группировать МПЗ любым удобным способом, создавая для этого тематические группы, например, товар, материалы, спецодежда, инвентарь и так далее. То есть сначала можно создать какую-либо группу, а потом уже создавать материал в этой группе. Мы будем создавать материал в группе Материалы.
Внутри группы также можно создавать еще группы, например, в каком подразделении применяется тот или иной вид материала. Слишком увлекаться подобной группировкой не советуем, так как в любом документе необходимо будет внимательно отслеживать все субконто, чтобы списания происходили верно. Группировка актуальна, только если для этого есть реальная производственная необходимость.
Для создания материала нажимаем на кнопку Создать.
Далее заполняем данные по нашему материалу.
После внесения всех данных нажимаем Записать и закрыть.
Материал появился в общем списке номенклатуры. Нажимаем на него дважды.
Материал попал в документ поступления от поставщика. Далее мы продолжаем заполнять этот документ и вносим количество и цену. НДС (при наличии) и стоимость программа рассчитывает самостоятельно.
Здесь же важно указать, на какой бухгалтерский счет поступает вносимая нами вещь. Как мы видели, и для материала, и для товара форма внесения документа поступления едина. Счет, на который поступили МПЗ, выбираем в той же строке, где отражен наш материал, из выпадающего списка – плана счетов. Мы выбираем счет 10.06 (для товара был бы счет – 41.01). И так же выбираем счет учета НДС (при наличии).
Если в документе от поставщика не один вид материалов, а несколько, то кнопкой Добавить аналогичным образом вносим все материалы, которые указаны в документе.
Далее вносим внизу номер и дату УПД или счета-фактуры и регистрируем его. Делать это надо в любом случае, даже если мы применяем УСН.
Нажимаем Провести и закрыть.
Поступление появилось в общем списке всех поступлений. Проверим кнопкой Дт/Кт, какие проводки сформировались данным документом.
Проводки сформированы: отражена задолженность перед поставщиком (Кт 60), материал отражен в активах организации (Д 10.06), НДС «сел» на свой счет (Дт 19.3).
Поступление материалов по авансовому отчету в 1С
Зачастую материалы покупают подотчетные лица и приносят кассовые чеки, подтверждающие покупку. В таком случае материал можно внести через авансовый отчет. Покажем, как это сделать.
На главной странице в желтом поле слева выбираем Банк и касса.
Далее в разделе Касса выбираем Авансовые отчеты.
Кнопкой Создать создаем новый Авансовый отчет.
Подробно на заполнении авансового отчета мы останавливаться не будем. Рассмотрим только, как внести материалы в него. Сделать это нужно на вкладке Товары.
Далее нажимаем кнопку Добавить.
В раскрывшейся строке вносим: реквизиты (наименование, номер и дату) документа поступления, материал (аналогичным образом, как мы его вносили в документ Поступление товара), количество, цену, НДС, стоимость, поставщика. Если есть счет-фактура, ставим галку и вносим его реквизиты.
Здесь также указываем бухгалтерские счета для учета материалов.
Считаем, что в остальном авансовый отчет заполнен. Нажимаем Провести и закрыть.
Проверяем нажатием кнопки Дт/Кт получившиеся проводки. Делаем это аналогичным образом, как и проверку проводок при проведении Поступления товара. Проводки сформированы: закрылся долг подотчетного лица (Кт 71), материал отражен в активах организации (Дт 10.06), НДС сел на свой счет (Дт 19.03), но сразу ушел на счет 91 (Дт91.2), так как не предъявлен счет-фактура.
Списание материалов в 1С
Итак, материал отражен в базе 1С.
Далее материалы, как правило, используются в хозяйственной деятельности предприятия. Их надо списать. Покажем, как это делается.
На главной странице в левом желтом поле выбираем Склад.
Далее в разделе Склад выбираем Расход материалов (Требования-накладные)
Далее нажимаем кнопку Создать
Заполняем форму для списания материалов. Вводим дату списания (1), склад, с которого происходит списание (2), вид операции – использование материалов (3), цель расхода (4) – допустимо не заполнять.
Далее кнопкой Добавить из перечня номенклатуры выбираем материал, который следует списать. Указываем количество и счет, с которого произвести списание.
Далее важно указать, на какой счет затрат списывается материал.
Нажимаем на подсвеченную синим строку и выбираем нужный нам счет.
В зависимости от выбранного счета в выпавшей таблице нужно будет заполнить те или иные поля. У нас счет затрат – 20.01, и мы имеем такой состав полей. Заполняем, выбирая из предложенных вариантов.
После выбора верного счета нажимаем Провести и закрыть.
Проверяем получившиеся проводки, как обычно, нажатием кнопки Дт/Кт.
Проводки сформированы, материал списан (Кт10.06) на производственные затраты (Дт20.01).
Есть еще один способ списания материалов в производство. Его можно использовать, если мы точно знаем, на какую продукцию/партию продукции израсходован материал.
На главной странице на левом желтом поле выбираем Производство.
В разделе Производство выбираем Выпуск продукции. Кстати, в этом же разделе есть и строка Расход материалов (Требования-накладные) – аналогичная той, которую мы уже применяли для списания материалов. Так что в эту строку можно попасть как через Склад, так и через Производство. Сейчас мы рассматриваем другой способ списания – через Выпуск продукции.
Кнопкой Создать создаем новый Отчет производства за смену. Подробно на этой операции мы сейчас останавливаться не будем, опишем только, как включить в нее списание материалов.
Списание материалов указываем в закладке Материалы кнопкой Добавить.
Заполнение происходит аналогично заполнению в предыдущем варианте. Вносим наименование материала (выбираем из общего списка номенклатуры), количество, счет учета, статью затрат. Списание будет происходить на 20 счет. Нажимаем Провести и закрыть.
Поверяем проводки обычным способом. Проводки сформированы: материал списан (Кт 10.06) на производство (Дт 20).
Есть еще один способ списания материалов, учет которых требуется вести даже после списания. Например, это может быть какой-то инвентарь, инструменты и прочее.
Проходим путь Склад (на главной странице) – Спецодежда и инвентарь и выбираем Передача материалов в эксплуатацию.
Кнопкой Создать создаем новый документ и заполняем так же, как и все предыдущие. Отличие – надо внести физлицо, которое несет ответственность за списываемый инструмент.
Обычным способом проверяем проводки. Материал был списан, но учтен на забалансовом счете.
Списание с забалансового счета происходит операцией Списание материалов из эксплуатации
Создаем новый документ кнопкой Создать. В документе надо отобразить материал, его количество, ответственное лицо и документ, по которому материал передан в эксплуатацию.
Источник