Глава 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С:Предприятие для реализации
подбора предназначены следующие системные процедуры:
· ОткрытьПодбор;
· Активизировать;
· АктивизироватьСтроку.
Кроме того, при обработке выбранных в подборе
значений участвует следующая системная предопределенная процедура:
·
ОбработкаПодбора.