18c0693f

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

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

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

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

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

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

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

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

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

Пример:

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

НомерДок = 12345678;

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

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

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

Пример:

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

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

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

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

// ...

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

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

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

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

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

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

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

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

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

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

Пример:

*

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

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

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

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

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

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

*

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

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

НомерДок = 12345;

*

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ...

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

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

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

Позиции документа — это строковое значение специального формата длиной 32 символа. Позиция документа однозначно характеризует расположение до­кумента на оси времени относительно других документов, т. е. позиция доку­мента заключает в себе и дату и время (с точностью до секунды), плюс некото­рые дополнительные данные, определяющие взаимное расположение докумен­тов в пределах одной секунды. Позиции документов можно сравнивать (; ), определяя какой документ раньше, какой позже. Позиции документов можно сортировать по возрастанию или по убыванию. Кроме того, можно получить позицию точки актуальности (ПолучитьПозициюТА) и позицию границы последовательности (ПолучитьПозицию). Позицию документа можно получить при помощи метода Позиция.

Многие методы могут в качестве парамера воспринимать кроме документа или даты позицию документа.

См. также:

СформироватьПозициюДокумента, РазобратьПозициюДОкумента, ПолучитьПозициюТА, ПолучитьПозицию, ВыбратьДокументы, ВыбратьПодчиненныеДокументы, ВыбратьПоЗначению, РассчитатьРегистрыНа, РассчитатьРегистрыПо, УстановитьТАна, УстановитьТАпо, ВыбратьДвижения, ВыбратьДвиженияСОстатками, ВыполнитьЗапрос, Рассчитать, ВыбратьОперации, ВыбратьОперацииСПроводками, ВыбратьПоЗначению

Атрибуты документов

НомерДок

Номер документа

Синтаксис:

НомерДок

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

DocNum

Описание:

При помощи атрибута НомерДок можно получать и задавать значение но­мера выбранного документа.

Пример:

Основание = Вид() + № + СокрП(НомерДок) + от + ДатаДок;

ДатаДок

Дата документа

Синтаксис:

ДатаДок

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

DocDate

Описание:

Атрибут ДатаДок задает значение даты выбранного документа.

Пример:

Процедура ВводНового()

   // устанавливаем дату документа

   ДатаДок=РабочаяДата();

   Подразделение = Константа.АУП;

   Валюта = Константа.ДефВалютаЗакупки;

   Валюта.ИспользоватьДату(ДатаДок);

   Дата_Курса = ДатаДок;

   Курс = Валюта.Текущ_курс;

   Фирма = Константа.ДефФирма;

КонецПроцедуры

Реквизит

Значение реквизита документа.

Синтаксис:

Реквизит Идентификатор реквизита документа, как он задан в конфигураторе.
Описание:

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

Пример:

// предопределенная процедура ввода нового документа

// ТипСотр, Оклад — реквизиты документа

Процедура ВводНового()

   // Установим дату документа

   ДатаДок = РабочаяДата();

   ТипСотр = Перечисление.ТипСотрудника.Штатный;

   Оклад = Сотр.Оклад.Получить(ДатаДок);

   ПризнакНакладной = Перечисление.ПризнРасхНакл.Продажа;

КонецПроцедуры

НомерСтроки

Синтаксис:

НомерСтроки

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

LineNum

Описание:

Атрибут НомерСтроки задает числовое значение номера строки много­строчной части выбранного документа. Данный атрибут имеет смысл только при выбранной строке. Присвоение строке нового номера передвигает строку в многострочной части документа.

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока ПолучитьСтроку() 0 Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

Операция

Атрибут «Операция» предназначен для обращения к бухгалтерской операции документа.

Синтаксис:

Операция

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

Operation

Описание:

Атрибут «Операция» документа используется только в случае, если уста­новлена компонента «Бухгалтерский учет» и только для тех видов документов, для которых в конфигурации установлен признак «Бухгалтерский учет». Он предназначен для обращения к операции документа. Данный атрибут не используется как самостоятельное значение, а позволяет обращаться к атрибутам и методам операции. Описание атрибутов и методов операции см. в разделе «Работа с операциями и проводками».

Пример:

* В форме документа устанавливается содержание операции.

Процедура ПриЗаписи()

   Операция.Содержание = Износ за + Формат(ДатаДок, Д ММММГГТГ);

КонецПроцедуры

Методы документов

Вид

Название вида документа.

Синтаксис:

Вид()

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

Kind

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

Строковое значение, содержащее название вида документа, как он задан в конфи гураторе.

Описание:

Метод Вид возвращает название вида документа, как он задан в конфигура­торе.

Пример:

Если (Док.Вид() = ДоплатаПроцентом) ИЛИ (Док.Вид() = ДоплатаСуммой) Тогда

   Сотр = Док.Сотрудник;

Иначе

   Предупреждение(Это не доплата!);

КонецЕсли;

ПредставлениеВида

Определить пользовательское представление вида документа.

Синтаксис:

ПредставлениеВида()

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

KindPresent

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

