1с общие реквизиты в формах документов. V8: История изменения реквизитов

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

Реквизиты – это поля объекта 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с 7.7 у справочников были интересные реквизиты - периодические, они могли запоминать значение реквизита с привязкой к времени, работать с ними было не так чтобы очень уж удобно но, за неимением альтернатив, приходилось. После перехода на 8-ку многие программисты с удивлением обнаружили отсутствие периодических реквизитов в справочниках.

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

Для того чтобы повторить функционал 7,7 нужно проделать следующее:

Создать регистр сведенный «ПереодическиеДанныеКонтрагента», указать, что это периодический регистр сведений с периодичностью день.

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

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

В режиме обычного приложения через кнопку «Перейти»

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

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

Для начала добавим на форму группу, которую назовем «Контактные данные» в нее добавим два реквизита «Руководитель» и «Телефон»


А в модуле формы на событие «ПриОткрытии» повесим действия по получению актуальных данных:

& НаКлиенте Процедура ПриОткрытии(Отказ) //Вставити вміст обробника дані= ОтриматиАктуальніДані() ; попытка Директор = дані. керівник; исключение конецпопытки ; попытка телефон = дані. телефон; исключение конецпопытки ; КонецПроцедуры

Функция получения актуальных данных следующая:

функция ОтриматиАктуальніДані() //Вставити вміст обробника //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Даний фрагмент побудований конструктором. // При повторному використанні конструктора, внесені вручну зміни будуть втрачені!!! Запрос = Новый Запрос; Запрос. Текст = " ВЫБРАТЬ | ПеріодичніДанніКонтрагентаСрезПоследних. Контрагент, | ПеріодичніДанніКонтрагентаСрезПоследних. Керівник, | ПеріодичніДанніКонтрагентаСрезПоследних. Адреса, | ПеріодичніДанніКонтрагентаСрезПоследних. Телефон |ИЗ | РегистрСведений. ПеріодичніДанніКонтрагента. СрезПоследних КАК ПеріодичніДанніКонтрагентаСрезПоследних |ГДЕ | ПеріодичніДанніКонтрагентаСрезПоследних. Контрагент = & Контрагент " ; Запрос. УстановитьПараметр(" Контрагент " , объект. Ссылка) ; РезультатЗапроса = Запрос. Выполнить () ; ВыборкаДетальныеЗаписи = РезультатЗапроса. Выбрать() ; дані= новый структура; Пока ВыборкаДетальныеЗаписи. Следующий() Цикл // Вставити обробку вибірки ВыборкаДетальныеЗаписи //ВыборкаДетальныеЗаписи.Керівник; дані. Вставить(" керівник " , ВыборкаДетальныеЗаписи. Керівник) ; дані. Вставить(" телефон " , ВыборкаДетальныеЗаписи. Телефон) ; Сообщить(ВыборкаДетальныеЗаписи. Телефон) ; КонецЦикла ; Возврат дані ; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА Конецфункции

Я воспользовался запросом, хотя можно использовать для этих целей и менее громоздкой конструкцией:

Отбор = новый структура; отбор.Вставить("Контрагент",объект); данные = регистрысведений.КонтактнаІнформація.ПолучитьПоследнее(,отбор); сообщить(данные.Керівник); сообщить(данные.Количество());

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

Главное не забыть в регистре выставить соответствующие галочки на закладке «Прочие»

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

Работа пользователя со справочниками и документами в 1С состоит из заполнения полей на форме.

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

Рассмотрим подробно тему реквизитов в 1С.

Что такое Реквизиты 1С

Каждый справочник и документ 1С состоит из набора полей. Такие поля называются реквизиты 1С (для программиста 1С).

В конфигураторе, в дереве конфигурации 1С, раскройте любой справочник или документ и Вы увидите ветку Реквизиты. Это список реквизитов (полей) справочника.

Поглядите как те же реквизиты 1С выглядят на форме справочника 1С.

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

Нажмите правой кнопкой на любой реквизит 1С и нажмите Свойства. В окне справа откроется список свойств выбранного реквизита.

Основные свойства реквизитов 1С:

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

Как Вы заметили, на форме справочника есть реквизиты 1С, которые отсутствуют в списке в конфигураторе: группа, наименование, БИК.

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

Это – стандартные реквизиты 1С. Что это такое? У каждого есть набор реквизитов 1С по умолчанию. У справочников это, например – код и наименование. У документов это – дата и номер.

Стандартные реквизиты 1С можно посмотреть следующим образом:

  • Зайдите в редактор объекта 1С (справочника или документа), нажав на него два раза мышкой
  • В открывшемся редакторе выберите закладку Данные
  • Здесь Вы можете настроить стандартные реквизиты Код и Наименование справочника
  • Нажмите кнопку Стандартные реквизиты 1С, чтобы посмотреть полный список.

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

Начиная с версии 1С 8.2.14 в 1С появился новый Объект 1С – Общие реквизиты 1С. С помощью него можно добавить реквизит (поле), который будет присутствовать сразу во множестве справочников и документов.

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

  • Автоиспользование – добавляет общий реквизит 1С сразу во все справочники и документы
  • Состав – позволяет добавить общий реквизит 1С только в нужные справочники и документы (автоиспользование тогда в значение Не использовать).

Как добавить реквизит 1С

Нажмем правой кнопкой на ветку Реквизиты 1С нужного справочника и выберем Добавить.

Введем нужно Имя реквизита 1С, например «АдресОфиса» и синоним «Адрес офиса». Тип оставим по умолчанию Строка, но поставим галочку Неограниченная длина.

Добавим еще один реквизит 1С точно так же, только выберем тип Булево, назовем его «РаботаетПоВыходным».

Как вывести реквизит на форму 1С (толстый клиент 1С)

Раскроем ветку Формы того же справочника. Чтобы открыть форму — выберем форму элемента и нажмем на нее два раза мышкой.

Потяните мышкой за край формы и растяните ее (необязательный пункт).

В панели конфигуратора нажмите кнопку «Размещение данных». Также можно использовать меню Форма / Размещение данных.

Вы видите – наши реквизиты на форму не выведены. Установите на них галочку. А также галочки Вставить надписи и Разместить автоматически.

Как вывести реквизит на форму 1С (тонкий клиент 1С)

Раскроем ветку Формы того же справочника. Выберем форму элемента и нажмем на нее два раза мышкой.

На закладке Реквизиты раскройте строку Объект. Вы увидите список реквизитов, добавленных ранее в справочник.

Теперь просто перетяните из правого окна в левую нужный реквизит и он появится на форме.

Реквизиты формы 1С

В толстом клиенте у формы есть свои собственные реквизиты. Они находятся на закладке Реквизиты.

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

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

Периодические реквизиты 1С

В 1С версии 7.7 были периодические реквизиты. Их смысл таков: значение у реквизита разное в разные даты. Например, значение на 1 сентября – одно, а на 1 октября – другое. У одного и того же реквизита.

В 1С 8 периодических реквизитов нет. Это реализуется следующим образом:

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

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

Cвойство "Разделение данных" общего реквизита

Если это свойство установлено в значение "Не использовать", то созданный объект конфигурации будет использоваться только как реквизит, входящий в состав нескольких объектов конфигурации.
Если свойство установлено в значение "Разделять", общий реквизит будет использоваться в качестве разделителя данных

Состав объектов

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

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

Для каждого объекта конфигурации колонка Использование может принимать одно из трех значений:
  • Автоматически – означает, что назначение объекта конфигурации общему реквизиту зависит от значения свойства "Автоиспользование"
  • Использовать - означает, что объект конфигурации входит в состав общего реквизита
  • Не использовать - означает, что объект конфигурации не входит в состав общего реквизита
Таким образом, с помощью редактора свойства "Состав", можно выборочно исключать некоторые объекты из состава общего реквизита, несмотря на то, что для него установлено "Автоиспользование".

Объекты конфигурации

В состав общего реквизита (не находящегося в режиме разделения данных) могут входить следующие объекты конфигурации:
  • Справочники
  • Документы
  • Журналы документов
  • Планы видов характеристик
  • Планы видов расчета
  • Бизнес-процессы
  • Задачи
  • Регистры сведений
  • Регистры накопления
  • Регистры бухгалтерии
  • Планы обмена
  • Внешние источники данных

Особенности

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

СОВЕТ! Не следует использовать общие реквизиты для описания данных, которые являются частью бизнес-логики конкретных объектов.

Поддержите проект — поделитесь ссылкой, спасибо!
Читайте также
Презентация на тему: Невербальные средства общения Презентация на тему: Невербальные средства общения Турагент: бесплатные путешествия или нервная работа? Турагент: бесплатные путешествия или нервная работа? Современные проблемы науки и образования Факторы, влияющие на процесс принятия решений Современные проблемы науки и образования Факторы, влияющие на процесс принятия решений