internal static КонтекстОбъекта ПолучитьКонтекстОбъекта(ОбъектСсылка ссылка)
        {
            if (ссылка == null)
            {
                throw new ArgumentNullException("ссылка");
            }

            switch (ссылка.ТипКоллекции())
            {
            case ТипКоллекции.Справочник:
                return(new СправочникОбъект(ссылка as СправочникСсылка));

            case ТипКоллекции.Документ:
                return(new ДокументОбъект(ссылка as ДокументСсылка));

            case ТипКоллекции.ПланВидовХарактеристик:
                return(new ПланВидовХарактеристикОбъект(ссылка as ПланВидовХарактеристикСсылка));

            case ТипКоллекции.ПланСчетов:
                return(new ПланСчетовОбъект(ссылка as ПланСчетовСсылка));

            case ТипКоллекции.ПланВидовРасчета:
                return(new ПланВидовРасчетаОбъект(ссылка as ПланВидовРасчетаСсылка));

            case ТипКоллекции.БизнесПроцесс:
                return(new БизнесПроцессОбъект(ссылка as БизнесПроцессСсылка));

            case ТипКоллекции.Задача:
                return(new ЗадачаОбъект(ссылка as ЗадачаСсылка));

            default:
                throw new ArgumentException();
            }
        }
        /// <summary>
        /// Устанавливает ссылку на объект базы данных 1С.
        /// </summary>
        /// <param name="ссылка"></param>
        public void УстановитьСсылку(ОбъектСсылка ссылка)
        {
            if (ссылка == this.reference)
            {
                return;
            }

            if (ссылка.ТипКоллекции() != this.reference.ТипКоллекции() || ссылка.ИмяКоллекции() != this.reference.ИмяКоллекции())
            {
                throw new ArgumentException(String.Format("Тип аргумента \"ссылка\" не соответствует требуемому типу \"{0}\".", this.reference.ПолноеИмяТипа()), "ссылка");
            }

            this.reference = ссылка;
        }