Shell = Новый COMОбъект("WScript.Shell");
Shell.SendKeys("{CAPSLOCK}"); //Нажать эту кнопку
Shell.Run("calc"); //Запустить калькулятор
Shell.AppActivate("Конфигуратор"); //Сделать активным окно, чье имя начинается с "Конфигуратор"
Shell.Run(BatFile, 0, -1); //Запустить батник "BatFile", без открытия DOS окна, c ожиданием окончания работы
КонецПроцедуры
Специальные клавиши = {} {CAPSLOCK}
Ctrl+A = ^(A)
Shift+А = +(А)
Alt+А = %(А)
-------------------------------------------------------------------------------------------------------------------
Процедура КомандаАПИ(парам1, парам2)
Shell = Новый COMОбъект("WScript.Shell");
Shell.Run(парам1, парам2);
КонецПроцедуры
КомандаАПИ("rundll32 shell32, SHHelpShortcuts_RunDLL PrintersFolder", true); //открыть диалог "Принтеры"
КомандаАПИ("rundll32 SHELL32, SHHelpShortcuts_RunDLL FontsFolder", true); //открыть диалог "Шрифт"
КомандаАПИ("rundll32 user32, SetCursorPos", true); //переместить курсор мыши в нижний правый угол
КомандаАПИ("rundll32 user32, mouse_event", true); //сгенерировать нажатие мыши
КомандаАПИ("rundll32 user32, LockWorkStation", true); //заблокировать компьютер
-------------------------------------------------------------------------------------------------------------------
Shell = Новый COMОбъект("Shell.Application"); //Свернуть все окна
Shell.MinimizeAll();
-------------------------------------------------------------------------------------------------------------------
КомандаСистемы("shutdown -r"); //перегрузить компьютер
КомандаСистемы("gpedit.msc"); //запуск групповых политик
-------------------------------------------------------------------------------------------------------------------
Cсылки о "WScript.Shell" (WHS, реестр, запуск программ, ярлыки, файловая система, чтение и редактирование файлов, сеть, сетевое окружение, Microsoft Office, Word, Excel)
http://www.forum.mista.ru/topic.php?id=5265&kb=1
http://itland.ru/forum/index.php?showtopic=6096
-------------------------------------------------------------------------------------------------------------------
Создание внешних компонент для 1C с помощью C#, VB.Net, Net Framework
http://kb.mista.ru/article.php?id=56
http://www.kb.mista.ru/article.php?id=62
http://www.rsdn.ru/article/dotnet/cs1c.xml
http://www.rsdn.ru/Forum/Message.aspx?mid=751285
//Хозяин – измерение регистра сведений
//.Выбрать(ОтборПоДокументу); - регистр сведений не подчинен регистратору, регистр сведений с независимым режимом записи
//.Выбрать(,,ОтборПоДокументу); - регистр подчинен регистратору
ОтборПоДокументу = Новый Структура("Хозяин");
ОтборПоДокументу.Хозяин = ЭтотОбъект.Ссылка;
ВыборкаДокументов = РегистрыСведений.ОбъектыКодирования.Выбрать(ОтборПоДокументу);
Пока ВыборкаДокументов.Следующий() Цикл
МенеджерЗаписи = ВыборкаДокументов.ПолучитьМенеджерЗаписи();
МенеджерЗаписи.Удалить();
КонецЦикла;
//Машина, Сырье, ДатаПроизводства – измерения регистра сведений
//Отбор, фильтрация
НаборЗаписейРегистра = РегистрыСведений.Производство.СоздатьНаборЗаписей();
НаборЗаписейРегистра.Отбор.Машина.Значение = Машина;
НаборЗаписейРегистра.Отбор.Машина.Использование = Истина;
НаборЗаписейРегистра.Отбор.Сырье.Значение = Сырье;
НаборЗаписейРегистра.Отбор.Сырье.Использование = Истина;
НаборЗаписейРегистра.Прочитать();
//Добавить новую запись
ЗаписьРегистра = НаборЗаписейРегистра.Добавить();
ЗаписьРегистра.Машина = Машина;
НаборЗаписейРегистра.Записать(Ложь); //Ложь – чтобы записи не затирались
//Откорректировать запись регистра сведений
НаборЗаписейРегистра [0].ДатаПроизводства = ТекущаяДата();
НаборЗаписейРегистра.Записать();
//Перебор (обход) в цикле и корректировка записей регистра сведений, попавших в отбор.
Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл
ЗаписьРегистра.ДатаПроизводства = ТекущаяДата();
КонецЦикла;
НаборЗаписейРегистра.Записать();
//ОбъектыКодирования – имя регистра сведений
//Хозяин – измерение регистра сведений
СписокНапечатанныхКодов = РегистрыСведений.ОбъектыКодирования;
ФормаСписокНапечатанныхКодов = СписокНапечатанныхКодов.ПолучитьФормуСписка();
ФормаСписокНапечатанныхКодов.Отбор.Хозяин.Значение = ЭтотОбъект.Ссылка;
ФормаСписокНапечатанныхКодов.Отбор.Хозяин.Использование = Истина;
ФормаСписокНапечатанныхКодов.Открыть();
//При открытии формы списка установить отбор по владельцу
//Форма списка, отбор
ЭтаФорма.Отбор.Владелец.Значение =
Справочники.Пользователи.НайтиПоНаименованию
(ПараметрыСеанса.ТекущийПользователь).ОсновноеПодразделение;
ЭтаФорма.Отбор.Владелец.Использование = Истина;
//Сделать отбор не доступным
ЭтаФорма.ЭлементыФормы.ДокументСписок.НастройкаОтбора.Подразделение.Доступность = Ложь;
Запрос.УстановитьПараметр("ТекущийДок", ЭтотОбъект.Ссылка);
Запрос.Текст = "
|ВЫБРАТЬ
| Поле1,
| Поле2,
| ВЫБОР
| КОГДА
| (Регистратор ССЫЛКА Документ.НалоговаяНакладная)
| ТОГДА
| ВЫРАЗИТЬ (Регистратор.Договор.НаименованиеПолное КАК СТРОКА(100))
| КОГДА
| (Регистратор ССЫЛКА Документ.ГТД)
| ТОГДА
| Регистратор.Контрагент.Наименование
| КОНЕЦ КАК ДоговорИлиКонтрагент
|ИЗ" +
?(Экспортируем = Истина, "РегистрНакопления.НалоговыеОбязательства КАК Рег", "РегистрНакопления.НалоговыйКредит КАК Рег") + "
|ГДЕ
| Фильтр = &ТекущийДок
| И НЕ
| Рег.Регистратор ССЫЛКА Документ.ИмпортНДСНалоговыеОбязательстваКредит
|";
Результат = Запрос.Выполнить();
Тз = Новый ТаблицаЗначений;
Тз = Результат.Выгрузить();
Тз.ВыбратьСтроку();
//"ДокРегистратор" – измерение, по которому устанавливается отбор (условие)
НаборЗаписейРегистра = РегистрыСведений.ОбъектыКодирования.СоздатьНаборЗаписей();
НаборЗаписейРегистра.Отбор.ДокРегистратор.Значение = ЭтотОбъект.Ссылка;
НаборЗаписейРегистра.Отбор.ДокРегистратор.Использование = Истина;
НаборЗаписейРегистра.Записать(Истина);