ОсновыРаботы_1С_Предприятие. Занятие Установка и начало работы с 1С Предприятие 8
Скачать 3.65 Mb.
|
§2.2. Подсистемы Теперь определимся немного со структурой организации. Не будет иметь совершенно никакого смысла сваливание в одну кучу информации обо всех сотрудниках, обо всех операциях поступления, продажи товара, обо всех отчетах и т.д. Такой информации будет достаточно много, она будут неупорядоченной, соответственно, поиск, анализ требуемых для ввода, получения, редактирования данных будет затруднителен. Поэтому самым очевидным является логическое разделение организации на ряд отделов, и с каждым из этих отделов можно будет связать только необходимые для его работы объекты. Например, отдел, который будет осуществлять закупку товаров, не будут интересовать информация о сотрудниках и начисленной им заработной плате. Зато данные о количестве товара на складах, поступлении товара и т.д. – это будут те данные, которые необходимы для работы данного подразделения. В системе «1С: Предприятие» для такого разделения используется объект конфигурации «Подсистема», расположенный в ветке «Общие» дерева конфигурации. Все остальные прикладные объекты конфигурации должны принадлежать хотя бы одной подсистеме (можно при необходимости нескольким). Те объекты, которые не будут включены ни в одну подсистему, не будут доступны в интерфейсе приложения – к ним можно будет обратиться, к примеру, программно. Создадим следующие подсистемы: Отдел закупок – будет заниматься поступлением товаров; Отдел продаж – будет заниматься розничной продажей товаров; Бухгалтерия – будет заниматься бухгалтерским учетом на предприятии; Отдел зарплаты – будет заниматься начислением заработной платы; Общий отдел – будет содержать в себе общую информацию по предприятию; Рис. 8. Окно редактирования объекта (на примере объекта «Подсистема») При создании подсистемы, кроме окна свойств, дополнительно открывается еще одно специальное окно (назовем его окном редактирования объекта) (рис. 8). Данное окно состоит из вкладок, содержащих наиболее часто настраиваемые свойства объекта. При добавлении подсистемы на вкладке «Основные» (рис. 8) заполним поля «Имя» и «Синоним». Отметим галочку «Включать в командный интерфейс», чтобы созданная подсистема отобразилась в интерфейсе приложения. В свойстве «Картинка» укажем изображение для данной подсистемы. Изображение можно выбрать как из стандартных системных картинок, так и загрузить собственную картинку в конфигурацию – тогда загруженное изображение добавится в качестве объекта типа «Общие картинки» (в ветке «Общие» дерева конфигурации) с возможностью его дальнейшего использования. На вкладке «Состав» (рис. 8) указываются те прикладные объекты, которые будут включены в подсистему. Состав подсистемы можно редактировать в любой момент. Сейчас у нас созданы лишь четыре константы, а их имеет смысл отнести лишь к подсистеме «Общий отдел». Так, создадим и настроим указанные выше подсистемы. Обратите внимание, что внутри каждой подсистемы можно создать подчиненные подсистемы, т.е. образовать иерархию. Мы этого делать не будем т.к. на формирование интерфейса влияют лишь подсистемы верхнего уровня. Все вложенные подсистемы определяют лишь внутреннюю логическую организацию приложения. После создания подсистем, запустим приложение, и посмотрим на результат (рис. 9). Рис. 9. Приложение с использованием подсистем Темы для самостоятельного изучения: 1. Командный интерфейс прикладного решения: подсистемы, команды, роли. 2. Использование вложенных подсистем 3. Настройка командного интерфейса в режиме исполнения. Панель инструментов. 4. Использование общих модулей и модуля управляемого приложения Занятие 3. Справочники. Перечисления. §3.1. Справочники Справочник – это прикладной объект, содержащий себе информацию списочного вида. Примерами справочников могут быть список сотрудников, контрагентов, перечень товаров и услуг и т.д. Т.е. справочник содержит большой перечень однородной информации. Объект «Справочник» является типообразующим объектом: при его создании в набор допустимых типов данных добавляется один новый тип данных «СправочникСсылка.<Имя_справочника>». Поэтому на любой элемент справочника можно указать ссылку. Например, при формировании документа продажи можно указать, какой сотрудник осуществляет продажу. Ссылка на элемент справочника формируется при его создании и представляется в виде хэш-строки. Данную ссылку нельзя изменить или удалить т.к. она формируется на основе типа создаваемого объекта и момента времени создания. Поэтому, даже если удалить элемент справочника, а затем создать «точно такой же» (т.е. содержащий идентичные данные) – то он все равно будет иметь другую ссылку, и система определит его как другой элемент справочника. Аналогичная ситуация наблюдается со всеми типообразующими (т.е. ссылочными) объектами. Создадим справочник «Номенклатура» (рис. 10). Рис. 10. Создание справочника «Номенклатура» В окне редактирования объекта настроим свойства: Представление объекта: описывает то, как объект множественного числа будет называться при использовании в единственном числе (например, в панели действий в группе «Создать», для команды создания нового элемента объекта); Расширенное представление объекта: то же самое, что и «Представление объекта», но описывает заголовок формы создания/редактирования элемента объекта; Представление списка: описывает то, как объект единственного числа будет называться при использовании во множественном числе (например, в панели навигации для команды открытия списка элементов объекта); Расширенное представление списка: то же самое, что и «представление списка», но описывает заголовок формы списка элементов объекта; Добавим созданный справочник в подсистемы «Общий отдел» и «Бухгалтерия» на вкладке «Подсистемы». Далее настроим иерархию на соответствующей вкладке (рис. 11). Иерархия позволяет создавать «подчинение» внутри справочника, с разделением всех элементов. Рис. 11. Настройка иерархии справочника Допустим, создается справочник, содержащий список сотрудников, каждый сотрудник работает в определенном отделе. Соответственно, если необходимо логически разнести всех сотрудников по отделам, то необходимо создать некоторые группы, описывающие отделы, а в них уже разместить (сгруппировать) конкретных сотрудников. Это будет иерархия групп (рис. 11). Если же сами по себе отделы могут являться объектами аналитики, а не просто как некоторые «хранилища» других элементов справочника, то тогда возможна иерархия элементов, когда одни элементы справочника как бы «группируют» другие. В результате настройки иерархии выстраивается дерево, содержащее максимально столько уровней иерархии, сколько указано в настройке «Ограничение количества уровней иерархии» (рис. 11). Для справочника «Номенклатура» имеет смысл создания групп товаров/услуг (например, канцелярские товары, мебель, оргтехника и т.д.). Внутри каждой группы также возможно деление на подгруппы (например, мебель для кухни, мебель для спален и т.д.) – количество таких вложенных уровней заранее неизвестно. Сами по себе группы нужны лишь для разделения товаров по категориям. Поэтому укажем, что созданный справочник будет иерархическим с иерархией групп и элементов без ограничения уровней иерархии. На вкладке «Владельцы» (см. рис. 10) указываются другие справочники, которые «владеют» элементами данного справочника. Это – внешнее подчинение в явном виде, в отличие от иерархии – косвенного «подчинения» внутри справочника. Так, один элемент справочника-владельца может иметь в подчинении несколько элементов справочника- подчиненного. Самый наглядный пример: справочники «Клиенты» и «Договора» (с клиентами). С каждым клиентом может быть заключено несколько договоров. Соответственно, справочник «Договора» будет подчинен справочнику «Клиенты». У одного справочника может быть указано несколько справочников-владельцев, но при этом у отдельного элемента может быть указан лишь один владелец. Возможно существование нескольких вариантов подчинения: элементам, группам, элементам и группам. Для справочника «Номенклатура» не будем организовывать подчинение. Рис. 12. Настройка реквизитов справочника На вкладке «Данные» (рис. 12) настраиваются реквизиты справочника. Реквизиты – это некоторые характеристики элементов справочника. Для справочника всегда присутствуют два реквизита: «Код» и «Наименование». «Код» может быть представлен в виде числа (максимально 38 цифр) или в виде строки (максимально 50 символов). «Наименование» – только в виде строки (рис. 12). Настройка «Основное представление» описывает то, как элементы справочника будут отображаться в различных формах (при выборе, в полях ввода и т.д.). Для «Кода» или «Наименования» можно задать длину 0, тогда данный реквизит не будет отображаться в формах (и, соответственно, заполняться). Но, как минимум, один из данных реквизитов должен быть. Эти реквизиты относятся к списку стандартных реквизитов справочника, т.е. тех, которые присутствуют, изначально, а не настраиваются разработчиком. Также к стандартным реквизитам справочника относятся (рис. 12): Ссылка – уникальный идентификатор элемента справочника; ЭтоГруппа – реквизит типа Булево, указывает на то, что элемент является группой; есть только при иерархии групп и элементов; Родитель – ссылка на элемент-родитель; есть только для иерархических справочников; Владелец – ссылка на элемент-владелец из справочника-владельца; есть только для подчиненных справочников; ПометкаУдаления – реквизит типа Булево, указывает на то, что элемент помечен для удаления; Предопределенный – реквизит типа Булево, указывает на то, что данный элемент является предопределенным; ИмяПредопределенныхДанных – только для предопределенных элементов: идентификатор (имя) предопределенного элемента; Для стандартных реквизитов можно настроить их представление в интерфейсе, но нельзя самостоятельно ни отключить, ни удалить, ни изменить тип и т.д. Также на вкладке «Данные» (рис. 12) производится добавление собственных реквизитов элементов справочника. Выделяют реквизиты шапки (раздел «Реквизиты») и табличные части (раздел «Табличные части»). Реквизиты шапки содержат информацию, однозначно характеризующую элемент справочника. Например, для справочника «Клиенты» это могут быть, допустим, полное наименование организации, ФИО директора, юридический адрес, ИНН и т.п. Реквизит шапки может содержать одно значение. Табличная часть состоит из строк, содержащих некоторую дополнительную информацию. Данная информация однородна по структуре, но ее число может быть различно. Например, для сотрудников компании это может быть информация о контактных номерах телефонов, об образовании, о детях и т.п. Каждая строка табличной части складывается из набора реквизитов – реквизитов табличной части. Каждый реквизит табличной части может содержать одно значение. Самих строк табличной части может быть сколько угодно много, каждая из которых описывается полным наборов реквизитов. Табличных частей также может быть много. Для справочника «Номенклатура» создадим реквизит шапки: «Вид номенклатуры», тип – Строка, длина 20. Вкладка «Нумерация» (см. рис. 10) позволяет настроить уникальность «Кода»: в пределах всего справочника; в пределах подчинения (внутри каждой группы иерархического справочника своя нумерация элементов); в пределах подчинения владельцу (своя нумерация элементов подчиненного справочника, имеющих одного владельца); Отключение свойства «Автонумерация» приводит к тому, что пользователю для каждого создаваемого элемента необходимо будет вручную заполнять код. Контроль уникальности в таком режиме затруднителен. Для справочника «Номенклатура» оставим автоматическую нумерацию с включенным контролем уникальности серий кодов во всем справочнике. На вкладке «Прочее» можно настроить предопределенные элементы справочника (рис. 13). Рис. 13. Настройка предопределенных элементов справочника Предопределенные элементы (в т.ч. группы) – это элементы, создаваемые на этапе разработки в Конфигураторе. Их нельзя удалить в режиме исполнения – только заполнить значениями и настроить представление. Каждый предопределенный элемент имеет уникальное «Имя» (рис. 13) – это идентификатор, по которому данный элемент определяется в системе. При создании предопределенного элемента формируется жесткая ссылка, которая пользователем не может быть удалена или изменена. Благодаря этому в алгоритмах имеется возможность опираться на предопределенные данные т.к. они будут присутствовать в системе вне зависимости от действий пользователя. В отличие от предопределенных, элементы, создаваемые в режиме исполнения, могут быть удалены. Соответственно, нельзя гарантировать их присутствие в системе, поэтому программные алгоритмы не могут их использовать. При создании предопределенных элементов иерархического необходимо обращать внимание на текущий уровень иерархии: создаваемые элементы будут автоматически размещаться внутри указанного уровня. Для изменения элемента-родителя используется кнопка (рис. 13). Для справочника «Номенклатура» создадим две предопределенные группы: «Товары» и «Услуги». Имена групп зададим точно такие же. Внутри групп не будем создавать никаких элементов. Аналогичным образом, создадим еще несколько справочников. Справочник«Контрагенты»: включен в подсистемы «Общий отдел» и «Бухгалтерия»; иерархия групп и элементов с ограничением в 2 уровня; длина «Кода» – 6, «Наименования» – 30 символов. Используется Автонумерация кода, контроль уникальности серий кодов во всем справочнике. Есть две предопределенные группы: «Покупатели» и «Поставщики». Реквизиты шапки: Полное наименование – строка, 100 символов, переменная длина; ИНН – строка, 12 символов, переменная длина; Расчетный счет – строка, 12 символов, фиксированная длина. Обратите внимание, что «ИНН» и «Расчетный счет» мы задали в виде строки. Дело в том, что эти данные носят информационный характер, и не будут их использоваться в арифметических операциях, поэтому нет смысла задавать их в виде числа и занимать достаточно большой объем памяти (под 12 знаков). Для того чтобы пользователь ввел в эти поля только цифры, необходимо настроить маску ввода. Для того чтобы определить, как задается маска необходимо обратиться к Синтакс-помощнику. В разделе «Индекс» введем строку поиска и выберем соответствующую информацию (рис. 14). Рис. 14. Поиск информации в Синтакс-помощнике В результате откроется окно со списком глав, в которых присутствует искомая информация. Дело в том, что в различных прикладных объектах могут использоваться механизмы, свойства, события и т.д., которые имеют одинаковые имена, но реализуют разную функциональность. Нашему запросу соответствует самый первый вариант по работе с полями формы управляемого интерфейса. Дважды щелкнув мышью на выбранной главе, открывается раздел, содержащий запрашиваемую справочную информацию (рис. 14). Так, мы обнаружим, что для задания в строке ввода цифры используется маска «9». Для реквизитов справочника маска задается на вкладке «Представление», поле «Маска». Соответственно, для «ИНН» и «Расчетного счета» маска будет содержать 12 цифр «9». Справочник «Договора»: включен в подсистемы «Общий отдел» и «Бухгалтерия», неиерархический, подчинен справочнику «Контрагенты» (подчинение элементам); длина кода – 0, наименования – 50. Здесь мы указали длину кода 0. На вкладке «Нумерация» сразу же исчезла возможность какой-либо настойки. Дополнительно, следует сказать, что «1С: Предприятие» поддерживает поиск по индексированным данным. По умолчанию, «Код» и «Наименование» индексируются. При отключении любого из указанных реквизитов необходимо убрать и поиск по соответствующему реквизиту. Для этого переходим на вкладку «Поле ввода» (см. рис. 10), выбираем раздел «Ввод по строке», в открывшемся списке убираем из выбранных полей «Код». В список реквизитов, которые могут быть использованы для ввода по строке также можно добавить и другие. Необходимым условием для этого является включение индексации на вкладке «Использование» при настройке свойств соответствующего реквизита. Справочник «Сотрудники»: включен в подсистемы «Общий отдел» и «Отдел зарплаты»; справочник неиерархический, неподчиненный; длина кода – 5, наименования – 30. Реквизиты шапки: ФИО: синоним «ФИО (полностью)», строка, 100 символов, переменная; Дата рождения: тип Дата, состав даты – дата; Семейное положение: синоним «Холост / Женат», тип Булево; Изменим представление «Кода» и «Наименования». Для этого откроем «Стандартные реквизиты» и дважды щелкнем по реквизиту «Код», чтобы открыть окно свойств. В качестве синонима укажем «Табельный номер». Аналогичным образом зададим синоним «ФИО» для реквизита «Наименование». Также для справочника «Сотрудники» опишем табличную часть «Образование». Реквизиты табличной части: Учреждение: строка, 100 символов, переменная; Вид учебного заведения, строка, 20 символов, переменная; Специальность: строка, 50 символов, переменная; Год окончания: строка, 4 символа, фиксированная длина, настройка маски для ввода только цифр. Обновим конфигурацию базы данных и запустим приложение в режиме отладки. Перейдем к подсистеме «Общий отдел» и зафиксируем появившиеся изменения. Откроем, к примеру, справочник «Список товаров и услуг» и добавим новую номенклатурную позицию (рис. 15). Рис. 15. Добавление элемента в справочник «Номенклатура» Обратим внимание, что поле «Наименование» подчеркнуто красной пунктирной линией. Это означает, что данное поле обязательно для заполнения. Соответственно, если мы попытаемся записать элемент справочника без заполнения данного поля, то система выдаст ошибку и элемент не будет записан. Настройку проверки заполнения можно сделать для любых реквизитов, табличных частей и реквизитов табличных частей при помощи свойства «Проверка заполнения» на вкладке «Представление» настройки свойств реквизита. Поле родитель сейчас не заполнено. Это означает, что создаваемая номенклатурная позиция будет размещена в корне справочника, а не в какой-либо группе. Для выбора группы необходимо нажать на стрелку справа (рис. 15). Открывается всплывающая подсказка. Т.к. поле «Родитель» это ссылка, то необходимо либо выбрать родителя из уже имеющихся групп справочника (ссылка «Показать все»), либо создать новую группу при помощи Создадим группу «Канцтовары» в предопределенной группе «Товары». Создадим номенклатурную позицию «Карандаш» (Вид номенклатуры – «Товар») и поместим его в группу «Канцтовары». Обратите внимание, что даже если вы случайно указали не ту группу при создании элемента, то это всегда можно изменить: достаточно открыть созданный ранее элемент и выбрать нужную группу-родителя. Пока что мы не будем заполнять все справочники нужными данными. Мы это сделаем в следующем уроке, когда добавим еще одну функциональность, которая существенно упростит ввод данных. Поэтому систему в режиме исполнения можно закрыть. |