Иллюстрированный самоучитель по языку системы 1С:Предприятие

Атрибуты журнала расчетов

Сторно

Признак сторнирующей записи.

Синтаксис:

Сторно

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

Storno

Описание:

Атрибут типа "число", принимает два значения: 1 – для сторнирующих записей журнала расчетов и 0 – для обычных записей. Признак "сторно" равен 1 не только для простых сторно-записей, но и для рассчитанных, отредактированных вручную или зафиксированных (не подлежащих редактированию) сторно-записей.

Сторнирующие записи могут появляться в журнале расчетов в результате выполнения методов ВвестиРасчет, ЗаписатьРасчет и им подобных, если при этом затрагиваются один или несколько прошлых расчетных периодов и вводимый вид расчета является "вытесняющим". При этом система автоматически вводит необходимые сторнирующие записи. Для таких записей (введенных системным образом) признак сторнирования не может быть переопределен.

Если сторнирующая запись введена программным образом, т. е. атрибут Сторно задан за счет применения метода УстановитьРеквизит или непосредственным присвоением:

ЖрнРасчета = СоздатьОбъект("ЖурналРасчета.Зарплата");

ЖрнРасчета.Сторно = 1;

…тогда он может быть переопределен программным образом.

Пример:

<strong>*</strong>

Процедура ПровестиРасчет()

// календарь

Календ = Объект.Категория.Получить(ДатаОкончания).Календарь;

// размер оклада

Оклад = Объект.Оклад.Получить(ДатаОкончания);

Дней = Календ.Дней(ДатаНачала, ДатаОкончания);

ВсегоДней = Календ.Дней(НачалоПериодаПоДате(ДатаНачала),

КонецПериодаПоДате(ДатаНачала));

Если ВсегоДней > 0 Тогда

Результат = Окр(Оклад * Дней / ВсегоДней);

// если запись-сторно — поставим отрицательные дни!

Дни = ?(Сторно = 1, -Дней, Дней);

Иначе

Результат = 0;

Дни = 0;

Сообщить("Неправильный календарь!");

КонецЕсли;

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

*

// вводим сторнирующие рассчитанные записи

ВР = ВидРасчета.ДоплатаКОкладу;

ЖрнЗарплата.УстановитьРеквизит("Сторно", 1);

ЖрнЗарплата.УстановитьРеквизит("Рассчитана", 1);

ЖрнЗарплата.ВвестиРасчет(Сотрудник, ВР, , , Сумма * Процент);

См. также: УстановитьРеквизит, ВвестиРасчет, ЗаписатьРасчет, Рассчитана.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.