Имя: Пароль:
1C
 
УТ 11.5. Предварительное закрытие месяца.
0 lohozavr
 
28.12.23
16:47
Доброго времени суток и с наступающим праздником!

УТ 11.5.12.130
Платформа 8.3.23.1912
Партионный учет: 2.2

Коллеги, долго уже мучаюсь с поставленной мне задачей:

Менеджеры работают с заказами клиентов. В заказе клиента в ТЧ "Товары" должна быть колонка "Наценка". Наценка это отношение текущей цены товара, которая указана в колонке "Цена" к себестоимости товара которую я должен получить, обратившись к данным ИБ.

При помощи этой наценки менеджер понимает, какую цену на товар ему необходимо выставить

То есть задача в том чтобы получать себестоимость товара в оперативном режиме. (не обязательно получать себестоимость в разрезе организаций или складов).

Как я приступил к решению данной задачи:

1) Настроил автоматическое закрытие месяца (только упр. учет, предыдущий месяц - окончательное закрытие, текущий месяц - предварительное закрытие)
Да, я понимаю, что в таком случае мы будем получать среднюю себестоимость. Но это совсем не критично
2) Данное фоновое задание запускается с периодичностью в 300 секунд (5 минут)
3) Добавил колонку "Наценка" и написал для него алгоритм заполнения.

Суть алгоритма заключается в том, что я обращаюсь к виртуальной таблице "СебестоимостьТоваров.Обороты". Получаю обороты по товарам из ТЧ "Товары" за совершенно весь период работы с базой. Далее я эту кучу данных группирую и в конечном итоге для товара получаю общее оборотное количество и общую сумму. Делю сумму на количество и получаю стоимость единицы товара на складе. Запрос в целом выполняется не долго, +- шарю за индексы, ВТ, подзапросы, и прооптимизировать мне его удалось не плохо

Вы спросите - почему не воспользовался виртуальной таблицой .Остатки. Я отвечу:

Я в своём запросе исключаю записи, у которых поля "КоличествоОборот" или "СтоимостьОборот" не заполнено. Я провёл анализ и понял для себя, что если не заполнено количество, то это документ расчета себестоимости, который мне мою конечную себестоимость почему-то искажает. Если не заполнено количество "СтоимостьОборот", то это либо документ расчета себестоимости товаров, либо другой любой документ отражающий хоз. операцию который списал товар со склада, но себестоимость по нему еще не рассчитана, так как не было в промежутке 5 минут предварительного закрытия месяца.

С виртуальной таблицей ".Отстатки" я бы таких отборов сделать корректно не смог.

Казалось бы всё хорошо. Я получаю, ну пускай даже примерную себестоимость, потому что исключаю некоторые документы, по которым себестоимость рассчитана еще не была. Но моя себестоимость по итогу с действительной себестоимостью не особо совпадает.

Вот на какие грабли я натыкаюсь:

Непонятное и, на мой взгяд, некорректное поведение предварительного закрытия месяца (хотя может я просто не знаю как оно работает):

Во-первых, стоит упомянуть что включена функциональность интеркампани, и в базе она активно пользуется спросом.
Во-вторых, предварительное закрытие месяца рассчитывает себестоимость в текущем месяце не по всем документам. Некоторые реализации или сборки товаров она, например, пропускает. Почему - загадка. Я специально перепроводил все документы в текущем месяце. Да, я увидел, что по всем документам, вроде бы создались задания к расчету себестоимости. Когда провел предварительное закрытие месяца, задания исчезли, но всё равно не по всем документам себестоимость (далее С/С) рассчиталась.

Еще я наблюдал такую картину, что я например вручную выполняю предварительное закрытие месяца на 1.12. Там мне показывало что есть отрицательные остатки по организации, но это и логично ведь пользуются интеркампани, а передачу товаров между организациями делают помощником передач в конце месяца. И предварительное закрытие месяца закрывает отрицательные остатки в 0, молодец умница, а потом рассчитывает С/С как я понял. Но потом когда я выбираю дату к закрытию 02.12 и закрываю предварительно её, то возвращаюсь к списку операций на 1.12 вижу там опять что есть отрицательные остатки и С/С не рассчитана. Вообще не понятно

Дайте свежий взгляд на задачу, может быть можно сделать всё попроще.

Да я пытался получить С/С используя типовой запрос из отчета "Себестоимость товаров" но он плохо отрабатывает в случае если в 5-ти минутке еще не было предв. закрытия месяца, а количество списалось, и он себестоимость делит на количество и получает завышенную С/С.

Не рассматривал регистр сведений "СтоимостьТоваров" не понял по итогу как он мне может помочь в решении задачи.

Заранее спасибо за уделенное время!
1 lohozavr
 
28.12.23
16:54
То есть мне либо понять почему всё таки не по всем документам при предварительном закрытии месяца высчитывается С/С. И устранить эту проблему, тогда я думаю, всё таки моя С/С уже будет куда корректнее

Либо вообще придумывать другой вариант решения проблемы.

Я не могу окончательное закрытие запускать в фоне каждые 5 минут. Так как там будет обязательная ручная операция "Оформить передачи товаров между организациями"

Либо искать обработку которая при проведении документов будет сразу в них С/С рассчитывать и записывать, либо обработку, которая будет в фоне сама документы передач товаров между организациями фигачить

Либо еще чото ........
2 Буковка
 
28.12.23
16:57
(0) а себестоимость, которая формируется в отчете "Себестоимость товаров" вас не устраивает? Правильная себестоимость только после закрытия месяца. Остальное всё будет не верно.
3 Буковка
 
28.12.23
17:04
(0) и посмотрите еще РС Стоимость товаров
4 Гена
 
28.12.23
17:12
Вообще-то себестоимость - это крутая коммерческая тайна, за которую конкуренты полцарства отдадут.
Какому же это... чудаку... пришло в голову светить данную информацию каждому продажнику, да ещё в режиме онлайн?
5 АНДР
 
28.12.23
17:14
(0) С себестоимостью в документах закрытия и предварительного закрытия согласны? Почему не работаете с себестоимостью закрытого месяца и не дорассчитываете себестоимость на текущий момент?
6 Кондер
 
28.12.23
17:50
А простой вариант продажная цена = Последняя закупочная + Х%?
7 Кондер
 
28.12.23
17:53
А вообще видел ребят, которые мониторят большое количество прайсов поставщиков и продают даже в убыток если отстали от рынка.