|
Не помечает на удаление | ☑ | ||
---|---|---|---|---|
0
r2d24
20.01.14
✎
12:58
|
В прошлый раз обращался за помощь, тогда не смог воспользоваться вашими подсказками, делаю другим способом.
В обработке есть реквизит "Организация". Я перебираю все справочники и документы, если у них есть реквизит "Организация", равен выбранному значению, то помечаю на удаление. //--СПРАВОЧНИКИ Перем СписокСправочников; Для каждого Справочник из Метаданные.Справочники Цикл ИмяСправочника = Справочник.Имя; //Если ИмяСправочника = "ДоговорыКонтрагентов" Тогда Спр = Справочники[ИмяСправочника].Выбрать(); Пока Спр.Следующий() Цикл Попытка Если Спр.Организация = Организация Тогда Спр.ПолучитьОбъект().УстановитьПометкуУдаления(Истина,Истина); КонецЕсли; Исключение //Сообщить("Попытка не удалась для справочника "); КонецПопытки; КонецЦикла; КонецЦикла; //-- ДОКУМЕНТЫ Для каждого Документ из Метаданные.Документы Цикл ИмяДокумента = Документ.Имя; Док = Документы[ИмяДокумента].Выбрать(); Пока Док.Следующий() Цикл Попытка Если Док.Организация = Организация Тогда //Док.ПолучитьОбъект().Записать(РежимЗаписиДокумента.ОтменаПроведения); Док.ПолучитьОбъект().УстановитьПометкуУдаления(Истина,Истина); //Док.УстановитьПометкуУдаления(Истина,Истина); //Док.ПолучитьОбъект().ПометкаУдаления=Истина; //Док.ПометкаУдаления=Истина; КонецЕсли; Исключение Сообщить("Попытка не удалась для документа " + ИмяДокумента); //Док.ПолучитьОбъект().ПометкаУдаления=Истина; КонецПопытки; КонецЦикла; КонецЦикла Не получается пометить на удаления ни один документ. |
|||
1
Господин ПЖ
20.01.14
✎
12:59
|
а в документе/справочнике раз и нету Организации... сразу нннааааааа лопатой по спине....
|
|||
2
skunk
20.01.14
✎
13:00
|
попробуй рукаи прибить ... и посмотреть почему не прибивается
|
|||
3
1dvd
20.01.14
✎
13:00
|
где .Записать(...); ?
|
|||
4
Рэйв
20.01.14
✎
13:00
|
открой для себе НайтиПоСсылкам()
и медитируй |
|||
5
Господин ПЖ
20.01.14
✎
13:00
|
.УстановитьПометкуУдаления()
а оно чо, будет без .Записать() работать? |
|||
6
1dvd
20.01.14
✎
13:01
|
(5) неа
|
|||
7
Borteg
20.01.14
✎
13:01
|
(0) наверное записать еще надо и нужна проверка на есть ли такой реквизит в Справочнике?! и документе соответственно
|
|||
8
hhhh
20.01.14
✎
13:02
|
(5) по идее должно
|
|||
9
r2d24
20.01.14
✎
13:02
|
Со справочниками все работает, а с документами, не хочет
|
|||
10
Рэйв
20.01.14
✎
13:03
|
(8)Даже в СП в примере:
РасходнаяНакладная.УстановитьПометкуУдаления(Истина); РасходнаяНакладная.Записать() |
|||
11
Borteg
20.01.14
✎
13:03
|
(9) Записать надо потомучто
|
|||
12
r2d24
20.01.14
✎
13:03
|
(7) Зачем проверять, у меня там стоит "Попытка"
|
|||
13
Господин ПЖ
20.01.14
✎
13:05
|
(12) за такие штуки принято бить чем-то тяжелым...
|
|||
14
Borteg
20.01.14
✎
13:05
|
(12) так ты ускоришь обработку в разы, зачем если в справочнике на 10000 элементов нету реквизита организация, получать эти 10000 элементов?
|
|||
15
Господин ПЖ
20.01.14
✎
13:06
|
накой лупить по базе выборкой если в этом типе документов нет организации??
|
|||
16
r2d24
20.01.14
✎
13:07
|
(14) спасибо за совет, обязательно сделаю
|
|||
17
1dvd
20.01.14
✎
13:08
|
(16) из типовой:
|
|||
18
Господин ПЖ
20.01.14
✎
13:08
|
еще как вариант - типовая и закрытый период без полных прав или типовая и запрет удаления если проведен другой документ (ведомость з/п и ппи) и прочее
|
|||
19
Borteg
20.01.14
✎
13:08
|
(16) и записать припиши, и поидее должно работать
|
|||
20
Жан Пердежон
20.01.14
✎
13:10
|
(5) (9) (10)
Синтаксис: УстановитьПометкуУдаления(<ПометкаУдаления>) *** Примечание: Применение метода влечет инициирование события ПередЗаписью, т.к. происходит сохранение измененного свойства ПометкаУдаления. Если документ проведен, применение метода приводит к отмене проведения. Если объект модифицирован, то выполнение метода вызывает исключение. |
|||
21
Borteg
20.01.14
✎
13:10
|
(20) в сп в примере есть метод записать()
|
|||
22
hhhh
20.01.14
✎
13:12
|
(21) работает без Записать() многократно проверено. В том числе и здесь у ТС со справочниками работает.
|
|||
23
Господин ПЖ
20.01.14
✎
13:13
|
>В том числе и здесь у ТС со справочниками работает
какие-то у него странные справочники |
|||
24
r2d24
20.01.14
✎
13:15
|
Так, что мне делать, синтаксис правильный?
|
|||
25
r2d24
20.01.14
✎
13:20
|
Что мне нужно добавить, что бы работало?
|
|||
26
Borteg
20.01.14
✎
13:24
|
(25) а почему в установитьпометкуудаление(истина,истина) - два параметра?
|
|||
27
Borteg
20.01.14
✎
13:24
|
(25) для документов там один параметр
|
|||
28
Borteg
20.01.14
✎
13:24
|
(25) для справочников 2, вот поэтому для документов и не работает
|
|||
29
Рэйв
20.01.14
✎
13:25
|
(21)Скриншот дать?:-)
|
|||
30
hhhh
20.01.14
✎
13:25
|
(25) может
Исключение Сообщить("Попытка не удалась для документа " + ИмяДокумента + " " + ОписаниеОшибки()); |
|||
31
Borteg
20.01.14
✎
13:25
|
УстановитьПометкуУдаления(<ПометкаУдаления>) - документы
УстановитьПометкуУдаления(<ПометкаУдаления>, <ВключаяПодчиненные>) - справочники |
|||
32
Borteg
20.01.14
✎
13:25
|
для документов валится скорей всего с ошибкой изза второго параметра
|
|||
33
Borteg
20.01.14
✎
13:27
|
(25) для документов убери вторую истину в установитьпометкаудаления, и все таки поставь лучше проверку на реквизит
|
|||
34
r2d24
20.01.14
✎
13:32
|
(31) Док.УстановитьПометкуУдаления(Истина);
Тоже не работает, у меня несколько вариантов написано, закоментированы. А если написать: Сообщить("Попытка не удалась для документа " + ИмяДокумента +" "+ОписаниеОшибки()); то описание ошибки: Метод объекта не обнаружен (УстановитьПометкуУдаления) |
|||
35
1Сергей
20.01.14
✎
13:36
|
(34) ещё раз покажи код, где получаешь объект документа и помечаешь
|
|||
36
r2d24
20.01.14
✎
13:42
|
о, работает, наверное глюк был. Вот весь код
//--СПРАВОЧНИКИ Перем СписокСправочников; Для каждого Справочник из Метаданные.Справочники Цикл ИмяСправочника = Справочник.Имя; //Если ИмяСправочника = "ДоговорыКонтрагентов" Тогда Спр = Справочники[ИмяСправочника].Выбрать(); Пока Спр.Следующий() Цикл Попытка Если Спр.Организация = Организация Тогда Спр.ПолучитьОбъект().УстановитьПометкуУдаления(Истина,Истина); КонецЕсли; Исключение //Сообщить("Попытка не удалась для справочника "); КонецПопытки; КонецЦикла; КонецЦикла; //-- ДОКУМЕНТЫ Для каждого Документ из Метаданные.Документы Цикл ИмяДокумента = Документ.Имя; Док = Документы[ИмяДокумента].Выбрать(); Пока Док.Следующий() Цикл Попытка Если Док.Организация = Организация Тогда //Док.ПолучитьОбъект().Записать(РежимЗаписиДокумента.ОтменаПроведения); //Док.ПолучитьОбъект().УстановитьПометкуУдаления(Истина,Истина); Док.ПолучитьОбъект().УстановитьПометкуУдаления(Истина); //Док.ПолучитьОбъект().ПометкаУдаления=Истина; //Док.ПометкаУдаления=Истина; КонецЕсли; Исключение Сообщить("Попытка не удалась для документа " + ИмяДокумента +" "+ОписаниеОшибки()); //Док.ПолучитьОбъект().ПометкаУдаления=Истина; КонецПопытки; КонецЦикла; КонецЦикла Спасибо всем за помощь! |
|||
37
Жан Пердежон
20.01.14
✎
14:43
|
(21) безоговорчно веришь примерам из СП?
посмотри пример для ОбработкаПроверкиЗаполненияНаСервере |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |