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


Реквизиты – это поля объекта 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 Star2 Stars3 Stars4 Stars5 Stars (25 голосов, среднее: 4,68 из 5)
Загрузка...

Добавить комментарий