КонецЕсли;

                       Себестоимость = Себестоимость + Движение. Сумма;

       КонецЦикла;

       

       // регистр Основной

               Движение = Движения. Основной. Добавить();

               Движение. СчетДт = ПланыСчетов. Управленческий. Покупатели;

               Движение. СчетКт = ПланыСчетов. Управленческий. ПрибылиУбытки;

               Движение. Период = Дата;

               Движение. Сумма = СуммаПоДокументу;

               Движение. СубконтоДт[ПланыВидовХарактеристик. ВидыСубконто. Покупатель] = Покупатель;

               Если ЗначениеЗаполнено(Агент) Тогда

                       Движение = Движения. Основной. Добавить();

                       Движение. СчетДт = ПланыСчетов. Управленческий. ПрибылиУбытки;

                       Движение. СчетКт = ПланыСчетов. Управленческий. Агенты;

                       Движение. Период = Дата;

НЕ нашли? Не то? Что вы ищете?

                       Движение. Сумма = (СуммаПоДокументу - Себестоимость) / 100 * 20;

                       Если ЗначениеЗаполнено(Курс) Тогда

                               СуммВал = Окр(?(Курс = 0, 0, Движение. Сумма / Курс),2);

                       Иначе

                               СуммВал = 0;

                       КонецЕсли;

                       Движение. СуммаВВалютеКт = СуммВал;

                       Движение. СубконтоКт[ПланыВидовХарактеристик. ВидыСубконто. Агент] = Агент;

               КонецЕсли;

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

В модуле Формы:

&НаКлиенте

Процедура АгентПриИзменении(Элемент)

       АгентПриИзмененииНаСервере();

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

&НаСервере

Процедура АгентПриИзмененииНаСервере()

       Если ЗначениеЗаполнено(Объект. Агент. Валюта) Тогда

               Объект. Валюта = Объект. Агент. Валюта;

               Отбор = Новый Структура();

               Отбор. Вставить("Валюта",Объект. Валюта);

               Объект. Курс = РегистрыСведений. КурсыВалют. ПолучитьПоследнее(Объект. Дата, Отбор).Курс;

       КонецЕсли;

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

Документ «Операция»

Описание вынесено отдельно

Отчет «ЗадолжностиАгентам»

ВЫБРАТЬ

       ОсновнойОстатки. Субконто1 КАК Агент,

       ОсновнойОстатки. СуммаОстатокКт КАК Сумма,

       ОсновнойОстатки. СуммаВВалютеОстатокКт КАК СуммаВВалюте,

       ВЫРАЗИТЬ(ОсновнойОстатки. Субконто1 КАК Справочник. ФизическиеЛица).Валюта КАК Валюта

ИЗ

       РегистрБухгалтерии. Основной. Остатки(&Период, Счет = ЗНАЧЕНИЕ(ПланСчетов. Управленческий. Агенты), , ) КАК ОсновнойОстатки

ПВХ «ВидыСубконто»

План счетов «Управленческий»

РС «КурсыВалют» (день, Независим)

РБ «Основной»

В свойствах ресурса «Количество»

В свойствах ресурса «Сумма в валюте»

Документ «Расходная накладная»

Дт «Прибыли и убытки»

Кт «Товары»

-

Кол

Сумм(Себест)

Сумм(Себест)

-

-

Номенклатура

Склад

Дт «Покупатели»

Кт «Прибыли и убытки»

-

-

Сумм(Док)

Сумм(Док)

-

-

Покупатель

Дт «Прибыли и убытки»

Кт «Агенты»

-

-

Сумм(Док)

Сумм(20%прибыли)

-

СуммВал(20%прибыли)

Агент

Документ «Приходная накладная»

Дт «Товары»

Кт «Поставщики»

Кол

-

Сумм(Док)

Сумм(Док)

-

-

Номенклатура

Склад


Периодические расчеты

Полного текста нет, со слов сдающих:

Начисление методом отклонений.  Все работают по одному графику, но нужно предусмотреть возможность работы по нескольким графикам. Сотрудники могут работать в разных подразделениях.

Оклад по часам. Ставка часовая меняется раз в месяц и берётся на начало расчетного периода.

Больничный. Рассчитывается как количество дней болезни умноженное на среднюю дневную ставку. Средняя дневная ставка = Сумма оклада, начисленного за предыдущий месяц, деленная на количество рабочих ДНЕЙ в том же месяце. (мой комментарий под словом «рабочих дней» понимается плановое количество дней или реально отработанное? Я считаю что реально отработанное, поэтому в РР добавил ресурс «ДНИ»).

Перерасчеты использовать не нужно.

В одном документе Начисление ЗП могут быть данные за разные расчетные периоды, в одном документе может быть и оклад и больничный. Данные могут вводиться задним числом. Оклад вводится всегда в пределах месяца. Больничный можно вводить с 25.01 по 10.02 одной строкой.

Для анализа сделанных сотрудникам предприятия начислений в конфигурации необходимо предусмотреть отчет следующего вида:


Подразделение

Сотрудник

Дней болезни

Сумма начисленного больничного


Справочник «Физические лица»

Справочник «Подразделения»

Справочник «ГрафикиРаботы»

Документ «НачислениеЗарплаты»

Процедура РасчитатьЗП() Экспорт

       Если Проведен Тогда

               Записать(РежимЗаписиДокумента. ОтменаПроведения);

       Иначе

               Записать();

       КонецЕсли;

       

       НаборОсн = Движения. ОсновныеНачисления;

       Выборка = СформироватьВыборкуОсн();

       ЗаполнитьНабор(НаборОсн, Выборка);

       РасчитатьНабор(НаборОсн, ОсновныеНачисления);

       

       НаборОсн. Очистить();

       НаборОсн. Записать();

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

Функция СформироватьВыборкуОсн()

       Запрос = Новый Запрос;

       Запрос. Текст =

               "ВЫБРАТЬ

               |        НачислениеЗарплатыОсновныеНачисления. ВидРасчета,

               |        НачислениеЗарплатыОсновныеНачисления. ДатаНачала КАК ПериодДействияНачало,

               |        НачислениеЗарплатыОсновныеНачисления. ДатаОкончания КАК ПериодДействияКонец,

               |        НачислениеЗарплатыОсновныеНачисления. Ссылка. Дата КАК ПериодРегистрации,

               |        НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НачислениеЗарплатыОсновныеНачисления. ДатаНачала, МЕСЯЦ, -1), МЕСЯЦ) КАК БазовыйПериодНачало,

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7