v7: программно переместить элементы справочника в другую группу
08.09.2009
12:05
#1
"Примеры и оказались неработоспособными. Привожу свой вариант (перемещаю только элементы справочника, не входящие ни в одну из групп):
Процедура Сформировать()
Спр = СоздатьОбъект("Справочник.Контрагенты");
Спр.НайтиПоНаименованию("Наша группа");
ВотЭтаГруппа = Спр.ТекущийЭлемент();
Спис = СоздатьОбъект("СписокЗначений");
Спр.ВыбратьЭлементы(1);
Пока Спр.ПолучитьЭлемент(0) = 1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;
Спис.ДобавитьЗначение(Спр.Код);
КонецЦикла;
Ст = """";
Для С = 1 По Спис.РазмерСписка() Цикл
Код = Спис.ПолучитьЗначение(С,Ст);
Спр.НайтиПоКоду(Код);
Спр.Родитель=ВотЭтаГруппа;
Спр.Записать();
КонецЦикла;
КонецПроцедуры"
Процедура Сформировать()
Спр = СоздатьОбъект("Справочник.Контрагенты");
Спр.НайтиПоНаименованию("Наша группа");
ВотЭтаГруппа = Спр.ТекущийЭлемент();
Спис = СоздатьОбъект("СписокЗначений");
Спр.ВыбратьЭлементы(1);
Пока Спр.ПолучитьЭлемент(0) = 1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;
Спис.ДобавитьЗначение(Спр.Код);
КонецЦикла;
Ст = """";
Для С = 1 По Спис.РазмерСписка() Цикл
Код = Спис.ПолучитьЗначение(С,Ст);
Спр.НайтиПоКоду(Код);
Спр.Родитель=ВотЭтаГруппа;
Спр.Записать();
КонецЦикла;
КонецПроцедуры"
08.09.2009
17:30
#3
"А зачем:
> Спис.ДобавитьЗначение(Спр.Код);
> Код = Спис.ПолучитьЗначение(С,Ст);
> Спр.НайтиПоКоду(Код);
Если можно:
Спис.ДобавитьЗначение(Спр.ТекущийЭлемент());
и далее:
Для С = 1 По Спис.РазмерСписка() Цикл
Элемент=Спис.ПолучитьЭлемент(С);
Элемент.Родитель=ВотЭтаГруппа;
Спр.Записать();
КонецЦикла;
Но проще вообще:
Спр.ВыбратьЭлементы(1);
Пока Спр.ПолучитьЭлемент(0) = 1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;
Спр.Родитель=ВотЭтаГруппа;
Спр.Записать();
КонецЦикла;
Если я не прав спецы меня поправят... :)"
> Спис.ДобавитьЗначение(Спр.Код);
> Код = Спис.ПолучитьЗначение(С,Ст);
> Спр.НайтиПоКоду(Код);
Если можно:
Спис.ДобавитьЗначение(Спр.ТекущийЭлемент());
и далее:
Для С = 1 По Спис.РазмерСписка() Цикл
Элемент=Спис.ПолучитьЭлемент(С);
Элемент.Родитель=ВотЭтаГруппа;
Спр.Записать();
КонецЦикла;
Но проще вообще:
Спр.ВыбратьЭлементы(1);
Пока Спр.ПолучитьЭлемент(0) = 1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;
Спр.Родитель=ВотЭтаГруппа;
Спр.Записать();
КонецЦикла;
Если я не прав спецы меня поправят... :)"
08.09.2009
20:55
#4
"> Но проще вообще:
> Спр.ВыбратьЭлементы(1);
> Пока Спр.ПолучитьЭлемент(0) = 1 Цикл
> Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;
> Спр.Родитель=ВотЭтаГруппа;
> Спр.Записать();
> КонецЦикла;
>
> Если я не прав спецы меня поправят...
выборка собьётся!"
> Спр.ВыбратьЭлементы(1);
> Пока Спр.ПолучитьЭлемент(0) = 1 Цикл
> Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;
> Спр.Родитель=ВотЭтаГруппа;
> Спр.Записать();
> КонецЦикла;
>
> Если я не прав спецы меня поправят...
выборка собьётся!"
08.09.2009
20:59
#5
"> (перемещаю только элементы справочника, не входящие ни в одну из групп):
Процедура Сформировать()
Спр = СоздатьОбъект("Справочник.Контрагенты");
Спр.НайтиПоНаименованию("Наша группа");
ВотЭтаГруппа = Спр.ТекущийЭлемент();
Спис = СоздатьОбъект("СписокЗначений");
Спр.ВыбратьЭлементы(0);
Пока Спр.ПолучитьЭлемент(0) = 1 Цикл
Если (Спр.ЭтоГруппа() = 1) или (спр.Уровень()>0) Тогда Продолжить; КонецЕсли;
Спис.ДобавитьЗначение(Спр.ТекущийЭлемент());
КонецЦикла;
Спр = СоздатьОбъект("Справочник.Контрагенты");
Для С = 1 По Спис.РазмерСписка() Цикл
Код = Спис.ПолучитьЗначение(С);
Если Спр.НайтиЭлемент(Код)=1 тогда
Спр.Родитель=ВотЭтаГруппа;
Спр.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
соточку на тел )))))))"
Процедура Сформировать()
Спр = СоздатьОбъект("Справочник.Контрагенты");
Спр.НайтиПоНаименованию("Наша группа");
ВотЭтаГруппа = Спр.ТекущийЭлемент();
Спис = СоздатьОбъект("СписокЗначений");
Спр.ВыбратьЭлементы(0);
Пока Спр.ПолучитьЭлемент(0) = 1 Цикл
Если (Спр.ЭтоГруппа() = 1) или (спр.Уровень()>0) Тогда Продолжить; КонецЕсли;
Спис.ДобавитьЗначение(Спр.ТекущийЭлемент());
КонецЦикла;
Спр = СоздатьОбъект("Справочник.Контрагенты");
Для С = 1 По Спис.РазмерСписка() Цикл
Код = Спис.ПолучитьЗначение(С);
Если Спр.НайтиЭлемент(Код)=1 тогда
Спр.Родитель=ВотЭтаГруппа;
Спр.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
соточку на тел )))))))"
Бух 7.7 нужна помощь в доработке книги покупокКомлексная 7.70.492 распределение НДС необходимо делать вручную
Читают тему
(гостей: 1)