autoformat¶
Автоформатирование кода¶
Внешняя обработка «Автоформатирование кода и локализация» изменяет XML-исходники конфигурации по выбранным правилам. Она может сама выгрузить конфигурацию из информационной базы, показать сравнение, загрузить выбранные изменения обратно и работать с хранилищем конфигурации.
Проверяйте изменения перед загрузкой
Обработка исправляет исходники, а не только сообщает об отклонениях. Запускайте её на рабочей копии и просматривайте сравнение файлов.
Где получить¶
Пакетный запуск¶
Настройте обработку интерактивно и выполните команду Выгрузить параметры автоформатирования. Она создаёт XML или ZIP с точной структурой параметров текущей версии.
Примеры Config.xml¶
Конфигурация выгружается во временный каталог, форматируется и загружается обратно в файловую базу. После загрузки обновляется конфигурация базы данных.
<?xml version="1.0" encoding="UTF-8"?>
<НастройкиАвтоформатирования>
<ТипИсточника>0</ТипИсточника>
<ПутьКФайловойБазе>C:\Bases\Development</ПутьКФайловойБазе>
<Пользователь>Администратор</Пользователь>
<Пароль></Пароль>
<КаталогВыгрузкиXML>C:\Temp\autoformat</КаталогВыгрузкиXML>
<СтрокаЗапускаПлатформы>C:\Program Files\1cv8\8.3.27.XXXX\bin\1cv8.exe</СтрокаЗапускаПлатформы>
<ОбновитьКонфигурациюБД>true</ОбновитьКонфигурациюБД>
</НастройкиАвтоформатирования>
Обработку нужно запускать в этой же серверной базе: значение
ПутьКБазе в XML не переключает базу, в которой уже запущен пакетный
сеанс.
<?xml version="1.0" encoding="UTF-8"?>
<НастройкиАвтоформатирования>
<ТипИсточника>1</ТипИсточника>
<ПутьКБазе>Srvr="server";Ref="development";</ПутьКБазе>
<Пользователь>Администратор</Пользователь>
<Пароль></Пароль>
<КаталогВыгрузкиXML>C:\Temp\autoformat</КаталогВыгрузкиXML>
<СтрокаЗапускаПлатформы>C:\Program Files\1cv8\8.3.27.XXXX\bin\1cv8.exe</СтрокаЗапускаПлатформы>
<ОбновитьКонфигурациюБД>true</ОбновитьКонфигурациюБД>
</НастройкиАвтоформатирования>
Перед автоформатированием обработка обновит конфигурацию из хранилища.
При значении true параметра
ПомещатьИзмененныеОбъектыВХранилище она захватит объекты, поместит
изменения с указанным комментарием и отменит оставшиеся захваты. Значение
false оставит изменения только в базе.
<?xml version="1.0" encoding="UTF-8"?>
<НастройкиАвтоформатирования>
<ТипИсточника>0</ТипИсточника>
<ПутьКФайловойБазе>C:\Bases\Development</ПутьКФайловойБазе>
<Пользователь>Администратор</Пользователь>
<Пароль></Пароль>
<КаталогВыгрузкиXML>C:\Temp\autoformat</КаталогВыгрузкиXML>
<СтрокаЗапускаПлатформы>C:\Program Files\1cv8\8.3.27.XXXX\bin\1cv8.exe</СтрокаЗапускаПлатформы>
<КаталогХранилища>tcp://repository-server/repository</КаталогХранилища>
<ПользовательХранилища>developer</ПользовательХранилища>
<ПарольХранилища></ПарольХранилища>
<ПомещатьИзмененныеОбъектыВХранилище>true</ПомещатьИзмененныеОбъектыВХранилище>
<ТекстКомментария>Автоформатирование кода</ТекстКомментария>
<ОбновитьКонфигурациюБД>true</ОбновитьКонфигурациюБД>
</НастройкиАвтоформатирования>
Обработка изменит существующую XML-выгрузку непосредственно в указанном
каталоге. В нём должен находиться файл Configuration.xml.
<?xml version="1.0" encoding="UTF-8"?>
<НастройкиАвтоформатирования>
<ТипИсточника>2</ТипИсточника>
<КаталогВыгрузкиXML>C:\Projects\Configuration</КаталогВыгрузкиXML>
<КаталогВыгрузкиРезультат>C:\Projects\Configuration</КаталогВыгрузкиРезультат>
<СтрокаЗапускаПлатформы>C:\Program Files\1cv8\8.3.27.XXXX\bin\1cv8.exe</СтрокаЗапускаПлатформы>
</НастройкиАвтоформатирования>
Укажите корень проекта EDT, содержащий src/Configuration/Configuration.mdo.
Обработка изменит файлы проекта непосредственно.
<?xml version="1.0" encoding="UTF-8"?>
<НастройкиАвтоформатирования>
<ТипИсточника>2</ТипИсточника>
<КаталогВыгрузкиXML>C:\Projects\MyEDTProject</КаталогВыгрузкиXML>
<КаталогВыгрузкиРезультат>C:\Projects\MyEDTProject</КаталогВыгрузкиРезультат>
<СтрокаЗапускаПлатформы>C:\Program Files\1cv8\8.3.27.XXXX\bin\1cv8.exe</СтрокаЗапускаПлатформы>
</НастройкиАвтоформатирования>
Если секция СтандартыДляАвтоформатирования присутствует, обработка
сначала отключает все правила, затем включает перечисленные. Родительский
ключ СтандартNNN обязателен: без него обработчик стандарта не запустится.
<?xml version="1.0" encoding="UTF-8"?>
<НастройкиАвтоформатирования>
<ТипИсточника>2</ТипИсточника>
<КаталогВыгрузкиXML>C:\Projects\Configuration</КаталогВыгрузкиXML>
<КаталогВыгрузкиРезультат>C:\Projects\Configuration</КаталогВыгрузкиРезультат>
<СтрокаЗапускаПлатформы>C:\Program Files\1cv8\8.3.27.XXXX\bin\1cv8.exe</СтрокаЗапускаПлатформы>
<СтандартыДляАвтоформатирования>
<!-- Весь стандарт 455: родитель и все его правила. -->
<Стандарт>Стандарт455</Стандарт>
<Стандарт>ЗаменаОбластейВВидеКомментариев</Стандарт>
<Стандарт>УдалениеПустыхОбластей</Стандарт>
<Стандарт>ДобавлениеОбластиОписаниеПеременных</Стандарт>
<Стандарт>ДобавлениеОбластиИнициализация</Стандарт>
<!-- Только п. 1.3 стандарта 455: удалите правила выше и оставьте:
<Стандарт>Стандарт455</Стандарт>
<Стандарт>ЗаменаОбластейВВидеКомментариев</Стандарт>
-->
</СтандартыДляАвтоформатирования>
</НастройкиАвтоформатирования>
Поддерживаемые автозамены¶
| Стандарт | Исправление | Ключ настройки |
|---|---|---|
| #std437, п. 1 | Приведение ключевых слов запроса в канонический вид | КаноническийВидКлючевыхСловЗапроса |
| #std441, п. 1 | Приведение ключевых слов встроенного языка в канонический вид | КаноническийВидКлючевыхСловЯзыка |
| #std453 | Автоисправление описаний процедур и функций | АвтоисправлениеОписанийПроцедурИФункций |
| #std453 | Добавление дополнительных отступов в каждую строку с описанием параметра и возвращаемого значения, если отступ этой строки совпадает с отступом самой секции | ДобавлениеДополнительныхОтступовВОписаниеПараметра |
| #std455, п. 1.3 | Перевод разделов модулей в виде комментариев в области в виде #Область |
ЗаменаОбластейВВидеКомментариев |
| #std455, п. 1.8 | Удаление пустых областей | УдалениеПустыхОбластей |
| #std455, п. 2.2 | Добавление раздела #Область ОписаниеПеременных |
ДобавлениеОбластиОписаниеПеременных |
| #std455, п. 2.7 | Добавление раздела #Область Инициализация |
ДобавлениеОбластиИнициализация |
| #std456, п. 1.2 | Исправление знака минус «-» в других кодировках | ИсправлениеЗнакаМинусВДругихКодировках |
| #std456, п. 3 | Удаление избыточной проверки параметра АвтоТест из кода модулей |
УдалениеПроверкиАвтоТестИзМодулей |
| #std456, п. 3 | Замена двойного символа точки с запятой ;; на одинарный ; |
ДвойныеСимволыТочкаСЗапятойВКодеМодулей |
| #std456, п. 5.1 | Установка в крайнюю левую позицию описаний процедур и функций, директив компилятора, инструкций препроцессора и т. д. | КрайняяЛеваяПозицияОписания |
| #std456, п. 6 | Перенос комментариев длиннее 120 символов | ПереносКомментариевДлиннее120Символов |
| #std456, п. 7.3 | Перевод в верхний регистр первой буквы длинных комментариев | ДлинныеКомментарииСБольшойБуквы |
| #std456, п. 7.3 | Добавление пробела в начале комментариев | ПробелВНачалеКомментариев |
| #std458 | Очистка излишней локализации объектов метаданных, элементов форм и т. д. для отсутствующих языков | ОчисткаИзлишнейЛокализации |
| #std467, п. 1.3 | Удаление некорректных ссылок на отсутствующие объекты подсистем | УдалениеНекорректныхСсылокНаОтсутствующиеОбъектыПодсистем |
| #std467, п. 2.3 | Сортировка объектов метаданных верхнего уровня | СортировкаОбъектовВерхнегоУровня |
| #std467 | Удаление избыточного обращения к объекту в коде модуля | УдалениеИзбыточногоОбращенияКОбъекту |
| #std474, п. 2.1 | Добавление союзов и предлогов в синонимы объектов | ДобавлениеСоюзовИПредлоговВСинонимыОбъектов |
| #std478, п. 1.1 | Очистка подсказок, совпадающих с синонимом, у реквизитов, измерений, ресурсов и т. п. | ОчисткаПодсказокРеквизитов |
| #std644, п. 2.2 | Добавление пустой строки между объявлением подсистемы и описанием процедуры или функции в области ДляВызоваИзДругихПодсистем |
ПустаяСтрокаМеждуОбъявлениемПодсистемыИОписаниемПроцедуры |
| #std680, п. 2 | Заключение кода в инструкцию препроцессора | ЗаключениеКодаВИнструкциюПрепроцессора |
| #std702, п. 2.1 | Установка признака «Использовать всегда» у реквизита Ссылка в динамических списках | УстановкаПризнакаИспользоватьВсегда |
| #std762, п. 3 | Установка синонима для вычисляемых полей СКД и динамических списков | УстановкаСинонимаДляВычисляемыхПолей |
| #std765, п. 2 | Заполнение заголовков у всех групп и таблиц на формах | ЗаполнениеЗаголовковГруппИТаблицФорм |
| #std765, п. 2 | Замена автогенерируемых заголовков с очисткой слов «Группа», «Список» и т. д. | ЗаменаАвтогенерируемыхЗаголовков |
| #std765, п. 3.1 | Очистка бессмысленных подсказок у групп форм | ОчисткаПодсказокГруппФорм |
| #std765, п. 3.2 | Очистка заголовков реквизитов формы, не размещённых на форме | ОчисткаЗаголовковРеквизитовФормыНеРазмещенныхНаФорме |
| #std765, п. 4 | Заполнение заголовков колонок динамического списка, получающихся в запросе комбинацией других колонок и имеющих свой псевдоним | ЗаполнениеЗаголовковКолонокДинамическогоСписка |
| #std765 | Заполнение заголовков колонок таблиц значений | ЗаполнениеЗаголовковКолонокТаблицыЗначений |
| #std765 | Заполнение заголовков элементов формы, связанных со свойствами списка значений | ЗаполнениеЗаголовковСвойствСпискаЗначений |
| #std765 | Заполнение заголовков элементов формы из связанных реквизитов или команд | ЗаполнениеЗаголовковЭлементовФорм |
| #std767, п. 1 | Очистка наименований предопределённых регламентных заданий | ОчисткаНаименованийПредопределенныхРегламентныхЗаданий |