![]() |
![]() |
1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
GrVas 27.09.18 - 11:05 | Пытаюсь удалить все документы, кроме одной организации.
Код Процедура ВыбратьВсеДокументы() // УстановитьМонопольныйРежим(Истина); МассивДокументов=Метаданные.Документы; ВсегоДок = 0; Для каждого СтрМас Из МассивДокументов Цикл // НачатьТранзакцию(); КолДок = 0; Если СтрМас.Реквизиты.Найти("Организация")= Неопределено Тогда Продолжить; Иначе КонецЕсли; ДокТип=СтрМас.Имя; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | "+ДокТип+".Ссылка |ИЗ | Документ."+ДокТип+" КАК "+ДокТип +" Где " + ДокТип+ ".Организация <> &Организация"; Запрос.УстановитьПараметр("Организация", Организация); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ВсегоДок = ВсегоДок +1; Если КолДок >= 100 Тогда // ЗафиксироватьТранзакцию(); КолДок = 0; // НачатьТранзакцию(); КонецЕсли; Состояние(ВыборкаДетальныеЗаписи.Ссылка); Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); Объект.Удалить(); КолДок= КолДок+1; КонецЦикла; // ЗафиксироватьТранзакцию(); КонецЦикла; // УстановитьМонопольныйРежим(Ложь); КонецПроцедуры Если использовать транзакции, строки закомментированы, то документы не удаляются. Если не использовать транзакции документы удаляются. Что не так? | ||
Вафель 1 - 27.09.18 - 11:06 | транзакция не фиксируется из-за ошибки. | ||
GrVas 2 - 27.09.18 - 11:07 | (1) Тоже так подумал, сообщений об ошибках не выводится при удалении без транзакции. | ||
Cyberhawk 3 - 27.09.18 - 11:09 | "документы не удаляются" // Подробнее | ||
GrVas 4 - 27.09.18 - 11:09 | (1) удаление сделать в попытке ? | ||
GrVas 5 - 27.09.18 - 11:10 | (3) не понятно, что не понятно. )))) | ||
runuts 6 - 27.09.18 - 11:14 | ну навскидку количество вызовов НачатьТранзакцию <> ЗафиксироватьТранзакцию из-за Если СтрМас.Реквизиты.Найти("Организация")= Неопределено Тогда Продолжить; !!!!!!!!!!!!!!!1 | ||
GrVas 7 - 27.09.18 - 11:21 | (6) попробую
Процедура ВыбратьВсеДокументы() // УстановитьМонопольныйРежим(Истина); МассивДокументов=Метаданные.Документы; ВсегоДок = 0; Для каждого СтрМас Из МассивДокументов Цикл КолДок = 0; Если СтрМас.Реквизиты.Найти("Организация")= Неопределено Тогда Продолжить; Иначе КонецЕсли; НачатьТранзакцию(); ДокТип=СтрМас.Имя; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | "+ДокТип+".Ссылка |ИЗ | Документ."+ДокТип+" КАК "+ДокТип +" Где " + ДокТип+ ".Организация <> &Организация"; Запрос.УстановитьПараметр("Организация", Организация); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ВсегоДок = ВсегоДок +1; Если КолДок >= 100 Тогда ЗафиксироватьТранзакцию(); КолДок = 0; НачатьТранзакцию(); КонецЕсли; Состояние(ВыборкаДетальныеЗаписи.Ссылка); Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); Объект.Удалить(); КолДок= КолДок+1; КонецЦикла; ЗафиксироватьТранзакцию(); КонецЦикла; // УстановитьМонопольныйРежим(Ложь); КонецПроцедуры | ||
GrVas 8 - 27.09.18 - 11:37 | (6) Спасибо. Документы удаляются. |
|
Список тем форума |
Правила | Описание | Реклама на форуме | Волшебные решения | Поиск | Секции | Рейтинг | Книга знаний | Вики-миста (КЗ2) | Мобильная | Архив | Модераторы | Галерея | Регистрация | 18+ |