11.02.2019

Версия 1.10 (11.02.2019)

Все изменения версии 1.10 сгруппированы в несколько разделов:

Оптимизация

Сборка проекта

Ускорена сборка проекта за счет оптимизации использования процессорного времени при выполнении некоторых внутренних операций.

Объем оперативной памяти Уменьшен объем оперативной памяти, используемой EDT.

Переименование при объединении

Существенно сокращено время, затрачиваемое на переименование объекта при объединении конфигураций.

Импорт конфигурации

Уменьшено время расчета дополнительных данных конфигурации при импорте или обновлении конфигурации из информационной базы или из репозитория Git.

Сравнение конфигураций Увеличена скорость сравнения конфигураций, которые содержат изменения в правах. На тестовом примере скорость увеличилась примерно в 5 раз.

Проверка форм

Уменьшено время, требующееся для проверки форм после переключения веток репозитория Git или после обновления конфигурации из информационной базы.

Открытие модулей

Ускорено открытие больших модулей. Например, время открытия модуля, содержащего более 40000 строк, сократилось более чем в два раза.

Встроенная отладка Оптимизирована работа с модулями в режиме встроенной отладки. Исключены паузы, существовавшие при переходе по шагам отладки. Общая скорость работы с модулем на тестовом примере увеличилась примерно в 10 раз.

Контекстная подсказка

Ускорена работа контекстной подсказки в редакторе встроенного языка.

Панель Ошибки конфигурации

Повышена производительность панели Ошибки конфигурации при работе с большими конфигурациями. Например, при работе с конфигурацией 1C:ERP время открытия этой панели уменьшилось в 20-30 раз в ситуации, когда группировки не используются, или когда группировки развернуты. Операции раскрытия группировок с большим количеством элементов теперь происходят мгновенно.

001.png

Установка и снятие всех флажков

Ускорены операции установки и снятия всех флажков, которые выполняются командами Отметить все элементы и Снять отметку со всех элементов. Такие команды есть во многих диалогах, например, в диалоге фильтрации по объектам и ролям, который используется в редакторе Все роли.

045.png

Редакторы прав Улучшена производительность редакторов прав при добавлении и удалении прав и при обновлении отображаемых данных (например, после добавления или удаления объекта конфигурации). Улучшения реализованы в редакторе Все роли, в редакторе прав роли и в редакторе прав объекта конфигурации.
Поиск Ускорено выполнение поиска в конфигурациях.
Фильтр по подсистемам

Увеличено быстродействие диалога Фильтр по подсистемам. Этот диалог, например, используется в панели Навигатор. На тестовом примере скорость работы увеличилась примерно в 2 раза.

064.png

Список регистраторов

Оптимизировано открытие диалога Выбор элементов, который вызывается при изменении списка регистраторов в редакторе регистра бухгалтерии. Теперь этот диалог открывается без задержки.

002.png

Описание характеристик

Оптимизировано открытие диалога Выбор элемента, который вызывается при выборе вида или значения характеристики в диалоге Новое описание характеристик в редакторе объекта конфигурации. Теперь этот диалог открывается без задержки.

003.png

Использование параметра функциональных опций

Оптимизировано открытие диалога Выбор элементов, который вызывается при изменении свойства Использование в редакторе параметра функциональной опции. Теперь этот диалог открывается без задержки.

004.png

Хранение функциональной опции

Оптимизировано открытие диалога Выбор элемента, который вызывается при редактировании свойства Хранение в редакторе функциональной опции. Теперь этот диалог открывается без задержки.

005.png

Список владельцев справочника

Оптимизировано открытие диалога Выбор элемента, который вызывается при изменении списка владельцев в редакторе справочника. Теперь этот диалог открывается без задержки.

006.png

Выбор общей картинки

Оптимизировано открытие диалога, который вызывается при выборе изображения в редакторе общей картинки. Теперь этот диалог открывается без задержки.

007.png

Редактор встроенного языка

Наборы типов в комментариях

В документирующих комментариях вы можете теперь использовать наборы типов для описания типов параметров и возвращаемых значений. Например, ниже выбирается набор типов СправочникСсылка, в который входят типы ссылок на все справочники, которые есть (или будут) в конфигурации.

046.png

Ссылки на локальные методы в комментариях

Теперь в документирующих комментариях вы можете ссылаться на процедуры и функции, существующие в локальном контексте модуля. Раньше можно было ссылаться только на экспортируемые методы других модулей.

047.png

Составной тип в комментариях

При указании типов параметров и возвращаемых значений вы можете использовать теперь несколько типов для одного параметра или значения. Все перечисленные типы будут корректно отображаться в синтаксической справке. Например, ниже показано, что параметр Регион может принимать либо строковое либо числовое значение.

048.png

Типы элементов коллекций в комментариях

При описании типов элементов коллекций вы можете теперь использовать ссылку на значения составного типа, описанные в другом фрагменте модуля. Например, ниже показан пример, в котором параметр МассивПараметров описан как Массив, состоящий из элементов, чей тип описан в возвращаемом значении функции ПолучитьПараметры(). В результате при подстановке метода Получить(), который возвращает элемент этого массива, контекстная подсказка правильно описывает тип получаемого значения как Строка или Число.

049.png

Выделение текущего идентификатора

Теперь вы можете выбирать одну из двух стратегий, которая будет использована для подсветки текущего идентификатора в редакторе встроенного языка. Первая, как и раньше, это подсветка на основе модели встроенного языка, когда учитываются только семантические конструкции языка.

050.png

Вторая стратегия, новая, это текстовый поиск, при котором в тексте модуля просто выделяются все одинаковые слова, соответствующие текущему выделению или идентификатору, находящемуся под курсором.

051.png

Чтобы изменить стратегию подсветки, нажмите Окно > Параметры... > V8 > Встроенный язык > Выделение текущего идентификатора.

Описание параметров

При отображении справочной информации о параметре (Ctrl+Shift+Space или при вставке метода через синтакс-помощник) теперь показывается и его описание. Раньше описание параметра не отображалось.

008.png

Проверяемые реквизиты

Теперь вы можете использовать контекстную подсказку, чтобы выбрать один из реквизитов прикладного объекта в массиве проверяемых реквизитов в обработчике события ОбработкаПроверкиЗаполнения. Если вы нажмёте на литерал, удерживая Ctrl, то перейдёте к этому реквизиту объекта на закладке Данные, и увидите его свойства.

009.png

Выбор общих картинок

Теперь при выборе картинок в свойстве БиблиотекаКартинок контекстная подсказка показывает не только стандартные картинки (на рисунке они выделены рамкой), но и общие картинки конфигурации.

010.png

Редактор "Все роли" и другие редакторы прав

Отображаются только роли с правами Во всех редакторах прав теперь после их запуска отображаются только те строки, которые содержат объекты и роли с установленными правами. Раньше, кроме этого, отображались строки с ролями, автоматически устанавливающими права на новые объекты, даже если в таких ролях не было установлено ни одного права.
Фоном выделяется только роль

Теперь зеленым фоном выделяется только сама роль, автоматически устанавливающая права на новые объекты. Раньше таким образом выделялась вся строка с такой ролью.

052.png

Удалить права на объекты

Мы изменили поведение команды Удалить права на объекты для строк с "зелеными" ролями. Раньше эта команда устанавливала все права в выбранной строке и скрывала её из редактора. Теперь строка с "зеленой" ролью не скрывается и продолжает отображаться в редакторе. Для строк с ролями, которые не устанавливают автоматически права на новые объекты, поведение осталось прежним: все права снимаются и строка скрывается из редактора.

053.png

"Раскрыть все" и "Свернуть все"

Команды Раскрыть все и Свернуть все действуют теперь только для текущей или для выделенных строк. Раньше они раскрывали и сворачивали все строки, содержащиеся в редакторе.

054.png

Перезаписать права

Мы изменили логику добавления прав на объекты. В диалоге Добавить права на объекты теперь отображаются две кнопки: Перезаписать права и Добавить права, вместо одной кнопки ОК, как это было раньше. В том случае, когда вы выбираете в этом диалоге объект и роль, которые уже есть в редакторе, это позволяет вам как добавить права к существующим, так и полностью перезаписать их новыми. Раньше в такой ситуации по кнопке ОК права всегда только перезаписывались.

Если в этом диалоге вы не выбрали объект и роль, которые уже есть в редакторе, будет доступна только кнопка Добавить права. Эта же кнопка всегда выбрана по умолчанию для того, чтобы чтобы вы случайно не перезаписали полностью существующие права, нажав Enter.

055.png

Установить фильтр по объектам и ролям

В диалоге Установить фильтр по объектам и ролям объекты конфигурации и роли расположены теперь в том же порядке, что и в панели Навигатор. Раньше их порядок отличался от того, который был в панели Навигатор.

011.png

Кроме этого теперь этот диалог сохраняет свои размеры после закрытия.

Диалог добавления ролей и объектов При открытии диалога добавления ролей и объектов конфигурации в редакторах прав порядок объектов конфигурации в них будет теперь таким же, как в панели Навигатор. Раньше порядок объектов конфигурации в этом диалоге отличался от того, который установлен в панели Навигатор.

Редактор формы

Командная панель формы на мобильном устройстве

Вы можете теперь настраивать состав командной панели формы на мобильном устройстве по аналогии с тем, как это реализовано в конфигураторе.

012.png

Реквизит ГрафическаяСхема

Теперь вы можете настраивать реквизит формы, имеющий тип ГеографическаяСхема. Для этого в панель Свойства мы добавили ссылку Настройка Открыть.

013.png

Географическая схема открывается в новой вкладке редактора. Для изменения вам доступны как свойства всей схемы, так и свойства отдельных её элементов (области построения, области легенды, области заголовка). В контекстном меню находятся команды, позволяющие настраивать слои и элементы легенды.

014.png

При импорте или экспорте конфигурации в XML реквизиты формы, имеющие тип ГеографическаяСхема, также импортируются и экспортируются.

Конструктор запроса

Предупреждения и ошибки

Теперь в конструкторе запроса отображаются пиктограммы предупреждений и ошибок, а если показать на них мышью, то в подсказке выводится текст сообщения.

015.png

Поиск в объектах конфигурации

В окно объектов конфигурации мы добавили поиск. Чтобы открыть поле поиска вы можете нажать на лупу в командной панели или Ctrl+F на клавиатуре.

016.png

Порядок объектов конфигурации При открытии конструктора запроса порядок объектов конфигурации в нем будет теперь таким же, как в панели Навигатор. Раньше порядок объектов конфигурации отличался от того, который установлен в панели Навигатор.

Сортировка по алфавиту

Порядок сортировки объектов конфигурации, который вы выбрали, теперь запоминается при закрытии редактора запроса. Раньше редактор после открытия всегда располагал объекты конфигурации в собственном порядке.

017.png

Редактор запроса

Контектстная подсказка

Алгоритм работы контекстной подсказки в редакторе запроса теперь аналогичен тому, который используется при редактировании встроенного языка:

  • Ищутся частичные вхождения слов.
  • Поддерживается ввод по заглавным буквам.
  • Учитывается число символов идущих подряд при отборе наиболее подходящего предложения.

056.png

Раньше контекстная подсказка в редакторе запроса работала по-другому, что создавало неудобства.

Редактор объекта конфигурации

Открытие формы

Теперь вы можете открыть форму, дважды кликнув на ней в редакторе объекта конфигурации (на закладке Формы).

018.png

Сравнение и объединение конфигураций

Стратегия сопоставления

Стандартная стратегия сопоставления объектов изменена на значение По UUID, затем по имени в том случае, когда проекты сравниваются в панели Навигатор (без участия Git). Это значение более точно соответствует смыслу такого сравнения и исключает потенциальные ошибки, которые могут возникнуть в результате объединения. Раньше стандартным было значение По имени.

019.png

Сравнение проектов разных типов

Теперь вы можете сравнивать и объединять проекты разных типов. Например, проект конфигурации с проектом внешних отчётов и обработок, или проект внешних отчетов и обработок с проектом расширения.

057.png

Есть несколько особенностей, которые вам следует учитывать при этом:

  • При таком сравнении доступна лишь одна стратегия сопоставления объектов - По имени.
  • Сравниваются только те свойства и объекты, которые могут существовать как в одном типе проекта, так и в другом.
  • Если в сравнении участвует проект внешних отчетов и обработок, то его объекты сравниваются с отчетами и обработками, существующими во втором проекте.
  • При объединении внешние отчеты/обработки преобразуются во внутренние, и наоборот.
  • Если вторым источником в сравнении является проект расширения, то при объединении нельзя добавлять в главный проект заимствованные объекты конфигурации, которые есть в расширении.
  • Если проект расширения является главным источником, то при объединении объекты конфигурации добавляются в расширение как собственные, и только в том случае, если их можно создать в расширении как собственные (расширения позволяют создавать собственные объекты не всех существующих классов).

Правила поддержки

Мы изменили логику работы с правилами поддержки при сравнении и при объединении конфигураций:

  • правила поддержки, существующие во второй конфигурации, всегда будут применены к главной конфигурации;
  • возможность или невозможность объединения объектов определяется правилами поддержки второй конфигурации. Поэтому, например, если в главной конфигурации объект находится на поддержке, а во второй конфигурации он снят с поддержки и изменён, стандартно редактор сравнения/объединения будет предлагать применить изменения объекта, существующие во второй конфигурации.

Раньше изменение объектов главной конфигурации, находящихся на поддержке, было запрещено в любом случае.

Режим объединения текстов

В качестве стандартного значения при открытии редактора сравнения и объединения текстовых файлов теперь используется режим Объединение встроенного языка.

020.png

Конфликтные изменения

Теперь в редакторе сравнения и объединения текстовых файлов вы можете видеть конфликтные изменения и перемещаться по ним. Конфликтные изменения могут существовать только при трёхстороннем сравнении, когда и главный и второй источник имеют изменения относительно общего предка. Трехстороннее сравнение выполняется при слиянии веток Git. Кроме этого трёхстороннее сравнение вы можете выполнить интерактивно, выбрав в панели Навигатор три разных проекта.

058.png

Поиск в тексте

При сравнении и объединении модулей вы можете использовать теперь поиск в тексте главного источника, второго источника или результата сравнения. Диалог открывается сочетанием клавиш Ctrl+F или контекстной командой Найти и заменить...

021.png

Имя проекта в заголовке

В редакторе сравнения и объединения текстовых файлов рядом с именем модуля теперь отображается имя проекта, которому принадлежит этот модуль.

022.png

Если выполняется слияние веток Git, то отображаются источники версий: рабочий каталог, имя ветки, идентификатор коммита.

023.png

Комбинации клавиш

В редакторе сравнения и объединения текстовых файлов мы добавили комбинации клавиш для команд, которые используются наиболее часто:

  • Копировать текущее изменение

    024.png

  • Следующее изменение

    025.png

  • Предыдущее изменение

    026.png

  • Следующее отличие

    027.png

  • Предыдущее отличие

    028.png

  • Обновить

    029.png

Запуск и отладка

Значения переменных

В панели Переменные мы сняли ограничение на длину текста, отображающего значение переменной. Теперь без дополнительных настроек вы сможете видеть, например, тексты запросов.

030.png

Копирование переменных

Теперь, просматривая значения переменных в отладке, вы можете скопировать их в буфер обмена. Для этого мы добавили в контекстное меню команду Копировать переменные.

031.png

В результате будут сохранены имя переменной, её значение и её тип.

032.png

Сервер отладки кластера

В редакторе конфигурации запуска и отладки на закладку Соединение отладки мы добавили пункт Использовать сервер отладки кластера. Его назначение такое же, как и в конфигураторе: EDT при отладке будет использовать сервер отладки, развернутый в кластере серверов, к которому выполняется подключение. Этот пункт стандартно выбирается, когда в конфигурации отладки указывается серверная информационная база.

033.png

Групповая разработка

Поддержка ветвления в Git'е

Мы реализовали собственный механизм, который облегчает вам использование ветвления Git при разработке прикладных решений 1С:Предприятия (подробнее):

  • Для создания новой ветки Git'а мы рекомендуем использовать не стандартную команду EGit, а собственную команду EDT - Создать новую ветку. Она находится, например, в панели Навигатор в контекстном меню проекта в группе Совместная работа. Эта команда не только создаст ветку Git, но и свяжет её с новой информационной базой или с одной из существующих баз (Мастер "Создание ветки").

    059.png

  • Само контекстное меню Совместная работа мы упростили, и оставили в нем только самые необходимые, для групповой разработки, команды.
  • В редакторе конфигураций запуска и отладки для новых конфигураций установлено стандартное значение Использовать информационную базу по умолчанию для проекта. Это значит, что когда вы переключите проект на другую ветку Git'а и решите запустить его, EDT создаст конфигурацию запуска с той информационной базой, которая соответствует текущей ветке Git'а.

    060.png

  • Для просмотра связей между проектом, ветками Git'а и информационными базами вы можете использовать новую панель Разработка. Она открывается автоматически при создании новой ветки командой Создать новую ветку, и расположена в одной группе с панелями Информационные базы и Веб-серверы (Панель "Разработка").

    061.png

  • Для удаления веток, а также, при необходимости, для удаления информационных баз, которые с ними связаны, вы можете использовать контекстную команду Удалить ветку, которая находится, например, в панели Разработка в контекстном меню задачи (Диалог "Удаление ветки").

    062.png

  • Чтобы настроить стандартные имена и типы веток, способы создания информационных баз, нажмите Окно > Параметры... > V8 > Командная разработка (Группа параметров "V8 - Командная разработка").

    063.png

Символы окончания строк

При экспорте проекта в информационную базу EDT преобразовывает теперь символы окончания строк к тому виду, который принят в платформе 1С:Предприятия. В результате при сравнении и объединении конфигураций, разрабатываемых одновременно в EDT и в конфигураторе, конфигуратор не должен диагностировать большое количество различий в текстах модулей и в многострочных свойствах. Раньше такая проблема возникала из-за того, что в сравниваемых модулях использовались разные символы окончания строк.

Это преобразование автоматическое и оно выполняется всегда. Однако оно не решает всех проблем, которые могут быть связаны с разными символами окончания строк.

Поэтому мы хотим вам напомнить, что в EDT и 1С:ГитКонвертере вы можете вручную настроить правила преобразования. Ручная настройка требуется не всегда, а только в следующих сценариях работы:

  • Если групповую разработку ведут разработчики на разных операционных системах, то необходимо настроить в EDT автоматическое преобразование символов окончания строк (п.3 Символы окончания строк). В противном случае в репозиторий будут попадать одинаковые модули с разными окончаниями строк, так как EDT использует стандартные символы, принятые в операционной системе разработчика. В Linux, macOs и Windows эти символы разные.
  • Если для разработки конфигурации (даже одним человеком) одновременно используются как EDT, так и конфигуратор, в 1С:ГитКонвертере тоже необходимо настроить преобразование символов окончания строк (Создание локального репозитория на сервере 1С:ГитКонвертера). В противном случае модули конфигурации, которые 1С:ГитКонвертер импортирует в репозиторий, будут иметь окончания строк не такие, какие приняты в репозитории.
Объединение всех файлов проекта Теперь при слиянии веток Git выполняется объединение не только файлов, принадлежащих проектам EDT, но и всех других, которые находятся в ветках. Объединение файлов открытого проекта выполняется с помощью редактора сравнения и объединения конфигураций, а остальные файлы сравниваются и объединяются средствами Git'а.

Панель Ошибки конфигурации

Состояние группировок

Теперь состояние группировок (открыта / закрыта) сохраняется после закрытия панели или после закрытия EDT.

034.png

Раскрытие группировок

Вложенные группировки, содержащие единственный элемент, теперь автоматически раскрываются при раскрытии родителя. Например, на следующем рисунке, если вы раскроете группировку WebСервис.EnterpriseDataExchange..., то группировка Предупреждения раскроется автоматически.

035.png

Поиск и отбор

Для отбора предупреждений и ошибок вы можете использовать теперь поиск по строке. Он работает по всем видимым колонкам и группировкам. В поисковом выражении вы можете использовать подстановочные символы, например "*".

036.png

Копирование ошибок и предупреждений

Теперь, просматривая ошибки конфигурации, вы можете скопировать их в буфер обмена. Для этого мы добавили контекстную команду Копировать.

037.png

В результате будут сохранены описание ошибки, её положение и значения других отображаемых колонок. Вы можете вставить их в Microsoft Excel, например.

038.png

Копируются только строки, описывающие ошибки, строки иерархии не копируется. Если, например, вы выделите группу ошибок, то будут скопированы все ошибки, вложенные в эту группу.

Мониторинг производительности и сбор статистики

Контроль дедлоков

В механизм мониторинга производительности и сбора статистики мы добавили проверку на "зависание" EDT. Теперь EDT периодически проверяет своё состояние на предмет возникновения "зависаний". Если такая ситуация обнаружена, дамп потоков сохраняется в локальный каталог внутри папки .metadata рабочей области, а информация о факте возникновения "зависания" отправляется на сервис мониторинга.

Имя приложения EDT В информации, отправляемой на сервис мониторинга, имя приложения EDT обозначается как EDT_CLI в том случае, когда приложение EDT запущено из командной строки утилитой ring . Раньше в такой ситуации приложение имело имя EDT.

Разное

Расположение проекта

В диалоги создания проектов конфигурации, расширения конфигурации и внешних отчётов и обработок мы добавили поле Расположение. С его помощью вы можете сгруппировать проекты внутри рабочей области, создав иерархию, с которой вам будет удобно работать, например, в хранилище Git.

039.png

Порядок объектов конфигурации

При открытии закладки Состав в редакторе подсистемы порядок объектов конфигурации в ней будет теперь таким же, как в панели Навигатор. Раньше порядок объектов конфигурации в этой закладке отличался от того, который установлен в панели Навигатор.

Параметры выбора

При выборе значений для параметров выбора вы можете теперь использовать поиск по строке. Он позволит вам быстро найти нужный тип среди множества имеющихся.

040.png

Состав функциональной опции

Мы улучшили диалог добавления объектов в состав функциональной опции. Теперь вы можете использовать в нём поиск по строке и сортировать объекты в алфавитном порядке. А при открытии диалога объекты конфигурации в нём будут иметь тот же порядок, что и в панели Навигатор.

041.png

Просмотр списка выбора

В формах, находящихся на полной поддержке, теперь доступен просмотр списка выбора, заданного для реквизита формы. С помощью кнопки выбора вы можете открыть диалог, в котором представлены значения и их представления. Изменить список выбора вы не можете.

042.png

Названия мастеров

Улучшены названия и описания мастеров импорта и экспорта EDT.

043.png

Ссылка на портал

В Установщик 1С:Предприятия добавлена ссылка на портал EDT.

044.png

Миграция проекта

Если вы храните проект в Git'е, то после миграции проекта на старшую версию вы можете заметить, что файл манифеста изменился, хотя вы не вносили в него никаких изменений. Это нормальная ситуация, вам нужно будет принять эти изменения один раз.

Дело в том, что мы изменили процедуру миграции проекта с одной версии на другую таким образом, что она более не использует поля product-version и store-version, описанные в манифесте проекта. Поэтому при первой миграции "новым способом" на новую версию эти поля будут очищены в манифесте.