gifts2017

Анализ продаж от закупочных цен ТиС 9.2 (7.7)

Опубликовал Юрий Зайцев (Yury1001) в раздел Отчеты - Управленческие

В стандартный анализ продаж добавлена возможность заменять себестоимость товаров на значения цен любого типа.

Это позволяет получить значения прибыли, приближенные к реальным в случае плохого состояния регистра "Партии наличие" и, как следствие, себестоимости товаров в отчёте. А также можно оценить отклонения от базовой цены (например, розничной или оптовой), то есть сделанные скидки и/или дополнительные наценки.

 

Кратко поясню реализованный механизм:

На форму добавляется реквизит ВыбТипЦен.

Добавляется функция вычисления по типу цены:

Функция ПоТипуЦен(Номенклатура, Количество, ТекДок)
     Цена = глПолучитьЦену(Номенклатура, ВыбТипЦен, ТекДок.ДатаДок, Номенклатура.БазоваяЕдиница, Константа.ВалютаУпрУчета);
     Возврат Цена * Количество;
КонецФункции

 

В запросе отчета заменяются функции вычисления сумм стоимости:

Если ВыбТипЦен.Выбран() = 0 Тогда // стандартное вычисление
     ТекстЗапроса = ТекстЗапроса + "
     |Функция СуммаСебест      = Сумма(Себест);
     |Функция СуммаСебестВ     = Сумма(СебестВ);";
Иначе // расчёт по типу цены
     ТекстЗапроса = ТекстЗапроса + "
     |ТекДок     = Регистр.Продажи.ТекущийДокумент;
     |Функция СуммаСебест      = Сумма(ПоТипуЦен(Номенклатура, Количество, ТекДок));
     |Функция СуммаСебестВ     = Сумма(ПоТипуЦен(Номенклатура, КоличествоВ, ТекДок));";
КонецЕсли;

 

Подобным образом можно выполнять массу полезных вычислений в запросах, недостаток, пожалуй, только один: при использовании внешних функций в запросе сильно возрастает время его выполнения.

Скачать файлы

Наименование Файл Версия Размер
АнализПродаж.ert 73
.ert 215,00Kb
10.06.15
73
.ert 215,00Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Эд Хз (Tatar_Ed) 03.03.14 10:59
Полезная вещь. будем пробовать. автору спасибо. Особая благодарность за описание процесса реализации.
2. Эд Хз (Tatar_Ed) 22.04.14 16:23
выдает ошибку.

//*******
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.АнализПродаж.Форма.Модуль(511)}: Функция СуммаСебест = Сумма(ПоТипуЦен(Номенклатура, Количество <<?>> , ТекДок));
Запрос[13] : Ошибка в выражении 'Количество'
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.АнализПродаж.Форма.Модуль(511)}: Функция СуммаСебестВ = Сумма(ПоТипуЦен(Номенклатура, КоличествоВ <<?>> , ТекДок));
Запрос[14] : Ошибка в выражении 'КоличествоВ'
3. Юрий Зайцев (Yury1001) 22.04.14 16:58
(2) Tatar_Ed, значит у вас не торговля и склад 9.2 для России
4. Эд Хз (Tatar_Ed) 24.04.14 10:40
(3) уверен на все 100% у меня торговля и склад 9.2 и точно для России.
брал не готовый "Анализ", а пытаюсь сделать самостоятельно, по Вашей инструкции. Ну видать напутал что-то
5. Юрий Зайцев (Yury1001) 24.04.14 11:07
(4) Tatar_Ed, тогда в вашем отчете не хватает строки
КоличествоВ = Регистр.Продажи.КоличествоВ;
6. Эд Хз (Tatar_Ed) 29.04.14 11:24
(5) Спасибо, буду пробовать.
7. Эд Хз (Tatar_Ed) 29.04.14 13:08
теперь такая ошибка

КОЛИЧЕСТВО<<?>>
Переменная не определена (КОЛИЧЕСТВО)
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.АнализПродаж.Форма.Модуль(517)}: Функция СуммаСебест = Сумма(ПоТипуЦен(Номенклатура, Количество <<?>> , ТекДок));
Запрос[13] : Ошибка в выражении 'Количество'

((((((((((((
8. Эд Хз (Tatar_Ed) 29.04.14 13:09
КОЛИЧЕСТВО<<?>>
Переменная не определена (КОЛИЧЕСТВО)
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.АнализПродаж.Форма.Модуль(517)}: Функция СуммаСебест = Сумма(ПоТипуЦен(Номенклатура, Количество <<?>> , ТекДок));
Запрос[13] : Ошибка в выражении 'Количество'
9. Эд Хз (Tatar_Ed) 29.04.14 13:12
//********
КОЛИЧЕСТВО<<?>>
Переменная не определена (КОЛИЧЕСТВО)
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.АнализПродаж.Форма.Модуль(517)}: Функция СуммаСебест = Сумма(ПоТипуЦен(Номенклатура, Количество <<?>> , ТекДок));
Запрос[13] : Ошибка в выражении 'Количество'
10. Эд Хз (Tatar_Ed) 10.05.14 20:35
(5) Есть какие нибудь мысли?
11. Юрий Зайцев (Yury1001) 11.05.14 12:04
(10) Tatar_Ed, надо обработку и базу, а так никто не скажет, ну хотя бы скриншот.
12. Эд Хз (Tatar_Ed) 12.05.14 11:51
(11) а скриншот чего? Кода или ошибки?
13. Юрий Зайцев (Yury1001) 12.05.14 15:03