1с создать дополнительный реквизит программно

Примеры работы с дополнительными реквизитами.

Как получить значение дополнительного реквизита:

Пример: мы делаем печатную форму документа «Заказ клиента» и хотим вывести на неё значение определённого дополнительного реквизита — «Должность покупателя».

Используем вложенный запрос, в котором соединяем левым соединением таблицу «Дополнительные реквизиты» документа «Заказ клиента» с Планом видов характеристик «Дополнительные реквизиты и сведения». Устанавливаем условие: заголовок дополнительного реквизита должен быть таким – «Должность покупателя». Таблицы соединяем по ссылке на «Заказ клиента».

Получается вот такой запрос:

Также можно использовать метод НайтиПоНаименованию ( «***» ) .

Переменная Ссылка – это ссылка на «Договор контрагента».

Проверка на предмет того, что дополнительный реквизит заполнен:

Как изменить значения дополнительных реквизитов:

Задействуем общий модуль УправлениеСвойствами , который входит в состав БСП.

Содержание

  1. Поделиться с друзьями
  2. Области
  3. Реклама
  4. Продукт
  5. Новые обсуждения форума
  6. Статистика
  7. Авторское право
  8. Программное создание дополнительных реквизитов
  9. Получить дополнительные реквизиты программно
  10. Записать дополнительные реквизиты программно

Поделиться с друзьями

Области

Реклама

Продукт

Новые обсуждения форума

Статистика

Авторское право

Права на информацию в разделе «Справка УПП», «Справка БП» и «Справка ЗУП» принадлежат фирме 1С (http://1c.ru)

Права на информацию в разделе «Практический опыт» принадлежат Мутовкину А.М.

Перепечатка разрешена только с активной ссылкой на правообладателя.

Программное создание дополнительных реквизитов

Submitted by admin on пн, 12/08/2014 — 16:07

  • БСП
  • Готовые функции
  • Платформа 8.2
  • Платформа 8.3
  • Практический опыт
  • Программирование
  • УНФ
  • УПП

Допустим вам надо предоставить клиенту обработку, которая должна работать с доп. реквизитами типовой конфигурации. Например необходимо в заказе покупателя поддерживать реквизиты ORDER_ID, DEP_ID, CLIENT_ID, PLDATE, PAYTYPE, котрые получаются при обмене с ИнфоАптека 3. Объяснять заказчику как добавить доп. реквизиты не всегда удобно. Сделаем это сами за него.

//выполним начальные настройки доп. реквизитов
&НаСервере
Процедура НачальныеНастройкиНаСервере ()

//включим константу использования
Если Не Константы . ИспользоватьДополнительныеРеквизитыИСведения . Получить () Тогда
Константы . ИспользоватьДополнительныеРеквизитыИСведения . Установить ( Истина );
КонецЕсли;

//создадим строковые доп. реквизиты длины 100
ПроверитьДобавитьСтроковыйДопРеквизитЗаказаПокупателя ( «ORDER_ID» , 100 );
ПроверитьДобавитьСтроковыйДопРеквизитЗаказаПокупателя ( «DEP_ID» , 100 );
ПроверитьДобавитьСтроковыйДопРеквизитЗаказаПокупателя ( «CLIENT_ID» , 100 );
ПроверитьДобавитьСтроковыйДопРеквизитЗаказаПокупателя ( «PLDATE» , 100 );
ПроверитьДобавитьСтроковыйДопРеквизитЗаказаПокупателя ( «PAYTYPE» , 100 );

//проверим и создадим строковый доп. реквизит к документу заказ покупателя
&НаСервере
Процедура ПроверитьДобавитьСтроковыйДопРеквизитЗаказаПокупателя ( ИмяРеквизита , ДлинаСтроки = )

//пробуем найти доп. реквизит по заголовку
ЭлПВХ_Ссылка = ПланыВидовХарактеристик . ДополнительныеРеквизитыИСведения . НайтиПоРеквизиту ( «Заголовок» , ИмяРеквизита );
Если ЭлПВХ_Ссылка . Пустая () Тогда
//если не найдено, то создадим новый
ЭлПВХ = ПланыВидовХарактеристик . ДополнительныеРеквизитыИСведения . СоздатьЭлемент ();
ЭлПВХ . Заголовок = ИмяРеквизита ;
ЭлПВХ . НаборСвойств = Справочники . НаборыДополнительныхРеквизитовИСведений . Документ_ЗаказПокупателя ;
ЭлПВХ . Наименование = ЭлПВХ . Заголовок + » (» + ЭлПВХ . НаборСвойств + «)» ;
ЭлПВХ . ТипЗначения = Новый ОписаниеТипов ( «Строка» . Новый КвалификаторыСтроки ( ДлинаСтроки ));
ЭлПВХ . Записать ();
ЭлПВХ_Ссылка = ЭлПВХ . Ссылка ;
КонецЕсли;

//проверим, что реквизит указан в наборе доп. реквизитов заказа покупателя
НаборОб = Справочники . НаборыДополнительныхРеквизитовИСведений . Документ_ЗаказПокупателя . ПолучитьОбъект ();
Если НаборОб . ДополнительныеРеквизиты . Найти ( ЭлПВХ_Ссылка , «Свойство» ) = Неопределено Тогда
//добавим реквизит в набор
СтрНаборОб = НаборОб . ДополнительныеРеквизиты . Добавить ();
СтрНаборОб . Свойство = ЭлПВХ_Ссылка ;
КонецЕсли;
Если НаборОб . Модифицированность () Тогда
//запишем при необходимости
НаборОб . Записать ();
КонецЕсли;

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

ДокОб = Документы . ЗаказПокупателя . СоздатьДокумент ();
//.
//записать в доп. реквизиты ORDER_ID и другие данные
УстановитьДополнительныйРеквизитОбъекта ( ДокОб , «ORDER_ID» , «32312312» );
//.

&НаСервере
Процедура УстановитьДополнительныйРеквизитОбъекта ( Объект , ИмяРеквизита , ЗначениеРеквизита )

ЭлПВХ_Ссылка = ПланыВидовХарактеристик . ДополнительныеРеквизитыИСведения . НайтиПоРеквизиту ( «Заголовок» , ИмяРеквизита );
Если ЭлПВХ_Ссылка . Пустая () Тогда
Сообщить ( «Не найден доп. реквизит » + ИмяРеквизита + «, значение не установлено!» );
Возврат;
КонецЕсли;

СтрДопРеквизиты = Объект . ДополнительныеРеквизиты . Найти ( ЭлПВХ_Ссылка , «Свойство» );
Если СтрДопРеквизиты = Неопределено Тогда
СтрДопРеквизиты = Объект . ДополнительныеРеквизиты . Добавить ();
КонецЕсли;
СтрДопРеквизиты . Свойство = ЭлПВХ_Ссылка ;
СтрДопРеквизиты . Значение = ЗначениеРеквизита ;

демонстрация доп. реквизитов

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

Получить дополнительные реквизиты программно

Функция получает значение дополнительного реквизита объекта по ссылке и свойству.

  • Ссылка. Тип: Любая ссылка. Ссылка на искомый объект;
  • Свойство. Тип: План видов характеристик ДополнительныеРеквизитыИСведения. Дополнительное свойство.

Записать дополнительные реквизиты программно

Функция записывает значение доп. реквизита объекта по ссылке и свойству.

  • Ссылка. Тип: Любая ссылка. Ссылка на искомый объект;
  • Свойство. Тип: План видов характеристик ДополнительныеРеквизитыИСведения. Дополнительное свойство;
  • Значение. Тип: заданный для данного свойства.

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

Источник: computermaker.info

Понравилась статья? Поделиться с друзьями:
Ок! Компьютер
Добавить комментарий