Имя: Пароль:
1C
1С v8
Виснет 1с при создании документа.
0 atis30
 
17.10.13
15:19
Управляемые формы.

Документ.
Обработки проведения нет. Есть перед записью, там вычисляется сумма документа.

При создании нового документа и нажатии "провести и закрыть" иногда зависает 1с, намертво.  
Проследить какую-то закономерность не удается.

ТИИ делать долго, делал выгрузку загрузку базы. Не помогло.

В чем может быть причина?
1 zak555
 
17.10.13
15:19
> Есть перед записью, там вычисляется сумма документа.

смотря как
2 Кир Пластелинин
 
17.10.13
15:21
код в студию
3 Нуф-Нуф
 
17.10.13
15:25
навтыкай запись журнала регистрации
4 atis30
 
17.10.13
15:28
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
  СуммаДокумента = ТМЦ.Итог("Сумма");

  Если РежимЗаписи <> РежимЗаписиДокумента.ОтменаПроведения Тогда
    // код
  КонецЕсли;

  Если (ЭтотОбъект.ПометкаУдаления) И (НЕ Ссылка.ПометкаУдаления) Тогда
    // код
  КонецЕсли;

КонецПроцедуры
5 atis30
 
17.10.13
15:29
упс. только сейчас осознал что там <>

РежимЗаписи <> РежимЗаписиДокумента.ОтменаПроведения
6 atis30
 
17.10.13
15:29
буду изучать дальше
7 atis30
 
17.10.13
15:34
хотя там ничего криминального, проверка есть-ли еще документы с такими реквизитами.

ТекстЗапроса = "ВЫБРАТЬ
                       |    Заказ
                       |ИЗ
                       |    Документ.Заказ КАК Заказ
                       |ГДЕ
                       |    Заказ.Дата = &ДатаОтгрузки
                       |    И Заказ.Контрагент = &Контрагент
                       |    И Заказ.Ссылка <> &Ссылка"
        ;
        //              
        Запрос = Новый Запрос(ТекстЗапроса);
8 Нуф-Нуф
 
17.10.13
15:36
количество заказов в базе какое?
9 atis30
 
17.10.13
15:46
(8) 200 000

Запрос

"ВЫБРАТЬ
    |    Заказ
    |ИЗ
    |    Документ.Заказ КАК Заказ"

меньше чем за секунду отрабатывает.
10 Mafoni
 
17.10.13
15:51
Отладчик уже предлагали?
11 atis30
 
17.10.13
16:07
(10) самое западло в том, что если запустить в режиме отладки то еще ни разу не зависало.
12 zak555
 
17.10.13
16:10
(7) РС лучше сделай
13 hhhh
 
17.10.13
16:16
(11) имхо вот это должно нереально тормозить

                   |    Заказ
                       |ИЗ
                       |    Документ.Заказ КАК Заказ


сделай

ВЫБРАТЬ
                       |    Заказ
                       |ИЗ
                       |    Документ.Заказ КАК Заказ2
                       |ГДЕ
                       |    Заказ2.Дата = &ДатаОтгрузки
                       |    И Заказ2.Контрагент = &Контрагент
                       |    И Заказ2.Ссылка <> &Ссылка
14 KishMish
 
17.10.13
16:18
в процедуре ПередЗаписью
у тебя нет Записать()?
15 atis30
 
17.10.13
16:22
(14) нету.

(13) когда глюков нет, то оно очень оперативно проводится.
или лучше сделать таки РС?
16 hhhh
 
17.10.13
16:25
(15) у тебе поле Заказ в документе Заказ. Это дерьмо.

Когда пишет Заказ.Дата = &ДатаОтгрузки, что она берет?
17 atis30
 
17.10.13
16:32
Сори, ошибся с копипастом, там Заказ.Ссылка на самом деле
18 vtolga
 
17.10.13
16:40
а в заказ.дата еще и время есть...
19 Кир Пластелинин
 
17.10.13
16:46
(13) а разве конструктор не ругнулся бы на неоднозначное поле? хотя кто отменяет ручное построение запросов
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший