Стандартный реквизит стандартная табличная часть

Документы в 1С 8.3 предназначены для отражения определенных событий в программе, которые имеют отношение к предметной области. Например, касательно учета товаров, это могут быть события поступления товаров на склад, списание товара со склада, перемещение товаров между складами и т.п.. Основными стандартными реквизитами документов являются Номер документа и Дата документа. Как и в случае со справочниками, остальная вспомогательная информация может храниться в реквизитах и табличных частях.

Основное отличие Документов от Справочников в том, что Документ может делать движения в регистрах накопления, сведений, бухгалтерии и расчета.

Что такое Движения документа? Движения документа — это записи в регистрах накопления, сведений, бухгалтерии и расчета, которые создаются при проведении документа и уничтожаются при отмене проведения документа. Все просто. Разработчик самостоятельно настраивает, по каким регистрам будет делать движение его документ, естественно, что регистр перед этим должен быть создан.

В конфигурации, которую мы сделали в предыдущей статье, создадим два документа. Приход и Расход. Создать документ просто – нужно выделить ветвь Документы дерева метаданных, вызвать контекстное меню и выполнить команду «Добавить».

Добавление документа 1С в дерево метаданных

После создания, откроется конструктор документа, где на закладке Основные задаем имя документа и синоним.

Конструктор документа в 1С 8.3

Реквизиты документов создаются на закладке Данные в верхнем окне.

Реквизиты документов 1С 8.3

Можно создать неограниченное множество реквизитов, как ссылочных типов, так и примитивных типов.

Реквизиты документов 1С 8.3

Иногда, такие реквизиты у документов некоторые программисты называют «шапкой документа».

Табличные части документа 1С 8.3

У документа может быть неограниченно число табличных частей, которые необходимы для отображения списка однотипной информации (например, товары, их количество, цена и сумма, которые будут оприходованы).

Список табличных частей отображается в конструкторе документа на закладке «Данные» во втором окне.

Табличные части документа 1С 8.3

Чтобы добавить реквизит в табличную часть, необходимо выделить нужную табличную часть и нажать на кнопку «Добавить реквизит».

Добавление реквизита в табличную часть документа 1С 8.3

У табличной части могут быть реквизиты, как примитивных, так и ссылочных типов. Количество реквизитов не ограниченно.

Реквизиты в табличной части документа 1С 8.3

Стандартные реквизиты документа 1С

У любого документа есть стандартные реквизиты, которые автоматически создаются при создании документа в конфигураторе 1С.  Чтобы посмотреть на них, необходимо нажать на кнопку «Стандартные реквизиты» закладки «Данные»  в конструкторе документа.

Стандартные реквизиты документа 1С 8.3

Мы не можем удалить стандартный реквизит, или изменить тип стандартного реквизита, но можем поменять некоторые его свойства. Например, у созданного документа, я поменяю синоним для номера, пусть  у стандартного реквизита Номер будет синоним «Порядковый номер».

Откроем палитру свойств стандартного реквизита

Открытие палитры свойств стандартного реквизиты документа 1С 8.3

И поменяем синоним.

Синоним стандартного реквизиты документа 1С 8.3

Теперь в пользовательском режиме поле «Номер» называется по другому.

Синоним стандартного реквизиты документа 1С 8.3

Нумерация документов 1С

Каждый документ должен быть пронумерован, т.е. ему присвоится какой-то номер. Настройки нумерации документов задаются на закладке «Нумерация» конструктора документа.

Нумерация документов 1С

На этой закладке при помощи свойства Автонумерация мы определяем, что у каждого документа номер будет на единицу больше номера предыдущего документа. Вся нумерация начинается с 1.  При помощи свойства тип номера задаем какой номер будет у нашего документа числовой или строковый. По умолчания тип номера строка.

Документ, у которого номер имеет тип строка выглядит так.

Нумерация документов 1С тип номера строка

Если номер имеет тип число, то документ будет выглядеть  так

Нумерация документов 1С тип номера число

Интересное свойство Периодичность. При помощи этого свойства можно установить, что номера документов начинаются заново с какого-то периода. К примеру, если мы установим периодичность Год, то первый документ, созданный в начале года, будет иметь номер 1.

Нумерация документов 1С периодичность

Нумератор документов 1С

В платформе 1С 8.3. есть такой объект Нумератор, при помощи этого объекта можно организовывать сквозную нумерацию документов.

Мы уже в этой статье сделали документ Приход, методом копирования и переименования сделаем документ Расход.  Теперь сделаем так, чтобы у этих документов была сквозная нумерация.  Для этого создадим нумератор: выделим ветвь Нумераторы (расположена в ветке Документы дерева метаданных), правой кнопкой мышки вызовем контекстное меню и выполним команду «Добавить».

Создание нумератора документов 1С

Нумератор будет создан, справа откроется палитра свойств нумератора, где можно задать периодичность нумерации, тип номера и тп.

Свойства нумератора документов 1С

Осталось указать созданный нумератор в конструкторе документов Приход и Расход.

Выбор нумератора документов 1С

Выбор нумератора документов 1С

Мы уже создали документ Приход, у которого номер был 1, если сейчас создать документ Расход, то у него номер будет равен 2.

Нумератор документов 1С

Остальные статьи по теме конфигурирования:

Справочники в 1С 8.3

Предопределенные элементы справочников 1С

Формы справочников в 1С 8.3

Журнал документов в 1С 8.3

Подсистемы 1С 8.3

Общие реквизиты в 1С

Обработки 1С

Более подробно и основательно работа с документами дается в моей книге:

Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Стандартные реквизиты

Стандартные реквизиты

Для того чтобы на уровне конфигурации переопределять некоторые интерфейсные свойства (такие как синоним, проверка заполнения и т. д.) стандартных реквизитов (например, Код, Наименование, Родитель) и стандартных табличных частей (например, ВидыСубконто, БазовыеВидыРасчета) прикладных объектов, существует возможность настройки этих свойств.

Стандартные реквизиты

Для этого в палитре свойств ряда объектов существуют команды, открывающие списки стандартных реквизитов и стандартных табличных частей . Такие команды доступны для тех объектов, у которых имеются стандартные реквизиты и стандартные табличные части.
С помощью палитры свойств можно переопределять некоторые свойства стандартных реквизитов таким образом, чтобы они более полно соответствовали требованиям решаемой прикладной задачи. Например, для свойства Владелец справочника РасчетныеСчета можно задать синоним Контрагент. Тогда во всех формах представление этого реквизита (Владелец) по умолчанию будет выглядеть как «Контрагент:».
В том случае если свойства стандартного реквизита (или стандартной табличной части) не заданы, будут использованы свойства стандартных реквизитов по умолчанию.
По своему набору свойств стандартный реквизит практически ничем не отличается от любого другого реквизита, за исключением того, что нельзя изменить:
● имя стандартного реквизита,
● тип стандартного реквизита,
● имя стандартной табличной части,
● индексирование стандартного реквизита.
ВНИМАНИЕ! Наличие описания стандартного реквизита не меняет его имени, то есть все обращения к реквизиту во встроенном языке и в языке запросов остаются неизменными.

Содержание: 

1. Зачем использовать стандартные реквизиты, если можно создать свои?

2. Как найти и использовать стандартный реквизит 

1.       Зачем использовать стандартные реквизиты, если можно создать свои?

Базовые версии 1С 8 более доступны по цене, однако, при этом имеют ряд ограничений, которые «всплывают», как только клиент захочет доработать тот или иной функционал программы. Один из таких сюрпризов – это отсутствие поддержки работы с расширениями 1С. Заметим, тем не менее, что фирма «1С» планирует в новых релизах (начиная с 8.3.19) платформы разрешить базовым версиям 1С 8 работать с расширениями при определённых ограничениях.

Пока же такой механизм отсутствует, решение задачи, требующей создания и хранения сущностей в базовой конфигурации может быть нетривиальным.

Предположим, в выставляемом покупателю счёте в каждой строке с вместе номенклатурой, ценой и прочим, нам, а, вернее, бухгалтеру, хотелось бы хранить такие свойства продаваемого товара, как длину, ширину и количество этого товара в штуках, применительно лишь к этому, возможно, уникальному, заказу. Это сочетание размеров, например, полотно, отрезается по заказу клиента и в дальнейшем может не повториться. Где хранить эти данные?

Регистр сведений, как и расширение недоступны в базовой версии Бухгалтерии 8, использование дополнительных реквизитов не подойдёт, ведь размеры задаются не как свойства номенклатуры как таковой, а как свойства товара именно при его продаже.  

2.       Как найти и использовать стандартный реквизит?

В таком случае стоит обратить внимание на стандартные реквизиты, которые предлагает программа, в нашем случае это базовая версия 1С 8 Бухгалтерия предприятия 3.0: нет ли среди них «бесхозных», которые могли бы нам подойти? Проанализировав, как используются реквизиты табличной части Товары документа Счёт на оплату покупателю (с помощью консоли запросов, например), можно заметить, что среди прочих есть стандартный реквизит Содержание (строка в 1000 символов), который используется только если добавленная в список номенклатура является услугой, если же это товар (т.е. НЕ Номенклатура.Услуга), то строка Содержание не используется! Что ж, 1000 символов нам вполне достаточно для хранения данных о свойствах товара.

Для работы с этим стандартным реквизитом документа требуется сделать одно подготовительное действие, а именно вытащить его на форму документа <Ещё → Изменить форму…>, разместив в удобном месте и задав достаточную длину поля ввода (рис.1).

Рисунок 1. Покажем реквизит на форме

Далее, и это важный момент – организация хранения и доступа к данным внутри стандартного реквизита в 1С Бухгалтерия, в данном случае – строки в 1000 символов. Следует определить формат записи нескольких данных в строку. Например, число, означающее длину будет начиная с такой-то позиции внутри строки, или же будет некий признак, означающий, что перед нами именно ширина, например подстрока «Ширина, мм:». Если не предусматривается заполнения новых данных в специальном окне, то необходимо довести до пользователя информацию о том, каков формат строки.

Пример строки:

№ Заказа: Э-515 Ширина, мм: 1559 Высота, мм: 1050 Кол-во, шт.: 2

Рисунок 2. Заполнение реквизита несколькими значениями

Остаётся написать обработку, которая будет извлекать числа из этой строки (сама строка при этом, может формироваться и автоматически, например, при загрузке из файла электронной таблицы), вычислять площадь, новое значение Количества и Суммы, словом, то, что в отличной от базовой версии мы бы сделали в обработчике события ПриИзменении.

Таким способом в базовой версии 1С 8.3 Бухгалтерия можно разместить новые данные, не создавая новых сущностей, а используя только имеющиеся стандартные реквизиты. Конечно, следует уделять внимание вопросу безопасного кода в контексте корректного преобразования строки в число или наоборот, помнить о проблеме пробелов и спецсимволов, а также, уже пользователю – контролировать, чтоб избранный нами реквизит использовался по назначению и не был перезаписан вдруг какими-то другими данными. Это можно назвать недостатком использования «бесхозных» реквизитов для хранения данных о свойствах товара.

Специалист компании «Кодерлайн»

Дмитрий Колесников

Содержание

Справочники

Описание

Справочники хранят в себе одинаковые по структуре данные. Например, справочник товаров или справочник должностей. Справочники это ссылочный тип данных, на любой элемент справочника можно сослаться, в документах, константах или вообще в каких либо реквизитах.

Структура справочника

Справочник обычно описываются следующим набором данных:

  • Пользовательские реквизиты — при проектировании пользователь определяет какие данные, какого типа будут храниться в справочнике. Например у справочника Банковские счета будут определены реквизиты: номер счета, банк и тд, для справочника контрагенты ИНН, КПП и тд.

  • Предопределенные реквизиты — любой справочник обладает набором предопределенных реквизитов.

  • Табличные части — справочник может любое количество табличных частей.

Предопределенные реквизиты

У каждого справочника есть номер и наименование. В принципе их можно отключить, указав длину 0. Так же код может быть числовым или текстовым, если код текстовый для удобства сортировки система дополняет код лидирующими нулями на всю длину кода, например если у справочника указана длина кода 9 и справочнику был присвоен код 3 то система дополнит нулями до такого вида: «000000003». Также в случае если имеется распределенная база в код обычно добавляется префикс той базы в которой был создан элемент, например: «ЦН0000003». Нужно учитывать эту особенность если вы соберетесь указывать числовой код, этот объект не сможет корректно работать в распределенной базе. У справочника есть и другие предопределенные реквизиты:

  • ЭтоГруппа – Имеет смысл только для иерархических справочников. Указывает на то что элемент является группой.

  • Родитель — Имеет смысл только для иерархических справочников. Указывает на группу или элемент который является родителем для этого справочника.

  • Владелец – Имеет смысл только для подчиненных справочников. Указывает на владельца данного справочника.

  • ПометкаУдаления – атрибут с типом булево, указывает помечен ли элемент на удаление или нет.

  • Ссылка – это самый главный атрибут, справочник потому и называется ссылочным типом, потому, что у него есть уникальная ссылка, которая хранится в этом атрибуте.

  • Предопределенный – атрибут с типом булево указывает на то, что элемент создан в конфигураторе.

Иерархичность.

Иерархия это способность выводить справочник в виде дерева. Эта возможность бывает очень удобной, в случаях когда в справочнике содержится много информации. В таких случаях бывает полезно разложить номенклатуру «по полочкам». При включении иерархичности у справочника, добавляются два стандартных реквизита ЭтоГруппа и Родитель. Манипулируя значением реквизита Родитель, можно переназначать родителей элемента. Строится иерархия на группах, в эти группы могут входить другие элементы или другие группы. Аналогию можно провести с проводником windows или с большинством файловых систем если вам будет удобно: есть папки в которых могут быть как файлы так и папки в которых в свою очередь тоже могут быть и файлы и папки итд. Иерархия может работать и без групп. То есть родителями могут выступать другие элементы справочника. Такой вид иерархии называется иерархия элементов. Если мы настроили иерархию, у нас появляется возможность настраивать, для какого типа могут использоваться реквизиты, для групп, элементов, или и для того и для другого. Иерархия настраивается на закладке Иерархия свойств справочника.

Подчиненность

Подчиненность это возможность сделать несколько записей одного справочника уникальными для одной записи другого справочника(если вы знакомы с основами реляционных баз даных, это связь, один ко многим ). Например: у одного контрагента, может быть много договоров, но это будут только его договора, у второго контрагента будет свой набор договоров. В этом случае справочник договоры подчинен справочнику контрагенты. Подчинение справочника реализовано предопределенным реквизитом Владелец, следовательно у одной конкретно взятой записи справочника, может быть только один владелец. В то же время у одного справочника может быть несколько владельцев. Владельцами могут быть не только справочники, а также планы обмена, планы видов характеристик, планы счетов, планы видов расчета. Также можно указать вид объекта для подчинения, доступны элементы, группы или и то и другое. Если для справочника определены подчиненные справочники и у элемента справочника не назначена основная форма, то при открытии элемента этого справочника в режиме предприятия, в управляемых формах система автоматически добавит панель для открытия подчиненных справочников с фильтром на поле владелец по текущему элементу. Такое поведение можно настроить и на уже существующих формах. FIXME(скрин)

Ввод по Строке

При выборе ссылочных данных в 1С есть возможность выбрать элемент справочника или документ, набирая ключевые реквизиты объекта который мы хотим найти, выглядит это следующим образом: пользователь, набирает «масло моторное» в поле ввода с типом «Справочник.Номенклатура» и нажимает ввод. 1С находит все записи которые начинаются с названия со слов «масло моторное» и показывает их в виде выпадающего списка под полем где пользователь вводил текст. Такой же ввод возможен и для документов. Это поведение системы можно настроить на закладке «Формы». Там есть поле Ввод по строке, по умолчанию для справочников указана возможность поиска по коду и наименованию, но туда можно добавить и свои реквизиты, для того, что бы добавить этот реквизит, он должен быть индексирован и реквизит должен быть примитивного типа.

Предопределенные элементы справочников.

Предопределенные элементы справочников определяются в конфигураторе на закладке Прочие. При создании элемента указывается имя и наименование предопределенного элемента. Имя и будет являться идентификатором для обращения к этому предопределенному элементу, поэтому к имени предъявляются такие же требования как и к другим идентификаторам(не может начинаться с числа, нельзя использовать пробелы и тд). Наименование может быть любым, его пользователь и увидит в справочнике и сможет его при желании изменить. Пользователь не может изменить имя который был указано при создании этого элемента, зато он может удалить предопределенный элемент.FIXME(надо бы найти номер релиза когда это стало возможным).
Обращение к предопределенным элементам происходит так:

НашаФирма = Справочники.Контрагенты.НашаДочерняяФирма

Таким образом, очень удобно ссылаться на предопределенные элементы из встроенного языка или опираться на них при построении каких то условий. Предопределенные элементы справочников можно использовать в схемах СКД и запросах.

Важно. Контроль за удалением предопределенных элементов лежит на плечах разработчиков, а не платформы.

Для предопределенных элементов справочников, стандартный реквизит Предопределенный имеет значение Истина. Это свойство которое доступно только на чтение, но это не означает, что нельзя «обычный» элемент справочника сделать предопределенным и наоборот. В последних релизах 8.3FIXME(Надо узнать в каких именно), появилась возможность переопределять предопределенные элементы изменяя свойство ИмяПредопределенныхДанных. Например, вот так можно сделать элемент не предопределенным:

ПредОпрЭлемент = Справочники.МойСправочник.НайтиПоКоду("КодЭлемента").ПолучитьОбъект();
ПредОпрЭлемент.ИмяПредопределенныхДанных = “”;
ПредОпрЭлемент.Записать();

И наоборот указав в свойстве ИмяПредопределенныхДанных имя предопределенного элемента справочника, можно сделать его предопределенным. У иерархических справочников возможно указывать предопределенные группы. Предопределенные элементы нельзя создавать у подчиненных справочников. В пользовательском режиме предопределенный элемент отличается, от обычного, следующим образомFIXME(показать скрин).

Подсказка. Предопределенные элементы часто используют для того, что бы избавиться в коде от конструкций вида: НайтиПоКоду и НайтиПоНаименованию. Использование этих методов считается дурным тоном, так как наименование и код справочника достаточно часто изменяются. Обычно поступают следующим образом: Создают справочник, например Настройки с единственным реквизитом Значение. После этого в конфигураторе добавляют предопределенный элемент с нужным названием а в режиме 1с Предприятие, задают его значение. Теперь вместо того что бы писать в коде:

Нашафирма = Справочники.Организации.НайтиПоНаименованию("ООО Рога и копыта")

или что еще хуже

Нашафирма = Справочники.Организации.НайтиКоду("000112")

Можно просто указать:

Нашафирма = Справочники.Настройки.НашаФирма.Значение

подробнее можно почитать здесь http://infostart.ru/public/275145/

Классы для работы со справочниками.

Все классы справочника можно увидеть в ветке Прикладные объекты –> Справочники.

Cправочники это элементы которые хранятся в базе данных, считается очевидным, что обращение к любому из классов возможно только на сервере.

Справочник менеджер

Справочник менеджер – можно получить с помощью переменных глобального контекста:

Номенклатура = Справочники.Номенклатура;

Этот класс служит для:

  • Поиска по наименованию, коду или другому реквизиту.

    Ножницы = Справочники.Номенклатура.НайтиПоНаименованию("Ножницы канцелярские");
  • Программного создания групп или элементов:

    НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
    НовыйЭлемент.Реквизит1 = "КакоеТоЗначение";
    НовыйЭлемент.Записать();
  • Делать выборки:

    Выборка = Справочники.Номенклатура.Выбрать()

    Получать пустые ссылки:

    Пусто = Справочники.Номенклатура.ПустаяСсылка(); 

И много еще разных возможностей которые можно наблюдать в синтаксис помощнике в ветке: Прикладные объекты – >Справочники – СправочникМенеджер.<ИмяСправочника>

Справочник ссылка

Справочник ссылка – самый часто используемый тип. Используется для чтения данных справочника. Его можно получить с помощью НайтиПоНаименованию, НайтиПоКоду и др методов класса СправочникМенеджер. Так же его можно получить с помощь класса Выборка и этот тип данных хранится в реквизите Cсылка объекта класса Справочник объект.
В этом классе нам доступны все реквизиты справочника, табличные части и все стандартные реквизиты. Абсолютно все свойства этого класса нам доступны только на чтение. Для того что бы изменять реквизиты справочника нам нужен класс Справочник Объект. Получить его можно с помощью метода Получить Объект().

Справочник Объект

Класс Справочник Объект отличается от класса Справочник Ссылка не многим, основная его функция обеспечить возможность изменения элемента справочника. Запись происходит с помощью метода Записать()

Справочник Выборка

Справочник Выборка получается с помощью методов Выбрать и Выбрать Иерахически он позволяет обойти элементы справочника в цикле, с помощью метода Следующий().

Популярные приемы работы со справочниками

Поиск по наименованию.

Несмотря на то, что неоднократно рассматривается поиск элемента справочника по наименованию, «зашивать» в код значения из базы данных считается дурным тоном.

Для поиска по наименованию используется функция НайтиПоНаименованию(). Для использования этого метода необходимо указать наименование по которому будет происходить поиск. Если поиск должен проходить по точному соответствию с указанной строкой то вторым параметром, нужно указать Истина, иначе поиск будет проходить по первым буквам указанного шаблона поиска, то есть если в качестве строки для поиска указать «Слон» то под шаблон попадут и «Слон» и «Слон игрушечный» и «Слонопотам». Поиск можно ограничить определенной группой, если справочник иерархический или владельцем, если справочник подчиненный. Если значение не найдено, метод вернет пустую ссылку того типа справочника для которого производился поиск.

Поиск по коду

Для поиска по коду используется функция НайтиПоКоду(). Для использования этого метода необходимо в параметре «Код» указать код, по которому будет производиться поиск. Если в качестве кода указывается полный путь с учетом иерархии (уровни справочника разделяются символом «/»), то второй параметр поиск по полному коду, необходимо установить в Истина. Например:
Номенклатура «Слонопотам» с кодом «001142» находится в папке «Мягкие Игрушки» с кодом «000826» которая находится в папке «Игрушки» с кодом 000375. Тогда можно найти ее с помощью вот такой строки

Слонопотам = Справочники.Номенклатура.НайтиПоКоду("000375/000826/001142", Истина);

Или можно искать сразу:

Слонопотам = Справочники.Номенклатура.НайтиПоКоду("001142");

Поиск можно ограничить определенной группой, если справочник иерархический или владельцем, если справочник подчиненный. Если значение не найдено, метод вернет пустую ссылку того типа справочника для которого производился поиск. Поиск может осуществляться и по реквизиту с помощью одноименного метода, главное условие реквизит должен быть индексирован.

Выборка

Выборка позволяет обходить в цикле элементы справочника.
Для иерарахических справочников доступна выборка по родителю, для подчиненных по владельцу. Для любого вида справочника возможно указать отбор, которому будут соответствовать элементы в выборке и поле по которому выборка будет упорядочена. Работает выборка следующим образом:

Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл 
	Наименование = Выборка.Наименование;
КонецЦикла;

При использовании метода Следующий() в классе выборка, текущим устанавливается следующий элемент из текущей выборки. Если в выборка спозиционировалась на определенном элементе, она возвращает Истина, иначе Ложь. Для класса Справочник Выборка доступны все поля и табличные части, которые определены для текущего справочника, а так же есть свойство Ссылка которое позволяет получить ссылку на текущий элемент справочника из выборки.
Для того что бы при выборке учитывалась иерархия справочника, необходимо использовать метод ВыбратьИерархически().

Программное создание элементов справочника

Элементы и группы справочников, можно создавать и не посредственно из программного кода. Для этого используется следующий код:

НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемнт();
НовыйЭлемент.Наименование = "ТестоваяНоменклатура";
НовыйЭлемент.ПолноеНаименование = "ТестоваяНоменклатура";
//Заполнение всех остальных элементов
НовыйЭлемент.Записать();

Группа справочника создается аналогично с помощью метода СоздатьГруппу()
В том случае, если у справочника установлено свойство Автонумерация код указывать не нужно, он устанавливается автоматически.

Проверка переменной с типом СправочникСсылка на заполненность

Иногда возникает необходимость проверить заполнено ли значение с типом «Справочник.Ссылка». Такая необходимость может возникнуть, когда реквизит какого либо объекта имеет тип «Справочник.Ссылка» или когда вы например ищете элемент справочника по коду или наименованию, или в ряде других случаев, когда метод возвращает пустую ссылку на справочник. Есть несколько способов это сделать:

  1. Использовать метод глобального контекста ЗначениеЗаполнено() который можно применить к любому типу а не только к справочнику. Доступно и на клиенте и на сервере.

  2. Сравнить c пустой ссылкой менеджера этого справочника. Например:

    Если ПроверяемоеЗначение = Справочники.Номенклатура.ПустаяСсылка() Тогда

    Только для сервера

  3. Использовать метод ‘Пустая()’ доступный на клиенте для объектов класса «Справочник ссылка».

Проверка элемента справочника на вхождение в какую либо группу или подчинение элементу

Когда мы говорим о проверке подчиненности, необходимо понимать, что все методы справедливы не только для групп, но и для элементов, если у справочника установлен вид иерархии «Иерархия элементов».
Здесь возможно несколько вариантов: если у нас есть группа и нам необходимо знать если ли именно в ней и нигде иначе определенный элемент справочника, то можно сравнить предопределенный реквизит Родитель нужного нам элемента справочника с ссылкой на группу, например:

Если КакойтоЭлемент.Родитель = НужнаяГруппа Тогда

Если справочник многоуровневый и нужно знать есть ли элемент в этой группе или где то в подчинненых группах то можно воспользоваться методом «ПринадлежитЭлементу()» этот метод вернет Истина если элемент содержится в текущей или любой подчиненной группе. Например в этом случае

НужнаяГруппа = НайтиПоНаименованию("ГруппаРаз");
Если НашЭлемент.ПринадлежитЭлементу(НужнаяГруппа) Тогда

условие будет истинным.

СправочникСсылка <> СправочникОбъект

При работе со справочниками очень важно понимать, что во всех реквизитах, выборках и тд, мы чаще всего работаем с типом СправочникСсылка и этот тип позволяет получить любую информацию которая находится в его реквизитах, но не поддерживает запись. Для изменения реквизитов справочника и записи следует использовать тип СправочникОбъект. Преобразовать ссылку в объект можно с помощью метода ПолучитьОбъект() Например:

КонтрагентПетров = Справочники.Контрагенты.НайтиПоНаименованию("Петров Иван Сергеевич");
КонтрагентОбъект = КонтрагентПетров.ПолучитьОбъект();
//Здесь идут какие то изменения
КонтрагентОбъект.Записать(); //и непосредственно запись

Проверка на то что ссылка является ссылкой на справочник

Проверить то что справочник является ссылкой можно очень просто, с помощью одной строки:

Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(СсылкаНаЭлементСправочника));

Где СсылкаНаЭлементСправочника проверяемая ссылка, эта строка вернет Истина если проверяемая ссылка является ссылкой на какой либо элемент справочника.

Только авторизованные участники могут оставлять комментарии.

Вывод основных(стандартных) реквизитов и табличной части документа

Я
   kuzma7126

13.10.10 — 00:26

Есть документ. Как вывести значения основных реквизитов, то есть это номер и дата?

Также нужно вывести шапку таблицы и её значения. Нужно использовать метаданные

  

Партнерская программа EFSOL Oblako

   kokamoonga

1 — 13.10.10 — 01:47

МетаданныеДокумента = Документ.Метаданные();
//или МетаданныеДокумента = Метаданные.Документы.ТвойДокумент

ТвойРеквизит = МетаданныеДокумента.Реквизиты.Найти(«ИмяТвоегоРеквизита»);

вопрос с собеседования чтоли?

   Nikitvol

2 — 13.10.10 — 04:29

Я же спрашивал это уже :)

   Nikitvol

3 — 13.10.10 — 04:29

   Nikitvol

4 — 13.10.10 — 04:32

Только с таблицей не разобрался…

   kuzma7126

5 — 13.10.10 — 12:28

с таблицей как сделать. Подскажите)

   Рэйв

6 — 13.10.10 — 12:35

(5)
ТЧ=Док.Метаданные().ТабличныеЧасти[«ИмяТЧ»];

Для Каждого Стр Из ТЧ Цикл
  Сообщить(«»+Стр[«КолонкаРаз»]+»,»+Стр[«КолонкаДва»]);
Конеццикла;

   kuzma7126

7 — 13.10.10 — 12:52

а если нам неизвестны названия колонок в таблице и имя табличной части?

   Рэйв

8 — 13.10.10 — 13:09

Для каждого ТЧ Из Док.Метданные().ТабличныеЧасти() Цикл    
       Сообщить(«————«+ТЧ.Имя);
       Для Каждого Стр Из Док[ТЧ.Имя] Цикл

                       Строчка=»»;
           Для Каждого Рек Из ТЧ.Реквизиты Цикл
               Строчка=Строчка+ТЧ.Индекс(Стр)+».  «+Рек.Имя+»=»+Стр[Рек.Имя]+»,»;
           КонецЕсли;
           Сообщить(Строчка);
       Конеццикла;    
   Конеццикла

   Рэйв

9 — 13.10.10 — 13:09

ТабличныеЧасти() без ()

   Рэйв

10 — 13.10.10 — 13:10

ну..И с индексом там надо пораньше поставить:)

   kuzma7126

11 — 13.10.10 — 13:24

выдает ошибку

ТЧ=СсылкаНаДокумент.Метаданные().ТабличныеЧасти;
Для каждого ТЧ Из СсылкаНаДокумент.Метданные().ТабличныеЧасти Цикл    
       Сообщить(«————«+ТЧ.Имя);
       Для Каждого Стр Из СсылкаНаДокумент[ТЧ.Имя] Цикл

                       Строчка=»»;
           Для Каждого Рек Из ТЧ.Реквизиты Цикл
               Строчка=Строчка+ТЧ.Индекс(Стр)+».»+Рек.Имя+»=»+Стр[Рек.Имя]+»,»;
           КонецЦикла;
           Сообщить(Строчка);
       Конеццикла;    
   Конеццикла;

{Форма.ПерегрузкаДокумента.Форма(73)}: Метод объекта не обнаружен (Метданные)
Для каждого ТЧ Из СсылкаНаДокумент.Метданные().ТабличныеЧасти Цикл

   kuzma7126

12 — 13.10.10 — 13:39

масло маслянное

   Mitriy

13 — 13.10.10 — 13:43

(12) Метданные
читай до полного просветления…

   Рэйв

14 — 13.10.10 — 13:51

(12)имхо что-то у тебя не так в СсылкаНаДокумент

   kuzma7126

15 — 13.10.10 — 13:54

xDDDD там просто метданные написано. а надо метАданные)
исправил.
Правильно выводит название табличной части.  А потом ошибка
{Форма.ПерегрузкаДокумента.Форма(79)}: Метод объекта не обнаружен (Индекс)
               Строчка=Строчка+ТЧ.Индекс(Стр)+».»+Рек.Имя+»=»+Стр[Рек.Имя]+»,»;

   Mitriy

16 — 13.10.10 — 13:56

(15) тебе нужна ТЧ документа, а не ТЧ — метаданные…

   Рэйв

17 — 13.10.10 — 13:57

(15)Да забей ты на него:)

Но если хочешь , то убери «ТЧ.Индекс(Стр)+»

и поставь вместо Строчка=»»; -> Строчка=СсылкаНаДокумент[ТЧ.Имя].Индекс(Стр);

Я его зря в цикл по реквизитам поставил

   Рэйв

18 — 13.10.10 — 13:58

блин, опять очепятался:))  что за день сегодня

Строчка=»»+СсылкаНаДокумент[ТЧ.Имя].Индекс(Стр);

  

kuzma7126

19 — 13.10.10 — 14:03

спасибо! заработало)))

Занятие 3

Справочники

Продолжительность

Ориентировочная продолжительность занятия – 2 часа 10 минут.

Что такое справочник…………………………………………………………………………………………..

52

Формы справочника.……………………………………………………………………………………………

58

Простой справочник…………………………………………………………………………………………….

64

Представления объекта конфигурации………………………………………………………..

65

Принадлежность объекта к подсистемам.……………………………………………………

67

Код и  наименование справочника.……………………………………………………………..

68

Команда добавления нового элемента.……………………………………………………….

71

Панель команд текущего раздела……………………………………………………………….

74

Создание элементов справочника……………………………………………………………….

75

Справочник с  табличной частью………………………………………………………………………….

83

Табличная часть…………………………………………………………………………………………

86

Заполнение табличной части………………………………………………………………………

91

Иерархический справочник………………………………………………………………………………….

94

Создание элементов в  иерархическом справочнике .………………………………….

99

Перенос элементов в  другие группы…………………………………………………………

102

Справочник с  предопределенными элементами………………………………………………..

105

Свойство «Быстрый выбор»………………………………………………………………………

107

Предопределенные элементы…………………………………………………………………..

108

Теория………………………………………………………………………………………………………………

112

Предопределенные элементы………………………………………………………………………

112

Основная конфигурация и  конфигурация базы данных…………………………………

113

Контрольные вопросы……………………………………………………………………………………….

118

52 1С:Предприятие 8.3. Практическое пособие разработчика

На этом занятии мы познакомимся с  объектом конфигурации Справочник. Вы узнаете, для чего используется этот объект, какова его структура и  какими основными свойствами он обладает.

На практических примерах вы научитесь создавать справочники, описывать наиболее важные элементы их структуры и  заполнять их данными.

Кроме этого, вы узнаете еще об одном объекте конфигурации – Форма. Узнаете, какие виды форм существуют у  объекта конфигурации Справочник и  в каких ситуациях они используются.

В заключение в  конце занятия будет сделано теоретическое отступление, касающееся механизма внесения изменений в  конфигурацию.

Что такое справочник

Объект конфигурации Справочник предназначен для работы со спискамиданных.Какправило,в  работелюбойфирмыиспользуются списки сотрудников, списки товаров, списки клиентов, поставщиков и  т. д. Свойства и  структура этих списков описываются в  объектах конфигурации Справочник, на  основе которых платформа создает в  базе данных таблицы для хранения информации из этих справочников.

Справочниксостоитизэлементов.Например,длясправочникасотрудников элементом является сотрудник, для справочника товаров  – товар и  т. д. Пользователь в  процессе работы может самостоятельно добавлять новые элементы в  справочник: например, добавить новых сотрудников, создать новый товар или внести нового клиента.

В базе данных каждый элемент справочника представляет собой отдельную запись в  основной таблице, хранящей информацию из этого справочника (рис. 3.1).

Каждый элемент справочника, как правило, содержит некоторую дополнительную информацию, которая подробнее описывает этот элемент. Например, все элементы справочника Товары могут содержать дополнительную информацию о производителе, сроке годности и  др. Набор такой информации является одинаковым для всех элементов справочника, и  для описания такого набора используются реквизиты объекта конфигурации Справочник, которые также, в  свою очередь, являются объектами конфигурации (рис. 3.2).

Занятие 3 53

Рис. 3.1. Справочник «Товары» в  режиме «Конфигуратор», в  режиме «1С:Предприятие» и  в базе данных

Рис. 3.2. Стандартные реквизиты справочника и  реквизиты, созданные разработчиком

Поскольку эти объекты конфигурации логически связаны с  объектом Справочник, они называются подчиненными этому объекту.

54 1С:Предприятие 8.3. Практическое пособие разработчика

Большинство реквизитов разработчик создает самостоятельно, однако у  каждого объекта конфигурации Справочник по умолчанию существует набор стандартных реквизитов: Код и  Наименование и  пр. (см. рис. 3.2). Причем доступность стандартных реквизитов зависит от свойств справочника.

Например, если справочник иерархический, у  него будет доступен стандартный реквизит Родитель. Если справочник подчинен другому объекту конфигурации, у  него будет доступен реквизит Владелец. Если установить длину стандартного реквизита Код равной нулю, то у  справочника будет недоступен этот реквизит. То же самое относится к реквизиту Наименование. Однако как минимум либо Код, либо Наименование должны присутствовать в  реквизитах справочника, иначе такой справочник не имеет смысла.

Таким образом, в  базе данных справочник хранится в  виде таблицы, в  строках которой расположены элементы списка, а каждому реквизиту (стандартному или созданному разработчиком) в  этой таблице соответствует отдельный столбец. Соответственно, в  ячейках этой таблицы хранится значение конкретного реквизита для конкретного элемента справочника (рис. 3.3).

Рис. 3.3. Справочник «Товары» в  режиме «Конфигуратор», в  режиме «1С:Предприятие» и  в базе данных

Занятие 3 55

Кроме этого, каждый элемент справочника может содержать некоторый набор информации, которая одинакова по своей структуре, но различна по количеству и  предназначена для разных элементов справочника.

Так, например, каждый элемент справочника Сотрудники может содержать информацию о составе семьи сотрудника. Для одного сотрудника это будет только супруга, а у  другого семья может состоять из супруги, сына и  дочери.

Для описания подобной информации могут быть использованы табличные части объекта конфигурации Справочник, являющиеся подчиненными ему объектами конфигурации. В  этом случае в  базе данных будут созданы дополнительные таблицы для хранения табличных частей, подчиненных конкретному элементу справочника

(рис. 3.4).

Рис. 3.4. Справочник «Сотрудники» в  режиме «Конфигуратор», в  режиме «1С:Предприятие» и  в базе данных

56 1С:Предприятие 8.3. Практическое пособие разработчика

Причем система скрывает от разработчика всю «техническую» часть, связанную с  хранением данных: в  базе данных для справочника создаются несколько таблиц, эти таблицы связываются по уникальному полю (Ссылка), поля таблиц имеют определенные типы и  т. д. Все это система делает сама. Нам лишь нужно добавить в  объект конфигурации Справочник подчиненный ему объект ТабличнаяЧасть.

Для удобства использования элементы справочника могут быть сгруппированы пользователем по какому-либо принципу.

Например, в  справочнике Бытовая техника могут быть созданы следующиегруппы:Холодильники,Телевизоры,Стиральные машины и  т. д.

Возможность создания таких групп в  справочнике задается свойством Иерархический объекта конфигурации Справочник. В  этом случае элемент справочника, представляющий собой группу, будет являться родителем для всех элементов и  групп, входящих в  эту группу. Такой вид иерархии называется иерархией групп иэлементов (рис. 3.5).

Рис. 3.5. Иерархический справочник с  иерархией групп и  элементов

Возможен и  другой вид иерархии – иерархия элементов. В  этом случае в  качестве родителя выступает не группа элементов справочника, а непосредственно один из его элементов. Например, такой вид иерархии можно использовать при создании справочника Подразделения, когда одно подразделение является родителем для нескольких других, входящих в  его состав (рис. 3.6).

Занятие 3 57

Рис. 3.6. Иерархический справочник с  иерархией элементов

Элементы одного справочника могут быть подчинены элементам или группам другого справочника. Например, справочник ЕдиницыИзмерения может быть подчинен справочнику Товары. Тогда для каждого элемента справочника Товары мы сможем указать единицы измерения, в  которых этот товар поступает на  склад.

В системе «1С:Предприятие» это достигается путем указания списка владельцев справочника для каждого объекта конфигурации Справочник. В  данном случае справочник Товары будет владельцем спра-

вочника ЕдиницыИзмерения (рис. 3.7).

Рис. 3.7. Справочник «Товары» – владелец справочника «Единицы измерения»

58 1С:Предприятие 8.3. Практическое пособие разработчика

Порой возникают ситуации, когда необходимо, чтобы в  справоч-

нике некоторые

элементы

существовали

всегда,

независимо

от действий

пользователя.

Допустим, логика бизнес-процессов

на  предприятии

такова, что все

товары

сначала

поступают

на  основной

склад,

а затем

по мере надобности

перемещаются

на  другие склады.

В  этом

случае

в  справочнике

Склады всегда

должен существовать склад Основной, иначе приходование товаров будет выполнено неправильно. Объект конфигурации Справочник позволяет описать любое количество таких элементов справочника. Они называются предопределенными элементами справочника

(рис. 3.8).

Рис. 3.8. Справочник «Склады» с  предопределенным элементом «Основной»

Предопределенные элементы отличаются от обычных тем, что они создаются в  конфигураторе и  что к ним можно обращаться из встроенного языка. В  интерфейсе предопределенные элементы справочника помечены специальной пиктограммой (см. рис. 3.8).

Формы справочника

В зависимости от того, какие действия мы хотим выполнять со справочником, нам требуется изображать справочник в  «разном виде». Например, для того чтобы выбрать некоторый элемент справочника, удобнее представить справочник в  виде списка, а для того чтобы изменить какой-то элемент справочника, удобнее представить все реквизиты этого элемента справочника в  одной форме

(рис. 3.9).

Занятие 3 59

Рис. 3.9. Форма списка и  форма редактирования элемента справочника «Сотрудники»

Система может самостоятельно сгенерировать все формы, которые нужны для представления данных, содержащихся в  справочнике. Причем система знает, какие именно формы нужно использовать в  каких ситуациях.

Вообще говоря, для отображения справочника в  различных ситуациях требуется максимум пять форм для справочника.

Обратите внимание, что в  различных местах конфигуратора одни и  те же формы называются немного по-разному (табл. 3.1). Следующая таблица представляет различные названия форм:

в контекстном меню справочника (Открыть основную форму…), в  дереве конфигурации и  в палитре свойств справочника;

в конструкторе форм;на закладке Формы окна редактирования справочника.

60 1С:Предприятие 8.3. Практическое пособие разработчика

Таблица 3.1. Формы справочника

В контекстном меню

В конструкторе форм

На закладке

и  в палитре свойств

(рис. 3.11)

«Формы» (рис. 3.10)

(рис. 3.12)

Основная форма объекта

Форма элемента справоч-

Элемента

ника

Основная форма группы

Форма группы справочника

Группы

Основная форма списка

Форма списка справочника

Списка

Основная форма выбора

Форма выбора справочника

Выбора

Основная форма выбора

Форма выбора группы спра-

Выбора группы

группы

вочника

Дело в  том, что в  контекстном меню и  палитре свойств отображаются свойства объектов конфигурации. Они одинаковые для всех объектов конфигурации. А в  конструкторе форм и  на закладке Формы отображаются представления этих свойств в  виде, более понятном разработчику. Они разные для разных объектов конфигурации. Различные наименования форм справочника представлены на  рис. 3.10, 3.11, 3.12.

Форма элемента используется для редактирования или создания элемента справочника.

Рис. 3.10. Названия форм справочника на  закладке «Формы»

Соседние файлы в папке Учебники

  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Стандарты стоимости в оценке бизнеса презентация
  • Служащие заканчивают работу в шесть часов вечера
  • Стоимость пересылки колес транспортной компанией
  • Служба мировых судей самарской области реквизиты
  • Станем друзьями семеновская часы работы продукты