Найти в Дзене
#1C #1С Печать произвольного макета в расширении Задача: напечатать произвольный макет из документа. Конфигурация: УНФ 1.6.25.178, БСП 3.1.4.295 1) Создаю макет в документе. 2) Из модуля менеджера документа заимствую в расширение процедуру ДобавитьКомандыПечати (я поставил после, чтобы порядковый номер был +1). Обработчик не указываю. КомандаПечати.Порядок = КомандыПечати.Количество() + 1; Заимствую процедуру Печать. В этой процедуре добавляю обработчик для своей печатной формы и процедуру для заполнения макета (условия взял типовые и поправил под себя. МаркировкаПроизводства - имя печатной формы). ОписаниеПечатнойФормы = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "МаркировкаПроизводства"); Если ОписаниеПечатнойФормы <> Неопределено Тогда СформироватьМаркировкаПроизводства(ОписаниеПечатнойФормы, МассивОбъектов, ОбъектыПечати, ПараметрыПечати); КонецЕсли;
3 года назад
#1C #1С Добавление формы отбора перед печатью произвольного макета в расширении Задача: напечатать произвольный макет из документа, предварительно вывести форму списка печатаемых элементов (по аналогии с обработкой печать этикеток и ценников). Конфигурация: УНФ 1.6.25.178, БСП 3.1.4.295 1) Создаю макет в документе. 2) Из конфигурации заимствую общий модуль ПечатьДокументовУНФКлиент и добавляю свою процедуру (ПечатьМаркировкаПроизводства). Процедура экспортная. В процедуре открываю свою (произвольную) форму (форма прицеплена к объекту документа). Для передачи объектов печати создаю структуру из входящего параметра ПараметрыКоманды. (при передаче структуры ПараметрыКоманды возникает ошибка передачи реквизита с типом ФормаКлиентскогоПриложения.) 3) Из модуля менеджера документа заимствую в расширение процедуру ДобавитьКомандыПечати (я поставил после, чтобы порядковый номер был +1). И указываю обработчик созданный на первом шаге. КомандаПечати.Обработчик = "ПечатьДокументовУНФКлиент.ПечатьМаркировкаПроизводства"; КомандаПечати.Порядок = КомандыПечати.Количество() + 1; Заимствую процедуру Печать. В этой процедуре добавляю обработчик для своей печатной формы и процедуру для заполнения макета (условия взял типовые и поправил под себя. МаркировкаПроизводства - имя печатной формы). ОписаниеПечатнойФормы = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "МаркировкаПроизводства"); Если ОписаниеПечатнойФормы <> Неопределено Тогда СформироватьМаркировкаПроизводства(ОписаниеПечатнойФормы, МассивОбъектов, ОбъектыПечати, ПараметрыПечати); КонецЕсли; 4) Создаю произвольную форму в документе. Добавляю процедуру ПриСозданииНаСервере. При создании формы заполняю нужные мне поля. Добавляю на форму команду Печать (клиентский вызов). В процедуре делаю вызов (менеджер печати, имя макета, массив объектов печати*, ЭтаФорма, структура с массивом данных для заполнения макета): УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.ЗаказНаПроизводство", "МаркировкаПроизводства", ПолучитьМассивИзТЗНаСервере(), ЭтаФорма, СформироватьСтруктуруПараметровПечати()); *Массив объектов печати содержит документ(ы) для которых выполняется печать (например, из списка документов).
3 года назад
#PowerShell #Script #Administration #Скрипты #Администрирование #Пош Инвентаризация компьютера [string]$computername = $env:COMPUTERNAME [string[]]$fragment = ""; $fragment += @" <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style> body { background-color:#dddddd; font-family:Tahoma; font-size:12pt; } td, th { border:1px solid black; border-collapse:collapse; } table, tr, td, th { padding: 2px; margin: 0px } table { margin-left:50px; } </style> </head> <body> <h1>Инвентаризация компьютера - $computername</h1> "@ $fragment += gwmi -q ("select * from Win32_ComputerSystem") | ` Select Domain, Manufacturer, Model, Name, PrimaryOwnerName, @{n='Memory(GB)';e={$_.TotalPhysicalMemory / 1GB -as [int]}} | ` ConvertTo-Html -Fragment -PreContent ('<h2>Система</h2>') | Out-String; $fragment += gwmi -q ("select * from Win32_OperatingSystem") | ` Select SystemDirectory, Organization, BuildNumber, RegisteredUser, SerialNumber, Version, ` @{n='InstallDate';e={([Management.ManagementDateTimeconverter]::ToDateTime($_.installdate))}} | ` ConvertTo-Html -Fragment -PreContent ('<h2>Операционная система</h2>') | Out-String; $fragment += gwmi -q ("select * from Win32_BaseBoard") | ` Select Manufacturer, Model, Name, SerialNumber, Product | ` ConvertTo-Html -Fragment -PreContent ('<h2>Материнская плата</h2>') | Out-String; $fragment += gwmi -q ("select * from Win32_Processor") | ` Select Caption, DeviceID, Manufacturer, MaxClockSpeed, Name, SocketDesignation | ` ConvertTo-Html -Fragment -PreContent ('<h2>Процессор</h2>') | Out-String; $fragment += gwmi -q ("select * from Win32_BIOS") | ` Select SMBIOSBIOSVersion, Manufacturer, Name, SerialNumber, Version | ` ConvertTo-Html -Fragment -PreContent ('<h2>БИОС</h2>') | Out-String; $fragment += gwmi -q ("select * from Win32_PhysicalMemory") | ` Select Manufacturer, Speed, @{n='Capacity';e={$_.Capacity / 1GB -as [int]}} | ` ConvertTo-Html -Fragment -PreContent ('<h2>Оперативная память</h2>') | Out-String; $fragment += gwmi -q ("select * from Win32_DiskDrive") | ` Select Partitions, DeviceID, Model, @{n='Size'; e={$_.Size / 1gb -as [int]}} | ` ConvertTo-Html -Fragment -PreContent ('<h2>Физические диски</h2>') | Out-String; $fragment += gwmi -q ("select * from Win32_LogicalDisk") | ` Select DeviceID, DriveType, ` @{n='Size(GB)';e={$_.Size / 1GB -as [int]}}, ` @{n='FreeSpace(GB)';e={$_.FreeSpace / 1GB -as [int]}} | ` ConvertTo-Html -Fragment -PreContent ('<h2>Логические диски</h2>') | Out-String; $hives = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\', ` 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall'; #, ` 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall'; [array]$appList = $null; foreach ($hive in $hives) { if (!(Test-Path $hive)){ continue; } $branch = Get-ChildItem $hive foreach ($b in $branch){ if ($b.GetValue('DisplayName') -eq $null) { continue; } $appList += New-Object PSObject -Property @{ Name = $b.GetValue('DisplayName') Version = $b.GetValue('DisplayVersion') Publisher = $b.GetValue('Publisher') } } } $fragment += $appList | sort Name | ` Select Name, Version, Publisher | ` ConvertTo-Html -Fragment -PreContent ('<h2>Установленные программы</h2>') $fragment += @' </body> </html> '@ $FilePath = $env:USERPROFILE + '\Desktop\' + $computername + '.htm' Out-File -FilePath $FilePath -InputObject $fragment
3 года назад
#1С #1C Сброс пароля на сервер одинэс Создать копию таблицы пользователей и удалить таблицу: USE [DatabaseName] SELECT * into [v8users_copy] FROM [v8users] GO SELECT * into [Params_copy] FROM [Params] GO DELETE FROM [v8users] GO DELETE FROM [Params] WHERE [FileName] = 'users.usr' GO Войти в конфигуратор с пустым пользователем и паролем. Вернуть таблицу обратно и удалить копию: USE [DatabaseName] DROP TABLE [v8users] GO DROP TABLE [Params] GO SELECT * into [v8users] FROM [v8users_copy] GO SELECT * into [Params] FROM [Params_copy] GO DROP TABLE [v8users_copy] GO DROP TABLE [Params_copy] GO
3 года назад
#1С #1C Горячие клавиши
3 года назад
#1С #1C #УНФ Структура подчинённости в расширении для существующих документов. Задача: Добавить новую связь между существующими документами (пункт меню создать на основании) Событие и ЗаказНаПроизводство. Связь должна отображаться в типовой форме подчинённых документов. Решение: Для решения я создаю два расширения (можно делать в одно). Первое расширение я назвал ФормаСтруктурыПодчиненности. В него заимствую функцию из общей формы ФормаСтруктурыПодчиненности - "ПолучитьСписокПодчиненныхДокументов". Внутри функции нужно заменить: Для каждого ЭлементСостава Из Метаданные.КритерииОтбора.СтруктураПодчиненности.Состав Цикл На КритерииОтбораСостав = СоздатьМассивКритериевОтбора(); Для Каждого ЭлементСостава Из КритерииОтбораСостав Цикл И добавить функцию: Функция СоздатьМассивКритериевОтбора() МассивКритериевОтбора = Новый Массив; Для каждого ЭлементСостава Из Метаданные.КритерииОтбора.СтруктураПодчиненности.Состав Цикл МассивКритериевОтбора.Добавить(ЭлементСостава); КонецЦикла; Для каждого КритерииОтбораЭлемент Из Метаданные.КритерииОтбора Цикл Если СтрНайти(КритерииОтбораЭлемент.Имя, "_СтруктураПодчиненности") > 0 Тогда Для каждого ЭлементСостава Из КритерииОтбораЭлемент.Состав Цикл МассивКритериевОтбора.Добавить(ЭлементСостава); КонецЦикла; КонецЕсли; КонецЦикла; Возврат МассивКритериевОтбора; КонецФункции Cоздаю второе расширение. Второе расширение я назвал "ДокументСобытие". В расширение заимствую документы "Событие" и "ЗаказНаПроизводство". Добавляю общую команду и называю её "ЗаказНаПроизводство". Группа: Командная панель формы.Создать на основании Тип параметра команды: ДокументСсылка.Событие Режим использования параметра: Одиночный В модуле команды добавляю открытие формы нового документа "ЗаказНаПроизводство": СтрДанные = Новый Структура("Основание", ПараметрКоманды); ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", СтрДанные); ОткрытьФорму("Документ.ЗаказНаПроизводство.Форма.ФормаДокумента", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка); В документ "ЗаказНаПроизводство" добавляю новый реквизит и называю его "Событие" с типом "ДокументСсылка.Событие". В модуле документа заимствую процедуру "ОбработкаЗаполнения" (мне это необходимо для реализации дальнейшей логики работы). &После("ОбработкаЗаполнения")Процедура ДСОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) Добавляю новый критерий отбора и называю его "ДокументСобытие_СтруктураПодчиненности". Тип: ДокументСсылка.Событие Состав: Документ.ЗаказНаПроизводство.Реквизит.Событие Пояснение: В модуле формы структуры подчинённости я добавил функцию "СоздатьМассивКритериевОтбора", чтобы собрать в него все родные для конфигурации критерии отбора и добавить критерии отбора по подстроке имени "_СтруктураПодчиненности" из других расширений. В следующий раз, если мне понадобится создать ещё одну связку документов в расширении, мне будет достаточно повторить действия для второго расширения.
3 года назад
#frontolSynchroServer #frontol #фронтол #СинхронизацияФронтол
3 года назад
#1С #1C Текст запроса по полям таблицы значений // // Параметры: // Поля - КоллекцияКолонокТаблицыЗначений - Коллекция колонок таблицы значений для формирования текста запроса // // Возвращаемое значение: // Строка - Строка с текстом запроса или пустая строка. // Функция ТекстЗапросаПоПолямТЗ(Поля) Экспорт Если ТипЗнч(Поля) <> Тип("КоллекцияКолонокТаблицыЗначений") Тогда Возврат Строка(""); КонецЕсли; ТекстЗапроса = "ВЫБРАТЬ" + Символы.ПС; Для каждого Поле Из Поля Цикл ТекстЗапроса = ТекстЗапроса + Символы.Таб + "ТЗ." + Поле.Имя + " КАК " + Поле.Имя + "," + Символы.ПС; КонецЦикла; ТекстЗапроса = Лев(ТекстЗапроса, СтрДлина(ТекстЗапроса) - 2) + Символы.ПС; ТекстЗапроса = ТекстЗапроса + "ПОМЕСТИТЬ ТЗ" + Символы.ПС; ТекстЗапроса = ТекстЗапроса + "ИЗ" + Символы.ПС; ТекстЗапроса = ТекстЗапроса + Символы.Таб + "&ТЗ КАК ТЗ" + Символы.ПС; ТекстЗапроса = ТекстЗапроса + "; | |////////////////////////////////////////////////////////////////////////////////" + Символы.ПС; Возврат ТекстЗапроса; КонецФункции // ТекстЗапросаПолямТЗ()
3 года назад
#macos #аудиокниги #audiobooks #m4b #MP3toM4B Создание аудиокниг через iTunes. Без регистрации и смс. 1. добавь все mp3 файлы в itunes в один альбом 2. пронумеруй каждый файл (например: 1 - 31) 3. выбери все файлы (или на этапе нумерации каждого файла) и в свойствах укажи жанр аудиокниги. Тут же добавь обложку, чтобы красивше было. 4. если не знаешь, где располагается папка медиафайлы, значит открываешь настройки itunes (cmd+,), переходишь в раздел файлы, нажимаешь на кнопку изменить. 5. в открывшемся окне из шага 4 (или сам знаешь где) берёшь файлы и перетаскиваешь в приложение книги. Готово! Не забудь отсинхриться с яблончиком.
3 года назад