Имя: Пароль:
1C
1С v8
УТ11 динамическое вычисление цены по курсу валюты?
0 bolero
 
24.12.14
01:23
В связи с событиями последних месяцев принято решение привязывать цены на импорт к курсу. Подавляющая часть номенклатуры и оборота - российского производства, поэтому валютой управленческого учета должен остаться рубль. Остается около 3000 позиций, которые завязаны на USD, EUR, CHF.

Полдня напряженного гуглежа показало, что:
- для разных валют нужно делать разные виды цен
- при указании руками "правильного" вида цен в ТЧ товары цена корректно пересчитывается в валюту регл.учета (рубли) по курсу на день заказа. Если указать "неправильный" вид цен не в той валюте, т.е. по которому не производилась установка цен, то рублевая цена на выходе пустая
- в соглашении с клиентом можно указать только один вид цен (уточнение по 3000 позициям в каждом соглашении - пальцы сотрутся)

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

Вот здесь всплывает проблема - во-первых, штатного средства считать из одной цены и курса другую цену нет, во-вторых, нужно каждый день делать установку цен. За год таблица цен расползется до таких размеров, что придется принимать меры к сокращению.

В любом случае, совсем не улыбается каждый день делать документ установки цен на 3000 строк.

Вопрос: Какое правильное решение этой проблемы я упустил? Как строить рублевую цену (назовем ее, допустим, ОсновнаяЦенаПродажи) из курсов и валютных цен, на момент заполнения документа?
1 Asmody
 
24.12.14
01:26
(0) нужно каждый день делать установку цен.
разрастется не катастрофично.
2 ДенисЧ
 
24.12.14
01:27
Для таких извращений вам программиста нужно звать...

И не надо нам втирать про "программист - это я"....
3 Asmody
 
24.12.14
01:28
Делайте каждый день по документу на каждую валюту.
4 Управление торговлей
 
24.12.14
02:01
цену можно произвольным запросом считать, разве нет? вот и напихать туда любых валют
5 raxe
 
24.12.14
07:13
(0)
нужно привязать "валютные" товары к ценовым группам по валютам. в соглашении указать для каждой ценовой группы указать нужные виды цен.
в этом случае в заказе для каждого товара будет определяться его вид цены, а значение цены пересчитываться в валюту заказа.
6 ИС-2
 
naïve
24.12.14
07:25
не знаю про УТ11, но в 10.3 цену можно еще регулировать скидками/наценками, условиями поставок и т.д
7 bolero
 
24.12.14
10:45
(5) воо, другое дело, утро вечера мудренее

Включил галочку "использовать ценовые группы", настроил группы - в заказах все работает, как я и хотел.

Единственное, напоролся на недоделку минимум трехлетней давности:
v8: УТ 11 Выгрузка на сайт

В прайс-листе цена в валюте показывается в отдельной колонке, это адово неудобно, но хотя бы не вранье.

А в выгрузке на сайт цена выгружается в единицах валюты, но в качестве валюты указан рубль:
--------
<Цена>
        <Представление> 520 руб. за PCE</Представление>
        <ИдТипаЦены>6e5a5e9e-39b9-11e3-9697-d43d7e57f85f</ИдТипаЦены>
        <ЦенаЗаЕдиницу>520</ЦенаЗаЕдиницу>
        <Валюта>руб</Валюта>
        <Единица>PCE</Единица>
        <Коэффициент>1</Коэффициент>
</Цена>
--------
На этот товар я установил цену в 520 CHF, но в файле выгрузки про CHF ни слова.

ИдТипаЦены указывает типовое соглашение, а не вид цены.
8 bolero
 
24.12.14
19:26
Очень интересно. Кусок запроса, который формирует xml выше:


| ВЫБОР
| КОГДА СоглашенияСКлиентамиТовары.ВидЦены ЕСТЬ NULL
| И СоглашенияСКлиентамиЦеновыеГруппы.ВидЦен ЕСТЬ NULL
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ДоступныеСоглашенияСоглашения.Валюта) КАК Справочник.Валюты).Наименование
| ИНАЧЕ ДоступныеСоглашенияСоглашения.Валюта.Наименование
| КОНЕЦ КАК ТипЦеныВалютаКод,
|1 КАК ТипЦеныЕдиницаЦеныКоэффициент,


То есть, валюта, отличная от валюты соглашения (обычно это рубль), будет показываться только если в соглашении не установлен вид цены. Однако, если соглашение доступно внешним пользователям (что является обязательным условием обмена с сайтом), то в нем обязательно должны быть указаны организация и вид цены. Получается, что этот кусок кода - индийского происхождения на 100% - жрет ресурсы и не делает ничего, на выходе всегда один результат.

Что означает Коэффициент, который всегда 1, пока не разобрался.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший