Получение ссылки по GUIDу в COMConnector Известно:
ИмяДокумента (Тип Строка)
УникальныйИдентификатор искомого документа в базе-источнике (тип Строка)
COMСоединение установлено.
Код 1C v 8.х МД=ВнешняяБаза.XMLTypeOf(ВнешняяБаза.Документы[ИмяДокумента].ПустаяСсылка());
Попытка
тСсылка=ВнешняяБаза.XMLValue(ВнешняяБаза.FromXMLType(МД),ЭтотУникальныйИдентификатор);
Исключение
Сообщить(“COM: “+ОписаниеОшибки());
возврат;
КонецПопытки;
тОбъект=тСсылка.ПолучитьОбъект();
ЗаписьXML=ВнешняяБаза.NewObject(“ЗаписьXML”);
ЗаписьXML.УстановитьСтроку();
ВнешняяБаза.WriteXML(ЗаписьXML,тОбъект);
тСтрXML=ЗаписьXML.Закрыть();
Для перечислений:
ИмяПеречисления (Тип Строка)
ИмяЗначенияПеречисления (Тип Строка)
COMСоединение установлено.
Код 1C v 8.х МД=ВнешняяБаза.XMLTypeOf(ВнешняяБаза.Перечисления[ИмяПеречисления].ПустаяСсылка());
Попытка
тСсылка=ВнешняяБаза.XMLValue(ВнешняяБаза.FromXMLType(МД),ИмяЗначенияПеречисления);
Исключение
Сообщить(“COM: “+ОписаниеОшибки());
возврат;
КонецПопытки;
в переменной тСсылка – лежит Ссылка на объект (тип COMОбъект)
Категория:
COM-объекты, WMI, WSH Получение ссылки на значение перечисления по имени перечисления и по имени его значения Если известно имя самого перечисления и имя его значения, то получить ссылку которая будет являться значением, например субконто, можно следующим образом:
ПеречислениеСсылка = Перечисления[пИмяПречисления][пИмяЗначения];
Исходный код функции ПолучитьСсылкуНаЗначениеПеречисления( пИмяПеречисления, пИмяЗначения )
Код 1C v 8.х // Возвращает ПеречисленияСсылка по "Имени" перечисления и "Имени" значения
// Пример пИмяПеречисления = "ЮрФизЛицо", пИмяЗначения = "ЮрЛицо",
// результат: Перечисление ссылка на ЮрФизЛицо.ЮрЛицо
// пИмяПеречисления - тип строка
// пИмяЗначения - тип строка
Функция ПолучитьСсылкуНаЗначениеПеречисления( пИмяПеречисления, пИмяЗначения ) Экспорт
Попытка
Возврат Перечисления[пИмяПеречисления][пИмяЗначения];
исключение
Сообщить("Ошибка получения ссылки на значение перечисления. " + пИмяПеречисления + " :: " + пИмяЗначения);
Возврат неопределено;
КонецПопытки;
КонецФункции
Категория:
Перечисления Как получить имя значения перечисления, если известен синоним значения? Если известно перечисление, и известно, что одно из значений имеет известный нам синоним, то перебрав в цикле коллекцию значений перечисления можно получить его имя. Совокупность имени перечисления и имени значения перечисления позволяют получить ссылку на перечисление, которую уже можно применять в качестве значения реквизитов справочников, документов и регистров.
Исходный код функции ИмяЗначенияПеречисленияПоСинониму(ИмяПеречисления, СинонимЗначения):
Код 1C v 8.х // Функция возвращает имя реквизита данных перечисления по имени
// перечисления и синониму его значения
// Принимаемые значения:
// пИмяПеречисления - тип строка. Имя объекта конфигурации "Перечисления"
// пСинонимЗначения - тип строка. Значение свойства Синоним реквизита данных перечисления
// Возвращаемое значение:
// Имя реквизита данных перечисления
Функция ИмяЗначенияПеречисленияПоСинониму( пИмяПеречисления, пСинонимЗначения ) Экспорт
КолекцияЗначенийПеречисления = Метаданные.Перечисления[пИмяПеречисления].ЗначенияПеречисления;
Для каждого пНайденноеЗначение из КолекцияЗначенийПеречисления Цикл
Если пНайденноеЗначение.Синоним = пСинонимЗначения Тогда
Возврат пНайденноеЗначение.Имя;
КонецЕсли
КонецЦикла;
Возврат неопределено;
КонецФункции
Категория:
Перечисления Как получить имя перечисления по Синониму? лгоритмически можно получить коллекцию перечислений из конфигурации и перебрав их в цикле сравнить значение реквизита синоним с параметром функции вернуть имя перечисления.
Исходный код функции ИмяПеречисленияПоСинониму (СинонимПеречисления):
Код 1C v 8.х // Возвращает имя перечисления по известному значению синонима
// Пример пСиснонимПеречисления = "Юр физ лицо" тип строка,
// возвращаемое значение имя = "ЮрФизЛицо", тип строка
Функция ИмяПеречисленияПоСинониму( пСинонимПеречисления ) Экспорт
КолекцияПеречислений = Метаданные.Перечисления;
Для каждого пНайденноеЗначение из КолекцияПеречислений Цикл
Если пНайденноеЗначение.Синоним = пСинонимПеречисления Тогда
Возврат пНайденноеЗначение.Имя;
КонецЕсли;
КонецЦикла;
Возврат неопределено;
КонецФункции
Категория:
Перечисления Функция сравнение значений перечислений на больше/меньше Код 1C v 8.х
// сравнение значений перечислений на больше/меньше
// применяется для перечислений, для которых последовательность
// значений имеет определяющее значение
//
// Параметры:
// Значение1, Значение2 - сравниваемые значения перечислений
//
// Возвращаемое значение: число
// 1 - если Значение1 > Значение2
// -1 - если Значение1 < Значение2
// 0 - если Значение1 = Значение2
//
Функция СравнениеПеречислений(Значение1, Значение2) Экспорт
ИмяПеречисления = Метаданные.НайтиПоТипу(ТипЗнч(Значение1)).Имя;
Менеджер = Перечисления[ИмяПеречисления];
Если Менеджер.Индекс(Значение1) > Менеджер.Индекс(Значение2) Тогда
Возврат 1;
ИначеЕсли Менеджер.Индекс(Значение1) < Менеджер.Индекс(Значение2) Тогда
Возврат -1;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
Категория:
Перечисления Функция формирует список элементов перечисления Код 1C v 8.х
// Функция формирует список элементов перечисления
//
// Параметры
// ИмяПеречисления - имя перечисления, как оно задано в конфигураторе
//
// Возвращаемое значение:
// СписокЗначений - список элементов перечисления
//
Функция ПолучитьСписокЭлементовПеречисления(ИмяПеречисления) Экспорт
СписокЭлементовПеречисления = Новый СписокЗначений;
Попытка
КоллекцияЭлементовПеречисления = Перечисления[ИмяПеречисления];
Исключение
Возврат СписокЭлементовПеречисления;
КонецПопытки;
Для каждого ЭлементПеречисления Из КоллекцияЭлементовПеречисления Цикл
СписокЭлементовПеречисления.Добавить(ЭлементПеречисления, Строка(ЭлементПеречисления));
КонецЦикла;
Возврат СписокЭлементовПеречисления;
КонецФункции
Категория:
Перечисления