mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 05:04:11 +00:00
Конструктор запроса
+Реализована возможность удаление поля объединения
*В расширенной проверке реализован обход ошибки платформы 8.3.12+, из-за которой не активизировалась страница с проблемным списком выражений
Консоль кода
*Устранено добавление имен недоступных на клиенте общих модулей в параметры при автозаполнении
*В режиме редактора алгоритма при применении изменений теперь выполняется синтаксический контроль
*Устранено изменение имени файла после выполнения команды "Объединить с файлом"
Консоль компоновки
+Добавлено сохранение таблиц внешних наборов данных вместе с отчетом
+На странице "Наборы данных внешние" добавлена кнопка "Сбросить"
*Исправлено не сохранение результатов редактирования элементов схемы компоновки непосредственно в форме инструмента (вычисляемые поля, параметры и т.д.)
*Устранено изменение имени файла после выполнения команды "Объединить с файлом"
Общее для варианта Расширение
*Теперь при входе администратора ему добавляется роль ирРазработчик, если у всех пользователей отсутствует эта роль или включена настройка ДобавлятьРольИРВсемАдминистраторам
*Настройка ДобавлятьРольИРВсемАдминистраторам теперь умолчанию равна Ложь
*Исправлено сохранение настройки ДобавлятьРольИРВсемАдминистраторам для всех пользователей
Подбор и обработка объектов
*Обработка "изменить/добавить строку" переименована в "изменить реквизиты / добавить строку"
Общее
*Исправлена некорректная кодировка при выполнении команд системы на некоторых конфигурациях ОС
+В портативном варианте реализована поддержка перенаправления на сервер операции удаления ссылочного объекта
*Фраза "Административная регистрация COM компонент" глобально заменена на "Регистрация COM-компонент"
*Исправлено некорректное вычисление цвета текста колонки "Функциональные опции"
*Исправлено сохранение флажка "Привилегированный режим"
*В команде "Открыть объект для отладки" исправлен ввод диагностического сообщения при вводе некорректной строки
Контекстная подсказка
*Устранены некоторые ограничения/ошибки при работе с включенным флажком "Объекты на сервере"
Настройка журнала регистрации
*При возникновении ошибки платформы в портативном варианте на 8.2 в клиент-серверной базе теперь выдается более понятная ошибка
Редактор объекта БД
+При выполнении команды "Изменить ячейки текущей колонки" теперь сразу устанавливается флажок "Только выделенные" если выделено больше одной строки
Консоль запросов
*Устранено изменение имени файла после выполнения команды "Объединить с файлом"
*Исправлено растягивание нижних табличных полей на мониторах 1440p+
Управление службами серверов 1С
*Исправлена лишняя проверка уникальности некоторых колонок
Структура хранения БД
+Добавлена кнопка открытия конвертора текста БД
+При нажатии кнопки "Очистка таблиц СУБД..." теперь помеченными по умолчанию будут выделенные в основной форме метаданные
4.68
Адаптация расширения
+Добавлен флажок "Сгенерировать роль ирВсеПрава"
*Исправлено закрытие формы после вывода некоторых ошибок
Отладка внешних обработок БСП
+Реализована поддержка БСП 2.4 в варианте Расширение с использованием адаптации
Форма выбора объекта метаданных
+Объекты, на которые у текущего пользователя нет права Просмотр или выключенные функциональными опциями, теперь окрашиваются красным цветом текста
Грамматика языка запросов
+Добавлена поддержка функции АвтоНомерЗаписи()
*Исправлена ошибка разбора "ПОМЕСТИТЬ Таблица"
Контекстная подсказка
*Исправлена свежая ошибка вычисления табличной части обработки или отчета
Консоль компоновки
*Исправлена свежая проблема не передачи таблиц-параметров при открытии инструмента
Конструктор запроса
*Исправлена некорректная сборка запроса WQL с автополями
*Исправлено дублирование полей у частей объединений при наличии автополей
Общее
+При открытии параметров вывода строк теперь сразу устанавливается флажок "Только выделенные" если выделено больше одной строки
*В окне "О подсистеме" сокращена длительность замирания при отсутствии доступа в интернет в некоторых случаях
*В подключении к СУБД к собственной базе в режиме "На сервере" устранено подключение с клиента
*Отменено свежее некорректное исправление кодировки командных файлов
Статистистика по запросам MSSQL
*Улучшено преобразование границ интервала времени 1С в SQL
+По умолчанию элемент отбора "Ненулевой вввод/вывод" в варианте "Последние" теперь отключен
258 lines
14 KiB
Plaintext
258 lines
14 KiB
Plaintext
|
||
&НаКлиенте
|
||
Процедура КаталогФайловогоКэшаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||
|
||
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
|
||
ВыборФайла.Каталог = КаталогФайловогоКэша;
|
||
Если Не ВыборФайла.Выбрать() Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
ЭтаФорма.КаталогФайловогоКэша = ВыборФайла.Каталог;
|
||
КаталогФайловогоКэшаПриИзменении();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||
|
||
Если ирКэш.НомерВерсииБСПЛкс() >= 204 Тогда
|
||
Если Не ирКэш.ЛиЭтоРасширениеКонфигурацииЛкс() Тогда
|
||
Сообщить("Работа инструмента с БСП 2.4 и выше поддерживается только в варианте Расширение");
|
||
Отказ = Истина;
|
||
Возврат;
|
||
КонецЕсли;
|
||
Элементы.ПерехватВнешнихОбработок.Видимость = Ложь;
|
||
_ДополнительныеОтчетыИОбработки = Вычислить("ДополнительныеОтчетыИОбработки");
|
||
#Если Сервер И Не Сервер Тогда
|
||
_ДополнительныеОтчетыИОбработки = ДополнительныеОтчетыИОбработки;
|
||
#КонецЕсли
|
||
Попытка
|
||
_ДополнительныеОтчетыИОбработки.ирПроверкаПодключенияРасширенияМодуля();
|
||
Исключение
|
||
Сообщить("Необходимо адаптировать расширение командой ""Адаптация расширения"" в разделе ""Инструменты разработчика""/""Сервис""");
|
||
Отказ = Истина;
|
||
Возврат;
|
||
КонецПопытки;
|
||
ИначеЕсли ирКэш.НомерВерсииБСПЛкс() < 200 Тогда
|
||
Сообщить("Поддерживаются версии БСП 2.0 и выше. Обнаружена БСП " + ирКэш.ВерсияБСПЛкс());
|
||
Отказ = Истина;
|
||
Возврат;
|
||
КонецЕсли;
|
||
Элементы.НадписьНеРаботаютТочкиОстанова.Видимость = ирКэш.НомерВерсииПлатформыЛкс() = 803006;
|
||
ПрочитатьНастройкиНаСервере();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Процедура ПрочитатьНастройкиНаСервере()
|
||
|
||
Обработчик = ирСервер.НайтиПерехватВнешнихОбработокБСПЛкс();
|
||
ЭтаФорма.ПерехватВнешнихОбработок = Обработчик <> Неопределено;
|
||
Если ПерехватВнешнихОбработок Тогда
|
||
ЭтаФорма.КаталогФайловогоКэша = Обработчик.КаталогФайловогоКэша;
|
||
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = ХранилищеСистемныхНастроек.Загрузить("ирОтладкаВнешнихОбработок", "СозданиеВнешнихОбработокЧерезФайл");
|
||
ОбновитьСписокНаСервере();
|
||
Иначе
|
||
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = Ложь;
|
||
СохранитьНастройкиПользователяНаСервере();
|
||
КонецЕсли;
|
||
ОбновитьДоступность();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ОтладкаДляТекущегоПользователяПриИзменении(Элемент)
|
||
|
||
Если СозданиеВнешнихОбработокЧерезФайл Тогда
|
||
Если ЭтаФорма.ПерехватВнешнихОбработок <> Истина Тогда
|
||
ЭтаФорма.ПерехватВнешнихОбработок = Истина;
|
||
Если Не СохранитьНастройкиНаСервере() Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
СохранитьНастройкиПользователяНаСервере();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Процедура СохранитьНастройкиПользователяНаСервере()
|
||
|
||
ХранилищеСистемныхНастроек.Сохранить("ирОтладкаВнешнихОбработок", "СозданиеВнешнихОбработокЧерезФайл", СозданиеВнешнихОбработокЧерезФайл);
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура КаталогФайловогоКэшаПриИзменении(Элемент = Неопределено)
|
||
|
||
СохранитьНастройкиНаСервере();
|
||
ОбновитьСписокНаСервере();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Функция СохранитьНастройкиНаСервере()
|
||
|
||
Если ПерехватВнешнихОбработок Тогда
|
||
ФайлКаталога = Новый Файл(КаталогФайловогоКэша);
|
||
Если Не ФайлКаталога.Существует() Тогда
|
||
Сообщить("Выбранный каталог недоступен серверу. Выберите другой каталог");
|
||
ПрочитатьНастройкиНаСервере();
|
||
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = Ложь;
|
||
СохранитьНастройкиПользователяНаСервере();
|
||
Возврат Ложь;
|
||
КонецЕсли;
|
||
ирСервер.ВключитьПерехватВнешнихОбработокБСПЛкс(КаталогФайловогоКэша);
|
||
Иначе
|
||
ирСервер.НайтиПерехватВнешнихОбработокБСПЛкс(Истина);
|
||
КонецЕсли;
|
||
//ПрочитатьНастройкиНаСервере();
|
||
Возврат Истина;
|
||
|
||
КонецФункции
|
||
|
||
&НаСервере
|
||
Процедура ОбновитьСписокНаСервере()
|
||
|
||
Список.Очистить();
|
||
ОбновитьДоступность();
|
||
Если Не ЗначениеЗаполнено(КаталогФайловогоКэша) Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
Запрос = Новый Запрос;
|
||
Запрос.Текст = "ВЫБРАТЬ
|
||
| ДополнительныеОтчетыИОбработки.Ссылка КАК Ссылка,
|
||
| ДополнительныеОтчетыИОбработки.ИмяФайла
|
||
|ИЗ
|
||
| Справочник.ДополнительныеОтчетыИОбработки КАК ДополнительныеОтчетыИОбработки
|
||
|
|
||
|УПОРЯДОЧИТЬ ПО
|
||
| Ссылка
|
||
|АВТОУПОРЯДОЧИВАНИЕ";
|
||
Результат = Запрос.Выполнить().Выгрузить();
|
||
СравнениеЗначений = Новый СравнениеЗначений;
|
||
Для Каждого СтрокаРезультата Из Результат Цикл
|
||
СтрокаТаблицы = Список.Добавить();
|
||
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, СтрокаРезультата);
|
||
ПолноеИмяФайла = ирСервер.ПолноеИмяФайлаВнешнейОбработкиВФайловомКэшеЛкс(СтрокаТаблицы.Ссылка, КаталогФайловогоКэша);
|
||
Файл = Новый Файл(ПолноеИмяФайла);
|
||
СтрокаТаблицы.ИмяФайла = Файл.Имя;
|
||
Если Файл.Существует() Тогда
|
||
Попытка
|
||
ДвоичныеДанныеФайла = Новый ДвоичныеДанные(ПолноеИмяФайла);
|
||
Исключение
|
||
Сообщить("Ошибка доступа к файлу """ + ПолноеИмяФайла + """: " + ОписаниеОшибки());
|
||
Продолжить;
|
||
КонецПопытки;
|
||
СтрокаТаблицы.ДатаИзмененияФайла = Файл.ПолучитьВремяИзменения() + ирКэш.ПолучитьСмещениеВремениЛкс();
|
||
СтрокаТаблицы.ФайлОтличаетсяОтХранилища = СравнениеЗначений.Сравнить(ДвоичныеДанныеФайла, СтрокаТаблицы.Ссылка.ХранилищеОбработки.Получить()) <> 0;
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Процедура ОбновитьДоступность()
|
||
|
||
Элементы.ВнешниеОбработкиЗагрузитьИзФайла.Доступность = ЗначениеЗаполнено(КаталогФайловогоКэша);
|
||
Элементы.ВнешниеОбработкиОткрытьВОтладчике.Доступность = ЗначениеЗаполнено(КаталогФайловогоКэша);
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ОбновитьСписок(Команда = Неопределено)
|
||
|
||
КлючСтроки = ирОбщий.ПолучитьКлючТекущейСтрокиЛкс(Элементы.Список);
|
||
ОбновитьСписокНаСервере();
|
||
ирОбщий.ВосстановитьТекущуюСтрокуТаблицыФормыЛкс(Элементы.Список, КлючСтроки, Список);
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ОткрытьВОтладчике(Команда)
|
||
|
||
#Если ТонкийКлиент Или ВебКлиент Тогда
|
||
Сообщить("Функция доступна только в толстом клиенте");
|
||
Возврат;
|
||
#КонецЕсли
|
||
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
|
||
Если ТекущиеДанные = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
ПолноеИмяФайла = ирСервер.ПолноеИмяФайлаВнешнейОбработкиВФайловомКэшеЛкс(ТекущиеДанные.Ссылка, КаталогФайловогоКэша);
|
||
Файл = Новый Файл(ПолноеИмяФайла);
|
||
Если Не Файл.Существует() Тогда
|
||
ТекущиеДанные.Ссылка.ХранилищеОбработки.Получить().Записать(ПолноеИмяФайла);
|
||
КонецЕсли;
|
||
ирКэш.Получить().ОткрытьФайлВКонфигураторе(ПолноеИмяФайла, "Модуль");
|
||
ОбновитьСписок();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ВнешниеОбработкиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
|
||
|
||
ОткрытьЗначение(Элемент.ТекущиеДанные.Ссылка);
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ПерехватВнешнихОбработокПриИзменении(Элемент)
|
||
|
||
Если Не ПерехватВнешнихОбработок Тогда
|
||
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = Ложь;
|
||
СохранитьНастройкиПользователяНаСервере();
|
||
КонецЕсли;
|
||
СохранитьНастройкиНаСервере();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ПрочитатьАктуальныеНастройки(Команда)
|
||
|
||
ПрочитатьНастройкиНаСервере();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ЗагрузитьИзФайла(Команда)
|
||
|
||
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
|
||
Если ТекущиеДанные = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
ЗагрузитьИзФайлаНаСервере(ТекущиеДанные.Ссылка, КаталогФайловогоКэша);
|
||
ОбновитьСписок();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервереБезКонтекста
|
||
Процедура ЗагрузитьИзФайлаНаСервере(Ссылка, КаталогФайловогоКэша)
|
||
|
||
#Если Сервер И Не Сервер Тогда
|
||
Ссылка = Справочники.ДополнительныеОтчетыИОбработки.ПустаяСсылка();
|
||
#КонецЕсли
|
||
ПолноеИмяФайла = ирСервер.ПолноеИмяФайлаВнешнейОбработкиВФайловомКэшеЛкс(Ссылка, КаталогФайловогоКэша);
|
||
Файл = Новый Файл(ПолноеИмяФайла);
|
||
Если Не Файл.Существует() Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
ОбъектМодуля = ВнешниеОбработки.Создать(Файл.ПолноеИмя, Ложь);
|
||
СведенияМодуля = ОбъектМодуля.СведенияОВнешнейОбработке();
|
||
Объект = Ссылка.ПолучитьОбъект();
|
||
Объект.Версия = СведенияМодуля.Версия;
|
||
Объект.ХранилищеОбработки = Новый ХранилищеЗначения(Новый ДвоичныеДанные(Файл.ПолноеИмя));
|
||
Объект.Записать();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура КаталогФайловогоКэшаОткрытие(Элемент, СтандартнаяОбработка)
|
||
|
||
ЗапуститьПриложение(КаталогФайловогоКэша);
|
||
СтандартнаяОбработка = Ложь;
|
||
|
||
КонецПроцедуры
|
||
|
||
|