Быстрые вставки кода из шаблонов текста очень удобный функционал. Он хорошо известен и применяется тоже широко.
Возникла задача распространять корпоративные шаблоны текста централизованным способом. Удобства очевидны: вышел новый сотрудник / переставили систему / используются при подключении виртуальные рабочие столы или терминалы - везде список шаблонов сразу доступен без ручного указания путей разработчиком.
Функционал подключения списков баз и даже списка шаблонов отлично описан на ИТС и Инфостарте (ссылки в конце). А вот с распространением шаблонов текста недоработка - такой настройки платформой не предусмотрено. Скорее всего из-за выбранного способа хранения этих данных. Настройки шаблонов текста "запрятаны" в файлы %AppData%\Roaming\1C\1cv8\1cv8cmn.pfl, %AppData%\Roaming\1C\1cv82\1cv8cmn.pfl
Настройки, связанные с шаблонами выглядят следующим образом:
{"TxtEdt",
{"AutoSearchTemplateFiles",
{"B",1},"AutoPlacementFilesRU1",
{"S","{2,
{""file://C:/repo/krainev/Шаблоны st/Крайнев.st"",0},
{""file://C:/repo/DataProcessors-Reports/Шаблоны текста/chistov.pro.st"",0}
}"},"TemplateViewVisible",
{"B",0},"SortNamesInProcList",
{"B",1},""},
{
{""}
}
},
При изменении шаблонов, при подключении или удаление файла, в одном из открытых конфигураторов (ведь их может быть несколько) изменения попадают в файл не сразу, а только после закрытия всех экземпляров приложения.
Доставка шаблона разработчикам
Идея распространения шаблонов заключается в программном изменении части файла 1cv8cmn.pfl средствами powershell.
Схема распространения шаблонов следующая.
- В сетевой папке с доступом на чтение нужной группе пользователей лежат шаблоны текста в формате *.st (может и не один)
- Групповыми политиками при входе пользователя из определенной группы в систему запускается powershell-скрипт
- Скрипт проверяет доступ к файлам шаблонов, и наличие самих файлов 1cv8cmn.pfl
- Далее при помощи регулярного выражения проверяется наличие путей шаблонов и при их отсутствии добавляются недостающие (все это с бекапом и логированием)
- Разработчик запускает конфигуратор - все шаблоны уже подключены:
Распространение групповыми политиками
Наша политика настроена на logon пользователя, действует на все компьютеры сети, но только для группы разработчиков.
Запуск осуществляется с параметрами:
-ExecutionPolicy ByPass -File include_st_files_to_1Ckonfigurator.ps1 -EnableLog -PathLog "c:\temp" -path_to_st_files "\\DIT\ 1С\st-templates\"
Требования к ПО
Для выполнения скрипта потребуется Powershell версии 5 и выше.
Узнать версию можно простой командой:
Get-Host|Select-Object Version
Для Windows 10 надо проконтролировать наличие включенного ASP.NET 4.7 (Кстати, тоже можно распространять политиками.)
Для Windows 7 все несколько сложнее. Тут придется поставить два компонента: Microsoft .NET Framework 4.7 и следом Windows Management Framework 5.1. Подробное руководство
В итоге
Хочется надеяться, что разработчики платформы 1С со временем доработают возможность подключения файлов шаблона более простыми средствами, как это сделано для подключения баз данных.
В архиве powershell скрипт, используемый для распространения шаблонов.
Ссылки
- Руководство по установке powershell на Windows 7
- Распространение баз пользователям. Материалы с ИТС: здесь и тут
- Инструкция по настройке автообновления платформы и создания общего списка баз (Инфостарт)
- Что делать, если всем пользователям нужно добавить базу? (Инфостарт)