Расчет средней цены запасов номенклатуры
1.
Гость
11.10.18 11:26
Добрый день. Нужно рассчитать среднюю цену запасов номенклатуры для документа перемещение (состав: табличная часть ->Номенклатура, Количество, Сумма). Есть так же документы приход и расход. В них устанавливается произвольная цена номенклатуры в каждом документе. Также есть последовательность "КонтрольСтоимостиЗапасовНаСкладах" возможно через запрос к последовательности можно получить эту среднюю цену. В общем надо получить среднюю цену и при изменении количества в документе перемещения, сумма получалось по формуле "средняяцена/количество". Помогите пожалуйста :)
По теме из базы знаний
- РАУЗ: составление уравнений для расчета себестоимости товаров в программе 1С:Управление торговлей, редакция 11
- Расчет средней стоимости по счету запасов (10.Х, 11.Х, 41.Х, 43.Х)
- Расчет себестоимости по средней: не так все просто, как кажется на первый взгляд
- Анализ цен за период. УТ 11
- Установка цен номенклатуры по себестоимости для корректного формирования отчетов в ценах себестоимости и работы интеркампани – УТ 11, КА 2, ЕРП 2
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| КонтрольСтоимостиЗапасовНаСкладах.Номенклатуры КАК Номенклатуры,
| КонтрольСтоимостиЗапасовНаСкладах.Склад КАК Склад,
| КонтрольСтоимостиЗапасовНаСкладах.Цена КАК Цена,
| КонтрольСтоимостиЗапасовНаСкладах.Количество КАК Количество,
| СУММА(КонтрольСтоимостиЗапасовНаСкладах.Цена) / СУММА(КонтрольСтоимостиЗапасовНаСкладах.Количество) КАК СредняяЦенаЗапасов
|ИЗ
| Последовательность.КонтрольСтоимостиЗапасовНаСкладах КАК КонтрольСтоимостиЗапасовНаСкладах
|
|СГРУППИРОВАТЬ ПО
| КонтрольСтоимостиЗапасовНаСкладах.Номенклатуры,
| КонтрольСтоимостиЗапасовНаСкладах.Склад,
| КонтрольСтоимостиЗапасовНаСкладах.Цена,
| КонтрольСтоимостиЗапасовНаСкладах.Количество";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
СтрокаТабличнойЧасти = ЭтаФорма.Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.Сумма = Выборка.СредняяЦенаЗапасов * СтрокаТабличнойЧасти.Количество;
КонецПроцедуры
ПоказатьКод написанный на данный момент
Это решение
(11)Еще пара моментов:
После Результат.Выбрать(), хорошо еще писать пока Выборка.Следущий()
Если вы хотите работать с конкретной строкой (на что указывает "ТекущиеДанные"), то стоит в запросе делать выборку только по параметрам строки, а не по всем записям за всю историю.
И всю эту кашу нужно писать не ПриСозданииНаСервере, а при изменении количества, вам же вроде так надо.
После Результат.Выбрать(), хорошо еще писать пока Выборка.Следущий()
Если вы хотите работать с конкретной строкой (на что указывает "ТекущиеДанные"), то стоит в запросе делать выборку только по параметрам строки, а не по всем записям за всю историю.
И всю эту кашу нужно писать не ПриСозданииНаСервере, а при изменении количества, вам же вроде так надо.
Это решение
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот