Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1C_pr77_Lang1.doc
Скачиваний:
20
Добавлен:
20.11.2019
Размер:
2.43 Mб
Скачать

ПорядковыйНомер

Определить порядковый номер значения в перечеслении.

Синтаксис:

ПорядковыйНомер()

Англоязычный синоним:

Number

Возвращаемое значение:

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

Описание:

Метод ПорядковыйНомер определяет порядковый номер значения в пере­чеслении, как он задан в конфигураторе. Значения перечисления нумеруются с 1.

Пример:

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

Сообщить(Перечисление.Единицы.Штука.ПорядковыйНомер());

Идентификатор

Возвращает строку — идентификатор значения перечисления.

Синтаксис:

Идентификатор()

Англоязычный синоним:

Identifier

Возвращаемое значение:

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

Описание:

Метод Идентификатор возвращает строку — идентификатор значения пере­числения как он задан в метаданных.

Пример:

// отобразим все идентификаторы перечисления

Всего = Перечисление.ВидыТоваров.КоличествоЗначений();

Пока Ном = 1 По Всего Цикл

ВидТов = Перечисление.ВидыТоваров.ЗначениеПоНомеру(Ном);

Сообщить(ВидТов.Идентификатор());

КонецЦикла;

Глава 12 Работа с Документами

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

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

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

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

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

Например, в случае расчета заработной платы, документ «Больничный лист» в заголовочной части может содержать процент оплаты, сведения о со­труднике.

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

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

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

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

Если конкретный документ входит (согласно локального контекста) в набор непосредственно доступных модулю значений агрегатных типов данных (см. «Виды программных модулей»), то доступ к атрибуту, вызов метода для этого документа — просто имя этого атрибута, метода с указанием необходимых параметров.

Пример:

* В форме редактирования документа «Накладная» мы имеем непосредст­венный доступ к текущему документу (накладной). Значит, чтобы изме­нить номер накладной, запишем:

НомерДок = "12345678";

* В форме редактирования документа «Приказ на зачисление» мы имеем непосредственный доступ к реквизитам этого документа. Значит, чтобы за­писать имя нового сотрудника, пишем:

ФИО = "Иванов И.И.";

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

Пример:

* Допустим, у документа «Счет» есть реквизит «Накладная», который имеет тип «Документ.РасхНакл». Номер накладной можно получить следующим образом:

НомерРасхНакл=Документ.Счет.Накладная.НомерДок;

* Допустим, значение реквизита «Приказ» справочника «ПриказыНаДоплату» имеет тип «Документ.При­казНаДоплату». Тогда номер приказа можно получить следующим образом:

Спр = СоздатьОбъект("Справочник.ПриказыНаДоплату");

// ...

Номер = Спр.Приказ.НомерДок;

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

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

Полное имя вида документа записывается следующим образом:

Документ.<Имя_Документа>

где <Имя_Документа> — имя вида документа, как он объявлен в конфигу­раторе.

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

Англоязычный синоним ключевого слова Документ — Document.

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

Замечание. Объект, созданный при помощи функции СоздатьОбъект, изна­чально не определен, т. е. не содержит никакого значения. Чтобы начать с ним работать, его предварительно надо позиционировать (установить на конкретный документ) при помощи процедур НайтиДокумент, НайтиПоНомеру, ПолучитьДокумент и т. п..

Пример:

*

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

Док1 = СоздатьОбъект("Документ.БольничныйЛист");

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

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

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

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

*

// В модуле формы документа

// меняем номер обрабатываемого документа

НомерДок = "12345";

*

// В других модулях имена атрибутов, процедур и функций документов

// записываются через точку после имени переменной

// со значением типа "Документ".

Док = СоздатьОбъект("Документ.ПриказыДоплат");

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

Док.Новый();

Док.ОбщийРазмер = 12000000;

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

Док.НомерДок = "12345";

// меняем дату документа

Док.ДатаДок = '14.04.96';

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

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

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

Док.Процент = 15;

// ...

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]