Системные перечисления предназначены для определения некоторого набора предопределенных значений и используются в качестве:
- значений параметров некоторых методов;
- значений некоторых свойств объектов.
Не путать с прикладным объектом "Перечисления"!
К системным перечислениям, например, относятся следующие:
- КодВозвратаДиалога
- РежимБегущейСтроки
- ОбходРезультатаЗапроса
- РежимПроведенияДокумента
- ВариантПериода
Не следует путать системные перечисления и системные наборы значений (например системный набор значений "Символы").
Доступ к системным перечислениям осуществляется как к свойствам глобального контекста.
Значения элементов системных перечислений указываются через точку от имени системного перечисления, например:
1 |
ОбъектДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный); |
В качестве значений параметров метода Записать() заданы два значения элементов системных перечислений:
- элемент "Проведение" системного перечисления "РежимЗаписиДокумента";
- элемент "Оперативный" системного перечисления "РежимПроведенияДокумента".
И системные перечисления, и значения их элементов являются объектами, и могут быть переданы в другие приложения через COM посредством интерфейса IDispatch. При этом любое системное перечисление имеет набор свойств, каждое из которых позволяет получить соответствующее значение элемента данного системного перечисления. Элемент системного перечисления также является объектом и доступен через интерфейс IDispatch, однако ни свойств, ни методов он не имеет.
По этой причине анализ полученных значений системных перечислений возможен только посредством их сравнения со значениями системных перечислений, полученными через свойства глобального контекста.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<span class="c">// Элемент системного перечисления как собственный объект 1С:Предприятия</span> ЭлементПеречисления <span class="k">=</span> Метаданные<span class="k">.</span>Справочники<span class="k">.</span>Справочник1<span class="k">.</span>ВидИерархии<span class="k">;</span> Сообщить<span class="k">(</span>ЭлементПеречисления<span class="k">)</span><span class="k">;</span> <span class="c">// Элемент системного перечисления, полученный через COM.</span> Соединитель <span class="k">=</span> <span class="k">Новый</span> COMОбъект<span class="k">(</span><span class="s">"V8.COMConnector"</span><span class="k">)</span><span class="k">;</span> Соединение <span class="k">=</span> Соединитель<span class="k">.</span>connect<span class="k">(</span><span class="s">"File=c:\InfoBaseDirectory"</span><span class="k">)</span><span class="k">;</span> ЭлементПеречисления <span class="k">=</span> Соединение<span class="k">.</span>Метаданные<span class="k">.</span>Справочники<span class="k">.</span>Справочник1<span class="k">.</span>ВидИерархии<span class="k">;</span> <span class="c">// Здесь будет выведено "COMОбъект".</span> Сообщить<span class="k">(</span>ЭлементПеречисления<span class="k">)</span><span class="k">;</span> <span class="c">// Образцы значений элементов системного перечисления для сравнения нужно получить</span> <span class="c">// из того же COM соединения.</span> Образцы <span class="k">=</span> Соединение<span class="k">.</span>Метаданные<span class="k">.</span>СвойстваОбъектов<span class="k">.</span>ВидИерархии<span class="k">;</span> <span class="k">Если</span> ЭлементПеречисления <span class="k">=</span> Образцы<span class="k">.</span>ИерархияГруппИЭлементов <span class="k">Тогда</span> Сообщить<span class="k">(</span><span class="s">"ИерархияГруппИЭлементов"</span><span class="k">)</span><span class="k">;</span> <span class="k">ИначеЕсли</span> ЭлементПеречисления <span class="k">=</span> Образцы<span class="k">.</span>ИерархияЭлементов <span class="k">Тогда</span> Сообщить<span class="k">(</span><span class="s">"ИерархияЭлементов"</span><span class="k">)</span><span class="k">;</span> <span class="k">КонецЕсли</span><span class="k">;</span> |
ВАЖНО! Значения одних и тех же системных перечислений, полученные из разных экземпляров клиентского приложения или внешнего соединения 1С:Предприятия, являются разными объектами и между собой несравнимы.