Вход | Регистрация

1С:Предприятие ::

Метки:справочники

Как програмно перенести существующий элемент справочника в другую группу?

Я
   koshechka
 
20.08.04 - 13:08
Имеется справочник ТМЦ, в нем жуть как много позиций, многие уже не используются. Сворачиваю в ТЗ то, что мне не нужно. Все получается. Потом хочу перенести и оп-ля переносится только одна позиция, или не переносится вааще. Помогите, плиз.
Процедура Перенести()
    СПР1=СоздатьОбъект("Справочник.ТМЦ");
    СПР1.ИспользоватьДату(Дата1);
    СПР1.НайтиПоКоду("999999");
    Род=СПР1.ТекущийЭлемент();
ТЗ.ВыбратьСтроки();
С=СоздатьОбъект("Справочник.ТМЦ"); 
С.ИспользоватьДату(Дата1);
С.ВыбратьЭлементы();
Пока С.ПолучитьЭлемент()=1 Цикл
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Если   С.ТекущийЭлемент()=ТЗ.ТМЦ Тогда
    С.УстановитьАтрибут("Родитель",Род); 
    С.Удалить(0);    
       КонецЕсли;  КонецЦикла;
         
С.Записать();  
КонецЦикла;
КонецПроцедуры
 
  Рекламное место пустует
   427
 
1 - 20.08.04 - 13:11
В архив, сукины дети.... (с) Не помню кто


Но все равно в архив...
   SnarkHunter
 
2 - 20.08.04 - 13:12
Выборка нарушается... Поменяй вложенность циклов, т.е. иди по строкам ТЗ, ищи в справочнике и переноси...
   Diter
 
3 - 20.08.04 - 13:13
А зачем "С.Удалить(0);"? И потом ты не хочешь поставить "С.Записать();" внутрь цикла в которым ты устанавливаешь нового родителя?
   Эмблема форума
 
4 - 20.08.04 - 13:15
Вы чё? Не сможет она присвоить родителя ч/з УстановитьАтрибут() ...
   SnarkHunter
 
5 - 20.08.04 - 13:17
(4)Точно...
   Diter
 
6 - 20.08.04 - 13:24
(4) (5) А почему? Ведь "Родитель" - это атрибут элемента справочника?
   koshechka
 
7 - 20.08.04 - 13:28
Могу присвоить чеерез атрибут, в архиве просидела все утро результат нулевой, нечего обзываться, 427, не ожидала от тебя.
1С 7.7.
   Michael99
 
8 - 20.08.04 - 13:40
(0) Чтото наворочено всего
Если для элементов из ТЗ надо присвоить нового родителя
То После того как с родителем определлилась:
СПР=СоздатьОбъект("Справочник.ТМЦ");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()>0 Цикл
     Если СПР.НайтиЭлемент(ТЗ.ТМЦ)>0 Тогда
           СПР.Родитель=Род;
           СПР.Записать();
     КонецЕсли;
КонецЦикла;
И с удалением не очень понятно.
   SnarkHunter
 
9 - 20.08.04 - 13:50
(8)Это не удаление, а пометка на удаление... Переносит ненужные в определенную группу и помечает на удаление...
   Michael99
 
10 - 20.08.04 - 13:54
(9) Это я понял , а смысл переноса в группу ?
чтоб помучались :-) Тогда после СПР.Записать() - СПР.Удалить(0);
 
  Рекламное место пустует
   koshechka
 
11 - 20.08.04 - 14:01
Прелестно! Спасибки.
А удалить чтоб потом все знали  и не пользовались, если группы раскроют, а то опять потом сидеть и вычищать все
   koshechka
 
12 - 20.08.04 - 14:03
Прелестно! Спасибки.
А удалить чтоб потом все знали  и не пользовались, если группы раскроют, а то опять потом сидеть и вычищать все
   Рупор абсурда
 
13 - 20.08.04 - 14:05
(1) koshechka - на сукино дитя ..., сукино дитя - sobachenochka ...
   Рупор абсурда
 
14 - 20.08.04 - 14:06
(1) koshechka - нЕ сукино дитя ..., сукино дитя - sobachenochka ...


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует