Примеры работы с дополнительными реквизитами.
Как получить значение дополнительного реквизита:
Пример: мы делаем печатную форму документа «Заказ клиента» и хотим вывести на неё значение определённого дополнительного реквизита — «Должность покупателя».
Используем вложенный запрос, в котором соединяем левым соединением таблицу «Дополнительные реквизиты» документа «Заказ клиента» с Планом видов характеристик «Дополнительные реквизиты и сведения». Устанавливаем условие: заголовок дополнительного реквизита должен быть таким – «Должность покупателя». Таблицы соединяем по ссылке на «Заказ клиента».
Получается вот такой запрос:
Также можно использовать метод НайтиПоНаименованию ( «***» ) .
Переменная Ссылка – это ссылка на «Договор контрагента».
Проверка на предмет того, что дополнительный реквизит заполнен:
Как изменить значения дополнительных реквизитов:
Задействуем общий модуль УправлениеСвойствами , который входит в состав БСП.
Поделиться с друзьями
Области
Реклама
Продукт
Новые обсуждения форума
Статистика
Авторское право
Права на информацию в разделе «Справка УПП», «Справка БП» и «Справка ЗУП» принадлежат фирме 1С )
Права на информацию в разделе «Практический опыт» принадлежат Мутовкину А.М.
Перепечатка разрешена только с активной ссылкой на правообладателя.
Программное создание дополнительных реквизитов
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С дополнительные сведения запись и получение.