Работа со значением свойства

flashman 11 1
&НаСервере
Процедура ПримерыВызова(ТаблицаОбъектов) Экспорт

	//Для пакетной обработки или создания свойства
	Свойство = ПолучитьСоздатьСвойство("УИД_НашегоДокумента", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(36)));
	Для Каждого СтрокаТЗ Из ТаблицаОбъектов Цикл
		УИД = ПолучитьУстановитьЗначениеСвойства(Свойство, СтрокаТЗ.СсылкаНаОбъект);
		НовыйУИД = СтрЗаменить(УИД, "1", "2");
		Результат = ПолучитьУстановитьЗначениеСвойства(Свойство, СтрокаТЗ.СсылкаНаОбъект, НовыйУИД);
	КонецЦикла;

	//Для разового вызова
	Если ТаблицаОбъектов.Количество() > 0 Тогда
		УИД = ПолучитьУстановитьЗначениеСвойства("УИД_НашегоДокумента", ТаблицаОбъектов[0].СсылкаНаОбъект);
		НовыйУИД = СтрЗаменить(УИД, "1", "2");
		Результат = ПолучитьУстановитьЗначениеСвойства("УИД_НашегоДокумента", ТаблицаОбъектов[0].СсылкаНаОбъект, НовыйУИД);
	КонецЕсли;

КонецПроцедуры

&НаСервере
// Универсальная функция. Получает значение свойства. При заполненном параметре ЗначениеСвойства может свойство установить.
// Свойство - Либо свойство (ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения), либо Имя (строка)
// СсылкаНаОбъект - Объект в регистре сведений "ДополнительныеСведения"
// ЗначениеСвойства - Значение, передаваемое для установки.
Функция ПолучитьУстановитьЗначениеСвойства(Свойство_Или_Имя, СсылкаНаОбъект, ЗначениеСвойства = Неопределено) Экспорт

	Ответ = Неопределено;

	Если ТипЗнч(Свойство_Или_Имя) = Тип("Строка") Тогда
		Свойство = ПолучитьСоздатьСвойство(Свойство_Или_Имя);
	Иначе
		Свойство = Свойство_Или_Имя;
	КонецЕсли;

	Если Не Свойство = Неопределено Тогда
		Попытка
			МЗ = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи();
			МЗ.Объект = СсылкаНаОбъект;
			МЗ.Свойство = Свойство;
			МЗ.Прочитать();
			Если Не МЗ.Выбран() Или (Не ЗначениеСвойства = Неопределено И Не МЗ.Значение = ЗначениеСвойства) Тогда
				Если Не ЗначениеСвойства = Неопределено Тогда
					МЗ.Объект = СсылкаНаОбъект;
					МЗ.Свойство = Свойство;
					МЗ.Значение = ЗначениеСвойства;
					МЗ.Записать();
				КонецЕсли;
			КонецЕсли;
			Если ЗначениеЗаполнено(МЗ.Значение) Тогда
				Ответ = МЗ.Значение;
			КонецЕсли;
		Исключение
		КонецПопытки;
	КонецЕсли;

	Возврат Ответ;

КонецФункции


&НаСервере
Процедура ПримерВызова2() Экспорт

	ТипЗначения = Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(36));
	ПолучитьСоздатьСвойство("СДЭК_КодПВЗ", ТипЗначения, , , , "Код ПВЗ СДЭК");
	ПолучитьСоздатьСвойство("СДЭК_КодТарифа", ТипЗначения, , , , "Код тарифа СДЭК");
	ПолучитьСоздатьСвойство("СДЭК_УИД", ТипЗначения, , , , "УИД от СДЭК");
	ПолучитьСоздатьСвойство("СДЭК_УИД_ШК", ТипЗначения, , , , "УИД ШК от СДЭК");
	ПолучитьСоздатьСвойство("СДЭК_ИД", ТипЗначения, , , , "Account");
	ПолучитьСоздатьСвойство("СДЭК_ApiKey", ТипЗначения, , , , "Secure password");
	ПолучитьСоздатьСвойство("СДЭК_Сайт", ТипЗначения, , , , "Сайт");
	ПолучитьСоздатьСвойство("СДЭК_ВерсияAPI", ТипЗначения, , , , "Версия");

	ТипЗначения = Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(500));
	ПолучитьСоздатьСвойство("СДЭК_ОшибкиЗапроса", ТипЗначения, , , , "Сообщение СДЭК");
	ПолучитьСоздатьСвойство("СДЭК_URL_ШК", ТипЗначения, , , , "URL ШК СДЭК");

	ТипЗначения = Новый ОписаниеТипов("Булево");
	ПолучитьСоздатьСвойство("Это_СДЭК", ТипЗначения, , , , "Признак СДЭК");

	ТипЗначения = Новый ОписаниеТипов("Число");
	ПолучитьСоздатьСвойство("СДЭК_Порт", ТипЗначения, , , , "Порт");
	ПолучитьСоздатьСвойство("СДЭК_Вес", ТипЗначения, , , , "Вес");
	ПолучитьСоздатьСвойство("СДЭК_Глубина", ТипЗначения, , , , "Глубина");
	ПолучитьСоздатьСвойство("СДЭК_Ширина", ТипЗначения, , , , "Ширина");
	ПолучитьСоздатьСвойство("СДЭК_Высота", ТипЗначения, , , , "Высота");

КонецПроцедуры
0
{16} Переменной Результат присвоено значение, но оно нигде не используется

См. также

ЗначениеСвойстваБИП (БСП)

УстановитьЗначениеСвойстваБИП (БСП)

ЗначенияСвойств (БСП)

ЗначениеСвойства (БСП)

ДополнительныеЗначенияСвойства (БСП)

СвойствоСтруктуры (БСП)

ПолучитьСписокЗначенийСвойств (БСП)

ТипЗначенияСодержитЗначенияСвойств (БСП)

Модератору