Смекни!
smekni.com

Системы программирования (стр. 3 из 6)

2.6 Запуск внешних приложений

Для запуска внешнего приложения можно использовать функцию ЗапуститьПриложение().

Для запуска и управления внешним приложением можно использовать механизм OLE-Automation.

Пример.

Окно = СоздатьОбъект («Excel. Application»);

Окно. Workbooks. Add();

Для Н=1 По 10 Цикл

Ячейка = Окно. Cells (Н, 1);

Ячейка. Value = Н;

КонецЦикла;

Окно. Caption = «Отчет»;

Окно. Visible = 1;

2.7 Лабораторная работа №2

2.7.1 Цель лабораторной работы

1. Научится создавать простейшие программы в глобальном модуле и внешнем отчете.

2. Научиться пользоваться инструментальными средствами: синтаксический контроль, отладчик, синтакс-помощник.

3. Научиться пользоватьcя локальными и глобальными переменными.

4. Научиться пользоваться объектами агрегатного типа данных, обращаться к их атрибутам и методам – на примере объекта «ТаблицаЗначений»

5. Научиться пользоватьcя механизмом OLE Automation.

2.7.2 Задание на лабораторную работу

1. В глобальном модуле написать программу «Здравствуй мир»

2. Создать внешний отчет «ВызовВнешнихПроцедур»

3. Добавить в форму диалога кнопку «Открыть Excel». При нажатии этой кнопки вызывать Excel. Используя конструкцию «Попытка…», выдавать сообщение «Excel не доступен» при неудачной попытке открытия внешней программы.

4. Добавить в форму диалога кнопку «Открыть Word». При нажатии этой кнопки вызывать Word.

5. Вставить внешний отчет «ВызовВнешнихПроцедур» в конфигурацию.

6. Добавить кнопку на панель инструментов, для функции вызова отчета «ВызовВнешнихПроцедур».

7. Создать внешний отчет «РасчетСумм»

8. В отчете «РасчетСумм» добавить в форму диалога таблицу значений с колонками «Товар», «Количество», «Цена», «Сумма» и кнопки «Добавить строку», «Удалить строку», «Свернуть по товарам». Последняя кнопка должна суммировать по товарам сумму и количество. Средняя цена должна вычисляться автоматически.

3. Создание форм, обработчики событий формы

3.1 Объект «Справочник» и его свойства

Справочник – это агрегатный тип данных, средство для работы со списками однородных элементов данных. Название и структура каждого конкретного справочника определяются при его создании в конфигураторе.

У любого справочника существуют два реквизита, которые создаются автоматически – Код и Наименование. Система 1С: Предприятие предоставляет широкие возможности по работе с кодами элементов справочника: автоматическое присвоение кодов, автоматический контроль уникальности кода и другие.

Помимо кода и наименования, в справочниках системы 1С: Предприятие может храниться любая дополнительная информация об элементе справочника. Для хранения такой информации в справочнике может быть создан список реквизитов. Свойства справочника редактируются в окне редактирования «Справочник». Для визуального представления справочника существуют «Форма элемента», «Форма группы» и «Формы списка» (их может быть несколько).

3.1.1 Периодические реквизиты

Реквизиты справочников могут быть периодическими, т.е. иметь значения, связанные с датой. При изменении значения периодического реквизита старое значение сохраняется, при этом новое значение начинает действовать с указанной даты, старое – до указанной даты.

К периодическому реквизиту можно обращаться при помощи встроенного языка системы 1С: Предприятие – получать и записывать значение реквизита на указываемую дату.

В режиме использования конфигурации для периодического реквизита можно вызвать окно «История». Окно «История» позволяет редактировать историю изменений значения реквизита напрямую: вводить новые строки, редактировать или удалять существующие.

Методы периодических реквизитов

Катег = СпрСотр. Категория. Получить(НекаяДата);

СпрСотр. Категория. Установить (НекаяДата, НоваяКатегория);

Установка даты выборки периодических реквизитов

СпрСотр. ИспользоватьДату(НекаяДата);

Катег = СпрСотр. Категория;

СпрСотр. Оклад = 6000;

Проведение документов

При проведении документа часто требуется установить новое значение периодического реквизита на определенную дату. Это называется движение документа. В этом случае следует применять метод УстановитьРеквизитСправочника:

Пример:

Процедура ОбработкаПроведения()

УстановитьРеквизитСправочника (Сотрудник, «Должность», НоваяДолжность, ДатаПеремещения);

КонецПроцедуры

Объект «Периодический»

Для работы с историей периодического реквизита очень удобно использовать объект «Периодический».

Пример: вывести историю карьеры сотрудника за текущий год:

ИсторияКарьеры = СоздатьОбъект («Периодический»);

ИсторияКарьеры. ИспользоватьОбъект («Должность», ВыбрСотрудник);

ИсторияКарьеры. ВыбратьЗначения (НачГода(РабочаяДата(), КонГода (РабочаяДата()));

Пока ИсторияКарьеры. ПолучитьЗначение()=1 Цикл

Сообщить (Строка(ИсторияКарьеры. ДатаЗнач)+» «+ Строка (ИсторияКарьеры. Значение));

КонецЦикла;

3.1.2 Иерархические справочники

Справочник может иметь иерархическую структуру. Число уровней иерархии определяется в поле «Кол-во уровней» в окне редактирования. Для задания иерархии используется реквизит «Родитель», который и определяет, к какой группе относится элемент. Наиболее важные функции:

• ЭтоГруппа();

• ПринадлежитГруппе (<Группа>);

• Уровень();

Глубина вложенности групп настраивается в конфигураторе и не может превышать 10 уровней.

Использование многоуровневых справочников позволяет организовать ввод информации в справочник с нужной степенью детализации. Элементы и группы элементов в многоуровневом справочнике можно переносить из одной группы в другую.

3.1.3 Подчиненные справочники

Любой справочник может использоваться как сам по себе, так и быть подчиненным какому-либо другому справочнику. Например, справочник договоров может использоваться отдельно, а может быть связан со справочником организаций. Чтобы подчинить справочник какому-либо из справочников, уже существующих в системе, в поле «Подчинен» следует выбрать наименование этого справочника. Такой справочник в системе 1С: Предприятие называется владельцем. В терминах реляционных баз данных, между таблицами устанавливается связь «один-ко-многим». В этом случае каждый элемент подчиненного справочника будет связан с одним из элементов справочника-владельца.

В отличие от многоуровневого справочника, в котором все элементы имеют одинаковую структуру, использование механизма подчиненных справочников позволяет связать элементы разной структуры. В этом случае каждый элемент подчиненного справочника будет связан с одним из элементов справочника-владельца.

Установка текущего владельца

СпрДоговоры = СоздатьОбъект («Справочник. Договоры»);

СпрДоговоры. ИспользоватьВладельца(ВыбрКонтрагент);

СпрДоговоры. ВыбратьЭлементы();

3.1.4 Обработка элементов справочника

Обычно для обработки элементов справочника используется следующая последовательность команд:

Спр=СоздатьОбъект («Справочник. НазваниеСправочника»);

Спр. ИспользоватьДату (<Дата>);

// Используется, если есть периодические реквизиты

Спр. ИспользоватьВладельца (<Владелец>);

// Используется, если нужно выбрать только элементы, // подчиненные владельцу

Спр. ИспользоватьРодителя (<Группа>);

// Используется, если нужно выбрать

// только элементы, принадлежащие Группе

Спр. ВыбратьЭлементы();

Пока Спр. ПолучитьЭлемент()=1 Цикл

Сообщить (Спр. Код+» «+Спр. Наименование);

КонецЦикла;

3.1.5 Экранные формы справочников

Форма списка справочника

Для удобства работы пользователей со справочником на этапе конфигурирования можно создать несколько видов экранных форм для показа справочника. В зависимости от контекста вызова справочника можно задать использование определенного диалога для работы с ним.

Модуль формы списка содержит процедуры и функции, которые действуют в контексте данной формы (в контексте объекта Справочник).

Предопределенные процедуры вызываются системой 1С при наступлении определенных событий. Предопределенные процедуры вызываются системой 1С при наступлении определенных событий, поэтому они являются обработчиками событий.

Предопределенные процедуры формы списка справочника

ПриОткрытии()

ПриЗакрытии()

ПриЗаписи()

ПриВыбореРодителя(НовРодитель)

ПриВыбореВладельца(НовВладелец)

ПриУстановкеОтбора (Реквизит, Значение)

В форме списка справочника элементы могут быть отсортированы в различном порядке: по коду, по наименованию или по любому реквизиту, у которого в Конфигураторе установлен флажок Сортировка. Задать тип сортировки можно программно методом Сортировка (Способ, ФлагРазрешенияИзменения)

В форме списка справочника элементы могут быть отфильтрованы, т.е. пользователю будут показаны только нужные элементы. Программно установить отбор можно методом УстановитьОтбор (Реквизит, Значение). Для этого у реквизита должен быть установлен флажок «Отбор по реквизиту» в Конфигураторе.

Форма элемента и форма группы

Если справочник имеет сложную структуру, тогда его элементы удобнее редактировать в отдельном окне, а не в списке.

В форме элемента справочника также есть предопределенные процедуры (события):

Предопределенные процедуры формы элемента справочника

ПриОткрытии()

ПриЗакрытии()

ПриЗаписи()

ВводНового()

Подбор из справочника

Функция подбора позволяет выбирать несколько значений из справочника или другого объекта, не закрывая его.