Имя: Пароль:
1C
1С v8
СКД, округление!
0 GanGster2012
 
09.08.12
18:31
Сегодня столкнулся с такой задачкой! Мне надо перемножить 2 параметра.
Пример:
400 * 0,35454533(этот параметр через условное оформление формат я округлил до 0,35), а в итоге он мне считает не по округляемому параметру, а по параметру 0,35454533, и естественно весь итог у меня искажается(((
Помоги кто знает! Как это одолеть????
1 Нуф-Нуф
 
09.08.12
18:36
ты изменяешь представление, а не значение.
поставь типа значения у поля число(15,2)
2 GanGster2012
 
09.08.12
18:41
Это где такое можно провернуть?)))
3 1C-band
 
09.08.12
18:42
1. В запросе ВЫРАЗИТЬ(ТвоёПоле КАК ЧИСЛО(15, 2))
2. Условное оформление в СКД.
4 GanGster2012
 
09.08.12
18:52
Спасибо, большое, щас будем пробовать!
5 GanGster2012
 
09.08.12
18:56
Я вот прописывал в вычисляемом поле вот так ,"Число(10,2)") НЕ ПОМОГЛО(((, но это было до моего обращения к вам за помощью, а щас буду пробовать по вашим советам, спасибо!
6 Нуф-Нуф
 
09.08.12
18:59
на закладке "наборы данных", в таблице полей, у нужного поля установи тип значения
7 Нуф-Нуф
 
09.08.12
19:00
либо как в (3) поставь ограничение на поле в самом запросе
8 sanja26
 
09.08.12
19:07
(6) именно, в наборе данных
9 GanGster2012
 
09.08.12
19:22
Вообщем не получается попробовал и так и всяк, не выходит, с запросами сам никогда не работал, тока с конструктором общаюсь, гляньте кто шарит, как его довести до ума?
Еще встал вопрос с добавкой периода чтобы можно было выбрать между датами, так он у меня считаю только на одну дату, как меняю рассчитать между двумя так он сразу в стопор!

ВЫБРАТЬ
   ЕСТЬNULL(АР_СобственникиОбъектовАренды.Собственник, АР_СобственникиОбъектовАрендыВсе.Собственник) КАК Собственник,
   ЕСТЬNULL(АР_СобственникиОбъектовАренды.АгентскаяСхема, АР_СобственникиОбъектовАрендыВсе.АгентскаяСхема) КАК АгентскаяСхема,
   АР_ОбъектыАренды.Ссылка КАК ОбъектАренды
ПОМЕСТИТЬ ВТСобственникиОбъектовАренды
ИЗ
   Справочник.АР_ОбъектыАренды КАК АР_ОбъектыАренды
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АР_СобственникиОбъектовАренды.СрезПоследних КАК АР_СобственникиОбъектовАренды
       ПО (АР_СобственникиОбъектовАренды.ОбъектАренды = АР_ОбъектыАренды.Ссылка)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АР_СобственникиОбъектовАренды.СрезПоследних(, ОбъектАренды = ЗНАЧЕНИЕ(Справочник.АР_ОбъектыАренды.ПустаяСсылка)) КАК АР_СобственникиОбъектовАрендыВсе
       ПО (ИСТИНА)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   АР_ОбъектыАренды.Ссылка КАК ОбъектАренды,
   АР_ОбъектыАренды.ТипОбъекта,
   АР_ОбъектыАренды.ЗданиеИЭтаж
ПОМЕСТИТЬ ВТОбъектыАренды
ИЗ
   Справочник.АР_ОбъектыАренды КАК АР_ОбъектыАренды
ГДЕ
   НЕ АР_ОбъектыАренды.ЭтоГруппа
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(АР_СтавкиСрезПоследних.Период, ДЕНЬ) КАК ДатаЗаписи,
   АР_СтавкиСрезПоследних.Услуга,
   АР_СтавкиСрезПоследних.ОбъектАренды,
   АР_СтавкиСрезПоследних.Ставка,
   АР_СтавкиСрезПоследних.СпособНачисления,
   АР_СтавкиСрезПоследних.Площадь
ПОМЕСТИТЬ ВТСтавки
ИЗ
   РегистрСведений.АР_Ставки.СрезПоследних КАК АР_СтавкиСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТСтавки.ДатаЗаписи,
   ВТСтавки.Услуга,
   ВТСтавки.ОбъектАренды,
   ВТСтавки.Ставка,
   ВТСтавки.СпособНачисления,
   ВТСтавки.Площадь,
   МИНИМУМ(ЕСТЬNULL(АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок.Дата, ВТСтавки.ДатаЗаписи)) КАК ДатаНачала
ПОМЕСТИТЬ ВТСтавкиДатаНачала
ИЗ
   ВТСтавки КАК ВТСтавки
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.АР_ГрафикиИзмененияСтавокНаУслуги.ГрафикСтавок КАК АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок
       ПО ВТСтавки.Ставка = АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок.Ссылка
           И ВТСтавки.ДатаЗаписи <= АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок.Дата
ГДЕ
   ЕСТЬNULL(АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок.Дата, ВТСтавки.ДатаЗаписи) <= &ПериодНД

СГРУППИРОВАТЬ ПО
   ВТСтавки.ДатаЗаписи,
   ВТСтавки.Услуга,
   ВТСтавки.ОбъектАренды,
   ВТСтавки.СпособНачисления,
   ВТСтавки.Ставка,
   ВТСтавки.Площадь
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТСтавкиДатаНачала.ДатаЗаписи,
   ВТСтавкиДатаНачала.Услуга,
   ВТСтавкиДатаНачала.ОбъектАренды,
   ВТСтавкиДатаНачала.Ставка,
   ВТСтавкиДатаНачала.СпособНачисления,
   ВТСтавкиДатаНачала.Площадь,
   ВТСтавкиДатаНачала.ДатаНачала,
   МИНИМУМ(ЕСТЬNULL(ВТСтавкиДатаОкончания.ДатаНачала, КОНЕЦПЕРИОДА(&ПериодНД, ДЕНЬ))) КАК ДатаОкончания
ПОМЕСТИТЬ ВТСтавкиПоПериодам
ИЗ
   ВТСтавкиДатаНачала КАК ВТСтавкиДатаНачала
       ЛЕВОЕ СОЕДИНЕНИЕ ВТСтавкиДатаНачала КАК ВТСтавкиДатаОкончания
       ПО ВТСтавкиДатаНачала.ОбъектАренды = ВТСтавкиДатаОкончания.ОбъектАренды
           И ВТСтавкиДатаНачала.Услуга = ВТСтавкиДатаОкончания.Услуга
           И ВТСтавкиДатаНачала.ДатаНачала < ВТСтавкиДатаОкончания.ДатаНачала
           И ВТСтавкиДатаНачала.ДатаЗаписи < ВТСтавкиДатаОкончания.ДатаЗаписи

СГРУППИРОВАТЬ ПО
   ВТСтавкиДатаНачала.СпособНачисления,
   ВТСтавкиДатаНачала.ОбъектАренды,
   ВТСтавкиДатаНачала.ДатаЗаписи,
   ВТСтавкиДатаНачала.ДатаНачала,
   ВТСтавкиДатаНачала.Услуга,
   ВТСтавкиДатаНачала.Ставка,
   ВТСтавкиДатаНачала.Площадь
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТСтавкиПоПериодам.ДатаЗаписи,
   ВТСтавкиПоПериодам.Услуга,
   ВТСтавкиПоПериодам.ОбъектАренды,
   ЕСТЬNULL(АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок.Ставка, ВТСтавкиПоПериодам.Ставка) КАК Ставка,
   ВТСтавкиПоПериодам.СпособНачисления,
   ВТСтавкиПоПериодам.Площадь,
   ЕСТЬNULL(АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок.Дата, ВТСтавкиПоПериодам.ДатаНачала) КАК ДатаНачала,
   ВТСтавкиПоПериодам.ДатаОкончания КАК ДатаОкончанияПериода
ПОМЕСТИТЬ ВТСтавкиЧислоДатаНачала
ИЗ
   ВТСтавкиПоПериодам КАК ВТСтавкиПоПериодам
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.АР_ГрафикиИзмененияСтавокНаУслуги.ГрафикСтавок КАК АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок
       ПО ВТСтавкиПоПериодам.Ставка = АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок.Ссылка
           И (АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок.Дата >= ВТСтавкиПоПериодам.ДатаНачала)
           И (АР_ГрафикиИзмененияСтавокНаУслугиГрафикСтавок.Дата <= ВТСтавкиПоПериодам.ДатаОкончания)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТСтавкиЧислоДатаНачала.ДатаЗаписи,
   ВТСтавкиЧислоДатаНачала.Услуга,
   ВТСтавкиЧислоДатаНачала.ОбъектАренды,
   ВТСтавкиЧислоДатаНачала.Ставка,
   ВТСтавкиЧислоДатаНачала.СпособНачисления,
   ВТСтавкиЧислоДатаНачала.Площадь,
   ВТСтавкиЧислоДатаНачала.ДатаНачала,
   МИНИМУМ(ЕСТЬNULL(ВТСтавкиЧислоДатаОкончания.ДатаНачала, ВТСтавкиЧислоДатаНачала.ДатаОкончанияПериода)) КАК ДатаОкончания
ПОМЕСТИТЬ ВТГрафикИзмененияСтавок
ИЗ
   ВТСтавкиЧислоДатаНачала КАК ВТСтавкиЧислоДатаНачала
       ЛЕВОЕ СОЕДИНЕНИЕ ВТСтавкиЧислоДатаНачала КАК ВТСтавкиЧислоДатаОкончания
       ПО ВТСтавкиЧислоДатаНачала.Услуга = ВТСтавкиЧислоДатаОкончания.Услуга
           И ВТСтавкиЧислоДатаНачала.ОбъектАренды = ВТСтавкиЧислоДатаОкончания.ОбъектАренды
           И ВТСтавкиЧислоДатаНачала.ДатаНачала < ВТСтавкиЧислоДатаОкончания.ДатаНачала
           И ВТСтавкиЧислоДатаНачала.ДатаЗаписи = ВТСтавкиЧислоДатаОкончания.ДатаЗаписи

СГРУППИРОВАТЬ ПО
   ВТСтавкиЧислоДатаНачала.СпособНачисления,
   ВТСтавкиЧислоДатаНачала.Услуга,
   ВТСтавкиЧислоДатаНачала.ДатаЗаписи,
   ВТСтавкиЧислоДатаНачала.ДатаНачала,
   ВТСтавкиЧислоДатаНачала.ОбъектАренды,
   ВТСтавкиЧислоДатаНачала.Ставка,
   ВТСтавкиЧислоДатаНачала.Площадь
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВЫБОР
       КОГДА &ПериодНД = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           ТОГДА ЗНАЧЕНИЕ(Перечисление.Ар_СтатусыОбъектовАренды.Свободен)
       КОГДА АР_СтатусыОбъектовАрендыСрезПоследних.ДатаНачалаАренды <= &ПериодНД
               И (&ПериодНД <= АР_СтатусыОбъектовАрендыСрезПоследних.ДатаОкончанияАренды
                   ИЛИ АР_СтатусыОбъектовАрендыСрезПоследних.ДатаОкончанияАренды = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
           ТОГДА АР_СтатусыОбъектовАрендыСрезПоследних.Статус
       ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.Ар_СтатусыОбъектовАренды.Свободен)
   КОНЕЦ КАК Статус1,
   АР_СтатусыОбъектовАрендыСрезПоследних.Услуга КАК Услуга,
   АР_СтатусыОбъектовАрендыСрезПоследних.ОбъектАренды,
   ВТГрафикИзмененияСтавок.Ставка,
   АР_СтатусыОбъектовАрендыСрезПоследних.Договор,
   АР_СтатусыОбъектовАрендыСрезПоследних.Договор.Владелец КАК Контрагент,
   АР_СтатусыОбъектовАрендыСрезПоследних.ДатаОкончанияАренды КАК ДатаОкончания,
   ВТГрафикИзмененияСтавок.СпособНачисления,
   ВТГрафикИзмененияСтавок.ДатаЗаписи
ПОМЕСТИТЬ ВТСтатусыОбъектовАренды
ИЗ
   РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних(, НЕ ОбъектАренды = ЗНАЧЕНИЕ(Справочник.Ар_ОбъектыАренды.ПустаяСсылка)) КАК АР_СтатусыОбъектовАрендыСрезПоследних
       ЛЕВОЕ СОЕДИНЕНИЕ ВТГрафикИзмененияСтавок КАК ВТГрафикИзмененияСтавок
       ПО АР_СтатусыОбъектовАрендыСрезПоследних.ОбъектАренды = ВТГрафикИзмененияСтавок.ОбъектАренды
           И АР_СтатусыОбъектовАрендыСрезПоследних.Услуга = ВТГрафикИзмененияСтавок.Услуга
           И (ВТГрафикИзмененияСтавок.ДатаОкончания = КОНЕЦПЕРИОДА(&ПериодНД, ДЕНЬ))
ГДЕ
   АР_СтатусыОбъектовАрендыСрезПоследних.ДатаНачалаАренды <= &ПериодНД
   И (&ПериодНД <= АР_СтатусыОбъектовАрендыСрезПоследних.ДатаОкончанияАренды
           ИЛИ АР_СтатусыОбъектовАрендыСрезПоследних.ДатаОкончанияАренды = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   СтатусыОбъектовАренды.ОбъектАренды,
   МИНИМУМ(ДОБАВИТЬКДАТЕ(СтатусыОбъектовАренды.ДатаНачалаАренды, ДЕНЬ, -1)) КАК ДатаОкончания
ПОМЕСТИТЬ ВТСтатусыСрезПервых
ИЗ
   РегистрСведений.АР_СтатусыОбъектовАренды КАК СтатусыОбъектовАренды
ГДЕ
   СтатусыОбъектовАренды.Период <= &Период
   И СтатусыОбъектовАренды.ДатаНачалаАренды > &Период

СГРУППИРОВАТЬ ПО
   СтатусыОбъектовАренды.ОбъектАренды
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТОбъектыАренды.ОбъектАренды,
   ВТОбъектыАренды.ТипОбъекта,
   ВТОбъектыАренды.ЗданиеИЭтаж,
   ЕСТЬNULL(ВТСтатусыОбъектовАренды.Статус1, ЗНАЧЕНИЕ(Перечисление.Ар_СтатусыОбъектовАренды.Свободен)) КАК Статус,
   ВТСтатусыОбъектовАренды.Услуга,
   ВТСтатусыОбъектовАренды.Ставка,
   ВТСобственникиОбъектовАренды.Собственник,
   ВТСобственникиОбъектовАренды.АгентскаяСхема,
   ВТСтатусыОбъектовАренды.Договор,
   ВТСтатусыОбъектовАренды.Контрагент,
   ЕСТЬNULL(ВТСтатусыОбъектовАренды.ДатаОкончания, ВТСтатусыСрезПервых.ДатаОкончания) КАК ДатаОкончания,
   ВТСтатусыОбъектовАренды.СпособНачисления,
   ВТСтатусыОбъектовАренды.ДатаЗаписи
ИЗ
   ВТОбъектыАренды КАК ВТОбъектыАренды
       ЛЕВОЕ СОЕДИНЕНИЕ ВТСтатусыОбъектовАренды КАК ВТСтатусыОбъектовАренды
       ПО ВТОбъектыАренды.ОбъектАренды = ВТСтатусыОбъектовАренды.ОбъектАренды
       ЛЕВОЕ СОЕДИНЕНИЕ ВТСобственникиОбъектовАренды КАК ВТСобственникиОбъектовАренды
       ПО ВТОбъектыАренды.ОбъектАренды = ВТСобственникиОбъектовАренды.ОбъектАренды
       ЛЕВОЕ СОЕДИНЕНИЕ ВТСтатусыСрезПервых КАК ВТСтатусыСрезПервых
       ПО ВТОбъектыАренды.ОбъектАренды = ВТСтатусыСрезПервых.ОбъектАренды
{ХАРАКТЕРИСТИКИ
   ТИП(Справочник.АР_ОбъектыАренды)
   ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
           СвойстваОбъектов.Ссылка,
           СвойстваОбъектов.Наименование,
           СвойстваОбъектов.ТипЗначения
       ИЗ
           ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
       ГДЕ
           СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ОбъектыАренды))
   ПОЛЕКЛЮЧА Ссылка
   ПОЛЕИМЕНИ Наименование
   ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
   ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствОбъектов
   ПОЛЕОБЪЕКТА Объект
   ПОЛЕВИДА Свойство
   ПОЛЕЗНАЧЕНИЯ Значение }
10 Нуф-Нуф
 
09.08.12
19:26
ужаснах
11 GanGster2012
 
09.08.12
19:29
Согласен )))
12 GanGster2012
 
09.08.12
19:33
Вопрос с датами отпадает, а где тогда в запросе вставить, ВЫРАЗИТЬ(ТвоёПоле КАК ЧИСЛО(15, 2))????
13 FIXXXL
 
09.08.12
19:36
*100
возьми целое
+0,5 (ну или как тебе надо)
/100

и никогда не забивайся на округление :)
14 GanGster2012
 
09.08.12
19:41
Так наверно не прокатит т.к. у этих значений разное кол-во цифр после запятой (((
15 FIXXXL
 
09.08.12
19:45
(14) тебе на выходе еще надо разное количество после запятой?
ну извините! :)
16 GanGster2012
 
09.08.12
19:47
нет на выходе не надо ))))
17 GanGster2012
 
09.08.12
19:48
Сюда можно скрин вставить?
18 FIXXXL
 
09.08.12
19:49
(17) нахер твой скрин, если ты попробовать не хочешь
19 GanGster2012
 
09.08.12
19:50
Я пробую тока ничего не выходит
20 FIXXXL
 
09.08.12
19:53
((400 * 0,35454533)*100)возьми целое (хер знает в чем ты пишешь)+0,5 (ну или как тебе надо)/100

так понятнее?
21 FIXXXL
 
09.08.12
19:54
со скобками мог подъ...бать :)
22 GanGster2012
 
09.08.12
19:59
Спасибо тебе конечно, щас буду разбираться
23 sanja26
 
09.08.12
20:03
(20) фигня какая-то
24 FIXXXL
 
10.08.12
01:47
(23) я прям растерялся :(
25 sanja26
 
10.08.12
02:11
(24) а если не 5 вторая цифра после запятой. пудришь мозг парню. там все штатными средствами округляется
26 FIXXXL
 
10.08.12
13:24
(25) да хоть двадцать пять
иногда лучше жевать
27 sanja26
 
10.08.12
13:35
(27) вот именно. жевательная резинка твое все)
28 FIXXXL
 
12.08.12
18:45
(27) ты б попробовал, прежде, чем рот разевать от жувки ;)