RDT1C/DataProcessors/ирИмитаторКонстантаМенеджер/Ext/ObjectModule.bsl
Администратор 01c083b00a Редактор объекта БД
*Переработан код для реализации принципа "события на сервере" при включенном флажке "Запись на сервере" в не портативных вариантах
        +Добавлена управляемая форма для тестирования (можно открыть интерфейсной панелью или назначить в качестве доп. формы обработки)
    Настройка техножурнала
        *Устранена несовместимость с режимом совместимости 8.3.11
    Конструктор запроса
        *Исправлена свежая ошибка при вводе фильтра доступных таблиц
        *Исправлено вычисление квалификаторов полей
        +Реализовано отображение квалификаторов полей
    Подбор и обработка объектов
        *Исправлена свежая ошибка закрытия формы с непустым списком выбранных обработок
    Консоль запросов
        *Исправлено обновление количества в строке дереве запросов при выполнении пакетного запроса кончающегося уничтожением таблицы
        *Работа таблицы свойств строки результата приведена к единообразию с редактором строки табличного поля
    Вывод строк табличного поля
        *Исправлен вывод пустого результат из динамического списка с флажком "Только выделенные строки"
    Редактор строки табличного поля
        *Исправлена ошибка открытия в портативном варианте
    Поиск дублей и замена ссылок
        *Исправлено низкое качество поиска нечетким сравнением новой внешней компонентой
2017-09-11 22:34:50 +03:00

98 lines
4.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Перем _Тип Экспорт;
Процедура Конструктор(Объект) Экспорт
ЭтотОбъект.ДополнительныеСвойства = Объект.ДополнительныеСвойства;
ЭтотОбъект.ОбменДанными = ирОбщий.СтруктураОбменаДаннымиОбъектаЛкс(Объект);
ЭтотОбъект._Тип = ТипЗнч(Объект);
ОбъектМД = Объект.Метаданные();
ПоляТаблицыБД = ирОбщий.ПолучитьПоляТаблицыМДЛкс(ОбъектМД);
Данные = Новый Структура;
ПоляШапки = Новый Массив;
Для Каждого СтрокаПоля Из ПоляТаблицыБД Цикл
Данные.Вставить(СтрокаПоля.Имя);
КонецЦикла;
ЗаполнитьЗначенияСвойств(Данные, Объект);
ЭтотОбъект.Данные = Данные;
КонецПроцедуры
Функция Снимок() Экспорт
СтруктураОбъекта = Новый Структура;
СтруктураОбъекта.Вставить("ОбменДанными", ОбменДанными);
СтруктураОбъекта.Вставить("ДополнительныеСвойства", ДополнительныеСвойства);
СтруктураОбъекта.Вставить("Данные", Данные);
СтруктураОбъекта.Вставить("_Тип", _Тип);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, СтруктураОбъекта, НазначениеТипаXML.Явное);
Результат = ЗаписьJSON.Закрыть();
Возврат Результат;
КонецФункции
Процедура ЗагрузитьСнимок(Снимок) Экспорт
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Снимок);
СтруктураОбъекта = СериализаторXDTO.ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
ЗаполнитьЗначенияСвойств(ЭтотОбъект, СтруктураОбъекта);
КонецПроцедуры
Функция КлючОбъекта()
Результат = Неопределено;
Возврат Результат;
КонецФункции
Функция ОбъектБД() Экспорт
КлючОбъекта = КлючОбъекта();
Результат = ирОбщий.ОбъектБДПоКлючуЛкс(Метаданные.НайтиПоТипу(_Тип).ПолноеИмя(), КлючОбъекта,, Ложь).Данные;
ирОбщий.СкопироватьУниверсальнуюКоллекциюЛкс(ДополнительныеСвойства, Результат.ДополнительныеСвойства);
ирОбщий.ВосстановитьСтруктуруОбменаДаннымиОбъектаЛкс(Результат, ОбменДанными);
ЗаполнитьЗначенияСвойств(Результат, Данные);
Возврат Результат;
КонецФункции
Процедура Прочитать(НаСервере = Истина) Экспорт
Если НаСервере Тогда
Снимок = Снимок();
ирСервер.ПрочитатьОбъектЧерезИмитаторЛкс(Снимок, ТипЗнч(ЭтотОбъект));
ЗагрузитьСнимок(Снимок);
Иначе
ОбъектБД = ОбъектБД();
ОбъектБД.Прочитать();
Конструктор(ОбъектБД);
КонецЕсли;
КонецПроцедуры
Функция Записать() Экспорт
#Если Не Сервер Тогда
Снимок = Снимок();
ирСервер.ЗаписатьОбъектXMLЛкс(Снимок,,,,,, ТипЗнч(ЭтотОбъект));
ЗагрузитьСнимок(Снимок);
#Иначе
ОбъектБД = ОбъектБД();
ОбъектБД.Записать();
Конструктор(ОбъектБД);
#КонецЕсли
КонецФункции
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
ОбъектБД = ОбъектБД();
Отказ = Не ОбъектБД.ПроверитьЗаполнение();
Конструктор(ОбъектБД);
КонецПроцедуры