Описание встроенного языка системы 1С Предприятие

         

Синтаксическая диаграмма описания элемента языка


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



Системные процедуры работы с регистрами


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



Скопировать


Скопировать текущую запись.

Синтаксис:

Скопировать()

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

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" в Таблице имеет следующий формат:

<ПечНаим>

<ПечАртикул>

<ПсчЦена>

<ПечВалюта>

В третьем варианте отображаемые реквизиты товара вычисляются в про­граммном модуле, а в ячейках Таблицы размещены простые выражения — ссылки на идентификаторы программного модуля. Доступ к каждому реквизи­ту товара происходит по сокращенному пути — через промежуточную перемен­ную: Товар — Реквизит. В данном варианте фаза вывода данных в Таблицу работает быстрее, чем во втором варианте (выигрыш ~20%) и существено бы­стрее, чем в первом варианте (выигрыш ~40%), т. к. вычисление значений рек­визитов объектов через «одну точку» выполняется быстрее, чем через «две (и более) точки».

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

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

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






Сравнить


Сравнить ГП с датой, документом или позицией.

Синтаксис:

Сравнить(<Докум>)

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

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

Параметры:

<Строка>

Строковое выражение.

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

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

Описание:

Функция СтрДлина получает в качестве параметра строку и возвращает чи­словое значение ее длины.

Пример:

Длина = СтрДлина("Измерим длину строки");