Строковое значение, содержащее пользовательское представление вида до­кумента (синоним документа или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское пред­ставление вида документа, как оно задано в конфигураторе.

Пример:

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

Состояние(ВыбДокум.ПредставлениеВида());

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

УстановитьАтрибут(ИмяРеквизита, 3начение)

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

SetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
3начение Выражение, содержащее устанавливаемое значе­ние реквизита.
Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Док.УстановитьАтрибут(ЦенаРозн, ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита но имени идентификатора.

Синтаксис:

ПолучитьАтрибут(ИмяРеквизита)

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

GetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
Возвращаемое значение:

Значение реквизита ИмяРеквизита.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по име­ни идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаДок = Док.ПолучитьАтрибут(Цена);

Выбран

Возвратить флаг выбора документа.

Синтаксис:

Выбран()

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

Selected

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

Числовое значение: 1 — если документ выбран, 0 — если документ не вы­бран.

Описание:

Метод Выбран позволяет проверить сам факт позиционирования объекта типа «документ».

Пример:

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

// позиционируем документ по номеру

Док.НайтиПоНомеру(1, 0);

Если Док.Выбран() = 1 Тогда

    // если документ найден

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

    Док.ВыбратьСтроки();

    // цикл выбора строк спецификации документа

    Если Док.КоличествоСтрок() 0 Тогда

       Пока Док.ПолучитьСтроку() = 1 Цикл

          Док.УдалитьСтроку();

       КонецЦикла;

    КонецЕсли;

КонецЕсли;

Проведен

Возвратить флаг проводки документа.

Синтаксис:

Проведен()

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

IsTransacted

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

Числовое значение: 1 — если документ проведен, 0 — если документ не про­веден.

Описание:

Метод Проведен позволяет проверить сам факт проведения документа.

Пример:

Процедура ПолучитьПроведенные()

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

   // Откроем выборку документов

   Док.ВыбратьДокументы(ДатаНачала, ДатаКонца);

   // Цикл выбора документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      Если Док.Проведен() 0 Тогда

         // для проведенных документов выведем сообщение

         Сообщить(Строка(Док.Вид())+ № +Док.НомерДок+ от +Док.ДатаДок);

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

ТекущийДокумент

Определить значение текущего документа.

Синтаксис:

ТекущийДокумент()

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

CurrentDocument

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

Значение текущего документа.

Описание:

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

Пример:

Если Режим = Подробный Тогда

   // используем объект типа «документ» неопределенного вида

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

   // Откроем выборку документов

   Док.ВыбратьДокументы(ДатаНачала, ДатаОкончания);

   // Цикл выбора документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      // присвоим переменной ТекДок значение найденного документа

      ТекДок = Док.ТекущийДокумент();

      // ...

   КонецЦикла;

КонецЕсли;

Выбрать

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

Синтаксис:

Выбрать(Подсказка, ФормаЖурнала, КомуПодч)

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

Choose

Параметры:

Подсказка Текст заголовка окна диалога ввода. Может исполь­зоваться в качестве подсказки конечному пользова­телю.
ФормаЖурнала Строковое выражение идентификатора той формы журнала документа (как он объявлен в конфигура­торе), которая должна использоваться для выбора. Если это значение пустое, то используется форма журнала по умолчанию.. Можно указывать имя объекта в следующем виде:

· Журнал.ХХХХХ, где ХХХХХ — имя вида со­ответствующего объекта, как он задан в конфи­гураторе, например: Справочник.Товары;

· Журнал.Подчиненные;

· ЖурналОпераций;

· ЖурналОпераций.YYYYY, где YYYYY — имя формы журнала операций, как оно задано в конфигураторе;
КомуПодч Необязательный параметр. Используется при от­крытии выбора по журналу подчиненных докумен­тов, т.е когда второй параметр ФормаЖурнала имеет значение Журнал.Подчиненные. В дан­ном случае в этом параметре передается документ-владелец, по которому следует построить журнал подчиненных документов.
Возвращаемое значение:

Числовое значение: 1 — если документ выбран; 0 — если не выбран.

Описание:

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

Пример:

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

// вызываем диалог выбора документа

Если Док.Выбрать(Найди документ) 0 Тогда

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

   Док.Удалить();

КонецЕсли;

См. также: ВидыДляВыбора

ВидыДляВыбора

Установка выбираемых видов для объекта типа «документ» неопре­деленного вида.

Синтаксис:

ВидыДляВыбора(СписокВидов)

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

KindsForChoice

Параметры:

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

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

Описание:

Метод ВидыДляВыбора устанавливает выбираемые виды для объекта-документ неопределенного вида. Данный метод обычно используется до начала интерактивного позиционирования документа, например, при помощи метода Выбрать.

Данный метод может использоваться только для объектов типа «документ» неопределенного вида — либо созданных функцией СоздатьОбъект, либо оп­ределенных в конфигураторе как реквизиты диалога или другого объекта. Если метод ВидыДляВыбора применен к реквизиту диалога типа «документ» неоп­ределенного вида, то интерактивный выбор будет производиться только среди установленных видов документов.

Пример:

// данная процедура присваивает некоторому реквизиту НаОсновании

// значение конкретного документа

Процедура УстДокОснования()

   // Создадим объект типа «документ» неопределенного вида

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

   Дкм.ВидыДляВыбора(РасходнаяНакл, Счет);

   // Вызываем диалог выбора документа

   Если Дкм.Выбрать(Выберите документ основания, ) 0 Тогда

      НаОсновании = Дкм.ТекущийЭлемент();

   КонецЕсли;

КонецПроцедуры

См. также: Выбрать

Итог

Итоговое значение реквизита документа.

Синтаксис:

Итог(ИмяРеквизита)

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

Total

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизита табличной части документа, для которого в кон­фигураторе установлено свойство «Итог по ко­лонке».
Возвращаемое значение:

Числовое значение — сумма по всем строкам табличной части документа для реквизита ИмяРеквизита.

Описание:

Метод Итог позволяет определить сумму значений по всем строкам таб­личной части документа для реквизита ИмяРеквизита.

Данный метод может быть использован только для реквизитов табличной части документов, для которых установлено свойство «Итог по колонке» (за­кладка «Дополнительные» свойств реквизита документа в конфигураторе).

Пример:

Процедура ВычСреднего()

   // вычислим среднюю сумму по наряду

   Сумма = Итог(Сумма);

   Штук = Итог(Штук);

   Если Штук 0 Тогда

      Средн = Сумма / Штук;

   Иначе;

      Средн = 0;

   КонецЕсли;

КонецПроцедуры

КоличествоСтрок

Определить количество строк в документе.

Синтаксис:

КоличествоСтрок()

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

LinesCnt

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

Числовое значение — количество строк в документе.

Описание:

Метод КоличествоСтрок позволяет определить количество строк в много­строчной части документа.

Пример:

Сообщить(Документ: + Вид() + № + НомерДок + от + ДатаДок +

                    в документе + КоличествоСтрок() + строк);

НайтиДокумент

Найти документ по значению.

Синтаксис:

НайтиДокумент(Документ)

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

FindDocument

Параметры:

Документ Выражение, содержащее значение типа «Документ».
Возвращаемое значение:

Число 1 — если действие выполнено (документ найден);

Число 0 — если действие не выполнено.

Описание:

Метод НайтиДокумент выполняет поиск документа по значению, заданно­му параметром Документ. Данный метод используется для позиционирова­ния объекта на конкретный документ.

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

Пример:

Процедура УдалДок(Докум)

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

   // позиционируем созданный объект на заданном документе

   Док.НайтиДокумент(Докум);

   Если Док.Выбран() 0 Тогда

      // если документ найден, то удалим его

      Док.Удалить();

   Иначе

      Предупреждение (Неверно задан документ!);

   КонецЕсли;

КонецПроцедуры

НайтиПоНомеру

Найти документ по номеру.

Синтаксис:

НайтиПоНомеру(Номер, Дата, ИдентВида)

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

FindByNum

Параметры:

Номер Строковое выражение, содержащее значение номера иско­мого документа.
Дата Выражение типа «дата».
ИдентВида Необязательный параметр. Строковое выражение, содер­жащее идентификатор вида документа или идентификатор Нумератора.
Возвращаемое значение:

Число 1 — если действие выполнено (документ найден);

Число 0 — если действие не выполнено.

Описание:

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

Метод может быть использован для объекта Документ общего вида, тогда для поиска нужно указать в параметре ИдентВида идентификатор вида документа или идентификатор Нумератора.

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

Пример:

Если ВвестиЧисло(Ном, Введите номер приказа, 5, 0) = 1 Тогда

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

   // позиционируем документ по заданному номеру

   Док.НайтиПоНомеру(Строка(Ном), Дата(0));

   Если Док.Выбран() = 1 Тогда

      Документ=Док.ТекущийДокумент();

      // ...

   КонецЕсли;

КонецЕсли;

Получить Строку ПоНомеру

Получить строку документа по номеру.

Синтаксис:

ПолучитьСтрокуПоНомеру(Номер)

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

GetLineByNum

Параметры:

Номер Выражение, содержащее номер искомой строки.
Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено.

Описание:

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

Пример:

Процедура УдалЗаданнойСтроки(Док, Стр)

   Если Док.Выбран() = 1 Тогда

      // если переданный параметр содержит значение документа, то

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

      Док.ПолучитьСтрокуПоНомеру(Стр);

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

      Док.УдалитьСтроку();

   Иначе

      Предупреждение(Документ не выбран!);

   КонецЕсли;

КонецЕсли;

ВыбратьДокументы

Открыть выборку документов.

Синтаксис:

ВыбратьДокументы(НачалоВыборки, КонецВыборки)

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

SelectDocuments

Параметры:

НачалоВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого уста­навливается начало выборки документов. Если дан­ный параметр опущен, то выборка начинается с само­го первого существующего в системе документа.
КонецВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором уста­навливается конец выборки документов. Если дан­ный параметр опущен, то выборка заканчивается самым последним существующим в системе докумен­том.
Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один доку­мент;

Число 0 — если действие не выполнено или в выборке нет ни одного доку­мента.

Описание:

Метод ВыбратьДокументы открывает выборку документов в интервале с НачалоВыборки по КонецВыборки.

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

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

Пример:

Если Режим = Подробный Тогда

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

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

   Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПодчиненныеДокументы

Открыть выборку подчиненных документов.

Синтаксис:

ВыбратьПодчиненныеДокументы(НачалоВыборки, КонецВыборки, Докум)

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

SelectChildDocs

Параметры:

НачалоВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого уста­навливается начало выборки документов. Если дан­ный параметр опущен, то выборка начинается с само­го первого существующего в системе документа.
КонецВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором уста­навливается конец выборки документов. Если дан­ный параметр опущен, то выборка заканчивается самым последним существующим в системе докумен­том.
Докум Выражение типа «документ», содержащее значение документа-владельца, подчиненные которому будут включаться в выборку.
Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один доку­мент; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПодчиненныеДокументы открывает выборку всех доку­ментов, подчиненных заданному документу Докум в интервале с НачалоВыборки по КонецВыборки. Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возраста­ния даты и времени записи документов (если не задан обратный порядок мето­дом ОбратныйПорядок).

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

Пример:

//Проверка того, что по Счету были документы отгрузки

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

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

ДокТест.ВыбратьПодчиненныеДокументы('01.01.80', '31.12.99', ПоСчету);

// получение документа

Если ДокТест.ПолучитьДокумент() = 1 Тогда

   Предупреждение(По данному Счету были отгрузки!);

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПоЗначению

Открыть выборку документов по значению.

Синтаксис:

ВыбратьПоЗначению(НачалоВыборки, КонецВыборки, ИмяОтбора, 3нач)

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

SelectByValue

Параметры:

НачалоВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого уста­навливается начало выборки документов. Если дан­ный параметр опущен, то выборка начинается с само­го первого существующего в системе документа.
КонецВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором уста­навливается конец выборки документов. Если дан­ный параметр опущен, то выборка заканчивается самым последним существующим в системе докумен­том.
ИмяОтбора Строковое выражение, которое содержит либо назва­ние «общего реквизита» документов, либо название «графы отбора» журналов, как они заданы в конфи­гураторе.
3нач Значение отбора, по которому строится выборка до­кументов.
Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один доку­мент; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПоЗначению открывает выборку документов в интервале с НачалоВыборки по КонецВыборки, для которых реквизит отбора ИмяОтбора имеет конкретное заданное значение 3нач.

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

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

Пример:

Если Режим = Подробный Тогда

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

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

   Док.ВыбратьПоЗначению(ДатаНачало, ДатаКонец, Автор, Сидоров);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПоНомеру

Открыть выборку документов по номеру.

Синтаксис:

ВыбратьПоНомеру(Номер, Дата, ИдентВида)

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

SelectByNum

Параметры:

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

Число 1 — если действие выполнено и в выборке есть хотя бы один доку­мент; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПоНомеру открывает выборку всех документов с данным номером одного вида или одного нумератора (например, для поиска всех доку­ментов с совпадающими номерами).

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

Метод может быть использован для объекта Документ общего вида, тогда для поиска нужно указать в параметре ИдентВида идентификатор вида документа или идентификатор Нумератора.

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

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

Пример:

Если Режим = Подробный Тогда

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

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

   Док.ВыбратьПоНомеру(Ав-0005, '01.01.98', АктПереоценки);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПоПоследователыюсти

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

Синтаксис:

ВыбратьПоПоследовательности(НачПериода, КонПериода , Последоват)

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

SelectBySequence

Параметры:

НачПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого ус­танавливается начало выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе доку­мента.
КонПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки документов. Если данный параметр опущен, то выборка заканчива­ется самым последним существующим в системе документом.
Последоват Строковое выражение, содержащее идентифика­тор используемой Последовательности.
Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один доку­мент; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПоПоследовательности открывает выборку документов по заданной последовательности.

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

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

Пример:

Если Режим = Подробный Тогда

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

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

   Док.ВыбратьПоПоследовательности(НачД, ПолучитьДокументТА(), Упр);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ОбратныйПорядок

Установить порядок выборки документов.

Синтаксис:

ОбратныйПорядок(Режим)

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

BackwardOrder

Параметры:

Режим Необязательный параметр. Числовое выражение: 1 — выбирать документы в обратном порядке даты и времени; 0 — выбирать документы в порядке возрас­тания даты и времени. Значение по умолчанию — 1.
Возвращаемое значение:

Текущее значение порядка выборки документов (на момент до исполнения метода): 1 — обратный порядок выборки документов; 0 — выборка документов в порядке возрастания даты и времени.

Описание:

Метод ОбратныйПорядок устанавливает порядок выборки документов. Данный метод обычно используется до вызова одного из методов: ВыбратьДокументы, ВыбратьПодчиненныеДокументы, ВыбратьПоЗначению, который фактически открывает выборку. Дальнейшая выборка при помощи ПолучитьДокумент будет происходить в заданном по­рядке выборки.

По умолчанию, выборка документов выполняется в порядке возрастания даты и времени записи документов. Поэтому реально имеет смысл применять данный метод только в том случае, если надо получить обратный порядок вы­борки.

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

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

Пример:

Если Режим = Подробный Тогда

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

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

   Док = ОбратныйПорядок(1);

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

   Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

УстановитьФильтр

Назначить фильтр выборки документов.

Синтаксис:

УстановитьФильтр(Проведенные, НеПроведенные, НеИмеющиеПризнаковУчета,

Оперативные, Расчетные, Бухг)

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

SetFilter

Параметры:

Проведенные Числовое выражение: 0 — не вклю­чать в выборку проведенные доку­менты; 1 — включать.
НеПроведенные Числовое выражение: 0 — не вклю­чать в выборку непроведенные до­кументы; 1 — включать.
НеИмеющиеПризнаковУчета Числовое выражение: 0 — не вклю­чать в выборку документы не имеющие признаков учета; 1 — включать.
0перативные Числовое выражение: 0 — не вклю­чать в выборку оперативные доку­менты; 1 — данный флаг не влияет на выборку; 2 — если оперативный документ, то включается в выборку.
Расчетные Числовое выражение: 0 — не вклю­чать в выборку расчетные докумен­ты; 1 — данный флаг не влияет на выборку; 2 — если расчетный доку­мент, то включается в выборку.
Бухг Числовое выражение: 0 — не вклю­чать в выборку бухгалтерские доку­менты; 1 — данный флаг не влияет на выборку; 2 — если бухгалтерский документ, то включается в выборку.
Описание:

Метод УстановитьФильтр назначает фильтр выборки документов.

Примеры:

· Док.УстановитьФильтр(1, 1, 1, 1, 1, 1) — в выборку включаются все документы;

· Док.УстановитьФильтр(1, 0, 1, 1, 1, 1) — в выборку включаются все проведенные документы;

· Док.УстановитьФильтр(1, 1, 0, 1, 0, 1) — в выборку включаются все документы, имеющие признак оперативный или бухгалтерский или оба, но не имеют признака расчетный;

· Док.УстановитьФильтр(1, 1, 1, 2, 1, 2) — в выборку включаются все документы, имеющие признаки и оперативный и бухгалтерский и те, которые не имеют признаков учета;

· Док.УстановитьФильтр(1, 1, 1, 2, 0, 2) — в выборку включаются все документы, имеющие признаки и оперативный и бухгалтерский, но не имеют признака расчета, и те, которые не имеют признаков учета;

· Док.УстановитьФильтр(1, 0, 0, 0, 1, 0) — в выборку не включаются проведенные документы, если они неоперативные и небухгалтерские и имеют признаки учета, т. е. фактически только проведенные расчетные. Данный метод может использоваться только для документов, созданных функцией СоздатьОбъект.

Пример:

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

// устанавливаем фильтр выборки документов

Док.УстановитьФильтр(1, 0, 0, 1, 0, 0);

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

Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

// цикл получения документов

Пока Док.ПолучитьДокумент() 0 Цикл

   ТекДок = Док.ТекущийДокумент();

КонецЦикла;

ПолучитьДокумент

Получить из выборки следующий документ.

Синтаксис:

ПолучитьДокумент()

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

GetDocument

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

Числовое значение: 1 — если следующий документ выбран успешно; 0 — ес­ли документ не найден (отсутствует).

Описание:

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

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

Пример:

Если Режим = Подробный Тогда

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

   // Откроем выборку документов

   Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

   // Цикл выбора документов

   Пока Док.ПолучитьДокумент() 0 Цикл

   // присвоим переменной ТекДок значение найденного документа

      ТекДок = Док.ТекущийДокумент();

      // ...

   КонецЦикла;

КонецЕсли;

См. также: ВыбратьДокументы

ВыбратьСтроки

Открыть выборку строк многострочной части документа.

Синтаксис:

ВыбратьСтроки()

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

SelectLines

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

Число: 1 — если действие выполнено и в выборке есть хотя бы одна строка; 0 — если действие не выполнено или в выборке нет ни одной строки.

Описание:

Метод ВыбратьСтроки открывает выборку строк многострочной части до­кумента. Непосредственно сама выборка осуществляется при помощи метода ПолучитьСтроку в порядке возрастания номеров строк.

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

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

   ВыбратьСтроки();

   // цикл получения строк спецификации документа

   Пока ПолучитьСтроку() 0 Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

ПолучитьСтроку

Получить из выборки следующую строку табличной части документа.

Синтаксис:

ПолучитьСтроку()

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

GetLine

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

Число: 1 — если следующая строка табличной части документа выбрана ус­пешно; 0 — если следующая строка документа не найдена (отсутствует).

Описание:

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

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

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

   ВыбратьСтроки();

   // цикл выбора строк спецификации документа

   Пока ПолучитьСтроку() 0 Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар=Товар;

      Регистр.ТовЗап.Количество=Количество;

      Регистр.ТовЗап.Стоимость=Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

Новый

Начать ввод нового документа.

Синтаксис:

Новый()

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

New

Описание:

Метод Новый инициализирует создание нового документа. Собственно за­пись нового документа в информационную базу происходит при вызове метода Записать. После инициализации создания нового документа, как правило производится заполнение его реквизитов с последующим вызовом метода Записать.

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

Пример:

// данная процедура создает документ с № 1, в котором записывает

// все имеющиеся в справочнике должности

Процедура Оприходовать()

   Спр = СоздатьОбъект(Справочник.Должности);

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

   // найдем документ с № 1

   Док.НайтиПоНомеру(1, 0);

   Если Док.Выбран() = 0 Тогда

      // если документа с № 1 не существует, то создадим его

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

      Док.НомерДок = 1;

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

      // запишем все должности в документ

      Спр.ВыбратьЭлементы();

      Пока Спр.ПолучитьЭлемент() 0 Цикл

         Если (Док.Выбран() = 1) Тогда

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

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

         КонецЕсли;

      КонецЦикла;

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

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

   КонецЕсли;

КонецПроцедуры

ПрефиксНомера

Установить текущий префикс номера для документа.

Синтаксис:

ПрефиксНомера(Префикс)

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

NumPrefix

Параметры:

Префикс Необязательный параметр. Строковое выражение — новый префикс номера для документа.
Возвращаемое значение:

Строковое значение текущего префикса документа (на момент до исполне­ния метода).

Описание:

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

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

Пример:

ПрефиксНомера(Сч-);

См. также: ПрефиксАвтоНумерации, УстановитьНовыйНомер

УстановитьНовыйНомер

Установить новый номер с префиксом номера для документа.

Синтаксис:

УстановитьНовыйНомер(Префикс)

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

SetNewNum

Параметры:

Префикс Строковое выражение — префикс номера докумен­та.
Описание:

Метод УстановитьНовыйНомер устанавливает новый номер документа с заданным префиксом Префикс. Данный метод производит корректное пере­присвоение номера документа (с автоинкрементацией и резервированием номе­ра на время ввода).

Пример:

УстановитьНовыйНомер(01-);

См. также: ПрефиксАвтоНумерации, ПрефиксНомера

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

НазначитьТип(ИмяРеквизита, ИмяТипа, Длина, Точность)

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

SetType

Параметры:

ИмяРеквизита Строковое выражение — название реквизита доку­мента неопределенного типа, как он назван в конфи­гураторе.
ИмяТипа Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту до­кумента. Например:

Строка, Число, Справочник.Товары, Документ.РасходнаяНакладная ит.п.
Длина Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
Точность Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.
Описание:

Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип «Неопределенный».

Пример:

Накладная.НазначитьТип(ТМЦ, Справочник.Товары);

Записать

Записать документ.

Синтаксис:

Записать()

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

Write

Описание:

Метод Записать выполняет запись в базу данных текущего нового или из­мененного документа.

Замечание. Если этот метод применяется в Модуле формы документа непо­средственно к документу локального контекста, то данный метод отраба­тывает те же действия, как интерактивное нажатие пользователем кнопки с формулой #Записать.

Пример:

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

Док.АвтоВремяТекущее();

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

Док.УстановитьНовыйНомер(Прг-);

Док.Клиент = Константа.ОсновнойКлиент;

Док.Количество = 5;

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

Док.Провести(1, Программно);

Удалить

Удалить документ.

Синтаксис:

удалить(Режим)

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

Delete

Параметры:

Режим Необязательный параметр. Числовое выражение: 1 — непосредственное удаление; 0 — пометка на удаление. Значение по умолчанию — 1.
Описание:

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

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

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

Пример:

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

Если Док.Выбрать(Найди документ) 0 Тогда

   Док.Удалить(1);

КонецЕсли;

См. также: ПометкаУдаления, СнятьПометкуУдаления

ПометкаУдаления

Прочитать флаг пометки удаления документа.

Синтаксис:

ПометкаУдаления()

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

DeleteMark

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

Число: 1 — если на документе стоит пометка удаления; 0 — если нет пометки удаления.

Описание:

Метод ПометкаУдаления позволяет прочитать значение пометки удаления документа.

Пример:

Процедура УсловноеУдаление(Докум)

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

   Если Докум.Выбран() 0 Тогда

      // позиционируем документ на переданном значении

      Док.НайтиДокумент(Докум);

      Если Док.Выбран() 0 Тогда

         Если Вопрос(Удалять??? , 1) = 1 Тогда

            Если Док.ПометкаУдаления() = 1 Тогда

               Предупреждение(Уже помечен на удаление!);

            Иначе

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

               Док.Удалить(0);

            КонецЕсли;

         КонецЕсли;

      Иначе

         Предупреждение(Нечего удалять! );

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: Удалить, СнятьПометкуУдаления

СнятьПометкуУдаления

Снять пометку удаления документа.

Синтаксис:

СнятьПометкуУдаления()

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

ClearDeleteMark

Описание:

Метод СнятьПометкуУдаления снимает пометку удаления текущего до­кумента.

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

Пример:

Процедура Восстановление(Докум)

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

   Если Докум.Выбран() 0 Тогда

      // позиционируем документ на переданном значении

      Док.НайтиДокумент(Докум);

      Если Док.Выбран() 0 Тогда

         Если Док.ПометкаУдаления() = 1 Тогда

            // восстанавливаем

            Спр.СнятьПометкуУдаления();

         КонецЕсли;

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры _________ _______

См. также: Удалить, ПометкаУдаления

НоваяСтрока

Добавить новую строку в документ.

Синтаксис:

НоваяСтрока()

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

NewLine

Описание:

Метод НоваяСтрока добавляет новую строку с очередным порядковым номером в многострочную часть документа.

Пример:

Процедура ОбработкаПодбора(Выб, КонФормы)

   Кол=0;

   Если ВвестиЧисло(Кол, Введите количество, 10, 0) = 1 Тогда

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

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

      Работа = Выб;

      Количество = Кол;

      АктивизироватьСтроку();

   КонецЕсли;

КонецПроцедуры

УдалитьСтроку

Удалить строку документа.

Синтаксис:

УдалитьСтроку()

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

DeleteLine

Описание:

Метод УдалитьСтроку удаляет текущую строку из многострочной части Документа.

Пример:

Процедура УдалЗаданнойСтроки(Док, Стр)

   Если Док.Выбран() = 1 Тогда

      // если переданный параметр содержит значение документа, то

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

      Док.ПолучитьСтрокуПоНомеру(Стр);

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

      Док.УдалитьСтроку();

      Предупреждение(Документ не выбран!);

   КонецЕсли;

КонецЕсли;

УдалитьСтроки

Удалить все строки документа.

Синтаксис:

УдалитьСтроки()

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

DeleteLines

Описание:

Метод УдалитьСтроки удаляет сразу все строки из многострочной части документа.

Пример:

УдалитьСтроки();

СортироватьСтроки

Сортировать многострочную часть документа по реквизитам.

Синтаксис:

СортироватьСтроки(Колонки)

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

SortLines

Параметры:

Колонки                                Перечисленные через запятую реквизиты много­строчной части документа, по которым следует сортировать. Знаки +, -, предшествующие на­званию реквизита указывают направление сорти­ровки по реквизиту. Знак * — сортировать по внутреннему значению реквизита.
Описание:

Метод СортироватьСтроки позволяет сортировать многострочную часть документа по реквизитам.

Пример:

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

Если Док.Выбрать(Найди документ) 0 Тогда

   Док.СортироватьСтроки(+Сумма, -НДС);

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

КонецЕсли;

ПолучитьПозицию

Получить позицию документа.

Синтаксис:

ПолучитьПозицию()

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

GetPosition

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

32-х символьное строковое значение позиции документа.

Описание:

Метод ПолучитьПозицию возвращает позицию документа.

Замечание. Позиция может существовать только у записанного документа.

Пример:

ПозицияДокумента = ВыбДокумент.ПолучитьПозицию();

ПринадлежитПоследовательности

Определить, принадлежит ли последовательности данный документ.

Синтаксис:

ПринадлежитПоследовательности(Последов, НовоеЗначение)

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

BelongToSequence

Параметры:

Последов Строковое выражение, определяющая Последова­тельность.
НовоеЗначение Необязательный параметр. Число:

1 — документ принудительно устанавливается как принадлежащий последовательности; 0 — документ принудительно устанавливается как не принадлежащий последовательности.

Использование этого параметра разрешено только при проведении документа (в Модуле документа).
Возвращаемое значение:

Число: 1 — если документ принадлежит последовательности; 0 — если не при­надлежит.

Описание:

Метод ПринадлежитПоследовательности позволяет определить, при­надлежит ли документ заданной последовательности.

Пример:

Если Док.ПринадлежитПоследовательности(«УпрУчет») = 1 Тогда

   Если Последовательность.УпрУчет.Сравнить(Док) = 1 Тогда

      Последовательность.УпрУчет.Установить(Док);

   КонецЕсли;

КонецЕсли;

ИспользоватьЖурнал

Использовать журнал для отбора документов и доступа к графам.

Синтаксис:

ИспользоватьЖурнал(Журнал, ФлагОгрПросм)

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

UseJournal

Параметры:

Журнал Идентификатор журнала, который предполагается использовать для отбора документов и доступа к графам.
ФлагОгрПросм Необязательный параметр. Число: 1 — если выборка ограничивается документами, входящими в указан­ный журнал; 0 — если метод используется только для использования граф методом Графа. Значение по умолчанию 1.
Описание:

Метод ИспользоватьЖурнал позволяет при переборе документов коман­дой Выбрать использовать журнал для отбора документов и доступа к графам журнала.

Пример:

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

Док.ИспользоватьЖурнал(Приходные);

См. также: Графа

Графа

Выдает значение графы журнала для текущего документа.

Синтаксис:

Графа(Графа)

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

Column

Параметры:

Графа Идентификатор графы журнала, который задан методом ИспользоватьЖурнал.
Возвращаемое значение:

Значение заданной графы журнала для текущего документа.

Описание:

Метод Графа позволяет получить значение заданной графы журнала для текущего документа. Данный метод работает только в том случае, если ранее Применен метод ИспользоватьЖурнал.

Пример:

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

Док.ИспользоватьЖурнал(Приходные, 0);

док.НайтиДокумент(ВыбДок);

Цена = Док.Графа(Цена);

См. также: ИспользоватьЖурнал

Блокировка

Установить/прочитать режим блокировки.

Синтаксис:

Блокировка(ВклВыкл)

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

Locking

Параметры:

ВклВыкл Необязательный параметр. Число: 1 — включить; 0 — выключить.
Возвращаемое значение:

Если при вызове метода параметр ВклВыкл не задан, то возвращается режим блокировки до выполнения метода. Число: 1 — заблокирован; 0 — свобо­ден.

Если при вызове метода параметр ВклВыкл задан, то возвращается ре­зультат выполнения метода блокировки. Число: 1 — успешно; 0 — не получи­лось.

Описание:

Метод Блокировка позволяет установить/прочитать режим блокировки.

Пример:

Блокировка(0);

ПолучитьВремя

Прочитать время документа.

Синтаксис:

ПолучитьВремя(Часы, Минуты, Секунды)

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

GetTime

Параметры:

Часы Идентификатор переменной, в которую метод воз­вращает строковое значение минут записи документа.
Секунды Идентификатор переменной, в которую метод воз­вращает строковое значение секунд записи докумен­та.
Возвращаемое значение:

Строковое значение времени записи документа в виде ЧЧ.ММ.СС.

Описание:

Метод ПолучитьВремя возвращает время документа в переданные для это­го переменные Часы, Минуты, Секунды.

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

Пример:

Функция ВремяДокумента(Док)

   Перем Ч;

   Перем М;

   Перем С;

   Если Док.Выбран() 0 Тогда

      Док.ПолучитьВремя(Ч, М, С);

      Возврат Документ записан в + Ч + час + М + мин. + С + с;

   Иначе

      Возврат Документ не выбран!;

   КонецЕсли;

Конецфункции

УстановитьВремя

Установить время документа.

Синтаксис:

УстановитьВремя(Часы, Минуты, Секунды)

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

SetTime

Параметры:

Часы Числовое выражение.
Минуты Числовое выражение.
Секунды Числовое выражение.
Описание:

Метод УстановитьВремя устанавливает время документа в соответствии с заданными параметрами Часы, Минуты, Секунды.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

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

Если Док.Выбрать(Найди документ) 0 Тогда

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

КонецЕсли;

См. также: ПриИзмененииВремениДокумента

АвтоВремяНачалоДня

Установить новому документу время на начало дня.

Синтаксис:

АвтоВремяНачалоДня()

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

AutoTimeBegOfDay

Описание:

Метод АвтоВремяНачалоДня устанавливает режим, при котором новому документу записывается время на начало дня.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

Процедура УстВремяДок(Док, Режим)

   Если Режим = Начало Тогда

      Док.АвтоВремяНачалоДня();

   ИначеЕсли Режим = Конец Тогда

      Док.АвтоВремяКонецДня();

   ИначеЕсли Режим = Текущее Тогда

      Док.АвтоВремяТекущее();

   Иначе

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

   КонецЕсли;

КонецПроцедуры

АвтоВремяКонецДня

Установить новому документу время на конец дня.

Синтаксис:

АвтоВремяКонецДня()

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

AutoTimeEndOfDay

Описание:

Метод АвтоВремяКонецДня устанавливает режим, при котором новому документу записывается время на конец дня.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

См. предыдущий пример

АвтоВремяТекущее

Установить новому документу текущее время.

Синтаксис:

АвтоВремяТекущее()

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

AutoTimeCurrent

Описание:

Метод АвтоВремяТекущее устанавливает режим, при котором новому до­кументу записывается текущее время.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

Процедура УстВремяДок(Док, Режим)

   Если Режим = Начало Тогда

      Док.АвтоВремяНачалоДня();

   ИначеЕсли Режим = Конец Тогда

      Док.АвтоВремяКонецДня();

   ИначеЕсли Режим = Текущее Тогда

      Док.АвтоВремяТекущее();

   Иначе

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

   КонецЕсли;

КонецПроцедуры

АвтоВремяПослеТА

Установить новому документу время после ТА.

Синтаксис:

АвтоВремяПослеТА()

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

AutoTimeAfterAP

Описание:

Метод АвтоВремяПослеТА устанавливает режим, при котором, если совпа­дает дата документа с датой ТА, то новому документу автоматически записыва­ется время после ТА. Метод исполняется только если установлена компонента оперативный учет.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

Процедура УстВремяДок(Док, Режим)

   Если Режим = Начало Тогда

      Док.АвтоВремяНачалоДня();

   ИначеЕсли Режим = Конец Тогда

      Док.АвтоВремяКонецДня();

   ИначеЕсли Режим = Текущее Тогда

      Док.АвтоВремяТекущее();

   ИначеЕсли Режим = ПослеТА Тогда

      Док.АвтоВремяПослеТА();

   Иначе

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

   КокецЕсли;

КонецПроцедуры

АвтоВремяОтключить

Отключает режим автоматической установки времени документа.

Синтаксис:

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

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

AutoTimeOff

Описание:

Метод АвтоВремяОтключить отключает режим автоматической установки времени нового документа, при этом новые документы заносятся с временем устанавливаемым при помощи метода УстановитьВремя.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

См. предыдущий пример

См. также: УстановитьВремя

Провести

Выполнить проведение документа.

Синтаксис:

Провести(Режим, 3нач)

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

MakeActions

Параметры:

Режим Необязательный параметр. Числовое выраже­ние: 0 — проводить документ без сдвига ТА; 1 — проводить непроведенный документ реальным вре­менем (со сдвигом ТА); 2 — перепроводить прове­денный документ реальным временем (со сдвигом ТА); 3 —проводить любой (непроведенный, прове­денный) документ реальным временем (со сдвигом ТА). Значение по умолчанию — 0.

Данный параметр устанавливает режим прове­дения документа после ТА. Этот метод относится к случаю проведения документа в пределах даты, в которой находится ТА. Дело в том, что при записи документа, документ кроме даты получает еще и время документа. В многопользовательском режиме часто возникает ситуация, когда в момент проведе­ния документа, он уже оказывается не последним в потоке проводимых документов (провели документ с другого рабочего места), в этом случае система 1С:Предприятие дает на выбор два варианта прове­дения:

· провести документ тем временем, каким он был записан, т. е. фактически задним временем (до ТА);

· изменить время документа в рамках текущей даты, чтобы документ стал самым последним и проводился в потоке, т. е. в ТА.
3нач Необязательный параметр. Выражение произволь­ного типа. Значение данного параметра будет пере­дано системой в качестве параметра при запуске предопределенной процедуры ОбработкаПроведения. Использовать данное зна­чение можно, например, для того, чтобы в процеду­ре ОбработкаПроведения правильно отработать режим проведения, т. к. это программный, а не ин­терактивный и не групповой (см. ГрупповаяОбработка) способ проведения. По умолчанию передается пустое значение.
Возвращаемое значение:

Число: 1 — проведение документа завершено успешно; 0 — проведение до­кумента не выполнено.

Описание:

Метод Провести запускает процедуру проведения документа. Возвращае­мое значение можно использовать, например, в качестве условия принятия ре­шения при завершении обработки транзакции.

Замечание. Данный метод нельзя использовать в теле предопределенной про­цедуры ОбработкаПроведения.

Замечание. Если этот метод применяется в Модуле формы документа непо­средственно к документу локального контекста, то данный метод отраба­тывает те же действия, как интерактивное нажатие пользователем кнопки с формулой #Провести. В этом случае, если параметр Режим опу­щен, то документ проводится в режиме, соответствующем установкам сис­темы меню «Сервис» - «Параметры».

Пример:

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

Док.АвтоВремяТекущее();

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

Док.УстановитьНовыйНомер(Прг-);

Док.Клиент = Константа.ОсновнойКлиент;

Док.Количество = 5;

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

Док.Провести(1, Программно);

См. также: ОбработкаПроведения, ГруппроваяОбработка

СделатьНеПроведенным

Отменить проведение документа.

Синтаксис:

СделатьНеПроведенным()

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

UnPost

Описание:

Метод СделатьНеПроведенным отменяет проведение документа. Данный метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения.

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

Пример:

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

Док.НайтиДокумент(Докум);

Док.СделатьНеПроведенным();

См. также: Провести, ПриОтменеПроведенияДокумента

СравнитьТА

Сравнить дату и время документа с Точкой актуальности итогов.

Синтаксис:

СравнитьТА()

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

CompareWithAP

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

Числовое значение:

· 1(плюс единица) — если дата и время документа больше даты и времени Точки актуальности итогов.

· 0 — если дата и время документа равно дате и времени Точки актуаль­ности итогов.

· -1 (минус единица) — если дата и время документа меньше даты и вре­мени Точки актуальности итогов.

· -2 (минус два) в случае, если новый документ, который сравнивается с ТА, еще не записан, то есть он еще не имеет никакой позиции на оси времени.

Описание:

Метод СравнитьТА сверяет дату и время документа с датой и временем Точки актуальности итогов, позволяя определить положение на оси времени момента записи документа по отношению к текущиму положению ТА.

Пример:

Процедура ОбработкаПроведения()

   Если СравнитьТА() 0 Тогда

      // если документ после ТА, вызываем процедуру

      ПроводкаДокументаБудущимЧислом();

   ИначеЕсли СравнитьТА() 0 Тогда

      // если документ до ТА, вызываем процедуру

      ПроводкаДокументаЗаднимЧислом();

   Иначе

      // если документ в ТА, вызываем процедуру

      ПроводкаДокумента();

   КонецЕсли;

КонецПроцедуры

СуществуетОперация

Устанавливает (возвращает) признак существования операции у до­кумента.

Синтаксис:

СуществуетОперация(Признак)

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

OperExist

Параметры:

Признак Числовое выражение: 1 — существует операция, 0 — не существует операции.
Возвращаемое значение:

Числовое значение — текущее значение признака: 1 — у документа сущест­вует операция; 0 — у документа не существует операции.

Описание:

В метаданных для конкретного вида документа (имеющего признак «Бух­галтерский учет») устанавливается режим записи операции. Операция может записываться для документов данного вида в режимах: «Всегда», «Выборочно» и «Только при проведении».

Метод СуществуетОперация применяется в случае использования режима «Выборочно». Он устанавливает признак наличия операции у конкретного до­кумента. Данная возможность позволяет записывать операцию для документов конкретного вида в зависимости от некоторых условий. Для режимов записи операции «Всегда» и «Только при проведении» данный метод смысла не име­ет.

Пример:

* Для накладной операция будет записываться только если отгрузка ведется с основного склада.

Процедура ПриЗаписи()

   Если Склад = ОснСклад Тогда

      СуществуетОперация(1);

   Иначе

      СуществуетОперация(0);

   КонецЕсли;

КонецПроцедуры

ВыгрузитьТабличнуюЧасть

Выгрузить многострочную часть документа в таблицу значений.

Синтаксис:

ВыгрузитьТабличнуюЧасть(3нач, Реквизиты)

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

UnloadTable

Параметры:

3нач Идентификатор переменной, содержащей значе­ние типа «Таблица значений» или «Список зна­чений», куда нужно выгрузить данные из много­строчной части документа. Если переданное зна­чение пустое, то система сама создаст объект типа «Таблица значений». Колонки совмещаются по идентификаторам.
Реквизиты Необязательный параметр. Список реквизитов многострочной части документа через запятую. Данный параметр указывает, какие реквизиты выгружать, если не указано то все. Для номера строки документа в таблице значений создается отдельная колонка с идентификатором НомерСтрокиДокумента. При задании какие колонки выгружать, для выгрузки номера строки надо указать колонку НомерСтроки.
Описание:

Метод ВыгрузитьТабличнуюЧасть выгружает многострочную часть до­кумента в таблицу значений или список значений. Если в качестве значения для выгрузки задан список значений, то система выгружает данные из много­строчной части документа последовательно по реквизитам.

Пример:

ВыбДокум.ВыгрузитьТабличнуюЧасть(ТаблЗнач, Товар, Сумма, НДС, Цена);

ЗагрузитьТабличнуюЧасть

Загрузить многострочную часть документа из таблицы значений.

Синтаксис:

ЗагрузитьТабличнуюЧасть(ТаблЗнач)

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

LoadTable

Параметры:

ТаблЗнач Таблица значений, откуда загружается много­строчная часть документа. Колонки совмещаются по идентификаторам.
Описание:

Метод ЗагрузитьТабличнуюЧасть загружает многострочную часть доку­мента из таблицы значений.

Пример:

ВыбДокум.ЗагрузитьТабличнуюЧасть(ТаблЗнач);

Методы контекста Модуля формы документа

Описанные в данном разделе методы доступны только в контексте Модуля формы документа (см. «Виды программных модулей»).

ПриЗаписиПерепроводить

Установить режим обязательного перепроведения документа при за­писи.

Синтаксис:

ПриЗаписиПерепроводить(Режтл)

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

ReMakeActionsWhenWrite

Параметры:

Режим Числовое выражение: 1 — устанавливает флаг обязательного перепроведения при записи уже проведенного документа; 0 — снимает флаг обяза­тельного перепроведения при записи уже прове­денного документа.
Описание:

Метод ПриЗаписиПерепроводить устанавливает режим обязательного пе­репроведения при записи ранее проведенного документа (интерактивный отказ от проведения документа или ошибка модуля приведет к отмене записи отре­дактированного документа).

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы Пример:

Процедура ПриОткрытии()

   ПриЗаписиПерепроводить(1);

КонецПроцедуры

ПроводитьПослеТА

Установить режим проведения документа после ТА.

Синтаксис:

ПроводитьПослеТА(ФлагДляНеПровДокумента, ФлагДляПровДокумента)

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

PostingAfterTA

Параметры:

ФлагДляНеПровДокумента Режим проведения документа после ТА. Число: -1 (минус единица) — проводить документ всегда задним числом; 0 — при проведении запрашивать режим проведе­ния документа; 1 — проводить документ в реальном потоке времени, т. е. при про­ведении время документа автоматически устанавливается на время после ТА.
ФлагДляПровДокумента Режим перепроведения документа после ТА. Числовое выражение: -1 (минус еди­ница) — проводить документ всегда зад­ним числом; 1 — проводить документ в потоке.
Возвращаемое значение:

Текущее значение режим перепроведения документа в зависимости от про-веденности.

Описание:

Метод ПроводитьПослеТА устанавливает режим проведения документа после ТА. Этот метод относится к случаю проведения документа в пределах даты, в которой находится ТА. Дело в том, что при записи документа, документ кроме даты получает еще и время документа. В многопользовательском режиме часто возникает ситуация, когда в момент проведения документа, он уже ока­зывается не последним в потоке проводимых документов (провели документ с другого рабочего места), в этом случае система ЮПредприятие дает на выбор три варианта проведения:

· провести документ тем временем, каким он был записан, т. е. фактически задним временем (до ТА);

· изменить время документа (в рамках текущей даты), чтобы документ стал самым последним и проводился в потоке, т. е. после ТА;

· запросить у пользователя, в каком режиме провести документ.

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

Процедура ПриОткрытии()

   ПроводитьПослеТА(1, 1);

КонецПроцедуры

АктивизироватьСтроку

Установить курсор на указанной строке многострочной части доку­мента.

Синтаксис:

АктивизироватьСтроку(НомСтроки)

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

ActivateLine

Параметры:

НомСтроки Необязательный параметр. Номер строки, кото­рую следует активизировать. Если параметр опу­щен, то активизируется текущая строка много­строчной части документа.
Описание:

Данный метод в основном предназначен для использования в системной предопределенной процедуре ОбработкаПодбора. Метод АктивизироватьСтроку выполняет визуальную активизацию строки доку­мента в форме редактирования документа после выхода из предопределенной процедуры ОбработкаПодбора.

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

Процедура ОбработкаПодбора(Выб, КонтФормы)

   Кол = 0;

   Если ВвестиЧисло(Кол, Введите количество, 10, 0) = 1 Тогда

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

      Товар = Выб;

      УстанЦеныРасх(Контекст);

      Количество = Кол;

      Выч_суммы_накл(Контекст);

      АктивизироватьСтроку();

      Активизировать(Цена);

   КонецЕсли;

КонецПроцедуры

См. также: ОбработкаПодбора

ИзменениеПорядкаСтрок

Установить режим изменения порядка строк в форме документа.

Синтаксис:

ИзменениеПорядкаСтрок(Разрешить)

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

ChangeLinesOrder

Параметры:

Разрешить Необязательный параметр. Число: 1 — разрешить изменение порядка строк в документе; 0 — запре­тить. Если параметр не задан, то режим не меня­ется.
Возвращаемое значение:

Режим изменения порядка строк до исполнения метода. Число: 1 — разре­шено изменение порядка строк в документе; 0 — запрещено.

Описание:

Метод ИзменениеПорядкаСтрок позволяет установить режим изменения порядка строк в форме документа.

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

ИзменениеПорядкаСтрок(0);

Модифицированность

Возвратить признак изменения реквизитов текущей формы докумен­та.

Синтаксис:

Модифицированность()

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

Modify

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

Числовое значение: 1 — если реквизиты текущей формы документа были изменены; 0 — если нет.

Описание:

Метод Модифицированность возвращает признак изменения реквизитов формы (в режиме исполнения он отображается символом (*) в заголовке окна формы).

Данный метод доступен только в Модуле формы документа(см. «Виды про­граммных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы докумен­та.

Пример:

Изм = Модифицированность();

Предопределенные процедуры Модуля формы документа

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях формы документов (см. «Виды про­граммных модулей»).

В основном данные процедуры предназначены для расширения возможно­сти программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами язы­ка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего собы­тия. Описание предопределенных процедур также см. гл. «Системные предо­пределенные процедуры».

ВводНового

Предопределенная процедура при вводе нового документа.

Синтаксис:

ВводНового(ПризнКопирования, ОбъектКопирования)

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

InputNew

Параметры:

ПризнКопирования Признак того, что объект введен копировани­ем. Число: 1 — объект введен копированием, 0 — просто новый объект. Данный признак мо­жет быть использован для анализа необходи­мости инициализации реквизитов нового объ­екта.
ОбъектКопирования Объект, который был скопирован.
Описание:

Вызов процедуры ВводНового производится в системе 1С:Предприятие неявно в момент выбора пункта меню «Действия» — «Новый» при работе с Документами. Данная процедура может использоваться, например, для установки начальных значений (по умолчанию) реквизитов нового документа. Если в данной предопределенной процедуре установить статус возврата — 0 (напри­мер, если данному пользователю нельзя вводить документы), ввода нового до­кумента и открытие его формы не будет выполнено.

Процедуру ВводНового контекста документа можно размещать в Модулях форм документов (см. «Виды программных модулей»).

Пример:

Процедура ВводНового();

   Валюта = Константа.ДефВалютаПродажи;

   Валюта.ИспользоватьДату(ДатаДок);

   Дата_Курса = ДатаДок;

   Если Число(Валюта.Код) = Число(Константа.БазоваяВалюта.Код) Тогда

      //У базовой валюты курс = 1, поэтому отображаем курс Основной валюты

      Константа.ОсновнаяВалюта.ИспользоватьДату(ДатаДок);

      Курс = Константа.ОсновнаяВалюта.Текущ_курс;

   Иначе

      Курс = Валюта.Текущ_курс;

   КонецЕсли;

   Фирма = Константа.ДефФирма;

   Клиент = Константа.ДефПокупатель;

КонецПроцедуры

См. также: СтатусВозврата

ВводНаОсновании

Предопределенная процедура при вводе нового документа на основании.

Синтаксис:

ВводНаОсновании(ДокументОснование)

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

InputCausedBy

Параметры:

ДокументОснование Значение документа, на основании которо­го вводится новый документ.
Описание:

Вызов процедуры ВводНаОсновании производится в системе 1С:Предприятие неявно после выбора пункта меню «Действия» - «Ввести на основании». В этот момент система подставляет фактическое значение пара­метра ДокументОснование, содержащее документ, на котором находился курсор в момент выполнения данной команды.

Данная процедура может использоваться, например, для установки началь­ных значений (по умолчанию) реквизитов нового документа, вводимого на ос­новании другого. Если в данной предопределенной процедуре установить ста­тус возврата — 0 (например, если данному пользователю нельзя вводить новые документы), ввода нового документа и открытие его формы не будет выполне­но.

Процедуру ВводНаОсновании можно размещать только в Модулях форм документов (см. «Виды программных модулей»).

Пример:

Процедура ВводНаОсновании(ДокОснование)

   Если (ДокОснование.Вид() = ПриходнаяРеализ)

         ИЛИ ДокОснование.Вид() = РасходнаяРеализ) Тогда

      ПризнакРеализатора = Перечисление.ПризнакиРеализаторов.Реализатор_Клиент;

      ДатаДок = РабочаяДата();

      Валюта = Константа.БазоваяВалюта;

      Валюта.ИспользоватьДату(ДатаДок);

      Дата_Курса = ДокОснование.Дата_Курса;

      Курс = ДокОснование.Курс;

      НДС = ДокОснование.НДС;

      СН = ДокОснование.СН;

      Фирма = ДокОснование.Фирма;

      Основание = + ДокОснование + от + ДокОснование.ДатаДок;

      ДокОснование.ВыбратьСтроки();

      Пока ДокОснование.ПолучитьСтроку() = 1 Цикл

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

         Товар = ДокОснование.Товар;

         Цена = ДокОснование.Цена;

         Единица = ДокОснование.Единица;

         Коэффициент = ДокОснование.Коэффициент;

         Количество = ДокОснование.Количество;

         Сумма = ДокОснование.Сумма;

      КонецЦикла;

   Иначе

      Предупреждение(Этот Документ можно вводить только на основании

                       |накладных по реализации!);

      ВводНового();

   КонецЕсли;

   Валюта_Прежн = Валюта;

   Курс_Прежн = Курс;

КонецПроцедуры

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи документа.

Синтаксис:

ПриЗаписи()

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

OnWrite

Описание:

Вызов предопределенной процедуры ПриЗаписи производится в системе 1С:Предприятие при интерактивной записи документа. Если в данной предо­пределенной процедуре установить статус возврата — 0 (например, если данно-wy пользователю нельзя изменять реквизиты документа), запись документа не будет выполнена.

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриЗаписи()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права изменять документ!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриНачалеРедактированияСтроки

Предопределенная процедура при редактировании существующей строки документа.

Синтаксис:

ПриНачалеРедактированияСтроки()

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

OnStartEditLine

Описание:

Вызов предопределенной процедуры ПриНачалеРедактированияСтроки производится в системе 1С:Предприятие в момент начала интерактивного ре­дактирования существующей строки многострочной части документа. Если в данной предопределенной процедуре установить статус возврата — 0 (напри­мер, если данному пользователю нельзя изменять документ), то запись не будет изменена.

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права изменит, документ 1, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВводеСтроки

Предопределенная процедура при вводе новой строки многострочной части документа.

Синтаксис:

ПриВводеСтроки()

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

OnNewLine

Описание:

Вызов предопределенной процедуры ПриВводеСтроки производится в сис­теме 1С:Предприятие при интерактивном вводе новой строки многострочной части документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять доку­мент), то новая строка не будет инициирована.

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриВводеСтроки()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права добавлять строки!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриРедактированииНовойСтроки

Предопределенная процедура при редактировании новой строки мно­гострочной части документа.

Синтаксис:

ПриРедактированииНовойСтроки()

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

OnEditNewLine

Описание:

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

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриРедактированииНовойСтроки()

   Количество = 10;

   Коэффициент = 1;

   Скидка=0;

КонецПроцедуры

См. также: СтатусВозврата

ПриОкончанииРедактированияСтроки

Предопределенная процедура при окончании редактирования строки многострочной части документа.

Синтаксис:

ПриОкончанииРедактированияСтроки(НовСтр)

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

OnFinishLineEdit

Параметры:

НовСтр Флаг новой строки. Число: 1 — если произошло окончание ввода новой строки, 0 — если произошло окончание редактирования существующей строки.
Описание:

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

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

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриОкончанииРедактированияСтроки()

   Если Количество = 0 Тогда

      Количество = 1;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУдаленииСтроки

Предопределенная процедура при удалении строки многострочной части документа.

Синтаксис:

ПриУдаленииСтроки()

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

OnDeleteLine

Описание:

Вызов предопределенной процедуры ПриУдаленииСтроки производится в системе 1С:Предприятие при интерактивном удалении строки многострочной части документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять доку­мент), удаление строки документа не будет выполнено.

Данная предопределенная процедура может располагаться только в Моду­лях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриУдаленииСтроки()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права удалять строки!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриИзмененииПорядкаСтрок

Предопределенная процедура при изменении порядка строк много­строчной части документа.

Синтаксис:

ПриИзмененииПорядкаСтрок(Действие)

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

OnChangeLinesOrder

Параметры:

Действие Число: -1 — перемещение строки вверх; 1 — перемещение строки вниз; 0 — перенумерация строк.
Описание:

Вызов предопределенной процедуры ПриИзмененииПорядкаСтрок произ-^дится в системе 1С:Предприятие при интерактивном изменении порядка строк многострочной части документа (перемещения строк вверх-вниз, перену­мерация, сортировка). Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять документ), изменении порядка строк документа не будет выполнено.

Данная предопределенная процедура может располагаться только в Моду­лях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриИзмененииПорядкаСтрок()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права изменять документ!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

Методы контекста Модуля документа

Описанные в данном разделе методы доступны только в контексте Модуля документа (см. «Виды программных модулей»).

ИтогиАктуальны

Возвратить флаг актуальности итогов.

Синтаксис:

ИтогиАктуальны()

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

AreTotalsActual

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

Числовое значение: 1 — итоги актуальны, 0 — нет.

Описание:

Метод ИтогиАктуальны позволяет определить — выполняется ли проведе­ние документа в реальном времени или задним числом (когда нельзя обращать­ся к текущим остаткам регистров).

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Системные предопре­деленные процедуры»).

Пример:

Процедура ОбработкаПроведения()

   // Для расходной накладной ВыбратьСтроки();

   Пока ПолучитьСтроку() 0 Цикл

      Если ИтогиАктуальны() 0 Тогда

         // если итоги актуальны,

         // то текущие стоимости берем из текущих остатков

         Регистр.ОстаткиТоваров.Склад = Скпад;

         Регистр.ОстаткиТоваров.Товар = Товар;

         Регистр.ОстаткиТоваров.ОстаткиПолучить();

         Регистр.ОстаткиТоваров.БазоваяСтоимость =

                 Регистр.ОстаткиТоваров.БазоваяСтоимость * Количество *

                 Коэффициент / Регистр.ОстаткиТоваров.ОстатокТовара;

         Регистр.ОстаткиТоваров.ВалютнаяСтоимость =

                 Регистр.ОстаткиТоваров.ВалютнаяСтоимость * Количество *

                 Коэффициент / Регистр.ОстаткиТоваров.ОстатокТовара;

         Регистр.ОстаткиТоваров.ОстатокТовара = Количество * Коэффициент;

         Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить();

      Иначе

         // если итоги не актуальны,

         //то стоимости берем из врем. расчета Регистра

         Рег = СоздатьОбъект(Регистр.ОстаткиТоваров);

         Рег.ВременныйРасчет();

         РассчитатьРегистрыНа(ТекущийДокумент());

         Рег.Товар = Товар;

         Рег.Склад = Склад;

         Рег.ОстаткиПолучить();

         Регистр.ОстаткиТоваров.БазоваяСтоимость =

                 Рег.БазоваяСтоимость * Количество * Коэффициент /

                 Рег.ОстатокТовара;

         Регистр.ОстаткиТоваров.ВалютнаяСтоимость =

                 Рег.ВалютнаяСтоимость * Количество * Коэффициент /

                 Рег.ОстатокТовара;

         Регистр.ОстаткиТоваров.ОстатокТовара = Количество * Коэффициент;

         Регистр.ОстаткиТоваров.Склад = Склад;

         Регистр.ОстаткиТоваров.Товар = Товар;

         Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить();

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

ГрупповаяОбработка

Возвратить флаг групповой обработки.

Синтаксис:

ГрупповаяОбработка()

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

IsGroupPrосеssing

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

Число: 1 — групповое обработка, 0 — проведение документа по одному.

Описание:

Метод ГрупповаяОбработка позволяет определить, выполняется ли про­ведение документа группой (при помощи режима «Управление итогами») или по одному (интерактивно).

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. гл. «Системные предопреде­ленные процедуры»).

Пример:

Лроцедура ОбработкаПроведения()

   Если ГрупповаяОбработка() 0 Тогда

      // если групповая проводка документов, то вызываем процедуру

      ПроводкаДокументаГруппой();

   Иначе

      // если не групповая проводка документов, то

      ПроводкаДокументаОдиночного();

   КонецЕсли;

КонецПроцедуры

См. также: ОбработкаПроведения, Провести

НеПроводитьДокумент

Отменить процесс проведения документа.

Синтаксис:

НеПроводитьДокумент()

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

DoNotTransactDoc

Описание:

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

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Системные предопре­деленные процедуры»).

По своему действию данный метод полностью аналогичен вызову системной функции СтатусВозврата с параметром 0, т. е. отменить действие.

Пример:

Процедура ОбработкаПроведения();

   Если Число(Клиент.Выбран()) 0 Тогда

      ДвиженияРегистраРеализации();

   Иначе

      Сообщить(Не выбран клиент по реализации!!! Документ не проводится!!!);

      НеПроводитьДокумент();

      Возврат;

   КонецЕсли;

КонецПроцедуры

См. также:

СтатусВозврата

УстановитьРеквизитСправочника

Записать значение периодического реквизита справочника с привяз­кой к документу.

Синтаксис:

УстановитьРеквизитСправочника(ЭлементСправочника, НазваниеРеквизита,

                 3начение, ДатаУстановки, ИмяТипа, Длина, Точность)

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

SetRefField

Параметры:

ЭлементСправочника Выражение, задающее элемент справочника, в котором требуется записать новое значение периодического реквизита.
НазваниеРеквизита Строковое выражение — название периоди­ческого реквизита справочника (как он на­зван в конфигураторе) в котором требуется записать новое значение периодического реквизита.
3начение Новое значение периодического реквизита.
ДатаУстановки Выражение типа «дата», на которую требует­ся установить новое значение периодическо­го реквизита. Этот параметр имеет смысл только для не оперативных документов и позволяет установить значение на другую дату чем дата документа, но тогда с пустым временем.
ИмяТипа Необязательный параметр. Строковое выра­жение — название типа данных (или Вид субконто).
Длина Необязательный параметр. Число — длина числового или строкового значения.
Точность Необязательный параметр. Число знаков после десятичной точки для числового зна­чения.
Описание:

Метод УстановитьРеквизитСправочника записывает новое значение пе­риодического реквизита справочника с привязкой к документу. Использование Данного метода позволяет вносить изменения в справочники с привязкой к проведению документа. Это значит, что при удалении или редактировании или отказе от проведения документа все сделанные им изменения в справочнике будут корректно отменены. Средства языка позволяют выбирать такие движе-иия справочника по документу или определять документ, который произвел изменения в справочнике (см. «Работа с объектом Периодический»).

Параметры ИмяТипа, Длина и Точность следует указывать при уста­новке значения периодического реквизита справочника имеющего неопреде­ленный тип.

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Системные предопре­деленные процедуры»).

Пример:

// при работе в контексте документа, его реквизит Сотрудник

// является переменной типа справочник,

// чтобы установить новое значение периодического

// реквизита Оклад этого элемента

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

Процедура ОбработкаПроведения();

   // .....

   Моклад = Константа.МаксимальныйОклад;

   УстановитьРеквизитСправочника(Сотрудник, Оклад, МОклад, ДатаДок);

   // .....

КонецПроцедуры

ОчиститьДвижения

Удалить движения документа.

Синтаксис:

ОчиститьДвижения(ВидыДвижений)

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

ClearActions

Параметры:

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

· Регистр.ХХХХХХ — движение конкретного регистра, где ХХХХХХ — конкретный вид регистра;

· Операция — бухгалтерская опера­ция;

· Справочник — все изменения пе­риодических реквизитов справочни­ков;

· ЖурналРасчетов — все измененияв журналах расчетов. Если данный параметр не задан, то произво­дится полная очистка всех движений.
Описание:

Метод ОчиститьДвижения удаляет существующие движения документа.

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

Если метод не вызывается при распроведении документа, то существующие движения после распроведения стираются.

Использование данного метода позволяет:

· допроводить документ, т. е. доделывать движения в добавок к уже суще­ствующим;

· делать движения, анализируя ранее сделанные и уже существующие;

· выполнять распроведение документа, анализируя существующие движе­ния;

· не очищать существующие движения при перепроведении, если это не нужно.

Замечание. Данный метод доступен только при отключенном в конфигурации флаге «Автоматическое удаление движений».

Замечание. Данный метод доступен только в контексте Модуле формы доку­мента (см. «Виды программных модулей»). Действие данного метода от­носится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

Процедура ОбработкаПроведения()

   ОчиститьДвижения(Операция; Справочник; ЖурналРасчетов);

   ДвиженияРегистровНакладных(Контекст);

КонецПроцедуры

// —————————————————————————————————————

Процедура ОбработкаУдаленияПроведения()

   ОчиститьДвижения();

КонецПроцедуры

ПривязыватьСтроку

Записывать номер строки документа в движениях документа.

Синтаксис:

ПривязыватьСтроку(НомерСтроки)

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

LinkLine

Параметры:

НомерСтроки Выражение, содержащее номер строки документа.
Описание:

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

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

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения.

Пример:

Процедура ОбработкаПроведения()

   ПривязыватьСтроку(НомерСтроки);

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока(ПолучитьСтроку() 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

Предопределенные процедуры Модуля документа

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях документов (см. «Виды программных модулей»).

Данные предопределенные процедуры вызываются как при интерактивном так и при программном возникновении события.

Предопределенные процедуры не является встроенными процедурами язы­ка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего собы­тия. Описание предопределенных процедур также см. гл. «Системные предо­пределенные процедуры».

ОбработкаПроведения

Предопределенная процедура обработки проведения документа.

Синтаксис:

ОбработкаПроведения(3нач)

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

Posting

Параметры:

3нач Необязательный параметр. Идентификатор перемен­ной, в которую системой будет передано значение па­раметра, если проведение документа запущено про­граммно при помощи метода Провести. Использовать данное значение можно, например, для того, чтобы в процедуре ОбработкаПроведения правильно отрабо­тать режим проведения, т. к. в случае вызова метода Провести это будет программный, а не интерактив­ный и не групповой (см. ГрупповаяОбработка) спо­соб проведения документа.
Описание:

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

Вызов процедуры ОбработкаПроведения производится в системе 1С:Предприятие неявно при выполнении проведения документа в любом ре­жиме (интерактивное проведение документа, групповое проведение, программ­ная инициализация проведения при помощи метода Провести). Если прове­дение документа запущено программно, то система подставляет фактическое значение параметра 3нач, содержащее значение параметра, заданного при вызове метода Провести.

Замечание. В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система 1С:Предприятие сама выпол­няет все действия через транзакцию (см. «Процедуры работы с транзак­циями»), поэтому никаких специальных действий по обработке транзак­ций в этих предопределенных процедурах предпринимать не нужно.

Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя проводить документ), то прове­дение документа не будет выполнено и будет отменена системная транзакция.

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

Для корректного выполнения алгоритма проведения документа в Модуле документа доступны методы ИтогиАктуальны и ГрупповаяОбработка, кото­рые позволяют правильно определить режим проведения документа (см. «Рабо­та с документами»).

Данная предопределенная процедура может располагаться только в Моду­лях документов (см. «Виды программных модулей»).

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока( ПолучитьСтроку() 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

См. также: СтатусВозврата, МтогиАктуальны, ГрупповаяОбработка, Провести

ОбработкаУдаленияПроведения

Предопределенная процедура обработки удаления проведения доку­мента.

Синтаксис:

ОбработкаУдаленияПроведения()

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

UnPostingProcess

Описание:

Процедура ОбработкаУдаленияПроведения — предопределенная проце­дура. Она не является встроенной процедурой языка. Для нее определено толь­ко название и синтаксис. Тело процедуры должно быть написано разработчи­ком конфигурации в Модуле документа (см. «Виды программных модулей»). Вызов процедуры ОбработкаУдаленияПроведения производится в системе 1С:Предприятие неявно при отмене проведения документа или при удалении проведенных документов в любом режиме — интерактивно или программно. (см. СделатьНеПроведенным, Удалить).

Замечание. В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система 1С:Предприятие сама выполняет все действия через транзакцию (см. «Процедуры работы с транзак­циями»), поэтому никаких специальных действий по обработке транзакций в этих предопределенных процедурах предпринимать не нужно.

Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя отменять проведение докумен­та) то отмена проведения документа не будет выполнена и будет отменена сис­темная транзакция.

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

Данная предопределенная процедура может располагаться только в Моду­лях документов (см. «Виды программных модулей»).

Пример:

Процедура ОбработкаУдаленияПроведения()

   // Процедура выполняется при отмене проведения

   // или удалении документа

   // Сотрудник — это реквизит документа

   СпрСотрудники.НайтиЭлемент(Сотрудник);

   // если нашли сотрудника...

   Если СпрСотрудники.Выбран() = 1 Тогда

      // СтРасч — это реквизит документа

      СпрСотрудники.НайтиЭлемент(СтРасч);

      ВозвратРасч = 0;

      Если СпрСотрудники.Выбран() = 1 Тогда

         // если старый расчетчик еще есть — откатим!

         ВозвратРасч = 1;

      КонецЕсли;

      СпрСотрудники.НайтиЭлемент(Сотрудник);

      Если ВозвратРасч = 1 Тогда

         СпрСотрудники.Родитель = СтРасч;

      КонецЕсли;

      СпрСотрудники.Записать();

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, СделатьНеПроведенным, Удалить

АрхивироватьДокумент

Предопределенная процедура обработки архивирования документа.

Синтаксис:

АрхивироватьДокумент()

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

ArchiveDocument

Описание:

Вызов процедуры АрхивироватьДокумент производится в системе 1С:Предприятие неявно в процессе смены расчетного периода журнала расче­тов вперед (т.н. архивация данных расчета), если в журнале расчетов содер­жатся записи, порожденные данным документом.

Тело процедуры должно быть написано разработчиком конфигурации в Модуле документа, вызываемом в конфигураторе: Документ — Редактировать — Модуль документа.

Пример:

Процедура АрхивироватьДокумент()

   // Процедура выполняется при архивации документа расчета

   ЖР = СоздатьОбъект(ЖурналРасчетов.Зарплата);

   Если Окончание ЖР.КонецТекущегоПериода() Тогда

      Зарегистрировать(ТекущийДокумент());

   КонецЕсли;

КонецПроцедуры

Команды организации механизма заполнения документа методом подбора

При вводе документа, процесс заполнения реквизитов многострочной части документа может быть реализован как обычным способом, так и при помощи специального механизма — методом подбора. Этот механизм предназначен для ускорения интерактивного заполнения значений реквизитов документов типа «справочник» и «документ». Реальным примером может служить процесс за­полнения спецификации накладной путем подбора нужных товаров из спра­вочника Товары.

В системе 1С:Предприятие для реализации подбора предназначены сле­дующие системные процедуры:

· ОткрытьПодбор;

· Активизировать;

· АктивизироватьСтроку.

Кроме того, при обработке выбранных в подборе значений участвует сле­дующая системная предопределенная процедура:

· ОбработкаПодбора.