![]() |
![]() |
![]() |
|
Зависаетпрограмма при обновлении Бухгалтерии 7.7 | ☑ | ||
---|---|---|---|---|
0
sk251
07.10.04
✎
17:42
|
Второй раз сталкиваюсь с проблемой обновления Типовой Бухгалтерии 7.7. Периодически проводится выгрузка из торговли, в связи, с чем очень большое количество операций, так как накладных за день выписывается не один десяток. После объединения конфигураций и загрузки обновлённой базы в режиме предприятия производиться обновление операций, и оно длится вот уже 4 часа, в результате чего программа зависает. Обновлял 456 ,на 457 так и не удалось, подскажите.
|
|||
1
Шапокляк
07.10.04
✎
17:55
|
А не могло ее еще в бытность 456 заглючить на чем-то? Что-нибудь вроде пустой даты документа или еще чего-нибудь экстраординарного? Тестирование не пробовали?
|
|||
2
sk251
08.10.04
✎
10:58
|
Запустил тестирование, действительно были выявлены и исправлены ошибки связанные с временем операций. Спасибо. Запустил повторное обновление, снова производит обновление операций, пока прошло 15 мин. Подожду минут 40, может справиться. Процессор загружен на 100%.
|
|||
3
sk251
08.10.04
✎
12:32
|
Подождал 50 минут, результат тот же. Производил выгрузку и загрузку. Пару раз проделал тестирование и исправление со всеми режимами, не помогло. Что ещё можно попробовать, как вычислить что ей не хватает?
|
|||
4
Таня
08.10.04
✎
12:34
|
открой в Отладчике на обработке ОбновлениеИБ и посмотри, может у тебя там что-то зациклилось
|
|||
5
Шмесный
08.10.04
✎
12:38
|
Когда что-то зацикливается оно становится "нечто".
|
|||
6
sk251
08.10.04
✎
14:05
|
Выяснил с помощью отладчика, что зависание (или зацикливание) происходит при выполнении следующего цикла. Судя по модулю вроде всё нормально, в чём же может быть причина?
Состояние("Обновление операций"); Опер = СоздатьОбъект("Операция"); Опер1 = СоздатьОбъект("Операция"); Опер.ВыбратьОперации(,); Фильтр = "Н02.02,*;*,Н02.02"; Опер.ВыбратьОперацииСПроводками(,, Фильтр); Пока Опер.ПолучитьОперацию() = 1 Цикл ОперацияИзменена = 0; Опер1.НайтиОперацию(Опер.Документ); Опер1.ВыбратьПроводки(); Пока Опер1.ПолучитьПроводку() = 1 Цикл СчетДт = Опер1.Дебет.Счет; СчетКт = Опер1.Кредит.Счет; Если Опер1.Дебет.Счет = СчН02_02 Тогда Опер1.Дебет.Счет = СчН02_02_1; ОперацияИзменена = 1; КонецЕсли; Если Опер1.Кредит.Счет = СчН02_02 Тогда Опер1.Кредит.Счет = СчН02_02_1; ОперацияИзменена = 1; КонецЕсли; КонецЦикла; Если ОперацияИзменена = 1 Тогда Опер1.Записать(); КонецЕсли; КонецЦикла; |
|||
9
psk21office
08.10.04
✎
14:12
|
Посмотри аналогичный код в обработке "Обновление ИБ". По Релизам 454-456
|
|||
10
Мелена
08.10.04
✎
14:20
|
Ну если зацикливается в этом цикле выведи Опер.Документ, посмотри на каком зависает. И вообще посмотри карточку счета H02.02, может что наведет на мысли.
|
|||
11
Шапокляк
08.10.04
✎
14:20
|
Сложно сказать... Проверьте на наличие этих счетов СчН02_02_1 - вдруг нету?
Я бы поставила отладочную печать в этой обработке на предмет отлова документов, где эта проверка с перезаписью срабатывает - тогда видно, где тормоза. Скорее всего какую-то операцию Опер1.Записать(); не записывает и молча курит. Или бы эту запись делала через попытку исключение, а в исключении обрабатывала бы так: писала "не могу записать..." и шла дальше. В общем, отловила бы все доки с траблами и выяснила в чем дело. На тестовой базе само собой. |
|||
12
Таня
08.10.04
✎
14:21
|
а у тебя зацикливание во внешнем цикле или во внутреннем?
|
|||
13
Шапокляк
08.10.04
✎
14:22
|
Эх, знал бы он где... :-)
|
|||
14
sk251
12.10.04
✎
09:23
|
Поставил после
Опер1.Записать(); Сообщить(Опер1); В результате смог отследить процесс обновления, зацикливания не произошло, просто долго обновлялись операции. На 12771 операцию потребовалось около 10 часов, в итоге всё закончилось, и последующие обновления прошли быстро. Спасибо за советы. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |