Материал: Клиент-серверный вариант работы системы «1С. Предприятие». методические указания к выполнению лабораторных работ по теме «Информационная база. Конфигурация. Справочники. Документы». Петрухнова Г.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

3. Лабораторная работа № 2. Документы

    1. Объект конфигурации «Документ»

Объекты прикладного решения Документ позволяют хранить в прикладном решении информацию о совершенных хозяйственных операциях или о событиях, произошедших в "жизни" предприятия вообще. Как правило, в работе любой фирмы используются такие документы как расходная накладная, приказы об увольнении с работы, платежные поручения, счета и др. Свойства и структура таких документов описывается в объектах конфигурации Документ, на основе которых платформа создает в базе данных таблицы для хранения информации из соответствующих документов.

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

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

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

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

Среди наиболее важных характеристик документа, отличающих его от других объектов, является наличие у него номера и даты. Дата и Номер стандартные реквизиты документов. В 1С:Предприятии значения типа "дата" включают в себя также время с точностью до секунды. Дата, в основном, и определяет положение документа на оси времени.

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

Для описания правил нумерации документов существует объект метаданных нумератор. Основное назначение нумератора - обеспечить возможность единой (сквозной) нумерации документов разного вида, для чего этим документам назначается один нумератор.

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

    1. Оперативное и неоперативное проведение

Факт проведения документа и необходимость поддержания актуальной последовательности документов на оси событий порождают два различных способа проведения документов: оперативное и неоперативное проведение.

С оперативным проведением документов связано понятие оперативной отметки времени.

Оперативная отметка времени представляет собой значение типа Дата, которое формирует система. Оперативная отметка времени создается системой каждый раз при оперативном проведении документа. Ее значение формируется исходя из текущего времени и последней созданной оперативной отметки.

Если последняя оперативная отметка меньше текущего времени, в качестве новой оперативной отметки принимается текущее время.

Если последняя оперативная отметка равна или больше текущего времени, в качестве новой оперативной отметки принимается значение, на одну секунду большее, чем старая оперативная отметка времени.

Таким образом, если у объекта конфигурации Документ установлено свойство оперативного проведения, последовательность действий системы будет следующей: при создании нового документа система будет устанавливать ему текущую дату и «нулевое» время.

При проведении такого документа (с текущей датой), система установит в качестве даты документа оперативную отметку времени. Если отменить проведение документа и затем провести его снова (не изменяя даты), система установит документу новую оперативную отметку времени.

Если же попытаться перепровести документ, то будет выдан запрос о виде проведения (оперативное или нет).

В случае оперативного проведения система установит новую оперативную отметку времени, а при неоперативном проведении время документа будет сохранено прежним.

При попытке проведения (или перепроведения) оперативно проводимого документа с датой, отличающейся от текущей, будет выдано сообщение о том, что оперативное проведение невозможно и предложено провести документ неоперативно (т.е. с сохранением существующей даты и времени документа).

Средствами встроенного языка возможно определение текущего режима проведения документа (система передает его одним из параметров в обработчик события ОбработкаПроведения()). В зависимости от этого могут существовать различные алгоритмы проведения документа в том или ином режиме.

    1. Типообразующие объекты

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

На предыдущем занятии, когда создавались реквизиты справочников или табличных частей, всегда указывался тип значения, которое может принимать этот реквизит. Это были примитивные типы данных - Число, Строка, Дата и Булево. Примитивные типы данных изначально определены в системе и их набор ограничен.

Наряду с такими изначально определенными в любой конфигурации типами, могут существовать типы данных, определяемые только конкретной конфигурацией. Такие типы образуют сами объекты конфигурации в момент их создания в конфигураторе. Объекты конфигурации, которые могут образовывать новые типы данных, называются типообразующими объектами.

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

Это небольшое отступление было необходимо потому, что уже при создании первого документа мы столкнемся с использованием типа данных, доступного благодаря объекту конфигурации Справочник Склады.

    1. Документ ПриходнаяНакладная

Создадим несколько документов, чтобы фиксировать события, происходящие в Вашей фирме.

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

Для отражения этих событий в БД создадим два документа: Приходная накладная и Оказание услуги. Документ Приходная накладная будет фиксировать факт поступления в фирму необходимых материалов, а документ Оказание услуги будет фиксировать оказание услуг и расход материалов, которые используются при оказании этих услуг.

В режиме Конфигуратор создадим новый объект конфигурации Документ. Зададим имя документа - ПриходнаяНакладная. Представление объекта задавать не будем. Представление списка зададим как Приходные Накладные. Нажмем Далее и перейдем на закладку Подсистемы.

Список приходных накладных должен быть доступен в разделах Учет материалов и Бухгалтерия. Отметим в списке подсистем эти подсистемы.

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

Выберем для реквизита ссылочный тип данных СправочникСсылка.Склады.

Работа в нашей фирме построена таким образом, что все поступающие товары приходуются на основной склад. В палитре свойств для созданного реквизита Склад найдем свойство Значение заполнения. В качестве значения этого свойства выберем предопределенный элемент справочника СкладыОсновной.

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

Кроме имени табличной части установим свойство Проверка заполнения и значение Выдать ошибку. Таким образом, документ Приходная накладная обязательно должен содержать табличную часть, т. е. список приходуемых материалов, иначе будет выдано сообщение об ошибке и документ не сохранится.

Создадим четыре реквизита табличной части Материалы, нажав кнопку Добавить реквизит:

    • Материал с типом СправочникСсылка.Номенклатура;

    • Количество с типом Число, длиной 15, точностью 3, неотрицательное,

    • Цена с типом Число, длиной 15, точностью 2, неотрицательное,

    • Сумма с типом Число, длиной 15, точностью 2, неотрицательное.

Для каждого реквизита табличной части установим свойство Проверка заполнения в значение Выдать ошибку. Таким образом, при записи документа будет проверяться на заполнение не только табличная часть в целом, но и ее отдельные реквизиты.

Перейдем на закладку Нумерация и убедимся, что свойство Автонумерация включено. Это позволит автоматически генерировать уникальные номера для создаваемых документов.

Отредактируем командный интерфейс, чтобы в подсистеме Учет материалов была доступна команда создания новых документов. Для этого в дереве объектов конфигурации выделим ветвь Подсистемы, вызовем ее контекстное меню и выберем пункт Все подсистемы. В открывшемся окне слева в списке Подсистемы выделим подсистему Учет материалов. Справа в списке Командный интерфейс отразятся все команды выбранной подсистемы. В группе Панель действий.Создать включим видимость у команды Приходная накладная: создать.

Запустим 1С:Предприятие в режиме отладки и протестируем получившийся документ. В панели навигации разделов Бухгалтерия и Учет материалов появилась команда Приходные накладные для открытия списка приходных накладных. В панели действий раздела Учет материалов появилась команда Приходная накладная для создания новых документов этого типа.

Пока в БД нет ни одного документа Приходная накладная. Выполним команду Приходная накладная из подменю Создать в разделе Учет материалов и создадим новую приходную накладную.

Откроется форма документа. Заголовок этой формы Приходная накладная совпадает с синонимом документа.

Система автоматически подставит текущую дату создания документа и нулевое время, так как документ еще не проведен. В качестве времени документа при оперативном проведении ему присваивается оперативная отметка времени.

Поле Номер пока не заполнено, но система сама сгенерирует для нового документа уникальный номер, поскольку свойство Автонумерация для документа включено по умолчанию. Новый номер система сохранит в момент записи документа.

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

Обратите внимание, что при переходе к еще незаполненной колонке Материал (в табличной части документа) автоматически открывается окно выбора значения из справочника Номенклатура, так как этот реквизит имеет ссылочный тип данных и ссылается на справочник Номенклатура (см. рис. 4). Как только мы начнем вводить название материала в это поле, платформа автоматически найдет материалы, наименование которых начинается с введенных символов, и предложит их для выбора. При нажатии кнопки Показать все открывается форма для выбора элементов этого справочника.

Нажмем Провести и закрыть.

Документ будет сохранен и проведен, ему будет присвоен автоматически сгенерированный системой номер и текущее время проведения документа.

Аналогичным образом создадим второй документ, который будет приходовать на Основной склад материалы для установки стиральных машин (рис. 5). Нажмем Провести и закрыть. Документ будет сохранен и проведен, ему будет присвоен автоматически сгенерированный системой номер и текущее время проведения документа.

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

Чтобы просмотреть список созданных документов, выполним команду Приходные накладные. В форме списка мы видим два созданных документа, отмеченных пиктограммой, указывающей на то, что документы проведены (зеленая галочка в пиктограмме документа).

Источник: https://studfile.net/preview/16569062/