Синтаксическая диаграмма описания элемента языка
Формат описания элемента языка, используемый в данном руководстве, иллюстрируется синтаксической диаграммой, приведенной ниже.
Системные процедуры работы с регистрами
Нижеследующие процедуры РассчитатьРегистрыНа и РассчитатьРегистрыПо являются глобальными, т. к. они доступны в любом программном модуле и воздействуют на все регистры, объявленные в конфигураторе, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет). Применение данных процедур в тексте программного модуля непосредственное, т. е. просто имя процедуры с параметрами (без предварительной ссылки на объект).
Скопировать
Скопировать текущую запись.
Синтаксис:
Скопировать()
Англоязычный синоним:
Copy
Описание:
Метод Скопировать добавляет новую запись, копирующую текущую запись. Для записи изменений в базу данных необходимо инициировать запись (см. «Назначение агрегатного типа данных Xbase»).
Пример:
Процедура КопирЗап()
ДБФ.Скопировать();
ДБФ.Записать();
КонецПроцедуры
Следующая
Перейти на следующую запись.
Синтаксис:
Следующая()
Англоязычный синоним:
Next
Возвращаемое значение:
Число: 1 — получена следующая запись; 0 — следующая запись не найдена.
Описание:
Метод Следующая предназначен для позиционирования объекта на следующую запись. В зависимости от того, установлен ли текущий индекс, позиционирование происходит либо в порядке возрастания физического номера записи, либо в порядке возрастания значения выражения текущего индекса (если индекс создавался с установленным флагом "Убывание", то в порядке убавания).
Пример:
// Обнуляет значения всех полей всех существующих записей
Процедура ОчистЗап() ДБФ.Первая();
Пока 1 = 1 Цикл
ДБФ.Очистить();
ДБФ.Записать();
Если ДБФ.Следующая() = 0 Тогда
Возврат;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
СледующаяДата
Выбирает следующий день календаря в выборке.
Синтаксис:
СледующаяДата()
Англоязычный синоним:
NextDate
Возвращаемое значение:
Число: 1 — получена очередна язапись; 0 — не обнаружено очередной записи, т. е. конец выборки.
Описание:
Выбирает следующий день календаря (позиционируется на очередной записи выборки) в порядге дат.
Пример:
// Календарь служащих
Календ = СоздатьОбъект("Календарь.Служащие");
Календ.ВыбратьДаты(ДатаНачала, ДатаОкончания);
Пока Календ.СледующаяДата() = 1 Цикл
//. . .
КонецЦикла;
См. также: ВыбратьДаты
СледующаяДата
Выбирает следующий день праздников в выборке.
Синтаксис:
СледующаяДата()
Англоязычный синоним:
NextDate
Возвращаемое значение:
Число: 1 — получена очередна язапись; 0 — не обнаружено очередной записи, т. е. конец выборки.
Описание:
Выбирает следующий день праздников (позиционируется на очередной записи выборки) в порядке дат.
Пример:
// Праздничные дни
Празд = СоздатьОбъект("Праздники");
Празд.ВыбратьДаты(ДатаНачала, ДатаОкончания);
Пока Празд.СледующаяДата() = 1 Цикл
// ...
КонецЦикла;
См. также: ВыбратьДаты
СложнаяПроводка
Определяет является ли текущая проводка сложной.
Синтаксис:
СложнаяПроводка()
Англоязычный синоним:
ComplexEntry
Возвращаемое значение:
Число: 1 — текущая проводка является сложной; 0 — текущая проводка не является сложной.
Описание:
Для текущей проводки (корреспонденции) определяется является ли она сложной. Под сложной проводкой понимается проводка, состоящая из нескольких корреспонденции.
Пример:
Опер = СоздатьОбъект("Операция");
Опер.НайтиОперацию(ВыбрДокумент);
Для Инд = 1 До Опер.КоличествоПроводок() Цикл
Опер.ПолучитьПроводкуПоНомеру(Инд);
Если Опер.СложнаяПроводка() = 1 Тогда
Сообщить("Проводка сложная");
КонецЕсли;
КонецЦикла;
СНД, СНК, СКД, СКК, ДО, КО
СНД дебетовое сальдо по счету на начало периода;
СНК кредитовое сальдо по счету на начало периода;
СКД дебетовое сальдо по счету на конец периода;
СКК кредитовое сальдо по счету на конец периода;
ДО дебетовый оборот по счету за период;
КО кредитовый оборот по счету за период.
Синтаксис:
СНД (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)
СНК (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...}
СКД (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)
СКК (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)
ДО (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)
КО (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)
Англоязычные синонимы:
IDB
ICB
FDB
FCB
TD
ТС
Параметры:
<Счет> |
Значение типа «Счет» — счет расчета итогов. Может использоваться строка — код счета. |
<ТипСуммы> |
Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений: 1 ("С", "S")— сумма; 2 ("В", "С")— валютная сумма; 3 ("К", "А")— количество. Если параметр не указан, метод возвращает сумму. |
<Валюта> |
Необязательный параметр. Значение типа «Справочник.Валюты». Если параметр не указан итоги выдаются без учета валюты. |
<Субконто1> <Субконто2>… |
Необязательный параметр. Значения субконто. Их количество зависит от настройки субконто для данного счета. Если параметры не указаны, итоги выдаются без учета аналитики. |
Все параметры кроме счета могут не указываться.
Возвращаемое значение:
Число —сальдо или оборот.
Описание:
Функции СНД, СНК, СКД, СКК, ДО, КО возвращают суммы остатков и оборотов по указанному счету за период. Выдаваться может сумма или валютная сумма или количество, в зависимости от параметра <ТипСуммы>.
Если указана валюта, то данные выдаются по конкретной валюте. Валютная сумма может выдаваться только по конкретной валюте.
Если указаны значения субконто, то данные выдаются по конкретным объектам аналитики.
Пример:
* Вычисляются остатки на счете 51 на начало и конец периода бухгалтерских итогов. Рассчитанные остатки присваиваются переменным.
// Создадим объект для работы с бухгалтерскими итогами
БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги);
// Вычислим остаток на расчетном счете (счет 51) на начало периода
П2623 = БухИтоги.СНД("51");
// Вычислим остаток на расчетном счете (счет 51) на конец периода
П2624 = БухИтоги.СКД("51");
СНД, СНК, СКД, СКК, ДО, КО
СНД — дебетовое сальдо на начало периода;
СКД — дебетовое сальдо на конец периода;
СНК — кредитовое сальдо на начало периода;
СКК — кредитовое сальдо на конец периода;
ДО — дебетовый оборот за период;
КО — кредитовый оборот за период.
Синтаксис:
СНД(<ТипСуммы>)
СНК(<ТипСуммы>)
СКД(<ТипСуммы>}
СКК(<ТипСуммы>)
ДО(<ТипСуммы>)
КО(<ТипСуммы>)
Англоязычные синонимы:
IDB
ICB
FDB
FCB
TD
ТС
Параметры:
<ТипСуммы> |
Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений: 1 ("С", "S") — сумма; 2 ("В", "С") — валютная сумма; 3 ("К", "А") — количество. Если параметр не указан, метод возвращает сумму. |
Возвращаемое значение:
Число — сальдо или оборот.
Описание:
При работе с результатами запроса, соответствующие сальдо и обороты в соответствии с текущим уровнем вложенности группировок.
Пример:
БухИтоги.Запрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 цикл
ОстНачД = БухИтоги.СНД();
ОстНачК = БухИтоги.СНК();
ОборотД = БухИтоги.ДО();
ОборотК = БухИтоги.КО();
ОстКонД = БухИтоги.СКД();
ОстКонК = БухИтоги.СКК();
КонецЦикла;
СНДР, СНКР, СКДР, СККР
СНДР дебетовое развернутое сальдо по субсчетам на начало периода;
СНКР кредитовое развернутое сальдо по субсчетам на начало периода;
СКДР дебетовое развернутое сальдо по субсчетам на конец периода;
СККР кредитовое развернутое сальдо по субсчетам на конец периода.
Синтаксис:
СНДР(<Счет>, <ТипСуммы>, <Валюта>)
СНКР(<Счет>, <ТипСуммы>, <Валюта>)
СКДР(<Счет>, <ТипСуммы>, <Валюта>)
СККР(<Счет>, <ТипСуммы>, <Валюта>}
Англоязычные синонимы:
IDBR
ICBR
FDBR
FCBR
Параметры:
<Счет> |
Значение типа «Счет» — счет, для которого необходимо рассчитать развернутое сальдо. Может использоваться строка — код счета. |
<ТипСуммы> |
Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений: 1 ("С", "S")— сумма; 2 ("В", "С")— валютная сумма; 3 ("К", "А")— количество. Если параметр не указан, метод возвращает сумму. |
<Валюта> |
Необязательный параметр. Значение типа «Справочник. Валюты». Если параметр не указан итоги выдаются без учета валюты. |
Возвращаемое значение:
Число — развернутое сальдо.
Описание:
Функции СНДР, СНКР, СКДР, СККР предназначены для расчета остатков по счетам, у которых учет ведется на субсчетах. Каждая функция из этой группы возвращает остаток как сумму соответствующих остатков (дебетовых или кредитовых) всех субсчетов указанного счета. При этом учитываются остатки по субсчетам являющихся собственно счетами, а не группами.
Если указана валюта, то данные выдаются по конкретной валюте. Валютная сумма может выдаваться только по конкретной валюте.
Пример:
* Для помещения в бухгалтерский баланс вычисляется развернутое сальдо по 68 счету, учет на котором ведется на субсчетах. Дебетовая составляющая должна попасть в актив баланса, кредитовая составляющая — в пассив.
// Создадим объект для работы с бухгалтерскими итогами
БухИтоги = СоздатьОбъект( "БухгалтерскиеИтоги);
// Вычислим дебетовое сальдо на 68 счете на начало периода
П2463 = БухИтоги.СНДР("68");
// Вычислим дебетовое сальдо на 68 счете на конец периода
П2464 = БухИтоги.СКДР("68");
// Вычислим кредитовое сальдо на 68 счете на начало периода
П6263 = БухИтоги.СНКР("68");
// Вычислим кредитовое сальдо на 68 счете на конец периода
П6264 = БухИтоги.СККР("68");
СНДРС, СНКРС, СКДРС, СККРС
СНДРС дебетовое развернутое сальдо по субконто на начало периода;
СНКРС кредитовое развернутое сальдо по субконто на начало периода;
СКДРС дебетовое развернутое сальдо по субконто на конец периода;
СККРС кредитовое развернутое сальдо по субконто на конец периода.
Синтаксис:
СНДРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>, <ТипФильтра1>, <Субконто2>,
<ТипФильтра2>...)
СНКРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>, <ТипФильтра1>, <Субконто2>,
<ТипФильтра2>...)
СКДРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>, <ТипФильтра1>, <Субконто2>,
<ТипФильтра2>...)
СККРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>, <ТипФильтра1>, <Субконто2>,
<ТипФильтра2>...}
Англоязычные синонимы:
IDBRS
ICBRS
FDBRS
FCBRS
Параметры:
<Счет> |
Значение типа «Счет» — счет, для которого необходимо рассчитать развернутое сальдо. Может использоваться строка — код счета. |
<ТипСуммы> |
Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений: 1 ("С", "S")— сумма; 2 ("В", "С")— валютная сумма; 3 ("К", "А")— количество. Если параметр не указан, метод возвращает сумму. |
<Валюта> |
Необязательный параметр. Значение типа «Справочник. Валюты». Если параметр не указан итоги выдаются без учета валюты. |
<Субконто1> |
Необязательный параметр. Значение субконто 1. |
<ТипФильтра1> |
Необязательный параметр. Тип использования субконто 1. (Строка или число). "*" (1) — Разворачивать по данному субконто. "!" (2) — Отбирать по данному субконто. " " (3) — Не учитывать данное субконто. Значения по умолчанию: "*" (1) — для первого субконто, " " (3) — для остальных субконто. |
<Субконто2> |
… |
<ТипФильтра2> |
… |
Возвращаемое значение:
Число — развернутое сальдо.
Описание:
Функции СНДРС, СНКРС, СКДРС, СККРС предназначены для расчета остатков по счетам, у которых ведется аналитический учет по субконто. Каждая функция из этой группы возвращает остаток как сумму соответствующих остатков (дебетовых или кредитовых) по всем объектам аналитического учета.
Если аналитический учет по счету ведется по двум и более субконто, то для развернутого сальдо параметр <ТипФильтра> устанавливает участие данног вида субконто в получении развернутого сальдо. В зависимости от значения этого параметра данное субконто может участвовать в «развороте» остатка, или накладывать дополнительное ограничение (отбирать) на анализируемые остатки, или никак не влиять на результат функции.
Пример:
* Получим развернутое сальдо дебетовое на начало периода по счету 60, учет ведется по субконто Организации.
СР60 = БухИтоги.СНДРС("60");
* Получим развернутое сальдо дебетовое на начало периода по счету 10 конкретному складу в разрезе материалов, учет ведется по субконто «Материалы» и «Склады».
СР10 = БухИтоги.СНДРС("10", 1, , , "*", ВыбСклад, "!");
СНДРС, СНКРС, СКДРС, СККРС
СНДРС — дебетовое развернутое сальдо на начало периода;
СНКРС — кредитовое развернутое сальдо на начало периода;
СКДРС —дебетовое развернутое сальдо на конец периода;
СККРС —кредитовое развернутое сальдо на конец периода.
Синтаксис:
СНДРС(<ТипСуммы>)
СНКРС(<ТипСуммы>)
СКДРС(<ТипСуммы>}
СККРС(<ТипСуммы>)
Англоязычный синоним:
IDBRS
ICBRS
FDBRS
FCBRS
Параметры:
<ТипСуммы> |
Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений: 1 ("С", "S") — сумма; 2 ("В", "С") — валютная сумма; 3 ("К", "А") — количество. Если параметр не указан, метод возвращает сумму. |
Возвращаемое значение:
Число — рассчитанное сальдо.
Описание:
При работе с итогами, полученными методом ВыполнитьЗапрос функции СНДРС, СНКРС, СКДРС, СККРС позволяют получить развернутое сальдо в контексте текущих группировок запроса.
Пример:
* В данном примере по каждой организации определяется развернутое сальдо по счетам, к которым относится вид субконто "Организации".
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Организации, , 1);
БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);
БухИтоги.ВыбратьСубконто(1);
Пока БухИтоги.ПолучитьСубконто(1) = 1 цикл
ОстНачД = БухИтоги.СНДРС();
ОстНачК = БухИтоги.СНКРС();
ОстКонД = БухИтоги.СКДРС();
ОстКонК = БухИтоги.СККРС();
КонецЦикла;
СнятьПометкуУдаления
Снять пометку удаления элемента справочника.
Синтаксис:
СнятьПометкуУдаления()
Англоязычный синоним:
ClearDeleteMark
Описание:
Метод СнятьПометкуУдаления снимает пометку удаления текущего элемента справочника.
Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.
Пример:
Процедура ВосстановлениеУдаленныхСотр(Сотр)
Спр = СоздатьОбъект("Справочник.Сотрудники");
Если Сотр.Выбран() > 0 Тогда
// позиционируем справочник на заданном элементе
Спр.НайтиЭлемент(Сотр);
Если Спр.Выбран() > 0 Тогда
Если Спр.ПометкаУдаления() = 1 Тогда
// восстанавливаем элемент справочника
Спр.СнятьПометкуУдаления();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
См. также: Удалить, ПометкаУдаления
СнятьПометкуУдаления
Снять пометку удаления документа.
Синтаксис:
СнятьПометкуУдаления()
Англоязычный синоним:
ClearDeleteMark
Описание:
Метод СнятьПометкуУдаления снимает пометку удаления текущего документа.
Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.
Пример:
Процедура Восстановление(Докум)
Док = СоздатьОбъект("Документ");
Если Докум.Выбран() > 0 Тогда
// позиционируем документ на переданном значении
Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда
Если Док.ПометкаУдаления() = 1 Тогда
// восстанавливаем
Спр.СнятьПометкуУдаления();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры _________ _______
См. также: Удалить, ПометкаУдаления
СнятьПометкуУдаления
Снять пометку удаления счета.
Синтаксис:
СнятьПометкуУдаления()
Англоязычный синоним:
ClearDeleteMark
Описание:
Метод СнятьПометкуУдаления снимает пометку удаления текущего счета.
Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.
Пример:
Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сч.СнятьПометкуУдаления();
СнятьПометкуУдаления
Снять пометку удаления операции.
Синтаксис:
СнятьПометкуУдаления()
Англоязычный синоним:
ClearDeleteMark
Описание:
Метод СнятьПометкуУдаления снимает пометку удаления текущей операции.
Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект. Если метод СнятьПометкуУдаления применен к операции принадлежащей документу не специального вида «Операция», то происходит снятие пометки удаления всего документа.
Пример:
Опер = СоздатьОбъект("Операция");
Опер.ВыбратьОперации(ДатаНач, ДатаКон);
Пока Опер.ПолучитьОперацию() = 1 Цикл
Если Опер.ПометкаУдаления() = 1 Тогда
Опер.СнятьПометкуУдаления();
КонецЕсли;
КонецЦикла;
Описание встроенного языка системы 1С Предприятие
Содержание операции.
Синтаксис:
Содержание
Англоязычный синоним:
Description
Значение:
Значение типа «Строка».
Описание:
Атрибут Содержание служит для обращения к содержанию операции. Содержание операции представляет собой произвольную символьную строку. Максимальная длина содержания задается в конфигураторе при редактировании свойств объекта метаданных «Операция».
Пример:
Опер = СоздатьОбъект("Операция");
Опер.НайтиОперацию(ВыбрДокумент);
Сообщить(Опер.Содержание);
СодержитВидРасчета
Определяет, содержит ли группа вид расчета.
Синтаксис:
СодержитВидРасчета(<ВидРасчета>)
Англоязычный синоним:
ContainCalculationKind
Параметры:
<ВидРасчета> |
Вид расчета, входимость которого проверяется. |
Возвращаемое значение:
Число: 1 — если <ВидРасчета> входит в группу; 0 в противном случае.
Описание:
Метод предназначен для определения того, содержит ли группа заданный вид расчета.
Пример:
Входит = ГруппаРасчетов.ОблНалогом.СодержитВидРасчета(ЖР.ВидРасч);
См. также: ВходитВГруппу
Соглашения и обозначения
В синтаксических диаграммах языка запросов используются следующие символы:
Символ |
Значение |
[ ] |
В квадратных скобках заключаются необязательные синтаксические элементы. |
[ ]+ |
В квадратных скобках со знаком "+" заключаются обязательные синтаксические элементы, которые могут использоваться один или более раз. |
[ ]* |
В квадратных скобках со знаком "*" заключаются необязательные синтаксические элементы, которые могут использоваться один или более раз. |
( ) |
Круглые скобки заключают в себе список параметров. |
| |
Вертикальной линией разделяются синтаксические элементы, среди которых нужно выбирать один и только один. |
Соглашения и обозначения, принятые в синтаксических диаграммах
В синтаксических диаграммах используются следующие символы:
Символ |
Значение |
[ ] |
В квадратных скобках заключаются необязательные синтаксические элементы. |
( ) |
Круглые скобки заключают в себе список параметров. |
| |
Вертикальной линией разделяются синтаксические элементы, среди которых нужно выбрать только один. |
СохранениеПериодическихРеквизитов
Установить режим отображения диалога сохранения периодических реквизитов при записи элемента справочника.
Синтаксис:
СохранениеПериодическихРеквизитов(<ВариантВызова>, <Список>)
Англоязычный синоним:
Рег1odicAttributesSaving
Параметры:
<ВариантВызова> |
Число, определяет вариант вызова метода: 0 — отключить автоматический режим определения списка измененных реквизитов и показ диалога (параметр <Список> не используется); 1 — включить автоматический режим определения списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов); 2 — включить автоматический режим определения списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов); 3 — выполнить определение списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов); 4 — выполнить определение списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов); 5 — выдать/установить список сохраняемых периодических реквизитов. Метод возвращает установленный список периодических реквизитов, которые будут записываться на момент до вызова метода. Если параметр <Список> указан, то устанавливается список периодических реквизитов, которые должны быть записаны. |
<Список> |
Необязательный параметр. Строковое выражение, в котором через запятую перечислены имена периодических реквизитов справочника, которые должны выводится в диалоге (если диалог показывается), или по которым будет записан элемент истории (если диалог не показывается). По умолчанию предполагается, что в списке все периодические реквизиты справочника. Если указан символ "*", то считается, что в список включены все периодические реквизиты справочника. |
Описание:
Метод СохранениеПериодическихРеквизитов управляет режимом ав-томатического определения списка измененных периодических реквизитов, показом диалога для выбора записываемых периодических реквизитов, а также предоставляет доступ непосредственно к списку записываемых периодических реквизитов.
Если данный метод опущен, то при записи элемента справочника диалог отображается со всеми периодическими реквизитами.
Замечание. Данный метод доступен только в контексте Модуля формы элемента справочника (см. «Виды программных модулей»). Действие данного метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.
Пример:
// Здесь мы работаем в локальном контексте модуля Формы
// элемента справочника.
// в справочнике есть несколько реквизитов,
// которые являются периодическими реквизитами.
СохранениеПериодическихРеквизитов(1, "ЦенаРозн, ЦенаОптов");
СохранениеПериодическихРеквизитов
Установить режим отображения диалога сохранения периодических реквизитов при записи элемента справочника.
Синтаксис:
СохранениеПериодическихРеквизитов(<ВариантВызова>, <Список>)
Англоязычный синоним:
Рег1odicAttributesSaving
Параметры:
<ВариантВызова> |
Число, определяет вариант вызова метода: 0 — отключить автоматический режим определения списка измененных реквизитов и показ диалога (параметр <Список> не используется); 1 — включить автоматический режим определения списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов); 2 — включить автоматический режим определения списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов); 3 — выполнить определение списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов); 4 — выполнить определение списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов); 5 — выдать/установить список сохраняемых периодических реквизитов. Метод возвращает установленный список периодических реквизитов, которые будут записываться на момент до вызова метода. Если параметр <Список> указан, то устанавливается список периодических реквизитов, которые должны быть записаны. |
<Список> |
Необязательный параметр. Строковое выражение, в котором через запятую перечислены имена периодических реквизитов справочника, которые должны выводится в диалоге (если диалог показывается), или по которым будет записан элемент истории (если диалог не показывается). По умолчанию предполагается, что в списке все периодические реквизиты справочника. Если указан символ "*", то считается, что в список включены все периодические реквизиты справочника. |
Описание:
Метод СохранениеПериодическихРеквизитов управляет режимом автоматического определения списка измененных периодических реквизитов, показом диалога для выбора записываемых периодических реквизитов, а также предоставляет доступ непосредственно к списку записываемых периодических реквизитов.
Если данный метод опущен, то при записи элемента справочника диалог отображается со всеми периодическими реквизитами.
Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.
Пример:
СохранениеПериодическихРеквизитов(1, "ЦенаРозн, ЦенаОптов");
Сохранить
Сохранить в файл.
Синтаксис:
Сохранить(<ИмяФайла>)
Англоязычный синоним:
Save
Параметры:
<ИмяФайла> |
Строковое выражение — имя файла. |
Описание:
Метод Сохранить выгружает картинку в файл с именем <ИмяФайла> в формате загрузки (загрузили в формате bmp — в этом формате и сохраним).
Пример:
Фото.Загрузить("с:\ВМР\Boris.bmp");
Фото.Сохранить("с:\lCv7\DBmy\Boris.bmp");
СохранитьЗначение
Сохранить для пользователя некоторое значение между сеансами.
Синтаксис:
СохранитьЗначение(<Идентификатор>, <3начение>)
Англоязычный синоним:
SaveValue
Параметры:
<Идентификатор> |
Строковое выражение, наименование сохраняемого значения. Данное наименование используется для идентификации сохраняемых значений. |
<3начение> |
Выражение любого типа. Объекты типа «Список-Значений» и «ТаблицаЗначений» использовать можно. |
Описание:
Применять процедуру СохранитьЗначение следует, например, если требуется запомнить некоторые значения до следующего запуска системы.
Например, можно сохранять для данного пользователя значение того склада, с которого он обычно выписывает накладные. При запуске системы в следующий раз данное значение может использоваться как значение склада по умолчанию для данного пользователя.
Пример:
СохранитьЗначение("МойСклад", Склад);
См. также: ВосстановитьЗначение
СокрЛ
Отбросить в строке стоящие слева пробелы.
Синтаксис:
СокрЛ(<Строка>)
Англоязычный синоним:
TrimL
Параметры:
<Строка> |
Строковое выражение. |
Возвращаемое значение:
Строковое значение.
Описание:
Функция СокрЛ получает в качестве параметра строку, отсекает стоящие слева пробелы и возвращает результирующую строку.
Пример:
СтрЦена = СокрЛ(Цена) + " руб.";
СокрЛП
Отбросить в строке пробелы, стоящие слева и справа.
Синтаксис:
СокрЛП(<Строка>)
Англоязычный синоним:
TrimAll
Параметры:
<Строка> |
Строковое выражение. |
Возвращаемое значение:
Строковое значение.
Описание:
Функция СокрЛП получает в качестве параметра строку, отсекает стоящие слева и справа пробелы, и возвращает результирующую строку.
Пример:
ФИО = СокрЛП(Фамилия) + " " + СокрП(Имя) + " " + СокрП(Отчество);
СокрП
Отбросить в строке стоящие справа пробелы.
Синтаксис:
СокрП(<Строка>)
Англоязычный синоним:
TrimR
Параметры:
<Строка> |
Строковое выражение. |
Возвращаемое значение:
Строковое значение.
Описание:
Функция СокрП получает в качестве параметра строку, отсекает стоящие справа пробелы и возвращает результирующую строку.
Пример:
ФИО = СокрП(Фамилия) + " " + СокрП(Имя) + " " + СокрП(Отчество);
Сообщить
Вывести строку в окно сообщений.
Синтаксис:
Сообщить(<Текст_сообщения>, <ИмиджМаркера>)
Англоязычный синоним:
Message
Параметры:
<Текст_сообщения> |
Строковое выражение. |
<ИмиджМаркера> |
Необязательный параметр. Строковое выражение, которое задает тип пиктограммы выводимой перед сообщением. Возможные значения: "I", "!", "!!", "!!!", "." — обычное сообщение, " " — без маркера. |
Описание:
Процедура Сообщить выводит <Текст_сообщения> в окно сообщений. Перед сообщениями можно отображать специальные пиктограммы, которыми можно помечать сообщения различной важности.
Пример:
Сообщить("Доброе утро!", "I");
Сортировать
Отсортировать список по значениям.
Синтаксис:
Сортировать(<Направление>, <ДокументыПоДате>)
Англоязычный синоним:
Sort
Параметры:
<Направление> |
Необязательный параметр. Числовое выражение. Если — 0, то сортировка по возрастанию. Если не 0 то сортировка по убыванию. Значение по умолчанию — 0. |
<ДокументыПоДате> |
Необязательный параметр. Имеет смысл только в том случае, если значениями списка значений являются документы. В этом случае можно задавать сортировку документов по их хронологии. Число: 1 — сортировка по хронологии документов; 0 — нет. Значение по умолчанию — 0. |
Описание:
Метод Сортировать выполняет сортировку списка по значениям. Если первый элемент списка (значение в первой позиции) имеет базовый тип данных (число, строка, дата), то сортировка проводится по значениям элементов, приведенных стандартными правилами к типу первого элемента. В противном случае, если первый элемент имеет агрегатный тип данных, сортировка проводится по значениям элементов, приведенных к строковому представлению типа данных.
Пример:
Спис.Сортировать();
Сортировать
Сортировать таблицу значений по колонкам.
Синтаксис:
Сортировать(<Колонки>, <ДокументыПоДате>)
Англоязычный синоним:
Sort
Параметры:
<Колонки> |
Строковое выражение, которое определяет колонки, порядок и направление сортировки. Формат передаваемой строки — это разделенные запятыми номера или идентификаторы колонок со знаком направления сортировки ("+" по возрастанию, "-" по убыванию, "*" по внутреннему значению). Знак направления сортировки следует указывать до обозначения колонки через пробел или без пробела. По умолчанию направление сортировки принимается по возрастанию. Например: "-Код, +Цена, -8, 5". |
<ДокументыПоДате> |
Необязательный параметр. Имеет смысл только в том случае, если значениями таблицы значений являются документы. В этом случае можно задавать сортировку документов по их хронологии. Число: 1 — сортировка по хронологии документов; 0 — нет. Значение по умолчанию — 0. |
Описание:
Метод Сортировать выполняет сортировку таблицы значений по заданным колонкам, порядку и направлению сортировки.
Пример:
Табл.Сортировать("-Код, +Цена, -8, 5");
СортироватьПоПредставлению
Отсортировать список по представлению.
Синтаксис:
СортироватьПоПредставлению(<Направление>)
Англоязычный синоним:
SortByPresent
Параметры:
<Направление> |
Необязательный параметр. Числовое выражение. Если — 0, то сортировка производится по возрастанию. Если отлично от 0, то сортировка по убыванию. |
Описание:
Метод СортироватьПоПредставлению выполняет сортировку списка по символьному представлению в соответствии с порядком, заданным параметром <Направление>.
Пример:
Спис.СортироватьПоПредставлению();
СортироватьСтроки
Сортировать многострочную часть документа по реквизитам.
Синтаксис:
СортироватьСтроки(<Колонки>)
Англоязычный синоним:
SortLines
Параметры:
<Колонки> |
Перечисленные через запятую реквизиты многострочной части документа, по которым следует сортировать. Знаки "+", "-", предшествующие названию реквизита указывают направление сортировки по реквизиту. Знак "*" — сортировать по внутреннему значению реквизита. |
Описание:
Метод СортироватьСтроки позволяет сортировать многострочную часть документа по реквизитам.
Пример:
Док = СоздатьОбъект("Документ.Приказы");
Если Док.Выбрать("Найди документ") > 0 Тогда
Док.СортироватьСтроки("+Сумма, -НДС");
Док.Записать ();
КонецЕсли;
Сортировка
Установить способ сортировки элементов справочника.
Синтаксис:
Сортировка(<Способ>, <Разрешение>)
Англоязычный синоним:
SortOrder
Параметры:
<Способ> |
Строка с именем устанавливаемой сортировки. Это может быть (в зависимости от языка по умолчанию) "Код\Code", "Наименование\Description" или имя реквизита по которому устанавливается сортировка. |
<Разрешение> |
Необязательный параметр. Флаг разрешения пользователю менять способ сортировки: 1 — разрешить; 0 — запретить. |
Возвращаемое значение:
Возвращает текущее значение установленного на данный момент способа сортировки элементов справочника (до применения метода).
Описание:
Метод Сортировка позволяет установить способ сортировки элементов справочника.
Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»).
Пример:
// установить сортировку по наименовнаию и запретить ее менять
Сортировка("Наименование", 0);
// получить текущее значение сортировки и установить сортировку по
// реквизиту "Оклад"
СтСорт = Сортировка("Оклад");
Состояние
Вывести сообщение в строку состояния.
Синтаксис:
Состояние(Текст_сообщения)
Англоязычный синоним:
Status
Параметры:
<Текст_сообщения> |
Строковое выражение. |
Описание:
Процедура Состояние выводит строку текста в строку состояния (статус-бар). Текст определяется параметром <Текст_сообщения>.
Пример:
Состояние("Доброе утро!")
Создание базы данных, индекса, индексного файла
Помимо работы с существующими базами данных, агрегатный тип XBase имеет набор методов, позволяющих создать новую базу данных произвольной структуры, новые индексы и новый индексный файл. Следует отметить, что, если использование методов, изменяющих структуру БД, возможно только для объектов, не связанных с базой данных (т. е. для вновь создаваемых БД), то создание новых индексов и индексного файла возможно как для создаваемых БД, так и для уже существующих и открытых.
СоздатьФайл
Создать новый файл базы данных.
Синтаксис:
СоздатьФайл(<ПутьКБазе>, <ПутьКИндексу>)
Англоязычный синоним:
CreateFile
Параметры:
<ПутьКБазе> |
Строковое выражение, содержащее путь к файлу базы данных формата DBF. |
<ПутьКИндексу> |
Необязательный параметр. Строковое выражение, содержащее путь к индексному файлу базы данных. |
Описание:
Метод СоздатьФайл создает новый файл базы данных формата DBF. Если база с таким именем существует, то выдается ошибка.
Пример:
ДБФ = СоздатьОбъект("XBase");
// Определение полей и индексов новой БД
.....................
.....................
// Теперь физически создаем базу
ДБФ.СоздатьФайл("mydb.dbf", "mydb.cdx");
См. также: ДобавитьПоле, ДобавитьИндекс
СоздатьИндексныйФайл
Создать индексный файл.
Синтаксис:
СоздатьИндексныйФайл(<ИмяФайла>)
Англоязычный синоним:
CreateIndex
Параметры:
<ИмяФайла> |
Строковое выражение — имя индексного файла. |
Описание:
Метод СоздатьИндексныйФайл создает индексный файл. Создаваемый индексный файл будет содержать все индексы, которые были созданы на текущий момент методом ДобавитьИндекс.
Пример:
ДБФ.ДобавитьИндексСЧОХСОПЕ" , "CODE" , 1, 0, "" );
ДБФ.ДобавитьИндекс("IDXROOM", "ROOM+FIO", 0, 0, "");
ДБФ.СоздатьИндексныйФайл("IDXCNEW.CDX");
См. также: СоздатьФайл, ДобавитьИндекс, ОткрытьФайл
СоздатьКаталог
Создает новый каталог файлов.
Синтаксис:
СоздатьКаталог(<ИмяКат>)
Англоязычный синоним:
CreateDirectory
Параметры:
<ИмяКат> |
Строковое выражение с именем создаваемого каталога. |
Описание:
Метод СоздатьКаталог создает новый каталог файлов.
Пример:
* В данном примере приведена процедура создания нового каталога файлов.
Процедура СоздДир()
ФС.СоздатьКаталог(ИмяВыбрДир);
КонецПроцедуры
СоздатьОбъект
Создает объект агрегатного типа данных и возвращает ссылку на него.
Синтаксис:
СоздатъО6ъект(<ИмяАгрегатногоТипа>)
Англоязычный синоним:
CreateObject
Параметры:
<ИмяАгрегатногоТипа> |
Строковое выражение, значение которого содержит имя агрегатного типа данных, объявленного в конфигураторе. |
Возвращаемое значение:
Ссылка на созданный объект агрегатного типа данных.
Описание:
Функция СоздатьОбъект создает объект агрегатного типа данных и возвращает ссылку на него. Данная функция обычно используется одновременно с неявным определением переменной и присвоением ей ссылки на объект агрегатного типа данных.
Замечание. Объекты, такие как документ и справочник, созданные при помощи функции СоздатьОбъект, изначально не определены, т. е. не содержат никакого значения. Чтобы начать с ними работать, их предварительно надо позиционировать (установить на конкретный документ или элемент справочника). Для документов позиционирование выполняется при помощи методов НайтиДокумент, НайтиПоНомеру, ПолучитьДокумент. Для справочников позиционирование выполняется при помощи методов НайтиЭлемент, НайтиПоКоду, ПолучитьЭлемент.
Пример:
Спр = СоздатьОбъект("Справочник.Сотрудники");
Спр.НайтиПоКоду("029");
Специальные символы, используемые в исходном тексте
// |
Двумя знаками «косая черта» начинается комментарий. Комментарием считается весь текст от знака "//" до конца текущей строки. |
| |
Вертикальная черта в начале строки используется только в строковых константах и означает, что данная строка является продолжением предыдущей (перенос строки), (см. «Строковые константы»). |
~ |
Знаком тильда начинается метка оператора. |
: |
Двоеточием заканчивается метка оператора. |
; |
Точка с запятой является символом разделения операторов. |
( ) |
В круглые скобки заключается список параметров методов, процедур и функций. |
[ ] |
В квадратные скобки заключается размерность массивов. |
, |
Запятая разделяет параметры в списке параметров методов, процедур и функций. |
" " |
В двойные кавычки заключаются строковые константы. |
' ' |
В одинарные кавычки заключаются константы даты. |
. |
Десятичная точка в числовых константах. Разделитель, используемый в описаниях агрегатных типов данных. |
+ |
Символ «плюс» обозначает операцию сложения. |
- |
Символ «минус» обозначает операцию вычитания. |
* |
Символ «звездочка» обозначает операцию умножения. |
/ |
Символ «косая черта» обозначает операцию деления. |
> |
Правая угловая скобка обозначает логическую операцию «больше». |
>= |
Логическая операция «больше или равно». |
< |
Левая угловая скобка обозначает логическую операцию «меньше». |
<= |
Логическая операция «меньше или равно». |
= |
Знак равенства обозначает присвоение или логическую операцию «равно». |
<> |
Две угловые скобки обозначают логическую операцию «не равно». |
Способы оптимизации формирования отчетов
Процесс получения отчетов с использованием запросов можно условно разделить на две фазы: сначала формируется запрос, затем полученные данные выводятся в Таблицу. В данном разделе речь пойдет о второй фазе получения отчета — выводе данных в Таблицу.
Рассмотрим следующий пример. Допустим, требуется вывести в отчет полный перечень товаров со всеми их реквизитами. Для этого сначала формируется запрос с одной Группировкой — "Товар", затем полученные данные выводятся в Таблицу. Ниже приведены три варианта вывода данных в Таблицу.
Вариант 1
В программном модуле текст вывода данных в Таблицу следующий
Пока Запрос.Группировка("Товар") = 1 Цикл
Таб.ВывестиСекцию("Товар");
КонецЦикла;
Секция "Товар" в Таблице имеет следующий формат:
<Запрос.Товар.Наименование> |
<Запрос.Товар.Артикул> |
<Запрос.Товар.Цена> |
<Запрос.Товар.Валюта> |
В первом варианте отображаемые реквизиты товара полностью вычисляются в ячейках Таблицы, причем доступ к каждому реквизиту товара происходит по полному пути: Запрос-Товар-Реквизит. Данный вариант вывода данных в Таблицу самый медленный.
Вариант 2
В программном модуле текст вывода данных в Таблицу следующий
Пока Запрос.Группировка("Товар") = 1 Цикл
ПечНаим = Запрос.Товар.Наименование;
ПечАртикул = Запрос.Товар.Артикул;
ПечЦена = Запрос.Товар.Цена;
ПечВалюта = Запрос.Товар.Валюта;
Таб.ВывестиСекцию("Товар1");
КонецЦикла;
Секция "Товар1" в Таблице имеет следующий формат:
<ПечНаим> |
<ПечАртикул> |
<ПсчЦена> |
<ПечВалюта> |
Во втором варианте отображаемые реквизиты товара вычисляются в программном модуле, а в ячейках Таблицы размещены простые выражения — ссылки на идентификаторы программного модуля. Доступ к каждому реквизиту товара происходит по полному пути: Запрос-Товар-Реквизит. В данном варианте фаза вывода данных в Таблицу работает быстрее первого варианта (выигрыш ~20%), т. к. в программном модуле выражения вычисляются существенно быстрее, чем выражения, помещенные в ячейках Таблицы (программный модуль при загрузке компилируется, а выражения в ячейках таблицы интерпретируются каждый раз при выводе секций).
Вариант 3
В программном модуле текст вывода данных в Таблицу следующий
Пока Запрос.Группировка("Товар") = 1 Цикл
Тов = Запрос.Товар;
ПечНаим = Тов.Наименование;
ПечАртикул = Тов.Артикул;
ПечЦена = Тов.Цена;
ПечВалюта = Тов.Валюта;
Таб.ВывестиСекцию("Товар1");
КонецЦикла;
Секция "Товар1" в Таблице имеет следующий формат:
<ПечНаим> |
<ПечАртикул> |
<ПсчЦена> |
<ПечВалюта> |
Кратко суть этого раздела можно выразить так: при реализации больших отчетов, которые рассчитаны на отображение более сотни строк, следует придерживаться следующих правил:
не размещайте сложных выражений в ячейках Таблицы. Лучше вычислить необходимые значения непосредственно в программном модуле;
если необходимо получить несколько реквизитов одного объекта, который сам является составной частью другого объекта, то следует воспользоваться промежуточной переменной, в которую сначала можно записать значение всего объекта «целиком», а затем уже от нее получать требуемые данные.
Сравнить
Сравнить ГП с датой, документом или позицией.
Синтаксис:
Сравнить(<Докум>)
Англоязычный синоним:
Compare
Параметры:
<Докум> |
Выражение типа «дата», «документ» или «позиция документа», с которым сравнивается ГП. |
Возвращаемое значение:
Число: -1 (минус единица), если ГП меньше (раньше); 0 если равны; 1 если ГП больше (позже).
Описание:
Метод Сравнить сравнивает ГП с датой, документом или позицией документа.
Пример:
Если Последовательность.УправленческийУчет.Сравнить(Док) = 1 Тогда
Последовательность.УправленческийУчет.Установить(Док);
КонецЕсли;
СравнитьТА
Сравнить дату и время документа с Точкой актуальности итогов.
Синтаксис:
СравнитьТА()
Англоязычный синоним:
CompareWithAP
Возвращаемое значение:
Числовое значение:
1(плюс единица) — если дата и время документа больше даты и времени Точки актуальности итогов.
0 — если дата и время документа равно дате и времени Точки актуальности итогов.
-1 (минус единица) — если дата и время документа меньше даты и времени Точки актуальности итогов.
-2 (минус два) в случае, если новый документ, который сравнивается с ТА, еще не записан, то есть он еще не имеет никакой позиции на оси времени.
Описание:
Метод СравнитьТА сверяет дату и время документа с датой и временем Точки актуальности итогов, позволяя определить положение на оси времени момента записи документа по отношению к текущиму положению ТА.
Пример:
Процедура ОбработкаПроведения()
Если СравнитьТА() > 0 Тогда
// если документ после ТА, вызываем процедуру
ПроводкаДокументаБудущимЧислом();
ИначеЕсли СравнитьТА() < 0 Тогда
// если документ до ТА, вызываем процедуру
ПроводкаДокументаЗаднимЧислом();
Иначе
// если документ в ТА, вызываем процедуру
ПроводкаДокумента();
КонецЕсли;
КонецПроцедуры
Сред
Выбрать подстроку.
Синтаксис:
Сред(<Строка>, <Число1>, <Число2>)
Англоязычный синоним:
Mid
Параметры:
<Строка> |
Строковое выражение. |
<Число1> |
Числовое выражение, начальный номер символа. |
<Число2> |
Числовое выражение, количество символов. |
Возвращаемое значение:
Строковое значение.
Описание:
Функция Сред возвращает подстроку параметра <Строка>, начиная с символа с номером <Число1> общим количеством <Число2>. Позиции в строке считаются, начиная с 1. Параметр <Число2> может быть опущен, тогда выделяются все символы начиная с символа с номером <Число1> до конца строки.
Пример:
Имя = Сред(ФИО, 10, 12);
СтатусВозврата
Установить/определить статуса возврата предопределенной процедуры.
Синтаксис:
СтатусВозврата([<Статус>])
Англоязычный синоним:
ReturnStatus
Параметры:
<Статус> |
Необязательный параметр. Числовое выражение. Если задано значение 1, то устанавливается статус возврата — Выполнить Действие. Если задано значение 0, то устанавливается статус возврата — Отменить Действие. Если параметр опущен, то статус возврата предопределенной процедуры не меняется. |
Возвращаемое значение:
Число 1 — если статус возврата — Выполнить Действие;
Число 0 — если статус возврата — Отменить Действие.
Описание:
Применять функцию СтатусВозврата имеет смысл только в теле предопределенных процедур. При помощи функции СтатусВозврата можно установить или прочитать текущее значение статуса возврата конкретной предопределенной процедуры, где была вызвана данная функция.
Значение статуса возврата предопределенной процедуры используется системой при завершении отработки любой предопределенной процедуры, чтобы определить, выполнять ли системно событие, которое вызвало данную предопределенную процедуру.
Замечание: Начальное значение статуса возврата предопределенной процедуры равно 1 (Выполнить Действие), которое устанавливается системой при вызове предопределенной процедуры.
В тексте программного модуля возможно использование данного оператора как процедуры или как функции. При использовании в качестве функции, возвращаемое значение соответствует текущему статусу возврата предопределенной процедуры, которое было до вызова данной функции. В данном случае параметр <Статус> можно опускать.
Если параметр <Статус> задан явно, то после выполнения данной функции статус возврата установится в заданное значение. Пример:
* Если в предопределенной процедуре ПриЗаписи установить статус возврата — 0 (например, если неверно заполнены реквизиты), то документ не будет записываться.
Процедура ПриЗаписи()
Если Клиент.Выбран() = 0 Тогда
Предупреждение("Запись отменена! Не задан клиент!");
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
* Если в предопределенной процедуре ВводНаОсновании установить статус возврата — 0, то ввод нового документа будет отменен и форма нового документа не откроется.
Процедура ВводНаОсновании(ДокОснование)
Автор = Пользователь;
ДокВид = ДокОснование.Вид();
Если (ДокВид = "Счет") ИЛИ (ДокВид = "Счет_фактура")
ИЛИ (ДокВид = "РасходнаяКредит") ИЛИ (ДокВид = РасходнаяРеализ") Тогда
Автор = Пользователь;
ДокВид = ДокОснование.Вид();
Фирма = ДокОснование.Фирма;
Клиент = ДокОснование.Клиент;
Основание = ДокВид + " № " + ДокОснование.НомерДок;
Сумма = ДокОснование.Итог("Сумма");
НДС = ДокОснование.Итог("НДС");
Иначе
Предупреждение("Недопустимый вид документа основания!");
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
См. также: «Системные предопределенные процедуры»
Сторно
Признак сторнирующей записи.
Синтаксис:
Сторно
Англоязычный синоним:
Storno
Описание:
Атрибут типа «число», принимает два значения: 1 — для сторнирующих записей журнала расчетов и 0 — для обычных записей. Признак «сторно» равен 1 не только для простых сторно-записей, но и для рассчитанных, отредактированных вручную или зафиксированных (не подлежащих редактированию) сторно-записей.
Сторнирующие записи могут появляться в журнале расчетов в результате выполнения методов ВвестиРасчет, ЗаписатьРасчет и им подобных, если при этом затрагиваются один или несколько прошлых расчетных периодов и вводимый вид расчета является «вытесняющим». При этом система автоматически вводит необходимые сторнирующие записи. Для таких записей (введенных системным образом) признак сторнирования не может быть переопределен.
Если сторнирующая запись введена программным образом, т. е. атрибут Сторно задан за счет применения метода УстановитьРеквизит или непосредственным присвоением:
ЖрнРасчета = СоздатьОбъект("ЖурналРасчета.Зарплата");
ЖрнРасчета.Сторно = 1;
тогда он может быть переопределен программным образом.
Пример:
*
Процедура ПровестиРасчет()
// календарь
Календ = Объект.Категория.Получить(ДатаОкончания).Календарь;
// размер оклада
Оклад = Объект.Оклад.Получить(ДатаОкончания);
Дней = Календ.Дней(ДатаНачала, ДатаОкончания);
ВсегоДней = Календ.Дней(НачалоПериодаПоДате(ДатаНачала),
КонецПериодаПоДате(ДатаНачала));
Если ВсегоДней > 0 Тогда
Результат = Окр(Оклад * Дней / ВсегоДней);
// если запись-сторно — поставим отрицательные дни!
Дни = ?(Сторно = 1, -Дней, Дней);
Иначе
Результат = 0;
Дни = 0;
Сообщить("Неправильный календарь!");
КонецЕсли;
КонецПроцедуры
*
// вводим сторнирующие рассчитанные записи
ВР = ВидРасчета.ДоплатаКОкладу;
ЖрнЗарплата.УстановитьРеквизит("Сторно", 1);
ЖрнЗарплата.УстановитьРеквизит("Рассчитана", 1);
ЖрнЗарплата.ВвестиРасчет(Сотрудник, ВР, , , Сумма * Процент);
См. также: УстановитьРеквизит, ВвестиРасчет, ЗаписатьРасчет, Рассчитана
СтрЧислоВхождений
Вычислить число вхождений подстроки.
Синтаксис:
СтрЧислоВхождений(<СтрИсточник>, <СтрПодстрока>)
Англоязычный синоним:
StrCountOccur
Параметры:
<СтрИсточник> |
Строковое выражение места поиска. |
<СтрПодстрока> |
Строковое выражение шаблона поиска. |
Возвращаемое значение:
Число вхождений.
Описание:
Функция СтрЧислоВхождений вычисляет число вхождений строки <СтрПодстрока> как подстроки в <СтрИсточник>.
Пример:
Результат = СтрЧислоВхождений(СтрИсточник, СтрПодстрока);
СтрДлина
Получить длину строки.
Синтаксис:
СтрДлина(<Строка>)
Англоязычный синоним:
StrLen
Параметры:
<Строка> |
Строковое выражение. |
Возвращаемое значение:
Числовое значение длины строки.
Описание:
Функция СтрДлина получает в качестве параметра строку и возвращает числовое значение ее длины.
Пример:
Длина = СтрДлина("Измерим длину строки");