mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 05:04:11 +00:00
Конструктор запросов
*Исправлена некорректная установка типа группы отбора кнопкой "Группа-Или" в условии связи таблиц
Общее
*Исправлена свежая некритичная ошибка при первом в истории запуске варианта Расширение в базе
*Исправлена работа флажка "пропускать пустые" в форме разбора текста
*Исправлен ввод ссылки документа по представлению с крайними непечатными символами
*Флажок "Запись на сервере" во всех инструментах переименован в "Объекты на сервере"
*Отключен вывод ряда диагностических сообщений пользователю в режиме управляемого приложения при открытии первой в сеансе формы инструментов
Исследователь объектов
+Включен множественный режим выделения строк в форме исследователя коллекций
Консоль запросов
*Исправлена проблема в некоторых случаях не выполнения сохранения файла после открытия файла восстановления
Редактор объекта БД
*Оптимизировано чтение движений документа
*В управляемой форме исправлена ошибка записи движений документа
*Исправлено обновление заголовка страницы "Движения" в управляемой форме при включении флажка "Вместе с движениями"
+В таблице ссылающихся объектов реализовано более подробное представление ключей записей независимых регистров без обращения к БД
Поиск дублей и замена ссылок
*Оптимизировано чтение движений документов
*Исправлена ошибка выполнения замены в независимых регистрах в некоторых конфигурациях
Загрузка табличных данных
+Реализована поддержка режима "Объекты на сервере"
Редактор изменений на узле
+Реализована поддержка режима "Объекты на сервере"
Удаление объектов с контролем ссылок
+В таблице ссылающихся объектов реализовано более подробное представление ключей записей независимых регистров без обращения к БД
+По двойному щелчку на строке ссылающейся строки независимого регистра теперь открывается эта строка
*Исправлена проблема не нахождения ссылающихся констант в некоторых случаях
Управление COM классами 1С
+Добавлены кнопка проверки создания COM объектов и колонка с результатом проверки
Подбор и обработка объектов
*Устранена ошибочная доступность кнопок "Сохранить/Загрузить алгоритм" в варианте Расширение
153 lines
8.1 KiB
Plaintext
153 lines
8.1 KiB
Plaintext
Перем _Тип Экспорт;
|
||
|
||
Процедура Конструктор(Объект) Экспорт
|
||
|
||
ЭтотОбъект.ДополнительныеСвойства = Объект.ДополнительныеСвойства;
|
||
ЭтотОбъект.ОбменДанными = ирОбщий.СтруктураОбменаДаннымиОбъектаЛкс(Объект);
|
||
ЭтотОбъект._Тип = ТипЗнч(Объект);
|
||
ОбъектМД = Объект.Метаданные();
|
||
ПоляТаблицыБД = ирОбщий.ПолучитьПоляТаблицыМДЛкс(ОбъектМД,,,, Ложь);
|
||
Данные = Новый Структура;
|
||
ПоляШапки = Новый Массив;
|
||
Для Каждого СтрокаПоля Из ПоляТаблицыБД Цикл
|
||
Данные.Вставить(СтрокаПоля.Имя);
|
||
КонецЦикла;
|
||
ЗаполнитьЗначенияСвойств(Данные, Объект);
|
||
ЭтотОбъект.Данные = Данные;
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция Снимок() Экспорт
|
||
|
||
СтруктураОбъекта = Новый Структура;
|
||
СтруктураОбъекта.Вставить("ОбменДанными", ОбменДанными);
|
||
СтруктураОбъекта.Вставить("ДополнительныеСвойства", ДополнительныеСвойства);
|
||
СтруктураОбъекта.Вставить("Данные", Данные);
|
||
СтруктураОбъекта.Вставить("_Тип", _Тип);
|
||
ЗаписьXML = ирОбщий.ОптимальныйПотоковыйПисательЛкс();
|
||
#Если Сервер И Не Сервер Тогда
|
||
ЗаписьXML = Новый ЗаписьXML;
|
||
#КонецЕсли
|
||
ЗаписьXML.УстановитьСтроку();
|
||
Попытка
|
||
Если ТипЗнч(ЗаписьXML) = Тип("ЗаписьXML") Тогда
|
||
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СтруктураОбъекта, НазначениеТипаXML.Явное);
|
||
Иначе
|
||
СериализаторXDTO.ЗаписатьJSON(ЗаписьXML, СтруктураОбъекта, НазначениеТипаXML.Явное);
|
||
КонецЕсли;
|
||
Исключение
|
||
// Убираем неудобные типы значений из дополнительных свойств объекта http://devtool1c.ucoz.ru/forum/2-832-1#3587
|
||
СтруктураОбъекта.Вставить("ДополнительныеСвойства"); // Криво
|
||
Если ТипЗнч(ЗаписьXML) = Тип("ЗаписьXML") Тогда
|
||
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СтруктураОбъекта, НазначениеТипаXML.Явное);
|
||
Иначе
|
||
СериализаторXDTO.ЗаписатьJSON(ЗаписьXML, СтруктураОбъекта, НазначениеТипаXML.Явное);
|
||
КонецЕсли;
|
||
КонецПопытки;
|
||
Результат = ЗаписьXML.Закрыть();
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
Процедура ЗагрузитьСнимок(Снимок) Экспорт
|
||
|
||
ЧтениеXML = ирОбщий.ОптимальныйПотоковыйЧитательЛкс();
|
||
#Если Сервер И Не Сервер Тогда
|
||
ЧтениеXML = Новый ЧтениеXML;
|
||
#КонецЕсли
|
||
ЧтениеXML.УстановитьСтроку(Снимок);
|
||
Если ТипЗнч(ЧтениеXML) = Тип("ЗаписьXML") Тогда
|
||
СтруктураОбъекта = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
|
||
Иначе
|
||
СтруктураОбъекта = СериализаторXDTO.ПрочитатьJSON(ЧтениеXML);
|
||
КонецЕсли;
|
||
ЧтениеXML.Закрыть();
|
||
ЗаполнитьЗначенияСвойств(ЭтотОбъект, СтруктураОбъекта,, "Данные");
|
||
Если Данные <> Неопределено Тогда
|
||
Данные.Очистить();
|
||
ирОбщий.СкопироватьУниверсальнуюКоллекциюЛкс(СтруктураОбъекта.Данные, Данные);
|
||
Иначе
|
||
ЭтотОбъект.Данные = СтруктураОбъекта.Данные;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция КлючОбъекта()
|
||
|
||
Результат = Неопределено;
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
Функция ОбъектБД() Экспорт
|
||
|
||
КлючОбъекта = КлючОбъекта();
|
||
Результат = ирОбщий.ОбъектБДПоКлючуЛкс(Метаданные.НайтиПоТипу(_Тип).ПолноеИмя(), КлючОбъекта,, Ложь).Данные;
|
||
ирОбщий.СкопироватьУниверсальнуюКоллекциюЛкс(ДополнительныеСвойства, Результат.ДополнительныеСвойства);
|
||
ирОбщий.ВосстановитьСтруктуруОбменаДаннымиОбъектаЛкс(Результат, ОбменДанными);
|
||
ЗаполнитьЗначенияСвойств(Результат, Данные);
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
Процедура Прочитать(НаСервере = Истина) Экспорт
|
||
|
||
Если НаСервере Тогда
|
||
Снимок = Снимок();
|
||
ирСервер.ПрочитатьОбъектЧерезИмитаторЛкс(Снимок, ТипЗнч(ЭтотОбъект));
|
||
ЗагрузитьСнимок(Снимок);
|
||
Иначе
|
||
ОбъектБД = ОбъектБД();
|
||
ОбъектБД.Прочитать();
|
||
Конструктор(ОбъектБД);
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция Записать() Экспорт
|
||
|
||
#Если Не Сервер Тогда
|
||
Снимок = Снимок();
|
||
ирСервер.ЗаписатьОбъектXMLЛкс(Снимок,,,,,, ТипЗнч(ЭтотОбъект));
|
||
ЗагрузитьСнимок(Снимок);
|
||
#Иначе
|
||
ОбъектБД = ОбъектБД();
|
||
ОбъектБД.Записать();
|
||
Конструктор(ОбъектБД);
|
||
#КонецЕсли
|
||
|
||
КонецФункции
|
||
|
||
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
|
||
|
||
ОбъектБД = ОбъектБД();
|
||
Отказ = Не ОбъектБД.ПроверитьЗаполнение();
|
||
Конструктор(ОбъектБД);
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция ДанныеВСтрокуXMLЧерезXDTO(Знач ИспользоватьXDTO = Истина, ВызыватьИсключение = Истина) Экспорт
|
||
|
||
#Если Не Сервер Тогда
|
||
Снимок = Снимок();
|
||
Результат = ирСервер.ОбъектБДИзИмитатораВСтрокуXMLЛкс(Снимок, ТипЗнч(ЭтотОбъект), ИспользоватьXDTO, ВызыватьИсключение);
|
||
#Иначе
|
||
ОбъектБД = ОбъектБД();
|
||
Результат = ирОбщий.СохранитьОбъектВВидеСтрокиXMLЛкс(ОбъектБД, ИспользоватьXDTO, , ВызыватьИсключение);
|
||
#КонецЕсли
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
Процедура ДанныеИзСтрокиXMLЧерезXDTO(СтрокаXML, Знач ИспользоватьXDTO = Истина, СообщатьОбОшибках = Истина) Экспорт
|
||
|
||
#Если Не Сервер Тогда
|
||
Снимок = ирСервер.ОбъектБДВИмитаторИзСтрокиXML(СтрокаXML, ТипЗнч(ЭтотОбъект), ИспользоватьXDTO, СообщатьОбОшибках);
|
||
ЗагрузитьСнимок(Снимок);
|
||
#Иначе
|
||
ОбъектБД = ирОбщий.ВосстановитьОбъектИзСтрокиXMLЛкс(СтрокаXML,, ИспользоватьXDTO, СообщатьОбОшибках);
|
||
Конструктор(ОбъектБД);
|
||
#КонецЕсли
|
||
|
||
КонецПроцедуры
|