Вход | Регистрация
 

Как выполнить powershell скрипт из 1С и вернуть обратно данные?

Как выполнить powershell скрипт из 1С и вернуть обратно данные?
Я
   Бешеный заяц
 
03.08.21 - 16:29
Есть powershell скрипт который стучится к SharePoint и забирает данные, используются библиотеки по этому напрямую в 1С минуя powershell немогу
   Бешеный заяц
 
1 - 03.08.21 - 16:29
вариант блокнот не очень хороший
   Kassern
 
2 - 03.08.21 - 16:32
а через это дело разве нельзя напрямую из 1с? https://docs.microsoft.com/ru-ru/sharepoint/dev/spfx/connect-to-sharepoint
   Garykom
 
3 - 03.08.21 - 16:35
(0) программиста нанять не пробовали?
   Бешеный заяц
 
4 - 03.08.21 - 16:41
(2) нет у нас проблемы с авторизацией, админ грамотно доступ настроить не может
   Garykom
 
5 - 03.08.21 - 16:43
покажи уже свой "powershell скрипт" затерев логин/пароль
   Kassern
 
6 - 03.08.21 - 16:47
(4) ну так не изобретайте велосипедов, используйте стандартные механизмы 1с и вправьте руки сисадмину.
   Бешеный заяц
 
7 - 03.08.21 - 16:51
(5)
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
    

$SiteUrl = "https://мойСайт/sites/applications/"

$ListName = "624060e9-5c12-40d8-9a81-f7ad7aeeed2f"
$Username = "ИмяПользователя";
$AdminPassword = ConvertTo-SecureString "Пароль" -AsPlainText -Force
  
#Get Credentials to connect
#$Cred = Get-Credential

#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword)
  
#Get the list
#$List = $Ctx.Web.Lists.GetByTitle($ListName)

$List = $Ctx.Web.Lists.GetById($ListName)
  
#sharepoint online powershell read list items
$ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()
Write-host "Total Number of Items Found in the List:"$ListItems.Count

#Iterate through List Items
ForEach($Item in $ListItems)
{
    #sharepoint online powershell read list items
    Write-Host ("List Item ID:{0} - Title:{1}" -f $Item["ID"], $Item["Title"])
    #Write-Host ($Item.FieldValues);
}

Мне нужно $Item вернуть или даже $ListItems (смотря в каком виде вернет)
   Garykom
 
8 - 03.08.21 - 16:58
https://www.cnblogs.com/PeterHome/p/7009998.html

прокси на C# или Использование классов .Net в 1С для новичков
если сборки представляют собой COM объекты то можно и напрямую из 1С попытаться
   Garykom
 
9 - 03.08.21 - 16:58
(8)+ но имхо лучше через "REST/OData endpoints"
   Garykom
 
10 - 03.08.21 - 17:01
(7) еще простейший вариант это модификация сценария чтобы данные в csv (или нечто вроде) выдавал
а из 1С делать ЗапуститьПриложение() или КомандаСистемы() и читать результат
   Feanor
 
11 - 03.08.21 - 17:44
ВыполнитьКомандуСистемы не подходит?
   Feanor
 
12 - 03.08.21 - 17:45
Еще вроде можно через COM создать оболочку и запустить скрипт
   Бешеный заяц
 
13 - 03.08.21 - 21:44
(11) Данные как вернуть?
   Garykom
 
14 - 03.08.21 - 21:59
(13) дык 1С через параметр передает в скрипт полное имя файла, скрипт пишет в этот файл, 1С после завершения скрипта читает
при начале скрипта файл очищать и/или писать нечто при ошибках, чтобы 1С если что поняла
   СеньорПрограммист
 
15 - 03.08.21 - 22:42
(0) Посмотри в типовых. Там есть пример запуска приложения
   СеньорПрограммист
 
16 - 03.08.21 - 22:46
+(15)
Функция ЗапуститьПрограмму(Знач КомандаЗапуска, ПараметрыЗапускаПрограммы = Неопределено) Экспорт
   Бешеный заяц
 
17 - 04.08.21 - 07:59
через выгрузку это не кошерно, нашел ActiveXPoshV3x64 с помощью неё можно запускать и тут же забирать ответ в 1с, сегодня буду раскуривать её.
   Feanor
 
18 - 04.08.21 - 14:23
(13) перенаправить вывод в файл и прочитать этот файл

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.