Занимательный PowerShell

16.05.21

Разработка - Языки и среды

PowerShell. Что, зачем, как и почему? И причем тут 1С?

Что это и зачем

PowerShell - это средство автоматизации от компании Microsoft с открытым исходным кодом, которое поддерживается в Windows, Linux, MacOS и даже под ARM. Представляет из себя объектно-ориентированный программный движок и скриптовый язык с интерфейсом командной строки.

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

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

Фактически, статья показывает как начать разработку скриптов на PowerShell, с каких материалов можно начать и дает примеры скриптов для старта.

Немного об установке

Процесс установки PowerShell различается в зависимости от ОС, ее версии и т.д. Подробнее об установке и обновлении текущих версий рекомендую посмотреть официальную документацию.

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

Подробно расписывать шаги установки смысла нет - посмотрите ссылку выше. Там подробная инструкция как для Windows, так и для Linux.

Инструментарий

Еще немного хотелось бы сказать об инструментах для работы с PowerShell. В составе Windows с древних времен идет среда разработки "Windows PowerShell ISE", которой, конечно, можно пользоваться и сейчас. Но даже по внешнему виду можно понять, что она достаточно архаично выглядит, да и большинства удобств современных IDE там просто не найти. Поэтому лучший выбор - это использование Visual Studio Code.

Достаточно установить расширение "PowerShell" и Вы получите отладку, удобный редактор с автоподсказками и многое другое. В статье "Использование Visual Studio Code для разработки в PowerShell" можно найти подробное описание что и как устанавливать, чтобы получить рабочую среду разработки. Также там есть описание дополнительных шагов настройки, которые в некоторых случаях могут понадобиться. Все вышесказанное актуально как для Windows, так и для Linux.

Еще немного слов про терминал. Как известно, в Windows работа с терминалом всегда была не очень удобной. Но с появлением Windows Terminal ситуация изменилась, хоть еще и есть куда стремиться. Теперь, как минимум, мы можем открывать несколько терминалов в одном окне и с разным типом. Вот, например, сразу один терминал PowerShell, два под Linux (через подсистему WSL) и один это старый добрый CMD.

Под Linux список инструментов для работы с терминалом намного больше и сами инструменты функциональней. Для себя использую простой терминал Gnome. Вот можете выбрать себе более подходящий.

Спектр задач

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

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

Установка и настройка 1С

Начнем с простого - списка установленных версий 1С и команда установки.

 
 + Список установленных версий платформы
 
 + Установка одной командой

Проще простого, не так ли?

Управление службой 

Частой задачей может быть перезапуск службы 1С или по крайней мере просмотр их списка.

 
 Список установленных служб с информацией
 
 Запуск, остановка, перезапуск

И тут тоже ничего сложного.

Старый, добрый COM

До сих пор с 1С во многих компаниях работа выполняется через COM, в том числе и с сервером 1С. Вот несколько команд в помощь для работы с COM.

 
 Проверка регистрации COM
 
 Регистрация COM
 
 Отмена регистрации COM

COM с нами еще надолго :)

Кластер под контролем

Еще немного о взаимодействии с кластером 1С.

 
 Информация о кластере
 
 Регистрация и запуск консоли управления кластером
 
 Завершаем все сеансы
 
 Очистка сеансовых данных
 
 Блокировка всех информационных баз
 
 Контроль размера данных кластера
 
 Сохраняем информацию о сеансах в базу PostgreSQL
 
 Сохраняем информацию о рабочих процессах в базу PostgreSQL

 

Прочь COM, да здравствует RAC

Работа через COM в какой-то мере устарела и все скрипты относятся теперь к легаси. Эффективнее теперь все подобные действия выполнять через RAC.

 
 Общий пример  работы с RAC

Только не заставляйте переписать все скрипты с COM на RAC :)

Запуск 1С

Пару лет назад был выпущен модуль "1C.Utils". Там есть хороший скрипт для запуска приложений 1С.

>>> Скрипт вот тут.

Жаль, что модуль больше не обновляется, но даже эти наработки можно использовать.

Великий SQL Server

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

 
 Пример работы с модулем DBATools
 
 Пример создания тестовой базы в сжатом виде со скрытым быстрым shrink'ом

Капля в море, но нужно же с чего-то начинать :)

Совсем немного PostgreSQL

Для работы с PostgreSQL также можно использовать PowerShell, даже если установка выполнена на Linux. Следующий скрипт показывает простейший вызов команд с помощью psql.

 
 Пример вызова PSQL

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

Вызов стороннего API

Часто приходится иметь дело с различными REST-сервисами:

  • Проверять их доступность
  • Управлять учетными записями
  • Автоматизировать настройку
  • И др.

В этом случае с помощью PowerShell также можно решать поставленные задачи.

 
 Пример вызова API сервера Zabbix

Подобная тема актуальная и при работе с облаками (Azure, AWS и др.) или любыми другими сервисами.

Собственный бот

Использование мессенджеров для уведомления о важных событиях мониторинга трудно переоценить. Ниже скрипт для отправки сообщений в Telegram.

 
 Отправка сообщения в Telegram

Есть решения и для других мессенджеров (WhatsApp, Viber и т.д.), но рассматривать их сейчас не будем.

Отправка писем

Электронная почта также до сих пор остается важным инструментом коммуникаций. Отправка туда сообщений иногда является самым универсальным способом уведомлений, ведь не все предпочитают одинаковые мессенджеры. А вот почта, по крайней мере корпоративная, есть почти всегда.

 
 Отправка электронной почты

А Вы используете электронную почту для уведомлений?

Контролируй процессы

Часто приходится управлять различными процессами в системе. Например, завершить зависшие процессы или узнать потребляемые ими ресурсы. Тут то на сцену выходит PowerShell :)

 
 Список процессов
 
 Убить нельзя помиловать

Имей власть над процессами и будешь властвовать над ОС :)

Проверка свободного порта

Почти каждый сталкивался с проблемой, когда служба 1С могла не запускаться из-за занятого порта другим приложением. Для диагностики нужно проверить кто нужный порт занял. Тут на сцену выходит...

 
 Свободен ли порт?

Теперь можно не гадать, почему служба 1С не запустилась :)

Удаленное управление

PowerShell позволяет выполнять скрипты / команды на удаленных машинах, что значительно упрощает решение задач администрирования. Решается это с помощью PSRemoting. Ранее все удаленные взаимодействия выполнялись через WinRM, теперь же появилась возможность работать и через SSH. Вот материалы по удаленному управлению:

Ниже пример настройки для Windows и выполнение удаленной команды.

 
 Простейший пример настройки
 
 Как использовать

Один PowerShell, чтоб править всеми ... хостами.

Еще еще еще

На этом примеры скриптов закончим. Многие другие скрипты и примеры можно найти в таких источниках:

  • PowerShell - набор публичных скриптов под разные задачи.
  • PowerShellTools - еще один репозиторий со скриптами.

А теперь пойдем дальше.

Меньше костылей

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

Есть даже 1C.Utils - небольшой набор инструментов для 1С, правда автор забросил его пару лет назад, а жаль.

В общем, готовых решений много, а участников сообщества еще больше!

В самом конце

Все что я хотел сказать в этой статье, так это недооцененный инструмент для решения повседневных задач - PowerShell. Недооцененный именно в среде разработчиков 1С, тогда как в мире .NET, CI/CD и для управления некоторых облачных решений - PowerShell занял хорошие позиции.

Вместо использования готовых решений, сообщество и сама фирма "1С" пошли своим путем, создавая собственные инструменты автоматизации. Причем фирма "1С" проигнорировала труды сообщества в виде OneScript и создает собственный инструмент - 1С:Исполнитель.

Конечно, чем больше инструментов, тем лучше. Но средства автоматизации создаются не только для разработчиков 1С, но и для администраторов, DevOps'ов и других специалистов, которые могут и не иметь прямого отношения к 1С. А если администратору нужно будет автоматизировать процесс разворачивания клиентов 1С, сбор информации с сервера 1С или другую задачу автоматизации, то зачем ему изучать OneScript или 1С:Исполнитель? А ставить для их работы дополнительные компоненты, о которых в не1Сном сообществе не слышали и не могут доверять им.

Автор не противник OneScript или 1С:Исполнитель. Я фанат PowerShell и немного Bash. Понимаю, что коллеги проделали большую работу и продукт взлетел в определенном смысле. Но может сообществу 1С пора быть более открытым и не замыкаться свою экосистему саму на себя?

P.S. Все это риторические вопросы. Но если Вам есть что сказать - комментарии именно для этого. 

P.P.S. Внимание! Если Вы пишите токсичный комментарий или добавляете сарказм, то пожалуйста добавьте его под спойлер, чтобы их читали только те, кому это действительно интересно :)))))

Другие ссылки

Авторские разработки

 
  Другие разработки (бесплатные и за $m)

PowerShell скрипты автоматизация администрирование скрипт script

См. также

Как вызвать скрипты на python в 1С по технологии NativeAPI

Языки и среды Платформа 1С v8.3 Бесплатно (free)

Будем писать свои скрипты на питоне и запускать их на 1С.

15.04.2024    2062    YA_418728146    11    

56

Зачем нам 1С:Элемент

Мобильная разработка Языки и среды Бесплатно (free)

Flutter может быть использован с 1С:Предприятием для разработки кроссплатформенных мобильных приложений, обеспечивая единый интерфейс и функциональность на устройствах под управлением iOS и Android. Это позволяет создавать приложения с высокой производительностью благодаря использованию собственного движка рендеринга Flutter. Интеграция Flutter с 1С:Предприятием позволяет создавать мобильные приложения любого уровня сложности, интегрировать их в корпоративные информационные системы, а также реализовывать бизнес-логику

19.03.2024    10693    ROk_dev    67    

43

(Не) Строгая типизация 1С

Языки и среды Платформа 1С v8.3 Бесплатно (free)

Существует множество языков программирования, и каждый имеет свои особенности по работе с типами данных. Слабые, явные, динамические и другие... Но кто же здесь 1С и почему с приходом "строгой" типизации EDT 1С-программистам стоит задуматься над изменением своих привычек.

16.01.2024    5037    SeiOkami    21    

56

Простое приложение на Dart

Языки и среды Бесплатно (free)

Пример небольшого приложения, с которого можно начать изучать язык программирования Dart.

08.08.2023    3511    acvatoris    6    

14

Статический анализатор кода 1С на Си

Языки и среды Платформа 1С v8.3 Россия Бесплатно (free)

Написание статического анализатора для 1С традиционным способом на Си.

30.06.2023    3155    prohorp    15    

12

Сквозная задача на Исполнителе - часть первая (IMAP)

Языки и среды Абонемент ($m)

Поставили нам задачу - вынести на отдельный сервер функционал получения заказов от клиентов по электронной почте, парсинг полученных XLS в приемлемый вид и трансформация заказов в красивый JSON, понятный нашей учетной системе на 1С. Всю эту красоту желательно запустить в отдельном докер - контейнере, по возможности не тратя лицензии, поэтому отдельно стоящую конфигурацию на БСП отвергаем сразу. Можно было бы собрать всё на Apache Airflow или Apache NiFi, но решили попробовать реализовать всю логику без Open Source, будем делать свой ETL, с Исполнителем, который в версии 3.0 научился взаимодействовать с электронной почтой по IMAP. Начнем с середины - сначала напишем скрипты, а потом соберем их в рабочую конструкцию

1 стартмани

01.06.2023    1996    0    kembrik    2    

7

1С# - Расширяем код 1С кодом на C#

Языки и среды Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Вставки кода на C# внутри кода на 1С.

7 стартмани

07.04.2023    9633    4    SerVer1C    56    

44

Независимая разработка совместимых компонент на ORM 1С – миф или истина где-то в аннотациях Java?

Языки и среды Платформа 1С v8.3 Бесплатно (free)

При работе с 1С ORM (object relation mapping) все время преследует ощущение постоянного создания монолитного приложения — один раз привязался к какой либо сущности (например, справочник Контрагенты), и весь код заполнен ссылками на эту конкретную реализацию. Можно ли независимо разрабатывать в ORM совместимые между собой справочник «Контрагентов» и использующий его документ «Платежное поручение», но при этом избежать жестких зависимостей? Спасут ли нас микросервисы? Пример на аннотациях Java демонстрирует, как это возможно делать.

13.03.2023    1093    1CUnlimited    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. webester 26 16.05.21 15:57 Сейчас в теме
Повершелл достаточно сильная вещь конечно. Но команды плана
"$services1C = Get-WmiObject win32_service | ?{$_.Name -like '*'} | Select Name, DisplayName, State, PathName | Where-Object { $_.PathName -Like "*ragent.exe*" };" для получения процесса очень сильно мешают процессу его изучения :) сложно запомнить (да и понять) такие монстроузные конструкции с первого раза. Хотя после третьего прочтения оказывается действительно ничего сложного. Но закрыл редактор через день открыл и уже не напишешь не подсмотрев где ни будь.
Olenevod; Дмитрий74Чел; +2 Ответить
2. пользователь 16.05.21 16:07
(1) как и любой другой язык, если с ним мало работать.
Но это не повод переводить всю работу на один единый язык / синтаксис.

Опять же все это только мое мнение)
ivv1970; awk; portwein; kraynev-navi; Yashazz; ArchLord42; webester; +7 Ответить
20. sqwotina 20.05.21 09:29 Сейчас в теме
21. пользователь 20.05.21 09:33
(20) а если служба не запущена?
22. sqwotina 20.05.21 09:46 Сейчас в теме
23. пользователь 20.05.21 09:50
(22) А если найдутся лишние службы, в именах которых есть "1с"?

Мы так можем долго продолжать :)
24. sqwotina 20.05.21 11:14 Сейчас в теме
Можем) Моя мысль была в том, что он совсем не сложный. Обращение к WMI-объектам совсем не обязателен сейчас для работы. Для оптимизации, да, прямое обращение будет быстрее.
YPermitin; +1 Ответить
25. пользователь 20.05.21 11:15
(24) Да я больше шуткой)))

А так да, говорить что PowerShell сложный. Для меня это как стереотип какой-то.
28. emakei 11.03.22 20:24 Сейчас в теме
(1) Ничего не монструозные, достаточно просто в азах разобраться. Да и использовать сокращения на начальном этапе вообще не стоит, так и восприниматься будет проще (не "? { ... }", а "Where-Object")
29. webester 26 12.03.22 17:04 Сейчас в теме
(28)
Ничего не монструозные, достаточно просто в азах разобраться.
Как вы это сделали?)
30. emakei 12.03.22 21:41 Сейчас в теме
(29) А так много информации в свободном доступе от производителя (Майкрософт). Лично я прочитал когда-то книжицу маленькую от Майкрософт (на английском была, правда) и курсы были тогда на Microsoft Academy. Всё бесплатно.
3. ITSun 17.05.21 05:55 Сейчас в теме
Спасибо за хорошую подробную статью! (+)

Недооцененный именно в среде разработчиков 1С

Почему же недооцененный? Просто те кто им пользуется не так активно об этом тут пишут.
portwein; YPermitin; +2 Ответить
4. пользователь 17.05.21 06:36
(3) да, возможно Вы правы.
portwein; +1 Ответить
5. cdiamond 235 17.05.21 10:00 Сейчас в теме
Если есть Active Directory то удобнее не использовать отдельные списки клиентов и следить за их актуальностью, а запускать массовые скрипты с помощью следующего шаблона, например установку новой версии платформы или чистку кэша (строку поиска настроить на свой домен):
$searchBase = "OU=1C_Clients,OU=Clients,OU=Computer,DC=corporate,DC=com"
$computers = Get-ADComputer -SearchBase $searchBase -Filter "Name -like 'comp*'" | Sort-Object -Property Name | Select-Object -ExpandProperty Name
foreach ($computer in $computers) {
  ...
}
demonsed; YPermitin; +2 Ответить
6. vmatveenko 17.05.21 11:14 Сейчас в теме
Обрабатывайте результат команды RAC регуляркой сразу в таблицу, это даст Вам возможность делать отборы по таблице (Select)

 #регуляркой обработаем результат
        $Regex = '(?:(?<key>(?:[-0-9a-z])*)\s*:\s(?<value>.*)(?:\r\n))(?<split>\r\n)?'
        $Res = [regex]::matches($Stdout, $Regex)
   
        $ReturnTable = [System.Data.DataTable]::new()
        $TableInitiated = $false
        $TableRow = @()

        foreach ($i in $Res) {
         
            if (-not $TableInitiated) { $ReturnTable.Columns.Add([System.Data.DataColumn]::new($i.Groups['key'].Value.Replace("-", "_"))) }
            $TableRow += $i.Groups['value'].Value

            if ($i.Groups['split'].Success) {
                $TableInitiated = $true
                $ReturnTable.Rows.Add($TableRow) | Out-Null
                $TableRow = @()
            }

        }
Показать


Отключать пользователей через RAC не очень удобно, когда их у вас более 1000 (Если делать запуск RAC = Завершение сеанса). Придется отключать их в несколько потоков.

Так же RAC имеет свойство зависать при выполнении команды и Ваш скрипт может не отработать корректно. Я стараюсь выполнять одну команду в несколько попыток, это в принципе решает проблемы с зависанием.

Что-то в роде этого
# запускаем попытки выполнения
        for ($i = 1; $i -le $AttemptCount; $i++) {
    
            $Handle = $PowerShell.BeginInvoke()
            try {
    
                # Ожидание выполнения
                $end_date = (Get-Date).AddMilliseconds($TimeOut)
                $sleep_time = 100
                $NextAttempt = $false;
                while (-not $Handle.IsCompleted) {
                    Start-Sleep -Milliseconds $sleep_time
                    if ((Get-Date) -ge ($end_date)) {
                        $Stdout = "";
                        $Stderr = "Вышло время отведенное на выполнение команды [timeout=$TimeOut * $AttemptCount]"
                        $PowerShell.Stop()
                        $NextAttempt = $true
                        break
                    }
                }
                if ($NextAttempt) { Continue }
            
                # Команда отработала
                $Stdout = $RunSpace.SessionStateProxy.GetVariable("Stdout")
                $Stderr = $RunSpace.SessionStateProxy.GetVariable("Stderr")
                break
       
            }
            catch [system.exception] {
    
                $Stderr = $_.Exception.Message
                $Stdout = ""
    
            }
    
        }
Показать
N!ghtmare; YPermitin; starik-2005; +3 Ответить
7. starik-2005 3046 17.05.21 11:28 Сейчас в теме
Круть! M$ не зря убила VB.NET, заменив повершелом.
9. Perfolenta 204 18.05.21 11:22 Сейчас в теме
(7) M$ не убивала VB.Net... она сохраняет его полную поддержку в новых версиях платформы Net... просто принято решение не вносить в язык новые изменения... но это даже хорошо, а то он и так из языка для начинающих превратился в довольно сложный язык...

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

PowerShell сравнивать с VB.Net не корректно... в крайнем случае можно с VB.Script сравнить... VB.Net язык общего назначения, а PowerShell специализированный... и конечно, PowerShell лучше приспособлен для задач администрирования, т.к. для этого и был создан...

Как и люди, старые языки программирования уходят на покой, приходят молодые... но старые языки вроде Vb.Script сослужили хорошую службу и мне их даже жаль...
YPermitin; +1 Ответить
10. starik-2005 3046 18.05.21 11:54 Сейчас в теме
(9) паскаль вроде как тоже мертв, ибо его не развивают (почти). ВБ.НЕТ перестали развивать, тем самым убили (как мобильную винду - интересно, она кроме старых убогих ТСД где-нить сохранилась?)
11. Perfolenta 204 18.05.21 16:04 Сейчас в теме
(10)
перестали развивать, тем самым убили

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

Поэтому, если Майкрософт сдержит слово и будет поддерживать VB.Net во всех будущих версиях Net,
то заморозка синтаксиса лет на 5-10 это даже хорошо... конечно, лет через 10 скорее всего возникнет необходимость что-то доработать, но это уже будут решать другие люди в других обстоятельствах...

Кстати, если брать именно Vb, то наибольшее количество проблем приносило как раз развитие языка,
из-за которого приходилось серьезно переписывать код, что стоило сил, времени и денег... т.к. я умудрился писать на всех его версиях, то могу сказать, что наиболее сложными были переходы с 16-разрядного Vb 4 на 32-х разрядный и с Vb 6 на Vb.Net 1... про переход с Досовских версий Бейсика на Vb скромно промолчу в связи с дремучей древностью этого процесса, который я тоже ощутил на своей шкуре сполна....

С Паскалем история похожая... проблема не в том, что язык перестали развивать, а в том, что компилятор и IDE забросили (имею ввиду Дельфи, как вершину развития Паскаля)... кстати, сам язык развивается и в версии PascalABC есть почти все современные штучки...

Хорошо, что VB.Net на столько интегрирован в Net, что Майкрософту не будет сложно поддерживать актуальность компилятора, т.к. они с C# на одной инфраструктуре построены по имени Roslin...
YPermitin; +1 Ответить
8. SirAlexIT 17.05.21 12:25 Сейчас в теме
Хороший материал, многим время сэкономит - не надо гуглить по сайтам и форумам за инфой.
YPermitin; +1 Ответить
12. Perfolenta 204 18.05.21 17:15 Сейчас в теме
Статья отличная и полезная, спасибо...
А вот аргументация за отказ от OneScript и Исполнитея в пользу PowerShell так себе...
Учить то, что редко используется одинаково лениво и админам и одинэсникам...
Поэтому призыв к открытости либо может быть обоюдным, либо не имеет смысла...
Пусть админы пишут скрипты на знакомом им PowerShell, а одинэсники на Односкрипте...
Собирать коллекции полезных скриптов можно на любых языках,
т.к. воспользоваться скриптом (и даже слегка модифицировать) гораздо проще, чем его написать...
Olenevod; +1 Ответить
13. пользователь 18.05.21 18:20
(12) про это и была речь. Экосистема завязаная сама на себя. Свои мир)
14. Perfolenta 204 19.05.21 04:08 Сейчас в теме
(13) все экосистемы завязаны сами на себя, иначе они не были бы экосистемами...

Вот я, отлично знаю .Net, а основанный на нем PowerShell так и не выучил на уровне,
что бы на нем писать... хотя читаю, использую и даже иногда модифицирую скрипты...
но это бывает раз в полгода, поэтому нет ни какого смысла его учить, тем более,
что он плохо запоминаемый из-за обилия дефисов, скобочек, долларов и других символов...
Определенная система в наименовании апплетов там конечно есть и если ты админ,
то запомнить можно... но для одинэсника это не рентабельно...
15. пользователь 19.05.21 06:15
(14) ну, да.

Надеюсь мне не придется сталкиваться с 1С:Исполнитель и админам тоже :))))
18. Perfolenta 204 19.05.21 09:53 Сейчас в теме
(15) а если придется, Вы ведь всё равно решите поставленную задачу?
В языке главное, что бы он работал...
30 лет назад я писал на разных Ассемблерах, с тех пор много воды утекло, и я забыл почти всё... но если вдруг придется писать на них снова, то я же не подниму руки вверх...
Языков много, и разным людям нравятся разные языки, от этого не избавишься...
19. пользователь 19.05.21 09:54
(18)
ад я писал на разных Ассемблерах, с тех пор много воды утекло, и я забыл почти всё... но если вдруг придется писать на них снова, то я же не подниму руки вверх...


Конечно. Я же написал, что надеюсь не придется.
Работа есть работа.
16. nonofusafree 19.05.21 08:48 Сейчас в теме
(14) для одинэсников не ренабельно вообще все, что связано с не 1С))))
Поэтому к ним и отношение такое в ИТ сложилось. Скажем так, не очень хорошее.

Это конечно мой взгляд на ситуацию.

А статья от автора просто отличная)
17. Perfolenta 204 19.05.21 09:05 Сейчас в теме
(16)
Поэтому к ним и отношение такое в ИТ сложилось.

да ладно наговаривать... условный PHPшник ни хрена не понимает не только в 1С, но и в C++, C#, JAVA и далее по списку... то же самое с программистами на других языках...
26. user925427 124 22.05.21 12:00 Сейчас в теме
Сложность языка зависит от наличия/отсутствия понятного руководства.
1С кажется простым, потому что на русском, но, по сути, это C++.
Функций много, а с руководством беда. Взять, хотя бы, ту же БСП.
В моём поинмании, IT-специалисту, без взаимодействия с другими продуктами,
которые какие-то задачи решают лучше 1С (или другой системы в общем случае),
обойтись невозможно. И тут либо использовать универсальные форматы типа XML
и JSON, либо выходить за рамки "своего" языка. В администрировании XML не
поможет, поэтому, тот или иной язык пригодится. Автор делится своим опытом с
живыми примерами, т.е. даёт понятное руководство и ещё кучу ссылок. За что ему
спасибо. Чем больше подобных статей, тем лучше. Для тех, конечно, кто не
зацикливается на "своём" языке.
27. starik-2005 3046 19.08.21 14:54 Сейчас в теме
Кстати, автор! Может ты внезапно знаешь, как можно получить имя пользователя ОС, который установил сеанс. А то у меня есть сервер 1С, на него зашел с сервера RDP юзер в конфигуратор. Юзеров сотни, много удаленных юзеров, которых я в глаза не видел. Как понять, кто сидит в конфигураторе, если все они заходят в него под одним юзером (допустим, Администратор) с одного компа (RDP)?
VyacheslavShilov; +1 Ответить
31. sergey_s_ 18.05.22 06:34 Сейчас в теме
(27) в консоли администрирования 1С в сеансах видно-же кто зашел в конфигуратор
Оставьте свое сообщение