

- Главная
- Каталог
- Интернет технологии
- 1C программист

1C программист
Канал для программистов по 1C!
Публикуем статьи, курсы, советы, шаблоны кода по 1С.
Статистика канала
Полная статистикаchevron_right
&НаСервереБезКонтекста
Функция ПреобразоватьМассивВТаблицуЗначений(мсДанные)
тзДанные = Новый ТаблицаЗначений;
Для Каждого ЭлементМассива Из мсДанные Цикл
Если тзДанные.Колонки.Количество() = 0 Тогда
Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
тзДанные.Колонки.Добавить(ЗначениеСтруктуры.Ключ);
КонецЦикла;
КонецЕсли;
НоваяСтрока = тзДанные.Добавить();
Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
НоваяСтрока[ЗначениеСтруктуры.Ключ] = ЗначениеСтруктуры.Значение;
КонецЦикла;
КонецЦикла;
Возврат тзДанные;
КонецФункции
{}
Мы в MAX
✍️ @odin1C_rus
&НаСервере
Процедура ВыгрузитьПлоскуюТаблицуНаСервере()
Результат = Новый ТаблицаЗначений;
Попытка
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = ОтчетОбъект.СхемаКомпоновкиДанных;
Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
ОтчетТабличныйДокумент.Очистить();
Построитель = Новый ПостроительОтчета;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Результат);
Построитель.Вывести(ОтчетТабличныйДокумент);
Исключение
Сообщить("Не удалось отобразить исходные данные, возможно выводятся несколько разнородных таблиц.
|Перейдите в настройки и оставьте только одну необходимую таблицу.");
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьПлоскуюТаблицу(Команда)
ВыгрузитьПлоскуюТаблицуНаСервере();
КонецПроцедуры
Если часть параметров или отборов заполняется в процедуре ПриКомпоновкеРезультата, то могут возникнуть ошибки.
{}
Автор: RomanVG
Мы в MAX
✍️ @odin1C_rus
$services1C = Get-WmiObject win32_service | ?{$_.Name -like '*'} |
Select Name, DisplayName, State, PathName |
Where-Object { $_.PathName -Like "*ragent.exe*" };
$services1C | % {
$serviceInfo = $_;
$serviceExecPath = $services1C.PathName;
$serviceExecPathRagent = $services1C.PathName.split('"')[1]
$hash = [ordered]@{}
$serviceExecPath.Split("-").Trim() | Where-Object { $_.Contains(" ") } | ForEach-Object {
$name, $value = $_ -split '\s+', 2
$hash[$name] = $value
}
if([System.IO.File]::Exists($serviceExecPathRagent) -ne $true)
{
break
}
$platformVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($serviceExecPathRagent).FileVersion
$clusterPath = $hash.d -replace '"', ''
$clusterRegPort = $hash.regport
$clusterPort = $hash.port
$clusterPortRange = $hash.range
$clusterRegPath = "$clusterPath\reg_$clusterRegPort"
$agentPort = $clusterPort;
$agentAddress = "localhost";
$clusterAdminName = ""; # Имя администратора кластера
$clusterAdminPassword = ""; # Пароль администратора кластера
$fullAgentAddress = "tcp://" + $agentAddress + ":" + $agentPort;
$COMConnector = $null;
try {
if($platformVersion -like "8.2.*")
{
$COMConnector = New-Object -COMObject "V82.COMConnector"
}
if($platformVersion -like "8.3.*")
{
$COMConnector = New-Object -COMObject "V83.COMConnector"
}{}
Мы в MAX
✍️ @odin1C_rus
if($null -ne $COMConnector) {
$serverAgent = $COMConnector.ConnectAgent($SrvAddr);
$clusterList = $ServerAgent.GetClusters();
foreach ($cluster in $clusterList) {
$serverAgent.Authenticate($Cluster, $clusterAdminName, $clusterAdminPassword)
$workingProcesses = $serverAgent.GetWorkingProcesses($cluster)
foreach ($workProcess in $workingProcesses) {
if($workProcess.Running -ne 1)
{
continue
}
$workProcessConnectionString = "tcp://"+$workProcess.HostName+":"+$workProcess.MainPort
$workProcessConnection= $COMConnector.ConnectWorkingProcess($workProcessConnectionString)
# Здесь должна быть аутентификация пользователя, имеющего доступ к информационной базе
$infobaseUserName = ""
$infobaseUserPassword = ""
$workProcessConnection.AddAuthentication($infobaseUserName, $infobaseUserPassword)
$infoBases = $workProcessConnection.GetInfoBases()
$infoBases | ForEach-Object {
$itemInfobase = $_;
# Снятие запрета соединения с информационной базой
$itemInfobase.ConnectDenied = $false
# Снятие блокировки регламентных заданий
$itemInfobase.ScheduledJobsDenied = $false
# Сохраняем измененные настройки
$workProcessConnection.UpdateInfoBase($itemInfobase);
$infobaseName = $itemInfobase.Name
Write-Host "Снята блокировка подключений к базе $infobaseName" -ForegroundColor Green
Write-Host "Снята блокировка регламентных заданий в базе $infobaseName" -ForegroundColor Green
}
break
}
}
}
$COMConnector = $null
}
catch {
Write-Host "Ошибка при выполнении скрипта." -ForegroundColor Red;
Write-Host "Подробно:" -ForegroundColor Red
Write-Host $Error[0] -ForegroundColor Red
}
}{}
Мы в MAX
✍️ @odin1C_rusКаждый кто разрабатывает и поддерживает микросервисы в 1С (расширения, доп. отчеты обработки) рано или поздно сталкивается с потребностью механизма автоматического поставки и обновления этих самых микросервисов. В официальном облаке 1сфреш это реализовано в виде магазина расширений, где пользователи могут в любой момент установить дополнение в свое приложение одной кнопкой, обновить (обновления даже проходят автоматически) и это достаточно удобно. А для локальных версий такого магазина расширений пока нет (точнее он появляется 1С Плюс).
https://habr.com/ru/articles/854630/
Мы в MAX
✍️ @odin1C_rus
Статистика
Отзывы канала
всего 26 отзывов
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
1C программист — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 7.6K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 29.6, количество отзывов – 26, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 9090.9 ₽, а за 111 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий