Sky1C

Разделы каталога

Товар дняХиты продажПереносы данных 1СПродукты и лицензии 1СПрочий Софт

Информация

О насИнтересноеДоставка и оплатаКонтакты

Получить значение перечисления 1С

Получить значение перечисления 1С

ИмяПеречисления = СсылкаНаПеречисление.Метаданные().Имя; КоличествоЗначенийПеречисления=Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления.Количество(); КолекцияЗначенийПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления; ИндексЗначенияПеречисления=Перечисления[ИмяПеречисления].Индекс(СсылкаНаПеречисление); ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя Перебор коллекции значений перечисления Для каждого знач из КолекцияЗначенийПеречисления Цикл     Сообщить(знач.Имя); КонецЦикла; ПредставлениеПеречисления=Строка(СсылкаНаПеречисление); //синоним полезной будет функция: Функция ПолучитьИмяЗначенияПеречисления(Ссылка) Экспорт ИмяПеречисления = Ссылка.Метаданные().Имя; Индекс = Перечисления[ИмяПеречисления].Индекс(Ссылка); Возврат Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[Индекс].Имя; КонецФункции // ПолучитьИмяЗначенияПеречисления() альтернативный способ получения имени значения перечисления: ИмяЗначенияПеречисления = XMLстрока(СсылкаНаПеречисление); Полезный прием для работы с перечислениями при COM соединении с другой ИБ 8.0 (например при обмене данных): надо передать ссылку на перечисление: Здесь V8 - COM объект "V8.Application" - ИБ внешнего соединения СсылкаНаПеречислениеCOM - COM объект - ссылка на перечисление в ИБ внешнего соединения ИмяЗначенияПеречисленияCOM= V8.XMLString(СсылкаНаПеречислениеCOM); ПредставлениеПеречисленияCOM= V8.String(СсылкаНаПеречислениеCOM); //синоним ИмяПеречисленияCOM= СсылкаНаПеречислениеCOM.Метаданные().Имя; СсылкаНаПеречисление = XMLЗначение(Тип("ПеречислениеСсылка."+ИмяПеречисленияCOM),ИмяЗначенияПеречисленияCOM);   разумеется имена перечислений в обоих базах должны быть идентичными. Пример получения значений перечисления запросом       Запрос=новый запрос;    запрос.Текст="ВЫБРАТЬ             |    ВидыОС.Ссылка,             |    ВидыОС.Порядок КАК Индекс             |ИЗ             |    Перечисление.ВидыОС КАК ВидыОС";    Выборка=Запрос.Выполнить().Выбрать();    Пока Выборка.Следующий() цикл      Сообщить(""+Выборка.ссылка+" : "+Выборка.индекс);    конецЦикла;      Пример для отбора на стороне COMсервера:     Отбор = v8.Новый ("Структура");     МД=v8.XMLTypeOf(v8.Перечисления[ИмяПеречисления].ПустаяСсылка());     Отбор.Вставить("ВидДоговора", v8.XMLЗначение(v8.FromXMLType(МД),ИмяЗначенияПеречисления));  

Читайте также

Имя документа в 1С 8 (аналог метода 7.7 Вид()) · Отбор по виду документа в запросе · 1С Как получить модуль числа · Как получить текущий элемент списка значений в 1С8