/// <summary>
        /// Асинхронно загружает данные объекта с сервера.
        /// </summary>
        public async Task ЗагрузитьДанныеАсинх()
        {
            GetObject_Settings settings = new GetObject_Settings();

            settings.FieldAutoinclusion = new RequestFieldAutoinclusionSettings();
            settings.FieldAutoinclusion.DefaultFields          = true;
            settings.FieldAutoinclusion.DefaultFieldsSpecified = true;
            settings.FieldAutoinclusion.CustomFields           = true;
            settings.FieldAutoinclusion.CustomFieldsSpecified  = true;
            settings.FieldAutoinclusion.Tables          = true;
            settings.FieldAutoinclusion.TablesSpecified = true;

            Task <GetObjectResponse> task = this.Клиент().SoapКлиент.GetObjectAsync(new ValueObjectRef(this.reference), settings);

            ValueObjectRef refSoap = (await task).@return as ValueObjectRef;

            this.Клиент().Контекст().УстановитьПредставлениеОбъекта(this.reference, refSoap.Presentation);
            this.Клиент().Контекст().УстановитьЗначенияИзСвойствSOAP(this.reference, refSoap.Property);

            this.УстановитьЗначенияИзСвойствSOAP(refSoap.Property);

            this.modifiedFields.Clear();
        }
        /// <summary>
        /// Асинхронно загружает данные объекта с сервера.
        /// </summary>
        /// <param name="ссылка">Ссылка на объект.</param>
        public async Task ЗагрузитьДанныеОбъектаАсинх(ОбъектСсылка ссылка)
        {
            GetObject_Settings settings = new GetObject_Settings();

            settings.AddSkippedProperties = true;

            settings.FieldAutoinclusion = new RequestFieldAutoinclusionSettings();
            settings.FieldAutoinclusion.DefaultFields          = true;
            settings.FieldAutoinclusion.DefaultFieldsSpecified = true;
            settings.FieldAutoinclusion.CustomFields           = true;
            settings.FieldAutoinclusion.CustomFieldsSpecified  = true;
            settings.FieldAutoinclusion.Tables          = true;
            settings.FieldAutoinclusion.TablesSpecified = true;

            Task <GetObjectResponse> task = this.bromClient.SoapКлиент.GetObjectAsync((ValueObjectRef)ValueBase.From(ссылка), settings);

            ValueObjectRef refSoap = (await task).@return as ValueObjectRef;

            this.ИнициализироватьДанныеОбъекта(ссылка);

            this.УстановитьПредставлениеОбъекта(ссылка, refSoap.Presentation);
            this.УстановитьЗначенияИзСвойствSOAP(ссылка, refSoap.Property);
        }
Example #3
0
        public async Task <ДеревоЗначений> ПолучитьДанныеОбъектаАсинх(
            Ссылка ссылка,
            IEnumerable <string> поля = null,
            АвтозагрузкаПолейОбъектов автозагрузкаПолей = null)
        {
            автозагрузкаПолей = автозагрузкаПолей ?? АвтозагрузкаПолейОбъектов.Ничего;

            GetObject_Settings settings = new GetObject_Settings();

            settings.AddSkippedProperties          = true;
            settings.AddSkippedPropertiesSpecified = true;
            settings.PropertiesHierarchyType       = "Hierarchy";

            settings.FieldAutoinclusion = new RequestFieldAutoinclusionSettings();
            settings.FieldAutoinclusion.DefaultFields          = автозагрузкаПолей.ЗагружатьСтандартныеРеквизиты;
            settings.FieldAutoinclusion.DefaultFieldsSpecified = автозагрузкаПолей.ЗагружатьСтандартныеРеквизиты;
            settings.FieldAutoinclusion.CustomFields           = автозагрузкаПолей.ЗагружатьПользовательскиеРеквизиты;
            settings.FieldAutoinclusion.CustomFieldsSpecified  = автозагрузкаПолей.ЗагружатьПользовательскиеРеквизиты;
            settings.FieldAutoinclusion.Tables          = автозагрузкаПолей.ЗагружатьТабличныеЧасти;
            settings.FieldAutoinclusion.TablesSpecified = автозагрузкаПолей.ЗагружатьТабличныеЧасти;

            if (поля != null)
            {
                string[] именаПолей = поля.ToArray();
                settings.Field = new RequestField[именаПолей.Length];
                for (int i = 0; i < именаПолей.Length; i++)
                {
                    RequestField field = new RequestField();
                    field.Key         = именаПолей[i];
                    settings.Field[i] = field;
                }
            }

            Task <GetObjectResponse> task = this.SoapКлиент.GetObjectAsync((ValueRef)ValueBase.From(ссылка), settings);

            return((await task)[email protected](this));
        }