|
Программа теряет объект? | ☑ | ||
---|---|---|---|---|
0
Storm03
15.10.23
✎
10:41
|
Нужно удалить все документы по организации из Комплексной.
Написал обработку: Процедура УдалитьНаСервере() Пример = Справочники.Организации.НайтиПоНаименованию("Пример ООО"); ТекстЗапроса = ""; Для каждого Вид Из Метаданные.Документы Цикл Если Вид.Реквизиты.Найти("Организация") <> Неопределено Тогда Если ТекстЗапроса<>"" Тогда ТекстЗапроса=ТекстЗапроса+" | |ОБЪЕДИНИТЬ ВСЕ"; КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |ВЫБРАТЬ | Ссылка КАК Ссылка, | Дата КАК Дата |ИЗ Документ." + Вид.Имя + " |ГДЕ | Ссылка.Организация = &Организация | И Ссылка.ПометкаУдаления <> Истина"; КонецЕсли; КонецЦикла; ТекстЗапроса = ТекстЗапроса + " | |УПОРЯДОЧИТЬ ПО | Дата УБЫВ"; Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Организация", Пример); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект(); ДокументОбъект.ПометкаУдаления = Истина; ПУ = 1; Попытка ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения); Исключение ПУ = 0; Сообщить(" " + Выборка.Ссылка + " " + ИнформацияОбОшибке().Описание); КонецПопытки; Если ПУ = 1 Тогда Попытка ДокументОбъект.Удалить(); Исключение Сообщить(" " + Выборка.Ссылка + " " + ИнформацияОбОшибке().Описание); КонецПопытки; КонецЕсли; КонецЦикла; КонецПроцедуры Обработка идёт долго, примерно 4 дня. И после выдаёт кучу ощибок типа: 4-ФСС за 9 месяцев 2020 г. (Вид: П. Организация: Пример ООО) Ошибка при вызове метода контекста (Записать) 4-ФСС за 9 месяцев 2020 г. (Вид: П. Организация: Пример ООО) Ошибка при вызове метода контекста (Удалить) Подскажите, пожалуйста, где я затупил? |
|||
1
Волшебник
15.10.23
✎
10:55
|
Надо понять, что за ошибка. Пока ни о чём
|
|||
2
Aleksey
15.10.23
✎
10:58
|
(0) У регламентных отчетов есть признак что он сдан, и при записи он контролируется и не дает удалить отчет если он сдан.
Скорее всего это как раз твой случай |
|||
3
Михаил Козлов
15.10.23
✎
11:08
|
Использовал обработку с ИС (для бухии). Вроде, получалось.
Могу выслать (только найти нужно), пришлите запрос на мыло (в профиле). |
|||
4
Storm03
15.10.23
✎
12:53
|
(2) Спасибо. Попробую.
|
|||
5
shuhard
15.10.23
✎
12:58
|
(0)[Подскажите, пожалуйста, где я затупил?]
как минимум - ДокументОбъект.ОбменДанными.Загрузка=Истина; |
|||
6
shuhard
15.10.23
✎
13:01
|
(5) + движения нужно очистить до пометки на удаления, отключив итоги
|
|||
7
Tarlich
15.10.23
✎
13:06
|
а по чему не использовать готовых кучу обработок
|
|||
8
Storm03
15.10.23
✎
20:49
|
Такое ощущение, что там какая-то системная ошибка вылезает.
Открыл список всех приходных документов - примерно 1 из 10 проведение отменено, но пометки удаления не стоит. ПКМ - "Установить пометку удаления" - задумывается, выдаёт ошибку "Конфликт блокировок". Тут же повторяю - устанавливает пометку... Работаю на копии базы, я в ней один. Предварительно переиндексирована. |
|||
9
Смотрящий
15.10.23
✎
21:18
|
(6) Отключить итоги, очистить движения, выставить пометку
Ве настолько хуево в королевстве ? |
|||
10
vicof
15.10.23
✎
21:31
|
(5)(6) +1
|
|||
11
Storm03
17.10.23
✎
20:00
|
Т.е. по существу - почему программа пытается удалить документ, не смотря на выброшенное исключение при попытке записи - никто ничего сказать не может?
|
|||
13
Zamestas
18.10.23
✎
02:26
|
(11) Попробуй в запросе выбрать ещё и поле Проведен - если проведен, то как у тебя:
РежимЗаписиДокумента.ОтменаПроведения а если нет, то РежимЗаписиДокумента.Запись |
|||
14
Мимохожий Однако
18.10.23
✎
06:58
|
Иногда проще воспользоваться РИБ и оставить при создании периферийной базы только нужную организацию. Зависит от объема базы.
|
|||
15
Kigo_Kigo
18.10.23
✎
09:09
|
Можно сделать варварским методом через удалить() и потом ТиИ с зачисткой ссылок на не существующие объекты, но тутнадо смотреть на размер базы, возможно не прокатит
|
|||
16
zippygrill
18.10.23
✎
11:10
|
Распараллель еще процесс удаления на потоки, сократишь 4 дня.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |