|
v8: Преобразование значения к типу Число не может быть выполнено | ☑ | ||
---|---|---|---|---|
0
amadeus2010
05.07.14
✎
14:46
|
добрый день при выполнении запроса по формированию отчета выходит эта ошибка преобразование значения к типу Число не может быть выполнено в
ОбластьСекция_7.Параметры.ИтогСтрахСумма = ИтогСтрахСумма+СтрахСумма; хотя поле ИтогСтрахСумма имеет значение Число, как и остальные поля Добавил в запрос ЕстьNULL, все равно выходит ошибка |
|||
1
Wobland
05.07.14
✎
14:48
|
что планируешь делать?
|
|||
2
amadeus2010
05.07.14
✎
14:54
|
вот хочу спросить совет что можно сделать
|
|||
3
ДенисЧ
05.07.14
✎
14:55
|
не туда добавил. Ваш КЭП
|
|||
4
Wobland
05.07.14
✎
14:56
|
(2) нажать шифт+ф9 и удивлённо рассмотреть значения в переменных
|
|||
5
amadeus2010
05.07.14
✎
14:58
|
а куда надо было добавить? у меня так сейчас
//////////////////////////////////////////////////// "ВЫБРАТЬ | УчетПерестраховочныхСлиповОбороты.НомерПолиса, | УчетПерестраховочныхСлиповОбороты.ПолисНомер.ВидСтрахования, | УчетПерестраховочныхСлиповОбороты.Тип.НомерРезерва КАК НомерРезерва, | УчетПерестраховочныхСлиповОбороты.Тип.НомерРезерва1 КАК НомерРезерва1, | УчетПерестраховочныхСлиповОбороты.ДатаНачала, | УчетПерестраховочныхСлиповОбороты.ДатаОкончания, | УчетПерестраховочныхСлиповОбороты.Страхователь, | УчетПерестраховочныхСлиповОбороты.НомерСлипа, | УчетПерестраховочныхСлиповОбороты.Перестраховщик, | УчетПерестраховочныхСлиповОбороты.ДатаНачалаПС, | УчетПерестраховочныхСлиповОбороты.ДатаОкончанияПС, | ЕСТЬNULL(УчетПерестраховочныхСлиповОбороты.СтраховаяСуммаПрямОборот,0) КАК СтраховаяСуммаПрям, | ЕСТЬNULL(УчетПерестраховочныхСлиповОбороты.СтраховаяСуммаПринОборот,0) КАК СтраховаяСуммаПрин, | ЕСТЬNULL(УчетПерестраховочныхСлиповОбороты.СтраховаяПремияПрямОборот,0) КАК СтраховаяПремияПрям, | ЕСТЬNULL(УчетПерестраховочныхСлиповОбороты.СтраховаяПремияПринОборот,0) КАК СтраховаяПремияПрин, | ЕСТЬNULL(УчетПерестраховочныхСлиповОбороты.КомиссияПрямОборот,0) КАК КомиссияПрям, | ЕСТЬNULL(УчетПерестраховочныхСлиповОбороты.КомиссияПринОборот,0) КАК КомиссияПрин, | ЕСТЬNULL(УчетПерестраховочныхСлиповОбороты.ПерестрахСуммаОборот,0) КАК ПерестрахСумма, | ЕСТЬNULL(УчетПерестраховочныхСлиповОбороты.ПерестрахПремияОборот,0) КАК ПерестрахПремия, | ЕСТЬNULL(УчетПерестраховочныхСлиповОбороты.КомиссияПолученнаяОборот,0) КАК КомиссияПолученная, | УчетПерестраховочныхСлиповОбороты.КомиссияПрямОборот+УчетПерестраховочныхСлиповОбороты.КомиссияПринОборот+УчетПерестраховочныхСлиповОбороты.КомиссияПолученнаяОборот КАК Начислено, | УчетПерестраховочныхСлиповОбороты.СтраховаяСуммаПрямОборот-УчетПерестраховочныхСлиповОбороты.СтраховаяПремияПрямОборот КАК ОбязательныеВыплаты |ИЗ | РегистрНакопления.УчетПерестраховочныхСлипов.Обороты КАК УчетПерестраховочныхСлиповОбороты"; //////////////////////////////////////////////////// ИтогСтрахСумма = 0; ИтогНачисленоПолиса =0; ИтогОплаченоПолиса = 0; ИтогНачисленоКом= 0; ИтогОбязательныеВыплаты =0; ИтогВыплатаПриПрекращении =0; ИтогПереданнаяСтрахСумма =0; ИтогНачисленоСлип1 =0; ИтогНачисленоСлип2 =0; ИтогНачисленоСлип3 =0; ИтогНачисленоСлип4 =0; ИтогОплаченоСлип = 0; ИтогНачисленоКом1=0; ИтогНачисленоКом2 = 0; ИтогНачисленоКом3 =0; ИтогНачисленоКом4 =0; ИтогВыплатаПриПрекращенииСлипа =0; СтрахСумма = Шапка.СтраховаяСуммаПрям; НачисленоПолиса =Шапка.СтраховаяПремияПрям; НачисленоКом =Шапка.КомиссияПолученная; ОбязательныеВыплаты =Шапка.ОбязательныеВыплаты; ОплаченоПолиса = Шапка.ПерестрахПремия; ВыплатаПриПрекращении =Шапка.КомиссияПолученная; ПереданнаяСтрахСумма=Шапка.СтраховаяСуммаПрин; НачисленоСлип1 = Шапка.СтраховаяСуммаПрям; НачисленоСлип2 = Шапка.СтраховаяСуммаПрям; НачисленоСлип3 =Шапка.СтраховаяСуммаПрин; НачисленоСлип4 = Шапка.СтраховаяПремияПрин; НачисленоКом1= Шапка.КомиссияПрям; НачисленоКом2 = Шапка.КомиссияПрин; НачисленоКом3= Шапка.КомиссияПолученная; НачисленоКом4 =Шапка.Начислено; ОплаченоСлип = Выборка.СуммаОплаты; ВыплатаПриПрекращенииСлипа= Шапка.КомиссияПолученная; ОбластьСекция_7 = Макет.ПолучитьОбласть("Секция_7"); ОбластьСекция_7.Параметры.ИтогСтрахСумма = ИтогСтрахСумма+СтрахСумма; ///////////////////////////////////////////////////////// |
|||
6
amadeus2010
05.07.14
✎
14:58
|
что я не так сделал?
|
|||
7
Wobland
05.07.14
✎
14:59
|
(6) применил естьнулл и не рассказал, что за шапка
|
|||
8
GROOVY
05.07.14
✎
15:00
|
Не инициализировал переменную ИтогСтрахСумма.
Излишне использовал функцию ISNULL. Много времени провел на форуме. |
|||
9
Wobland
05.07.14
✎
15:00
|
(8) первое присвоение ж
|
|||
10
GROOVY
05.07.14
✎
15:03
|
(9) А не факт что там все буквы русские.
|
|||
11
amadeus2010
05.07.14
✎
15:05
|
(8) ИтогСтрахСумма указана как переменная в отчете
вот шапка Шапка =Запрос.Выполнить().Выбрать(); |
|||
12
Wobland
05.07.14
✎
15:06
|
(11) назови антоним слова "предыдущий". 9 букв, первая С. время пошло
|
|||
13
amadeus2010
05.07.14
✎
15:07
|
(9)не совсем понял
|
|||
14
amadeus2010
05.07.14
✎
15:12
|
(12) следующий
|
|||
15
amadeus2010
05.07.14
✎
15:15
|
имеется ввиду Шапка=Запрос.Выполнить.Следующий
Пока Цикл так пробежать по значениям? |
|||
16
hhhh
05.07.14
✎
17:50
|
ИтогСтрахСумма присваиваешь ноль? Покажи где?
|
|||
17
Wobland
05.07.14
✎
17:52
|
(16) он по выборке не пошёл
|
|||
18
GreatOne
05.07.14
✎
17:58
|
СтрахСумма = Шапка.СтраховаяСуммаПрям; Что это? Это число разве?
|
|||
19
amadeus2010
07.07.14
✎
11:13
|
Шапка.СтраховаяСуммаПрям из запроса берется и содержит Число как значение
|
|||
20
Wobland
07.07.14
✎
11:14
|
(19) поздравлять?
|
|||
21
amadeus2010
07.07.14
✎
11:51
|
пока не с чем, как сделаю то обязательно доложу о результатах
|
|||
22
amadeus2010
07.07.14
✎
12:25
|
сделал так
///////////////////////////////////////////////// Шапка =Запрос.Выполнить(); Пока Шапка.Выбрать().Следующий() Цикл ОбластьСекция_4 = Макет.ПолучитьОбласть("Секция_4"); ОбластьСекция_4.Параметры.НомерПолиса = Шапка.НомерПолиса; ОбластьСекция_4.Параметры.ДатаЗаявления = Шапка.ДатаНачала; ОбластьСекция_4.Параметры.НачДата = Шапка.ДатаНачала; ОбластьСекция_4.Параметры.КонДата = Шапка.ДатаОкончания; ОбластьСекция_4.Параметры.Перестраховщик = Шапка.Перестраховщик; ОбластьСекция_4.Параметры.ПереданнаяСтрахСумма = Шапка.СтраховаяСуммаПрин; ОбластьСекция_4.Параметры.НачисленоСлип1 = Шапка.ПерестрахСумма; ОбластьСекция_4.Параметры.НачисленоСлип2 = Шапка.СтраховаяСуммаПрям; ОбластьСекция_4.Параметры.НачисленоСлип3 = Шапка.СтраховаяСуммаПрин; ОбластьСекция_4.Параметры.НачисленоСлип4 = Шапка.СтраховаяПремияПрин; ОбластьСекция_4.Параметры.ОплаченоСлип = Выборка.СуммаОплаты; ОбластьСекция_4.Параметры.НачисленоКом1 = Шапка.КомиссияПрям; ОбластьСекция_4.Параметры.НачисленоКом2 = Шапка.КомиссияПрин; ОбластьСекция_4.Параметры.НачисленоКом3 = Шапка.КомиссияПолученная; ОбластьСекция_4.Параметры.НачисленоКом4 = Шапка.Начислено; ОбластьСекция_4.Параметры.ДатаПрекращения = Шапка.ДатаОкончанияПС; ОбластьСекция_4.Параметры.ВыплатаПриПрекращенииСлипа = Шапка.КомиссияПолученная; ОбластьСекция_4.Параметры.НомерСлипа = Шапка.НомерСлипа; ОбластьСекция_4.Параметры.НачДатаСлипа = Шапка.ДатаНачала; ОбластьСекция_4.Параметры.КонДатаСлипа = Шапка.ДатаОкончания; ТабДок.Вывести(ОбластьСекция_4); ОбластьСекция_2 = Макет.ПолучитьОбласть("Секция_2"); ОбластьСекция_2 .Параметры.Номер = Шапка.НомерПолиса; ОбластьСекция_2.Параметры.НомерПолиса = Шапка.НомерПолиса; ОбластьСекция_2.Параметры.ДатаЗаявления = Шапка.ДатаНачала; ОбластьСекция_2.Параметры.НачДата = Шапка.ДатаНачала; ОбластьСекция_2.Параметры.КонДата = Шапка.ДатаОкончания; ОбластьСекция_2.Параметры.СтрахСумма = Шапка.СтраховаяСуммаПрям; ОбластьСекция_2.Параметры.НачисленоПолиса = Шапка.СтраховаяПремияПрям; ОбластьСекция_2.Параметры.ОплаченоПолиса= Шапка.ПерестрахПремия; ОбластьСекция_2.Параметры.НачисленоКом = Шапка.КомиссияПолученная; ОбластьСекция_2.Параметры.ОбязательныеВыплаты = Шапка.ОбязательныеВыплаты; ОбластьСекция_2.Параметры.ДатаПрекращения = Шапка.ДатаОкончания; ОбластьСекция_2.Параметры.ВыплатаПриПрекращении = Шапка.КомиссияПолученная; ОбластьСекция_2.Параметры.Перестраховщик = Шапка.Перестраховщик; ОбластьСекция_2.Параметры.ПереданнаяСтрахСумма = Шапка.СтраховаяСуммаПрин; ОбластьСекция_2.Параметры.НачисленоСлип1 = Шапка.ПерестрахСумма; ОбластьСекция_2.Параметры.НачисленоСлип2 = Шапка.СтраховаяСуммаПрям; ОбластьСекция_2.Параметры.НачисленоСлип3 = Шапка.СтраховаяСуммаПрин; ОбластьСекция_2.Параметры.НачисленоСлип4 = Шапка.СтраховаяПремияПрин; ОбластьСекция_2.Параметры.ОплаченоСлип = Выборка.СуммаОплаты; ОбластьСекция_2.Параметры.НачисленоКом1 = Шапка.КомиссияПрям; ОбластьСекция_2.Параметры.НачисленоКом2 = Шапка.КомиссияПрин; ОбластьСекция_2.Параметры.НачисленоКом3 = Шапка.КомиссияПолученная; ОбластьСекция_2.Параметры.НачисленоКом4 = Шапка.Начислено; ОбластьСекция_2.Параметры.ДатаПрекращения = Шапка.ДатаОкончанияПС; ОбластьСекция_2.Параметры.ВыплатаПриПрекращенииСлипа = Шапка.КомиссияПолученная; ОбластьСекция_2.Параметры.НомерСлипа = Шапка.НомерСлипа; ОбластьСекция_2.Параметры.НачДатаСлипа = Шапка.ДатаНачала; ОбластьСекция_2.Параметры.КонДатаСлипа = Шапка.ДатаОкончания; ТабДок.Вывести(ОбластьСекция_2); КонецЦикла; //////////////////////////////////////////////// выдает ошибку что ОбластьСекция_4.Параметры.НомерПолиса = Шапка.НомерПолиса; не обнаружено поле НомерПолиса хотя такое поле в макете отчета имеется |
|||
23
amadeus2010
07.07.14
✎
12:28
|
теперь он дает ошибку и на Шапка.ДатаНачала, получается что так он будет по каждому полю макета давать ошибку? Как правильно применить конструкцию использования Пока Шапка.Выбрать().Следующий()?
|
|||
24
Timon1405
07.07.14
✎
12:38
|
Воспользоваться КонструкторомЗапросаСОбработкойРезультатаИВыводомВТабличныйДокумент уже было?
|
|||
25
floody
07.07.14
✎
12:41
|
(23) выбрать - 1 раз, следующий - много раз
|
|||
26
amadeus2010
07.07.14
✎
12:42
|
(22) касательно конструкции-не правильно сформировал конструкцию запроса надо Результат =Запрос.Выполнить();
Шапка =Результат.Выбрать(); Пока Шапка.Следующий() Цикл |
|||
27
Крошка Ру
07.07.14
✎
13:31
|
(22) (23) а НомерПолиса и ДатаНачала - это точно параметры? Может текст?
|
|||
28
GreatOne
07.07.14
✎
14:10
|
||||
29
amadeus2010
07.07.14
✎
14:24
|
(28) в целом так и есть, но иногда ошибаются все так как люди.
|
|||
30
amadeus2010
07.07.14
✎
14:26
|
(27) это параметры, запрос и выборка по нему уже работает, остались мелкие детали
|
|||
31
hhhh
07.07.14
✎
14:38
|
(30) но что действительно реально не можешь поставить точку останова на этой строчке и посмотреть какая из переменных не число?
|
|||
32
vmv
07.07.14
✎
14:39
|
уже 5 лет амадеус радует вопросами, главное - растет
*доволен* |
|||
33
amadeus2010
07.07.14
✎
14:40
|
(30)так и делаю сейчас проверяю где есть ошибка
|
|||
34
amadeus2010
07.07.14
✎
14:41
|
(32)спасибо за сочувствие и надежду на рост, так и живем где спросим где прочитаем, работу в итоге сделаем:)
|
|||
35
amadeus2010
07.07.14
✎
16:02
|
еще дополнительно вопрос. У меня отчет состоит из 10 макетов, как можно вывести эти макеты с данными. Я создал для формирования макетов свою процедуру и потом в процедуре Сформировать вызываю их например так
Процедура Сформировать(Кнопка) Проц1(); Проц2() и т.д. Только при этом данные формируются по 1-му макету, а остальные макеты выходят как чистые листы |
|||
36
IVT_2009
07.07.14
✎
16:14
|
почему то больше нравится использовать
ВЫБОР КОГДА значение IS NULL ТОГДА 0 ИНАЧЕ значение КОНЕЦ |
|||
37
IVT_2009
07.07.14
✎
16:19
|
(35) наверное для каждого макета надо рассчитать данные и вывести их методом .показать().
Вероятно у вас замыкание на табДок идет , точней его повторное использование. |
|||
38
IVT_2009
07.07.14
✎
16:29
|
скорей всего табДок у вас присваивается разным таблицам. Проверяйте где это происходит. А для начала для каждого отчета сделайте табДок1,табДок2 ....
|
|||
39
amadeus2010
07.07.14
✎
16:37
|
(38) я так и сделал для каждого нового макета свой Табдок1, Табдок2 и т.д скорее всего у меня в каждом макете используется структура
Пока Шапка.Следующий() Цикл, начиная с шапки отчета где указаны имена табличных полей, вот они у меня для макета1 повторяются по циклу |
|||
40
Wobland
07.07.14
✎
16:48
|
> скорее всего у меня...
нене, гадать - это наше дело, а не твоё |
|||
41
NeAdmin
07.07.14
✎
18:26
|
(35) Тут код надо смотреть
|
|||
42
NeAdmin
07.07.14
✎
18:31
|
(23) Какую? Такую же как и с номером полиса? Если да, то что было не так, как исправил...?
|
|||
43
amadeus2010
08.07.14
✎
08:46
|
(42) проблему исправил, теперь вопрос остался как вывести по одной кнопке сформировать несколько макетов отчета
|
|||
44
Wobland
08.07.14
✎
08:46
|
(43) это программировать надо
|
|||
45
amadeus2010
08.07.14
✎
09:06
|
у меня сейчас так идет ТабДок =Новый ТабДокумент; тело процедуры, ТабДок.Показать();
ТабДок2 =Новый ТабДокумент; тело процедуры, ТабДок2.Показать(); и все это находиться в одной процедуре, которая потом вызывается при нажатии Сформировать |
|||
46
Wobland
08.07.14
✎
09:07
|
гляжу, несколько макетов уже формируется. поздравляю!
|
|||
47
amadeus2010
08.07.14
✎
09:09
|
пока что убрал цикличность вывода данных в макете
|
|||
48
NeAdmin
08.07.14
✎
10:43
|
(47) И все равно не заполняется? Скорей всего теле процедуры, где табдок2 не верно обращаешься к переменным каким то... гадание тут не поможет)) надо видеть
|
|||
49
amadeus2010
08.07.14
✎
14:36
|
я не гадаю я проверяю код где ошибка есть исправляю
|
|||
50
NeAdmin
08.07.14
✎
15:39
|
Гадать, в частности, мне приходится. Кода то не вижу, а аналогичную задачу решать приходилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |