v7: Как с помошью обработки копировать все элементы из одной группы в другую?
Показывать по
10
20
40
сообщений
- 1
- 2
23.07.2007
12:09
#1
Я недавно начал программировать в 1С v7.7.
И мне необходимо с помошью обработки копировать все элементы из одной группы справочника в другую?Если можно сделать, как-то еще подскажите...))) А то в ручную слишком много элементов перенасить надо...времени уйдет очень много! Зарание спасибо...
И мне необходимо с помошью обработки копировать все элементы из одной группы справочника в другую?Если можно сделать, как-то еще подскажите...))) А то в ручную слишком много элементов перенасить надо...времени уйдет очень много! Зарание спасибо...
23.07.2007
15:28
#2
"...
Сп=СоздатьОбъект("Справочник....");
Сп.ИспользоватьРодителя(ВыбРодительОткуда); // это группа, откуда переносить
Сп.ВыбратьЭлементы(1);
НачатьТранзакцию(); // на всякий случай для работы в сети немонопольно
Пока Сп.ПолучитьЭлемент()=1 Цикл
Сп.Родитель=ВыбРодительКуда; // это группа, куда переносить
Сп.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
...
Если не надо перемещать вложенные группы, в начало цикла добавьте условие
Если Сп.ЭтоГруппа()=1 Тогда
Продолжить;
КонецЕсли;
PS. Рекомендую записаться на курсы программистов 1с, поможет.
"
Сп=СоздатьОбъект("Справочник....");
Сп.ИспользоватьРодителя(ВыбРодительОткуда); // это группа, откуда переносить
Сп.ВыбратьЭлементы(1);
НачатьТранзакцию(); // на всякий случай для работы в сети немонопольно
Пока Сп.ПолучитьЭлемент()=1 Цикл
Сп.Родитель=ВыбРодительКуда; // это группа, куда переносить
Сп.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
...
Если не надо перемещать вложенные группы, в начало цикла добавьте условие
Если Сп.ЭтоГруппа()=1 Тогда
Продолжить;
КонецЕсли;
PS. Рекомендую записаться на курсы программистов 1с, поможет.
"
23.07.2007
20:48
#3
"Думаю, что не будет работать, скажет, что нарушен порядок выборки.
Я бы делал так:
СписокКПеремещению=СоздатьОбъект("СписокЗначений");
Сп=СоздатьОбъект("Справочник....");
Сп.ИспользоватьРодителя(ВыбРодительОткуда); // это группа, откуда переносить
Сп.ВыбратьЭлементы(1);
Пока Сп.ПолучитьЭлемент()=1 Цикл
СписокКПеремещению.ДобавитьЗначение(Сп.ТекущийЭлемент());
КонецЦикла;
НачатьТранзакцию(); // на всякий случай для работы в сети немонопольно
Для i=1 По СписокКПеремещению.РазмерСписка() Цикл
Сп.НайтиЭлемент(СписокКПеремещению.ПолучитьЗначение(i));
Сп.Родитель=ВыбРодительКуда; // это группа, куда переносить
Сп.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
"
Я бы делал так:
СписокКПеремещению=СоздатьОбъект("СписокЗначений");
Сп=СоздатьОбъект("Справочник....");
Сп.ИспользоватьРодителя(ВыбРодительОткуда); // это группа, откуда переносить
Сп.ВыбратьЭлементы(1);
Пока Сп.ПолучитьЭлемент()=1 Цикл
СписокКПеремещению.ДобавитьЗначение(Сп.ТекущийЭлемент());
КонецЦикла;
НачатьТранзакцию(); // на всякий случай для работы в сети немонопольно
Для i=1 По СписокКПеремещению.РазмерСписка() Цикл
Сп.НайтиЭлемент(СписокКПеремещению.ПолучитьЗначение(i));
Сп.Родитель=ВыбРодительКуда; // это группа, куда переносить
Сп.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
"
24.07.2007
01:45
#4
Верное замечание, действительно, при первом варианте "перепрогонять" приходится обработку. Спасибо.
24.07.2007
05:06
#5
В данном примере показано, как переносить элементы а мне их надо копировать.... непродскажете как сделать?)))
24.07.2007
09:53
#7
> В данном примере показано, как переносить элементы а мне их надо >копировать.... непродскажете как сделать?)))
Копировать элементы справочника из одной группы в другую - вы хоть понимаете что такое система справочников в системе 1С?
Это касается и другово вашего вопроса по переодическим реквизитам. Лучше обяъсните что вы делаете и что надо сделать на самом деле(какая поставлена перед вами задача)?
Копировать элементы справочника из одной группы в другую - вы хоть понимаете что такое система справочников в системе 1С?
Это касается и другово вашего вопроса по переодическим реквизитам. Лучше обяъсните что вы делаете и что надо сделать на самом деле(какая поставлена перед вами задача)?
24.07.2007
16:19
#8
Копировать тоже можно, но! Боюсь, что поскольку вы написали, что вы новичок, не стоит вам этого делать. Это отпугнет вас от изучения языка и принципов работы системы. Но мне не жалко, я, в принципе, могу описать основные проблемы, которые возникают при этой задаче.
Если рассматривать задачу в общем виде и пытаться написать универсальный алгоритм для проведения данной операции, то мы должны понимать, что у нас имеется:
1. Набор произвольных реквизитов для отдельно взятого справочника.
2. Реквизиты могут быть не простыми, а периодическими.
3. Значения периодических реквизитов могут быть установлены не только вручную, но и документами.
4. Существует понятие подчиненности справочников. То есть, копируемый элемент может иметь какого то владельца, мало того, в свою очередь может являться владельцем для каких то других элементов. Мало того, и для тех элементов тоже могут иметься и владельцы и подчиненные элементы.
Реализовать задачу с какими то упрощениями можно! Например, значения периодических реквизитов, установленные документами можно записывать в элементе-приемнике как "установленные вручную". Если для вас эта задача просто для обучения - реализуйте ее с еще большими упрощениями. Копируйте только код и наименование. Общий принцип работы вы поймете. Код и наименование ненулевые практически в любом справочнике.
Если рассматривать задачу в общем виде и пытаться написать универсальный алгоритм для проведения данной операции, то мы должны понимать, что у нас имеется:
1. Набор произвольных реквизитов для отдельно взятого справочника.
2. Реквизиты могут быть не простыми, а периодическими.
3. Значения периодических реквизитов могут быть установлены не только вручную, но и документами.
4. Существует понятие подчиненности справочников. То есть, копируемый элемент может иметь какого то владельца, мало того, в свою очередь может являться владельцем для каких то других элементов. Мало того, и для тех элементов тоже могут иметься и владельцы и подчиненные элементы.
Реализовать задачу с какими то упрощениями можно! Например, значения периодических реквизитов, установленные документами можно записывать в элементе-приемнике как "установленные вручную". Если для вас эта задача просто для обучения - реализуйте ее с еще большими упрощениями. Копируйте только код и наименование. Общий принцип работы вы поймете. Код и наименование ненулевые практически в любом справочнике.
- 1
- 2
Читают тему
(гостей: 1)