Имя: Пароль:
1C
1C 7.7
v7: 1с 77 помогите снять пометку на удаление плиз
,
0 evorle145
 
15.05.15
11:26
Процедура Сформировать()
    СпрСотр = СоздатьОбъект("Справочник.Цены");
    СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл
СпрСотр.СнятьПометкуУдаления();
спрсотр.Записать();
КонецЦикла;
КонецПроцедуры


В цикл не заходит почему.... почему не в рубаюсь... в 77 не кодировал, а по аналогии с 1с8 не пойму как сделать
1 Builder
 
15.05.15
11:27
Справочник.Цены небось подчиненный :)
2 asady
 
15.05.15
11:27
(0) выборка сбивается
3 evorle145
 
15.05.15
11:29
(1) , ага... А как в этом случае делается в 77?
4 фобка
 
15.05.15
11:29
+(1) ага, Использоватьродителя()
5 evorle145
 
15.05.15
11:31
так мне надо просто снять пометку удаления со всего справочника цен, в не зависимости от родителя или владельца
6 Garykom
 
гуру
15.05.15
11:32
Обратиться к специалисту...
7 фобка
 
15.05.15
11:32
(5) тогда выборка нужна другая
8 evorle145
 
15.05.15
11:33
(6) , я к вам и обращаюсь. (7) , можете подсказать какая?
9 Builder
 
15.05.15
11:33
(4) Только не родителя, а Владельца
Попробуй ВыбратьЭлементы(0)
Хотя это может быть не то.
10 Spyke
 
15.05.15
11:34
(3) СпрНом = СоздатьОбъект("справочник.Номенклатура");
     СпрЦен = СоздатьОбъект("справочник.Цены");
СпрНом.ВыбратьЭлементы();
Пока СпрНом.ПолучитьЭлемент()=1 Цикл
СпрЦен.ИспользоватьРодителя(СпрНом.ТекущийЭлемент);
СпрЦен.ВыбратьЭлементы();
Пока СпрЦен.ПолучитьЭлемент()=1 Цикл
Если СпрЦен.ТекущийЭлемент.ПометкаУдаления()=1 Тогда
СпрЦен.СнятьПометкуУдаления();
КонецЕсли;
КонецЦикла;
КонецЦикла;


//Так же лучше это сделать в запросе
//А если использовать процедурный метод перебора то через НачатьТранзакцию()
11 Spyke
 
15.05.15
11:34
+10 Набирал сходу может быть ошибка где-то но общий принцип таков
12 Builder
 
15.05.15
11:37
+(10) ИспользоватьРодителя() заменить на ИспользоватьВладельца()
13 Garykom
 
гуру
15.05.15
11:38
(8) понимаете, проблема в том что эта и подобные проблемы сотни раз уже поднимались на нескольких десятках форумов

лень поиском воспользоваться?
14 Spyke
 
15.05.15
11:39
(12) +100500
15 evorle145
 
15.05.15
11:40
(9) , спасибо, 0 - помог!
16 evorle145
 
15.05.15
11:41
(10), тоже спасибо, но код не проверял, так как помог совет в (9)
17 Chameleon1980
 
15.05.15
11:41
да можнож вроде как и без всяких использоватьВладельца
если челу просто по всем элументаам пробежать

соглашусь просто с вышесказанным - "ВыборкаСбивается"

при выборке создаем новый экзеспляр спр.Цены

и потом используем типа Удаляемый=НайтиЭлемент(СпрИзВЫборке)

и уже Удаляемый удаляем
18 Builder
 
15.05.15
11:44
(17) Нечему тут сбиваться. Сбивается когда коды меняешь или наименование.
19 titan_aleks
 
15.05.15
11:44
ВыбратьЭлементы(0)
20 Chameleon1980
 
15.05.15
11:44
+(17) это для верности
а так да у выбратьЭлементы параметр режим

с учетом иерархии или без
21 Chameleon1980
 
15.05.15
11:45
(18) вдруг он потом в этой выборке вздумает менять что

говорю жеж - для верности
22 palpetrovich
 
15.05.15
12:13
(16) совет из (9) моет привести к ситуации, когда Единица будет непомечена на удаление, когда ее владелец-товар - помечен
что потенциально приводит к траблам
23 Ёпрст
 
15.05.15
12:16
(0)
Процедура Сформировать()
    СпрСотр = СоздатьОбъект("Справочник.Цены");
    СпрСотр.ВыбратьЭлементы(0);
    Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл
       СпрСотр.СнятьПометкуУдаления();
    КонецЦикла;
КонецПроцедуры
24 Злопчинский
 
15.05.15
12:48
Сделаю задачу разово без программирования!
25 ЧеловекДуши
 
15.05.15
13:05
(0) СнятьПометкуУдаления - уже пишет
26 ЧеловекДуши
 
15.05.15
13:06
+(0) Используй сперва запрос, а потом через НайтиЭлемент получаешь объект по ссылке и пишешь :)
27 Ёпрст
 
15.05.15
13:08
(24) а если у него нет учойза, смогешь ?
28 Ёпрст
 
15.05.15
13:08
:)
29 Chameleon1980
 
15.05.15
13:49
(27) поделиться им. программирования все-равно не будет