Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

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

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

v7: программно переместить элементы справочника в другую группу

user25
читатель
офлайн
Дата регистрации: 13.05.2008
Сообщений: 8
Пост №1
 
08.09.2009 12:05

"Примеры http://www.forum.mista.ru/topic.php?id=111004 и http://www.mista.ru/tutor_1c/sprav.htm#group оказались неработоспособными. Привожу свой вариант (перемещаю только элементы справочника, не входящие ни в одну из групп):<br><br>Процедура Сформировать()<br> <br> Спр = СоздатьОбъект("Справочник.Контрагенты"); <br><br> Спр.НайтиПоНаименованию("Наша группа");<br><br> ВотЭтаГруппа = Спр.ТекущийЭлемент(); <br> <br> Спис = СоздатьОбъект("СписокЗначений");<br> <br> <br> Спр.ВыбратьЭлементы(1); <br> <br> Пока Спр.ПолучитьЭлемент(0) = 1 Цикл<br> <br> Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;<br> <br> Спис.ДобавитьЗначение(Спр.Код);<br> <br> КонецЦикла;<br><br> <br> Ст = """";<br><br> Для С = 1 По Спис.РазмерСписка() Цикл<br> <br> Код = Спис.ПолучитьЗначение(С,Ст);<br> <br> Спр.НайтиПоКоду(Код);<br> <br> Спр.Родитель=ВотЭтаГруппа; <br><br> Спр.Записать(); <br> <br> КонецЦикла;<br><br>КонецПроцедуры"

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №2
 
08.09.2009 16:07

А что же на "мисте" этот вариант не выложил?

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №3
 
08.09.2009 17:30

"А зачем:<br>> Спис.ДобавитьЗначение(Спр.Код);<br>> Код = Спис.ПолучитьЗначение(С,Ст);<br>> Спр.НайтиПоКоду(Код);<br>Если можно:<br>Спис.ДобавитьЗначение(Спр.ТекущийЭлемент());<br>и далее: <br>Для С = 1 По Спис.РазмерСписка() Цикл<br>Элемент=Спис.ПолучитьЭлемент(С);<br>Элемент.Родитель=ВотЭтаГруппа;<br>Спр.Записать();<br>КонецЦикла;<br><br>Но проще вообще:<br>Спр.ВыбратьЭлементы(1); <br>Пока Спр.ПолучитьЭлемент(0) = 1 Цикл<br>Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;<br>Спр.Родитель=ВотЭтаГруппа;<br>Спр.Записать();<br>КонецЦикла;<br><br>Если я не прав спецы меня поправят... :)"

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №4
 
08.09.2009 20:55

"> Но проще вообще:<br>> Спр.ВыбратьЭлементы(1); <br>> Пока Спр.ПолучитьЭлемент(0) = 1 Цикл<br>> Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;<br>> Спр.Родитель=ВотЭтаГруппа;<br>> Спр.Записать();<br>> КонецЦикла;<br>> <br>> Если я не прав спецы меня поправят... :)<br><br>выборка собьётся!"

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №5
 
08.09.2009 20:59

"> (перемещаю только элементы справочника, не входящие ни в одну из групп):<br> <br><br>Процедура Сформировать()<br><br>Спр = СоздатьОбъект("Справочник.Контрагенты"); <br><br>Спр.НайтиПоНаименованию("Наша группа");<br><br>ВотЭтаГруппа = Спр.ТекущийЭлемент(); <br><br>Спис = СоздатьОбъект("СписокЗначений");<br><br><br>Спр.ВыбратьЭлементы(0); <br><br>Пока Спр.ПолучитьЭлемент(0) = 1 Цикл<br><br>Если (Спр.ЭтоГруппа() = 1) или (спр.Уровень()>0) Тогда Продолжить; КонецЕсли;<br><br>Спис.ДобавитьЗначение(Спр.ТекущийЭлемент());<br> <br>КонецЦикла;<br><br>Спр = СоздатьОбъект("Справочник.Контрагенты"); <br><br>Для С = 1 По Спис.РазмерСписка() Цикл<br><br>Код = Спис.ПолучитьЗначение(С);<br><br>Если Спр.НайтиЭлемент(Код)=1 тогда<br><br>Спр.Родитель=ВотЭтаГруппа; <br><br>Спр.Записать(); <br>КонецЕсли;<br>КонецЦикла;<br><br>КонецПроцедуры<br><br>соточку на тел )))))))"

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация