v7: Обработка пометить документы на удаление #654747


#0 by msk-07
Пишу обработку, понимаю, что для кого-то это расплюснуть, но а я хочу разобраться. Прошу помогите найти ошибку, почему не срабатывает метод Удалить
#1 by Джордж1
Метод не у того объекта применяешь
#2 by msk-07
В тз все выгрузил, теперь пересчет строку в цикле делаю и пока это делаю хочу их удалить
#3 by Джордж1
Ну и посмотри что ты удаляешь
#4 by Кокос
#5 by msk-07
Значение не представляет агрегатный объект (НайтиДокумент)
#6 by msk-07
#7 by msk-07
не может все равно удалить :(
#8 by Кокос
#9 by NS
Красивый код, ничего что ФлагФикстранзакции всегда будет равен единице?
#10 by Кокос
эх. 7рка. сто лет ее не трогал :))
#11 by msk-07
простите, но не получается ТЗ.ВыбратьСтроку; Пока ТЗ.ПолучитьСтроку=1 Цикл
#12 by msk-07
он не находит документ
#13 by Cthulhu
по краю ходишь. пометка на удаление проведенного документа выполняется с предварительной отменой его проведения.. проведение и отмена проведения документов выполняются во "внутренней" (организовываемой самим движком) транзакции. вложенные транзакции 1с не поддерживает. рискуешь получить помеченные на удаления документы с движениями (которые толком без плясок даже и не увидишь)
#14 by msk-07
документы не проведенные, это точно
#15 by NS
А это что за чудеса?
#16 by NS
Потом - зачем два раза выполнять запрос? Есть метод вначаловыборки
#17 by msk-07
простите но не кажется что все таки что-то не так здесь Все время ругается на удалить
#18 by NS
ОбъектыДок у тебя как определены? =Создатьобъект("Документ")?
#19 by Злопчинский
внимание, вопрос - ты хочеь пометить на удаление или удалить?
#20 by Дегенератор идей
что значит не поддерживает вложенные транзакции?
#21 by mishaPH
глупость
#22 by mishaPH
#23 by mishaPH
кстати да. что за фигня
#24 by mishaPH
Автор. тебе тупо надо выбрать проведенные доки и их удалить? нафига тогда черный запрос.
#25 by mishaPH
#26 by mishaPH
и к чему печатная таблица?
#27 by mishaPH
если тупо удалить доки то выпили из код с таблицей
#28 by sapphire
Изобретение колеса продолжается?
#29 by Lionee
ага квадратного
#30 by Cthulhu
: что непонятно в это фразе из документации? : глупостью было бы полагать, что собеседник высказывает свое мнение без достаточных на то оснований. так что глупость - ты сказал, но не я. а ситуацию такую сам видел (наличие движений у помеченных на удаление вследствие использования пакетного проведения/распроведения/плясокспометкойнаудаление в транзакции).
#31 by mishaPH
Однажды встречал такое. но с транзакциями не связывал
#32 by Cthulhu
: я просто вынужден был связать. после того, как мне показали - после чего это случилось. и этим самым "чем" оказалась обработка, лупящая в транзакции цикл с проведением/распроведением и пометку на удаление со снятием (по условиям определенным), проверил на том же наборе данных (есс-но после выпрямления кривизны ранее обнаруженной) - ага, точнёхонько воспроизвелось. но там нюанс - был вылет по ошибке. что, однако, не меняет сути. в связи с чем проведение в транзакции с тех пор - табу. подтвержденное приведенными выше выдержками из комплектного мануала.
#33 by Torquader
Без вылета вложенные транзакции в 1С прекрасно работают, только нужно учитывать один нюанс - ОтменитьТранзакцию будет работать только для основной транзакции, то есть все открытые вложенные просто увеличивают счётчик транзакции, но никак не влияют на результат. В случае проведения, это означает, что если система отменит проведение документа (в случае неуспеха), то ошибки не произойдёт, но и проведение не отменится. То есть имеем проведённый документ. Открываем транзакцию. Изменяем документ. Записываем. Выполняем проведение - тут ошибка - должна произойти отмена (и функция провести возвращает неуспех), а в базе остаются последствия проведения (причём не старое состояние, а часть нового).
#34 by Злопчинский
не понял малость вот этого: > В случае проведения, это означает, что если система отменит проведение документа (в случае неуспеха), то ошибки не произойдёт, но и проведение не отменится. . код типа НачатьТранзакцию; Цикл по докам . покатит или нет?
#35 by Torquader
Так прокатит, но только в том случае, когда это всё ещё в одну транзакцию не завёрнуто. Там ещё есть фокусы с обработкой Попытка Исключение в случае транзакций.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С