Название: Автоматизированный бухгалтерский учет в программном комплексе «1С-М52 Предприятие» (Меркулова Т.А)

Жанр: Информационные системы и технологии

Просмотров: 1286


5.1. введение

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

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

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

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

Например, в счете на оплату товаров или услуг в заголовочную часть помешаются установочные данные документа - номер и дата, а также сведения о плательщике и получателе платежа.

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

Например, в уже упоминавшемся счете на оплату табличная часть — это перечень товаров или услуг, подлежащих оплате. Помимо наименования товаров, реквизитами табличной части такого документа могут быть также —; стоимость товаров или услуг, количество, объем, вес и много другое. |

Контекст работы с документами '

В синтаксисе языка доступ к атрибутам, а также вызов процедур и функций работы с документами зависит от контекста выполнения программного модуля. I 1) Если конкретный документ входит (согласно локального контекста) в набор

непосредственного доступа модулю значений агрегатных типов оанных (см.

«Виды программных модулей»), то доступ к атрибуту, вызов процедуры или функции для этого документа - просто имя этого атрибута, процедуры или функции с указанием необходимых параметров.

Например: В форме редактирования документа «Накладная» мы имеем

непосредственный доступ   к текущему элементу (накладной). Значит,

чтобы изменить номер накладной(запишем:

НомерДок=«12345678»;

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

Например:

Допустим, значение реквизита документа

Документ. Счет. Накладная имеет тип Документ. РасхНакл. Номер накладной можно узнать следующим образом: НомерРасхНакл=Документ. Счет. Накладная. НомерДок;

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

При создании ссылки на объект типа документ при помощи функции СоздатьОбъект в качестве имени документа может выступать:

I. просто ключевое слово Документ (      используется для доступа

ко   "  всему перечню документов независимо от вида). В этом

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

И.полное   имя    конкретного   вида   Документа.    Вид Документа записывается через точку после ключевого слова Документ, т.е. полное имя вида Документа записывается следующим образом: Документ .ХХХХХ, где ХХХХХ - имя вида Документа, как он объявлен в конфигураторе. Замечание: Следует обратить особое внимание, что переменной может быть присвоена ссылка на объект или само значение объекта (например, переменной может быть присвоено значение реквизита Документа, который также имеет

тип Документа). Использование ссылки, созданной при помощи функции СоздатьОбъек^ существенно отличается от работы со значением типа Документ. Только при работе со ссылкой на объект типа Документ разрешено изменять позицию (найти — выбрать...) текущего элемента Документ (т.е. осуществлять навигацию по Документу), создавать новые, изменять и удалять существующие элементы. С другой стороны, ссылка не содержит собственно значения типа Документ, которое можно присвоить чему-либо. Однако, его всегда можно получитциспользуя функцию ТекущнйДокумент. Замечание: Объект, созданный при помощи функции СоздатьОбъект, изначально не определен, т.е. не содержит никакого значения. Чтобы начать с ним работать, его предварительно надо позиционировать (установить на конкретный Документ) при помощи операторов НайтиДокумент, НайтиПоНомеру, ПолучитьДокумеит и т.п.. Пример:

Док=СоздатьОбъект(<<Документ>>);

Док 1 =Созд атьОбъект(«Документ.РасхИакладн»);

Док2^СоздатьОбъект(<<Документ.ПрихНакладн»);

ДокЗ=СоздатьОбъект(«Документ.Списание»);

Пример:

// В модуле Формы Документа - текущий Документа - непосредственно доступен.

// В модуле Формы Документа меняем номер обрабатываемого Документа НомерДок=« 12345»:

Пример:

// В модуле движения Регистров Документа — текущий Документ -непосредственно доступен.

// В модуле Регистров Документа меняем номер обрабатываемого документа

НомерДок=«12345»; Пример:

Доку= СоздатьОбъект(«Документ.НаклПрих»);

// создаем новый документ

Доку.НовыйО;

Доку.Склад=22;

// меняем номер Документа

Доку.НомерДок=«»;

// меняем номер Документа

Доку.ДатаДок="14.04.96";

Доку.АвтоВремяОтключить();

 

Доку .УстаиовнтьВремя( 17,30.00);

// создаем новую строку в спецификации документа

Доку.НоваяСтрока();

Доку.Товар=Спр.ТекущнйЭлемент();

Доку.Колнчество-100;

// записываем документ

Доку.Запнсать();