Имя: Пароль:
1C
1С v8
Вычисление значения в СКД
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) отлично, я и правда не додумался -)
покорнейше благодарю, так и сделаю)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший