Глава 17 Работа с операциями и проводками
Для отражения в бухгалтерском учете информации
о движении средств в системе 1С:Предприятие используются Операции и Проводки.
Эти объекты поддерживаются компонентой «Бухгалтерский учет». Настройка свойств
операций и проводок производится соответвующими объектами метаданных в
конфигурации. В руководстве по конфигурированию можно подробно ознакомиться с
основными принципами и свойствами операций и проводок.
Контекст работы с операциями и
проводками
Для манипулирования данными операций и
проводок из встроенного языка 1С:Предприятия используется агрегатный объект
типа «Операция». Так как проводки в системе 1С:Предприятие принадлежат
операциям, то управление и операциями и проводками выполняется объектом
«Операция».
Во-первых, объект «Операция» используется для
формирования и анализа проводок формируемых документом. Для этого у агрегатного
объекта «Документ» существует атрибут Операция типа «Операция», который обеспечивает доступ к операции данного
документа.
Во-вторых, объект «Операция» непосредственно
доступен в контекстах формы операции, формы журнала операции и формы журнала
проводок. То есть в модулях указанных форм обращение к атрибутам и методам
текущего объекта выполняется напрямую. В форме журнала операций текущим
объектом является операция, на которой в данный момент стоит курсор в форме
журнала. В форме журнала проводок текущим объектом является операция, которой
принадлежит проводка, на которой в данный момент стоит курсор в форме журнала.
В-третьих, объект «Операция» используется для
перебора существующих операций и проводок при формировании отчетов и других
выборок. В этом случае объект создается при помощи вызова функции СоздатьОбъект (Операция). Англоязычный синоним ключевого слова Операция — Operation.
В этом варианте использования становятся
доступны методы перебора операций и проводок различных операций, а также
добавления и удаления операции.
Метод записи операции доступен также при
проведении документа.
Как уже отмечалось, доступ к проводкам также
осуществляется объектом «Операция». Методы и атрибуты объекта «Операция»
осуществляют доступ к данным как собственно операции, так и к данным проводок.
Операция содержит набор методов для перебора и позиционирования на конкретные
проводки. При этом одна из проводок операции может быть текущей. Все обращения
к атрибутам и методам данных проводки будут относится именно к текущей проводке.
Если текущей проводки нет, то обращение к атрибутам и методам проводки
недоступно.
Одной из возможностей организации данных
бухгалтерского учета системы 1С:Предприятие является поддержка сложных
проводок. Под сложной проводкой понимается проводка, состоящая из нескольких
корреспонденции (одного дебета — нескольких кредитов или наоборот). С точки
зрения синтаксиса объекта «Операция» текущей проводкой может являться простая
проводка или одна из корреспонденции сложной проводки. Нумерация проводок
осуществляется номером проводки и номером корреспонденции.
С точки зрения чтения, все операции
используются практически одинаково. Однако изменения (создание новых, запись,
удаление) операций сильно отличается для операций двух типов.
«Ручные» операции — это операции, введенные
пользователем вручную или записанные объектом типа «Операции», созданным
функцией СоздатьОбъект. Все изменения из встроенного языка этих операций производятся объектами
типа «Операции», созданными функцией СоздатьОбъект. Такие операции принадлежат документам специального вида «Операция»,
который не имеет большинства свойств обычных документов и используется только
для отражении в журналах документов «Ручных» операций. Вид документа
«Операция» создается системой автоматически при внесении в конфигурацию первого
объекта метаданных типа «План счетов».
Операции принадлежащие документам — это
операции, которые создаются документами различных видов, которым установлен
признак «Бухгалтерский учет» (кроме вида «Операция»). Эти операции могут
записываться только при записи документов или при проведении документов.
Наличие операции у кон-кертного документа регламентируется в метаданных в
настройках вида документа. Операция для документа конкретного вида может
создаваться либо при записи (режим «Всегда»), либо создаваться выборочно (режим
«Выборочно») (при помощи метода документа СуществуетОперация), либо только при проведении документа (режим «только при
проведении»). В первых двух случаях изменение реквизитов самой операции может
производиться в модуле формы документа и при записи они автоматически будут
записаны в операцию принадлежащую документу. Однако проводки в операцию
принадлежащую документу могут быть записаны в любом случае только в процессе
проведения документа (предопределенной процедуре ОбработкаПроведения). При этом в процессе проведения документа для записи операции следует
вызвать метод операции Записать. Операция созданная документом в процессе проведения при
перепроведении документа сначала уничтожается, а при выполнении процедуры ОбработкаПроведения записывается
заново. Если документ делается не проведенным, то проводки из операции
удаляются, а сама операция уничтожается, если она была записана в режиме
«только при проведении».
Дата операции.
Синтаксис:
ДатаОперации
Англоязычный
синоним:
OperDate
Значение:
Значение типа «Дата».
Описание:
Атрибут ДатаОперации содержит дату бухгалтерской операции. Так как каждая бухгалтерская
операция принадлежит документу (причем только одному, а операция введенная
вручную также принадлежит специальному документу «Операция»), значение
атрибута совпадает со значением атрибута ДатаДок документа, которому принедлежит операция. Наличие данного атрибута у
оп-реации упрощает обращение к дате документа, которому принадлежит операция.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Сообщить(Опер.ДатаОперации);
Содержание операции.
Синтаксис:
Содержание
Англоязычный
синоним:
Description
Значение:
Значение типа «Строка».
Описание:
Атрибут Содержание служит для обращения к содержанию операции. Содержание операции
представляет собой произвольную символьную строку. Максимальная длина
содержания задается в конфигураторе при редактировании свойств объекта
метаданных «Операция».
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Сообщить(Опер.Содержание);
Сумма операции.
Синтаксис:
СуммаОперации
Англоязычный
синоним:
OperSum
Значение:
Значение типа «Число».
Описание:
Атрибут СуммаОперации служит для обращения к сумме операции. Сумма операции является положительным
или отрицательным числом. Сумма операции предназначена лишь для иллюстрирования
денежного выражения операции и не влияет на бухгалтерские итоги. Длина и
точность суммы операции задается конфигураторе при редактировании свойств
объекта метаданных «Операция».
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Сообщить(Опер.СуммаОперации);
Возвращает или задает значение дополнительного
реквизита операции.
Синтаксис:
РеквизитОперации |
Идентификатор
дополнительного реквизита операции, как он задан в конфигураторе. |
Значение:
Тип значения определяется типом реквизита
заданным в метаданных.
Описание:
Помимо реквизитов операции, задаваемых на
системном уровне (сумма, содержание), в процессе конфигурирования для операции
можно создать практически неограниченное число дополнительных реквизитов для
хранения любой необходимой информации.
Атрибут Реквизит позволяет обращаться к значению дополнительного реквизита
операции. Для обращения к конкретному реквизиту должен быть указан его
идентификатор, заданный для этого реквизита в конфигураторе.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Сообщить(Опер.ПризнакУчета);
Документ, которому принадлежит операция.
Синтаксис:
Документ
Англоязычный
синоним:
Document
Значение:
Значение типа документ.
Описание:
Атрибут Документ является атрибутом «только для чтения», то есть ему нельзя присваивать
никакого значения. Он служит для обращения к документу, котрому принадлежит
операция. Так, как любая операция принадлежит документу (операция введенная
«вручную» принадлежит документу специального вида «Операция») доступ к
некоторым свойствам операции, например, номеру возможен только посредством
обращения к атрибуту Документ.
Атрибут Документ предназначен только для доступа к атрибутам и реквизитам документа,
которому принадлежит операция. Для получения значения типа «Документ»
используется метод ТекущийДокумент.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Сообщить(Опер.Документ.НомерДок);
Сумма выбранной проводки (корреспонденции)
операции.
Синтаксис:
Сумма
Англоязычный
синоним:
Sum
Значение:
Значение типа «Число».
Описание:
Атрибут Сумма служит для обращения к сумме выбранной проводки (корреспонденции) операции.
Перед обращением к атрибуту конкретной
проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при
помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка
определяется положением курсора.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Сумма + Опер.Сумма);
КонецЦикла;
Валюта выбранной проводки или корреспонденции
операции.
Синтаксис:
Валюта
Англоязычный
синоним:
Currency
Значение:
Значение типа «Справочник», вид которого
определен в настройке валютного учета в конфигурации.
Описание:
Атрибут Валюта служит для обращения к валюте выбранной проводки или корреспонденции
операции.
Перед обращением к атрибуту конкретной
проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при
помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка
определяется положением курсора.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДоку мент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Валюта + Опер.Валюта + Вал.сумма= +
Опер.ВалСумма);
КонецЦикла;
Валютная сумма выбранной проводки или
корреспонденции операции.
Синтаксис:
ВалСумма
Англоязычный
синоним:
CurSum
Значение:
Значение типа «Число».
Описание:
Атрибут ВалСумма служит для обращения к сумме в валюте выбранной проводки или корреспонденции
операции.
Перед обращением к атрибуту конкретной
проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при
помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка
определяется положением курсора.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Валюта + Опер.Валюта + Вал.сумма= +
Опер.ВалСумма);
КонецЦикла;
Количество выбранной проводки или
корреспонденции операции.
Синтаксис:
Количество
Англоязычный
синоним:
Amount
Значение:
Значение типа «Число».
Описание:
Атрибут Количество служит для обращению к количеству выбранной проводки или корреспонденции
операции.
Перед обращением к атрибуту конкретной
проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при
помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка
определяется положением курсора.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Количество =+0пер.Количество);
КонецЦикла;
Обращение к дополнительному реквизиту
проводки.
Синтаксис:
РеквизитПроводки |
Идентификатор
дополнительного реквизита проводки, как он задан в конфигураторе. |
Описание:
Помимо реквизитов проводки, задаваемых на
системном уровне (сумма, валюта и других), в процессе конфигурирования для
проводки можно создать практически неограниченное число дополнительных
реквизитов для хранения любой необходимой информации.
Атрибут РеквизитПроводки позволяет обращаться к значениям дополнительных реквизитов
проводки. Для обращения к конкретному реквизиту должен быть указан его
идентификатор, заданный для этого реквизита в конфигураторе.
Перед обращением к атрибуту конкретной
проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при
помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка
определяется положением курсора.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Количество = + Опер.Количество);
КонецЦикла;
Обращение к дебету проводки (корреспонденции).
Синтаксис:
Дебет
Англоязычный
синоним:
Debit
Описание:
Атрибут Дебет служит для обращения к дебетовой части текущей проводки (корреспонденции)
операции. Данный атрибут возвращает агрегатный объект специального типа
«Дебет», который используется только для доступа к данным дебетовой части
конкретной проводки (корреспонденции) операции и не используется отдельно.
Перед обращением к атрибуту конкретной
проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при
помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка
определяется положением курсора.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Проводка + Опер.Дебет.Счет + - +
Опер.Кредит.Счет);
КонецЦикла;
Обращение к кредиту проводки
(корреспонденции).
Синтаксис:
Кредит
Англоязычный
синоним:
Credit
Описание:
Атрибут Кредит служит для обращения к кредитовой части текущей проводки
(корреспонденции) операции. Данный атрибут возвращает агрегатный объект
специального типа «Кредит», который используется только для доступа к данным
кредитовой части конкретной проводки (корреспонденции) операции и не
используется отдельно.
Перед обращением к атрибуту конкретной
проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при
помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка
определяется положением курсора.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Проводка + Опер.Дебет.Счет + - +
Опер.Кредит.Счет);
КонецЦикла;
Счет дебета/кредита проводки (корреспонденции)
операции.
Синтаксис:
Счет
Англоязычный
синоним:
Account
Значение:
Значение типа «Счет».
Описание:
Атрибут Счет служит для доступа к счету дебета/кредита проводки или корреспонденции
операции.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Проводка + Опер.Дебет.Счет.Наименование + -
+
Опер.Кредит.Счет.Наименование);
КонецЦикла;
Субконто дебета/кредита проводки
(корреспонденции) операции.
Синтаксис:
Субконто |
Идентификатор вида
субконто, как он задан в конфигураторе. |
Описание:
Атрибут Субконто служит для доступа к значению субконто дебета/кредита проводки
(корреспонденции) операции. В конкретном случае обращение к субконто для
дебета/кредита определяется счетом дебета/кредита, то есть заданными для него
видами субконто по которым ведется аналитический учет по этому счету.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Если Опер.Дебет.Счет=СчетПоКоду(60) Тогда
Сообщить(Субконто + Опер.Дебет.Организация);
КонецЕсли;
КонецЦикла;
Обращение к субконто дебета/кредита проводки
(корреспонденции) операции.
Синтаксис:
Субконто(ПорядковыйНомерСубконто
| ВидСубконто, Субконто)
Англоязычный
синоним:
Subconto
Параметры:
ПорядковыйНомерСубконто |
Необязательный
параметр. Числовое выражение — порядковый номер субконто. По умолчанию 1. |
ВидСубконто |
Значение типа «Вид
субконто». |
Су6конто |
Необязательный
параметр. Значение субконто. Если параметр не задан — значение не изменяется. |
Возвращаемое
значение:
Если указан порядковый номер вида субконто или
вид субконто, метод возвращает значение субконто.
Описание:
К любому счету или субсчету в плане счетов
может быть «прикреплено» до 5 видов субконто. Максимальное количество видов
субконто, которое можно «прикрепить» к счету, устанавливается в конфигураторе
при редактировании свойств планов счетов. Количество субконто, которое реально
прикреплено к счету, не превышает установленного максимального количества.
Все виды субконто, прикрепленные к счету в
плане счетов, имеют порядковые номера. Эти номера выдаются в названии колонок
для видов субконто в окне редактирования плана счетов; «Субконто1», «Субконто2»
... «Субконто5».
Метод Субконто дебета/кредита проводки служит для получения и установки значения
субконто по его номеру или виду соотвественно в дебете или в кредите проводки
(коррепспонденции) операции.
Возможность использования субконто конкретного
вида или номера определяется счетом дебета/кредита проводки.
Если при использовании метода Субконто первым параметром
передается порядковый номер субконто или вид субконто, то метод возвратит
значение субконто, имеющего этот номер.
Если вторым параметром передается значение
субконто, метод присваивает указаное значение виду субконто проводки.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Для Инд = 1 По Опер.Дебет.Счет.КоличествоСубконто() Цикл
Сообщить(Субконто + Опер.Дебет.Субконто(Инд));
КонецЦикла;
КонецЦикла;
Представление субконто дебета/кредита проводки
(корреспонденции) операции.
Синтаксис:
ПредставлениеСубконто(ПорядковыйНомерСубконто
| ВидСубконто, Режим)
Англоязычный
синоним:
SubcontoPresentation
Параметры:
ПорядковыйНомерСубконто |
Необязательный
параметр. Числовое выражение — порядковый номер субконто. По умолчанию 1. |
ВидСу6конто |
Идентификатор вида
субконто. |
Режим |
Необязательный
параметр. Числовое выражение — признак полноты выдачи представления
субконто. Может принимать значения: 0 — полное представление; 1 — краткое
представление. По умолчанию 0; |
Возвращаемое
значение:
Символьная строка — представление субконто.
Описание:
Представлением называется символьная строка,
содержащая информацию из реквизитов субконто. Эта символьная строка может быть
использована для отображения значений реквизитов субконто в различных отчетах,
диалогах и других визуальных элементах конфигурации.
Представление может быть настроено в
конфигурации для видов субконто типа «Справочник» или «Документ». Формат
представления определяется в конфигураторе при редактировании свойств вида
субконто.
Метод ПредставлениеСубконто позволяет получить представление для субконто дебета/кредита текущей
проводки (корреспонденции).
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Для Инд = 1 По Опер.Дебет.Счет.КоличествоСубконто() Цикл
Сообщить(Субконто + Опер.Дебет.ПредставлениеСубконто(Инд));
КонецЦикла;
КонецЦикла;
Открывает выборку операций за период.
Синтаксис:
ВыбратьОперации(НачалоПериода,
КонецПериода)
Англоязычный
синоним:
SelectOpers
Параметры:
НачалоПериода |
Необязательный
параметр. Выражение типа дата, документ или позиция документа, с которого
устанавливается начало выборки операций. |
КонецПериода |
Необязательный
параметр. Выражение типа дата, документ или позиция документа, на котором
устанавливается конец выборки операций. |
Возвращаемое
значение:
Число: 1 — действие выполнено и в выборке есть
хотя бы одна операция;
0 — действие не выполнено или в выборке нет ни
одной операции.
Описание:
Метод ВыбратьОперации открывает выборку, содержащую операции за указанный период.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.ВыбратьОперации(ДатаНач, ДатаКон);
Пока Опер.ПолучитьОперацию() = 1 Цикл
Сообщить(Операция + Опер.Содержание);
КонецЦикла;
Открывает выборку оперций с проводками за
указанный период.
Синтаксис 1:
ВыбратьОперацииСПроводками(НачалоПериода,
КонецПериода, Фильтр, Валюта,
ПланСчетов,
РазделительУчета)
Синтаксис 2:
ВыбратьОперацииСПроводками(НачалоПериода,
КонецПериода, Счет, КорСчет,
Флаг, Валюта,
ПланСчетов, РазделительУчета)
Англоязычный
синоним:
SelectOpersAndEntries
Параметры:
НачалоПериода |
Необязательный
параметр. Выражение типа дата, документ или позиция документа, с которого устанавливается
начало выборки операций. |
КонецПериода |
Необязательный
параметр. Выражение типа дата, документ или позиция документа, на котором
устанавливается конец выборки операций. |
Фильтр |
Необязательный
параметр. Строка — условие отбора проводок. |
ПланСчетов |
Необязательный
параметр. Значение типа «План Счетов». Если параметр не указан — по всем планам
счетов. |
РазделительУчета |
Необязательный параметр.
Значение разделителя учета. Если параметр не указан — по всем значениям
разделителя учета. |
Счет |
Необязательный
параметр. Счет — счет, по которому будут отбираться проводки. |
КорСчет |
Необязательный
параметр. Счет — корреспондирующий счет, по которому будут отбираться проводки.
Параметр имеет смысл, если указан параметр Счет. |
Флаг |
Необязательный
параметр. Число — признак вида оборота. Параметр может принимать значения:
1 — отбирать
проводки только по дебету счета;
2 — отбирать
проводки только по кредиту счета;
3 — отбирать
проводки и по дебету, и по кредиту.
По умолчанию 3. |
Валюта |
Необязательный
параметр. Значание типа «справочник» (вида справочника используемого для валютного
учета) — признак отбора проводок по валюте. |
Возвращаемое
значение:
Число: 1 — действие выполнено и в выборке есть
хотя бы одна проводка;
0 — действие не выполнено или в выборке нет ни
одной проводки.
Описание:
Метод ВыбратьОперацииСПроводками служит для выбора проводок операций за период. Параметрами могут являеться
различные условия отбора проводок.
После вызова данного метода метод ПолучитьПроводку выбирает очередную
проводку из выборки удовлетворяющую заданным условиям, а метод ПолучитьОперацию выбирает первую
проводку слудующей операции удовлетворяющую заданным условиям.
Метод может вызываться с двумя вариантами
набора параметров. В первом варианте основные условия отбора задаются
специальной строкой-фильтром, во втором указанием счета и корреспондирующего
счета.
В параметре Фильтр задаются критерии отбора проводок для включения в выборку. Если
параметр не заполнен, в выборку включаются все проводки. В общем случае в
параметре Фильтр
могут находиться одна или несколько корреспонденции счетов или символьных
строк, разделяемых точкой с запятой «;». Символьные строки представляют собой
наборы символов, заключенные в кавычки (при передаче строки в явном виде в
параметре внутри строки двойные кавычки задаются двумя символами двойных
кавычек). Корреспонденции имеют вид:
n
— проводки со счетом n;
n, m — проводки в дебет счета n с кредита счета m.
Здесь в качестве n и m может указываться
звездочка («*»), она обозначает любой счет. Например, *,51 — все проводки
с кредита 51 счета.
В выборку включаются все проводки,
удовлетворяющие следующим условиям:
Если в параметре Фильтр указаны корреспонденции счетов, то проводка должна соответствовать
одной из этих корреспонденции.
Если параметре Фильтр указаны строки символов, то в проводке должна содержаться хотя бы
одна из этих строк — либо в содержании операции, либо представлениях значений
субконто и реквизитов проводки и операции.
Примеры:
50 |
— все проводки со
счетом 50; |
50, * |
— все проводки в
дебет 50 счета; |
* , 51 |
— все проводки с
кредита 51 счета; |
50, 51 |
— все проводки в
дебет 50 счета с кредита 51; |
51; 52 |
— все проводки со
счетом 51 или счетом 52; |
46, 68.2 |
— все проводки в
дебет 46 счета с кредита 68.2; |
бумага |
— все проводки,
содержащие в содержании операции или в субконто или в реквизитах слово «бумага»; |
бумага;
картон |
— все проводки,
содержащие в содержании операции или в субконто или в реквизитах слово
«бумага» или слово «картон»; |
*, 46;
бумага |
— все проводки по
кредиту 46 счета, содержащие в содержании операции или в субконто или в
реквизитах слово «бумага»; |
Кроме того, в обоих вариантах задаются
дополнительные условия: валюта, план счетов, разделитель учета.
Параметр Валюта является значением типа «Справочник» вида, определенного при
настройке валютного учета в метаданных. Если параметр указан, в отбор будут
включены проводки только по указанной валюте. При этом пустое значение типа
«Справочник» соответствующего вида считается указанием отбора по пустой валюте.
Для того, чтобы отбор по валюте не производился нужно либо опустить данный
параметр, либо передать туда значение иного типа, например, пустую сроку.
Параметр ПланСчетов является значением типа «План Счетов». Если параметр указан, в
отбор будут включены проводки только по указанному плану счетов.
Параметр РазделительУчета является значением объекта метаданных, выбранного в качестве
разделителя учета.
Если указан параметр РазделительУчета, в отбор
будут включены проводки с указанным значением разделителя учета.
Параметры Счет и КорСчет
задают условние отбора проводок по счетам.
Если указан параметр Счет, будут отбраны проводки
только по указанному счету. Дополнительным условие отбора является значением
параметра Флаг.
Если указаны параметр Счет и КорСчет, будут отобораны
проводки только по указанной креспонденции счетов.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.ВыбратьОперацииСПроводками(ДатаНач,
ДатаКон, 50, 51; По Чеку );
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Сумма + Опер.Сумма);
КонецЦикла;
Задает фильтр по субконто для функции ВыбратьОперацииСПроводками.
Синтаксис:
ИспользоватьСубконто(ВидСубконто,
Субконто)
Англоязычный
синоним:
UseSubconto
Параметры:
ВидСубконто |
Значение типа
«ВидСубконто» — отбор проводок будет выполнен только для субконто указанного
вида. |
Субконто |
Значение субконто —
отбор проводок будет выполнен только для указанного субконто. Кроме того, в
качестве значения данного параметра можно передавать «Список значений». |
Описание:
Метод ИспользоватьСубконто устанавливает фильтр по субконто, который используется при отборе
проводок методом ВыбратьОперацииСПроводками.
Метод ИспользоватьСубконто может вызываться последовательно несколько раз. В этом случае
фильтры, устанавливаемые этой функцией, суммируются.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.ИспользоватьСубконто(ВидыСубконто.Организации,
ВыбОрг);
Опер.ВыбратьОперацииСПроводками(ДатаНач,
ДатаКон, 60);
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Сумма + Опер.Сумма);
КонецЦикла;
Задает фильтр по корреспондирующим субконто
для функции
ВыбратьОперацииСПроводками.
Синтаксис:
ИспользоватьКорСубконто(ВидСубконто,
Субконто)
Англоязычный
синоним:
UseCorSubconto
Параметры:
ВидСубконто |
Значение типа
«ВидСубконто» — отбор проводок будет выполнен только для корреспондирующих
субконто указанного вида. |
Субконто |
Значение субконто —
отбор проводок будет выполнен только для указанного корреспондирующего
субконто. Кроме того, в качестве значения данного параметра можно передавать
«Список значений». |
Описание:
Метод ИспользоватьКорСубконто устанавливает фильтр по корреспондирующим субконто, который используется
при отборе проводок методом ВыбратьОперацииСПроводками.
Метод ИспользоватьКорСубконто может вызываться последовательно несколько раз. В этом случае фильтры,
устанавливаемые этой функцией, суммируются.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.ИспользоватьСубконто(ВидыСубконто.Организации,
ВыбОрг);
Опер.ИспользоватьКорСубконто(ВидыСубконто.Товары,
ВыбТовар);
Опер.ВыбратьОперацииСПроводками(ДатаНач,
ДатаКон, 60);
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Сумма + Опер.Сумма);
КонецЦикла;
Открывает выборку операций или проводок,
отобранных по значению отбора.
Синтаксис:
ВыбратьПоЗначению(НачалоПериода,
КонецПериода , ВидОтбора, 3начение0тбора)
Англоязычный
синоним:
SelectByValue
Параметры:
НачалоПериода |
Необязательный
параметр. Выражение типа дата, документ или позиция документа, с которого
устанавливается начало выборки операций. |
КонецПериода |
Необязательный
параметр. Выражение типа дата, документ или позиция документа, на котором
устанавливается конец выборки операций. |
ВидОтбора |
Необязательный
параметр. Символьная строка — название вида отбора (см. ниже). |
3начение0тбора |
Необязательный
параметр. Значение отбора вида, указанного в параметре ВидОтбора. |
Возвращаемое
значение:
Число: 1 — действие выполнено и в выборке есть
хотя бы одна операция или проводка; 0 — действие не выполнено или в выборке нет
ни одной операции или проводки.
Описание:
Метод ВыбратьПоЗначению открывает выборку, содержащую операции или проводки за указанный
период.
Данный метод позволяет достаточно быстро
отобрать операции или проводки по критерию отбора. Возможные критерии отборов
настраиваются в конфигураторе и имеют свои идентификаторы (системные или
идентификаторы объектов метаданных). Вид отбора определяет будет открыта
выборка операций или проводок.
Параметр ВидОтбора должен содержать название вида отборав виде символьной строки.
Параметр ВидОтбора для отбора операций может принимать следующие значения (в скобках
указан английский синоним):
СуммаОперации
(OperSum) |
Отбор по сумме
операции. Доступно если в метаданных включен отбор по сумме операции. |
Содержание
(Description) |
Отбор по содержанию
операции. Доступно если в метаданных включен отбор по содержанию операции. |
РеквизитОперации |
Отбор по
дополнительному реквизиту операции. Идентификатор реквизита должен быть
указан так, как это задано в метаданных. Доступно если в метаданных включен
отбор по реквизиту операции. |
Параметр ВидОтбора для отбора проводок может принимать следующие значения (в скобках
указан английский синоним):
Счет (Account) |
Отбор по счету
дебета или счету кредита проводки. Доступно если в метаданных включен отбор
по счетам проводок. |
СчетДт (AccountDt) |
Отбор по счету
дебета проводки. Доступно если в метаданных включен отбор по дебету/кредиту
счетов проводок. |
СчетКт (AccountKt) |
Отбор по счету
кредита проводки. Доступно если в метаданных включен отбор по дебету/кредиту
счетов проводок. |
Валюта (Currency) |
Отбор по валюте проводки.
Доступно если в метаданных включен отбор по валюте проводок. |
ВидСубконто |
Отбор по виду
субконто. Идентификатор вида субконто должен быть указан так, как он задан в
метаданных. Доступно если в метаданных включен отбор по этому виду субконто. |
РеквизитПроводки |
Отбор по
дополнительному реквизиту проводки. Идентификатор реквизита должен быть
указан так, как он задан в метаданных. Доступно если в метаданных включен
отбор по этому реквизиту проводки. |
Параметр 3начениеОтбора задает значение отбора.
После выполнения данного метода обход операций
(проводок) осуществляется методами ПолучитьОперацию и ПолучитьПроводку.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.ВыбратьПоЗначению(ДатаНач,
ДатаКон, Счет, СчетПоКоду(60));
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Сумма + Опер.Сумма);
КонецЦикла;
Извлекает операции из выборки, открытой при
помощи метода
ВыбратьОперции.
Синтаксис:
ПолучитьОперацию()
Англоязычный
синоним:
GetOper
Возвращаемое
значение:
Число: 1 — операция выбрана успешно; 0 —
операция не выбрана (отсутствует).
Описание:
Метод ПолучитьОперацию выбирает очередную операцию из выборки, открытой при помощи метода
ВыбратьОперации.
Метод ПолучитьОперацию используется для организации цикла по операциям. Условием цикла может
служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод
ПолучитьОперацию возвращает 1.
Метод возвращает 0, когда очередная операция
не выбрана. Это происходит, если при предыдущем применении метода была выбрана
последняя операция выборки.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.ВыбратьОперации(ДатаНач, ДатаКон);
Пока Опер.ПолучитьОперацию() = 1 Цикл
Сообщить(Операция + Опер.Содержание);
КонецЦикла;
Позиционирует объект по значению типа «Документ».
Синтаксис:
НайтиОперацию([Документ])
Англоязычный
синоним:
FindOper
Параметры:
Документ |
Значение типа
«Документ». |
Возвращаемое
значение:
Число: 1 — действие выполнено, операция
найдена; 0 — действие не выполнено, операция не найдена.
Описание:
Метод НайтиОперацию осуществляет поиск операции по значению типа «Документ».
В системе 1С:Предприятие каждая операция
принадлежит документу. Причем операция принадлажит только одному документу, а
у документа может существовать только одна операция. Операции введенные вручную
принадлежат документам специального вида «Операция».
Поэтому не существует возможности передачи
такого значения как «Операция». Для «идентификации» операции фактически
используется значение документа, которому она принадлежит. Поэтому для
позиционировании объекта «Операция» непосредственно на конкретную операцию
используется значение типа «Документ».
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Определяет выбрана ли в данный момент
операция.
Синтаксис:
Выбрана()
Англоязычный
синоним:
Selected
Возвращаемое
значение:
Число: 1 — операция выбрана; 0 — операция не
выбрана.
Описание:
При использовании объекта «Операция»
созданного функцией СоздатьОбъект метод Выбрана
определяет спозиционирован ли объект в настоящий момент на некоторой операции
или нет.
При использовании данного метода к атрибуту
документа Операция
(который имеет тип «Операция») он определяет, существует ли реально операция у
документа или нет.
При использовании в форме журнала операций (проводок)
метод определяет спозиционирован ли курсор.
При использовании в форме операции метод
определяет, записана новая операция или нет.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Если Опер.Выбрана() = 0 Тогда
Сообщить(Операция не найдена);
КонецЕсли;
Установить значение реквизита по имени
идентификатора.
Синтаксис:
УстановитьАтрибут(ИмяРеквизита,
3начение)
Англоязычный
синоним:
SebAttrib
Параметры:
ИмяРеквизита |
Строковое выражение,
содержащее имя реквизита, как оно задано в конфигураторе. |
3начение |
Выражение,
содержащее устанавливаемое значение реквизита. |
Описание:
Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как
оно задано в конфигураторе.
Пример:
Опер.УстановитьАтрибут(ЦенаРозн,
ЦенаТов);
Получить значение реквизита по имени
идентификатора.
Синтаксис:
ПолучитьАтрибут(ИмяРеквизита)
Англоязычный
синоним:
GetAttrib
Параметры:
ИмяРеквизита |
Строковое выражение,
содержащее имя реквизита, как оно задано в конфигураторе. |
Возвращаемое
значение:
Значение реквизита ИмяРеквизита.
Описание:
Метод ПолучитьАтрибут позволяет получить значение реквизита по имени идентификатора, как
оно задано в конфигураторе.
Пример:
ЦенаТов = Опер.ПолучитьАтрибут(ЦенаРозн);
Открывает выборку проводок текущей операции.
Синтаксис:
ВыбратьПроводки()
Англоязычный
синоним:
Select Entries
Возвращаемое
значение:
Число: 1 — действие выполнено и в выборке есть
хотя бы одна проводка;
0 —действие не выполнено или в выборке нет ни
одной проводки.
Описание:
Метод ВыбратьПроводки открывает выборку проводок текущей операции. Данный метод предназначен
для организации перебора проводок операции и используется вмесет с методом ПолучитьПроводку.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Проводка + Опер.Дебет.Счет + - +
Опер.Кредит.Счет);
КонецЦикла;
Получить проводку из выборки, открытой методом
ВыбратьПроводки.
Синтаксис:
ПолучитьПроводку()
Англоязычный
синоним:
GetEntry
Возвращаемое
значение:
Число: 1 — следующая проводка выбрана успешно;
0 — следующая проводка не выбрана (отсутствует).
Описание:
Метод ПолучитьПроводку выбирает очередную проводку из выборки, содержащей проводки текущей
операции. Перед применением метода ПолучитьПроводку выборка должна быть открыта при помощи метода ВыбратьПроводки.
Метод ПолучитьПроводку используется для организации цикла по проводкам текущей операции.
Условием цикла может служить равенство 1 возвращаемого значения метода: цикл
выполняется, пока метод ПолучитьПроводку возвращает 1.
Метод возвращает 0, когда очередная проводка
не выбрана. Это происходит, если при предыдущем применении метода была выбрана
последняя проводка выборки.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Проводка + Опер.Дебет.Счет + - +
Опер.Кредит.Счет);
КонецЦикла;
Определяет выбрана ли проводка операции.
Синтаксис:
ПроводкаВыбрана()
Англоязычный
синоним:
EntrySelected
Возвращаемое
значение:
Число: 1 — проводка выбрана; 0 — проводка не
выбрана.
Описание:
Метод ПроводкаВыбрана позволяет определить, спозиционирована ли в настоящий момент некоторая
проводка в операции или нет, то есть можно ли обращаться к атрибутам и методам
проводки.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Опер.ПолучитьПроводку();
Если Опер.ПроводкаВыбрана() = 0 Тогда
Сообщить(Нет проводок в операции);
КонецЕсли;
Оперделяет количество проводок в операции
включая и проводки и корреспонденции.
Синтаксис:
КоличествоПроводок()
Англоязычный
синоним:
EntriesCount
Возвращаемое
значение:
Целое число — количество проводок в текущей
операции.
Описание:
Метод позволяет опеределить полное количество
проводок и корреспонденции в операции.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Для Инд = 1 До
Опер.КоличествоПроводок() Цикл
Опер.ПолучитьПроводкуПоНомеру(Инд);
КонецЦикла;
Выбрать в качестве текущей проводку по ее
номеру и номеру корреспонденции.
Синтаксис 1:
ПолучитьПроводкуПоНомеру(АбсолютныиНомерПроводки)
Синтаксис 2:
ПолучитьПроводкуПоНомеру(НомерПроводки,
НомерКорреспонденции)
Англоязычный
синоним:
GetEntryByNumber
Параметры:
АбсолютныйНомерПроводки |
Необязатальный
параметр. Число — абсолютный номер проводки в операции (включая проводки и
корреспонденции). Если не задан –1. |
НомерПроводки |
Необязатальный
параметр. Число — номер проводки в операции. |
НомерКорреспонденции |
Необязатальный
параметр. Число — номер корреспонденции в проводке. Параметр имеет смысл,
если указан параметр НомерПроводки. |
Возвращаемое
значение:
Число: 0 — проводка не найдена; 1 — проводка
найдена.
Описание:
Метод ПолучитьПроводкуПоНомеру выбирает в качестве текущей проводку или корреспонденцию проводки.
Если передан один параметр, то он
воспринимается, как абсолютный номер проводки (корреспонденции) в операции
среди всех проводок и корреспонденции. Если передано два параметра, то первый
из них — это номер проводки, а второй — номер корреспонденции в проводке.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ПолучитьПроводкуПоНомеру(3, 2);
Для Инд = 1 До
Опер.КоличествоПроводок() Цикл
Опер.ПолучитьПроводкуПоНомеру(Инд);
КонецЦикла;
Обращение к данным проводки по номеру.
Синтаксис:
Пров(НомерПроводки,
НомерКорреспонденции)
Англоязычный
синоним:
Entry
Параметры:
НомерПроводки |
Необязатальный
параметр. Число — номер проводки в операции. Если параметр не задан, то
используется текущая проводка. |
НомерКорреспонденции |
Необязатальный
параметр. Число — номер корреспонденции в проводке. Параметр имеет смысл,
если указан параметр НомерКорреспонденции. |
Возвращаемое
значение:
Ссылка на указанную проводку.
Описание:
Метод Пров является специальным методом, позволяющим обратиться непосредственно
к данным проводки операции по номеру, без установки текущей проводки.
Возвращаемое методом значение является ссылкой на проводку. Оно не может
использоваться как значение, а предназначено только для доступа к атрибутам
проводки. В основном метод Пров имеет смысл применять в формулах типовых операций.
Метод Пров позволяет обратится к атрибутам
проводки Сумма, СуммаВал, Количество, Валюта, Дебет, Кредит, Реквизит.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Сообщить(Пров(2, 3).Дебет.Счет);
Определяет номер текущей проводки.
Синтаксис:
НомерПроводки()
Англоязычный
синоним:
EntryNumber
Возвращаемое
значение:
Число — номер проводки.
Описание:
Для текущей проводки (корреспонденции)
возвращает ее номер (не абсолютный, а именно номер проводки без учета
корреспонденции).
Пример:
Опер = СоздатьОбъект
(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Для Инд = 1 До
Опер.КоличествоПроводок() Цикл
Опер.ПолучитьПроводкуПоНомеру(Инд);
Сообщить(Проводка + Опер.НомерПроводки() +
Корр. + Опер.НомерКорреспонденции());
КонецЦикла;
Выдает план счетов текущей проводки.
Синтаксис:
ПланСчетов()
Англоязычный
синоним:
ChartOfAccounts
Возвращаемое
значение:
Значение типа «План Счетов».
Описание:
Для текущей проводки возвращает ее план
счетов.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Для Инд = 1 До
Опер.КоличествоПроводок() Цикл
Опер.ПолучитьПроводкуПоНомеру(Инд);
Сообщить(Проводка + Опер.НомерПроводки() + Корр.
+
Опер.НомерКорреспонденции() + Пл.сч. +
Опер.ПланСчетов());
КонецЦикла;
Определяет номер текущей корреспонденции в
операции.
Синтаксис:
НомерКорреспонденции()
Англоязычный
синоним:
CorrespondenceNumber
Возвращаемое
значение:
Число — номер текущей корреспонденции в
проводке.
Описание:
Для текущей проводки (корреспонденции)
возвращает ее номер корреспонденции, если проводка не сложная — 1.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Для Инд = 1 До Опер.КоличествоПроводок()
Цикл
Опер.ПолучитьПроводкуПоНомеру(Инд);
Сообщить(Проводка + Опер.НомерПроводки() +
Корр. + Опер.НомерКорреспонденции());
КонецЦикла;
Определяет является ли текущая проводка
сложной.
Синтаксис:
СложнаяПроводка()
Англоязычный
синоним:
ComplexEntry
Возвращаемое
значение:
Число: 1 — текущая проводка является сложной;
0 — текущая проводка не является сложной.
Описание:
Для текущей проводки (корреспонденции)
определяется является ли она сложной. Под сложной проводкой понимается
проводка, состоящая из нескольких корреспонденции.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Для Инд = 1 До
Опер.КоличествоПроводок() Цикл
Опер.ПолучитьПроводкуПоНомеру(Инд);
Если Опер.СложнаяПроводка() = 1 Тогда
Сообщить(Проводка сложная);
КонецЕсли;
КонецЦикла;
Выдает номер строки документа, по которой
сформирована текущая проводка.
Синтаксис:
НомерСтрокиДокумента()
Англоязычный
синоним:
DocLineNum
Возвращаемое
значение:
Число — номер строки документа, сформировавшей
данную проводку.
Описание:
При добавлении проводок в операцию в процессе
проведения документа существует возможность привязать каждую проводку к
определенной строке документа. Это позволяет в дальнейшем получить из документа
по номеру строки дополнительную информацию о проводке. Для того, что в проводке
был простален номер строки документа следует в модуле документа перед добавлением
проводки в операцию использовать метод ПривязыватьСтроку.
Метод НомерСтрокиДокумента выдает для текущей проводки номер строки документа, который был
привязан в момент добавления проводки.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Номер строки + Опер.НомерСтрокиДокумента());
КонецЦикла;
Получить представление для текущей проводки.
Синтаксис:
ПредставлениеПроводки(ПоСубконто)
Англоязычный
синоним:
Entry Presentation
Параметры:
ПоСубконто Необязательный параметр. Флаг включения в представление проводки
представления субконто проводки. Число:
0 — не включать представление субконто;
1 — включать представление субконто;
2 — включать развернутое представление
субконто. Значение по умолчанию: 0.
Возвращаемое
значение:
Строка — представление для текущей проводки.
Описание:
Представлением называется символьная строка,
содержащая информацию из реквизитов проводки и операции. Эта строка может быть
использована для отображения проводки в различных отчетах, диалогах и других
визуальных элементах конфигурации. Формат представления определяется в
конфигураторе при редактировании свойств проводки.
Метод ПредставлениеПроводки позволяет получить представление для текущей проводки.
Параметр метода позволяет указать, включать ли
в представление проводки и представление субконто проводки. Представление
субконо содержит информацию из реквизитов значения субконто. Представление
может быть задано в конфигураторе при редактировании свойств вида субконто.
Пример:
Опер = СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Проводка + Опер.ПредставлениеПроводки(1));
КонецЦикла;
Получить представление для субконто текущей проводки.
Синтаксис:
ПредставлениеСубконто()
Англоязычный
синоним:
SubcontoPresentation
Возвращаемое
значение:
Символьная строка — представление субконто
текущей проводки.
Описание:
Представлением называется символьная строка,
содержащая информацию из реквизитов субконто. Эта символьная строка может быть
использована для отображения значений реквизитов субконто в различных отчетах,
диалогах и других визуальных элементах конфигурации.
Представление может быть задано в
конфигураторе при редактировании свойств вида субконто.
Метод ПредставлениеСубконто позволяет получить представление для всех субконто текущей проводки.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Сообщить(Субконто + Опер.ПредставлениеСубконто());
КонецЦикла;
Назначить тип для реквизита неопределенного
вида.
Синтаксис:
НазначитьТип(ИмяРеквизита,
ИмяТипа, Длина, Точность)
Англоязычный
синоним:
SetType
Параметры:
ИмяРеквизита |
Строковое выражение
— название реквизита операции или проводки неопределенного типа, как он назван
в конфигураторе. |
ИмяТипа |
Строковое выражение
— название типа данных (или Вид субконто), который назначается реквизиту операции
или проводки. Например:
Строка, Число, Справочник.Товары,
Документ.РасходнаяНакладная ит.п. |
Длина |
Необязательный
параметр. Числовое выражение — длина поля представления данных. Имеет смысл
только при задании числового или строкового типа. |
Точность |
Необязательный параметр.
Числовое выражение — число знаков числа после десятичной точки. Имеет смысл
только при задании числового типа. |
Описание:
Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе
назначен тип «Неопределенный».
Пример:
Операция.НазначитьТип(ТМЦ,
Справочник.Товары);
Создать новую операцию.
Синтаксис:
Новая()
Англоязычный
синоним:
New
Описание:
Метод Новая используется для создания операций из встроенного языка, не
принадлежащих документу какого либо вида.
Такая операция будет являться полным аналогом
операции введенной вручную, то есть будет принадлежать документу специального
вида «Операция». Операции, принадлежащие докуменам различных видов
записываются при проведении документа без использования метода Новая.
Метод Новая может быть вызван только для объектов типа «Операция» созданных
функцией СоздатьОбъект.
После вызова метода Новая могут быть заданы значения реквизитов операции и добавлены проводки.
После этого для записи операции должен быть вызван метод Записать.
Пример:
* Создание и запись новой операции созданной в
модуле отчета или обработки
Опер =
СоздатьОбъект(Операция);
Опер.Новая();
Опер.Дата = РабочаяДата();
Опер.Содержание = Выдача денег из
кассы;
Опер.Записать();
Записать в информационную базу уже добавленные
и заполненные проводки операции.
Синтаксис:
ЗаписатьПроводки()
Англоязычный
синоним:
WriteEntries
Описание:
Метод ЗаписатьПроводки выполняет запись в информационную базу уже добавленных и заполненных
проводок операции. Метод может использоваться только для атрибута «Операция»
документа в момент проведения (в процедуре ОбработкаПроведения). При этом происходит обновление бухгалтерских итогов. Это позволяет
при проведении документа обращаться к бухгалтерским итогам уже измененным проводками,
записанными этим документом. После выполнения метода ЗаписатьПроводки и до окончания процедуры ОбработкаПроведение уже невозможно изменять или удалять проводки, добавленные до вызова
этого метода.
Данный метод имеет смысл использовать, только
в том случае, если существует необходимость обращения к итогам, измененным
проводками записываемой операции.
Замечание. При записи
сложной проводки, если у главной корреспонденции сложной проводки не указана
сумма (равна 0), то она автоматически вычисляется на основании подчиненных
корреспонденции.
Пример:
Процедура СписаниеСчетаНаСч20(Счт)
// создаем и формируем проводки
КонецПроцедуры
Процедура СписаниеСчета20На40()
// создаем и формируем проводки
КонецПроцедуры
Процедура ОбработкаПроведения()
Сч20 =
СчетПоКоду(20);
Cч40 = CчeтПoKoдy(40);
СписаниеСчетаНаСч20(СчетПоКоду(25));
СписаниеСчетаНаСч20(СчетПоКоду(26));
Операция.ЗаписатьПроводки();
СписаниеСчета20На40();
Операция.Содержание = Закрытие фин. результатов за +
Формат(ДатаДок, Д ММММГГГГ);
Операция.Записать();
КонецПроцедуры
Записать измененную или новую операцию.
Синтаксис:
Записать()
Англоязычный
синоним:
Write
Описание:
Метод Записать выполняет запись новой или измененной операции.
Он может быть использован в следующих
ситуациях:
· метод Записать
может быть вызван для записи новой или измененной ручной операции
(принадлежащей документу специального вида «Операция»). Такие операции могут
создаваться и редактироваться пользователем вручную или из встроенного языка
объектом «Операция», созданным функцией СоздатьОбъект.
· метод Записать
может быть вызван для записи операции созданной при проведении документа в
предопределенной процедуре ОбработкаПроведения. Данный метод должен быть вызван после заполнения операции содержанием
реквизитов и проводками.
· этот метод может применяться в Модуле формы операции непосредственно к
операции локального контекста, в этом случае данный метод отрабатывает те же
действия, как интерактивное нажатие пользователем кнопки с формулой
#3аписать.
Замечание. При записи
сложной проводки, если у главной корреспонденции сложной проводки не указана
сумма (равна 0), то она автоматически вычисляется на основании подчиненных
корреспонденции.
Пример:
* Создание и запись новой операции созданной в
модуле отчета или обработки.
Опер =
СоздатьОбъект(Операция);
Опер.Новая();
Опер.Дата = РабочаяДата();
Опер.Содержание = Деньги по
чеку;
Опер.НоваяПроводка();
Опер.Дебет.Счет =
СчетПоКоду(50);
Опер.Кредит.Счет = СчетПоКоду(51);
Опер.Сумма = 1000000;
Опер.Записать();
* Запись операции в модуле документа в
процессе проведения
Процедура ОбработкаПроведения()
Операция.Содержание = Выдача денег из кассы;
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду(71);
Операция.Дебет.Сотрудники = Сотрудник;
Операция.Кредит.Счет = СчетПоКоду(50);
Операция.Сумма = СуммаВыдачи;
Операция.Записать();
КонецПроцедуры
Удаление операции.
Синтаксис:
Удалить(Режим)
Англоязычный
синоним:
Delete
Параметры:
Режим |
Необязательный
параметр. Числовое выражение: |
1 — непосредственное удаление; 0 — пометка на
удаление. Значение по умолчанию — 1.
Описание:
Метод Удалить удаляет (или помечает на удаление) текущую операцию.
Замечание.
Непосредственное удаление объекта следует применять только в особых случаях,
так как могут существовать ссылки на удаляемое значение в документах,
справочниках и т. д. и непосредственное удаление может повлечет нарушение
ссылочной целостности.
Данный метод может использоваться только для
объектов, созданных функцией СоздатьОбъект.
Если метод Удалить применен к операции принадлежащей документу не специального вида
«Операция», то происходит удаление (или пометка) всего документа.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДок);
Опер.Удалить(0);
Проверяет наличие пометки на удаление текущей
операции.
Синтаксис:
ПометкаУдаления()
Англоязычный
синоним:
DeleteMark
Возвращаемое
значение:
Число: 1 — операция помечена на удаление; 0 —
операция не помечена на удаление.
Описание:
Метод используется для проверки, помечена ли
на удаление текущая операция или документ, которому принадлежит операция.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.ВыбратьОперации(ДатаНач, ДатаКон);
Пока Опер.ПолучитьОперацию() = 1 Цикл
Если Опер.ПометкаУдаления() = 1 Тогда
Сообщить(Опер.Документ);
КонецЕсли;
КонецЦикла;
Снять пометку удаления операции.
Синтаксис:
СнятьПометкуУдаления()
Англоязычный
синоним:
ClearDeleteMark
Описание:
Метод СнятьПометкуУдаления снимает пометку удаления текущей операции.
Данный метод может использоваться только для
объектов, созданных функцией СоздатьОбъект. Если метод СнятьПометкуУдаления применен к операции принадлежащей документу не специального вида
«Операция», то происходит снятие пометки удаления всего документа.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.ВыбратьОперации(ДатаНач, ДатаКон);
Пока Опер.ПолучитьОперацию() = 1 Цикл
Если Опер.ПометкаУдаления() = 1 Тогда
Опер.СнятьПометкуУдаления();
КонецЕсли;
КонецЦикла;
Возвращает время текущей операции.
Синтаксис:
ПолучитьВремя(Часы,
Минуты, Секунды)
Англоязычный
синоним:
GetTime
Параметры:
Часы |
Необязательный
параметр. Идентификатор переменной, в которую метод возвращает число — час
времени операции. |
Минуты |
Необязательный
параметр. Идентификатор переменной, в которую метод возвращает число — минуты
времени операции. |
Секунды |
Необязательный
параметр. Идентификатор переменной, в которую метод возвращает число — секунды
времени операции. |
Возвращаемое
значение:
Строковое значение времени в виде
ЧЧ.ММ.СС.
Описание:
Метод ПолучитьВремя возвращает время операции. Время записывается в переменные,
передаваемые как параметры при вызове метода.
Пример:
Перем Час;
Перем Минута;
Перем Секунда;
Опер =
СоздатьОбъект(Операция);
Опер.ВыбратьОперации(ДатаНач, ДатаКон);
Пока Опер.ПолучитьОперацию() = 1 Цикл
Опер.ПолучитьВремя(Час, Минута, Секунда);
КонецЦикла;
Задает время текущей операции.
Синтаксис:
УстановитьВремя(Часы,
Минуты, Секунды)
Англоязычный
синоним:
SetTime
Пареметры:
Часы |
Необязательный
параметр. Число — час операции. |
Минуты |
Необязательный
параметр. Число — минуты операции. |
Секунды |
Необязательный
параметр. Число — секунды операции. |
Описание:
Метод УстановитьВремя изменяет время операции.
Данный метод может использоваться только для
объектов, созданных функцией СоздатьОбъект. Так как время является значением относящимся к документу, то вызов
этого метода изменяет время собственно документа, которому принадлежит
операция.
Пример:
Перем Час;
Перем Минута;
Перем Секунда;
Опер =
СоздатьОбъект(Операция);
Опер.ВыбратьОперации(ДатаНач, ДатаКон);
Пока Опер.ПолучитьОперацию() = 1 Цикл
Опер.ПолучитьВремя(Час, Минута, Секунда);
Опер.УстановитьВремя(Час + 1, Минута, Секунда);
КонецЦикла;
Возвращает значение типа «Документ» содержащий
документ, которому принадлежит операция.
Синтаксис:
ПолучитьДокумент()
Англоязычный
синоним:
GetDocument
Возвращаемое
значение:
Значение типа «Документ».
Описание:
Метод ПолучитьДокумент возвращает значение типа «Документ» содер-жащий документ, которому
принадлежит операция. Его следует использовать, если нужно передать какому либо
методу или запомнить в переменную значение типа документ операции. Для доступа
к данным документа непосредственно из объекта типа «Операция» следует
использовать атрибут объекта «Документ».
Пример:
Опер =
СоздатьОбъект(Операция);
Док =
СоздатьОбъект(Документ);
Опер.ВыбратьОперации(ДатаНач, ДатаКон);
Пока Опер.ПолучитьОперацию() = 1 Цикл
Сообщить(Номер = Опер.Документ.Номер);
Док.НайтиДокумент(Опер.ПолучитьДокумент());
КонецЦикла;
Включает/выключает проводки операции.
Синтаксис:
ВключитьПроводки(Флаг)
Англоязычный
синоним:
EntriesOn
Пареметры:
Флаг |
Необязательный
параметр. 1 — включить проводки операции. 0 — выключить проводки операции.
Если параметр не передан — состояние не изменяется. |
Возвращаемое
значение:
Состояние на момент вызова метода. 1 —
проводки операции включены; 0 — проводки операции выключениы.
Описание:
Для каждой бухгалтерской операции может быть
выполнено выключение проводок. Это значит, что проводки остаются, но
исключаются из итогов. Эти действия могут выполняться пользователем
интерактивно и методом ВключитьПроводки для объекта типа «Операция».
Данный метод может использоваться только для
объектов, созданных функцией СоздатьОбъект. Изменяется состояние всех выбранной проводок операции одноврменно.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.ВыбратьОперации(ДатаНач, ДатаКон);
Пока Опер.ПолучитьОперацию() = 1 Цикл
Опер.ВключитьПроводки(0);
КонецЦикла;
Создать новую проводку.
Синтаксис:
НоваяПроводка()
Англоязычный
синоним:
NewEntry
Описание:
Метод создает новую проводку для текущей
операции. Новая проводка становится текущей.
Во-первых, метод может быть вызван для объекта
«Операция», созданного функцией СоздатьОбъект, при создании или изменении операции принадлежащей документу
специального вида «Операция».
Во-вторых, метод может быть вызван для
объекта, являющегося атрибутом документа, при создании операции принадлежащей
документу, в процессе проведения документа.
Созданная проводка будет записана и повлечет
изменения в бухгалтерских итогах после вызова метода операции Записать.
Пример:
* Создание и запись новой операции созданной в
модуле отчета или обработки
Опер =
СоздатьОбъект(Операция);
Опер.Новая();
Опер.Дата = РабочаяДата();
Опер.Содержание = Деньги по
чеку;
Опер.НоваяПроводка();
Опер.Дебет.Счет = СчетПоКоду(5
0);
Опер.Кредит.Счет =
СчетПоКоду(51);
Опер.Сумма = 1000000;
Опер.Записать();
* Запись операции в модуле документа в
процессе проведения
Процедура ОбработкаПроведения()
Операция.Содержание = Выдача денег из кассы;
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду(71);
Операция.Дебет.Сотрудники = Сотрудник;
Операция.Кредит.Счет = СчетПоКоду(50);
Операция.Сумма = СуммаВыдачи;
Операция.Записать();
КонецПроцедуры
Создает новую корреспонденцию проводки.
Синтаксис:
НоваяКорреспонденция()
Англоязычный
синоним:
NewCorrespondence
Описание:
Метод НоваяКорреспонденция создает новую корреспонденцию для проводки. Метод должен
использоваться после того, как новая проводка создана с использованием метода НоваяПроводка.
Данный метод предназначен для формирования
сложных проводок, состоящих из нескольких корреспонденции.
Для проводки может быть создано практически
неограниченное число корреспонденции путем последовательного вызова метода НоваяКорреспонденция. После
создания корреспонденции изменение атрибутов проводки вызывает изменение
атрибутов новой корреспонденции.
Пример:
Процедура ОбработкаПроведения()
Операция.Содержание = Выдача денег из кассы;
Операция.НоваяПроводка();
Операция.Кредит.Счет = СчетПоКоду(50);
Операция.Сумма = Итог(СуммаВыдачи);
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Операция.НоваяКорреспонденция();
Операция.Дебет.Счет = СчетПоКоду(71);
Операция.Дебет.Сотрудники = Сотрудник;
Операция.Сумма = СуммаВыдачи;
КонецЦикла;
Операция.Записать();
КонецПроцедуры
Проверить проводку на соответствие корректным
проводкам.
Синтаксис:
ПроверитьПроводку()
Англоязычный
синоним:
CheckEntry
Возвращаемое
значение:
Число: 1 — проводка соответствует корректным
проводкам; 0 — не соответствует.
Описание:
Метод ПроверитьПроводку проверяет проводку на соответствие корректным проводкам.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДок);
Пока Опер.КоличествоПроводок() 0
Цикл
Опер.ПолучитьПроводкуПоНомеру(1);
Если Опер.ПроверитьПроводку() = 0 Тогда
Опер.УдалитьПроводку();
КонецЕсли;
КонецЦикла;
Опер.Записать();
Удалить проводку.
Синтаксис:
УдалитьПроводку()
Англоязычный
синоним:
DeleteEntry
Описание:
Метод удаляет текущую проводку или
корреспонденцию операции. Метод может быть вызван объектом «Операция»,
созданным функцией СоздатьОбъект, при создании или изменении операции принадлежащей документу специального
вида «Операция».
Собственно изменение в составе проводок будут
записаны и повлекут из-менния в бухгалтерских итогах после вызова метода
операции Записать.
Пример:
Опер =
СоздатьОбъект(Операция);
Опер.НайтиОперацию(ВыбрДок);
Пока Опер.КоличествоПроводок() 0
Цикл
Опер.ПолучитьПроводкуПоНомеру(1);
Опер.УдалитьПроводку();
КонецЦикла;
Опер.Записать();
Значение, содержащее агрегатный объект типа
«БухгалтерскиеИтоги»
Синтаксис:
БИ
Англоязычный
синоним:
AT
Описание:
Данный объект включается в контекст формы
операции для облегчения доступа в итогам при работе с типовыми операциями. Это
позволяет обращаться в формулах типовых операций к этому объекту для получения
итогов.
Пример:
* Формула суммы проводки типовой опеарции
БИ.ПериодМ(ДатаОперации);
БИ.СКД(Дебет.Счет)
Определяет, вводится ли новая операция с
использованием типовой, и какая типовая операция используется.
Синтаксис:
ПоТиповойОперации (Переменная)
Англоязычный
синоним:
ByTemplateOper
Параметры:
Переменная |
Необязательный
параметр. Имя переменной, в которую будет записано наименование типовой операции. |
Возвращаемое
значение:
Число: 1 — если при вводе операции вручную
использована типовая опера-ци; 0 — если при вводе операции вручную не
использовалась типовая операция.
Описание:
Определяет, вводится ли новая операция с
использованием типовой. Если указан параметр Переменная, в переменную
будет записано имя типовой операции;
Пример:
Процедура ПриОткрытии()
Если ПоТиповойОперации() = 0 Тогда
ИспользоватьВалюту(Константа.ОснВалюта);
КонецЕсли;
КонецПроцедуры;
Установка валюты используемой по умолчанию.
Синтаксис:
МспользоватьВалюту(Валюта)
Англоязычный
синоним:
UseCurrency
Параметры:
Валюта |
Необязательный
параметр. Значение типа «Справочник», имеющий вид, определенный при настройке
валютного учета. Если параметр не задан, установка не изменяется. |
Возвращаемое
значение:
Значение установки используемой валюты на
момент до вызова метода.
Описание:
Данный метод устанавливает в форме
используемую по умолчанию валюту. Она будет автоматически подставляться в
валюту вводимых проводок, если в проводках используются валютные счета. После
автоматической подстановки пользователь может изменить валюту по своему
усмотрению.
Пример:
Процедура ПриОткрытии()
ИспользоватьВалюту(Константа.ОснВалюта);
КонецПроцедуры;
Установка корреспондирующего счета
используемого по умолчанию.
Синтаксис:
ИспользоватьКорСчет(Счет)
Англоязычный
синоним:
UseCorAccount
Параметры:
Счет |
Необязательный
параметр. Значение типа «Счет». Если параметр не задан, установка не изменяется. |
Возвращаемое
значение:
Значение установки используемого по умолчанию
корреспондирующего счета на момент до вызова метода.
Описание:
Данный метод устанавливает в форме
используемый по умолчанию корреспондирующий счет. Он будет автоматически
подставляться проводку взамен не указанных пользователем счетов. Эта
возможность может быть использована, например, для ввода первоначальных
остатков для автоматической простановки счета, корреспондирующего с введенным.
Пример:
Процедура ПриОткрытии()
ИспользоватьКорСчет(Константа.СчетПервОстатков);
КонецПроцедуры;
Установка субконто используемого по умолчанию.
Синтаксис:
ИспользоватьСубконто(ВидСубконто,
Субконто)
Англоязычный
синоним:
UseSubconto
Параметры:
ВидСубконто |
Значение типа
«ВидСубконто». |
Субконто |
Необязательный
параметр. Значение субконто. Если параметр не задан, установка не изменяется. |
Возвращаемое
значение:
Значение установки используемого по умолчанию
субконто на момент до вызова метода.
Описание:
Данный метод устанавливает в форме
используемые по умолчанию значения субконто разных видов. Они будут
автоматически подставляться субконто проводок, если в проводках используются
счета с этими видами субконто. После автоматической подстановки пользователь
может изменить субконто по своему усмотрению.
Пример:
Процедура ПриОткрытии()
ИспользоватьСубконто(ВидыСубконто.Склады, Константа.ОснСклад);
КонецПроцедуры;
Установить режим изменения порядка строк в
форме операции.
Синтаксис:
ИзменениеПорядкаСтрок(Разрешить)
Англоязычный
синоним:
ChangeLinesOrder
Параметры:
Разрешить |
Необязательный
параметр. Число: 1 — разрешить изменение порядка строк в операции; 0 — запретить.
Если параметр не задан, то режим не меняется. |
Возвращаемое
значение:
Режим изменения порядка строк до исполнения
метода. Число: 1 — разрешено изменение порядка строк в операции; 0 —
запрещено.
Описание:
Метод ИзменениеПорядкаСтрок позволяет установить режим изменения порядка строк в форме операции.
Пример:
ИзменениеПорядкаСтрок(0);
Описанные в данном разделе системные
предопределенные процедуры должны располагаться только в модуле формы операции
(см. «Виды программных модулей»).
В основном данные процедуры предназначены для
расширения возможности программного управления правами доступа к системе.
Предопределенные процедуры не является
встроенными процедурами языка. Для них зарезервированы только название и
синтаксис. Тело процедур должно быть написано самим разработчиком в
соответствующих программных модулях. Вызов предопределенных процедур на
исполнение производится в системе 1С:Предприятие неявно при возникновении
соответствующего события. Описание предопределенных процедур также см. гл.
«Системные предопределенные процедуры».
Предопределенная процедура при вводе новой
операции.
Синтаксис:
ВводНового(ПризнКопирования,
ОбъектКопирования)
Англоязычный
синоним:
InputNew
Параметры:
ПризнКопирования |
Признак того, что
объект введен копированием. Число: 1 — объект введен копированием, 0 — просто
новый объект. Данный признак может быть использован для анализа необходимости
инициализации реквизитов нового объекта. |
ОбъектКопирования |
Объект, который был
скопирован. |
Описание:
Вызов процедуры ВводНового производится в системе 1С:Предприятие неявно в момент выбора пункта
«Новая» из меню «Действия» главного меню системы 1С:Предприятие при работе с
журналом операций, или в других случаях при открытии формы операции для ввода
новой операции. Данная процедура может использоваться, например, для установки
начальных значений (по умолчанию) реквизитов новой операции. Если в данной
предопределенной процедуре установить статус возврата 0 (например, если данному
пользователю нельзя вводить операции), ввода новой операции и открытие ее формы
не будет выполнено.
Процедура ВводНового должна размещаться в модуле формы операции (см. «Виды программных
модулей»).
Пример:
Процедура ВводНового()
ИспользоватьВалюту(Константа.ОснВалюта);
КонецПроцедуры
См.
также: СтатусВозврата
Предопределенная процедура при вводе новой
операции на основании.
Синтаксис:
ВводНаОсновании(ДокОснование)
Англоязычный
синоним:
InputCausedBy
Параметры:
ДокОснование |
Значение документа,
на основании которого вводится новая операция. |
Описание:
Вызов процедуры ВводНаОсновании производится в системе 1С:Предприятие неявно после выбора пункта
«Ввести на основании» из меню «Действия» главного меню системы 1С:Предприятие
при работе с журналом операций или в других случаях, когда форма открывается
для ввода на основании. В этот момент система подставляет фактическое значение
параметра ДокОснование, содержащее объект типа «Документ», на которой находился курсор в момент
выполнения данной команды.
Данная процедура может использоваться,
например, для установки начальных значений (по умолчанию) реквизитов новой
операции, вводимых на основании выбранного документа
Если в данной предопределенной процедуре
установить статус возврата 0 (например, если данному пользователю нельзя
вводить новые операции), ввода новой операции и открытие формы не будет
выполнено.
Процедуру ВводНаОсновании можно размещать только в модуле формы операции (см. «Виды программных
модулей»).
Пример:
Процедура ВводНаОсновании(ДокОсн)
Если ДокОсн.Вид() = ПлатПор Тогда
ИспользоватьСубконто(ВидыСубконто.Организации, ДокОсн.Получатель);
КонецЕсли;
КонецПроцедуры
См.
также: СтатусВозврата
Предопределенная процедура вызывается при записи
операции.
Синтаксис:
ПриЗаписи()
Англоязычный
синоним:
OnWrite
Описание:
Вызов предопределенной процедуры ПриЗаписи производится в системе
1С:Предприятие при записи операции в форме операции. Если в данной предопределенной
процедуре установить статус возврата — 0 (например, если не правильно
заполнены реквизиты операции), запись операции не будет выполнена.
Данная предопределенная процедура может
располагаться в модулях формы операции (см. «Виды программных модулей»).
Пример:
Процедура ПриЗаписи()
Если ПустаяСтрока(Содержание) = 1 Тогда
Предупреждение(Не заполнено содержание операции!);
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
См.
также: СтатусВозврата
Предопределенная процедура вызывается при редактировании
существующей проводки или корреспонденции операции.
Синтаксис:
ПриНачалеРедактированияСтроки()
Англоязычный
синоним:
OnStartEditLine
Описание:
Вызов предопределенной процедуры ПриНачалеРедактированияСтроки
производится в системе 1С:Предприятие в момент начала интерактивного редактирования
существующей проводки или корреспонденции операции.
Если в данной предопределенной процедуре
установить статус возврата 0 (например, если данному пользователю нельзя
редактировать проводки операции), то проводка не будет изменена.
Данная предопределенная процедура может
располагаться в модуле формы операции (см. «Виды программных модулей»).
Пример:
Процедура
ПриНачалеРедактированияСтроки()
Если НазваниеНабораПрав() = Оператор Тогда
Предупреждение(У вас нет права изменять проводки!);
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
См.
также: СтатусВозврата
Предопределенная процедура при вводе новой
проводки или корреспонденции операции.
Синтаксис:
ПриВводеСтроки()
Англоязычный
синоним:
OnNewLine
Описание:
Вызов предопределенной процедуры ПриВводеСтроки производится в
системе ЮПредприятие при интерактивном вводе новой проводки или корреспонденции
операции. Если в данной предопределенной процедуре установить статус возврата 0
(например, если данному пользователю редактировать операции), то новая строка
не будет инициирована.
Данная предопределенная процедура может
располагаться в модуле формы операции (см. «Виды программных модулей»).
Пример:
Процедура ПриНачалеРедактированияСтроки()
Если НазваниеНабораПрав() = Оператор Тогда
Предупреждение(У вас нет права добавлять проводки!);
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
См.
также: СтатусВозврата
Предопределенная процедура при редактировании
новой проводки или корреспонденции операции.
Синтаксис:
ПриРедактированииНовойСтроки()
Англоязычный
синоним:
OnEditNewLine
Описание:
Вызов предопределенной процедуры ПриРедактированииНовойСтроки
производится в системе 1С:Предприятие в момент начала интерактивного редактирования
новой проводки или корреспонденции операции. Данная процедура может
использоваться, например, для установки начальных значений (по умолчанию)
проводки. В данной предопределенной процедуре установка статуса возврата не
имеет смысла, т. к. отказаться от ввода новой проводки в этот момент уже
невозможно.
Данная предопределенная процедура может
располагаться в модуле формы операции (см. «Виды программных модулей»).
Пример:
Процедура
ПриРедактированияНовойСтроки()
Фирма = Константа.ОснФирма;
КонецПроцедуры
См.
также: СтатусВозврата
Предопределенная процедура при удалении
проводки или корреспонденции операции.
Синтаксис:
ПриУдаленииСтроки()
Англоязычный
синоним:
OnDeleteLine
Описание:
Вызов предопределенной процедуры ПриУдаленииСтроки производится в
системе 1С:Предприятие при интерактивном удалении проводки или корреспонденции
операции.
Если в данной предопределенной процедуре
установить статус возврата 0 (например, если данному пользователю нельзя редактировать
проводки операции), удаление проводки или корреспонденции операции не будет
выполнено.
Данная предопределенная процедура может
располагаться только в модуле формы операции (см. «Виды программных модулей»).
Пример:
Процедура ПриНачалеРедактированияСтроки()
Если НазваниеНабораПрав() = Оператор Тогда
Предупреждение(У вас нет права изменять проводки!);
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
См.
также: СтатусВозврата
Предопределенная процедура при изменении
порядка строк операции.
Синтаксис:
ПриМзмененииПорядкаСтрок(Действие)
Англоязычный
синоним:
OnChangeLinesOrder
Параметры:
Действие |
Число: 1 —
перемещение строки вниз; -1 (минус единица) — перемещение строки вверх. |
Описание:
Вызов предопределенной процедуры ПриИзмененииПорядкаСтрок производится
системой 1С:Предприятие неявно при интерактивной попытке перемещения строк
вверх-вниз и перенумерации (до выполнения действия).
Если в данной предопределенной процедуре
установлен статус возврата 0 (например, если данному пользователю нельзя
устанавливать данное значение отбора проводок), установка отбора не будет
выполнена.
Данная предопределенная процедура может
располагаться только в модуле формы операции (см. «Виды программных модулей»).
Пример:
Процедура
ПриИзмененииПорядкаСтрок(Направление)
СтатусВозврата(0);
КонецПроцедуры
См.
также: СтатусВозврата
ПриУстановкеИнтервала
Предопределенная процедура при установке
интервала журнала.
Синтаксис:
ПриУстановкеИнтервала(ДатаНач,
ДатаКон)
Англоязычный
синоним:
OnSetRange
Параметры:
ДатаНач |
Дата начала
интервала журнала. |
ДатаКон |
Дата конца интервала
журнала. |
Описание:
Вызов предопределенной процедуры ПриУстановкеИнтервала производится
системой 1С:Предприятие неявно при интерактивной попытке установить интервал в
журнале документов. Если в данной предопределенной процедуре установить статус
возврата — 0 (например, если данному пользователю нельзя изменять интервал
журнала), установка не будет выполнена.
Пример:
Процедура
ПриУстановкеИнтервала(ДатаНач, ДатаКон)
Если НазваниеНабораПрав() = Продавец Тогда
Предупреждение(У вас нет права изменять интервал журнала!,
2);
СтатусВозврата(0);
КюнецЕсли;
КонецПроцедуры
См.
также: СтатусВозврата
ПриПоказеПроводокПоДокументу
Предопределенная процедура при показе проводок
по документу (операции).
Синтаксис:
ПриПоказеПроводокПоДокументу(Документ)
Англоязычный
синоним:
OnShowEntrysByDoc
Параметры:
Документ |
Документ по которому
выводятся проводки. |
Описание:
При работе с журналом операций или журналом
документов пользователь имеет возможность включить режим показа проводок
текущей операции. При этом открывается окно журнала проводок
«синхронизированного» с текущим журналом. В этом журнале проводок будут
выдаваться для просмотра проводки операции, на которой стоит курсор в журнале
документов(операций). При установке курсора на другой документ(операцию)
содержимое журнала проводок будет изменяться, показывая проводки по текущей
операции. В журнале операций такой журнал проводок может быть выведен в нижней
части окна.
Вызов предопределенной процедуры ПриПоказеПроводокПоДокументу
производится системой 1С:Предприятие неявно при обновлении содержимого
подчиненного журнала проводок текущей операции.
Переданный в качестве параметра документ может
быть использован для определения необходимости показха проводок по данной
операции.
Если в данной предопределенной процедуре
установлен статус возврата 0, то проводки операции показываться не будут
(например, если пользователю запрещен просмотр проводок).
Пример:
Процедура
ПриПоказеПроводокПоДокументу(ТекДок)
Если ТекДок.Операция.Фирма ТекФирма Тогда
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
См.
также: СтатусВозврата
ВыбранаПоДт, ВыбранаПоКт
ВыбранаПоДт
— определение, выбран ли итог по дебету;
ВыбранаПоКт
— определение, выбран ли итог по кредиту.
Синтаксис:
ВыбранаПоДт()
ВыбранаПоКт()
Англоязычный
синоним:
SelectedByDt
SelectedByKt
Возвращаемое
значение:
Число: 0 —данный итог по дебету(кредиту) не
выбран; 1 —данный итог по дебету(кредиту) выбран.
Описание:
Данные функция используются при обходе
результатов запроса с детализацией периода по операциям и проводкам. Они
показывают для текущей операции (проводки) попала ли она в запрос по дебетовой
(кредитовой) корреспонденции.
Пример:
БухИтоги.ВыполнитьЗапрос(Дата1, Дата2,
50, , , , Проводки);
БухИтоги.ВыбратьСчета();
БухИтоги.ВыбратьПериоды();
КолПрих=0;
КолРасх=0;
Пока БухИтоги.ПолучитьПериод() = 1 Цикл
Если БухИтоги.ВыбранаПоДт() = 1 Тогда
КолПрих = КолПрих + 1;
КонецЕсли;
Если БухИтоги.ВыбранаПоКт() = 1 Тогда
КолРасх = КолРасх + 1;
КонецЕсли;
КонецЦикла;
Удалить
Удалить корректную проводку.
Синтаксис:
Удалить()
Англоязычный
синоним:
Delete
Возвращаемое
значение:
Число: 1 — корректная проводка успешно
удалена; 0 — не удалена.
Описание:
Метод Удалить удаляет корректную проводку.
Пример:
КП =
СоздатьОбъект(КорректныеПроводки);
КП.ВыбратьКорректныеПроводки();
Пока КП.ПояучитьКорректнуюПроводку() =
1 Цикл
Если КП.Комментарий = НДС с комисс. вознаграждения Тогда
КП.Удалить();
Прервать;
КонецЕсли;
КонецЦикла;
ПриУстановкеПредставления
Предопределенная процедура, вызываемая при
установке режима представления журнала расчетов (по всем объектам расчетов, по
одному объекту расчета, по одному документу расчета).
Синтаксис:
ПриУстановкеПредставления(Режим}
Англоязычный
синоним:
OnSetPresentation
Параметры:
Режим |
Числовое значение —
режим представления записей журнала расчетов, устанавливаемый пользователем. |
Описание:
Вызов этой предопределенной процедуры
производится системой 1С:Предприятие неявно при интерактивной попытке
установить другой режим представления записей в журнале расчетов. Если в данной
предопределенной процедуре установить статус возврата 0 (например, если данному
пользователю нельзя использовать определенный режим), установка не будет
выполнена.
Параметр Режим может принимать следующие значения:
1.
Записи по всем объектам расчета.
2.
Записи по одному объекту расчета.
3.
Записи по одному документу-основанию.
Данная предопределенная процедура может
располагаться только в модуле формы журнала расчетов.
Пример:
Процедура
ПриУстановкеПредставления(Режим)
Если НазваниеНабораПрав() = Расчетчик Тогда
Если (Режим = 1) Тогда
Предупреждение(Недостаточно прав!, 2);
СтатусВозврата(0);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
См.
также: СтатусВозврата, УстановитьПредставление
ПолучитьРасчет
Получает ссылку на вид расчета.
Синтаксис:
ПолучитьРасчет(Номер)
Англоязычный
синоним:
GetCalculation
Параметры:
Номер |
Номер вида расчета в
списке видов расчета данной группы. |
Возвращаемое
значение:
Агрегатный объект типа «Вид Расчета».
Описание:
Метод позволяет получить ссылку на вид
расчета, входящий в данную группу под определенным номером. Обычно применяется
в цикле с методом Количество.
Пример:
См. предыдущий пример.
См.
также: Количество
Применять
Устанавливает необходимость применять или не
применять все правила перерасчетов при вводе новых записей в журнал расчетов.
Синтаксис:
Применять(ФлагПрименения)
Англоязычный
синоним:
Use
Параметры:
ФлагПрименения |
Число: 1 — применять;
0 — не применять. |
Возвращаемое
значение:
Текущее значение флага применения (до
исполнения метода).
Описание:
Метод Применять устанавливает необходимость применять или не применять все заданные в
конфигурации правила перерасчетов при изменении состава или исправлении
записей журнала расчетов.
Пример:
ПравилоПерерасчета.Применять(1);
СледующаяДата
Выбирает следующий день праздников в выборке.
Синтаксис:
СледующаяДата()
Англоязычный
синоним:
NextDate
Возвращаемое
значение:
Число: 1 — получена очередна язапись; 0 — не
обнаружено очередной записи, т. е. конец выборки.
Описание:
Выбирает следующий день праздников
(позиционируется на очередной записи выборки) в порядке дат.
Пример:
// Праздничные дни
Празд =
СоздатьОбъект(Праздники);
Празд.ВыбратьДаты(ДатаНачала,
ДатаОкончания);
Пока Празд.СледующаяДата() = 1 Цикл
// ...
КонецЦикла;
См.
также: ВыбратьДаты
Проверить
Проверяет, является ли последовательность
непрерывной от ГП до заданного документа.
Синтаксис:
Проверить(Докум)
Англоязычный
синоним:
Validate
Параметры:
Докум |
Выражение типа «дата»,
«документ» или «позиция документа», от которой проверяется непрерывность
последовательности. |
Возвращаемое
значение:
Число: 1 если последовательность непрерывна; 0
если есть проведенные документы между ГП и документом.
Описание:
Метод Проверить проверяет, есть ли между ГП и данной точкой проведенные документы
входящие в даную последовательность (т. е. является ли последовательность
непрерывной от ГП до этой точки).
Пример:
Если
Последовательность.УправленческийУчет.Проверить(Док) = 1 Тогда
Последовательность.УправленческийУчет.Установить(Док);
КонецЕсли;
Удалить
Удалить периодическое значение.
Синтаксис:
Удалить()
Англоязычный
синоним:
Delete
Возвращаемое
значение:
Число: 1 — если вызов метода закончился
успешно, 0 — если нет.
Описание:
Метод Удалить удаляет периодическое значение на заданную дату. До вызова данного
метода атрибут ДатаЗнач
должен содержать дату удаляемого периодического значения..
Пример:
Процедура ЧисткаКурсов()
Вал = СоздатьОбъект(Справочник.Валюты);
// Позиционируем созданный объект Вал по известному коду
Вал.НайтиПоКоду(1);
Если Вал.Выбран() = 1 Тогда
Доллар = Вал.ТекущийЭлемент();
Иначе
Предупреждение(Не найдена валюта!);
Возврат;
КонецЕсли;
ПерВал = СоздатьОбъект(Периодический);
ПерВал.ИспользоватьОбъект(Текущ_курс.Доллар);
ПерВал.ВыбратьЗначения();
Пока ПерВал.ПолучитьЗначение() = 1 Цикл
Курс = ПерВал.Значение;
ДатаКурса = ПерВал.ДатаЗнач;
Если Курс 1000 Тогда
ПерВал.Удалить();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Выгрузить
Выгрузить список значений в другой список
значений или таблицу значений.
Синтаксис:
Выгрузить(Знач, НачПоз,
Колич)
Англоязычный
синоним:
Unload
Параметры:
Знач |
Значение типа
«Таблица значений» или «Список значений», в которое нужно выгрузить данные.
При выгрузке в таблицу значений, в ней добавляется новая колонка. Если
переданное значение пустое, тогда система сама создаст объект типа «Список
значений». |
НачПоз |
Необязательный
параметр. Номер начальной позиции, с которой надо начинать выгрузку. Значение
по умолчанию 1. |
Колич |
Необязательный
параметр. Количество выгружаемых значений, если не указан то все. |
Описание:
Метод Выгрузить позволяет выгрузить список значений в другой список значений или таблицу
значений. При выгрузке в таблицу значений, в ней добавляется новая колонка.
Пример:
СтарСписок.Выгрузить(НовСписок);
Пример использования объекта Таблица Значений
Пример:
Функция ВыбратьОплаты(ВыбДок)
ТЗ = СоздатьОбъект(ТаблицаЗначений);
ТЗ.НоваяКолонка(ДатаДок, Дата, , ,
Дата, 15);
ТЗ.НоваяКолонка(Номер, Строка, 20, ,
Номер, 15);
ТЗ.НоваяКолонка(Сумма, Число, 18, 2,
Сумма, 20);
ТЗ.НоваяКолонка(РасчетныйСчет,
Справочник.БанковскиеСчета, , ,
Расч.счет, 30);
ТЗ.НоваяКолонка(ПодчДок, Документ, , , );
ТЗ.ВидимостьКолонки(ПодчДок, 0);
Док = СоздатьОбъект(Документ);
Док.ВыбратьПодчиненныеДокументы(, , ВыбДок);
Пока Док.ПолучитьДокумент() = 1 Цикл
Если Док.Вид() = ОплатаПоставщикам Тогда
ТЗ.НоваяСтрока();
ТЗ.ДатаДок = Док.ДатаДок;
ТЗ.Номер = Док.НомерДок;
ТЗ.Сумма = Док.Итог(Сумма);
ТЗ.РасчетныйСчет = Док.РасчетныйСчет;
ТЗ.ПодчДок = Док.ТекущийДокумент();
КонецЕсли;
КонецЦикла;
ВыбСтрока = 0;
Если ТЗ.ВыбратьСтроку(ВыбСтрока, Выберите оплату) = 1 Тогда
Возврат ТЗ.ПолучитьЗначение(ВыбСтрока, ПодчДок);
КонецФункции
ПриОткрытии
Предопределенная процедура при открытии формы
отчета (обработки).
Синтаксис:
ПриОткрытии(ФлагЧтенияНастройки)
Англоязычный
синоним:
OnOpen
Параметры:
ФлагЧтенияНастройки |
Числовое значение —
признак считывания сохраненной настройки отчета (обработки). Может принимать
значения:
1 — при открытии
формы была восстановлена последняя сохраненная настройка отчета (обработки);
0 — при открытии формы
настройка не восстановлена. |
Описание:
Форма любого отчета или обработки в системе
1С:Предприятие обязательно содержит экранный диалог. В диалоге могут размещаться
элементы для задания различных параметров построения отчета или выполнения
обработки. При Использовании отчета (обработки) набор параметров,
использованных при формировании отчета или выполнения обработки, можно
запомнить, а при следующем использовании этого же отчета (обработки) —
восстановить. Для выполнения этих операций существуют команды в меню
«Действия» системы 1С:Предприятие.
Набор параметров формирования отчета или
выполнения обработки называется настройкой отчета (обработки). Последняя
сохраненная настройка автоматически восстанавливается системой 1С:Предприятие,
при вызове отчета (обработки).
Вызов предопределенной процедуры ПриОткрытии производится самой
системой 1С:Предприятие неявно при интерактивном открытии отчета (обработки).
Параметр ФлагЧтенияНастройки позволяет определить, была ли при открытии отчета (обработки)
восстановлена сохраненная настройка.
Если в данной предопределенной процедуре
установить статус возврата 0 (например, если данному пользователю запрещено
формировать выбранный отчет), открытие формы не будет выполнено.
Пример:
Процедура ПриОткрытии(ФлагСохрНастр)
Если ФлагСохрНастр = 0 Тогда
ВыбВалюта = Константа.ОснВалюта;
КонецЕсли;
КонецПроцедуры
См.
также: СтатусВозврата
ПриВыбореЯчейкиТаблицы
Предопределенная процедура обработки ячейки
таблицы в режиме ввода данных.
Описание:
ПриВыбореЯчейкиТаблицы(ИмяИлиАдрес,
Значение)
Англоязычный
синоним:
OnSelectSheetCell
Параметры:
ИмяИлиАдрес |
Здесь в процедуру
системой передается строковое значение имени области таблицы, если выбранная
ячейка помечена в таблице как отдельная область, или адрес ячейки в формате «R1C1:R2C2». |
Значение |
Здесь в процедуру
системой передается значение даной ячейки, а если диаграмма — значение выбранного
элемента. |
Описание:
Вызов процедуры ПриВыбореЯчейкиТаблицы на
исполнение производится в системе 1С:Предприятие по двойному щелчку мыши или по
нажатию клавиши «Enter» на
выбранной ячейке в таблице
Внимание! Данная
предопределенная процедура вызывается в модуле формы при выборе ячейки только
для таблиц в режиме ввода данных.
Замечание ПриВыбореЯчейкиТаблицы —
предопределенная процедура. Она не является встроенной процедурой языка. Для
нее определено только название и синтаксис. Тело процедуры должно быть
написано пользователем, осуществляющим конфигурирование, в программном модуле
формы, в которой используется таблица в режиме ввода данных.
Пример:
Процедура
ПриВыбореЯчейкиТаблицы(ИмяЯчейки, Знач)
// Тело процедуры
// ...
КонецПроцедуры
Записать
Записать текст в файл с указанным именем.
Синтаксис:
Записать(ИмяФайла)
Англоязычный
синоним:
Write
Параметры:
ИмяФайла |
Строковое выражение
— имя файла. |
Описание:
Метод Записать записывает текст в файл с именем ИмяФайла.
Пример:
ТекстДок =
СоздатьОбъект(Текст);
ТекстДок.Открыть(catalog.txt);
ТекстДок.Записать(price.txt);
ПолучитьАтрибут
Возвращает значение атрибута запроса по его
имени.
Синтаксис:
ПолучитьАтрибут(ИмяАтрибута)
Англоязычный синоним;
SetAttrib
Параметры:
ИмяАтрибута |
Строковое выражение,
содержащее значение любого атрибута запроса. |
Возвращаемое
значение:
Значение атрибута запроса.
Описание:
Метод ПолучитьАтрибут возвращает значение атрибута запроса по его имени.
Пример:
// Текст запроса
ТекстЗапроса =
|ВидРаб = Документ.Наряд.ВидРаботы;
|Сотр = Документ.Наряд.Сотрудник;
|Группировка ВидРаб
|Упорядочить По ВидРаб.Код,
ВидРаб.Стоимость;
|Группировка Сотр;
|;
// ...
// Фрагмент заполнения таблицы
// Выбираем значение ВидРаб
Запрос.ПолучитьАтрибут(ВидРаб);
// Выбираем сотрудника
Запрос.ПолучитьАтрибут(Сотр);
Функция
Вычисляет функцию и включает ее результат в
запрос.
Синтаксис:
Функция ИмяФункции =
ТипФункции (Параметр|УточненныйПараметр)
[Когда (Условие)];
Англоязычный
синоним:
Function ИмяФункции=
ТипФункции (Параметр|УточненныйПараметр)
[When (Условие)];
Параметры:
ИмяФункции |
Имя, которое
присваивается функции. По этому имени можно в дальнейшем обращаться к значению
вычисленной функции из вызывающего программного модуля как к атрибуту
запроса. Данную внутреннюю переменную заранее объявлять не нужно. Она
фактически неявно объявляется в операторе Функция. |
TипФyнкции |
Ключевое слово одной
из встроенных функций языка. Может быть одним из приведенных ниже. |
Параметр |
Имя объявленной
ранее внутренней переменной, значение которой используется как параметр
встроенной функции ТипФункции. В функциях: Сумма, Среднее, Максимум, Минимум в качестве данного
параметра возможно использование арифметического выражения в терминах
встроенного языка 1С:Предприятие. |
УточненныйПараметр |
Конкретизация
объявленной ранее внутренней переменной, значение которой используется как
аргумент встроенной функции ТипФункции. |
Когда |
Необязательное
добавочное ключевое слово, использование которого в команде означает, что
вычисление функции следует производить только при условии, когда заданное
логическое выражение Условие истинно. |
Условие |
Логическое выражение
встроенного языка 1С:Предприятие. В логическом выражении могут участвовать
как внутренние, так и внешние переменные запроса (см. описание метода Условие). Используется
только после ключевого слова Когда. |
Описание:
Оператор Функция вычисляет функцию
ТипФункции и присваивает ее значение внутренней переменной ИмяФункции.
Типы применяемых функций предопределены и
могут быть следующими:
Тип
Функции |
Англояз. Синоним |
Выполняемое действие |
Сумма |
Sum |
Вычисляет сумму
выбранных по запросу значений параметра.1 |
Среднее |
Avg |
Вычисляет среднее из
выбранных по запросу значений параметра. |
Минимум |
Min |
Вычисляет минимум из
выбранных по запросу значений параметра. |
Максимум |
Мах |
Вычисляет максимум
из выбранных по запросу значений параметра. |
Счётчик |
Count |
Подсчитывает
количество записей, вошедших в выборку. |
НачОст |
BegRest |
Вычисляет начальный
остаток для выбранных по запросу значений параметра.2 |
КонОст |
EndRest |
Вычисляет конечный
остаток для выбранных по запросу значений параметра.2 |
Приход |
Debit |
Вычисляет приход для
выбранных но запросу значений параметра.2 |
Расход |
Credit |
Вычисляет расход для
выбранных по запросу значений параметра.2 |
СНД |
IDB |
Вычисляет сальдо
начальное дебетовое для выбранных по запросу значений параметра.3 |
СКД |
FDB |
Вычисляет сальдо
конечное дебетовое для выбранных по запросу значений параметра.3 |
СНК |
ICD |
Вычисляет сальдо
начальное кредитовое для выбранных по запросу значений параметра.3 |
СКК |
FCD |
Вычисляет сальдо
конечное кредитовое для выбранных по запросу значений параметра.3 |
ДО |
TD |
Вычисляет дебетовые
обороты для выбранных по запросу значений параметра. |
КО |
TC |
Вычисляет кредитовые
обороты для выбранных по запросу значений параметра.3 |
КорДО |
CorTD |
Вычисляет дебетовые
обороты между корреспондирующим счетам или субконто для выбранных по
запросу значений параметра.3, 4 |
КорКО |
CorTC |
Вычисляет кредитовые
обороты между корреспондирующим счетам или субконто для выбранных по запросу
значений параметра.3, 4 |
1Замечание: Для ресурсов оборотных регистров допускается вызывать только тип
функции Сумма.
2Замечание: Типы функций НачОст, КонОст, Приход, Расход можно использовать только с параметрами, указывающими на ресурсы регистров
остатков. Для ресурсов регистров остатков другие типы функций вызывать нельзя.
3Замечание: Функции СНД, СНК, СКД, СКК, ДО, КО, КорДО, КорКО можно использовать только
с реквизитами проводки: Сумма, Количество
или ВалСумма.
4Замечание: Функции КорДО и КорКО накапливают значения
только тогда когда в запросе есть обращение к реквизитам проводок Счет, КорСчет Субконто
или КорСубконто.
Замечание: В программном
модуле, где используется запрос, ИмяФункции будет
являться атрибутом запроса. При помощи данного атрибута можно обращаться к
значению вычисленной в запросе функции.
Замечание: В функциях: Сумма, Среднее, Максимум, Минимум в качестве
аргумента возможно использование арифметического выражения в терминах
встроенного языка.
Пример:
...
|КолВо =
Документ.ВидДокумента.Количество;
|Цена = Документ.ВидДокумента.Цена;
|Функция Сум = Сумма(КолВо * Цена);
|Функция Макс = Максимум(Окр(КолВо) *
Окр(Цена));
|Функция Средн =
Среднее(ФункцияОпределеннаяВМодуле(КолВо, Цена));
...
Пример:
// Создание объекта типа Запрос
Запрос =
СоздатьОбъект(Запрос);
ТекстЗапроса =
//{{ЗАПРОС(Функции)
|Период с ДатаНач по ДатаКон;
|Оклад = Справочник.Сотрудники.Оклад;
|Подр = Справочник.Сотрудники.Подразделение;
|Ктг = Справочник.Сотрудники.Категория;
|Группировка Подр без групп;
|Группировка Ктг без групп;
|Функция Всего = Сумма(Оклад);
|Условие((Ктг.Выбран() = 1) И
(Подр.Выбран() = 1));
|//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0
Тогда
Возврат;
КонецЕсли;
// ...
Итог = Запрос.Всего;
// ...
Оператор Функция предназначен для вычисления и накопления некоторых численных значений
в процессе формирования выборки по запросу.
Кроме того, при формировании временного набора
данных запрос специально формирует итоговые записи, в которые заносит накопленные
значения вычисленных функций для каждой вложенной Группировки (подробнее об
этом см. главу данной книги «Структура запросов и методика их использования»).
Операторы функций в запросе можно опускать,
тогда запрос просто не будет ничего вычислять, а просто во временный набор
данных заносятся записи со значениями Группировок. Однако это справедливо
только для работы запросов по справочникам и по документам. При работе запроса
по регистрам следует помнить, что в этом случае обязательно наличие Функций,
причем только в том случае, когда их вычисленные значения отличны от нуля (хотя
бы одной из заданных Функций), найденные объекты включаются во временный набор
данных, формируемый запросом. Если при работе запроса по регистрам в тексте
запроса операторы функций опущены, то программа не выдаст никакого сообщения об
ошибке, добросовестно пройдет по всем Группировкам, не вычислит никаких
значений Функций и, значит, ничего не запишет во временном файле.
При создании в тексте запроса внутренней
переменной, которую вы предполагаете использовать в качестве параметра
оператора Функция, надо учитывать, что тип этой внутренней переменной должен
быть «число», т. к. функции в языке запросов обрабатывают только численные
значения.
В тексте запроса, при описании оператора Функция можно использовать
необязательное ключевое слово Когда, использование которого в операторе означает, что вычисление функции
следует производить только при условии, что значение логического выражения,
заданного в параметре ключевого слова является ИСТИНА. Синтаксис применяемого
логического выражения полностью аналогичен синтаксису разрешенному к
применению в операторах Условие.
Следует понимать, что не все функции внутри
конкретной группировки запроса могут иметь четко интерпретируемый смысл. Например,
для группировки по документу движения регистра следующие функции
|Функция ПрихКол = Приход(Количество);
|Функция РасхКол = Расход(Количество);
имеют четкий смысл — приращения, сделанные
документом при движении регистра. С другой стороны, в той же группировке следующие
функции:
|Функция НачКол = НачОст(Количество);
|Функция КонКол = КонОст(Количество);
явно не имеют смысла (в запросах по регистрам,
обычно задают период запроса при помощи оператора ПериодC. Функция НачКол в данном примере должна
по смыслу показывать остаток ресурса Количество на начальную дату запроса. Внутри группировки по документу
вопрос: «Какой начальный остаток ресурса на дату 10.01.97?» по документу,
проведенному, например, 13.01.97, не имеет смысла). Поэтому в таких ситуациях
функция будет иметь нулевое значение.
Пример:
Запрос =
СоздатьОбъект(Запрос);
Текст3апроса=
'//{{ЗАПРОС(Функции)
|Период с ДатаОтчета;
|Товар = Регистр.КвотыТоваров.Товар;
|Отдел = Регистр.КвотыТоваров.Отдел;
|Сотрудник =
Регистр.КвотыТоваров.Сотрудник;
|Партнер =
Регистр.КвотыТоваров.Партнер;
|Док =
Регистр.КвотыТоваров.ТекущийДокумент;
|Количество =
Регистр.КвотыТоваров.КвотаТовара;
|Группировка Товар;
|Группировка Отдел;
|Группировка Сотрудник;
|Группировка Партнер;
|Группировка Док;
|Функция НачКол = НачОст(Количество);
|Функция ПрихКол = Приход(Количество);
|Функция РасхКол = Расход(Количество);
|Функция КонКол = КонОст(Количество);
|// Следующие Функции вычисляем только
при определенных
|// условиях, чтобы получить
отфильтрованные итоги
|Функция ПрихКолТов =
Приход(Количество) Когда (Док.ФлагТовара = 1);
|Функция РасхКолТов =
Расход(Количество) Когда (Док.ФлагТовара = 1);
|Функция ПрихКолОтд =
Приход(Количество) Когда (Док.ФлагОтдела = 1);
|Функция РасхКолОтд =
Расход(Количество) Когда (Док.ФлагОтдела = 1);
|Функция ПрихКолСотр =
Приход(Количество) Когда (Док.ФлагСотрудника = 1);
|Функция РасхКолСотр =
Расход(Количество) Когда (Док.ФлагСотрудника = 1);
|//}}ЗАПРОС
;
// Если ошибка
в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0
Тогда
Возврат;
КонецЕсли;
Способы оптимизации формирования отчетов
Процесс получения отчетов с использованием
запросов можно условно разделить на две фазы: сначала формируется запрос,
затем полученные данные выводятся в Таблицу. В данном разделе речь пойдет о
второй фазе получения отчета — выводе данных в Таблицу.
Рассмотрим следующий пример. Допустим,
требуется вывести в отчет полный перечень товаров со всеми их реквизитами. Для
этого сначала формируется запрос с одной Группировкой — Товар, затем полученные
данные выводятся в Таблицу. Ниже приведены три варианта вывода данных в
Таблицу.
Вариант 1
В программном модуле текст вывода данных в
Таблицу следующий
Пока
Запрос.Группировка(Товар) = 1 Цикл
Таб.ВывестиСекцию(Товар);
КонецЦикла;
Секция Товар в Таблице имеет
следующий формат:
Запрос.Товар.Наименование |
Запрос.Товар.Артикул |
Запрос.Товар.Цена |
Запрос.Товар.Валюта |
В первом
варианте отображаемые реквизиты товара полностью вычисляются в ячейках
Таблицы, причем доступ к каждому реквизиту товара происходит по полному пути:
Запрос-Товар-Реквизит. Данный вариант вывода данных в Таблицу самый медленный.
Вариант 2
В программном модуле текст вывода данных в
Таблицу следующий
Пока
Запрос.Группировка(Товар) = 1 Цикл
ПечНаим = Запрос.Товар.Наименование;
ПечАртикул = Запрос.Товар.Артикул;
ПечЦена = Запрос.Товар.Цена;
ПечВалюта = Запрос.Товар.Валюта;
Таб.ВывестиСекцию(Товар1);
КонецЦикла;
Секция Товар1 в Таблице имеет
следующий формат:
ПечНаим |
ПечАртикул |
ПсчЦена |
ПечВалюта |
Во втором варианте отображаемые реквизиты
товара вычисляются в программном модуле, а в ячейках Таблицы размещены простые
выражения — ссылки на идентификаторы программного модуля. Доступ к каждому
реквизиту товара происходит по полному пути: Запрос-Товар-Реквизит. В данном
варианте фаза вывода данных в Таблицу работает быстрее первого варианта (выигрыш
~20%), т. к. в программном модуле выражения вычисляются существенно быстрее,
чем выражения, помещенные в ячейках Таблицы (программный модуль при загрузке
компилируется, а выражения в ячейках таблицы интерпретируются каждый раз при
выводе секций).
Вариант 3
В программном модуле текст вывода данных в
Таблицу следующий
Пока
Запрос.Группировка(Товар) = 1 Цикл
Тов = Запрос.Товар;
ПечНаим = Тов.Наименование;
ПечАртикул = Тов.Артикул;
ПечЦена = Тов.Цена;
ПечВалюта = Тов.Валюта;
Таб.ВывестиСекцию(Товар1);
КонецЦикла;
Секция Товар1 в Таблице имеет
следующий формат:
ПечНаим |
ПечАртикул |
ПсчЦена |
ПечВалюта |
В третьем варианте отображаемые реквизиты
товара вычисляются в программном модуле, а в ячейках Таблицы размещены простые
выражения — ссылки на идентификаторы программного модуля. Доступ к каждому
реквизиту товара происходит по сокращенному пути — через промежуточную переменную:
Товар — Реквизит. В данном варианте фаза вывода данных в Таблицу работает
быстрее, чем во втором варианте (выигрыш ~20%) и существено быстрее, чем в
первом варианте (выигрыш ~40%), т. к. вычисление значений реквизитов объектов
через «одну точку» выполняется быстрее, чем через «две (и более) точки».
Кратко суть этого раздела можно выразить так:
при реализации больших отчетов, которые рассчитаны на отображение более сотни
строк, следует придерживаться следующих правил:
·
не размещайте сложных выражений в ячейках
Таблицы. Лучше вычислить необходимые значения непосредственно в программном
модуле;
·
если необходимо получить несколько
реквизитов одного объекта, который сам является составной частью другого
объекта, то следует воспользоваться промежуточной переменной, в которую
сначала можно записать значение всего объекта «целиком», а затем уже от нее
получать требуемые данные.
УстановитьКартинку
Переустановить объект типа
Картинка.
Синтаксис:
УстановитьКартинку(Объект)
Англоязычный
синоним:
SetPicture
Параметры:
Объект |
Выражение, имеющее
значение оъекта типа «Картинка» встроенного языка или OLE-объект типа I Picture. |
Описание:
Метод УстановитьКартинку переписывает (копирует) значение источника Объект в текущий объект. (Данный метод копирует все содержимое одного
объекта в другой, в отличие от оператора присваивания (=), который передает
значение ссылки на уже существующий объект). Например:
А =
СоздатьОбъект(Картинка);
В = А;
// в этом случае переменные А и В
ссылаются на один и тот же объект
Рассмотрим другой вариант:
А =
СоздатьОбъект(Картинка);
В = СоздатьОбъект(Картинка);
А.Загрузить(с:\BMP\Boris.bmp);
В.УстановитьКартинку(А);
// в этом случае переменные А и В
ссылаются на два
// разных объекта, хотя и содержат одно
и то же
Пример:
// Допустим в Форме диалога у нас есть
элемент типа картинка
// с идентификатором Кино.
// Сделаем анимацию изображения в этой
форме
Перем фото[5];
// создадим объекты и загрузим в них
картинки
Для Н = 1 По 5 Цикл
Фото[Н] = СоздатьОбъект(Картинка);
Фото[Н].Загрузить(с:\BMP\Foto + Строка(Н)+
.bmp);
КонецЦикла;
// Теперь запустим анимацию
Для Раз = 1 По 100 Цикл
Для Н = 1 По 5 Цикл
Кино.УстановитьКартинку(Фото[H]);
КонецЦикла;
КонецЦикла;
Пример использования
Предположим, что проектируется отчет о продаже
товара. Внешний вид отчета визуально настроен. Мы предполагаем, что будет построена
объемная гистограмма с одной точкой («Продано на сумму») и количеством серий
равным количеству товаров.
Фрагментом модуля отчета, является процедура ПостроитьДиаграмму. Вызов этой
процедуры находится в закладке «Текст» свойств внедренного в табличный
документ, объекта «Диаграмма», он выглядит так:
ПостроитьДиаграмму(Таб.ТекущийОбъект,
Запрос)
Параметрами процедуры являются:
·
Объект «Диаграмма», переданный как
текущий объект табличного документа (подробнее см. в главе Работа с
таблицами);
·
запрос к базе данных, сформированный и
выполненный ранее.
Пример:
Процедура ПостроитьДиаграмму(Диаграмма,
Запрос)
//На время наполнения данными, запретим перерисовку
Диаграмма.Обновление(0);
// задаем текст заголовка
Диаграмма.Заголовок = Пример использования диаграммы;
// задаем текст метки точки
Диаграмма.УстановитьИмяТочки(1, Продано на сумму);
СчетчикСерий = 1;
Пока Запрос.Группировка(Товар) = 1 Цикл
ПродСумма = Запрос.СуммаПродано;
// задаем очередное значение
Диаграмма.Значение(1, СчетчикСерий, ПродСумма);
// задаем метку очередной серии
Диаграмма.УстановитьИмяСерии(СчетчикСерий, Запрос.Товар.Наименование)
СчетчикСерий = СчетчикСерий + 1;
КонецЦикла;
// После заполнения данных, включим перерисовку
Диаграмма.Обновление(1);
КонецПроцедуры
СвободноеМестоНаДиске
Определить размер свободного дискового
пространства.
Синтаксис:
СвободноеМестоНаДиске(ИмяДиска)
Англоязычный
синоним:
GetDiskFreeSpace
Параметры:
ИмяДиска |
Строковое выражение
с именем диска. |
Возвращаемое
значение:
Численое значение — размер свободного
дискового пространства в байтах.
Описание:
Метод СвободноеМестоНаДиске возвращает численое значение размера
свободного дискового пространства.
Пример:
* В данном примере приведена процедура
определения свободного дискового пространства диска С:
Процедура РазмД()
Рез = ФС.СвободноеМестоНаДиске(С:);
КонецПроцедуры
Функции, применяемые в выражениях
Функция |
Параметр(ы) |
Возвращаемое
значение |
DATE() |
|
Тип даты. Системная
дата. |
DAY(Date) |
Тип даты. |
Число. Номер дня в
месяце. |
DTOC(Date) |
Тип даты. |
Строка.
Представление даты в формате ММ/ДД/ГГ |
DTOS(Date) |
Тип даты. |
Строка.
Представление даты в формате ГГГГММДД |
IIF(Log,
IfTrue, IfFalse) |
Log — выражение булева типа.
IfTrue, IfFalse —
тип определяется во время исполнения. Должны иметь одинаковую длину и тип. |
Тип совпадает с
типом IfTrue и IfFalse.
Возвращает IfTrue, если значение вычисленного
выражения Log равно
истине, и IfFalse в
противном случае. |
LTRIM(String) |
String — строка. |
Строка. Исходная строка без ведущих пробелов. |
Month(Date) |
Date — дата. |
Число. Номер месяца в году. |
STOD(String) |
String — строка. Представление даты в формате
ГГГГММДД |
Тип даты. Преобразованное в дату значение исходной строки. |
STR(Number,
Length, Decim) |
Number — число. Преобразуемое число.
Length — число. Количество символов в возвращаемой
строке, включая дес. точку.
Decim — число. Желаемое кол-во знаков после точки. |
Строка. Результат преобразования числа в строковое представление. |
SUBSTR(String,
StartPos, Num) |
String — строка. Исходная строка.
StartPos — число. Начальная позиция.
Num — число. Кол-во символов. |
Строка. Подстрока, состоящая из Num символов от начальной позиции исходной
строки. |
TIME() |
|
Строка. Системное время в представлении ЧЧ:ММ:СС |
TRIM(String) |
String — строка. |
Строка. Исходная строка без заключительных пробелов. |
UPPER(String) |
String — строка. |
Строка. Преобразование к верхнему регистру |
VAL(String) |
String — строка. |
Число. Преобразование строки в число |
YEAR(Date) |
Date — дата. |
Число. Год. |
ДлинаПредставленияЗначения
Возвращает длину представления значения.
Синтаксис:
ДлинаПредставленияЗначения(Мин,
Макс, ДлПоУмолч)
Англоязычный
синоним:
ValuePresentLen
Параметры:
Мин |
Необязательный
параметр. Метод не будет возвращать значение меньше указанной в данном
параметре величины. |
Макс |
Необязательный
параметр. Метод не будет возвращать значение больше указанной в данном
параметре величины. |
ДлПоУмолч |
Необязательный
параметр. Метод будет возвращать данную величину для метаданных, для которых
длина представления не определена. Параметр задает длину для типов данных,
таких как Справочник неопределенного типа и аналогичных, у которых не
определена длина. |
Возвращаемое
значение: возвращает длину представления значения.
Описание:
Метод ДлинаПредставленияЗначения для типизированных объектов типа Реквизит и аналогичных, выдает длину
представления значения. Данный метод может использоваться, например, для
определения ширины столбца в универсальных отчетах, выводящих данные объектов
различных видов.
Пример:
Ширина =
Метаданные.Документ(1).РеквизитШапки(2).ДлинаПредставленияЗначения(5,
50, 30)
Работа системы 1С:Предприятие в качестве DDE сервера
Другим способом обращения к данным
1С:Предприятие а из внешних программ является режим DDE. Основное преимущество
данного режима является динамическое обновление получаемых из 1С:Предприятие
данных.
Система 1С:Предприятие является DDE сервером и
предоставляет свой сервис в получении данных и уведомлении DDE клиента об их
изменении.
В качестве DDE сервера 1С:Предприятие может возвращать
значение некоторого выражения, записанного на встроенном языке 1С:Предприятие.
Возвращаемое значение является строкой. Для того, чтобы рассматривать результат
выражения в качестве числа или даты, например в ячейке MS Excel, может потребоваться задание формата значения.
Для доступа к 1С:Предприятие посредством DDE следует использовать DDE-объект
с именем 1CV7|DDE.
Пример:
* Ниже приведены примеры размещения в ячейках MS Excel
DDE связей с
программой 1С:Предприятие. Первое выражение в примере обращается к стандартной
функции встроенного языка 1С:Предприятие. Второе выражение в примере
обращается к функции, записанной в глобальном модуле конфигурации программы
1С:Предприятие.
='1CV7'|DDE!'РабочаяДата()'
='1CV7'|DDE!'СуммаПоНарядам()'
Замечание 1: Для
правильной интерпретации значения выражения в качестве числа или даты в MS Excel, нужно в операционной системе установить соответствующий формат представления
даты и числа, как он принят в 1С:Предприятие.
Замечание 2: Не
рекомендуется обращаться посредством DDE к функциям 1С:Предприятие, которые могут выполняться
продолжительное время. Это связано с тем, что обращение к данной функции будет
выполняться достаточно часто при обновлениях DDE связей.
Содержание раздела