|
УТ 11 - программно изменить статус Заказа клиента | ☑ | ||
---|---|---|---|---|
0
BeyondBelieff
27.08.12
✎
10:30
|
Есть обработка, которая программно устанавливает статус Заказа клиента К обеспечению или К отгрузке.
После ее запуска при открытии любого заказа клиента возникает вот такая ошибка. Невосстановимая ошибка Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm: по причине: Ошибка СУБД: Файл базы данных поврежден 'K:\.../1Cv8.1CD' по причине: Файл базы данных поврежден 'K:\.../1Cv8.1CD' Лечится тестированием и исправлением, но при повторном запуске обработки возникает снова. Проведение заказа выполняется в попытке, так что если он не может быть проведен (например, товара на складе нет), то он и не проводится, обработка ищет следующий заказ. Ошибка возникает именно в том случае, если удалось программно изменить статус и провести документ. Подскажите, пожалуйста, куда копать? 11.0.8.13 Платформа уже обновлена до последней, не помогло. |
|||
1
andrewks
27.08.12
✎
10:38
|
кэш чистил?
|
|||
2
andrewks
27.08.12
✎
10:39
|
и это... код давай
|
|||
3
BeyondBelieff
27.08.12
✎
10:44
|
Кэш - не, сейчас попробую
А код вот Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиента.Ссылка |ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента |ГДЕ | ЗаказКлиента.Статус = &КОбеспечению"; Запрос.УстановитьПараметр("КОбеспечению", Перечисления.СтатусыЗаказовКлиентов.КОбеспечению); ТЗ = Запрос.Выполнить().Выгрузить(); Если ТЗ.Количество() > 0 Тогда Для каждого Строка из ТЗ Цикл ОбъектЗаказ = Строка.Ссылка.ПолучитьОбъект(); Попытка ОбъектЗаказ.Заблокировать(); Провести = истина; Исключение Провести = ложь; Сообщить("" + Строка.Ссылка + " редактируется пользователем. Статус не изменен."); КонецПопытки; Если Провести = истина ТОгда ОбъектЗаказ.Статус = Перечисления.СтатусыЗаказовКлиентов.КОтгрузке; Попытка ОбъектЗаказ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный); Сообщить("Для " + Строка.Ссылка + " установлен статус ""К отгрузке"""); Исключение Сообщить("Для " + Строка.Ссылка + " не может быть установлен статус ""К отгрузке"""); КонецПопытки; КонецЕсли; КонецЦикла; КонецЕсли; |
|||
4
BeyondBelieff
27.08.12
✎
10:49
|
И кстати это не кэш
На двух разных компьютерах ошибка |
|||
5
andrewks
27.08.12
✎
10:51
|
1. попробуй на другой базе с типовым cf-шником
2. попробуй на чистой базе с выгруженным из этой базы cf-шником |
|||
6
Nenaviwu1c20
27.08.12
✎
10:55
|
Попробуй исключить запрос и написать простенькой выборкой на 1совском языке а параметры через структуру установишь.У меня была такая проблема помогло
|
|||
7
andrewks
27.08.12
✎
10:57
|
попробуй убрать блокировку вообще, оставь только запись в попытке
|
|||
8
andrewks
27.08.12
✎
10:57
|
кстати, а чё там с блокировками - они же после фиксации транзакции снимаются? Разблокировать() тут не надо?
|
|||
9
andrewks
27.08.12
✎
10:59
|
(6) запрос-то тут при чём?
|
|||
10
BeyondBelieff
27.08.12
✎
11:00
|
Хм.. совет почистить кэш навел на мысль удалить все, что есть в папке с базой, кроме 1Cv8.cd, пока ошибки нет.. Что-то не верится. что все так просто
(7) Изначально было без блокировки, просто показалось, что глючит на тех заказах, которые в данный момент открыты у пользователя. Но это не так (6) Если закомментировать строку "ОбъектЗаказ.Записать(...)", то ошибки нет, запрос не мешает |
|||
11
BeyondBelieff
27.08.12
✎
11:03
|
Ну все, пока больше не ломается
andrewks, спасибо! |
|||
12
andrewks
27.08.12
✎
11:06
|
/e1cib/logForm - это явно не сама БД, либо кэш протух, либо не хватает дисковой/оперативной памяти
|
|||
13
BeyondBelieff
27.08.12
✎
11:12
|
Да нет, места много, оперативки 6 гигов
Кэш почищу, если снова ошибка вылезет Просто на двух разных компах, вряд ли кэш |
|||
14
andrewks
27.08.12
✎
11:15
|
возможно, протухли файлы с логами, а не кэш (logForm как бы намекает на логи :-) ), тогда это объясняет наличие проблемы на двух разных компах - подключение-то к одной папке шло. теперь ты логи почистил - проблема ушла
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |