RDT1C/CommonForms/ирОтладкаВнешнихОбработокБСП/Ext/Form/Module.bsl
Администратор 57352d2776 4.67
Конструктор запроса
        +Реализована возможность удаление поля объединения
        *В расширенной проверке реализован обход ошибки платформы 8.3.12+, из-за которой не активизировалась страница с проблемным списком выражений
    Консоль кода
        *Устранено добавление имен недоступных на клиенте общих модулей в параметры при автозаполнении
        *В режиме редактора алгоритма при применении изменений теперь выполняется синтаксический контроль
        *Устранено изменение имени файла после выполнения команды "Объединить с файлом"
    Консоль компоновки
        +Добавлено сохранение таблиц внешних наборов данных вместе с отчетом
        +На странице "Наборы данных внешние" добавлена кнопка "Сбросить"
        *Исправлено не сохранение результатов редактирования элементов схемы компоновки непосредственно в форме инструмента (вычисляемые поля, параметры и т.д.)
        *Устранено изменение имени файла после выполнения команды "Объединить с файлом"
    Общее для варианта Расширение
        *Теперь при входе администратора ему добавляется роль ирРазработчик, если у всех пользователей отсутствует эта роль или включена настройка ДобавлятьРольИРВсемАдминистраторам
        *Настройка ДобавлятьРольИРВсемАдминистраторам теперь умолчанию равна Ложь
        *Исправлено сохранение настройки ДобавлятьРольИРВсемАдминистраторам для всех пользователей
    Подбор и обработка объектов
        *Обработка "изменить/добавить строку" переименована в "изменить реквизиты / добавить строку"
    Общее
        *Исправлена некорректная кодировка при выполнении команд системы на некоторых конфигурациях ОС
        +В портативном варианте реализована поддержка перенаправления на сервер операции удаления ссылочного объекта
        *Фраза "Административная регистрация COM компонент" глобально заменена на "Регистрация COM-компонент"
        *Исправлено некорректное вычисление цвета текста колонки "Функциональные опции"
        *Исправлено сохранение флажка "Привилегированный режим"
        *В команде "Открыть объект для отладки" исправлен ввод диагностического сообщения при вводе некорректной строки
    Контекстная подсказка
        *Устранены некоторые ограничения/ошибки при работе с включенным флажком "Объекты на сервере"
    Настройка журнала регистрации
        *При возникновении ошибки платформы в портативном варианте на 8.2  в клиент-серверной базе теперь выдается более понятная ошибка
    Редактор объекта БД
        +При выполнении команды "Изменить ячейки текущей колонки" теперь сразу устанавливается флажок "Только выделенные" если выделено больше одной строки
    Консоль запросов
        *Устранено изменение имени файла после выполнения команды "Объединить с файлом"
        *Исправлено растягивание нижних табличных полей на мониторах 1440p+
    Управление службами серверов 1С
        *Исправлена лишняя проверка уникальности некоторых колонок
    Структура хранения БД
        +Добавлена кнопка открытия конвертора текста БД
        +При нажатии кнопки "Очистка таблиц СУБД..." теперь помеченными по умолчанию будут выделенные в основной форме метаданные
4.68

    Адаптация расширения
        +Добавлен флажок "Сгенерировать роль ирВсеПрава"
        *Исправлено закрытие формы после вывода некоторых ошибок
    Отладка внешних обработок БСП
        +Реализована поддержка БСП 2.4 в варианте Расширение с использованием адаптации
    Форма выбора объекта метаданных
        +Объекты, на которые у текущего пользователя нет права Просмотр или выключенные функциональными опциями, теперь окрашиваются красным цветом текста
    Грамматика языка запросов
        +Добавлена поддержка функции АвтоНомерЗаписи()
        *Исправлена ошибка разбора "ПОМЕСТИТЬ Таблица"
    Контекстная подсказка
        *Исправлена свежая ошибка вычисления табличной части обработки или отчета
    Консоль компоновки
        *Исправлена свежая проблема не передачи таблиц-параметров при открытии инструмента
    Конструктор запроса
        *Исправлена некорректная сборка запроса WQL с автополями
        *Исправлено дублирование полей у частей объединений при наличии автополей
    Общее
        +При открытии параметров вывода строк теперь сразу устанавливается флажок "Только выделенные" если выделено больше одной строки
        *В окне "О подсистеме" сокращена длительность замирания при отсутствии доступа в интернет в некоторых случаях
        *В подключении к СУБД к собственной базе в режиме "На сервере" устранено подключение с клиента
        *Отменено свежее некорректное исправление кодировки командных файлов
    Статистистика по запросам MSSQL
        *Улучшено преобразование границ интервала времени 1С в SQL
        +По умолчанию элемент отбора "Ненулевой вввод/вывод" в варианте "Последние" теперь отключен
2018-10-15 07:10:05 +03:00

258 lines
14 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.

&НаКлиенте
Процедура КаталогФайловогоКэшаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
ВыборФайла.Каталог = КаталогФайловогоКэша;
Если Не ВыборФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ЭтаФорма.КаталогФайловогоКэша = ВыборФайла.Каталог;
КаталогФайловогоКэшаПриИзменении();
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ирКэш.НомерВерсииБСПЛкс() >= 204 Тогда
Если Не ирКэш.ЛиЭтоРасширениеКонфигурацииЛкс() Тогда
Сообщить("Работа инструмента с БСП 2.4 и выше поддерживается только в варианте Расширение");
Отказ = Истина;
Возврат;
КонецЕсли;
Элементы.ПерехватВнешнихОбработок.Видимость = Ложь;
ополнительныеОтчетыИОбработки = Вычислить("ДополнительныеОтчетыИОбработки");
#Если Сервер И Не Сервер Тогда
ополнительныеОтчетыИОбработки = ДополнительныеОтчетыИОбработки;
#КонецЕсли
Попытка
ополнительныеОтчетыИОбработки.ирПроверкаПодключенияРасширенияМодуля();
Исключение
Сообщить("Необходимо адаптировать расширение командой ""Адаптация расширения"" в разделе ""Инструменты разработчика""/""Сервис""");
Отказ = Истина;
Возврат;
КонецПопытки;
ИначеЕсли ирКэш.НомерВерсииБСПЛкс() < 200 Тогда
Сообщить("Поддерживаются версии БСП 2.0 и выше. Обнаружена БСП " + ирКэш.ВерсияБСПЛкс());
Отказ = Истина;
Возврат;
КонецЕсли;
Элементы.НадписьНеРаботаютТочкиОстанова.Видимость = ирКэш.НомерВерсииПлатформыЛкс() = 803006;
ПрочитатьНастройкиНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПрочитатьНастройкиНаСервере()
Обработчик = ирСервер.НайтиПерехватВнешнихОбработокБСПЛкс();
ЭтаФорма.ПерехватВнешнихОбработок = Обработчик <> Неопределено;
Если ПерехватВнешнихОбработок Тогда
ЭтаФорма.КаталогФайловогоКэша = Обработчик.КаталогФайловогоКэша;
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = ХранилищеСистемныхНастроек.Загрузить("ирОтладкаВнешнихОбработок", "СозданиеВнешнихОбработокЧерезФайл");
ОбновитьСписокНаСервере();
Иначе
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = Ложь;
СохранитьНастройкиПользователяНаСервере();
КонецЕсли;
ОбновитьДоступность();
КонецПроцедуры
&НаКлиенте
Процедура ОтладкаДляТекущегоПользователяПриИзменении(Элемент)
Если СозданиеВнешнихОбработокЧерезФайл Тогда
Если ЭтаФорма.ПерехватВнешнихОбработок <> Истина Тогда
ЭтаФорма.ПерехватВнешнихОбработок = Истина;
Если Не СохранитьНастройкиНаСервере() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
СохранитьНастройкиПользователяНаСервере();
КонецПроцедуры
&НаСервере
Процедура СохранитьНастройкиПользователяНаСервере()
ХранилищеСистемныхНастроек.Сохранить("ирОтладкаВнешнихОбработок", "СозданиеВнешнихОбработокЧерезФайл", СозданиеВнешнихОбработокЧерезФайл);
КонецПроцедуры
&НаКлиенте
Процедура КаталогФайловогоКэшаПриИзменении(Элемент = Неопределено)
СохранитьНастройкиНаСервере();
ОбновитьСписокНаСервере();
КонецПроцедуры
&НаСервере
Функция СохранитьНастройкиНаСервере()
Если ПерехватВнешнихОбработок Тогда
ФайлКаталога = Новый Файл(КаталогФайловогоКэша);
Если Не ФайлКаталога.Существует() Тогда
Сообщить("Выбранный каталог недоступен серверу. Выберите другой каталог");
ПрочитатьНастройкиНаСервере();
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = Ложь;
СохранитьНастройкиПользователяНаСервере();
Возврат Ложь;
КонецЕсли;
ирСервер.ВключитьПерехватВнешнихОбработокБСПЛкс(КаталогФайловогоКэша);
Иначе
ирСервер.НайтиПерехватВнешнихОбработокБСПЛкс(Истина);
КонецЕсли;
//ПрочитатьНастройкиНаСервере();
Возврат Истина;
КонецФункции
&НаСервере
Процедура ОбновитьСписокНаСервере()
Список.Очистить();
ОбновитьДоступность();
Если Не ЗначениеЗаполнено(КаталогФайловогоКэша) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ДополнительныеОтчетыИОбработки.Ссылка КАК Ссылка,
| ДополнительныеОтчетыИОбработки.ИмяФайла
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки КАК ДополнительныеОтчетыИОбработки
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|АВТОУПОРЯДОЧИВАНИЕ";
Результат = Запрос.Выполнить().Выгрузить();
СравнениеЗначений = Новый СравнениеЗначений;
Для Каждого СтрокаРезультата Из Результат Цикл
СтрокаТаблицы = Список.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, СтрокаРезультата);
ПолноеИмяФайла = ирСервер.ПолноеИмяФайлаВнешнейОбработкиВФайловомКэшеЛкс(СтрокаТаблицы.Ссылка, КаталогФайловогоКэша);
Файл = Новый Файл(ПолноеИмяФайла);
СтрокаТаблицы.ИмяФайла = Файл.Имя;
Если Файл.Существует() Тогда
Попытка
ДвоичныеДанныеФайла = Новый ДвоичныеДанные(ПолноеИмяФайла);
Исключение
Сообщить("Ошибка доступа к файлу """ + ПолноеИмяФайла + """: " + ОписаниеОшибки());
Продолжить;
КонецПопытки;
СтрокаТаблицы.ДатаИзмененияФайла = Файл.ПолучитьВремяИзменения() + ирКэш.ПолучитьСмещениеВремениЛкс();
СтрокаТаблицы.ФайлОтличаетсяОтХранилища = СравнениеЗначений.Сравнить(ДвоичныеДанныеФайла, СтрокаТаблицы.Ссылка.ХранилищеОбработки.Получить()) <> 0;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьДоступность()
Элементы.ВнешниеОбработкиЗагрузитьИзФайла.Доступность = ЗначениеЗаполнено(КаталогФайловогоКэша);
Элементы.ВнешниеОбработкиОткрытьВОтладчике.Доступность = ЗначениеЗаполнено(КаталогФайловогоКэша);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСписок(Команда = Неопределено)
КлючСтроки = ирОбщий.ПолучитьКлючТекущейСтрокиЛкс(Элементы.Список);
ОбновитьСписокНаСервере();
ирОбщий.ВосстановитьТекущуюСтрокуТаблицыФормыЛкс(Элементы.Список, КлючСтроки, Список);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьВОтладчике(Команда)
#Если ТонкийКлиент Или ВебКлиент Тогда
Сообщить("Функция доступна только в толстом клиенте");
Возврат;
#КонецЕсли
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ПолноеИмяФайла = ирСервер.ПолноеИмяФайлаВнешнейОбработкиВФайловомКэшеЛкс(ТекущиеДанные.Ссылка, КаталогФайловогоКэша);
Файл = Новый Файл(ПолноеИмяФайла);
Если Не Файл.Существует() Тогда
ТекущиеДанные.Ссылка.ХранилищеОбработки.Получить().Записать(ПолноеИмяФайла);
КонецЕсли;
ирКэш.Получить().ОткрытьФайлВКонфигураторе(ПолноеИмяФайла, "Модуль");
ОбновитьСписок();
КонецПроцедуры
&НаКлиенте
Процедура ВнешниеОбработкиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Элемент.ТекущиеДанные.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ПерехватВнешнихОбработокПриИзменении(Элемент)
Если Не ПерехватВнешнихОбработок Тогда
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = Ложь;
СохранитьНастройкиПользователяНаСервере();
КонецЕсли;
СохранитьНастройкиНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПрочитатьАктуальныеНастройки(Команда)
ПрочитатьНастройкиНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзФайла(Команда)
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ЗагрузитьИзФайлаНаСервере(ТекущиеДанные.Ссылка, КаталогФайловогоКэша);
ОбновитьСписок();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ЗагрузитьИзФайлаНаСервере(Ссылка, КаталогФайловогоКэша)
#Если Сервер И Не Сервер Тогда
Ссылка = Справочники.ДополнительныеОтчетыИОбработки.ПустаяСсылка();
#КонецЕсли
ПолноеИмяФайла = ирСервер.ПолноеИмяФайлаВнешнейОбработкиВФайловомКэшеЛкс(Ссылка, КаталогФайловогоКэша);
Файл = Новый Файл(ПолноеИмяФайла);
Если Не Файл.Существует() Тогда
Возврат;
КонецЕсли;
ОбъектМодуля = ВнешниеОбработки.Создать(Файл.ПолноеИмя, Ложь);
СведенияМодуля = ОбъектМодуля.СведенияОВнешнейОбработке();
Объект = Ссылка.ПолучитьОбъект();
Объект.Версия = СведенияМодуля.Версия;
Объект.ХранилищеОбработки = Новый ХранилищеЗначения(Новый ДвоичныеДанные(Файл.ПолноеИмя));
Объект.Записать();
КонецПроцедуры
&НаКлиенте
Процедура КаталогФайловогоКэшаОткрытие(Элемент, СтандартнаяОбработка)
ЗапуститьПриложение(КаталогФайловогоКэша);
СтандартнаяОбработка = Ложь;
КонецПроцедуры