Имя: Пароль:
1C
1С v8
Виснет 1С на 332 итерации
,
0 terminus
 
07.04.17
14:51
Конфа самописная, база файловая, платформа 8.3.8.2027.
Простейший код
к = 1;
Пока к<833 Цикл
Тогда
Новый= Справочники.Справочник1.СоздатьЭлемент();
Новый.Наименование= Строка(к) + "ТЕСТ";    
Новый.Записать();
к=к+1;
КонецЦикла;

Зависает намертво на 332 итерации цикла на Новый.Записать();
Причем, исследована возможность записи в разные справочники.
1 terminus
 
07.04.17
14:52
Добавлю. Тестирование и исправление, выгрузка/загрузка, назначение всех-всех прав на папку - не помогает.
2 oleg_km
 
07.04.17
14:53
Попробуй Новый переименовать. Все-таки ключевое слово
3 terminus
 
07.04.17
14:55
Ну, я для примера привел "Новый", в реале там "НовоеФизическоеЛицо"
4 Heckfy
 
07.04.17
14:56
Новый.Наименование=""+Строка(к) + "ТЕСТ";
5 lubitelxml
 
07.04.17
14:56
попробуй в транзакции все писать, так же метод "записать" можно в "попытка" включить. Есть еще метод ОписаниеОшибки - обычно в "исключение" его пишут
6 Вафель
 
07.04.17
14:56
версия для обучения?
7 Aleksey
 
07.04.17
14:57
А на другой базе?
8 terminus
 
07.04.17
14:57
Проблема уже проявлялась у людей: Http-сервис обрабатывает 30 запросов и зависает и http://www.cyberforum.ru/1c-custom/thread1715568.html
Но там решение находилось во внешних продуктах.
9 Lama12
 
07.04.17
14:58
(0) А как долго ждал? Может отвиснет?
10 silent person
 
07.04.17
14:58
&НаСервере
Процедура Команда1НаСервере()
    // Вставить содержимое обработчика.
    к = 1;
    Пока к<833 Цикл
        НовыйСпр = Справочники.Склады.СоздатьЭлемент();
        НовыйСпр.Наименование= Строка(к) + "ТЕСТ";    
        НовыйСпр.Записать();
        к=к+1;
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
    Команда1НаСервере();
КонецПроцедуры

ниче не зависло
11 terminus
 
07.04.17
14:58
В Попытку не помогает, просто виснет и все.
Я это просто максимально облегчил код.
12 Aleksey
 
07.04.17
14:59
(6)
ограничено количество данных:

    максимальное количество записей в таблицах счетов 2000;
    максимальное количество записей в главных таблицах объектов 2000;
    количество записей в табличных частях объектов 1000;
    количество записей в наборах записей 2000;
    количество записей из внешних источников данных 200;

Явно не тот вариант
13 silent person
 
07.04.17
15:00
включай тех.журнал и смотри где там у тебя виснет.
14 lubitelxml
 
07.04.17
15:00
(11) попробуй записывать в транзакции по 300 элементов
15 terminus
 
07.04.17
15:01
(10) у меня тот же код по смыслу. Клиент/Сервер, все равно виснет.
(14) Да, если меньше включать - то в порядке, все работает
16 terminus
 
07.04.17
15:02
У меня основная база на постгре, это файловая - рабочая. Почти уверен, что на SQL будет работать, но нужно же понять в чем дело
17 lubitelxml
 
07.04.17
15:02
(15) на другом компе тоже самое?
18 silent person
 
07.04.17
15:03
в (10) была файловая база.
19 Heckfy
 
07.04.17
15:03
(16) А чего по загрузке аппаратных мощностей (диски, проц и т.д..) в это время?
20 terminus
 
07.04.17
15:04
(6) версия полная
(14) просто не вариант по 300 элементов записывать.
И еще интересно. Похоже, что и документов в цикле можно записать не более 142. Но это пока не точно
21 terminus
 
07.04.17
15:05
(19) Все остальное работает без проблем одновременно. Проц 4 ядра 20% Память ок 25%
22 Живой Ископаемый
 
07.04.17
15:17
в отладчике точка останова с условием, и смотреть что происходит при 142 и 332
23 terminus
 
07.04.17
15:19
(17) На другом компе, с другой ОС и характеристиками - то же самое
(4) ""+ не помогло
24 Вафель
 
07.04.17
15:20
если в 1 справочник 330 записать. то в другой сколько запишется?
25 Tatitutu
 
07.04.17
15:21
так попробуй

    Для к=1 по 832 Цикл
        НовыйСпр = Справочники.Склады.СоздатьЭлемент();
        НовыйСпр.Наименование= Строка(к) + "ТЕСТ";    
        НовыйСпр.Записать();        
    КонецЦикла;
26 terminus
 
07.04.17
15:22
(22) А какой смысл условия? И так в отладчике видно, что на 332 ходе Новый.Записать(); просто набирает % времени использования
(24) 332
27 lodger
 
07.04.17
15:22
(23) а если создать чистую, загрузить cf и попробовать обработку?
вообще вангую, что проблема в модуле справочника или где-то ПриЗаписи.
28 Вафель
 
07.04.17
15:23
(26) те например 10 справочников пло 332 элемента?
29 terminus
 
07.04.17
15:24
(25) та же беда
30 Вафель
 
07.04.17
15:24
подписки есть, в модуле что-нибудь есть?
31 terminus
 
07.04.17
15:27
(28) не пробовал, но думаю так и получится. Пробовал 2 по 322
(30) подписки есть, но они к этим модулям не относятся
(27) ПередЗаписью в одном из справочников проходит без проблем. ПриЗаписи нет в обоих
32 Heckfy
 
07.04.17
15:28
Чудес не бывает.
Давай CF в студию.
33 Вафель
 
07.04.17
15:28
может место кончилось на диске?
34 terminus
 
07.04.17
15:31
(33) та не, на 2 машинах одно и то же. У людей такое было, но с взаимодействием с web/ У меня же ничего с веб не связано.
Ладно, поищу, если найду - поделюсь глюком
35 Вафель
 
07.04.17
15:32
(34) так база то в одном месте лежит
36 terminus
 
07.04.17
15:32
(35) в разных.
37 terminus
 
07.04.17
15:33
(35) файловую перенес полностью на другую машину
38 Вафель
 
07.04.17
15:34
может база битая?
39 Вафель
 
07.04.17
15:34
создай новую
40 terminus
 
07.04.17
15:34
(38) -> (1)
41 Gantosha
 
07.04.17
15:35
а в чем прикол использовать ключевые слова языка - поясните убогому.
42 Serginio1
 
07.04.17
15:35
В транзакции по 100 элементов не пробовал?
43 Вафель
 
07.04.17
15:36
(40)так это может и не спасать от битой базы
44 terminus
 
07.04.17
15:36
(41) -> (3)
45 Dmitrii
 
гуру
07.04.17
15:37
А вы уверены, что тут нет бесконечной рекурсии с утечками?
Откуда вообще это чудо чудное вызывается? Случайно не в ПриЗаписи или ПередЗаписью этого самого Справочник1?
46 Вафель
 
07.04.17
15:40
(45) тогда бы и 1 не создался
47 terminus
 
07.04.17
15:42
(39) сделал новую базу, загрузил конфу. Все заработало. Будем думать дело в базе. Грустно.
(45) Вызывается из кнопки в обработке
48 Живой Ископаемый
 
07.04.17
17:09
2(41) Это не ключевые слова.
Ключевые - это например "КонецЕсли", или "Тогда".
и ты их не сможешь использовать.
"Строка", "Новый" - это не ключевые слова.
Поэтому можно использовать. Если у кого-то из-за это идеосинкразия - это повод зайти к психотерапевту.
49 Cyberhawk
 
07.04.17
17:13
(48) Правильно через "и"
50 terminus
 
10.04.17
08:51
(16) Вот все равно не понятно.
Как и предположил, на SQL базе все работает. На файловой из выгрузки - не работает. Похоже или на Postgre или на платформу.
51 Живой Ископаемый
 
10.04.17
09:18
глянь журнал регистрации. Есть там что-то?
52 terminus
 
10.04.17
09:28
(51) Вот где собака порылась. При попытке войти в журнал - выскочила ошибка чтения журнала. Журнал обновил. Все заработало и в цикле. Спасибо Живой Ископаемый за наводку.
Т.е., если выскакивает такая проблема со срывом цикла на 333 элементе, то нужно проверить/починить журнал регистрации.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший