1с общие реквизиты использование автоматически

Общий реквизит

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

Разделение данных

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


Общий реквизит

Хранение однотипных данных

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

Например, если во всех документах требуется иметь реквизиты Автор и Редактор, нет необходимости создавать такие реквизиты в каждом документе. Достаточно создать два общих реквизита (Автор, Редактор) и указать, в каких документах они будут использоваться.


Общий реквизит


Общий реквизит

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

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

В моей учебной конфигурации имеется несколько справочников.

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

Реализуем, чтобы у справочников Товары, Контрагенты и Склады появился одинаковый реквизит Описание (тип строка (250)). Мы можем, добавить этот реквизит в каждый справочник отдельно, а можем, создать общий реквизит, и в его составе указать, что он применим только к этим справочникам.

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

Ветка Общие реквизиты

После этого новый реквизит будет создан, и справа откроется палитра свойств этого реквизита, где мы поменяли название, синоним, тип реквизита оставили Строка, а длину этой строки установили 250.

Свойства общего реквизита

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

Свойство состав общего реквизита

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

 Свойство автоиспользование общего реквизита

У нашего реквизита в данном свойстве установлено значение Не использовать, значит у всех объектов,
для которых в колонке Использование
установлено значение Автоматически,
данный реквизит не будет использоваться. 
И нам нужно вручную указать, у каких объектов этот реквизит применяется.
Мы планировали это делать для трех справочников: Товары, Контрагенты и Склады.

Укажем, что у справочника Товары используется этот реквизит. Для этого выделим этот справочник в списке, и выполним команду в виде галки («Установить «Использовать»…») в верхней панели открывшейся формы.

Включаем использование общего реквизита

После этих действий, нужный справочник появится в нижнем
списке.

Используемые объекты

Можно на этой форме добавить объект в используемые по другому. У колонки Использование соответствующего объекта вызвать меню строки, в котором выбрать нужное значение (в нашем случае Использовать).

Включаем использование общего реквизита

Включим оставшийся объект.

Описание общих реквизитов

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

Рекомендую всегда устанавливать данное значение в это свойство!

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

Использование общего реквизита

Применение общих реквизитов

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

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

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

Общий реквизит на форме справочника

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

Список реквизитов при создании формы

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

Общий реквизит на управляемой форме

Перетащим этот реквизит на форму.

Общий реквизит на управляемой форме

И он появится на управляемой форме как обычный реквизит.

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

НовыйСклад = Справочники.Склады.СоздатьЭлемент();
НовыйСклад.Наименование = "Склада № 2";
НовыйСклад.Описание = "Для хранения запчастей";
НовыйСклад.Записать();

После выполнения этого кода общий реквизит Описание будет заполнен.  

Общий реквизит на управляемой форме

Точно также, мы можем обратиться к этому реквизиту в запросе напрямую, как к простому реквизиту объекта.

Общий реквизит в конструкторе запроса

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

Документы в 1С 8.3

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

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

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

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

Табличные части объектов 1С

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

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

Программировать в 1С за 11 шагов

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

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

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

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

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

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

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

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

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

Реквизиты – это поля объекта 1С, которые нужно заполнить, чтобы «ввести его в базу данных». Мы уже обсуждали реквизиты ранее.

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

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

Или если вдруг попросят добавить пару реквизитов каждому документу..

Что делать в этом случае?

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

В конфигурации в ветке Общие/Общие реквизиты 1С можно добавить реквизиты 1С, которые принадлежат не только одному объекту (справочнику, документу, регистру) – а нескольким.

Добавим реквизит 1С НашаОрганизация. Укажем тип – справочник Организации.

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

Сначала зайдем в свойство общего реквизита 1С Состав. Здесь Вы можете указать:

  • Справочники и документы, в которых ДОЛЖЕН БЫТЬ этот общий реквизит 1С – с помощью варианта использования Использовать
  • В остальных элементах оставить Автоматически!

Другой вариант – если Вы укажете в Составе:

  • Справочники и документы, в которых НЕ должен быть этот общий реквизит 1С – с помощью варианта использования Не использовать
  • В остальных элементах оставить Автоматически!

А теперь в зависимости от выбранного Вами варианта, в свойстве общего реквизита 1С Автоиспользование – выберите Использовать или Не использовать. Это значит, что для элементов, для которых в составе Вы оставили вариант Автоматически, будет использован тот вариант, который Вы выбрали в свойстве Автоиспользование.

Кстати, как Вы понимаете – общий реквизит 1С можно использовать и для одного документа – если в составе выбрать только один документ.

Добавление общего реквизита 1С на форму

После того как Вы добавили общий реквизит 1С и указали в его свойствах Состав требуемые документы – можно начинать редактировать форму данных документов.

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

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

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

В конфигурациях толстого клиента это функции ПередОткрытием() и ПриОткрытии(). В конфигурации тонкого клиента это функции ПриСозданииНаСервере() и ПриОткрытии().

Правда в этом случае, Вам тоже придется вносить изменения в модуль 1С каждого документа. Пойдем дальше!

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

Например:

  • Конфигурации толстого клиента — обычно вызываются следующие функции из общего модуля РаботаСДиалогами
    o УстановитьЗаголовокФормыДокумента()
    o АктивизироватьРеквизитФормы()
    o УстановитьДоступностьФормыДляРедактирования()
  • В конфигурации тонкого клиента – обычно вызываются следующие функции из общих модулей
    o ВерсионированиеОбъектов.ПриСозданииНаСервере()
    o ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере().

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

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

Пример текста программы по добавлению реквизита-галочки на форму (толстая форма):

Процедура УстановитьЗаголовокФормыДокумента (ФормаДокумента) Экспорт
      ЭУ = ФормаДокумента.ЭлементыФормы.Добавить(Тип(«ПолеВвода»), «ПроизвольноеИмяБезПробелов»);
      ЭУ.Данные = «ИмяОбщегоРеквизита»;
      ЭУ.Верх = 100;
      ЭУ.Лево = 100;
      ЭУ.Ширина = 200;
      ЭУ.Высота = 15;
      //…
КонецПроцедуры

Пример текста программы по добавлению реквизита 1С на форму (управляемая тонкая форма):

Процедура ПриСозданииНаСервере(Форма) Экспорт
      ЭУ = Форма.Элементы.Добавить(«ПроизвольноеИмяБезПробелов», Тип(«ПолеФормы»));
      ЭУ.Вид = ВидПоляФормы.ПолеВвода;
      ЭУ.ПутьКДанным = «ИмяОбщегоРеквизита»;
      ЭУ.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Лево;
      //…
КонецПроцедуры

В управляемой форме Вы не указываете положение реквизита 1С Верх и Лево, вместо этого можно поместить его в одну из групп на форме. Для этого группу нужно предварительно найти вот так:
ГруппаЭлементов = Форма.Элементы.Найти(«ИмяГруппы»);
,и потом в функции Форма.Элементы.Добавить() — указать третьим параметром.

Загрузка…

Такое понятие, как «Реквизиты», знакомо большинству людей. Но если говорить только о работе в программах 1С, то это понятие сужается до полей объекта, которые заполняются пользователем при вводе этого объекта в базу.

Общие реквизиты документа

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

Если мы зайдем в программу 1С в режиме Конфигуратор и откроем дерево метаданных, то в разделе «Общие» увидим отдельную ветвь – «Общие реквизиты».

Рис.1 Общие реквизиты
Рис.1 Общие реквизиты

Рассмотрим свойства этих объектов метаданных. Откроем двойным щелчком окно «Свойства».

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

 

Нажав на гиперссылку «Открыть», мы увидим список объектов, где используется, а где нет, данный общий реквизит, а также где используется «Автоматически».

Рис.3 Список объектов с реквизитом и без
Рис.3 Список объектов с реквизитом и без

Настройки в свойствах общих реквизитов:

  • «Автоиспользование» указывает на применение для тех объектов, в составе которых стоит «Автоматический».
  • Если в поле «Разделение данных» установлено «Не использовать», реквизит будет использоваться как входящий в состав нескольких объектов конфигурации. При установленном «Разделять», созданный разработчиком общий реквизит будет использоваться как разделитель данных.
Рис.4 Настройки в свойствах общих реквизитов
Рис.4 Настройки в свойствах общих реквизитов

Сразу после установления значения «Разделять», система создаст параметры по умолчанию.

Рис.5 Параметры по умолчанию
Рис.5 Параметры по умолчанию

Поясним на примере. Предположим, у нас имеется общий реквизит «Организация». То есть он будет в каждом объекте. Указанием, что он будет разделителем, в базе сформируется несколько областей, в которых будут храниться сведения в разрезе этого разделителя. В приводимом примере – в разрезе организации. Таким образом, пользователь может поучать данные не только все, но и по определенной области данных – только по своей организации.

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

Создать общий реквизит

Для этого нажмем правой кнопкой мышки на общем реквизите и выберем команду «Добавить» или кнопка «Ins» на клавиатуре.

Рис.6 Создать общий реквизит
Рис.6 Создать общий реквизит

Для примера назовем его «Организация», соответственно тип укажем — СправочникСсылка.Организации.

Рис.7 СправочникСсылка.Организации
Рис.7 СправочникСсылка.Организации

 

Установим разделение данных – «Разделять».

Рис.8 Установим разделение данных
Рис.8 Установим разделение данных

 

В составе документов, где он будет стоять (к примеру, в счете на оплату покупателю), установим – «Использовать».

Рис.9 В составе документов установим «Использовать»
Рис.9 В составе документов установим «Использовать»

 

Открыв форму документа (дерево метаданных «Документы» — «СчетНаОплатуПокупателю», раздел «ФормаДокумента»), мы видим наше добавленное поле и среди элементов, и в списке. Также он автоматически разместился на форме документа.

Рис.10 Форма документа
Рис.10 Форма документа

 

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

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

Рис.11 СправочникНоменклатура: Общие реквизиты
Рис.11 СправочникНоменклатура: Общие реквизиты

 

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

Содержание:

1.       Хранение однотипных данных

2.       Разделение данных 1С  

1.    Хранение однотипных данных

Цель данной статьи – помочь начинающим разработчикам немного лучше разобраться с такими объектами конфигурации как Общие реквизиты 1С.

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

К примеру, необходимо при каждой записи документа сохранять пользователя, который выполнил изменения в документе. В типовых конфигурациях у большинства объектов есть реквизит «ответственный», но в данный реквизит записывается только создатель документа. Чтобы сохранить также и пользователя, вносившего изменения в объект, можно добавить новый реквизит – «Редактор». Можно пойти долгим путем добавления в каждый требуемый объект нового реквизита, последующего вынесения на форму и т.д., а можно добавить в конфигурацию один общий реквизит документов, и указать, где он будет использоваться (Рисунок 1).

добавить в конфигурацию один общий реквизит

Рисунок 1.

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

Соответственно, обращение к общему реквизиту 1С также ничем не отличается от обращения к реквизитам других типов (Рисунок 2).

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

Рисунок 2.

При работе с формой объекта 1С 8.3, обращение к реквизитам также не отличается, и, чтобы вынести данный реквизит на форму объекта, достаточно его просто перетащить на форму (Рисунок 3).

работа с формой объекта 1С 8.3

Рисунок 3  

2.    Разделение данных 1С

Второй вариант использования общих реквизитов – Разделение данных 1С.

Разделение данных 1С – это аналогичный ограничению доступа на уровне записей механизм, однако работающий по другому принципу. Если ограничение доступа на уровне записей – это дополнительные условия в запросе 1С 8.3, ограничивающие список, то разделитель данных 1С – это дополнительный столбец в таблицах на уровне СУБД. Соответственно, благодаря разделению данных 1С система будет работать несколько быстрее.

Принцип работы:

1. Создается общий реквизит документов и определяется состав справочников, регистров и документов, которые будут разделяться;

2. При разделении данных конфигуратор предложит создать два параметра сеанса 1С: значение реквизита объекта и признак использования.

После включения настройки «Разделение данных» 1С покажет в свойствах общего реквизита дополнительные поля (Рисунок 4):

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

Использовать разделение данных в 1С

Рисунок 4

· Свойства «Разделение пользователей» и «Разделение аутентификации» позволяет создавать отдельные списки пользователей для каждой области базы.

· Свойство «Условное разделение» позволяет использовать какие-либо условия для включения или отключения общего реквизита-разделителя.

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

Айдар Фархутдинов

Понравилась статья? Поделить с друзьями:
  • 1с основной реквизит формы динамический список
  • 1с отбор в отчете по дополнительному реквизиту
  • 1с отбор в списке по дополнительному реквизиту
  • 1с отбор в форме списка по реквизиту реквизита
  • 1с отбор по свойству дополнительного реквизита