Условие из сборника:
Организация занимается оказанием услуг. Стоимость услуг определяется в условных единицах, а их оплата происходит в рублях, причем курс условной единицы определяется для каждого контрагента индивидуально. Расчеты в условных единицах ведутся только с покупателями. Оказание услуг отражается с помощью документа «Расходная накладная». Стоимость услуг указывается в условных единицах. При проведении документа формируется проводка:
Дт «Покупатели» - Кт «Прибыли и убытки» на сумму оказанных услуг в условных единицах и в рублях (по текущему курсу). Текущий курс условной единицы рассчитывается автоматически при проведении документа «Расходная накладная» в соответствии со шкалой, устанавливаемой пользователем для каждого контрагента. Шкала выглядит следующим образом:
Решение:
Организация занимается оказанием услуг. Стоимость услуг определяется в условных единицах, а их оплата происходит в рублях, причем курс условной единицы определяется для каждого контрагента индивидуально. Расчеты в условных единицах ведутся только с покупателями. Оказание услуг отражается с помощью документа «Расходная накладная». Стоимость услуг указывается в условных единицах. При проведении документа формируется проводка:
Дт «Покупатели» - Кт «Прибыли и убытки» на сумму оказанных услуг в условных единицах и в рублях (по текущему курсу). Текущий курс условной единицы рассчитывается автоматически при проведении документа «Расходная накладная» в соответствии со шкалой, устанавливаемой пользователем для каждого контрагента. Шкала выглядит следующим образом:
Решение:
Для решения задачи задействуем следующие объекты:
1) ПВХ "Виды субконто".
2) Дорабатываем план счетов.
1) ПВХ "Виды субконто".
- Заполняем типы значений характеристик и дополнительные значения характеристик.
- Согласно условия задачи заводим предопределенный элемент "Контрагенты".
2) Дорабатываем план счетов.
- Добавляем признак учета субконто "валютный",
- на закладке "субконто" заполняем тип субконто и устанавливаем значение субконто=1.
- Редактируем предопределенный счет "Покупатели".(признак учета и субконто).
3) Добавляем регистр бухгалтерии "Управленческий".
- Связываем его с планом счетов
- Добавляем ресурсы ( сумма, СуммаУЕ)
- Выбираем регистраторы.
4) Не забываем о том, что в задачах бухгалтерского учета необходимо добавить документ, с помощью которого можно добавлять записи в регистр вручную. Назовем его "Ручная операция".
укажем что он является регистратором нашего регистра.
добавим форму
на форму вытащим реквизит Объект-движения-управленческий.
5) Расходная накладная.
Процедура ОбработкаПроведения(Отказ, Режим)
// регистр Управленческий
Движения.Управленческий.Записывать = Истина;
Движения.Управленческий.Записать();
//блокировка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
ЭлементБлокировки.УстановитьЗначение("Счет",ПланыСчетов.Управленческий.Покупатели);
ЭлементБлокировки.УстановитьЗначение("Субконто1",Контрагент);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Запрос = Новый("Запрос");
Запрос.Текст ="ВЫБРАТЬ
| ЕСТЬNULL(ШкалаКурсаСрезПоследних.Курс, 0) КАК Курс,
| ЕСТЬNULL(УправленческийОборотыДтКт.СуммаУЕОборот, 0) КАК Оборот
|ИЗ
| РегистрСведений.ШкалаКурса.СрезПоследних(&КонДата, ) КАК ШкалаКурсаСрезПоследних
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.ОборотыДтКт(&НачДата, &КонДата, , СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Покупатели), &мсубконто, СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ПрибылиУбытки), , СубконтоДт1 = &Контрагент) КАК УправленческийОборотыДтКт
| ПО (ЕСТЬNULL(УправленческийОборотыДтКт.СуммаУЕОборот, 0) МЕЖДУ ШкалаКурсаСрезПоследних.ОбъемПокупокОт И ШкалаКурсаСрезПоследних.ОбъемПокупокДо)";
мсубконто = Новый("Массив");
мсубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Контрагенты);
Запрос.УстановитьПараметр("НачДата",ДобавитьМесяц(Дата,-1));
Запрос.УстановитьПараметр("КонДата",Новый Граница(МоментВремени(),ВидГраницы.Исключая));
Запрос.УстановитьПараметр("мсубконто",мсубконто);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.Период = Дата;
Движение.СуммаУЕ = СуммаПоДокументу;
Движение.Сумма =СуммаПоДокументу* Выборка.Курс;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = Контрагент;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
СуммаПоДокументу = СписокНоменклатуры.Итог("Сумма");
КонецПроцедуры
5) Отчет
Комментариев нет:
Отправить комментарий