|
Вычисление значения в СКД | ☑ | ||
---|---|---|---|---|
0
Phil_McLaren
23.03.12
✎
10:08
|
Доброго времени!
Задача такая: сделать отчет, выводящий некоторые сведения из регистра партии товаров на складах с соединением с регистром значения свойств объектов. Из ПартийТоваров берем номенклатуру, характеристику, склад, количество и стоимость (ну и еще кое-какая шелуха); ЗначенияСвойств (измерения Объект и Свойство, ресурс Значение, если что) получают параметр Свойство и соединяются по условию характеристика=объект. Таким образом, для каждой позиции (которая идентифицируется характеристикой) получаем интересующее свойство. Дальше, собственно, проблемы: свойство не нужно само по себе, нужен результат формулы "Стоимость товара/Количество товара в наличии/Значение свойства". Первая операция деления идет нормально, поскольку это числовые типы, а вторая валится из-за того, что значения свойств это предопределенные элементы соотв-го справочника, отраженные реквизитом Наименование (т.е. строкой). Преобразование строки в число в запросе сделать нельзя (по-божески по крайней мере, без ВЫБОР ТОГДА для каждого символа), в скд тоже (в т.ч. через указание типа значения поля набора данных). Есть мысль посчитать эту колонку в модуле формы уже после работы процессора скд, но не знаю как это сделать (нужно поймать событие окончания формирования отчета, во-1х, и подставить посчитанные значения в соотв-щие строки во-2х). Больше идей нет, за них и буду безмерно благодарен. p.s.: принципиально сделать через скд, вручную такой отчет, конечно, давно бы сделал. |
|||
1
Defender aka LINN
23.03.12
✎
10:14
|
Мда. Не, ну когда мне надо хранить число я тоже обычно справочник использую, конечно...
|
|||
2
Лодырь
23.03.12
✎
10:14
|
а "выразить" не поможет?
|
|||
3
Лодырь
23.03.12
✎
10:15
|
или через вызов внешней функции для преобразования ссылки на предопределенный элемент в число.
|
|||
4
Phil_McLaren
23.03.12
✎
10:17
|
Это не я заводил справочник -) так было нужно и вмешиваться в эту структуру не стоит) сам бы рад поменять
|
|||
5
Phil_McLaren
23.03.12
✎
10:18
|
(2), увы, "выразить" только выбирает один тип из составного, но не преобразует
|
|||
6
Лодырь
23.03.12
✎
10:20
|
(5) Как все таки насчет внешней функции? Уж там то проблемы преобразования нет.
|
|||
7
Phil_McLaren
23.03.12
✎
10:21
|
(3)(5), например? если есть способ функцию встроенного языка (число) вызвать в скд это решило бы проблему)
|
|||
8
Лодырь
23.03.12
✎
10:24
|
||||
9
Phil_McLaren
23.03.12
✎
10:28
|
(8) мне такую функцию придется самому описывать, т.е. изменять общий модуль, что недопустимо в данном случае. ко встроенному языку бы обратиться...
знаю, многовато условий -) |
|||
10
Лодырь
23.03.12
✎
10:31
|
(9) Вопрос. Значений свойства конечное неизменное количество, если я верно понимаю фразу "предопределенные элементы"? Если так, то все просто.
|
|||
11
Phil_McLaren
23.03.12
✎
10:35
|
(10) да, это бОльшая часть чисел от 0 до 10 с двумя знаками после запятой
|
|||
12
Лодырь
23.03.12
✎
10:39
|
(11) А если предварительно сделать виртуальную таблицу: значение_свойства/число и засунуть ее в параметры СКД а оттуда использовать в запросе?
|
|||
13
Phil_McLaren
23.03.12
✎
10:42
|
(12) звучит похоже на решение... Только их ведь придется сравнивать (значение свойства, например строку "2,05", сравнивать с элементом виртуальной т. число 2,05), не тоже самое ли получится? всм это все равно операция между строкой и числом, или я не улавливаю?
|
|||
14
Лодырь
23.03.12
✎
10:44
|
(13) Зачем? соединение с виртуальной таблицей.
|
|||
15
Лодырь
23.03.12
✎
10:45
|
сорри создавать нужно временныю таблицу конечно же. а не виртуальную.
|
|||
16
Лодырь
23.03.12
✎
10:46
|
блин.. лень пробовать )
|
|||
17
Phil_McLaren
23.03.12
✎
10:47
|
(14) да, соединение с вт чтобы найти соответствующий строковому представлению элемент - это же предполагает что строка "2,05" должна будет равняться числовому элементу вт, а это невозможно из-за несоответствия типов
|
|||
18
Phil_McLaren
23.03.12
✎
10:49
|
если бы это было возможно, то прокатывало бы и при соединении с регистром значенияСвойств, насколько я понимаю
|
|||
19
Лодырь
23.03.12
✎
10:54
|
ты не понял идею. в таблице две колонки - одна ссылка на твой элемент значения свойств, вторая - число. соединение этой таблицы с регистром значения свойств объектов ты же сделать можешь по ссылке на значение свойства.
|
|||
20
Phil_McLaren
23.03.12
✎
11:07
|
(19) отлично, я и правда не додумался -)
покорнейше благодарю, так и сделаю) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |