
- •Ведение
- •1 Основные теоретические сведения
- •1.1 Архитектура среды 1с:Предприятие
- •1.2 Разработка конфигурации
- •1.3 Инструменты разработки
- •1.3.1 Дерево конфигурации
- •1.3.2 Палитра свойств
- •1.3.2.1 Основные свойства
- •1.3.2.2 Группа свойств «Представление»
- •1.3.2.3 Группа свойств «Разработка»
- •1.3.3 Объектные и необъектные данные
- •1.3.4 Конструкторы
- •1.3.4 Редакторы
- •1.3.4.1 Редактор экранных форм
- •1.3.4.2 Редактор интерфейсов
- •1.3.4.3 Табличный редактор
- •1.3.4.4 Редактор программных модулей
- •1.3.5 Встроенный язык
- •1.3.6 Синтакс – помощник
- •1.3.7 Отладчик
- •1.3.8 Замер производительности
- •1.3.9 Механизм запросов
- •1.3.10 Работа с конфигурацией
- •1.3.10.1 Сохранение конфигурации
- •1.3.10.2 Обновление конфигурации
- •1.3.10.3 Сохранение конфигурации в файл
- •1.3.10.4 Создание резервной копии иб
- •1.3.10.5 Сравнение и объединение конфигураций
- •1.3.11 Работа в пользовательском режиме
- •1.3.12 Основная конфигурация и конфигурация базы данных
- •1.3.13 Средства групповой разработки
- •1.4 Объекты системы
- •1.4.1 Классификация объектов конфигурации
- •1.4.1.1 Прикладные объекты
- •1.4.1.2 Подчиненные объекты
- •1.4.2 Типы данных
- •1.4.3 Встроенный язык программирования
- •1.4.3.1 Виды модулей
- •1.4.3.2 Контекст выполнения модуля
- •1.4.3.3 Формат описания элементов языка
- •1.4.3.4 Формат программного модуля
- •1.4.3.5 Формат операторов
- •1.4.3.6 Имена переменных, процедур и функций
- •1.4.3.7 Зарезервированные слова
- •1.4.3.8 Структура программного модуля
- •1.4.3.9 Специальные символы, используемые в исходном тексте
- •1.4.3.10 Примитивные типы данных
- •1.4.3.10.2 Булево (Boolean)
- •1.4.3.10.3 Дата (Date)
- •1.4.3.10.4 Неопределено (Undefined)
- •1.4.3.10.5 Строка (String)
- •1.4.3.10.7 Число (Number)
- •1.4.3.11 Оператор присваивания
- •1.4.3.12 Выражения языка
- •1.4.3.12.1 Арифметические операции
- •1.4.3.12.2 Логические операции
- •1.4.3.12.3 Операции сравнения:
- •1.4.3.12.4 Булевы операции:
- •1.4.3.13 Оператор объявления переменной
- •1.4.3.14 Оператор условного выполнения
- •1.4.3.15 Операторы цикла
- •1.4.3.16 Оператор управления циклом
- •1.4.3.17 Оператор прерывания цикла
- •1.4.3.17 Оператор перехода
- •1.4.3.18 Оператор обработки исключительных ситуаций
- •1.4.3.19 Процедуры и функции
- •1.4.3.19.1 Описание процедур и функций
- •1.4.3.19.1.1 Процедура
- •1.4.3.19.1.2 Функция
- •1.4.3.19.1.3 Предварительное описание процедур и функций
- •1.4.3.19.2 Вызов процедур и функций. Передача параметров
- •1.4.4 Основные приемы работы с объектами в программе
- •1.4.4.1 Обращение к свойствам объектов
- •1.4.4.2 Дополнение контекста объектов и форм
- •1.4.4.3 Работа с прикладными объектами средствами встроенного языка
- •1.4.4.4 Специфические объекты
- •1.4.4.5 Взаимосвязь объектов
- •1.4.4.6 Иерархия объектов
- •1.4.5 Работа с коллекциями значений
- •1.4.5.1 Использование номеров и индексов
- •1.4.5.2 Массив
- •1.4.5.3 Структура
- •1.4.5.4 Соответствие
- •1.4.5.5 Список значений, таблица значений, дерево значений
- •1.4.5.5.1 Список значений
- •1.4.5.5.2 Таблица значений
- •1.4.5.5.3 Дерево значений
- •1.5 Варианты работы системы
- •1.5.1 Файл - серверный вариант
- •1.5.2 Клиент - серверный вариант
- •1.5.2.1 Сервер 1с:Предприятия
- •1.5.2.2 Безопасная зона
- •1.6 Постановка задачи
- •2.1.1.2 Подсистемы
- •2.1.1.3 Константы
- •2.1.1.4. Перечисления
- •2.1.2 Задание на лабораторную работу
- •2.1.3 Контрольные вопросы
- •2.2 Лабораторная работа № 2. Справочники.
- •2.2.1 Теоретические сведения
- •2.2.1.1 Создание справочника с табличной частью
- •2.2.1.2 Создание иерархического справочника
- •2.2.1.3 Создание справочника с предопределенными элементами
- •2.2.1.4 Создание подчиненного справочника
- •2.2.1.5 Создание формы для работы со связанными справочниками
- •2.2.2 Задание на лабораторную работу
- •2.2.3 Контрольные вопросы
- •2.3 Лабораторная работа № 3. Документы
- •2.3.1 Теоретические сведения
- •2.3.1.1 Проведение документа
- •2.3.1.2 Создание документа
- •2.3.1.3 Создание формы документа
- •2.3.1.4 Создание процедуры обработки события в модуле формы
- •2.3.1.5 Создание процедуры обработки события в общем модуле
- •2.3.1.6 Усовершенствование формы документа
- •2.3.1.7 Ввод документов на основании
- •2.3.2 Задание на лабораторную работу
- •2.3.3 Контрольные вопросы.
- •2.4 Лабораторная работа № 4. Регистры сведений
- •2.4.1 Теоретические сведения
- •2.4.1.1 Регистр сведений «КурсыВалют»
- •2.4.1.2 Отбор в диалоге
- •2.4.1.3 Чтение значения курса валют
- •2.4.1.4 Регистр сведений «Цены поставщиков»
- •2.4.1.5 Регистр сведений «Цены номенклатуры»
- •2.4.1.6 Создание функции РозничнаяЦена()
- •2.4.1.7 Автоматическое заполнение цены документа «ОказаниеУслуги»
- •2.4.2 Задание на лабораторную работу
- •2.4.3 Контрольные вопросы
- •2.5 Лабораторная работа № 5. Регистры накопления
- •2.5.1 Теоретические сведения
- •2.5.1.1 Проведение документа по нескольким регистрам
- •2.5.1.2 Регистр «Остатки номенклатуры»
- •2.5.1.2 Проведение документа «РасходнаяНакладная»
- •2.5.1.3 Оборотный регистр накопления «Продажи»
- •2.5.2 Задание на лабораторную работу
- •2.5.3 Контрольные вопросы
- •2.6 Лабораторная работа № 6. Журналы документов. Критерии отбора.
- •2.6.1 Теоретические сведения
- •2.6.1.1 Создание журнала документов
- •2.6.1.2 Создание критерия отбора
- •2.6.2 Задание на лабораторную работу
- •2.7.1.2 Макеты
- •2.7.1.2.1 Фиксация таблицы (шапки и боковика).
- •2.7.1.2.2 Защита от редактирования.
- •2.7.1.2.3 Перемещение по таблице.
- •2.7.1.2.4 Управление видом таблицы.
- •2.7.1.2.5 Масштабирование изображения.
- •2.7.1.3 Построение отчета
- •2.7.1.4 Печатная форма элемента справочника
- •2.7.1.5 Печатная форма списка справочника
- •2.7.1.6 Расшифровка ячейки печатной формы
- •2.7.1.7 Печатная форма документа
- •2.7.1.8 Печатная форма журнала документов
- •2.7.2 Задание на лабораторную работу
- •2.7.3 Контрольные вопросы
- •2.8 Лабораторная работа № 8. Отчеты и обработки.
- •2.8.1 Теоретические сведения
- •2.8.1.1 Создание отчета «Материалы»
- •2.8.1.2 Печать прайс-листа
- •2.8.1.3 Отчет «ЦеныПоставщиков» на заданную дату
- •2.8.2 Задание на лабораторную работу
- •2.8.3 Контрольные вопросы
- •Список литературы
1.4.4 Основные приемы работы с объектами в программе
1.4.4.1 Обращение к свойствам объектов
Помимо основного обращения через точку, в языке системы 1С:Предприятия предусмотрен механизм обращения к свойствам объектов по строке с именем свойства с помощью оператора [] (квадратные скобки).
<Объект>[.<Имя свойства;]
Таблица 1.15 Параметры обращения к свойствам объектов
<Объект> |
Объект, к свойству которого идет обращение. |
[.<Имя свойства;] |
Имя свойства, к которому необходимо обратиться. |
Такая конструкция позволяет обращаться к свойствам объектов так же, как это делается через точку с указанием имени свойства.
Пример:
Спр = Справочники.Номенклатура.НайтиПоКоду(ИскомыйКод); //Обращение к наименование справочника по строке с именем
// свойства А = Спр["Наименование"]; // Обращение к наименованию справочника по имени свойства А = Спр.Наименование; // Оба эти обращения к свойству абсолютно равнозначны
1.4.4.2 Дополнение контекста объектов и форм
В языке есть возможность, при обращении к объектам и формам извне, из других программных модулей, обращаться к переменным, процедурам и функциям этих модулей, как к свойствам и методам самих объектов и форм. Можно обращаться к тем переменным, процедурам и функциям, которые объявлены с ключевым словом «Экспорт». Для форм дополнительно возможно обращение к реквизитам формы.
Пример:
// Пример использования процедуры печати документов из журнала // документов. Допустим, у нас есть несколько различных
// документов, причем у всех есть процедура Печать().В модуле
// журнала документов располагается кнопка «Печать», которая
// вызывает процедуру печати текущего документа журнала. Процедура ПечатьНажатие(Элемент) // Получим текущий документ, на котором установлен курсор. ТекДок = ЭлементыФормы.ЖурналСписок.ТекущаяСтрока; // Получим основную форму текущего документа. ФрмТекДок = ТекДок.ПолучитьФорму(); // Вызовем процедуру печати, расположенную в модуле формы
//документа. ФрмТекДок.Печать() ; КонецПроцедуры
1.4.4.3 Работа с прикладными объектами средствами встроенного языка
Работа с любыми прикладными объектами (объектами конфигурации) схожа между собой, потому что есть общий принцип. Понимая этот принцип, можно быстро освоить приемы работы со всеми прикладными объектами, будь то справочники, планы счетов, документы, регистры или любой другой прикладной объект.
Данный раздел содержит классификацию объектов. В таблице 1.16 перечислены виды программных объектов с конкретными примерами, их краткое описание, типичные свойства и методы (т.е. встречающиеся у разных объектов).
Таблица 1.16 Классификация программных объектов
Вид объекта |
Описание |
Типичные свойства и методы |
Менеджер прикладных объектов данного типа примеры: СправочникиМенеджер ДокументыМенеджер КонстантыМенеджер РегистрыНакопленияМенеджер ОтчетыМенеджер ОбработкиМенеджер |
Объекты данного вида обеспечивают доступ к менеджерам конкретного прикладного объекта. Обычно доступ к таким объектам производится через свойства глобального контекста, например, Справочники.Сотрудники, Документы.Счет, РегистрыСведений.КурсыВалют и т.д. Эти объекты являются коллекциями значений и позволяют перебрать свои элементы с помощью цикла "Для Каждого". |
Свойства соответствуют именам прикладных объектов и являются объектами типа "Менеджер прикладного объекта" |
Менеджер прикладного объекта примеры: СправочникМенеджер ДокументМенеджер КонстантаМенеджер РегистрНакопленияМенеджер ОтчетМенеджер ОбработкаМенеджер |
Данный объект является "центральным" в объектной модели, из которого можно получить остальные объекты, например, ссылки, выборки, объекты для изменения, наборы записей и т.д. (см. ниже параграф "Взаимосвязь объектов"). Объект этого вида обеспечивает доступ к операциям над прикладным объектом как множеством элементов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новые записи, обращаться к формам и макетам прикладного объекта. |
Типичные свойства (для справочников и планов): <предопределенный элемент> Типичные методы: Выбрать() НайтиПоКоду() НайтиПоРеквизиту() ПустаяСсылка() СоздатьЭлемент() СоздатьНаборЗаписей() ПолучитьМакет() ПолучитьФорму() |
Ссылка примеры: СправочникСсылка ДокументСсылка ПланСчетовСсылка ПланВидовРасчетаСсылка |
Данный объект однозначно идентифицирует объект базы данных (например, элемент справочника, документ) и позволяет обращаться к нему в режиме «только чтение». Через свойства и методы этого объекта можно прочитать реквизиты элемента, обратиться к его табличным частям. Ссылки хранятся в реквизитах, ссылающихся на элементы данного прикладного объекта, например, в реквизите "Сотрудник" документа "ПриемНаРаботу" хранится ссылка на конкретный элемент справочника "Сотрудники". Заметьте, что у записей регистров нет ссылок. Для изменения объекта базы данных (элемента справочника, документа) нужно получить другой объект с помощью метода ПолучитьОбъект(). |
Типичные свойства: <реквизит> <табличная часть> <измерение> <ресурс> ПометкаУдаления, Активность Дата, Период Предопределенный Ссылка Типичные методы: Пустая() ПолучитьОбъект() ПолучитьФорму() Метаданные() Скопировать() |
Выборка примеры: СправочникВыборка ДокументВыборка ЖурналДокументовВыборка РегистрНакопленияВыборка |
Этот объект предоставляет возможность обхода (перебора) объектов базы данных. Например, можно перебрать элементы справочника или перебрать документы, входящие в конкретный журнал. Обратите внимание, что данный объект не является коллекцией значений и, следовательно, нельзя использовать цикл "Для Каждого" для перебора элементов. |
Свойства аналогичны свойствам объекта типа "Ссылка". Типичные методы: Следующий() ПолучитьОбъект() |
Объект примеры: СправочникОбъект ДокументОбъект ПланСчетовОбъект ОтчетОбъект ОбработкаОбъект |
Предоставляет доступ к элементу с возможностью записи изменений в базу данных. Этот объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить. Для отчетов и обработок через этот объект обычно осуществляется формирование отчета или выполнение обработки. Если в модуле прикладного объекта (не путать с модулем формы) есть экспортируемые переменные модуля или процедуры/функции, то они дополняют набор свойств и методов именно этого программного объекта. Для регистров подобного объекта не существует, а изменение данных всегда производится через набор записей (см. ниже). |
Свойства аналогичны свойствам объекта типа "Ссылка". Типичные методы: Записать() Удалить() Заблокировать() Разблокировать() Заблокирован() Скопировать() ПолучитьФорму() ПолучитьМакет() Метаданные() |
Список примеры: СправочникСписок ДокументСписок ЖурналДокументовСписок ПланСчетовСписок РегистрНакопленияСписок КритерийОтбораСписок |
Этот программный объект предназначен для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке. Этот объект нельзя создать программно, он создается системой автоматически при размещении на форме табличного поля. Конечно, программно можно создать табличное поле в экранной форме и тогда будет создан объект данного типа. |
Типичные свойства: Колонки Отбор Порядок Типичные методы: Обновить() |
Набор записей примеры: РегистрСведенийНаборЗаписей РегистрНакопленияНаборЗаписей РегистрБухгалтерииНаборЗаписей РегистрРасчетаНаборЗаписей ПоследовательностьНаборЗаписей |
Набор записей позволяет оперировать сразу несколькими записями прикладного объекта (обычно регистра). Набор записей можно целиком прочитать из базы данных, добавить в него записи или изменить их, а зетем записать в базу данных (в одной транзакции). У документов есть свойство-коллекция "Движения", которое предоставляет доступ к наборам записей по каждому регистру, отмеченному на закладке "Движения". Через это свойство обычно производится формирование движений документа при его проведении. |
Типичные свойства: Отбор ЭтотОбъект Типичные методы: Добавить() Удалить() Очистить() Записать() Прочитать() Количество() Выгрузить() Загрузить() |
Запись примеры: РегистрСведенийЗапись РегистрНакопленияЗапись РегистрБухгалтерииЗапись РегистрРасчетаЗапись |
Обеспечивает доступ к одной записи из набора, для того чтобы установить ее измерения, ресурсы и т.д. Этот объект возвращается методами других объектов, например, методом Добавить у объекта типа РегистрНакопленияНаборЗаписей. Объект типа "Запись" не является постоянным идентификатором конкретной записи регистра, наподобие объекта "Ссылка" для справочников и документов. У записей регистра сведений вообще нет неизменяемого во времени идентификатора и каждая запись регистра однозначно определяется значениями своих измерений (включая системные, например, Период, Регистратор, НомерСтроки) |
Типичные свойства: <измерение> <реквизит> <ресурс> Активность Период Регистратор НомерСтроки ВидДвижения Типичные методы: МоментВремени() |
Ключ записи примеры: РегистрСведенийКлючЗаписи РегистрНакопленияКлючЗаписи РегистрБухгалтерииКлючЗаписи РегистрРасчетаКлючЗаписи |
Этот объект нужен для идентификации записи регистра в табличном поле, например, набора записей документа-регистратора или списка всех записей регистра. Он используется для позиционирования в списке записей на конкретной записи регистра. |
Типичные свойства (кроме регистра сведений): НомерСтроки Регистратор Свойства для регистра сведений: <ИмяИзмерения> Период Регистратор |