Подсистема инструменты разработчика: Подсистема «Инструменты разработчика» 1C — Главная страница
Подсистема «Инструменты разработчика» (Старых Сергей, 1С 8.2, 8.3)
Подсистема «Инструменты разработчика» (Старых Сергей, 1С 8.2, 8.3)
2020-03-29T12:35:49+00:00
Автор
Инструменты разработчика написаны супер профессиональным программистом Сергеем Старых (связаться с ним) и публикуются с его разрешения.
Описание
Инструменты разработчика — это замечательная коллекция чудо обработок, объединённых в одну подсистему:
Это и:
- Удаление объектов с контролем ссылок;
- Поиск битых ссылок;
- Поиск ссылок на объект;
- Подбор и обработка объектов;
- Поиск дублей и замена ссылок;
- Редактор пользователей;
- Консоль кода;
- Консоль запросов;
- Структура хранения БД;
- Анализ технологического журнала;
- Редактор параметров сеанса;
- Редактор хранилищ настроек;
- Анализ журнала регистрации;
- И множество других инструментов.
Все эти обработки написал и уже много лет поддерживает настоящий профессионал своего дела Сергей Старых.
Как начать работать с инструментами
Инструменты разработчика поддерживаются Сергеем в двух вариантах: основной и портативный.
Основной вариант:
- Требуется встраивать в конфигурацию базы.
- Даёт больше возможностей.
Портативный вариант:
- Не требует изменения конфигурации и открывается как внешняя обработка.
- Даёт меньше возможностей.
Предлагаю начать с портативного, а если захочется большего — перейти к основному варианту.
Скачиваем архив инструментов
Внимание! Если есть возможность — качаем прямо с сайта Сергея, вот ссылка.
И только, если его сайт не работает — вот зеркало инструментов на моём сайте:
Инструменты разработчика 5.25 (Старых Сергей, 1С 8.2, 8.3)
Распаковываем архив
Распаковываем скачанный архив, например, в папку «Инструменты разработчика» на рабочем столе:
Открывать из своей базы нужно именно обработку «ирПортативный.epf». Это меню инструментов и уже через него мы будем открывать все остальные обработки:
Запускаем инструменты
Через меню Файл->Открыть запустите обработку «ирПортативный.epf» (подробнее здесь Я скачал обработку, как мне её открыть в 1C?):
Готово:
Подводите мышку к значкам и пробуйте, осваивайте нужные вам инструменты. При умелом использовании с их помощью можно творить чудеса!
Возможные проблемы
Портативные инструменты работают только на обычных формах. Это значит, что у вас не получится запустить их на клиенте в режиме управляемого приложения.
Для использования инструментов в такой базе — запускайте её с ключом /RunModeOrdinaryApplication, который запускает толстый клиент в обычном режиме, несмотря на настройки конфигурации и пользователя.
Если вы используете в качестве стартера обновлятор, то добиться этого эффекта можно:
- Выделив базу и нажав Ctrl + F3
- В открывшемся меню нажав кнопку [4] Толстый клиент (ОФ)
Как обновлять инструменты
Чтобы обновить портативные инструменты — нажмите на значок помощи на их панели:
В открывшемся окне воспользуйтесь кнопкой «Обновить на актуальную версию»:
Где можно посмотреть обучающие ролики
У Сергея есть свой канал на youtube с обучающими роликами по инструментам разработчика: ссылка
Благодарность
Хочу сказать громаднейшее спасибо Сергею за то, что он разрешил поделиться инструментами с аудиторией helpme1c.ru!
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Подсистема «Инструменты разработчика» 1C — Описание подсистемы
Описание подсистемы
Продукт представляет собой интегрированный в подсистему набор мощных инструментов разработчика на платформе 1С 8. На конференции Infostart Event Evolution 2013 подсистема получила награду «Лучшая разработка».
Варианты поставки
- Конфигурация (для объединения с вашей)
- Портативный (набор внешних обработок)
- Расширение (рекомендуемый для 8.3.11+ в режиме совместимости 8.3.9+)
Скачать последнюю версию варианта «Конфигурация» можно тут. Далее приводится его описание.
Поддерживаются клиентские приложения
- 32-битный толстый клиент (1cv8.exe), доступны все функции
- 32-битный тонкий клиент (1cv8c.exe), только для запуска 32-битного толстого клиента
- 64-битный толстый клиент (1cv8.exe), недоступны некоторые функции, ограничена работа контекстной подсказки
- 64-битный тонкий клиент (1cv8c.exe), только для запуска 64-битного толстого клиента
Поддерживаются режимы запуска
- толстый клиент обычное приложение
- толстый клиент управляемое приложение, недоступен в портативном варианте
- на стороне сервера доступно использование некоторых программных отладочных функций
Поддерживаются режимы конфигурации
- (для 8.3) «Режим использования синхронных вызовов расширений и внешних компонент» <> «Не использовать»
Поддерживаются варианты встроенного языка
- русский
- английский
Запуск в режиме «Обычное приложение»
Конфигурации под управляемое приложение часто вполне работоспособны и в режиме обычного приложения. У таких конфигураций установлен основной режим запуска «Управляемое приложение». Однако вы можете запустить для них обычное приложение любым их вариантов
- указав параметр командной строки /RunModeOrdinaryApplication
- установив пользователю базы свойство «Режим запуска» = «Обычное приложение»
- из конфигуратора в «Сервис/Параметры» указать режим запуска «Управляемое приложение и обычное приложение» и запускать команду «Начало отладки»/»Толстый клиент (обычное приложение)»
- из управляемого приложения выполнив команду подсистемы «Запустить обычное приложение» или формы базовой внешней обработки портативного варианта инструментов
Как найти нужный инструмент
В обычном приложении на панели инструментов подсистемы есть кнопка, открывающая список инструментов и общие настройки. В управляемом приложении та же форма открывается командой «Список инструментов и настройки».
Используя фильтр по названию, часто можно быстро найти нужный инструмент. Также можно прочитать описание каждого инструмента и нажать кнопку «Поиск по текстам интерфейса».
Как разобраться в море кнопок
В каждой немаленькой командной панели подсистемы есть кнопка «Структура командной панели» (продвинутый аналог «Все действия» в управляемой форме). Она позволяет искать по описанию кнопок.
Как разобраться в море элементов управления
В каждой немаленькой форме подсистемы, есть кнопка «Показать структуру формы» (далекий аналог «Изменить форму» в управляемой форме). Она позволяет искать по заголовкам и подсказкам элементов управления.
Копирование и вставка ссылок
Во всех управляемых формах конфигурации и в формах инструментов — во всех полях ввода и табличных полях подсистемы доступны команды копирования (CTRL+C/SHIFT+ALT+C) и вставки (SHIFT+ALT+V) ссылки. Демонстрация
В большинстве полей ввода подсистемы
- при вставке представлений ссылок документов выполняется поиск подходящего документа по номеру и дате из вставленного представления
- при вставке навигационных ссылок они заменяются на обычные ссылки
- при вставке представлений уникальных идентификаторов (например «<Объект не найден> (2491:bb0d84b6646fdfd3424fd266dd85544a)», «dd85544a-d266-424f-bb0d-84b6646fdfd8») выполняется преобразование уникального идентификатора в ссылку
Глобальное меню управляемых форм
Во всех управляемых формах конфигурации и в формах инструментов сочетание клавиш CTRL+ALT+E вызывает глобальное контекстное меню подсистемы. Его состав определяется текущими ячейкой/полем/строкой/таблицей/табличным документом/формой. Подробно познакомиться с ним можно в статье.
Так например выглядит состав этого меню при вызове в таблице динамического списка:
Флажок «Объекты на сервере»
Этот флажок присутствует во всех инструментах, выполняющих работу с объектами данных, и обеспечивает перенос всей работы с объектами на сервер, что позволяет избежать ряда ошибок в конфигурациях под управляемое приложение. В этом режиме на клиенте работа идет с имитаторами объектов данных, которые инкапсулируют серверные вызовы с выполнением операций с реальными объектами. Эти лишние действия несколько замедляют работу с объектами, поэтому отключайте этот режим, если у вас не возникают ошибки указанные выше ошибки. Режим состоит из набора приемов и ограничений:
- Создание объекта — Менеджер.Создать*() — ирОбщий.ОбъектБДПоКлючуЛкс()
- Получение существующего объекта — Ссылка.ПолучитьОбъект() — ирОбщий.ОбъектБДПоКлючуЛкс()
- Получение типа объекта — ТипЗнч(Объект) — ирОбщий.ТипОбъектаБДЛкс()
- Получение метаданных объекта — Объект.Метаданные() — Метаданные.НайтиПоТипу(ирОбщий.ТипОбъектаБДЛкс(Объект))
- Табличная часть имитируется таблицей значений и потому не имеет методов Выгрузить(), Загрузить()
Функция ирОбщий.ОбъектБДПоКлючуЛкс() возвращает структуру:
- Методы — ОбработкаОбъект с предопределенными свойствами и методами объекта (экспортные переменные и методы объектов отсутствуют)
- Данные — Структура, ТаблицаЗначений — данные объекта
Все обучающие видеоролики можно найти в моем youtube канале
Подсистема «Инструменты разработчика» 1C — Установка и обновление
Установка, обновление, удаление
Файл конфигурации подсистемы нужно объединять с целевой конфигурацией. Все объекты подсистемы имеют префикс «ир».
Установка подсистемы (первое объединение)
- Если ваша конфигурация находится на поддержке, то включите возможность изменения корня конфигурации. Это отключит возможность полностью автоматического обновления конфигурации от поставщика, однако оно будет очень простым.
- Запустите сравнение и объединение конфигураций.
- Снимите все пометки.
- Установите пометки по подсистеме «Инструменты разработчика» файла
- Если ваша конфигурация содержит БСП 2.3+, то снимите флажок с роли ирПравоАдминистрирование.
- Установите пометку на самой подсистеме «ИнструментыРазрабочика».
- Нажмите Выполнить
- Если желаете, подключите общие команды и справочники-команды к своим метаданным
- Добавьте роль ирРазработчик нужным пользователям инфобазы
Чтобы предоставить пользователю базы возможность полного использования подсистемы, ему нужно включить роль ирРазработчик.
Чтобы получить возможность программного использования инструментов при отладке под обычным пользователем, ему нужно на время отладки включить роль ирОтладкаПользователя.
Чтобы подключить команды подсистемы (в ветке «Общие команды») для толстого клиента управляемого приложения нужно в свойстве «Тип параметра команды» указать, для форм каких типов объектов целевой конфигурации они будут доступны.
Чтобы подключить команды подсистемы для обычного приложения нужно для справочников ирКоманда* во вводе на основании указать, для форм каких типов объектов целевой конфигурации они будут доступны.
Установка общая для всех вариантов
Если текущий пользователь ОС не является администратором или запуск приложения выполнен с контролем учетных записей (User acccount control), то для работы некоторых функций инструментов требуется зарегистрировать в ОС ряд COM компонент с помощью повышенных привилегий. Для этого необходимо запустить предприятие от имени администратора (run as administrator) и командой «Регистрация COM компонент (ИР)» открыть форму регистрации и нажать там Выполнить.
Обновление подсистемы (повторное объединение)
Проверить наличие обновлений можно в диалоге «О подсистеме». Там же можно и скачать новый файл поставки нажатием кнопку «Обновить на актуальную версию».
- Запустите сравнение и объединение конфигураций.
- Снимите все пометки.
- В настройках объединения установите флажок «Разрешить удаление объектов основной конфигурации».
- Установите пометки по подсистеме «Инструменты разработчика» файла
- Если ваша конфигурация содержит БСП 2.3+, то снимите флажок с роли ирПравоАдминистрирование.
- Если подключены общие команды или справочники-команды, то снимите пометки с их связующего свойства (Тип параметра или Ввод на основании)
- Установите пометку на самой подсистеме «ИнструментыРазрабочика», если она есть в списке отличий.
- Нажмите Выполнить
Удаление подсистемы
- Установить отбор по подсистеме «ИнструментыРазработчика»
- Удалить все общие команды, отчеты, обработки, общие формы, общие модули, общие макеты, группы команд, параметры сеанса, элементы стиля, роли
- Для справочников ирКомандаРедактироватьОбъект, ирОбъектыДляОтладки, ирАлгоритмы
- очистить список «является основанием для»
- удалить сами справочники
- Удалить общие картинки, кроме ирИнструментыРазработчика (ее конфигуратор пока не даст удалить)
- Удалить подсистему «ИнструментыРазработчика»
- Удалить общую картинку ирИнструментыРазработчика
Подсистема «Инструменты разработчика» 1C — Вариант Расширение
Вариант Расширение
Скачать последнюю версию можно тут или вместе с пустой базой тут или установщик тут
Несколько урезанный вариант подсистемы в виде расширения конфигурации. Будет полезен в тех случаях, когда менять конфигурацию базы неудобно.
Номер версии варианта Расширение образуется от номера версии варианта Подсистема, на базе которой он выпущен, путем приписывания справа латинских букв «e» (extension).
Особенности установки
Устанавливать и включать видимость для текущего пользователя удобнее всего через внешнюю обработку Установщик варианта Расширение. С помощью нее в частности можно одним кликом подключать расширение только в одном сеансе, что востребовано в продуктивных базах.
Подключите расширение к вашей базе на платформе 8.3.10+ (для клиент-серверных баз рекомендуется 8.3.12+) и режимом совместимости 8.3.9+. Снимите флажки «Безопасный режим» и «Защита от опасных действий». Как подключить расширение, можно узнать тут или тут. Если у пользователя есть право Администрирование и ТолстыйКлиент, но у него нет роли ирПользователь и у других пользователей базы нет роли ирРазработчик, то при входе ему добавляются роли ирРазработчик и ирПользователь и сеанс перезапускается. Если в общих настройках включить флажок «Добавлять роль ИР всем администраторам», то отсутствие роли ирРазработчик у других пользователей проверяться не будет. Также эти роли добавляются при указании параметра запуска «ВключитьИР». Управлять ролями заданными в расширении можно только в режиме клиентского приложения (например через инструмент «Редактор пользователей»).
При наличии в конфигурации БСП ниже чем 2.4 после добавления ролей расширения в профили групп доступа могут возникнуть проблемы с обновлением вспомогательных данных, т.к. там отсутствует поддержка ролей в расширениях. В качестве обхода проблемы можно использовать инструмент «Редактор пользователей» для добавления нужных ролей пользователям напрямую.
С помощью формы «Адаптация расширения» можно
- подключить параметризованные команды расширения ко всем объектам конфигурации
- сгенерировать роль ирВсеПрава
- подключить перехватчик создания внешних обработок БСП
- встраивать команду «Отладить отчет» в расширения форм отчетов
Эта форма автоматически открывается при первом запуске толстого клиента управляемого приложения.
Обновление
Самый простой способ корректно обновить инструменты при наличии интернета — в диалоге «О подсистеме» нажать кнопку «Обновить на актуальную версию».
Функции для отладки
Функции для отладки (От, Ис, Оп…) расположены в общем модуле ирОбщий. Чтобы их вызвать в отладчике, нужно в табло вычислить выражение «ирОбщий.<ИмяФункции>Лкс(<Параметры>)». Посмотреть это выражение можно в окне «Список инструментов и общие настройки».
Отложенная отладка обеспечивается за счет сохранения снимков в каталог объектов для отладки, задаваемый в общих настройках инструментов.
Недостатки по сравнению с подсистемой:
- Недоступны
- Справочник «Алгоритмы» (вместо него используются файлы)
- Справочник «Объекты для отладки» (вместо него используются файлы)
- Справочник-команда «Редактировать объект»
- Невозможно запустить в базе, в конфигурации которой встроена подсистема «Инструменты Разработчика»(из-за конфликтов имен).
Выпуск из чистой подсистемы
- Откройте на платформе 8.3.10.2375+ в любой другой базе с подсистемой через интерфейсную панель общую форму «Выпуск варианта Расширение»
- Укажите в «Каталоге выпуска», куда помещать выпускаемый файл
- Закройте конфигуратор этой базы
- Нажмите Выполнить
Слабая интеграция с конфигурацией
Для необязательного программного обращения из вашей конфигурации к расширению (слабой интеграции) рекомендуется встроить общий модуль ирИнтерфейсДляВстраивания с переименованием в ирИнтерфейс. Этот модуль позволяет вызывать описанные в нем функции расширения из кода конфигурации. Все методы этого модуля имеют подробные комментарии, помогающие правильно их вызывать из вашей конфигурации. На текущий момент этот модуль позволяет
- Открывать редактирование в консоли кода текста алгоритма с параметрами из кода конфигурации
При обновлении этого варианта рекомендуется обновлять и встроенный в конфигурацию интерфейсный модуль.
Быстрый старт отладки запроса и компоновки
Инструменты разработчика или Почему вы не используете X? Часть 1 / Хабр
Я видел много примеров, где для совместной разработки использовали dropbox, для отладки приложения после каждой строчки вставляли print, для автоматических тестов писали свои велосипеды (признаюсь, я и сам все это делал).
Это не правильно!
Сейчас в распоряжении программиста, пишет он на Python, C++, Haskell или Ruby, есть огромное количество различных инструментов, которые он может использовать в повседневной разработке.
Компиляторы, интерпретаторы, отладчики, профилировщики, генераторы документации, системы контроля версий, текстовые редакторы, автоматизаторы сборки, статические анализаторы, эмуляторы и виртуальные машины — все это в нашем распоряжении!
Однако, как оказывается множество разработчиков просто не знают, какие мощные инструменты они могут использовать.
Если вам интересно, как улучшить свою продуктивность, начать писать программы лучше, да и просто почитать что-то интересное — добро пожаловать под кат!
Краткое введение
Вы используете текстовый редактор при программировании? Окей, слабый вопрос. Какой редактор Вы используете? Наверное он Вам нравится, в нем есть X, еще в нем очень здорово реализовано Y и в отличии от многих других редакторов, в нем нет этого дурацкого Z!
Окей, а Вы используете профилировщик, чтобы улучшить производительность своего приложения?
Как нет?
А Вы используете систему контроля версий, чтобы следить за изменениями, иметь резервную копию кода где-нибудь на BitBucket или предоставлять общий доступ к нему на GitHub?
Опять нет?
А Вы используете все возможности стандартной библиотеки (или даже сторонних) Вашего языка?
Вы все-еще пишете велосипеды?
Настало время это закончить!
В данной статье (даже цикле статей) я расскажу о тех инструментах для программирования и разработки, о которых узнавал за последние 7 лет и самое главное — продолжаю узнавать!
Цикл разделен на несколько частей — в первых частях я напишу про те инструменты, которые необходимо знать КАЖДОМУ, я имею ввиду ВООБЩЕ КАЖДОМУ разработчику. Это насколько полезные штуки, что не знать о них — преступление.
В заключительной части я опишу несколько инструментов, которые либо не стоят внимания по отдельности, либо являются узкоспециализированными (да, они для этих лысых ученых), либо косвенно относятся к программированию и разработке.
Система контроля версий
Система контроля версий (git, svn, hg, bazaar и их друзья) — один из самых важных инструментов, о котором, к моему сожалению очень многие не знают. Или знают, но не используют (боятся?).
Недостатки от неведения:
— Вы держите кучу старых версий в разных папках
— Вы боитесь «испортить» исходный код, следовательно боитесь экспериментировать
— Вы выкладываете исходный код в общий доступ в архиве
— При совместной разработке Вы вручную совмещаете изменения, внесенные разными разработчиками
— Вы бекапите исходный код
Зачем Вам система контроля версий:
— Вы сможете вести учет разных версий вашего проекта
— У Вас появится возможность экспериментировать и не бояться за исходный код
— У Вас будет четкое знание обо всех изменениях прошедших с версии X по версию Y
— Вы сможете легко вести совместную разработку (2, 3, 10, 1000 человек)
— Заведя репозиторий на каком-нибудь сервисе, вроде github, bitbcket или sourceforge у Вас будет бесплатный бекап на надежном внешнем сервере
Описание:
Сам я использую git, реже bazaar и Вам собственно советую начать с git. Ну а если Вы любите копаться в деталях и Вам нравится находить все подходящее на 100%, то вот небольшое введение.
Во-первых системы контроля версий делятся на централизованные и распределенные. В целом у обоих есть преимущества и отличий между ними много, но главное отличие в том, что с распределенными удобнее работать без постоянной связи с интернетом.
Короче, вот небольшое описание самых популярных систем, выберите что-нибудь и, пожалуйста, начните уже использовать!
Git (выберите его!) — одна из самых популярных систем, удобный, быстрый, распределенный, имеет хорошую поддержку и очень хорошие хостинги для репозиториев — GitHub, Bitbucket и тысячу других. Используется кучей OpenSource проектов.
Subversion (svn, только не его!) — одна из лучших централизованных систем, тоже очень популярна, если хотите долго мучаться в предсмертной агонии — попробуйте. Я конечно шучу, может и есть такие извращенцы, кому svn нравится.
Darcs — если Вы фанат Haskell — можете попробовать продукт на Вашем любимом языке, в остальном ничего примечательного.
Mercurial — часто позиционируется как альтернатива Git и на самом деле по многим параметрам лучше его, если Вы раньше использовали Git, попробуйте, хуже не будет.
Bazaar — очень интересный проект, пока еще сыроват, для начала я его не буду рекомендовать, но если опыт уже есть, возможно Bazaar станет вашей любимой системой контроля версий.
Окей, есть и другие системы контроля версий, но я не буду углубляться, есть все-таки гугл, да и вообще статей на эту тему было написано очень много, главное — начните использовать эту штуку.
Поехали дальше!
Профилировщик
Это must use инструмент №2, про который должен знать каждый программист. Вообще по-сути лучше это было бы назвать «Инструменты по анализу производительности».
В чем суть? Вы написали приложение и Вам не нравится скорость его работы. Окей, разберем все по строчке и оптимизируем приложение, чтобы оно работало быстрее.
В чем проблемы? А их тут куча!
1. У нас ограничено время и мы хотели бы получить приемлемый уровень оптимизации за приемлемое време.
2. Если у Вы не учавствуйте в разработке оптимизирующего компилятора и если у Вас мозг меньше среднестатистического арбуза, Вы наврятли знаете особенности работы процессора, такие как предсказания переходов, а это один из способов улучшить производительность в разы.
Какое решение?
Инструменты производительности! В первую очередь это профилировщик, во вторую — более продвинутые средства.
Недостатки от неведения:
— Оптимизация отнимает много времени
— Вы не знаете где необходимо проводить оптимизацию
— Вы не можете точно оценить, насколько успешно было изменение
Зачем Вам профилирование?
— Вы будете быстрее и лучше проводить оптимизацию приложений
— Вы сможете увидеть слабые места Вашего приложения и сконцентрировать внимание на них
— Вы сможете узнать точную эффективность оптимизации и решить, нужна она или нет
Описание:
Вообще профилировщиков просто куча и обыно они языко-зависимые, так что если Вы пишете на Python, наврядли Вы сможете использовать gperf (однако, я могу и ошибаться).
Ладно. Вот небольшой список профилировщиков для разных языков:
Java — есть встроенные средства в NetBeans, библиотеки perf4j, jetm, JavaMelody, отдельные средства — YourKit, JProfiler.
С# — встроенные в Visual Studio средства, есть в mono из-коробки.
PHP — xDebug, XHProf.
C/C++ — всторенные средства в Visual Studio, Gperf, целый набор решений от Intel.
Python — hotspot, python profile, dowser.
JavaScript — YUI profiler, также можно использовать некоторые инструменты в браузере (в Chrome точно что-то такое было).
Другие языки — для других языков тоже есть профилировщики, многие встроены в компиляторы, скажем в GHC (компиляторе для Haskell) есть встроенный профилировщик.
Инструменты для углубленного профилирования
Главное — инструменты делятся на те, что измеряют использование процессорного времени и те, что измеряют использование памяти.
Дополнительно, могу сообщить, что для C/C++ и Fortran есть такая замечательная штука как Intel Parallel Studio который позволяет анализировать гигантское множество параметров, например узнать для каждой конструкции ветвления число неверно предсказанных переходов (если улучшить этот показатель, иногда с помощью простых махинаций с кодом можно получить прирост производительности в 2-3 раза и более).
Окей, надеюсь Вы поняли суть — когда дело дойдет до оптимизации, вспомните про профилирование, иначе даже не начинайте.
Поехали дальше!
REPL
Пожалуй одна из самых удобных и полезных вещей из списка. У меня установлено около 10 REPL-приложений для различных языков (большинство шли вместе с компиляторами/интерпретаторами) и я использую их ОЧЕНЬ часто. Особенно ghci, Haskell для серьезной разработки я знаю еще слишком плохо, но вот если мне вдруг нужно что-то быстро вычислить, я использую ghci как калькулятор для Богов. Я серьезно.
Недостатки от неведения:
— Для проверки какой-либо конструкции языка или его возможности Вы создаете полноценное тестовое приложение.
— Для вычисления значения какого-либо сложного выражения, Вы долго мучаетесь с калькулятором, вбиваете выражение в гугл или (обычно, если вычисления довольно-таки сложные) Вы опять-же создаете микро-приложение.
Зачем Вам REPL?
— У Вас будет испытательный полигон, который очень хорошо подходит для изучения языка, лучшего понимания некоторых его возможностей и просто для игрулек.
— У Вас будет невероятно мощный калькулятор, который может работать со строками, датами, рациональными числами, длинной арифметикой, да чем угодно!
Описание:
Итак, REPL — это приложение, которое организует цикл read-eval-print для какого-либо языка (интересно было бы посмотреть на REPL для сразу нескольких языков).
Что делает этот цикл?
Цикл считывает строчку кода, выполняет ее и выводит результат.
Пример — вычисление суммы первых 100 чисел фибоначи (для Haskell и ghci):
$ ghci
Prelude> let fibs@(_:t) = 1: 1: zipWith (+) fibs t
Prelude> sum $ take 100 fibs
927372692193078999175
Пример — число цифр в 10000! (Python):
$ python
>>> import math
>>> len(str(math.factorial(10000)))
35660
Ладно, надеюсь Вам понятно, что REPL — очень крутая штука (а еще больше надеюсь, что Вы поставили Haskell Platform).
Итак, вот список языков и REPL для них:
Java — Java RELP
С# — CsharpREPL
C++ — Cling
C — Crepl
С некоторыми другими языками (Python, Ruby, CoffeeScript, Haskell, Scala) REPL поставляется из-коробки, вместе с компилятором (или интерпретатором).
Ладно, дальше!
Заключение или Почему так мало?
Вообще, тема бездонная и мне хотелось бы написать намного больше. И я напишу. Однако я ставил себе целью уложить написание статьи в 8 часов (и время кончается), а саму статью — в 4 страницы (и место тоже кончается), так-что оставшиеся инструменты (а я не описал и одной десятой!), будут разобраны в других частях цикла.
Главное, что я хотел для Вас донести — сейчас множество программистов работают над тем, чтобы улучшить жизнь другим программистам. И грех не пользоваться их наработками в этой области.
Пишите код лучше и быстрее, пусть это не доставляет Вам больше неудобств, используйте все инструменты, что создавались специально для этого. Я надеюсь все инструменты создавались для того, чтобы их использовали.
И да, я надеюсь, что Вам понравилась статья и Вы извлекли из нее что-либо полезное.
Ждите следующую статью из цикла и удачи!
Подсистема «Инструменты разработчика» 1C — консоль запросов
Консоль запросов
- для программного вызова (отладки запроса) служит функция Отладить(Запрос, *Модально) или коротко От(Запрос) для использования в точке останова, при этом запрос открывается (на сервере предварительно сохраняется в снимок) в консоли с сохранением работоспособности, включая параметры и временные таблицы
- поддержка типов запросов
- Обычный (1С)
- Построитель (1С)
- Компоновка (1С)
- WQL (WMI)
- ADO
- поддержка пакетных запросов
- поддержка временных таблиц
- конструктор запроса и контекстная подсказка «понимают» типы полей существующих временных таблиц
- автоматический вывод содержимого созданной временной таблицы
- возможность использования постоянного менеджера временных таблиц
- дерево запроса — режим структурного представления текста запроса, позволяющий работать с целостными фрагментами запроса и сразу видеть использованные в запросе таблицы
- включается из командной панели формы
- для работы режима дерева запроса требуется регистрация
COM-компоненты GoldParser.DLL, которая выполняется автоматически - Понимает любые синтаксически правильные тексты
- режим сворачивания вложенных запросов в тексте
- работает и для чужеродных (с неизвестными
метаданными) запросов - колонка «Длительность чистая», вычисляемая как длительность полная, уменьшенная на сумму длительностей всех дочерних подзапросов, облегчает локализацию долгих операций в дереве
- возможность выполнить все подзапросы текущего узла
- функции для преобразования текста запроса
- Вынести в новый запрос
- Преобразовать в подзапрос
- понимает имена запросов и частей объединений расставленные в комментариях вида «{Запрос: <Имя>» и «{Выборка: <Имя>»
- в дереве запросов и в дереве запроса фиксируется длительность и число строк результата последнего выполнения
- в дереве запросов скрытая по умолчанию колонка «Возраст выполнения, минут»
- сохранение и восстановление позиции текущей строки в дереве запросов
- Редактор текста запроса
- кнопка для открытия конструктора запроса ИР
- кнопка для открытия стандартного конструктора запроса
- контекстная подсказка (если имеются вложенные запросы, то для улучшения ее работы лучше включать режим дерева запроса)
- кнопка «Вставить ссылку на объект БД» для удобной вставки ссылки на любой объект в виде параметра
- кнопка «Копировать текст в буфер обмена в виде выражения встроенного языка»
- Подменю установки генерируемого текста
- Все типы ссылок
- Даты за период
- Объединение сcылочных таблиц
- Объединение cсылочных таблиц изменений
- вывод результата в
- Таблица значений
- Дерево значений
- Сводная таблица
- передача выбранных данных из результата в другие инструменты
- Подбор и обработка объектов
- Поиск дублей и замена ссылок
- замер времени выполнения
- параметры запроса
- типы параметров
- значение
- список
- выражение, редактор с контекстной подсказкой
- выражение СКД, редактор с контекстной подсказкой
- кнопка вычисления параметров
- кнопка заполнения параметров по тексту
- копирование выбранных параметров между запросами путем их перетаскивания на строку дерева запросов
- кнопка Период добавляет группу параметров для задания интервала времени только при первом
нажатии, а при повторном открывает диалог редактирования периода
- типы параметров
- настройка динамического отбора и порядка в режиме компоновки (в режиме
построителя поддерживается настройка только отбора и только с 11-го релиза)- просмотр результирующего запроса
- открытие сгенерированной по запросу компоновки в консоли компоновки
- обработчики «перед выполнением», «обработка строки результата» и «обработка результата» с контекстной подсказкой с возможностью отладки в
штатном отладчике платформы через выполнение в консоли кода через
динамическую внешнюю обработку - переход (по F12) к определению таблицы или во вложенный запрос в режиме
дерева запроса - Над коллекцией результата информационное поле с длительностью выборки данных
- Рядом с коллекцией результата сворачиваемая таблица свойств строки с указанием типов значений
- пошаговое выполнение пакетного запроса (по F10)
- для коллекции результата предусмотрен режим частичной
загрузки, включаемый автоматически, если выборка превышает порог (по умолчанию 100000 строк), и загружает первую ее часть. Кнопка «Загрузить» загружает
выборку полностью - в командной панели таблицы результата переключатель «Показывать подвал с итогами»
- Интерактивное помещение во временную таблицу
- текущего результата типа Таблица
- результатов ветки запросов в дереве запросов
- Закладка «Выборки итогов» запроса для управления обходом выборок в дерево значений и служебными колонками
- Выборка
- Уровень
- Число потомков
- Группировка
- Имя группировки
- генераторы текста модуля для обработчиков результата и строки таблицы результата
- кнопка «Трасса» для анализа трассы выполненного запроса в инструменте «Анализ техножурнала»
- Кнопка «Статистика MSSQL» для открытия инструмента Статистка по запросам MSSQL с передачей интервала последнего выполнения запроса
- восстановление сессии консоли после ее нештатного прерывания (например аварийного)
- поддержка WQL
- поддержка ADO
- типы источников
- MSSQL
- MSVisualFoxPro
- DB2
- Oracle
- Postgres SQL
- MSJet
- MySQL
- опция аутентификации ОС при подключении к MS SQL
- типы источников
Дерево запроса
Имена запросов и частей объединений в дереве запроса
Wiki — Инструменты разработчика Tormozit для 1С
Продукт представляет собой интегрированный в подсистему набор мощных инструментов разработчика на платформе 1С 8. На конференции Infostart Event Evolution 2013 подсистема получила награду «Лучшая разработка».
Варианты поставки¶
- Конфигурация (для объединения с вашей) — файл с расширением «cf»
- Расширение (рекомендуемый для 8.3.11+) — файл с расширением «cfe»
- Портативный (набор внешних обработок) — файл с расширением «zip»
Скачать их можно в разделе Файлы . Далее приводится описание варианта Конфигурация.
Поддерживаются клиентские приложения¶
- 32-битный толстый клиент (1cv8.exe), доступны все функции
- 32-битный тонкий клиент (1cv8c.exe), только для запуска 32-битного толстого клиента
- 64-битный толстый клиент (1cv8.exe), недоступны некоторые функции, ограничена работа контекстной подсказки
- 64-битный тонкий клиент (1cv8c.exe), только для запуска 64-битного толстого клиента
Поддерживаются режимы запуска¶
- толстый клиент обычное приложение (основной режим)
- толстый клиент управляемое приложение, «Использовать обычные формы в управляемом приложении» = Истина, недоступен в портативном варианте
- на стороне сервера доступно использование некоторых программных отладочных функций
Поддерживаются режимы конфигурации¶
- (для 8.3) «Режим использования синхронных вызовов расширений и внешних компонент» «Не использовать»
Поддерживаются варианты встроенного языка¶
- русский
- английский
Запуск в режиме «Обычное приложени延
Конфигурации под управляемое приложение часто вполне работоспособны и в режиме обычного приложения. У таких конфигураций установлен основной режим запуска «Управляемое приложение». Однако вы можете запустить для них обычное приложение любым их вариантов
- указав параметр командной строки /RunModeOrdinaryApplication
- установив пользователю базы свойство «Режим запуска» = «Обычное приложение»
- из конфигуратора в «Сервис/Параметры» указать режим запуска «Управляемое приложение и обычное приложение» и запускать команду «Начало отладки»/»Толстый клиент (обычное приложение)»
- из управляемого приложения выполнив команду подсистемы «Запустить обычное приложение» или формы базовой внешней обработки портативного варианта инструментов
Как найти нужный инструмент¶
В обычном приложении на панели инструментов подсистемы есть кнопка, открывающая список инструментов и общие настройки. В управляемом приложении та же форма открывается командой «Список инструментов и настройки».
Используя фильтр по названию, часто можно быстро найти нужный инструмент. Также можно прочитать описание каждого инструмента и нажать кнопку «Поиск по текстам интерфейса».
Как разобраться в море кнопок¶
В каждой немаленькой командной панели подсистемы есть кнопка $IMAGE1$ «Структура командной панели» (продвинутый аналог «Все действия» в управляемой форме). Она позволяет искать по описанию кнопок.
Как разобраться в море элементов управления¶
В каждой немаленькой форме подсистемы, есть кнопка $IMAGE4$ «Показать структуру формы» (далекий аналог «Изменить форму» в управляемой форме). Она позволяет искать по заголовкам и подсказкам элементов управления.
Копирование и вставка ссылок¶
Во всех полях ввода и табличных полях подсистемы доступны команды Копирования (SHIFT+ALT+C) и Вставки (SHIFT+ALT+V) ссылки. Демонстрация
В большинстве полей ввода подсистемы¶
- при вставке представлений ссылок документов выполняется поиск подходящего документа по номеру и дате из вставленного представления
- при вставке навигационных ссылок они заменяются на обычные ссылки
- при вставке представлений уникальных идентификаторов (например » (2491:bb0d84b6646fdfd3424fd266dd85544a)», «dd85544a-d266-424f-bb0d-84b6646fdfd8») выполняется преобразование уникального идентификатора в ссылку
Глобальные команды управляемых форм¶
В непортативных вариантах во всех управляемых формах (не ограничиваясь подсистемой), открытых не в режиме «Блокировать владельца», сочетание клавиш CTRL+ALT+E вызывает контекстное меню выбора глобальной команды подсистемы. Его состав определяется текущими ячейкой/полем/строкой/таблицей/табличным документом/формой. Доступные глобальные команды:
"Редактировать объект"
"Открыть объект"
"Обработать выделенные объекты"
"Открыть различные значения колонки"
"Сравнить данные"
"Открыть таблицу"
"Настроить список"
"Отладить компоновку данных"
"Структура формы"
Так например выглядит состав этого меню при вызове в таблице динамического списка:
Флажок «Объекты на сервер延
Этот флажок присутствует во всех инструментах, выполняющих работу с объектами данных, и обеспечивает перенос всей работы с объектами на сервер, что позволяет избежать ряда ошибок в конфигурациях под управляемое приложение. В этом режиме на клиенте работа идет с имитаторами объектов данных, которые инкапсулируют серверные вызовы с выполнением операций с реальными объектами. Эти лишние действия несколько замедляют работу с объектами, поэтому отключайте этот режим, если у вас не возникают ошибки указанные выше ошибки. Режим состоит из набора приемов и ограничений:
- Создание объекта — Менеджер.Создать*() — ирОбщий.ОбъектБДПоКлючуЛкс()
- Получение существующего объекта — Ссылка.ПолучитьОбъект() — ирОбщий.ОбъектБДПоКлючуЛкс()
- Получение типа объекта — ТипЗнч(Объект) — ирОбщий.ТипОбъектаБДЛкс()
- Получение метаданных объекта — Объект.Метаданные() — Метаданные.НайтиПоТипу(ирОбщий.ТипОбъектаБДЛкс(Объект))
- Табличная часть имитируется таблицей значений и потому не имеет методов Выгрузить(), Загрузить()
Функция ирОбщий.ОбъектБДПоКлючуЛкс() возвращает структуру:
- Методы — ОбработкаОбъект с предопределенными свойствами и методами объекта (экспортные переменные и методы объектов отсутствуют)
- Данные — Структура, ТаблицаЗначений — данные объекта
Разработка в подсистеме Windows для Linux с Visual Studio Code
Расширение Visual Studio Code Remote — WSL позволяет вам использовать подсистему Windows для Linux (WSL) в качестве постоянной среды разработки прямо из VS Code. Вы можете разрабатывать в среде на основе Linux, использовать специальные инструменты и утилиты для Linux, а также запускать и отлаживать приложения на основе Linux, не выходя из Windows.
Расширение запускает команды и другие расширения непосредственно в WSL, поэтому вы можете редактировать файлы, расположенные в WSL или смонтированной файловой системе Windows (например, / mnt / c
), не беспокоясь о проблемах с путями, двоичной совместимости или других проблемах между ОС.
Это позволяет VS Code обеспечить локальное качество разработки. — включая полную IntelliSense (завершение), навигацию по коду и отладку — независимо от того, где размещен ваш код .
Начало работы
Примечание : Изучив этот раздел, вы можете начать работу с вводным руководством по WSL.
Установка
Для начала вам необходимо:
Установите подсистему Windows для Linux вместе с предпочитаемым дистрибутивом Linux.
Примечание. WSL 1 имеет некоторые известные ограничения для определенных типов разработки. Кроме того, расширения, установленные в Alpine Linux, могут не работать из-за
зависимостей glibc
в собственном исходном коде внутри расширения. Подробнее см. Статью «Удаленная разработка и Linux».Установите код Visual Studio на стороне Windows (не в WSL).
Примечание: Когда будет предложено Выбрать дополнительные задачи во время установки, обязательно отметьте опцию Добавить в PATH , чтобы вы могли легко открыть папку в WSL с помощью команды
code
.Установите пакет расширений удаленной разработки.
Открыть удаленную папку или рабочее пространство
От терминала WSL
Открытие папки внутри подсистемы Windows для Linux в VS Code очень похоже на открытие папки Windows из командной строки или PowerShell.
Откройте окно терминала WSL (используя пункт меню «Пуск» или набрав
wsl
в командной строке / PowerShell).Перейдите в папку, которую вы хотите открыть в VS Code (включая, помимо прочего, монтирование файловой системы Windows, например
/ mnt / c
)Тип Код
.
в терминале. Когда вы делаете это в первый раз, вы должны увидеть компоненты выборки VS Code, необходимые для запуска в WSL. Это займет немного времени и понадобится только один раз.Примечание: Если эта команда не работает, возможно, вам потребуется перезагрузить терминал или вы не добавили код VS в свой путь при его установке.
Через мгновение появится новое окно VS Code, и вы увидите уведомление о том, что VS Code открывает папку в WSL.
VS Code теперь продолжит настраиваться в WSL и будет держать вас в курсе по мере продвижения.
После завершения вы увидите индикатор WSL в нижнем левом углу, и вы сможете использовать VS Code, как обычно!
Вот и все! Любые операции VS Code, которые вы выполняете в этом окне, будут выполняться в среде WSL, от редактирования и файловых операций до отладки, использования терминалов и т. Д.
Из VS Код
Кроме того, вы можете открыть окно удаленного WSL прямо из VS Code:
- Запустить VS Code.
- Нажмите F1, выберите Remote-WSL: новое окно для дистрибутива по умолчанию или Remote-WSL: новое окно с использованием Distro для определенного дистрибутива.
- Используйте меню «Файл», чтобы открыть папку.
Если у вас уже есть открытая папка, вы также можете использовать команду Remote-WSL: повторно открыть в WSL .Вам будет предложено, какой дистрибутив использовать.
Если вы находитесь в окне WSL и хотите открыть текущий ввод в локальном окне, используйте Remote-WSL: повторно открыть в Windows .
Из командной строки Windows
Чтобы открыть окно WSL непосредственно из командной строки Windows, используйте параметр командной строки --remote
:
код --remote wsl + <имя дистрибутива> <путь в WSL>
например: код --remote wsl + Ubuntu / home / jim / projects / c
Работа с Git
Если вы работаете с одним и тем же репозиторием в WSL и Windows, обязательно установите согласованные окончания строк.См. Подробности в советах и приемах.
Вы также можете избежать паролей, настроив WSL для использования диспетчера учетных данных Windows Git. См. Подробности в советах и приемах.
Управление добавочными номерами
VS Code запускает расширения в одном из двух мест: локально на стороне пользовательского интерфейса / клиента или в WSL. Хотя расширения, которые влияют на пользовательский интерфейс VS Code, такие как темы и фрагменты, устанавливаются локально, большинство расширений будут находиться внутри WSL.
Если вы устанавливаете расширение из представления «Расширения», оно будет автоматически установлено в правильном месте.После установки вы можете определить, где установлено расширение, на основе группировки категорий. Будет Local — Installed, категория и одна для WSL.
Примечание: Если вы являетесь автором расширения, и ваше расширение не работает должным образом или устанавливается не в том месте, см. Раздел «Поддержка удаленной разработки».
Локальные расширения, которые действительно необходимо запускать удаленно, будут недоступны в категории Локальный — Установлено .Выберите Install , чтобы установить расширение на удаленный хост.
Вы также можете установить все локально установленные расширения внутри WSL, перейдя в представление Extensions и выбрав Install Local Extensions in WSL: [Name] , используя облачную кнопку справа от строки заголовка Local — Installed . Появится раскрывающийся список, в котором вы можете выбрать, какие локально установленные расширения установить в свой экземпляр WSL.
Открытие терминала в WSL
Открыть терминал в WSL из VS Code очень просто.После открытия папки в WSL любое окно терминала , которое вы открываете в VS Code ( Terminal> New Terminal ), будет автоматически запускаться в WSL, а не локально.
Вы также можете использовать командную строку code
из того же окна терминала для выполнения ряда операций, таких как открытие нового файла или папки в WSL. Введите код --help
, чтобы узнать, какие параметры доступны в командной строке.
Отладка в WSL
Открыв папку в WSL, вы можете использовать отладчик VS Code так же, как и при локальном запуске приложения.Например, если вы выберете конфигурацию запуска в launch.json
и начнете отладку (F5), приложение запустится на удаленном хосте и подключит к нему отладчик.
Подробную информацию о настройке функций отладки VS Code см. В документации по отладке в .vscode / launch.json
.
Специальные настройки WSL
Локальные пользовательские настройки
VS Code также повторно используются, когда вы открываете папку в WSL. Хотя это обеспечивает единообразие вашего взаимодействия с пользователем, вы можете изменить некоторые из этих параметров на локальном компьютере и на WSL.К счастью, после подключения к WSL вы также можете установить конкретные параметры WSL, запустив Preferences: Open Remote Settings command из Command Palette (F1) или выбрав вкладку Remote в редакторе настроек. Они переопределят любые локальные настройки, которые у вас есть, всякий раз, когда вы открываете папку в WSL.
Дополнительно: сценарий настройки среды
Когда VS Code Remote запускается в WSL, сценарии запуска оболочки не запускаются. Это было сделано, чтобы избежать проблем со сценариями запуска, настроенными для оболочек.Если вы хотите выполнить дополнительные команды или изменить среду, это можно сделать в сценарии установки ~ / .vscode-server / server-env-setup
(Insiders: ~ / .vscode-server-insiders / server-env- установка
). Если присутствует, сценарий обрабатывается до запуска сервера.
Сценарий должен быть допустимым сценарием оболочки Bourne. Имейте в виду, что неправильный сценарий не позволит серверу запуститься. Если вы получите сценарий, который не позволяет серверу запускаться, вам придется использовать обычную оболочку WSL и удалить или переименовать сценарий установки.
Проверьте журнал WSL (удаленный WSL: открыть журнал WSL) на предмет вывода и ошибок.
Дополнительно: открытие папки WSL 2 в контейнере
Если вы используете серверную часть WSL 2 и Docker Desktop WSL 2, вы можете использовать расширение Remote — Containers для работы с исходным кодом, хранящимся внутри WSL! Просто выполните следующие действия:
Установите и настройте поддержку WSL 2 Docker Desktop, если вы еще этого не сделали.
Совет: Перейдите в Настройки > Ресурсы> Интеграция с WSL и включите интеграцию Docker с распространением WSL, которое вы будете использовать.
Если вы еще этого не сделали, установите расширение Remote — Containers вместе с расширением WSL.
Затем откройте папку с исходным кодом в WSL, как обычно.
Когда ваша папка откроется в WSL, выберите Удаленные контейнеры: повторно открыть папку в контейнере на панели команд (F1).
Если в папке нет файла
.devcontainer / devcontainer.json
, вам будет предложено выбрать начальную точку из фильтруемого списка или существующего файла Dockerfile или Docker Compose (если он существует).Окно VS Code (экземпляр) перезагрузится и начнет сборку контейнера разработчика. Уведомление о ходе выполнения предоставляет обновления статуса.
После завершения сборки VS Code автоматически подключится к контейнеру.Теперь вы можете работать с исходным кодом из контейнера.
Дополнительную информацию см. В документации Remote — Containers.
Известные ограничения
В этом разделе содержится список известных проблем с WSL. Цель состоит не в том, чтобы предоставить полный список проблем, а в том, чтобы выделить некоторые из общих проблем, наблюдаемых с WSL.
См. Здесь список активных проблем, связанных с WSL.
Я вижу EACCESS: ошибка отказа в разрешении при попытке переименовать папку в открытой рабочей области в WSL 1
Это известная проблема с реализацией файловой системы WSL (Microsoft / WSL # 3395, Microsoft / WSL # 1956), вызванная наблюдателем за файлами, активным VSCode.Проблема будет исправлена только в WSL 2.
Чтобы избежать этой проблемы, установите для remote.WSL.fileWatcher.polling
значение true. Однако просмотр файлов на основе опроса влияет на производительность для больших рабочих пространств.
Для большой рабочей области вы хотите увеличить интервал опроса: remote.WSL.fileWatcher.pollingInterval
и контролировать просматриваемые папки: files.watcherExclude
.
WSL 2 не имеет этой проблемы с файловым наблюдателем, на нее также не влияет новый параметр.
Голанг в WSL 1
Node.js в WSL 1
Ограничения Git
Если вы клонируете репозиторий Git с помощью SSH и ваш SSH-ключ имеет парольную фразу, функции извлечения и синхронизации VS Code могут зависнуть при удаленном запуске. Либо используйте SSH-ключ без ключевой фразы, либо клонируйте с помощью HTTPS, либо запустите git push
из командной строки, чтобы обойти проблему.
Ограничения расширения Docker
Хотя расширение Docker может работать как удаленно, так и локально, если оно уже установлено локально, вы не сможете установить его на удаленный хост SSH, не удалив его предварительно локально.Мы рассмотрим эту проблему в будущем выпуске VS Code.
Ограничения на расширение
Многие расширения будут работать в WSL без изменений. Однако в некоторых случаях некоторые функции могут потребовать изменений. Если вы столкнулись с проблемой расширения, см. Здесь сводку распространенных проблем и решений, которые вы можете упомянуть автору расширения при сообщении о проблеме.
Кроме того, некоторые расширения, установленные в WSL при использовании дистрибутива на базе Alpine Linux, могут не работать из-за зависимостей glibc
в собственном коде внутри расширения.Подробнее см. Статью «Удаленная разработка с Linux».
Общие вопросы
Почему меня просят изменить дистрибутив по умолчанию?
При использовании Remote-WSL: новое окно с использованием Distro и запущенном на WSL старше Windows 10, May 2019 Update (версия 1903) вам будет предложено переключить дистрибутив по умолчанию , поскольку команда WSL может работать только по умолчанию distro, так как он еще не поддерживает опцию -d
.
Вы всегда можете вручную переключить дистрибутив по умолчанию с помощью wslconfig.исполняемый файл.
Например:
wslconfig / setdefault Ubuntu
Вы можете увидеть, какие дистрибутивы вы установили, используя:
wslconfig / л
Я вижу ошибку об отсутствующей библиотеке или зависимости
Некоторые расширения полагаются на библиотеки, которых нет в стандартной установке некоторых дистрибутивов WSL Linux. Вы можете добавить дополнительные библиотеки в свой дистрибутив Linux, используя его диспетчер пакетов. Для дистрибутивов на основе Ubuntu и Debian запустите sudo apt-get install
, чтобы установить необходимые библиотеки.Дополнительные сведения об установке см. В документации по расширению или упомянутой среде выполнения.
Каковы требования к подключению для расширения Remote — WSL?
Удаленный — расширение WSL и VS Code Server требуют исходящего HTTPS (порт 443) подключения к:
-
update.code.visualstudio.com
-
marketplace.visualstudio.com
-
vscode.blob.core.windows.net
-
*.vo.msecnd.net
(Azure CDN) -
* .gallerycdn.vsassets.io
(Azure CDN)
Некоторые расширения (например, C #) загружают вторичные зависимости с download.microsoft.com
или download.visualstudio.microsoft.com
. Другие (например, Visual Studio Live Share) могут иметь дополнительные требования к подключению. Если у вас возникнут проблемы, обратитесь к документации по расширению.
Все остальное взаимодействие между сервером и клиентом VS Code осуществляется через случайный локальный порт TCP.Вы можете найти список мест, к которым сам VS Code должен получить доступ, в статье о сетевых подключениях.
Я использую прокси-сервер и у меня проблемы с подключением
Настройки прокси
могут отсутствовать на стороне Windows или WSL.
Когда удаленное окно открывается из VSCode, расширение Remote — WSL пытается загрузить сервер VSCode на стороне Windows. Поэтому он использует конфигурацию прокси на стороне окна:
Когда удаленный VSCode запускается с терминала WSL, загрузка выполняется с помощью wget
в дистрибутиве WSL.Настройки прокси можно настроить в:
После того, как сервер запущен и работает, используются настройки прокси на вкладке Remote .
Могу ли я принудительно запустить расширение локально / удаленно?
Расширения
обычно разрабатываются и тестируются для работы локально или удаленно, но не для обоих одновременно. Однако, если расширение поддерживает его, вы можете принудительно запустить его в определенном месте в файле settings.json
.
Например, параметр ниже заставит расширение Docker запускаться локально, а расширение Debugger for Chrome — запускаться удаленно вместо значений по умолчанию:
"пульт.extensionKind ": {
"ms-azuretools.vscode-docker": ["ui"],
"msjsdiag.debugger-for-chrome": ["рабочая область"]
}
Значение "ui"
вместо "workspace"
заставит расширение вместо этого запускаться на стороне локального пользовательского интерфейса / клиента. Как правило, это следует использовать только для тестирования, если иное не указано в документации расширения, поскольку это может нарушить расширения . См. Статью о поддержке удаленной разработки.
Что мне нужно делать, как автору расширения?
API расширения VS Code абстрагирует локальные / удаленные детали, поэтому большинство расширений будут работать без изменений.Однако данные расширения могут использовать любой модуль узла или среду выполнения, которую они хотят, бывают ситуации, когда может потребоваться корректировка. Мы рекомендуем вам протестировать свое расширение, чтобы убедиться, что никаких обновлений не требуется. Подробнее см. Поддержка удаленной разработки.
Вопросы или отзывы
10.09.2020
.
Зависимости подсистем
В следующей таблице описаны зависимости подсистем. Когда вы включаете подсистему в свое приложение, также включайте все подсистемы, от которых она зависит, и три обязательные подсистемы:
Подсистема | Зависит от |
Управление доступом (***) | |
Дополнительные отчеты и обработчики данных (***) | Распечатать |
Классификатор адресов | Контакты (*) Получать файлы из Интернета |
Прикрепленные файлы | Файловые функции |
Расписания календаря | |
Компании | Контакты (*) |
Контакты | Классификатор адресов (*) Настройка порядка товаров |
Валюты (***) | Получать файлы из Интернета |
Обмен данными (***, ****) | Электронная почта Получить файлы из Интернета (*) Префикс объекта (*) Запланированные задания (*) |
Контроль динамического обновления конфигурации | |
Электронная почта | |
Файловые функции (**, ***) | |
Полнотекстовый поиск | |
Получать файлы из Интернета | |
Настройка порядка товаров | |
Законная проверка программного обеспечения | |
Запрет на редактирование атрибутов объекта | |
Префикс объекта | |
Управление версиями объекта | |
Монитор производительности | |
Распечатать | Электронная почта Прикрепленные файлы (*) Дополнительные отчеты и обработчики данных (*) |
Свойства | Запрет на редактирование атрибутов объекта |
Запланированные задания | |
Пользовательские сеансы | |
График работы | Расписания календарей |
* Это не строгая зависимость.Вы можете включить подсистему в свое приложение, не включая подсистему, от которой она зависит (при условии, что вы правильно настроили включенную подсистему).
** Подсистема Файловые функции не может быть включена в приложение самостоятельно. Всегда включайте его вместе с подсистемой Прикрепленные файлы .
*** Если ваше приложение предназначено для работы в режиме SaaS, когда вы включаете подсистему, также включите соответствующую подсистему с постфиксом SaaS .Пример: если вы включаете подсистему Currencies , также включаете подсистему Currencies SaaS .
**** Подсистема обмена данными является обязательной для приложений, которые поддерживают обмен данными в распределенной информационной базе.
Перейти на следующую страницу: Универсальные обработчики отчетов и данных
.