|
Ошибки в Веб клиенте | ☑ | ||
---|---|---|---|---|
0
kolp821
19.09.12
✎
09:59
|
При открытии Документа в веб клиенте возникает ошибка
Неопознанный оператор Перейти <<?>>~m_EXIT ; Как правильно написать процедуру с использованием безусловной передачей управления для веб клиента? |
|||
1
Fram
19.09.12
✎
10:00
|
больше 10 лет на 1С, и не разу не использовал "Перейти"
|
|||
2
SanGvin
19.09.12
✎
10:02
|
(0) может написать нормальный код без "Перейти" ? Благо в языке 1С хватает возможностей для этого.
|
|||
3
kolp821
19.09.12
✎
10:03
|
(2) первичный код не мой, там много меток, а хотелось использовать веб клиент
|
|||
4
kolp821
19.09.12
✎
10:03
|
Я в основном администратор и на втором месте программист...
|
|||
5
Fram
19.09.12
✎
10:07
|
хотел написать вызови того программиста.. но думаю лучше другого
|
|||
6
kolp821
19.09.12
✎
10:09
|
(5) и не получится того вызвать.) на пенсии он, и нет в городе.
|
|||
7
akaBrr
19.09.12
✎
10:11
|
ТС, кинь код, интересно чего там прог наворотил
|
|||
8
kolp821
19.09.12
✎
10:57
|
(7) Процедура конвертирования 12 бальной системы в 200 бальную.
&НаКлиенте Функция Конвертировать_12_200(Бал12) Перем Бал200 ; Перем Бал12_INT ; Перем Бал200_INT ; Бал12_INT = Цел((Бал12 + 0.01) * 10) ; // Преобразование в целое Бал200_INT = 0 ; // Для случая, если за пределами... // Реализуем расчет по нелинейной таблице : // """""""""""""""""""""""""""""""""""""""" Если Бал12_INT = 10 тогда Бал200_INT = 1060 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 11 тогда Бал200_INT = 1066 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 12 тогда Бал200_INT = 1072 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 13 тогда Бал200_INT = 1078 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 14 тогда Бал200_INT = 1084 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 15 тогда Бал200_INT = 1090 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 16 тогда Бал200_INT = 1096 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 17 тогда Бал200_INT = 1102 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 18 тогда Бал200_INT = 1108 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 19 тогда Бал200_INT = 1114 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 20 тогда Бал200_INT = 1120 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 21 тогда Бал200_INT = 1126 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 22 тогда Бал200_INT = 1132 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 23 тогда Бал200_INT = 1138 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 24 тогда Бал200_INT = 1144 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 25 тогда Бал200_INT = 1150 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 26 тогда Бал200_INT = 1156 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 27 тогда Бал200_INT = 1162 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 28 тогда Бал200_INT = 1168 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 29 тогда Бал200_INT = 1174 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 30 тогда Бал200_INT = 1180 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 31 тогда Бал200_INT = 1186 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 32 тогда Бал200_INT = 1192 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 33 тогда Бал200_INT = 1198 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 34 тогда Бал200_INT = 1204 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 35 тогда Бал200_INT = 1210 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 36 тогда Бал200_INT = 1216 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 37 тогда Бал200_INT = 1222 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 38 тогда Бал200_INT = 1228 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 39 тогда Бал200_INT = 1234 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 40 тогда Бал200_INT = 1240 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 41 тогда Бал200_INT = 1250 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 42 тогда Бал200_INT = 1259 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 43 тогда Бал200_INT = 1269 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 44 тогда Бал200_INT = 1278 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 45 тогда Бал200_INT = 1288 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 46 тогда Бал200_INT = 1297 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 47 тогда Бал200_INT = 1307 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 48 тогда Бал200_INT = 1316 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 49 тогда Бал200_INT = 1326 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 50 тогда Бал200_INT = 1335 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 51 тогда Бал200_INT = 1345 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 52 тогда Бал200_INT = 1354 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 53 тогда Бал200_INT = 1364 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 54 тогда Бал200_INT = 1373 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 55 тогда Бал200_INT = 1383 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 56 тогда Бал200_INT = 1392 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 57 тогда Бал200_INT = 1402 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 58 тогда Бал200_INT = 1411 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 59 тогда Бал200_INT = 1421 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 60 тогда Бал200_INT = 1430 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 61 тогда Бал200_INT = 1440 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 62 тогда Бал200_INT = 1449 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 63 тогда Бал200_INT = 1459 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 64 тогда Бал200_INT = 1468 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 65 тогда Бал200_INT = 1478 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 66 тогда Бал200_INT = 1487 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 67 тогда Бал200_INT = 1497 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 68 тогда Бал200_INT = 1506 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 69 тогда Бал200_INT = 1516 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 70 тогда Бал200_INT = 1525 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 71 тогда Бал200_INT = 1535 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 72 тогда Бал200_INT = 1544 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 73 тогда Бал200_INT = 1554 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 74 тогда Бал200_INT = 1563 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 75 тогда Бал200_INT = 1573 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 76 тогда Бал200_INT = 1582 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 77 тогда Бал200_INT = 1592 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 78 тогда Бал200_INT = 1601 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 79 тогда Бал200_INT = 1611 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 80 тогда Бал200_INT = 1620 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 81 тогда Бал200_INT = 1630 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 82 тогда Бал200_INT = 1639 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 83 тогда Бал200_INT = 1649 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 84 тогда Бал200_INT = 1658 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 85 тогда Бал200_INT = 1668 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 86 тогда Бал200_INT = 1677 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 87 тогда Бал200_INT = 1687 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 88 тогда Бал200_INT = 1696 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 89 тогда Бал200_INT = 1705 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 90 тогда Бал200_INT = 1715 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 91 тогда Бал200_INT = 1724 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 92 тогда Бал200_INT = 1734 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 93 тогда Бал200_INT = 1743 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 94 тогда Бал200_INT = 1753 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 95 тогда Бал200_INT = 1762 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 96 тогда Бал200_INT = 1772 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 97 тогда Бал200_INT = 1781 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 98 тогда Бал200_INT = 1791 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 99 тогда Бал200_INT = 1800 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 100 тогда Бал200_INT = 1810 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 101 тогда Бал200_INT = 1819 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 102 тогда Бал200_INT = 1829 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 103 тогда Бал200_INT = 1838 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 104 тогда Бал200_INT = 1848 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 105 тогда Бал200_INT = 1857 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 106 тогда Бал200_INT = 1867 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 107 тогда Бал200_INT = 1876 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 108 тогда Бал200_INT = 1886 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 109 тогда Бал200_INT = 1895 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 110 тогда Бал200_INT = 1905 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 111 тогда Бал200_INT = 1914 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 112 тогда Бал200_INT = 1924 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 113 тогда Бал200_INT = 1933 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 114 тогда Бал200_INT = 1943 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 115 тогда Бал200_INT = 1952 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 116 тогда Бал200_INT = 1962 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 117 тогда Бал200_INT = 1971 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 118 тогда Бал200_INT = 1981 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 119 тогда Бал200_INT = 1990 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- Если Бал12_INT = 120 тогда Бал200_INT = 2000 ; Перейти ~m_EXIT ; КонецЕсли; //---------------------- //================================================== ~m_EXIT : Бал200 = Бал200_INT / 10 ; Возврат Бал200 ; КонецФункции |
|||
9
kolp821
19.09.12
✎
10:58
|
Есть еще одна процедура где используется Go to
&НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если ТекущийОбъект.РеквизитОплатаЗаНавчання.Вхідний_ОКР = Перечисления.ВидиВхідногоОКР.НаБазі9кл тогда КодВозврата = 9 ; Перейти ~m_Obx0 ; КонецЕсли; Если ТекущийОбъект.РеквизитОплатаЗаНавчання.Вхідний_ОКР = Перечисления.ВидиВхідногоОКР.НаБазі11кл тогда КодВозврата = 11 ; Перейти ~m_Obx0 ; КонецЕсли; // Для всех остальных : КодВозврата = 1 ; ~m_Obx0 : // Сумма балов : СуммаБалов = 0.0 ; Для Каждого Стр из ТекущийОбъект.ТабличнаяЧастьБалиКонкурсу Цикл СуммаБалов = СуммаБалов + Число(Стр.Бал) ; КонецЦикла; // Вычисление рейтинга : Если КодВозврата = 9 тогда // 9-клашки : ТекущийОбъект.Рейтинг_БАЛ = ТекущийОбъект.Атестат_середній_бал + СуммаБалов ; Перейти ~m_Obx ; КонецЕсли; Если КодВозврата = 11 тогда // 11-клашки : ТекущийОбъект.Рейтинг_БАЛ = ТекущийОбъект.Атестат_середній_бал_200 + СуммаБалов ; Перейти ~m_Obx ; КонецЕсли; // Все остальные : ТекущийОбъект.Рейтинг_БАЛ = СуммаБалов; ~m_Obx : ; КонецПроцедуры |
|||
10
Fram
19.09.12
✎
11:02
|
чуть не подавился
|
|||
11
akaBrr
19.09.12
✎
11:03
|
(7) за такой код нужно бить кандилябром
|
|||
12
ptiz
19.09.12
✎
11:05
|
(11) Просто ему платили за строчки кода.
|
|||
13
ukolabrother
19.09.12
✎
11:05
|
е..й стыд
|
|||
14
Balonbl4
19.09.12
✎
11:07
|
(8) Феерично
|
|||
15
akaBrr
19.09.12
✎
11:12
|
(8) я бы так написал, если еще подумать можно еще наверное упростить
&НаКлиенте Функция Конвертировать_12_200(Бал12) Перем Бал200 ; Перем Бал12_INT ; Перем Бал200_INT ; Бал12_INT = Цел((Бал12 + 0.01) * 10) ; Бал200_INT = 0 ; Если Бал12_INT>=10 И Бал12_INT<=120 Тогда Бал200_INT = (Бал12_INT-10)*5+Бал12_INT+1050; КонецЕсли; Бал200 = Бал200_INT / 10 ; Возврат Бал200 ; КонецФункции |
|||
16
Mort
19.09.12
✎
11:12
|
За пять минут можно написать обработку которая автоматом превратит это г*но (8) в нормальный код.
|
|||
17
akaBrr
19.09.12
✎
11:14
|
прог наверное на асме всю жизнь писал :)
|
|||
18
Mort
19.09.12
✎
11:14
|
(15) Там нелинейная таблица. Её всё равно где-то надо хранить, например, мутить соответствие.
|
|||
19
akaBrr
19.09.12
✎
11:16
|
(18) там есть определенная зависимость, помнится у меня на олимпиаде по программированию подобная задачка была :)
|
|||
20
Mort
19.09.12
✎
11:19
|
(19) теоретически всегда можно выделить многочлен чтобы он удовлетворял любым парам Y, X :) Не думаю что это будет лучшим решением.
|
|||
21
akaBrr
19.09.12
✎
11:21
|
(20) точно, у меня некорректный код, лучше соответствие
|
|||
22
kolp821
19.09.12
✎
11:28
|
(20) без меток не обойтись?
|
|||
23
Mort
19.09.12
✎
11:31
|
(22) Вобщем-то можно было и без меток наг*нокодить, типа :
... Если Бал12_INT = 10 тогда Бал200_INT = 1060 ; Возврат Бал200_INT/10; КонецЕсли; ... и т.д. |
|||
24
kolp821
19.09.12
✎
11:36
|
(23) спасибо... а что делать с этим кодом?
&НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если ТекущийОбъект.РеквизитОплатаЗаНавчання.Вхідний_ОКР = Перечисления.ВидиВхідногоОКР.НаБазі9кл тогда КодВозврата = 9 ; Перейти ~m_Obx0 ; КонецЕсли; Если ТекущийОбъект.РеквизитОплатаЗаНавчання.Вхідний_ОКР = Перечисления.ВидиВхідногоОКР.НаБазі11кл тогда КодВозврата = 11 ; Перейти ~m_Obx0 ; КонецЕсли; // Для всех остальных : КодВозврата = 1 ; ~m_Obx0 : // Сумма балов : СуммаБалов = 0.0 ; Для Каждого Стр из ТекущийОбъект.ТабличнаяЧастьБалиКонкурсу Цикл СуммаБалов = СуммаБалов + Число(Стр.Бал) ; КонецЦикла; // Вычисление рейтинга : Если КодВозврата = 9 тогда // 9-клашки : ТекущийОбъект.Рейтинг_БАЛ = ТекущийОбъект.Атестат_середній_бал + СуммаБалов ; Перейти ~m_Obx ; КонецЕсли; Если КодВозврата = 11 тогда // 11-клашки : ТекущийОбъект.Рейтинг_БАЛ = ТекущийОбъект.Атестат_середній_бал_200 + СуммаБалов ; Перейти ~m_Obx ; КонецЕсли; // Все остальные : ТекущийОбъект.Рейтинг_БАЛ = СуммаБалов; ~m_Obx : ; КонецПроцедуры |
|||
25
Mort
19.09.12
✎
11:39
|
(24) Эммм. Ты реально по пути 23 пошёл... Может лучше навалять кодеру?
|
|||
26
kolp821
19.09.12
✎
11:44
|
(25) с удовольствием... но не хочется его видеть, и так он сделал много нехороших дел институту.
|
|||
27
Mort
19.09.12
✎
11:54
|
Первая процедура:
&НаКлиенте Функция Конвертировать_12_200(Бал12) Бал12_INT = Цел((Бал12 + 0.01) * 10) ; // Преобразование в целое Соотв = Новый Соответствие; Соотв.Вставить(10, 1060); Соотв.Вставить(11, 1066); // и т.д. .... сюда прописываешь все пары. Можно поиском и заменой превратить ересь из (8) в такие строки. Возврат Соотв.Получить(Бал12_INT)/10; КонецФункции |
|||
28
Mort
19.09.12
✎
11:58
|
Ну а во второй тупо всё всунуть в блок "Если ТекущийОбъект.РеквизитОплатаЗаНавчання.Вхідний_ОКР = Перечисления.ВидиВхідногоОКР.НаБазі9кл тогда" без всяких переходов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |