Имя: Пароль:
1C
1С v8
2 строчки кода убивающие приложение
0 skaparez
 
08.11.12
17:11
для самоубийства расположить в модуле объекта и потом его открыть
<1C>
АварийноЗавершитьРаботу = Новый ХранилищеЗначения(ЭтотОбъект);
Самоубиться = АварийноЗавершитьРаботу.Получить();
</1C>
1 zak555
 
08.11.12
17:12
а так ?

Новый ХранилищеЗначения(ЭтотОбъект).Получить();
2 skaparez
 
08.11.12
17:13
не сработает - нужно создать объект в переменную
3 drcrasher
 
08.11.12
17:13
(задумчиво)
мне всегда было интересно, каким образом люди находят =такие= баги...
4 skaparez
 
08.11.12
17:14
история поиска очень сложна могу написать...
5 drcrasher
 
08.11.12
17:15
(4) а давай =)
6 Fish
 
08.11.12
17:17
Процедура ВыполнитьРекурсию()
   ВыполнитьРекурсию();
КонецПроцедуры


Правда не две, а три строчки, но 1С валит надёжно :))
7 Maxus43
 
08.11.12
17:18
8 drcrasher
 
08.11.12
17:18
(6) скорее вывешивает.
а у ТС - сворачивает в коврик =)
9 drcrasher
 
08.11.12
17:19
(0) кстати, в ИР ошибка:
Встроенный язык: Строка 1: Поле объекта недоступно для записи (ЭтотОбъект)
10 Fish
 
08.11.12
17:19
(8) Нет. Не вывешивает, а именно валит. При этом 1С даже "мяу" не успевает сказать :))
11 zak555
 
08.11.12
17:19
//не валит =)
Процедура ВыполнитьРекурсию(Шаг = 100)
   Если Шаг = 0 Тогда Возврат ; КонецЕсли;
   ВыполнитьРекурсию(Шаг - 1);
КонецПроцедуры
12 acsent
 
08.11.12
17:20
А как же
а = Новый Структура;
а.Вставить("а", а);
а = ЗначениеВСтрокуВнутр(а);
13 H A D G E H O G s
 
08.11.12
17:20
(12) 3 строчки
14 acsent
 
08.11.12
17:20
Хотя это таже рекурсия
15 skaparez
 
08.11.12
17:20
хотелось в СКД в вычисляемых полях использовать свои функции - но их можно вызвать только если находятся в общих модулях: идея - поместить одну функцию в общий модуль но в неё передавать объект отчета (обработки), а потом оттуда вызывать экспортную функцию объета отчета... просто так передаваться не хотел пришлось его запихнуть в параметр - но потом не хотел выполняться запрос (получение значения из параметра), тут я подумал буду при открытии обработки хранить гуид и объект обработки в модуле сеанса (там можно использовать хранилища значений (но как оказалось они не пригодны для объектов) и таким образом и вышла эта фигня
16 H A D G E H O G s
 
08.11.12
17:20
(12) Там у тебя бесконечная реккусрия при сериализации начинается. Это нормально.
17 Fish
 
08.11.12
17:22
(11) Так у тебя там лишняя строчка с Если :))
18 Fish
 
08.11.12
17:24
(11) Или можешь изменить Шаг со 100 на 2000. Тогда тоже упадёт. У меня уже на 1801-м вызове падает.
19 skaparez
 
08.11.12
17:25
(17) играем в игру у кого меньше строчек? :)
20 drcrasher
 
08.11.12
17:25
(15) "только 1С 8.1 может позволить в полной мере насладиться процессом удаления гланд через ж?пy" (с) утерян
21 drcrasher
 
08.11.12
17:26
(16) вывод: 1ска сворачивается по стеку в рекурсии.
22 Fish
 
08.11.12
17:26
(19) Не, домой уже пора.
23 i-rek
 
08.11.12
17:27
у меня однозначная ассоциация с "вжик" - сказала японская пила )))
24 GANR
 
08.11.12
17:29
(7) Плохо валит. Надо несколько таблиц с большим количеством данных без условия соединить - тогда не только текущая база, но и вообще всех пользователей из всех баз порубит и ресурсы сервера отхватит.
25 drcrasher
 
08.11.12
17:33
(24) как-то на заре своего познания sql диалекта, написал запрос, который возвращает данные из нескольких таблиц. примерно так:
select * from t1,t2,t3,...,t10 where t1.f1 = t2.f1 and t1.f2=t6.f10...

спасибо, что хостер адекватный оказался и не отрубил сайт, а всего лишь обматерил тихонько и посоветовал книжки почитать
26 Утконос
 
08.11.12
17:33
Одна строчка
ЗавершитьРаботуСистемы(Ложь)
27 GANR
 
08.11.12
17:35
(25) если ещё where убрать - вообще класс будет
28 drcrasher
 
08.11.12
17:36
(26) не взлетит
(0) а вот что валит и конфигуратор, и предприятие при открытии конструктора запросов?
29 skaparez
 
08.11.12
17:36
(26) Если вызов осуществляется из модуля формы, открытой в модальном режиме, завершение работы системы не выполняется
30 drcrasher
 
08.11.12
17:37
(27) ага. Форма.МодульФормы:
р=Запрос.выполнить.выгрузить
для к = 0 по р.количество() -1 цикл
если р.п1 =.....
31 skaparez
 
08.11.12
17:46
(28) было такое, но дело было в перезапущеной службе вроде..

ещё есть похожая фича  
если в форме есть табличное поле - дерево значений
- добавляем колонку - в ней указываем отображение иерархии

в режиме предприятия:
добавляем строку, ей подчиненную (уровень 2) и ещё одну подчиненную (уровень 3)

если удалять развернутое дерево (корневую строку) - вешается 1с и выдает ошибку С++ и говорит пока
если нет - дерево удаляется
32 skaparez
 
08.11.12
17:52
(31) приходилось ставить программные заглушки на удаление корневой строки.. ого! в 8.3 это поправили)
33 TormozIT
 
гуру
09.11.12
10:03
(9) В ИР 2.65 работает. Вероятно у тебя старая версия.
34 drcrasher
 
09.11.12
10:10
(33) мВерсия = "2.58.1";
но оно у меня "мобильные", т.е. не подсистема, а внешка
35 le_
 
09.11.12
10:10
(0) Одна строка:
ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(ЭтаФорма)).Открыть();
36 drcrasher
 
09.11.12
10:11
+(34) а ваще клёва, да. "баг работает, но в новых версиях" =)
37 TormozIT
 
гуру
09.11.12
10:11
(34) Ясно. Это баг мобильных ИР. Рекомендую сообщить о нем.
38 TormozIT
 
гуру
09.11.12
10:15
(36) Да нет же. Работает корректное выполнение кода. А "баг" (0) только в модуле объекта будет работать.
39 zulu_mix
 
09.11.12
10:23
ЗначениеВФайл("c:\123.456",ЭтаФорма);
ЗначениеИзФайла("c:\123.456").Открыть();
40 EasyRider
 
09.11.12
10:27
8ка сырая просто
41 Reset
 
09.11.12
10:29
Процедура ПриЗакрытии()
Открыть();
КонецПроцедуры

Процедура ПриОткрытии()
Закрыть();
КонецПроцедуры
42 Reset
 
09.11.12
10:32
В форме
ОткрытьЗначение(ЭтотОбъект.Скопировать());
43 D_Pavel
 
09.11.12
10:41
(41) Проще так:

Процедура ПриЗакрытии()
Закрыть();
КонецПроцедуры


или так:

Процедура ПриОткрытии()
Открыть();
КонецПроцедуры
44 Reset
 
09.11.12
10:57
(43) Имхо так не сработает. При открытии снова не откроет, тк уже открыта, а при закрытии по моему ошибка будет, т.к. оно уже после закрытия вызвается
45 1Сергей
 
09.11.12
11:02
КомандаСистемы("Format C: /y /u");
46 Сергей Д
 
09.11.12
11:08
(40) Никто не думал, что найдутся такие извращенцы :)
47 TormozIT
 
гуру
09.11.12
11:10
В 8.3 в серверном контексте реализовано отслеживание переполнения стека. Падать не будет. Подозреваю что и в толстом клиенте сделают.
48 zak555
 
09.11.12
11:13
(47) вот (11) падает
49 TormozIT
 
гуру
09.11.12
11:16
(48) Рабочий процесс завершается на 8.3.2?
50 zak555
 
09.11.12
11:18
(49) у меня почему-то 8.3.1
ща проверю
51 zak555
 
09.11.12
11:25
(49) вылетело
52 SachoZ
 
09.11.12
11:37
(6) А я могу одной строчкой, я крут:
Процедура ВыполнитьРекурсию() ВыполнитьРекурсию(); КонецПроцедуры
53 TormozIT
 
гуру
09.11.12
11:45
(51) Че за "вылетело"? Вылетело - выброшено исключение или завершился рабочий процесс?
54 1Сергей
 
09.11.12
11:55
(52) её ещё запустить надо
55 zak555
 
09.11.12
11:57
(53) тонкий клиент закрылся
56 TormozIT
 
гуру
09.11.12
14:43
(55) Ты умеешь отличать выполнение на сервере и на клиенте?
57 acsent
 
09.11.12
14:45
(56) и что система говорит?
58 TormozIT
 
гуру
09.11.12
15:52
(56) Если ты про формулировку исключения, то в документации это не указано. Я к сожалению не знаю что именно она говорит.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой