О |
ткроем конфигуратор и создадим новый объект конфигурации Регистр бухгалтерии. Зададим его имя _ «Управленческий». Укажем, что с ним будет связан план счетов «Основной». Установим флаг «Корреспонденция». Этот флаг будет говорить о том, что создаваемый нами регистр поддерживает корреспонденции. Это означает, что каждая запись регистра имеет дебетовую и кредитовую часть, что позволит нам получать информацию не только об остатках и оборотах по счетам, но и о корреспонденциях между счетами.
Регистры, не поддерживающие корреспонденцию, используются тогда, когда не нужно использовать принцип двойной записи, регламентированный в бухгалтерском учете, и, соответственно, контролировать баланс хозяйственных средств и их источников.
Теперь перейдем на закладку «Данные» и создадим два ресурса:
• «Сумма», длина 15, точность 2, балансовый,
• «Количество», длина 15, точность 3, небалансовый, признак
учета - количественный, признак учета субконто -
количественный.
На этом создание нашего регистра бухгалтерии завершено. Теперь откроем окна редактирования документов «ПриходнаяНакладная» и «ОказаниеУслуги» и отметим, что эти документы будут создавать движения и по регистру бухгалтерии «Управленческий» (закладка «Движения»).
Запустим 1С:Предприятие в режиме отладки и откроем регистр бухгалтерии «Управленческий». Как видите, платформа (при создании структуры хранения данных) добавила к созданным нами реквизитам регистра еще ряд полей, которые явились следствием использования плана счетов «Основной». Прежде всего, это поля «СчетДт», «СубконтоДт1», «СчетКт» и «СубконтоКт1>. Кроме этого, если прокрутить окно вправо до конца, то вы обнаружите две колонки «Количество». Это «КоличествоДт» и «КоличествоКт». Для измерений и ресурсов регистра, связанных с признаками учета, платформа создает пару полей для хранения значения ресурса отдельно по дебету и отдельно по кредиту проводки.
Использование регистра бухгалтерии
Н |
астало время познакомиться с тем, каким образом используется созданный нами регистр бухгалтерии «Управленческий». В этой главе мы, сначала, доработаем оба наши документа - «ПриходнаяНакладная» и «ОказаниеУслуги» - так, чтобы они «поставляли» данные не только для регистров накопления, но и для регистра бухгалтерии. Затем мы создадим бухгалтерский отчет «Оборотно-сальдовая ведомость», который будет показывать нам состояние товародвижения в нашем OOO «На все руки мастер», основываясь на данных регистра бухгалтерии.
Создание движений документа ПриходнаяНакладная
Н |
ачнем с простого: доработаем движения документа «ПриходнаяНакладная». Для этого нам достаточно будет воспользоваться конструктором движений документа и заменить старые движения документа на новые, по трем регистрам.
Откроем конфигуратор. В окне редактирования объекта конфигурации Документ «ПриходнаяНакладная», на закладке «Движения» запустим конструктор движений документа.
В список регистров добавим регистр
«РегистрБухгалтерии. Управленческий». В качестве источника данных
выберем табличную часть документа «ПриходнаяНакладная» -
«Материалы». Счет дебета установим равным
«ПланыСчетов. Основной. Товары» (41), а счет кредита -«ПланыСчетов. Основной. РасчетыСПоставщиками» (60).

302
303
Использование основных объектов конфигурации
Бухгалтерский учет
![]()





Нажмем кнопку «Заполнить выражения». У вас должен получиться следующий результат:

Нажмем «ОК» и посмотрим, какой текст платформа добавила в обработчик проведения документа «ПриходнаяНакладная»:
Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, // внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// регистр ОстаткиМатериалов Приход
Движение = Движения. ОстаткиМатериалов. Добавить();
Движение. ВидДвижения = ВидДвиженияНакопления. Приход;
Движение. Период = Дата;
Движение. Материал = ТекСтрокаМатериалы. Материал;
Движение. Склад = Склад;
Движение. Количество = ТекСтрокаМатериалы. Количество; КонецЦикла; Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// регистр СтоимостьМатериалов Приход
Движение = Движения. СтоимостьМатериалов. Добавить();
Движение. ВидДвижения = ВидДвиженияНакопления. Приход;
Движение. Период = Дата;
Движение. Материал = ТекСтрокаМатериалы. Материал;
Движение. Стоимость = ТекСтрокаМатериалы. Сумма; КонецЦикла; Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// регистр Управленческий
Движение = Движения. Управленческий. Добавить();
Двюкение. СчетДт = ПланыСчетов. Основной. Товары;
Движение. СчетКт = ПланыСчетов. Основной. РасчетыСПоставшиками;
Движение. Период = Дата;
Движение. Сумма = ТекСтрокаМатериалы. Сумма;
Движение. Количество = ТекСтрокаМатериалы. Количество;
Движение. СубконтоДт[ПланыВидовХарактеристик. ВидыСубконто. Материалы] =
ТекСтрокаМатериалы. Материал; КонецЦикла;
// записываем движения регистров Движения. ОстаткиМатериалов. Записать(); Движения. СтоимостьМатериалов. Записать(); Движения. Управленческий. Записать(); //}}_КОНСТРУКТОРЛВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры
Платформа сформировала уже знакомые нам три цикла обхода табличной части документа (для каждого регистра свой цикл). В первых двух циклах для нас нет ничего нового. В последнем, по большому счету, тоже - движения формируются таким же образом, как и для регистра накопления. Интерес для нас представляет только последняя строчка цикла, в которой присваивается значение субконто дебета.
Дело в том, что количество субконто как по дебету, так и по кредиту у каждой записи движения регистра будет различное, в зависимости от того, как определены счета в используемом плане счетов. Поэтому для каждой записи движения регистра бухгалтерии платформа хранит две коллекции значений: коллекцию субконто дебета и коллекцию субконто кредита. Каждая из этих коллекций содержит ровно столько элементов, сколько указано использовать видов субконто для соответствующего счета (дебета или кредита) в плане счетов. Обратиться к элементу коллекции можно, указав в квадратных скобках ссылку на соответствующий вид характеристик, либо указав через точку имя предопределенного вида характеристик.


304
305
Использование основных объектов конфигурации
Бухгалтерский учет



![]()
Другими словами, запись:
Движение. СубконтоДт[ПланыВидовХарактеристик. ВидыСубконто. Материалы]
равносильна записи:
Движение. СубконтоДт. Материалы.
Добавление движений по регистру бухгалтерии Управленческий в документ ОказаниеУслуги
Д |
ля того чтобы добавить движения по регистру Управленческий в документ «ОказаниеУслуги», нам уже не удастся воспользоваться конструктором движений. Если вы помните, движения этого документа мы создавали самостоятельно, без использования конструктора.
В отличие от документа «ПриходнаяНакладная», который создавал всего одну бухгалтерскую проводку, документ «ОказаниеУслуги» будет создавать уже две проводки:
![]() |
![]() |
|
Запустим 1С:Предприятие в режиме отладки, откроем документ ПриходнаяНакладная №1 и перепроведем его.
Посмотрим, какие движения сформировал документ в регистре бухгалтерии Управленческий:

Обратите внимание, что, поскольку, на счете 60 («РасчетыСПоставщиками») отсутствует аналитика и ведется только суммовой учет, в записях движений регистра «СубконтоКт1», «СубконтоКт2» и «КоличествоКт» не указаны.
После этого перепроведем документ ПриходнаяНакладная №2 и посмотрим, какие движения сформирует он.
Теперь перейдем к более сложной задаче - добавлению движений по регистру «Управленческий» в документ «ОказаниеУслуги».
Напомним, что бухгалтерия нашего OOO «На все руки мастер» не совсем похожа на «настоящую» бухгалтерию, потому что для облегчения своей работы она учитывает только движения материалов. Услуги, которые оказывает 000, для нее как бы не существуют. Поэтому документ «ОказаниеУслуги» должен формировать движения по регистру бухгалтерии только в той части, которая касается расходования материалов.
Откроем в конфигураторе модуль объекта конфигурации Документ «ОказаниеУслуги» и найдем в нем процедуру обработки проведения. Она должна иметь следующий вид:
Процедура ОбработкаПроведения(Отказ, Режим) Запрос = Новый Запрос; Если Режим = РежимПроведенияДокумента. Оперативный Тогда
Запрос. Текст =
"ВЫБРАТЬ
| ОказаниеУслугиПереченьНоменклатуры. Номенклатура,
| ОказаниеУслугиПереченьНоменклатуры. Количество,
| ОказаниеУслугиПереченьНоменклатуры. Номенклатура. ВидНоменклатуры
| КАК ВидНоменклатуры,
| ОказаниеУслугиПереченьНоменклатуры.Сумма,

306
307
Использование основных объектов конфигурации
Бухгалтерский учет







| ОстаткиМатериаловОстатки. КоличествоОстаток,
| СтоимостьМатериаловОстатки. СтоимостьОстаток,
| ОстаткиМатериаловОстаткиНаСкладе. КоличествоОстаток
| КАК КоличествоОстатокНаСкладе
|ИЗ
| Документ. ОказаниеУслуги. ПереченьНоменклатуры
| КАК ОказаниеУслугиПереченьНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления. СтоимостьМатериалов. Остатки(
| &МоментВремени,
| Материал В (&СписокНоменклатурыДокумента))
| КАК СтоимостьМатериаловОстатки
| ПО ОказаниеУслугиПереченьНоменклатуры. Номенклатура =
| СтоимостьМатериаловОстатки. Материал
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления. ОстаткиМатериалов. Остатки(
| &МоментВремени,
| Материал В (&СписокНоменклатурыДокумента))
|КАК ОстаткиМатериаловОстатки
| ПО ОказаниеУслугиПереченьНоменклатуры. Номенклатура =
| ОстаткиМатериаповОстатки. Материал
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления. ОстаткиМатериалов. Остатки(
| &МоментВремени,
| Материал В (&СписокНоменклатурыДокумента) И
| Склад = &СкладВДокументе)
| КАК ОстаткиМатериаловОстаткиНаСкладе
| ПО ОказаниеУслугиПереченьНоменклатуры. Номенклатура =
| ОстаткиМатериаловОстаткиНаСкладе. Материал
|ГДЕ
| ОказаниеУслугиПереченьНоменклатуры. Ссылка = &Ссылка
|ДЛЯ ИЗМЕНЕНИЯ
| РегистрНакопления. ОстаткиМатериалов. Остатки, | РегистрНакопления. СтоимостьМатериалов. Остатки"; Иначе
Запрос. Текст = "ВЫБРАТЬ
| ОказаниеУслугиПереченьНоменклатуры. Номенклатура, | ОказаниеУслугиПереченьНоменклатуры. Количество, | ОказаниеУслугиПереченьНоменклатуры. Номенклатура. ВидНоменклатуры | КАК ВидНоменклатуры, | ОказаниеУслугиПереченьНоменклатуры. Сумма, | ОстаткиМатериаловОстатки. КоличествоОстаток, | СтоимостьМатериаловОстатки. СтоимостьОстаток |ИЗ
| Документ. ОказаниеУслуги. ПереченьНоменклатуры | КАК ОказаниеУслугиПереченьНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления. СтоимостьМатериалов. Остатки(
| &МоментВремени,
|_______________________________ Материал В (&СпиеокНоменклатурыДокумента)
| КАК СтоимостьМатериаловОстатки
| ПО ОказаниеУслугиПереченьНоменклатуры. Номенклатура =
| СтоимостьМатериаловОстатки. Материал
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления. ОстаткиМатериалов. Остатки(
| &МоментВремени,
| Материал В (&СписокНоменклатурыДокумента))
| КАК ОстаткиМатериаловОстатки
| ПО ОказаниеУслугиПереченьНоменклатуры. Номенклатура =
| ОстаткиМатериаловОстатки. Материал
|ГДЕ
| ОказаниеУслугиПереченьНоменклатуры. Ссылка = &Ссылка
|ДЛЯ ИЗМЕНЕНИЯ
| РегистрНакопления. ОстаткиМатериалов. Остатки, | РегистрНакопления. СтоимостьМатериалов. Остатки"; КонецЕсли;
Запрос. УстановитьПараметрС'МоментВремени", МоментВремени()); Запрос. УстановитьПараметрС'СписокНоменклатурыДокумента",
ПереченьНоменклатуры. ВыгрузитьКолонкуС'Номенклатура")); Запрос. УстановитьПараметр{"Ссылка",Ссылка);
ВыборкаРезультатаЗапроса = Запрос. Выполнить().Выбрать(); Пока ВыборкаРезультатаЗапроса. Следующий() Цикл
/ЯТроверить остаток при оперативном проведении Если Режим = РежимПроведенияДокумента. Оперативный Тогда Если ВыборкаРезультатаЗапроса. ВидНоменклатуры =
Перечисления. ВидыНоменклатуры. МатериалТогда Остаток = ?(ВыборкаРезультатаЗапроса. КоличествоОстатокНаСкладе = Null,
0,ВыборкаРезультатаЗапроса. КоличествоОстатокНаСкладе); Если Остаток < ВыборкаРезультатаЗапроса. Количество Тогда Сообщить("Материала" +
СокрЛП(ВыборкаРезультатаЗапроса. Номенклатура) + " имеется только " + Остаток); Отказ = Истина; Возврат; КонецЕсли; КонецЕсли; КонецЕсли;
//Сформировать движения
Если ВыборкаРезулыатаЗапроса. ВидНоменклатуры =
Перечисления. ВидыНоменклатуры. МатериалТогда // регистр ОстаткиМатериалов Расход Движение = Движения. ОстаткиМатериалов. Добавить(); Движение. ВидДвижения = ВидДвиженияНакопления. Расход; Движение.Период = Дата;
308
309
Использование основных объектов конфигурации
Бухгалтерский учет




Движение. Материал = ВыборкаРезультатаЗапроса. Номенклатура;
Движение. Склад = Склад;
Движение. Количество = ВыборкаРезультатаЗапроса. Количество;
// регистр СтоимостьМатериалов Расход Движение = Движения. СтоимостьМатериалов. Добавить(); Движение. ВидДвижения = ВидЦвиженияНакопления. Расход; Движение. Период = Дата;
Движение. Материал = ВыборкаРезультатаЗапроса. Номенклатура; //расчитать стоимость материала
СтоимостьМатериала = ?(ВыборкаРезультатаЗапроса. КоличествоОстаток = Null. 0, ВыборкаРезультатаЗапроса. СтоимостьОстаток / ВыборкаРезультатаЗапроса. КоличествоОстаток); Движение. Стоимость = СтоимостьМатериала *
ВыборкаРезультатаЗапроса. Количество; КонецЕсли;
// регистр Продажи
Движение = Движения. Продажи. Добавить();
Движение. Период = Дата;
Движение. Номенклатура = ВыборкаРезультатаЗапроса. Номенклатура;
Движение. Клиент = Клиент;
Движение. Мастер = Мастер;
Движение. Количество = ВыборкаРезультатаЗапроса. Количество;
Движение. Выручка = ВыборкаРезультатаЗапроса. Сумма;
Если ВыборкаРезультатаЗапроса. ВидНоменклатуры =
Перечисления. ВидыНоменклатуры. Материал Тогда
Движение. Стоимость = СтоимостьМатериала *
ВыборкаРезультатаЗапроса. Количество; Иначе
Движение. Стоимость = 0; КонецЕсли; КонецЦикла;
// записать движения регистров
Движения. ОстаткиМатериалов. Записать();
Движения. СтоимостьМатериалов. Записать();
Движения. Продажи. Записать();
КонецПроцедуры________________________________________________ .
Поскольку нас интересует только движение материалов, для внесения дополнений подойдет тело условия Если ..., в котором мы формировали движения по регистрам «ОстаткиМатериалов» и «СтоимостьМатериалов».
Добавим движения по регистру бухгалтерии Управленческий:
//Сформировать движения
Если ВыборкаРезультатаЗапроса. ВидНоменклатуры =
Перечисления. ВидыНоменклатуры. Материал Тогда
// регистр ОстаткиМатериалов Расход
Движение = Движения. ОстаткиМатериалов. Добавить();
Движение. ВидДвижения = ВидДвиженияНакопления. Расход;
Движение. Период = Дата;
Движение. Материал = ВыборкаРезультатаЗапроса. Номенклатура;
Движение. Склад = Склад;
Движение. Количество = ВыборкаРезультатаЗапроса. Количество;
// регистр СтоимостьМатериалов Расход Движение = Движения. СтоимостьМатериалов. Добавить(); Движение. ВидДвижения = ВидДвиженияНакопления. Расход; Движение. Период = Дата;
Движение. Материал = ВыборкаРезультатаЗапроса. Номенклатура; //расчитать стоимость материала
СтоимостьМатериала = ?(ВыборкаРезультатаЗапроса. КоличествоОстаток = Null, 0, ВыборкаРезультатаЗапроса. СтоимостьОстаток / ВыборкаРезультатаЗапроса. КоличествоОстаток); Движение. Стоимость = СтоимостьМатериала *
ВыборкаРезультатаЗапроса. Количество;
//no регистру Управленческий
//первая проводка:
//Д 62(ДебиторскаяЗадолженность) - К 90 (Капитал) //розничная сумма
Движение = Движения. Управленческий. Добавить();
Движенне. СчетДт = ПланыСчетов. Основной. ДебиторскаяЗадолженность; Движение. СчетКт = ПланыСчетов. Основной. Капитал; Движение. Период = Дата;
Движение. Сумма = ВыборкаРезультатаЗапроса. Сумма; Движение. СубконтоДтГПланыВидовХарактеристик, ВидыСубконто. Материалы] =
ВыборкаРезультатаЗапроса. Номенклатура;
//вторая проводка:
//Д90 (Капитал) - К 41 (Товары) - себестоимость Движение = Движения. Управленческий. Добавить(),* Движение. СчетДт = ПланыСчетов. Основной. Капитал;
Движение. СчетКт = ПланыСчетов. Основной. Товары;
Движение. Период = Дата;
Движение. Сумма = СтоимостьМатериала *
_________________________________________________________ _________________________________________________________ _________________________________________________________ __________________ ВыборкаРезультатаЗапроса. Количество;


310
311
Использование основных объектов конфигурации
Бухгалтерский учет



Движение. КоличествоКт = ВыборкаРезультатаЗапроса. Количество; Движение. СубконтоКт[ПланыВидовХарактеристик. ВидыСубконто. Материалы] =
ВыборкаРезультатаЗалроса. Номенклатура-
КонецЕсли;
имеющиеся в плане счетов счета, а в колонках - начальное сальдо, оборот и конечное сальдо по дебету и кредиту каждого счета.
Поэтому нам, для построения такого отчета, понадобятся две исходные таблицы: объектная (ссылочная) таблица плана счетов «Основной» и виртуальная таблица регистра бухгалтерии «Управленческий. ОстаткиИОбороты»:
В первой проводке мы указываем розничную сумму материала из документа и субконто дебета, поскольку на счете «Дебиторская задолженность» ведется учет в разрезе материалов.
Во второй проводке мы указываем стоимость материала, количество и субконто кредита, поскольку на счете «Товары» ведется количественный учет в разрезе материалов.
Запустим 1С:Предприятие в режиме отладки, перепроведем документ ОказаниеУслуги №1 и посмотрим, какие движения он сформировал по регистру бухгалтерии «Управленческий»:

![]()
Из таблицы «Основной» мы выберем поля «Код» и «Наименование», а из таблицы «УправленческийОстаткиИОбороты», мы выберем следующие поля:
• «СуммаНачальныйРазвернутыйОстатокДт»,
• «СуммаНачальныйРазвернутыйОстатокКт»,
• «СуммаОборотДт»,
• «СуммаОборотКт»,
• «СуммаКонечныйРазвернутыйОстатокДт»,
• «СуммаКонечныйРазвернутыйОстатокКт»:
|
После этого перепроведем остальные документы Оказание услуги.
Создание отчета ОборотноСальдоваяВедомость
Т |
еперь нам осталось только создать отчет для бухгалтерии OOO «На все руки мастер» и наше знакомство с использованием регистра бухгалтерии будет закончено.
Единственный отчет, которым пользуется бухгалтерия нашего OOO - это отчет «Оборотно-сальдовая ведомость».
Для того чтобы сформировать этот отчет, откроем конфигуратор и создадим новый объект конфигурации Отчет с именем «ОборотноСальдоваяВедомость». На закладке «Макеты» откроем конструктор выходной формы, и посмотрим, что нам предлагает платформа для выбора.
Бухгалтерский отчет «Оборотно-сальдовая ведомость» представляет собой таблицу, в строках которой перечислены все
312
313
Использование основных объектов конфигурации
т
Бухгалтерский учет

Перейдем на закладку «Связи» и укажем, что из таблицы «Основной» мы будем выбирать все записи, а из таблицы регистра - только те, которые соответствуют условию связи:
В заключение на закладке «Отчет» сбросим флаг «Использовать построитель отчета».
Наш отчет готов. Нажмем «ОК», запустим 1С:Предприятие в режиме отладки и посмотрим, как работает наш отчет:
|

Затем на закладке «ОбъединенияЯ1севдонимы» зададим псевдонимы полей регистра: «СальдоНачДт», «СальдоНачКт», «ОборотДт», «ОборотКт», «СальдоКонДт» и СальдоКонКт»:
|
После этого на закладке «Порядок» укажем, что результат запроса должен быть отсортирован по возрастанию поля «Код», а на закладке «Итоги» укажем, что должны быть сформированы общие итоги, представляющие собой суммарные значения полей регистра:
|
314
315
Использование основных объектов конфигурации

Что нового мы узнали
] как использовать план видов характеристик дЛя
организации ведения бухгалтерского учета ____] что такое субконто
] для чего предназначен объект конфигурации План счетов ____] как создать план счетов ____] для чего предназначен Регистр бухгалтерии ____] как создать регистр бухгалтерии и настроить параметры
учета ] как создать движения документа по регистру бухгалтерии
при помощи конструктора движений ] как создать движения документа по регистру бухгалтерии
средствами встроенного языка ] как получить данные из регистра бухгалтерии запросом
Глава 9. План видов расчета, регистр расчета
В этой главе мы познакомимся с объектами конфигурации План видов расчета и Регистр расчета и узнаем об основных понятиях, используемых при создании сложных периодических расчетов.
В конце главы мы создадим план видов расчета и регистр расчета, на основе которых в следующих главах продемонстрируем работу механизмов периодических расчетов.

316
317
Использование основных объектов конфигурации
Зачем нужен план видов расчета и регистр расчета
В |
этой главе мы рассмотрим возможности системы 1С:Предприятие, которые она предоставляет дЛя автоматизации сложных периодических расчетов.
Такие расчеты используются, прежде всего, при расчете заработной платы. Поэтому дальнейшее рассмотрение этих возможностей мы будем строить на примере расчета заработной платы сотрудников, которые работают в нашем OOO «На все руки мастер».
В общем случае, сумма заработной платы сотрудника складывается из множества частей (например, оплата по окладу, премии, штрафы, оплаты по больничному листу, разовые выплаты и т. д.). Каждая из этих частей рассчитывается по некоторому алгоритму, присущему только этой части. Например, сумма штрафа может определяться просто фиксированной суммой, сумма премии может рассчитываться как процент от оклада, а сумма оплаты по окладу рассчитывается исходя из количества рабочих дней в месяце и количества дней, отработанных сотрудником. Поэтому для обозначения каждой такой части мы будем использовать термин вид расчета.
Алгоритм каждого вида расчета опирается в общем случае на две категории параметров: период, за который нужно получить конечные данные и набор некоторых исходных данных, используемых при расчете.
Как правило, в реальной жизни различные виды расчета существуют не сами по себе, а оказывают некоторое влияние на другие виды расчета. Исходя из того, что вид расчета опирается на две различные категории параметров, такое влияние тоже имеет двойственный характер.
Во-первых, это может быть влияние на исходные данные, используемые при расчете. В качестве примера можно привести начисление премии в виде процента от оплаты по окладу. При изменении оплаты по окладу размер премии тоже должен быть пересчитан, исходя из новой суммы начисленного оклада. Другими словами, сумма начисленного оклада является базой для расчета премии. Причем, поскольку оклад рассчитывается за некоторый период, то при расчете премии нам интересно знать не значение
План видов расчета, регистр расчета
жлада вообще, а сумму, которая начислена в том периоде, который влияет на расчет премии. Такой период мы будем называть базовым, а подобную зависимость между видами расчета мы будем называть зависимостью no базовому периоду.
В качестве примера рассмотрим начисление премии за апрель. Премия должна начисляться в размере 10% от суммы, начисленной в качестве оплаты по окладу. Следовательно, необходимо проанализировать все записи о начислениях оплаты по окладу, которые попадают в интересующий нас базовый период, а именно апрель. Допустим, общая сумма таких начислений составила 8000 рублей - в этом случае премия должна быть начислена в размере 800 рублей:
Зависимость премии от оклада по базовому периоду
Базовый период

Во-вторых, это влияние может быть не на исходные данные, а на сам период, за который производится расчет. В качестве примера можно привести расчет оплаты по окладу и невыход на работу. Предположим, что мы начислили сотруднику оплату по окладу за март месяц. В этом случае период действия такого расчета будет с 01.03.2004 по 31.03.2004. После этого мы получили информацию от руководителя отдела, что, оказывается, сотрудник отсутствовал на работе с 1 по 10 марта по неизвестной причине. В этом случае нам нужно будет произвести расчет «Невыход» (в котором можно рассчитать какие-то удержания с сотрудника). Но кроме этого, нам

318
319
Использование основных объектов конфигурации
План видов расчета, регистр расчета

нужно будет пересчитать и оклад сотрудника, исходя из того, ЧТо фактический период действия расчета «Оклад» стал теперь с 11.03.2004 по 31.03.2004. Такое влияние мы будем называть вытеснением no периоду действия. В результате, если за полный месяц работы сотруднику должно было быть начислено 9300 рублей то теперь, за фактический период работы начисление составит 6300 рублей:

Базовый период - это период, в котором мы анализируем результаты других расчетов, которые влияют на наш по базовому периоду.
Как видите, взаимное влияние между видами расчетов может быть довольно разнообразным и, что самое сложное, это влияние может быть многоуровневым. To есть один вид расчета может влиять на другой, который, в свою очередь, влияет на третий и т. д.
Очевидно, что в этой ситуации требуется некий универсальный механизм, позволяющий описать каждый из видов расчетов (его алгоритм, влияние на другие виды расчетов, зависимость от других видов расчетов), обеспечить хранение данных, полученных в результате этих расчетов и контроль необходимости перерасчета результатов зависимых расчетов в случае изменения результатов «первичных» расчетов.
В системе 1С:Предприятие такой универсальный механизм реализован при помощи планов видов расчета и регистров расчета. И первым объектом конфигурации, с которым мы начнем знакомиться в этой главе, будет План видов расчета.
Таким образом, исходя из двух видов взаимного влияния расчетов, можно сказать, что в общем случае с каждым видом расчета будет связано три периода: период действия, фактический период и базовый период.
Период действия является «запрашиваемым» периодом, т. е. указывая период действия, мы говорим что «мы хотели бы, чтобы результат действовал в этом периоде».
Фактический период - это то, что получилось из периода действия после анализа всех периодов действия расчетов, которые вытесняют наш по периоду действия.

320
321
Использование основных объектов конфигурации
План видов расчета, регистр расчета


Объект конфигурации План видов расчета
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |









