Автор работы: Пользователь скрыл имя, 03 Октября 2013 в 14:49, курс лекций
Лекция №1 Обзор информационных систем. Концепция системы 1С:Предприятие. Основные понятия системы 1С:Предприятие
Развитие различных сфер человеческой деятельности на современном этапе невозможно без широкого применения вычислительной техники и создания информационных систем различного направления. Обработка информации в подобных системах стала самостоятельным научно-техническим направлением. Научно-техническая революция (НТР) - коренное, качественное преобразование производительных сил на основе превращения науки в ведущий фактор развития общественного производства.
Объект позволит исполнить любой код на VBScript или JScript. Может быть очень полезен, если нужно исполнить код, который не может быть исполнен непосредственно в 1С:Предприятии. Например:
Полное описание объекта на английском языке можно скачать вместе с его дистрибутивом с сайта Microsoft. При этом, если у вас не слишком старая версия Windows, ничего устанавливать вам скорее всего вообще не придётся. Описание свойств и методов объекта на русском языке в формате синтакс-помощника 1С:Предприятие v7.7 (als-файл) вы можете скачать здесь. Скопируйте ALS-файл в каталог программы (например, "C:\Program Files\1Cv77\BIN\"), и в конфигураторе в синтакс-помощнике появится ветка "Некоторые объекты Automation". CHM-файл справки на русском языке по встроенным константам и функциям языка VBScript вы можете скачать здесь. Примеры работы с объектом Microsoft Script Control вы можете также получить, рассмотрев код маленькой конфигурации для 1С:Предприятия v7.7 "Администратор 1С", которую вы можете скачать на главной страничке этого сайта.
Функция читает список компьютеров, зарегистрированных в доменах локальной сети, и возвращает таблицу значений с колонками "Домен" и "Компьютер":
Функция глПолучитьКомпьютеры() Экспорт
ТаблЗнач=СоздатьОбъект("
ТаблЗнач.НоваяКолонка("Домен")
ТаблЗнач.НоваяКолонка("
Попытка
ScrptCtrl=СоздатьОбъект("
ScrptCtrl.Language="vbscript";
ScrptCtrl.AddCode("
|Function GetComputers()
| Set WinNT = GetObject(""WinNT:"")
| WinNT.Filter = Array(""domain"")
| strInfo=vbNullString
| For Each Domain In WinNT
| Set ADSI = GetObject(""WinNT://"" & Domain.Name)
| ADSI.Filter = Array(""computer"")
| For Each Comp In ADSI
| strInfo=strInfo & Domain.Name & vbTab & Comp.Name & vbCrLf
| Next
| Next
| GetComputers = strInfo
|End Function
|");
Текст=СокрЛП(ScrptCtrl.Run("
Исключение
Сообщить(ОписаниеОшибки());
Возврат ТаблЗнач;
КонецПопытки;
Для ы=1 по СтрКоличествоСтрок(Текст) Цикл
СтрКомп=СтрПолучитьСтроку(
Разд=Найти(СтрКомп,
Домен=Лев(СтрКомп,Разд-1);
Компьютер=Прав(СтрКомп,
ТаблЗнач.НоваяСтрока();
ТаблЗнач.Домен=Домен;
ТаблЗнач.Компьютер=Компьютер;
КонецЦикла;
ТаблЗнач.Сортировать("Домен,
Возврат ТаблЗнач;
КонецФункции //глПолучитьКомпьютеры
Функция читает список зарегистрированных информационных баз 1С из реестра Windows и возвращает таблицу значений с колонками "Название" и "Путь":
Функция глПолучитьСписокИБ() Экспорт
ТаблЗнач=СоздатьОбъект("
ТаблЗнач.НоваяКолонка("
ТаблЗнач.НоваяКолонка("Путь");
Попытка
ScrptCtrl=СоздатьОбъект("
ScrptCtrl.Language="vbscript";
ScrptCtrl.AddCode("
|Function Get1CV77Titles()
| const HKEY_CURRENT_USER = &H80000001
| Set oReg=GetObject(""winmgmts:{
| strKeyPath = ""Software\1C\1Cv7\7.7\Titles"
| oReg.EnumValues HKEY_CURRENT_USER, strKeyPath, arrValues
| strInfo=vbNullString
| For i = LBound(arrValues) To UBound(arrValues)
| call oReg.GetStringValue(HKEY_
| strInfo=strInfo & arrValues(i) & vbTab & Value & vbCrLf
| Next
| Get1CV77Titles = strInfo
|End Function
|");
Текст=СокрЛП(ScrptCtrl.Run("
Исключение
Сообщить(ОписаниеОшибки());
Возврат ТаблЗнач;
КонецПопытки;
Для ы=1 по СтрКоличествоСтрок(Текст) Цикл
СтрБазы=СтрПолучитьСтроку(
Разд=Найти(СтрБазы,
Путь=Лев(СтрБазы,Разд-1);
Название=Прав(СтрБазы,
ТаблЗнач.НоваяСтрока();
ТаблЗнач.Название=Название;
ТаблЗнач.Путь=Путь;
КонецЦикла;
ТаблЗнач.Сортировать("
Возврат ТаблЗнач;
КонецФункции //глПолучитьСписокИБ
Процедура делает Log Off (Парам=4), Shutdown (Парам=5) или Reboot (Парам=6) выбранному компьютеру:
Процедура глViolateComputer(ИмяКомпа,
Попытка
ScrptCtrl=СоздатьОбъект("
ScrptCtrl.Language="vbscript";
ScrptCtrl.AddCode("
|Function ViolateComputer()
| Set WMI = GetObject(""winmgmts:{(
| For Each OS In WMI.ExecQuery(""SELECT * FROM Win32_OperatingSystem"")
| OS.Win32Shutdown("+Парам+")
| Next
|End Function
|");
ScrptCtrl.Run("
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры //глViolateComputer
Функция вычисляет квадратный корень числа:
Функция КвКорень(Чсл)
Попытка
ScrptCtrl=СоздатьОбъект("MSScr
ScrptCtrl.Language="vbscript";
ScrptCtrl.AddCode("
|Function GetSqr(x)
| GetSqr = Sqr(x)
|End Function
|");
Рез=ScrptCtrl.Modules("Global"
Исключение
Сообщить(ОписаниеОшибки());
Возврат 0;
КонецПопытки;
Возврат Рез;
КонецФункции //КвКорень
Лекция № 12 Табличный редактор. Администрирование
Краткое описание: таблица предназначена для хранения уникального идентификатора сессии первого присоединившегося к базе данных пользователя в режиме предприятия (поэтому в таблице всегда только одна запись). Судя по всему, именно по наличию записи в этой таблицы и происходит верификация процедур при первом запуске в SQL.
Название поля |
Описание |
CONNECTUUID |
GUID (уникальный идентификатор) |
Краткое описание: таблица предназначена для хранения значений констант и периодических реквизитов справочников.
Название поля |
Описание |
ROW_ID |
Порядковый номер записи в таблице. Тип - Число(int). |
OBJID |
ID объекта периодического |
ID |
ID (идентификатор) константы или
периодического реквизита |
DATE |
Дата установки периодического реквизита. Для базы в формате SQL и для непериодического реквизита (или константы) поле заполняется значением '1753-01-01 00:00:00.000'. Тип - Дата (datetime для SQL). |
VALUE |
Значение константы или |
DOCID |
ID (идентификатор) документа (поле, связанное с полем IDDOC таблицы журналов (_1SJOURN)). Для значений установленных вручную или непериодических заполняется ' 0 '. |
TIME |
Время установки значения в десятичном
формате ((Часы*3600+Минуты*60+секунды) |
ACTNO |
Номер движения документа (включая каждое движения по регистрам и запись периодических реквизитов за исключением проводок). В случае непериодического значения заполняется нулем. Тип - Число(int). |
LINENO_ |
Номер строки документа (заполняется при вызове метода ПривязыватьСтроку(), если привязка не выполнена или непериодическое значение - заполняется нулем). Тип - Число(tinyint). |
TVALUE |
Заполняется только для неопределенных реквизитов, для типов данных 1С (когда длина ID равна 23 символам). Тип - Строка(3). |
Краткое описание: таблица предназначена для хранения ссылок подчиненных документов и граф отборов реквизитов документов, которые не являются общими реквизитами. Для хранения ссылок документов в подчиненном документе должен быть реквизит (поле) в котором будет ссылка на документ-родитель. Без такой ссылки документ не считается подчиненным.
Название поля |
Описание |
ROW_ID |
Порядковый номер записи в таблице.
Номер проставляется |
MDID |
Номер графы отбора подчиненного документа. Тип - Число(int). |
PARENTVAL |
Полный идентификатор |
CHILD_DATE_TIME_IDDOC |
Дата + Время (в 36-ричном формате) + ИД подчиненного документа. Тип – Строка(23). |
CHILDID |
ИД подчиненного документа. Тип – Строка(9). |
FLAGS |
??? Тип – Число(1). |
Краткое описание: таблица предназначена для хранения списка всех документов. Именно эта таблица является узким местом при работе большого числа пользователей (так как она блокируется полностью каждым пользователем в момент проведения документов).
Название поля |
Описание |
ROW_ID |
Порядковый номер записи в таблице. Номер присваивается в порядке ввода документов. При изменении даты или времени – не изменяется. Тип - Число(4). |
IDJOURNAL |
ID журнала документов, которому принадлежит документ (из метаданных). Тип - Число(4). |
IDDOC |
ID документа в 36-ричной системе счисления. Тип - Строка(9). |
IDDOCDEF |
ID вида документа. Номер |
APPCODE |
Число, отражающее принадлежность документа к компонентам. Возможные значения:
Возможна их комбинация, например 6 = 2+4 (бух. учет + расчет), 7 = все три компоненты. Тип - Число(2). |
DATE_TIME_IDDOC |
Составное поле, обозначающее позицию документа во времени + ID документа.
Тип - Строка(23). |
DNPREFIX |
Префикс номера документа. Тип - Строка(18). Для документов, у которых код числовой, это поле равно десятичному ID вида документа. Если нумерация в пределах периода - то также хранится и период в виде ГГГГММДД (например 2006 для нумерации в пределах года). |
DOCNO |
Номер документа. Длина определяется максимальным номером всех документов. Тип - Строка (максимальное значение - 20). |
CLOSED |
Флаг проведения документа. Для каждого набора компонент свое значение (аналогично полю APPCODE). Значение последнего байта отвечает за флаг проведения документа. Тип - Число(1). |
ISMARK |
Флаг пометки на удаление. 0 - не помечен, 1 - помечен. Тип - Число(1,0) (бинарное значение). |
ACTCNT |
Счетчик действий (движения) для документа (один документ может вызывать несколько движений регистров). Фактически хранит информацию о количестве движений по всем регистрам + записи периодических реквизитов (без учета проводок по бух. учету). Тип – Число(4). |
VERSTAMP |
Количество изменений записи таблицы. Изменением считается любое действие "Изменить (открыть)" + действия при изменении структуры. Тип - Число(4). |
RFxxx |
Флаг наличия движений по регистру "xxx". Тип - Число(1,0). |
SPyyy |
Значение общих реквизитов документов, в которых установлено свойство «отбор». Если свойство «отбор» не установлено, то общие реквизиты хранятся в таблицах документов (DHxxx). Тип - Число, Строка, Дата. |
TSPyyy |
Дополнение к общим реквизитам, заполняется только для неопределенных типов значений реквизитов отбора (используется совместно с полем «SPyyy»). Тип - Строка(3). |
DSzzz |
Флаг принадлежности последовательности. ZZZ - десятичный ID последовательности. Принимает 3 значения: 0 - документ не принадлежит последовательности, 1 - документ находится на границе или за границей последовательности (или находился на ней), 2 - документ находится перед границей последовательности (устанавливается в момент проведения). |
Информация о работе Лекции по «Информационные технологии в экономике»