RDT1C/CommonForms/ирОтладкаВнешнихОбработокБСП/Ext/Form/Module.bsl
Администратор e2082add8d Консоль запросов
*Исправлена ошибка команды "Структура формы"
    Административная регистрация com-компонент
        +Добавлена кнопка "Запустить от имени администратора"
        *Исправлено выполнение административной регистрации под пользователем домена, являющимся локальным администратором
    Общее
        *Устранены проблемы с антивирусным ПО путем возврата к использованию старой версии утилиты hstart
    Подбор и обработка объектов
        +В схему компоновки добавлены поля-функции ТИПЗНАЧЕНИЯ() от полей составных типов

3.78
    Консоль запросов
        *Устранено ошибочное использование параметров в фигурных скобках при наличии параметра с типом "Выражение СКД"
        +В подменю "Вставка" для поля текста запроса добавлена команда "Ссылка из буфера"
        *Исправлено вычисление значений параметров для вложенных компоновок из макета компоновки
        *Исправлено некорректное извлечение вычисляемых параметров из макета компоновки
    Конструктор запроса
        +Добавлена поддержка типа запроса TRUNCATE TABLE
        +Для запроса типа WQL при двойном клике на доступном поле доступной таблицы поле теперь добавляется в выбранные поля
    Анализ журнала регистрации
        +Реализованы команды сортировки для списков значений отбора
        *Исправлено долгое обновление табличного поля отбора с большими списками
    Динамический список
        *В командую панель возвращены все стандартные кнопки
        *При открытии с установкой таблицы фокус ввода теперь устанавливается в табличное поле
    Редактор объекта БД
        *Инструмент "Поиск ссылок на объект" перенесен сюда в виде закладки
        +Добавлена поддержка перечислений и точек маршрута
    Интерфейсная панель
        *Исправлены ошибки при обработке веток не метаданных
    Общее
        +Обновлено внутренне описание платформы от версии 8.3.9
        *Исправлены ошибки при открытии ссылок в режиме совместимости 8.1
        *Обеспечена компипяция в режиме совместимости 8.3.9
        *Кнопка открытия настроек справочника Алгоритмы перенесена с общей панели инструментов в формы списка справочника
    Различные значения колонки
        *Исправлены ошибки при обработке булевых колонок
    Консоль кода
        +В подменю "Вставка" добавлена команда "Ссылка из буфера"
    Поиск дублей и замена ссылок
        *Исправлен учет равенства реквизитов при поиске по похожим словам
    Структура хранения БД
        *Исправлена ошибка при нажатии "Показать индекс" в контекстном меню таблицы "Наборы полей" на закладке "Индексы"
    Поиск ссылок на объект
        *Перенесен в инструмент "Редактор объекта БД" в виде закладки

3.77
    Общее
        *Элевация оставлена только в форме административной регистрации COM-компонент, в настройке техножурнала и при изменении параметров служб сервера 1С
        *Элевация теперь используется только если у учетной записи Windows есть административные права
        *Улучшены сообщения пользователю при проблемах регистрации COM компонент
        *Открытие формы объекта по двойному клику на ячейках табличных полей теперь выполняется без получения объекта
        *Улучшена установка ширины динамически добавляемых колонок табличных полей
    Административная регистрация COM компонент
        +Добавлены кнопки "Снять флажки" и "Установить флажки"
    Редактор объекта БД
        *Исправлено распознавание ссылки документа по представлению в поле выбора объекта
        *Исправлено переключение режима редактирования независимого регистра при изменении отбора командами "снять все" и "установить все"
    Динамический список
        *При открытии редактора объекта БД для добавления в независимый регистр сведений теперь включаются все элементы отбора
    Консоль запросов
        *Устранена ошибочная доступность для изменения флажков в коллекции результата запроса
        *Исправлена ошибка загрузки результата WQL запроса

3.76
    Управление службами сервера 1С
        *Улучшена диагностика ошибок
        +Добавлена элевация при изменении параметров служб
    Динамический список
        *Устранено свежее скрытие колонки со стандартной картинкой
    Интерфейсная панель
        +Добавлены перечисления
    Консоль запросов
        *Исправлена ошибка загрузки пустого результата запроса MSSQL
    Редактор констант
        +Включение функциональных опций теперь изменяет только булевы константы и не выполняет их запись
        *Реализован пропуск ошибок записи констант
    Конструктор запросов
        *Устранена ошибочная виртуальная таблица 1С ЗадачиПоИсполнителю  у задачи без адресации
    Редактор объекта БД
        *Флажок "Очищать по отбору чтения" теперь становится доступным только если в считанном наборе записей были строки
        +В режиме менеджера записи регистра сведений реализовано удаление
        *Исправлена свежая ошибка параметризованного открытия строки независимого регистра сведений
    Общее
        *Исправлена ошибка нажатия "Запустить обычное приложение" в тонком клиенте из формы "Невозможно выполнить действие"
2016-12-04 00:30:12 +03:00

241 lines
13 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.

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