Проблемы, с которыми сталкивается разработчик на 1С сегодня Скрипты для Снегопата – инструментальное решение этих проблем Как разрабатываются скрипты? Скрипты на встроенном языке 1С План
Большие ОГРОМНЫЕ конфигурации –как по количеству метаданных, по количеству строк кода Процедурно-ориентированный язык –на фоне технологически усложняющейся объектной модели Ограниченные средства организации метаданных и кода –Подсистемы?! С чем сталкивается разработчик
Интенсивные –Развитие технологической платформы –В руках у «1С» Экстенсивные –Развитие инструментария по работе с метаданными, кодом –Доступно (и всерьез! ) Способы решения
Внешние –Работают в режиме «1С:Предприятия» –…или в пакетном режиме Пример: «Инструменты разработчика» Сергея Старых Встроенные –Интегрируются в конфигуратор –Работают наравне со штатными Пример: Снегопат и скрипты для него Существующие инструменты
Навигация и поиск –по метаданным –по коду Автоматизация работы с кодом –Групповая обработка кода, генераторы –«Умные» шаблоны и средства рефакторинга Интеграция –С системами контроля версий –С багтрекерами Функционал
Расширенный поиск –Удобное представление результатов –Поиск регулярными выражениями –Глобальный поиск в фоновом режиме (Евгений Сосна) Навигация и поиск
Навигатор по метаданным –Умный поиск объектов метаданных –Быстрый переход к объекту Навигация и поиск
Навигатор по метаданным Навигация и поиск
Шаблоны кода –«Обрамление» управляющими конструкциями – Дополнения к шаблонам Автоматизация работы с кодом
Рефакторинг –Выделение метода (Extract method) Автоматизация работы с кодом
Генераторы кода –Для документов и справочников «Механическое» автодополнение Авторские комментарии Форматирование … и другие Автоматизация работы с кодом
Интеграция с системами контроля версий –Fossil –Git –Bazaar Интеграция
Язык - JavaScript –Быстрый, функциональный, кросс- платформенный, модный Интерфейс – «обычные» формы 1С –Но логика не в модуле формы – в скрипте! Макросы –Методы без параметров, начинающиеся с префикса macros Скрипт для Снегопата
Экосистема Стандартные библиотеки Библиотеки классов и функций общего назначения
Доступ к глобальному контексту 1С –$addin global Доступ к командам 1С $addin stdcommands Общие «системные» функции и ООП –$addin stdlib Ядро
Тоже скрипты –Обычно без макросов Подключаются динамически –stdlib.require(lib.js, SelfScript); Загружаются в группу «Подгружаемые библиотеки» Библиотеки классов и функций
ScriptForm.js –Программное представление формы скрипта –Следует принципу «Conventions over configuration» –Поддерживается наследование Повторное использование формы Повторное использование функционала Скрипты-библиотеки
ScriptForm.js Скрипты-библиотеки
TextWindow.js –«Обертка» над ITextWindow –Удобный интерфейс для изменения текста –API объекта ТекстовыйДокумент Скрипты-библиотеки
Работа с окнами –winapi.js Уведомления в трее –NotifySend.js Синтаксический анализ кода 1С –SyntaxAnalysis.js Выбор из списка с фильтрацией –SelectValueDialog.js Работа с настройками –SettingsManagement.js Скрипты-библиотеки
Вопрос: Можно написать скрипт для Снегопата на встроенном языке 1С? Ответ: Да! Скрипты на встроенном языке 1С
Как это работает? Скрипты на встроенном языке 1С Информатор (chessman) Загрузчик (скрипт на JS) Конфигуратор Служебная ИБ Init(Designer) Список макросов
Преимущества подхода: –Не надо учить JavaScript, чтобы решать свои задачи или просто оценить программные возможности Снегопата –Можно повторно использовать существующий код, используемый во «внешних» инструментах Скрипты на встроенном языке 1С
Ограничения: –Загрузка обработок медленнее загрузки скриптов –«Родные» формы обработки – только в модальном режиме (для немодальных форм напишем обертку-прокси) –Обработка выполняется в контексте другой ИБ (хотя можно в качестве служебной ИБ использовать открытую в конфигураторе) Скрипты на встроенном языке 1С
Александр Кунташов Форум проекта «Снегопат»