Основы разработки прикладных решений для 1С.pptx
- Количество слайдов: 101
1 ОСНОВЫ РАЗРАБОТКИ ПРИКЛАДНЫХ РЕШЕНИЙ ДЛЯ 1 С: ПРЕДПРИЯТИЕ Лекция 3
2 Запуск 1 С • Система 1 С: Предприятие может работать в двух режимах. Первый • • называется "1 С: Предприятие", второй - " Конфигуратор ". Разработка прикладных решений ведется в конфигураторе, а их исполнение - то есть - работа пользователей с ними - в режиме 1 С: Предприятие. Говоря о системе программ "1 С: Предприятие" следует помнить, что существуют понятия " платформа " и " конфигурация ". Платформа - это среда, в которой разрабатывают и исполняют конфигурации. Конфигурация –это набор процедур , для исполнения которых нужна платформа. При запуске программы первым делом на экране появляется окно Запуск 1 С: Предприятия В нем нужно, во-первых, указать нужную конфигурацию, во-вторых - выбрать режим ее запуска. В области Информационные базы находится список подключенных информационных баз. Если в списке пока нет информационных баз - запуск программы будет сопровождаться сообщением о том, что список информационных баз пуст и предложением добавить в него новую базу.
3 Окно добавления базы • 1 С: Предприятие. Запуск системы в режиме • • • 1 С: Предприятие. Конфигуратор. Запуск системы в режиме Конфигуратор. Добавить. Запуск процесса добавления в список новой информационной базы. Изменить. Открывает окно изменения параметров добавленной информационной базы. Удалить. Удаляет из списка информационную базу. Настройка. Позволяет настроить внешний вид списка Информационные базы, установить каталог для поиска шаблонов конфигураций и обновлений. Нажмем на кнопку Добавить (или ответим Да на вопрос о создании новой базы). Появится окно Добавление информационной базы/группы. Фактически, это мастер, который проводит вас через несколько шагов по добавлению базы в список
4 Варианты • Создание новой информационной базы. • Добавление в список существующей информационной базы.
5
6 • Если в системе шаблоны каких-либо конфигураций установлены , то их перечень можно будет найти в данном окне. • Если нет, то выбирается вариант создания информационной базы без конфигурации. • Он предназначен либо для разработки новой конфигурации, либо для загрузки в пустую конфигурацию выгруженной ранее информационной базы или конфигурации из файла. • Нажав кнопку Далее попадаем в следующее окно, которое служит для указания наименования и типа расположения базы
7
8 Шаг 3 • Здесь задается каталог информационной базы и язык. • Нажмем Готово - будет создана пустая информационная база, в списке баз появится название новой базы
9 Конфигурация • Конфигурация - это описание структуры данных, на основе которых строится работа пользователя с системой в режиме 1 С: Предприятие • Деревом конфигурации постоянно используется при разработке. • Нередко, говоря о разработке для платформы 1 С: Предприятие, применяют термин "программирование". "Программирование" для 1 С: Предприятия - это не только написание программного кода, но и работа в визуальном режиме - создание и настройка объектов, разработка экранных форм, работа с различными конструкторами, ускоряющими процесс разработки. Некоторые действия в ходе разработки можно совершить лишь в визуальном режиме.
10 Основная конфигурация и конфигурация базы данных • Информационная база хранит две конфигурации. • Одна из них называется основной конфигурацией или просто конфигурацией. Именно она правится в ходе работы с конфигуратором и именно она открывается командой Конфигурация > Открыть конфигурацию. • Вторая конфигурация называется конфигурацией базы данных. Она используется в ходе работы пользователей. Редактировать основную конфигурацию можно в процессе работы пользователей с информационной базой. Для того, чтобы перенести изменения в конфигурацию базы данных, нужно, чтобы пользователи завершили работу с программой. Для того, чтобы открыть конфигурацию базы данных, необходимо выполнить команду Конфигурация > Конфигурация базы данных > Открыть конфигурацию БД. • Команды изменения объектов в окне конфигурации базы данных заблокированы.
11 • Если, открыв конфигурацию, мы внесем в нее изменения, например, создадим новый объект, в заголовке окна дерева конфигурации можно будет наблюдать значок: "*" (признак модифицированности конфигурации) Значок "*" означает, что внесенные изменения не сохранены в основной конфигурации. То есть он сигнализирует о том, что изменения, которые мы внесли на этапе конфигурирования, могут быть утеряны при, например, внезапном отключении питания. • Для того, чтобы сохранить основную конфигурацию, нужно выполнить команду меню Конфигурация > Сохранить конфигурацию. • После сохранения значок модифицированности конфигурации исчезает, но появляется значок отличия конфигураций "<!> « • Знак отличия конфигураций указывает на то, что изменения, внесенные в основную конфигурацию, пока не внесены в конфигурацию базы данных.
12 • Для того, чтобы перенести изменения из основной конфигурации в конфигурацию базы данных, нужно выполнить команду Конфигурация > Обновить конфигурацию базы данных. Если изменения, внесенные в основную конфигурацию не были сохранены до выполнения этой команды - система, перед обновлением конфигурации базы данных, предложит сначала сохранить изменения. • При обновлении конфигурации базы данных система выводит окно с перечнем изменений, которые будут внесены в конфигурацию базы данных
13 Варианты запуска 1 С: Предприятия из конфигуратора • В процессе правки конфигурации в режиме конфигуратора бывают моменты, когда нужно проверить функциональность разрабатываемого решения в режиме 1 С: Предриятие. Конфигурацию можно открыть в этом режиме прямо из Конфигуратора, воспользовавшись командой Сервис > 1 С: Предприятие или соответствующей кнопкой на панели инструментов. • Другой режим запуска, доступный из Конфигуратора, предназначен для отладочных целей. Для того, чтобы открыть конфигурацию в режиме отладки, выполните команду Отладка > Начать отладку или нажмите соответствующую кнопку. • Если до попытки запуска системы 1 С: Предприятие из Конфигуратора в конфигурацию были внесены изменения, не отраженные в конфигурации базы данных, перед запуском система уточнит, хотите ли вы обновить конфигурацию базы данных. • Если вы ответите Нет - программа запустится, но изменения из основной конфигурации не будут перенесены в конфигурацию базы данных. При ответе Да система сначала обновит конфигурацию базы данных, а потом запустится в режиме 1 С: Предприятие.
14 ОБЗОР ОБЪЕКТОВ 1 С: ПРЕДПРИЯТИЕ
15 • Все объекты системы можно разделить на три большие группы: Общие объекты, прикладные объекты и подчиненные объекты. • Общие объекты расположены в ветви дерева конфигурации Общие. Они играют вспомогательную роль при разработке конфигурации.
16 общие объекты • С помощью общих объектов можно управлять логической структурой разрабатываемой конфигурации, настраивать особенности взаимодействия пользователя с конфигурацией, они включают в себя объекты, которые могут быть настроены для совместного использования другими объектами конфигурации. • Общие объекты играют вспомогательную, с точки зрения разработки прикладного решения роль. Результат их работы интересен скорее программисту, чем пользователю, хотя нельзя сказать, что эти объекты не участвуют в работе пользователя или неважны для целей решения прикладной задачи. Они - важная часть конфигурации.
17 общие объекты • Подсистемы. Позволяют структурировать конфигурацию по видам решаемых с ее помощью задач. Например, если конфигурация решает задачи бухгалтерского учета и расчета зарплаты, логично будет создать две подсистемы. При создании новых объектов можно "привязывать" их к подсистемам в зависимости от их предназначения. Использование подсистем облегчает работу с большими конфигурациями. • Общие модули. Содержат процедуры и функции, доступные из других объектов. В этих модулях нельзя определять переменные. • Параметры сеанса. Они нужны, в основном, для настройки прав доступа к данным. Эти параметры устанавливаются при старте системы. Например, в этот параметр может быть записано имя пользователя, вошедшего в систему
18 общие объекты • Роли. Предназначены для настройки полномочий различных групп пользователей по доступу к данным. После создания и настройки роли ее можно назначить пользователю (для настройки списка пользователей применяют команду меню Администрирование > Пользователи ). • Планы обмена. Определяют правила обмена данными между информационными базами. Например, этот механизм можно использовать для обмена данными между головной организацией и филиалами или между подразделениями организации.
19 общие объекты • Критерии отбора. Позволяют создавать правила отбора, которые пользователь может применять при работе со списками данных в режиме 1 С: Предприятие. • Подписки на события. С помощью подписок на события можно назначать обработчики для событий объектов. Например, обработчик может быть вызван при копировании документа. • Регламентные задания позволяют выполнять различные операции по расписанию. • Общие формы. Эти формы могут быть использованы различными объектами для решения схожих задач.
20 общие объекты • Общие формы. Эти формы могут быть использованы различными объектами для решения схожих задач. • Интерфейсы. Хранит пользовательские интерфейсы (главное меню, набор панелей инструментов), которые можно назначать различным пользователям. Каждый интерфейс можно оснастить лишь теми командами, которые нужны определенному пользователю. • Общие макеты. Хранит общие макеты (шаблоны печатных форм ), которые доступны другим объектам конфигурации для формирования печатных вариантов электронных материалов. • Пакеты XDTO. XML Data Transfer Object (XDTO) - это универсальный способ представления данных, который предназначен для организации взаимодействия с внешними программными системами. В частности, с другими конфигурациями 1 С: Предприятия 8, с другими информационными системами.
21 общие объекты • Общие картинки. Хранит общедоступные картинки. Их можно, • • например, использовать в формах при настройке изображений на кнопках и в других случаях. WEB-сервисы. Здесь можно создать и настроить WEB-сервисы, которые обеспечивают экспорт функциональности конфигурации. WS-ссылки. Содержит статические ссылки на опубликованные WEB-сервисы. Позволяет использовать функциональность этих сервисов. Стили. Содержит наборы настроек форматирования, которые можно применить в ходе разработки. Например - с помощью механизма стилей можно быстро настроить форму заранее заданным образом. Языки. Позволяют задавать различные языки, на которых можно будет настраивать интерфейс программы. Если в системе задано несколько языков, при настройке объекта появляется возможность задавать некоторые параметры на разных языках. В итоге это приводит к тому, что интерфейс системы может существовать для различных языков.
22 прикладные объекты • Прикладные объекты применяются для разработки прикладного решения. Именно эти объекты "видны" пользователю, который работает с большинством из них в режиме 1 С: Предприятие.
23 прикладные объекты • Константы. Предназначены для хранения информации, которая либо не изменяется в ходе деятельности организации, либо изменяется очень редко. Например, в константе можно сохранить название организации, ФИО директора и другие подобные данные. • Справочники. Предназначены для хранения списков однотипных данных. Например, в справочниках хранят списки клиентов, сотрудников, товаров, материалов. • Документы. С их помощью информация попадает в систему. Документы могут выступать в качестве электронных аналогов первичных учетных документов. Вместе с документами используются такие объекты, как Нумераторы (для обеспечения сквозной нумерации различных документов ) и Последовательности (для обеспечения правильной последовательности документов ).
24 прикладные объекты • Журналы документов. Они используются для группировки • • • документов различных видов. Перечисления. Их применяют для хранения наборов значений, заданных в процессе конфигурирования и не изменяемых в ходе работы пользователя с конфигурацией. Отчеты. Применяются для создания отчетов, которые являются средством представления выходных данных учетной системы. Обработки. Предназначены для обработки информации, выполнения различных операций с данными. Планы видов характеристик. Применяются для описания видов характеристик объектов. Планы счетов. Используются для целей организации бухгалтерского учета. Представляют собой списки счетов учета. Применяются совместно с регистрами бухгалтерии.
25 прикладные объекты • Планы видов расчета. Используются для описания видов расчета и • • • их взаимосвязей, применяются совместно с регистрами расчета. Регистры сведений. Предназначены для накопления информации по нескольким измерениям с возможностью хранения истории изменения данных и с возможностью хранения нечисловых данных. Регистры накопления. Предназначены для хранения данных в разрезе нескольких измерений, поддерживают получение информации об остатках и оборотах хранимых величин. Регистры бухгалтерии. Хранят информацию о бухгалтерских операциях. Регистры расчета Хранят информацию о расчетах. Применяются, в основном, для целей расчета заработной платы. Бизнес-процессы. Позволяют создавать структуры, автоматизирующие выполнение многошаговых операций. Например - движение документа между различными должностными лицами организации. Задачи. Используются совместно с Бизнес-процессами. Нужны для ведения учета задач по исполнителям.
26 подчиненные объекты • Подчиненные объекты подчинены другим объектам конфигурации. • Пример. Объекту конфигурации Документ, которому принадлежит несколько подчиненных объектов.
27 подчиненные объекты • Реквизиты позволяют добавлять объекту дополнительные свойства. Например, если нам нужно, чтобы в документ можно было ввести сумму операции, мы можем ввести в него соответствующий реквизит. • Табличные части. Используются в том случае, если в документ (или другой объект, которому подчинена табличная часть ) нужно добавить произвольное количество записей (фактически - дополнительных свойств), оформленных в виде таблицы. Табличные части, в свою очередь, имеют реквизиты. • Формы используют для организации ввода и просмотра информации. В 1 С: Предприятие 8 существует специальный редактор, который предназначен для разработки и модификации форм. • Макеты применяют для описания печатных форм различных объектов. Макет содержит "заготовки", которые, при формировании печатной формы конкретного объекта заполняются данными.
28 подчиненные объекты • Графы журнала документов используются для отображения информации о документах, входящих в журнал. • Измерения регистров - это объекты, в разрезе которых ведется учет показателей в регистрах. • Ресурсы регистров используют для хранения данных, по которым ведется учет в регистре.
29 ТЕХНОЛОГИИ СОЗДАНИЯ ОБЩИХ ОБЪЕКТОВ 1 С
30 • Для создания нового общего объекта(подсистемы, константы и др. ) используется окно дерева конфигурации • Для создания нового объекта достаточно в окне дерева конфигураций выбрать нужный объект и щелкнуть по нему правой кнопкой в контекстном меню выбрать «Добавить» . Сразу же после этого в дерево конфигурации будет добавлен новый объект и будет выведено окно для настройки свойств этого объекта.
31 Пример • Подсистемы применяют для логической структуризации конфигурации по решаемым с ее помощью задачам. • Для добавления новой подсистемы щелкнем правой кнопкой мыши по разделу Подсистемы дерева конфигурации и выберем в появившемся контекстном меню пункт Добавить. Сразу же после этого в дерево конфигурации будет добавлен новый объект и будет выведено окно для настройки свойств этого объекта
32 Кнопки Панели инструментов свойств объекта • Сортировка по алфавиту. Позволяет отсортировать содержимое • • окна по алфавиту. Это полезно в том случае, если вы знаете название параметра, но не знаете точно в каком разделе он расположен. Сортировка по категориям. Этот режим включен по умолчанию. Категории свойств можно сворачивать и разворачивать, щелкая мышью по их заголовкам. Показывать только важные. Отображает в окне лишь важнейшие, по мнению разработчиков, свойства. Отменить. Если вы отредактировали свойство, редактирование можно отменить, нажав на эту кнопку. Например, если вы изменили имя объекта и хотите вернуться к прежнему имени - вы можете это сделать до тех пор, пока не переходили к редактированию другого свойства. После перехода к другому свойству изменения будут сохранены автоматически и кнопка будет недоступна. Сохранить. Сохраняет изменения, внесенные в поле без выхода из режима редактирования поля. Обычно разработчики пользуются возможностью автоматического сохранения изменений.
34 Пример
35 Создание констант • Константы используются для хранения информации, которая либо никогда не меняется, либо меняется очень редко. Например, константу, которая содержит фамилию имя и отчество директора организации можно сравнить с табличкой на двери директорского кабинета. Обычно подобные таблички меняют не слишком часто. • Для задании константы необходимо задать текст сообщения и его максимальную длину
36 • В группе свойств Основные -новое свойство Подсистемы. При нажатии на кнопку с тремя точками в правой части поля появляется окно, в котором можно выбрать подсистему, открытую для константы.
37 Другие свойства констант • Модуль менеджера значений. Здесь, по нажатию на кнопку Открыть будет открыт на редактирование модуль менеджера значения константы. Модули содержат программный код. Менеджер значения константы - это особый объект, который предназначен для работы с данными, хранящимися в константе. В модуле менеджера значения константы можно определить процедуры, которые выполняются перед записью константы и при записи константы. • Тип. Это свойство определяет вид информации, которую может содержать объект, например строка. Помимо указания типа данных здесь можно увидеть дополнительные настройки. • Режим управления блокировкой данных. Этот параметр задает режим, в котором осуществляется блокировка данных при работе системы. Блокировки нужны для того, чтобы, например, при многопользовательской работе с информационной базой данных, с которыми работает один пользователь, не были бы изменены другим.
38 конструктор общих форм • После того, как константа создана, нужно создать форму констант. Для того, чтобы это сделать, нужно вызвать контекстное меню для ветви Константы дерева конфигурации и выбрать в нем пункт Создать форму констант. Появится окно конструктора общих форм. • Введем имя и синоним. • Нажмем на кнопку Далее. Отобразится второе окно конструктора общих форм , которое содержит перечень элементов управления, которые будут размещены на форме. • Разместим их на форме и нажмем Готово
39 Результат общая форма константы
40 СПРАВОЧНИКИ И ПЕРЕЧИСЛЕНИЯ
41 Справочники • Справочники в 1 С: Предприятии 8 используются для организации хранения информации об однотипных объектах. Например, справочник Клиенты будет хранить данные о клиентах, справочник Сотрудники - о сотрудниках организации, Контрагенты - о контрагентах, Номенклатура - о товаро-материальных ценностях, Подразделения - о подразделениях организации. Справочник можно сравнить с обычной бумажной картотекой. Каждая конфигурация обычно содержит множество справочников. • В режиме конфигурирования мы создаем структуру справочника, определяем формы, которые позволяют работать с ним, устанавливаем его связи с другими объектами конфигурации. А в режиме 1 С: Предприятие, то есть - в пользовательском режиме - происходит наполнение справочника информацией
42 • Для того чтобы создать справочник, перейдем в ветвь Справочники дерева конфигурации и создадим в ней новый элемент.
43 • Окно редактирования объекта конфигурации имеет множество закладок, которые позволяют последовательно настраивать свойства объекта, редактировать его структуру. • Обратите внимание на кнопки Назад и Далее, которые расположены в нижней части окна. Они предназначены для прохождения по вкладкам и настройки его свойств в правильной последовательности. Вы можете либо пользоваться этими кнопками, либо выбирать закладки вручную
44 Свойства • Основные. Имя, Синоним, Комментарий. Они имеют тот же смысл, что и у других объектов. • На закладке Данные нужно настроить длину кода и наименования элемента справочника • Длина кода. 9 -значный код способен вместить такое количество элементов, которого гарантированно хватит не только для большинства реально используемых конфигураций. На практике длина кода бывает как меньше, так и больше 9. Код используется для идентификации элементов справочника и код каждого элемента уникален. Система сама следит за уникальностью кодов. • Длина наименования. Это свойство справочника обычно хранит краткое наименование элемента. Например, для справочника о физических лицах вполне логично в качестве наименования использовать какую-то комбинацию фамилии, имени и отчества физического лица. можно использовать сокращенную форму, например, "Иванов И. И. ", однако, фамилии могут быть довольно длинными, поэтому есть смысл увеличить длину наименования до 30 символов.
45 Реквизиты и Табличные части. • Реквизиты - в этом поле можно описать дополнительные характеристики элемента справочника. Для того, чтобы добавить в справочник новый реквизит, щелкните по кнопке Добавить в поле Реквизиты или воспользуйтесь соответствующей командой контекстного меню. Добавление нового реквизита сродни добавлению нового объекта - система создает его, присваивает имя по умолчанию и выводит окно его свойств.
46 • Заполнив поля окна редактирования элемента справочника, нажмем • • • кнопку ОК. Данные будут записаны в базу, элемент появится в окне Справочник Физические лица. Осмотримся в окне списка справочника, в частности, посмотрим на меню Действия, выделив элемент справочника. Действие большинства команд, которые перечислены в меню Действия вполне понятно из их названий. Однако некоторые из них нуждаются в пояснениях. Команда Удалить непосредственно позволяет удалить текущий элемент справочника непосредственно. При непосредственном удалении элемента справочника возможно нарушение ссылочной целостности информационной базы. Команда Установить пометку удаления лишь помечает объект на удаление, не производя его удаления из базы. Кнопка Вывести список позволяет выводить справочник в виде, подходящем для распечатки или сохранения. Сразу после выполнения этой команды появится окно, которое позволяет, вопервых, указать формат выходного документа (табличный документ или текстовый документ), а во-вторых - выбрать состав данных справочника, которые в этот документ выгружаются
47 ОСНОВЫ ПРОГРАММИРОВАНИЯ В 1 С
48 язык программирования 1 С: Предприятие • Данный язык является предварительно компилируемым предметно- ориентированным языком высокого уровня. • Средой исполнения языка является программная платформа « 1 С: Предприятие» . Визуальная среда разработки ( «Конфигуратор» ) является неотъемлемой частью пакета программ « 1 С: Предприятие» . Проекты на языке 1 С: Предприятия называются конфигурациями. • Встроенный язык 1 С: 8 наиболее подобен языку Visual Basic. Платформой предоставляется фиксированный набор базовых классов 1 С. • На основании базовых классов средствами визуального конфигурирования можно создавать любое количество порождённых классов (возможность определить новый класс программно — отсутствует). Допускается только одна явная ступень наследования классов. Как правило, объекты порождённых классов представляют собой записи (или некоторые наборы записей) в базе данных. Такие классы образуют «Дерево метаданных» . В терминах встроенного языка программирования 1 С такие классы называются объектами метаданных.
49 • Программный код в разрабатываемой конфигурации • • • хранится в модулях. В системе 1 С используются несколько видов модулей: Модули форм. Модули набора записей. Модули объектов. Общие модули. Модуль сеанса. Модуль внешнего соединения. Модуль приложения. Программный код в модулях оформлен в виде процедур и функций.
50 • Модули форм. Эти модули используются, в основном, для организации работы с формой. Например, если нам нужно реализовать возможность автоматического заполнения одних полей на основании данных, введенных в другие, то нам нужно работать именно с модулем формы. Модули включают в себя процедуры, функции, объявления переменных. Получить доступ к этим модулям можно в редакторе форм. • Модули набора записей. Они используются в регистрах. • Модули объектов. Эти модули соответствуют отдельным объектам системы и позволяют организовывать работу с объектом. Получить доступ к модулю объекта можно, например, щелкнув правой кнопкой мыши по значку объекта в дереве конфигурации и выбрав в появившемся контекстном меню пункт Открыть модуль объекта.
51 • Общие модули. Эти модули создают в ветви Общие модули дерева конфигурации. Они используются в самых разных целях. В частности для того, чтобы сделать некоторые процедуры общими для различных объектов конфигурации. Например, в нескольких объектах нужно выполнить одинаковую проверку данных, введенных пользователем. Если для этого применяется один и тот же код - вполне логично вынести этот код в общий модуль. • Модуль сеанса. Используется для установки параметров сеанса. • Модуль внешнего соединения. Используется для работы в режиме внешнего соединения. • Модуль приложения. Хранит обработчики событий, которые происходят при начале и при окончании работы системы. Если мы хотим, чтобы некоторые действия выполнились автоматически при начале работы пользователя с информационной базой, нам можно воспользоваться именно этим модулем
52 Процедуры и функции • Процедуры и функции используются для логического • • • структурирования программного кода. Процедура отличается от функции тем, что функция, будучи вызванной, возвращает в точку вызова некоторое значение. То есть можно сказать, что функцию вызывают для того, чтобы получить от нее некоторое значение, с которым потом можно работать в коде основной программы. Процедура же ориентирована на выполнение некоторых действий, а не на возврат значений. Для объявления процедуры используется ключевое слово Процедура. Шаблон процедуры выглядит так: Процедура Имя. Процедуры(Имя. Параметра 1, Имя. Параметра 2, …) //Тело процедуры, команды на встроенном языке Конец. Процедуры Для объявления функции используется ключевое слово Функция. Шаблон функции выглядит так: Функция Имя. Функции(Имя. Параметра 1, Имя. Параметра 2, …) //Тело функции, команды на встроенном языке Возврат(Возвращаемое. Значение); Конец. Функции
53 • команды в теле процедур и функций разделяются символом "; " - точка с запятой. Имя процедур и функций строится способом, похожим на способ построения имен объектов. Начинаться имя должно с буквы или с символа подчеркивания "_". В состав имени процедуры или функции могут входить буквы, цифры и символы подчеркивания. • Код программы, которая будет выполняться хранится в модуле приложений. Для открытия модуля используется команда контекстного меню конфигурации «Открыть модуль приложения»
54 • В начальный момент модуль пуст, но в него можно добавить процедуры-обработчики событий, предусмотренные для данного модуля. Для добавления таких процедур нужно либо воспользоваться командой Текст > Процедуры и функции, либо - нажать на кнопку Процедуры и функции на панели инструментов. Окно процедур и функций содержит список предопределенных процедур-обработчиков событий.
55 • Здесь можно увидеть несколько имен процедур. • В частности процедура При. Начале. Работы. Системы. Она выполняется при начале работы системы, например при отображении главного окна программы. С помощью этой процедуры можно программно открывать формы, выводить сообщения, выполнять другие необходимые действия. • Для вызова установим выделение на строке При. Начале. Работы. Системы и нажмем на кнопку Перейти. В поле модуля появится определение процедуры
56 • Тело процедуры содержит текст: • // Вставить содержимое обработчика • Этот текст представляет собой комментарий. Комбинация символов • • • "//" означает комментарий. Для вставки в тело модуля программного кода, который выведет сообщение при начале работы пользователя с системой, необходимо решить, куда именно должно выводиться сообщение. Можно воспользоваться окном служебных сообщений. Для того, чтобы вывести в него какой-нибудь текст, используют команду Сообщить. Например, такая команда Сообщить ("Привет!"); выведет в окно служебных сообщений текст "Привет!". Теперь нам нужно узнать, как вывести с помощью команды Сообщить содержимое константы. Для того, чтобы выводить содержимое констант можно воспользоваться такой конструкцией: Константы. Имя. Константы. Получить(); При выполнении этого кода в точке его вызова окажется содержимое константы, например строку, содержащую текст приветствия. Константы. Текст. Сообщения. Получить(); Данный код берет выводимое значение из базы данных.
57 Текст процедуры • Процедура При. Начале. Работы. Системы() Сообщить(Константы. Текст. Сообщения. Получить()); • Конец. Процедуры • • Процедуру можно свернуть знак « - » , около заголовка • Группировка нужна для удобства - если в модуле много процедур и функций и они не сгруппированы, с ними не очень удобно работать. А если они сгруппированы, разворачивать можно лишь те процедуры и функции, с которыми вы в данный момент работаете.
58 • Если открыть конфигурацию в режиме 1 С предприятие, можно увидеть константу
59 РАЗРАБОТКИ ДОКУМЕНТОВ
60 • Любая учетная система получает исходные данные из документов. В классическом бухгалтерском учете основа всего – первичные документы, автоматизированные системы учета – не исключение. • Документы конфигураций 1 С: Предприятие являются электронными аналогами бумажных документов. Как правило, прикладные конфигурации строят с учетом того, что информация о совершенной хозяйственной операции вводится в систему лишь один раз с использованием соответствующего документа, после чего используется в различных системных механизмах. • Создавая конкретные документы, обычно ориентируются на хозяйственные операции, которые нужно отражать в системе с их помощью, например документ Поступление. Материалов, который, как следует из его названия, будет использоваться для фиксирования факта поступления материалов в организацию. • Для описания документов в дереве конфигурации имеется отдельная ветвь – Документы.
61 • Добавим новый документ в ветви дерева конфигурации Документы. Откроется окно редактирования объекта
62 Реквизиты документа Имя реквизита Тип Параметры типа Контрагент Справочник. Ссылка. Контрагент ы Представитель. Контрагента Справочник. Ссылка. Представит ели. Контрагентов Ответственный. Сотрудник Справочник. Ссылка. Сотрудники Стоимость. Материалов Число Длина 15, точность 2
63 • Табличную часть можно сравнить с обычной таблицей. Эту таблицу заполняют при создании документа. На этапе конфигурирования задаются реквизиты табличной части (то есть - набор колонок, которые входят в состав таблицы), а строки создаются на этапе работы с программой конечного пользователя. • Можно добавлять в документ столько табличных частей, сколько нам нужно. • Для добавления табличной части воспользуемся кнопкой Добавить табличную часть. • После того, как табличная часть добавлена, мы можем добавлять ее реквизиты. При добавлении реквизитов табличной части их параметры настраиваются аналогично параметрам обычных реквизитов документа.
64 • Создадим форму документа, нажав кнопку Открыть в поле Документа группы параметров «Формы» . Появится окно конструктора форм.
65 • Оставим всё по умолчанию и нажмем на кнопку Далее и попадем в следующее окно настройки параметров формы документа
66 • Реквизит Стоимость. Материалов будет содержать итоговую • • сумму по стоимости каждой номенклатурной позиции материалов, которые будут добавлены в табличное поле Материалы. Если планируется автоматически заполнять реквизит после ввода данных в табличную часть Материалы, то Пользователь не должен вручную редактировать этот параметр. Для ограничения ввода- блокировки поле, на этапе использования Конструктора форм выбрать для отображения реквизита Стоимость. Материалов нужно внести в форму элемент управления, который не предусматривает редактирование данных пользователем. Это - элемент управления Надпись. Нажмем кнопку Готово - будет создана форма и открыт редактор форм Если форма требует доработки. Например нужно написать код, который будет поддерживать в актуальном состоянии поле, которое должно отображать стоимость материалов (сейчас в нем можно видеть текст Надпись7). Есть ли у формы еще какие-нибудь проблемы, которые нужно решить перед началом ее практического использования.
67 Некоторые программные доработки формы • Ограничение списка представителей контрагентов (поле Представитель. Контрагента ) тем контрагентом, который выбран в поле Контрагент • Автоматическое заполнение поля Стоимость. Материалов на основании данных, введенных в табличное поле. • Автоматическое заполнение поля Сумма для каждой строки табличного поля.
68 Ограничение списка представителей • Для того, чтобы в поле Представитель. Контрагента можно было выбирать лишь тех представителей, которые соответствуют выбранному контрагенту, нужно настроить связь этих полей. А именно - связь по владельцу. Для этого откроем окно свойств поля ввода Представитель. Контрагента и модифицируем его свойство Связь по владельцу, установив в нем Контрагент
69 ситуация • Предположим, у нас есть контрагент А, которому соответствуют представители к. А 1 и к. А 2. Так же имеется контрагент В, которому соответствуют представители к. В 1 и к. В 2. В поле Контрагент мы выбрали контрагента А. После этого в поле Представитель. Контрагента мы можем выбирать лишь из представителей к. А 1 и к. А 2. • Выберем в поле Представитель. Контрагента представителя к. А 1. Если теперь в поле Контрагент выбрать контрагента В, то в поле представителя останется все тот же к. А 1. В нашей форме нет механизма, который отслеживал бы правильность заполнения поля Представитель. Контрагента при изменении содержимого поля Контрагент. • Для того, чтобы это исправить, нам нужно придумать механизм, который отслеживал бы правильность заполнения поля Представитель. Контрагента при смене значения поля Контрагент. • Если при смене контрагента окажется, что новый контрагент не является владельцем элемента справочника Представители. Контрагентов, выбранного в поле Представитель. Контрагент - поле очищается.
70 В поле обработка событий , нужно ввести код • Процедура Контрагент. При. Изменении(Элемент) Если Не Представитель. Контрагента. Пустая() Тогда Если Контрагент<>Представитель. Контрагента. Владелец Тогда Представитель. Контрагента = лка(); Справочники. Представители. Контрагентов. Пустая. Ссы Сообщить("Поле ""Представитель контрагента"" очищено"); Конец. Если; Конец. Процедуры • При запуске формы в режиме 1 С предриятие
71 Расчеты в поле сумма • Для того, чтобы система автоматически рассчитывала поле Сумма для каждой номенклатурной позиции, нам понадобится написать обработчик событий изменений полей таблицы. А именно - при изменении поля Цена или Количество в поле Сумма должен подставляться результат умножения цены и количества материалов. • Ввести в поле обработки событий формы • Процедура Рассчитать. Сумму() Текущая. Строка=Элементы. Формы. Материалы. Текущи е. Данные; Текущая. Строка. Сумма=Текущая. Строка. Цена* Текущая. Строка. Количество; Конец. Процедуры
72 автоматический расчет поля Стоимость. Материалов. • Для этого создадим обработчик события табличного поля При. Окончании. Редактирования и добавим в него команду для расчета значения общей стоимости материалов: • Процедура Материалы. При. Окончании. Редактирования(Элемент, Новая. Строка, Отмена. Редактирования) Стоимость. Материалов = Материалы. Итог("Сумма"); Конец. Процедуры Теперь можно снова испытать наш документ в режиме 1 С: Предприятие
73 Регистры накопления • Когда информация, введенная в документ, записана в базу данных, с ней • • можно работать. Например, в течение недели в организацию поступали материалы, каждый раз это оформлялось с помощью соответствующего документа. Как можно узнать, сколько и каких материалов имеется в организации? Если информацию о поступивших материалах хранят лишь документы, то для того, чтобы узнать некие итоговые суммы, придется сначала собирать данные о материалах, просматривая все документы (или документы за какой -то период), потом эти данные обрабатывать. Просматривать документы для того, чтобы получить итоговую информацию о материалах, это слишком медленный процесс. Гораздо лучше было бы при проведении документа выписывать важнейшие данные этого документа в какую-нибудь таблицу, работать с которой быстрее и удобнее, чем со множеством документов. Такие таблицы в 1 С: Предприятие называются регистрами В 1 С: Предприятие существуют различные регистры. В частности, это регистры накопления, регистры сведений, регистры расчета и регистры бухгалтерии.
74 • Создадим новый регистр накопления Остатки. Материалов. Окно редактирования объекта регистра накопления устроено точно так же, как другие подобные окна.
75 • На вкладке Данные. Здесь можно настроить состав измерений, ресурсов и реквизитов регистра. • Регистр накопления можно представить в виде многомерной системы координат, осями которой являются измерения, а ресурсы - это данные Имя измерения или ресурса Тип Параметры типа (числовые), которые хранятся в узлах этой системы Измерение: Номенклатура Справочник. Ссылка. Номенклату ра координат. Реквизиты позволяют хранить дополнительную информацию произвольного типа. Измерение: Справочник. Ссылка. Сотрудники • Для получения информации о количестве и стоимости Центр. Ответственности отдельных видов материалов по отдельным ответственным сотрудникам. Ресурс: Количество Число Длина 10, точность 3 • Надо создать структуру измерений и ресурсов Ресурс: Сумма Число Длина 10, точность 2 регистра
76 • На вкладке Данные введем имя редактируемого регистра накопления и введем реквизиты.
77 Настройка проведения документа • Данные для хранения в регистры попадают из документов. В регистре накопления хранятся записи с нужным набором измерений, ресурсов и реквизитов. Каждой записи соответствует регистратор - документ, который сделал эту запись. Записи в регистры выполняются при проведении документа. Этот процесс еще называют формированием движений по регистру. • Для того чтобы назначить документ Поступление. Материалов регистратором для регистра, пройдем в окно свойств документа, перейдем на вкладку Движения и отметим регистр накопления Остатки. Материалов. Сразу после этого станет активна кнопка Конструктор движений в нижней части формы. Документ можно назначить регистратором и из формы настройки свойств регистра.
78 настройки на вкладке Движения • Проведение. Может принимать значения Разрешить и Запретить. Определяет возможность проведения документа. • Оперативное проведение. Так же принимает значения Разрешить и Запретить. Оперативное проведение - это проведение документа в режиме реального времени. При оперативном проведении документ получает оперативную отметку времени, которая либо соответствует текущему системному времени, либо превышает его - в том случае, если другой документ получил оперативную отметку времени, равную текущему системному времени. В итоге, документы, проведенные в оперативном режиме, выстраиваются в логически верную последовательность, соответствующую последовательности их ввода. При оперативном проведении документов производится контроль различных параметров реального времени. • Удаление движений. По умолчанию этот параметр установлен в значение Удалять движения автоматически. Такая установка позволяет автоматически удалять движения, сформированные документом ранее, при перепроведении документа или при отмене проведения. . • Чтобы настроить процедуру проведения документа. Нажмем на кнопку Конструктор движений.
79 Форма конструктора движений
80 • В окне конструктора мы можем выбрать регистр, по которому следует сформировать движение (в нашем случае - это единственный регистр Остатки. Материалов. Параметр Тип движения регистра может принимать одно из двух значений: Приход или Расход. В нашем случае здесь нужно оставить значение по умолчанию - то есть - Приход. • Здесь же нужно указать, какие реквизиты документа и реквизиты табличных частей документа соответствуют измерениям, ресурсам и реквизитам регистра. В нашем случае документ имеет одну табличную часть Материалы - ее следует указать в поле Табличная часть. • Теперь, если нажать на кнопку Заполнить выражения, конструктор попытается автоматически сопоставить данные документа и регистра. • Автоматическое заполнение производится, во-первых, с учетом типов, во-вторых, с учетом названий.
81 • Автоматическое заполнение сопоставляет документ и регистр, • • основываясь на именах и типах параметров. Следует обязательно проверять результаты автоматического заполнения выражений. Выражение Центр. Ответственности осталось незаполненным. Система подсказывает, какой именно реквизит документа (или табличной части документа ) подходит к выделенному в таблице полю регистра. В таблице Реквизиты документа выделяется галочкой тот реквизит, который соответствует выделенному в таблице полю регистра. Причем, одному и тому же полю регистра могут соответствовать несколько реквизитов документа. Выделим поле Центр. Ответственности. Ему соответствует реквизит документа Ответственный. Сотрудник. Для того, чтобы подставить реквизит в поле, достаточно сделать по нему двойной щелчок.
82 • В поле Центр. Ответственности подставлен реквизит • • • документа, а в остальные поля - реквизиты табличной части документа. Особенность табличной части заключается в том, что она может содержать несколько строк с информацией о полученных материалах. Одна запись соответствует одной строке. Табличная часть обрабатывается построчно, поэтому можно увидеть записи такого содержания: Тек. Строка. Материалы. Номенклатура Тек. Строка. Материалы. Количество Тек. Строка. Материалы. Сумма Если нажмать на кнопку ОК. Будет сформирована процедура, которая сработает при проведении документа
83 Текст процедуры
84 • Эта процедура расположена в модуле объекта - то есть - документа. • Основой процедуры является цикл: • Процедура Обработка. Проведения(Отказ, Режим) • Для Каждого Тек. Строка. Материалы Из Материалы Цикл • Движение = Движения. Остатки. Материалов. Добавить(); • Движение. Вид. Движения = Вид. Движения. Накопления. Приход; • Движение. Период = Дата; • Движение. Номенклатура = • • • Тек. Строка. Материалы. Номенклатура; Движение. Центр. Ответственности = Ответственный. Сотрудник; Движение. Количество = Тек. Строка. Материалы. Количество; Движение. Сумма = Тек. Строка. Материалы. Сумма; Конец. Цикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ Конец. Процедуры
85 ЗАПРОСЫ В КОНФИГУРАЦИЯХ
86 • Запросы создают с некоторой целью. Например "Узнать количество и стоимость материалов, числящихся за Ивановым И. И. ". После того, как цель запроса сформулирована, нужно выполнить определенные шаги, которые позволяют получить нужную информацию: • Подобрать подходящие источники данных для запроса ; • Составить текст запроса - либо вручную, либо пользуясь конструктором запросов ; • Выполнить запрос ; • Обработать результаты запроса.
87 Источники данных для запросов • Источники данных делятся на две группы. • Реальные таблицы называются так потому, что они физически хранятся в базе данных. Реальные таблицы, в свою очередь, подразделяются на объектные (ссылочные) и необъектные (не ссылочные). • В объектных таблицах хранятся данные объектов системы, то есть - ссылочных типов данных. Это - документы, справочники. Эти таблицы имеют поле Ссылка, которое содержит ссылку на объект, данные которого представлены в таблице. В необъектных таблицах хранятся данные других типов - например - записи регистров. • Виртуальные таблицы, в отличие от реальных, нигде специально не хранятся. Система "собирает" эти таблицы из реальных данных, используя одну или несколько реальных таблиц. При создании виртуальных таблиц их можно параметризовать - то есть - задать параметры, которые ограничивают отбор данных в эти таблицы и вам нужно, чтобы они включали в себя данные, ограниченные некоторым отбором, нужно выполнять этот отбор, используя параметры виртуальных таблиц.
88 Написание текста запроса • Во встроенном языке 1 С есть объект Запрос. Именно он используется для работы с запросами. Особенности получения данных определяет текст запроса. Этот текст можно либо написать вручную, используя конструкции языка, либо воспользоваться конструктором запросов. Конструктор запросов позволяет в наглядном виде настроить запрос, однако, его результатом является точно такой же текст, который пишут вручную. В запрос можно передавать параметры, делать это нужно до выполнения запроса.
Выполнение запроса и обработка результатов запроса 89 • После того, как создан текст запроса и в запрос переданы параметры, запрос выполняют. Результат выполнения запроса выглядит в виде таблицы, содержащей запрошенные данные. Эту таблицу необходимо обработать и применить полученные данные по назначению - вывести их в отчет, использовать для проверки каких-либо ограничений и так далее.
90 Создание внешней обработки • Для того, чтобы начать практическую работу с запросами необходимо создать небольшую внешнюю обработку, которая позволит нам в максимально наглядном виде освоить основы работы с запросами. • Войдем в Конфигуратор и выполним команду Файл > Новый > Внешняя обработка,
91 Консоль Запросов • Введем в поле имя Консоль. Запросов, для начала редактирования формы обработки нажмем на кнопку Открыть в поле Основная форма внешней обработки. Появится окно Конструктор формы обработки, оставим в нем все по умолчанию и нажмем Готово. • Добавим в форму элемент управления Поле текстового документа, зададим ему имя Текст. Запроса, установим в параметре Расширение значение Язык запросов. Добавим в список реквизитов формы новый реквизит, зададим ему имя Текст. Запросов и тип Строка. • Это позволит использовать в данном поле, при работе в режиме 1 С: Предприятие, конструктор запросов, синтаксические конструкции языка запросов будут автоматически выделяться
92 • Поле Текст. Запроса будет содержать текст запроса, который мы можем либо написать вручную, либо создать, воспользовавшись конструктором запроса. • Теперь добавим в форму еще один элемент управления - табличное поле. Зададим ему имя - Результат. Выполнения. Запроса. Так же добавим в форму поясняющие надписи: " Введите текст запроса " и " Результат выполнения запроса • В табличное поле мы будем помещать результат выполнения запроса. • Теперь зададим обработчик нажатия кнопки Выполнить. Для этого откроем окно свойств кнопки и нажмем на кнопку Открыть в поле Действие.
93 • Процедура обработчика события нажатия на кнопку будет • • выглядеть следующим образом: Процедура Кнопка. Выполнить. Нажатие(Кнопка) Запрос = Новый Запрос; Запрос. Текст=Элементы. Формы. Текст. Запроса. Получить. Текс т(); Результат. Выполнения. Запроса = Запрос. Выполнить(). Выгрузить(); Элементы. Формы. Результат. Выполнения. Запроса. Создать. Ко лонки(); Конец. Процедуры Благодаря этой процедурев поле Результат. Выполнения. Запроса можно увидеть его содержимое, иначе оно будет выглядеть пустым. После того, как создание обработки завершено, сохраним ее командой главного меню программы Файл > Сохранить.
94 • Запустим систему в режиме 1 С: Предприятие. Для того, чтобы работать с внешней обработкой, нам сначала нужно открыть ее. Для этого воспользуемся командой главного меню программы Файл > Открыть и с помощью стандартного окна открытия файлов выберем интересующую нас обработку,
95 Создание запросов • Щелкнем правой кнопкой мыши по свободному пространству в поле ввода текста запроса в обработке Консоль запросов. В появившемся контекстном меню выберем пункт Конструктор запроса. Появится соответствующее окно,
96 • Конструктором запроса можно пользоваться и в режиме конфигурирования, причем, там он, преимущественно, и используется при составлении запросов. • Окно конструктора запроса имеет несколько вкладок. Вкладка Таблицы и поля служит для указания таблиц ( реальных и виртуальных ), из которых будут отбираться данные, и конкретных полей этих таблиц, которые и попадут в результаты запроса. • Вкладка Таблицы и поля имеет три области. Область, озаглавленная как База данных показывает нам набор таблиц, которые имеются в системе. Можно заметить, что эта область напоминает дерево конфигурации. Группы можно разворачивать, тогда мы получаем доступ к конкретным таблицам.
97 • Среди таблиц есть реальные и виртуальные. Например, реальные таблицы - это таблицы справочников ( Физические. Лица, Номенклатура ), документов ( Поступление. Материалов ), регистров накопления ( Остатки. Материалов ). Виртуальные таблицы в данный момент имеют отношение к регистру накопления Остатки. Материалов. В частности, виртуальная таблица Остатки. Материалов. Обороты предназначена для получения информации об оборотах по регистру. Таблица Остатки. Материалов. Остатки - для получения данных об остатках, таблица Остатки. Материалов. Остатки. ИОбороты, как следует из ее названия, предназначена для получения и информации об остатках и информации об оборотах. • Рабочая область Таблицы окна Конструктор запроса содержит список таблиц, из которых система выбирает данные. Этот список формируется переносом нужных таблиц из рабочей области База данных.
98 Задача • Создать запрос, который выводит список фамилий сотрудников, работающих в организации. • Очевидно, что данные для такого запроса будут храниться в справочнике Сотрудники. Поэтому перенесем таблицу Сотрудники из области База данных в область Таблицы и развернем таблицу
99 • Запрос, который выполняет вышеописанную задачу, готов. Для • • того, чтобы просмотреть текст полученного запроса, не выходя из конструктора запроса, можно нажать на кнопку Запрос, которая расположена в левом нижнем углу формы конструктора. Запрос, который отображается в этом окне, можно отредактировать, нажав на кнопку командной панели Редактировать запрос, его можно выполнить и посмотреть на результаты выполнения запроса, нажав на кнопку Выполнить запрос. Команда выполнения запроса доступна лишь при вызове конструктора запроса в режиме 1 С: Предприятие. Закроем окно предварительного просмотра запроса и нажмем на кнопку ОК в окне Конструктор запроса в поле Текст. Запроса попадет следующий текст: ВЫБРАТЬ Сотрудники. Физическое. Лицо. Фамилия ИЗ Справочник. Сотрудники КАК Сотрудники
100 Написание запросов в ручную • Задача. Получить из справочника Единицы. Измерения коды и наименования • • • • единиц измерения. В результатах запроса поле Код должно иметь наименование " Код ", поле " Наименование " - " Название ". Справочник Единицы. Измерения нужно представить в запросе как Таб. Ед. Изм. Написание запроса удобно начинать с группы ИЗ. Рассмотрим шаблон: ВЫБРАТЬ ИЗ Справочник. Единицы. Измерения как Таб. Ед. Изм После того, как источник данных определен, определяем поля для выбора: ВЫБРАТЬ Таб. Ед. Изм. Код, Таб. Ед. Изм. Наименование КАК Название ИЗ Справочник. Единицы. Измерения как Таб. Ед. Изм Исполним запрос
101 • Результат предыдущего запроса нужно упорядочить по полю Название. • Для этого в запросе нужно использовать конструкцию УПОРЯДОЧИТЬ ПО. • Теперь запрос будет выглядеть так: ВЫБРАТЬ Таб. Ед. Изм. Код, Таб. Ед. Изм. Наименование КАК Название ИЗ Справочник. Единицы. Измерения как Таб. Ед. Изм УПОРЯДОЧИТЬ ПО Название
102 Заключение • В установочной лекции вы ознакомились с некоторыми приемами разработок конфигураций прикладных информационных систем использованием конструктора 1 С, в частности: баз данных, прикладных приложений, документов, справочников, форм, запросов. В принципе этого хватит для выполнения Индивидуального Задания. • Данные объекты можно создавать используя другие инструментарии, например Access, SQL Server, VBA, Delphi, но, по мнению квалифицированных разработчиков в 1 С, это занимает в два-три раза больше времени.
Основы разработки прикладных решений для 1С.pptx