Тренинг по подготовке к аттестации.
Второй поток – Задача 11 “Плановая себестоимость”

Приветствуем!

Сегодня публикуем задания двух задач по второй части сборника. Первая задача совпала с моим выбором, это задача “Плановая себестоимость“.

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.

Если не активировали токен — посмотрите видео-инструкцию (видео N5)

Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.

комментариев 13 на “Тренинг по подготовке к аттестации.
Второй поток – Задача 11 “Плановая себестоимость””

  1. comsystems 01.08.2012 в 09:32

    Здравствуйте. Задание решил следующим образом. Создал регистр сведений ПлановаяСебестоимость (измерение номенклатура, ресурс себестоимость)  Приходная формирует проводки на количество и сумму документа. Расходная накладная формирует проводки на количество из документа и сумму из регистра “ПлановаяСебестоимость” . Т.к. в задании есть условие “также следует считать, что весь купленный товар будет продан в этом же месяце”, то в конце месяца при вводе документа “Корректировка себестоимости” получаю остатки из виртуальной таблицы “Остатки ” количество будет нулевым (т.к весь купленный товар будет продан) а в ресурсе сумма и будет разница между Плановой себестоимостью и Реальной себестоимостью. В зависимости от положительной или отрицательной суммы формируем проводки. Но данное решение кажется мне слишком простым.

    • А как формируете отчет? Как делите там информацию о плановой и фактической стоимостью?

      • comsystems 01.08.2012 в 11:50

        Отчет формирую следующим образом. В запросе из виртуальной таблицы ОборотыДтКт (параметры виртуальной таблицы Дт «Прибыли и убытки» – Kт «Товары») получаю данные расхода: количествоКт и суммуКт плановой себестоимости. Так же из виртуальной таблицы ОборотыДтКт (параметры виртуальной таблицы Дт «Товары» – Kт «Поставщики») получаю данные прихода: количествоДт и суммуДт. Соединяю эти таблицы по номенклатуре. А разница расчитывается по формуле:

        КоличествоКт*(СуммаКт/количествоКт-СуммаДт/КоличествоДт)

        • Оборот между Товары-Поставщики – это поступление товара, а никак не продажа!
          Вам нужно делить списанную себестоимость на план/факт.

          Выручку как берете?

          • comsystems 01.08.2012 в 15:23

            У меня так и написано: ОборотыДтКт (параметры виртуальной таблицы Дт «Товары» – Kт «Поставщики») получаю данные прихода. В отчете же не нужна выручка. Или я что то не так понимаю? Для чего мне брать выручку?

            • Про выручку проморгал :) Извините, на днях решал другую задачу там была.
              Но хотелось бы еще раз обратить внимание на то что Дт Товары – Кт Поставщики – эта проводка к продаже не имеет никакого отношения.

              • comsystems 01.08.2012 в 16:52

                Наверное я что то не понимаю можете посмотреть запрос которым я строю отчет. Правильно ли так получать данные <сode>ВЫБРАТЬ
                УправленческийОборотыДтКт.СубконтоКт1 КАК Номенклатура,
                СУММА(УправленческийОборотыДтКт.КоличествоОборотКт) КАК Количество,
                СУММА(УправленческийОборотыДтКт.СуммаОборот) КАК ПлановаяСебестоимость
                ПОМЕСТИТЬ ВТ_Расход
                ИЗ
                РегистрБухгалтерии.Управленческий.ОборотыДтКт(, , Регистратор, СчетДт = &Счет_ПрибыльУбытки, , СчетКт = &Счет_Товары, , ) КАК УправленческийОборотыДтКт
                ГДЕ
                НЕ УправленческийОборотыДтКт.Регистратор ССЫЛКА Документ.КорректировкаСебестоимости

                СГРУППИРОВАТЬ ПО
                УправленческийОборотыДтКт.СубконтоКт1
                ;

                ////////////////////////////////////////////////////////////////////////////////
                ВЫБРАТЬ
                УправленческийОборотыДтКт.СубконтоДт1 КАК Номенклатура,
                СУММА(УправленческийОборотыДтКт.СуммаОборот) КАК ФактическаяСебестоймость,
                СУММА(УправленческийОборотыДтКт.КоличествоОборотДт) КАК КоличествоПриход
                ПОМЕСТИТЬ ВТ_Приход
                ИЗ
                РегистрБухгалтерии.Управленческий.ОборотыДтКт(, , , СчетДт = &Счет_Товары, , СчетКт = &Счет_Поставщики, , ) КАК УправленческийОборотыДтКт

                СГРУППИРОВАТЬ ПО
                УправленческийОборотыДтКт.СубконтоДт1
                ;

                ////////////////////////////////////////////////////////////////////////////////
                ВЫБРАТЬ
                ВТ_Расход.Номенклатура,
                ВТ_Расход.Количество,
                ВТ_Расход.ПлановаяСебестоимость,
                ВТ_Приход.ФактическаяСебестоймость,
                ВТ_Приход.ФактическаяСебестоймость – ВТ_Расход.ПлановаяСебестоимость КАК Поле1
                ИЗ
                ВТ_Расход КАК ВТ_Расход
                ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Приход КАК ВТ_Приход
                ПО ВТ_Расход.Номенклатура = ВТ_Приход.Номенклатура  </сode> 

                • Да, вроде я уже свою точку зрения сказал. Нет не правильно. Поступление товаров к продаже никак не относится. К продаже относится списание товаров в счет ПрибылиИУбытки и все. Только этот оборот.

  2. Можете подсказать где у меня ошибка?
    При проведении корректировки минусовой остаток не закрывается
    Мой код
                    Движения.Хозрасчетный.Записывать = Истина;
        Движения.Хозрасчетный.Очистить();
                   
                    Запрос = Новый Запрос;
                    Запрос.Текст =
                                   “ВЫБРАТЬ
                                   |             ХозрасчетныйОстатки.Субконто1,
                                   |             ХозрасчетныйОстатки.Субконто2,
                                   |             ХозрасчетныйОстатки.Валюта,
                                   |             ХозрасчетныйОстатки.ВалСуммаОстаток * ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 1) – ХозрасчетныйОстатки.СуммаОстаток КАК Отклонение
                                   |ИЗ
                                   |             РегистрБухгалтерии.Хозрасчетный.Остатки(&МоментВремени, Счет = &Счет, &МассивСубконто, ) КАК ХозрасчетныйОстатки
                                   |                             ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&МоментВремени, ) КАК КурсыВалютСрезПоследних
                                   |                             ПО ХозрасчетныйОстатки.Валюта = КурсыВалютСрезПоследних.Валюта
                                   |ГДЕ
                                   |             (ХозрасчетныйОстатки.СуммаОстаток – ХозрасчетныйОстатки.ВалСуммаОстаток * ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 1) > 0.01
                                   |                                             ИЛИ ХозрасчетныйОстатки.СуммаОстаток – ХозрасчетныйОстатки.ВалСуммаОстаток * ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 1) < -0.01)”;
     
                                  
                    Массив = Новый Массив(2);
                    Массив[0] = ПланыВидовХарактеристик.ВидыСубконто.Контрагенты;
                    Массив[1] = ПланыВидовХарактеристик.ВидыСубконто.Договоры;
                    Запрос.УстановитьПараметр(“МассивСубконто”, Массив);
                   
                    Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
                                   Движения.Хозрасчетный.Записать();
                    КонецЕсли;
                   
                    Запрос.УстановитьПараметр(“МоментВремени”, МоментВремени());
                    Запрос.УстановитьПараметр(“Счет”, ПланыСчетов.Хозрасчетный.Покупатели);
     
                    Результат = Запрос.Выполнить();
     
                    Выборка = Результат.Выбрать();
     
                    Пока Выборка.Следующий() Цикл
                                   Движение = Движения.Хозрасчетный.Добавить();
                                   Движение.Период = Дата;
                                  
                                   Если Выборка.Отклонение > 0 Тогда
                                                   Движение.СчетДт = ПланыСчетов.Хозрасчетный.Покупатели;
                                                   Движение.СчетКт = ПланыСчетов.Хозрасчетный.ПрибылиИУбытки;
                                                   Движение.ВалютаДт = Выборка.Валюта;
                                                   Субконто = Движение.СубконтоДт;
                                   Иначе
                                                   Движение.СчетКт = ПланыСчетов.Хозрасчетный.Покупатели;
                                                   Движение.СчетДт = ПланыСчетов.Хозрасчетный.ПрибылиИУбытки;
                                                   Движение.ВалютаКт = Выборка.Валюта;                       
                                                   Субконто = Движение.СубконтоКт;
                                   КонецЕсли;
                                   Субконто[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = Выборка.Субконто1;
                                   Субконто[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = Выборка.Субконто2;
                                  
                                   Движение.Сумма = Макс(Выборка.Отклонение, -Выборка.Отклонение);
                    КонецЦикла;
     

    • Пришлите базу на pavel@spec8.ru и копию на pavel@chistov.spb.ru, так по коду, вроде, все ОК.

      • я отправил Вам на почту базу

        • Получил. в течении 26го июля посмотрю и отвечу.

        • У Вас в запросе анализируются обороты (еще и корреспондирующие), что не есть хорошо.

           

          Реальная себестоимость товара это остаток на начало месяца + поступление за месяц (это остаток и оборот Дт по счету Товары)

          То что списали (плановая стоимость) – это оборот Кт по счету Товары.

          Корреспондирующего оборота тут нет.

          Формула по корректировке себестоимости такая:

          (КоличествоПроданного / (КоличествоОстаток+КоличествоОборотДт) * (СуммаОстаток+ СуммаОборотДт) )   –  СуммаОборотКт

          Где Остаток – это остаток на начало месяца. Все данные получаем по счету Товары.

          Как то так…