Перейти к содержимому


Загрузил

Тема поддержки файла Информация

  • Загружен: Mar 02 2014 06:00
  • Последнее обновление: Mar 02 2014 06:00
  • Размер: 4.44К
  • Просмотров: 1382
  • Скачан: 2
Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

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

- - - - -



Для работы нужно поменять тип справочника в реквизитах обработки и в запросе на нужный Вам.
Например, если Вы хотите использовать эту обработку для справочника "Номенклатура", то Вам надо зайти в реквизиты обработки и изменить тип реквизита "Откуда" и "Куда" на "СправочникСсылка.Номенклатура" и далее в модуле формы обработки в тексте запроса заменить "БизнесПроекты" на "Номенклатура".
Т.е. вместо текста:
Запрос = Новый Запрос("ВЫБРАТЬ
| БизнесПроекты.Ссылка
|ИЗ
| Справочник.БизнесПроекты КАК БизнесПроекты
|ГДЕ
| БизнесПроекты.Ссылка В ИЕРАРХИИ(&Группа)"
);

должно получиться:

Запрос = Новый Запрос("ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)"
);

Для наглядности весь код модуля формы:

Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос("ВЫБРАТЬ
| БизнесПроекты.Ссылка
|ИЗ
| Справочник.БизнесПроекты КАК БизнесПроекты
|ГДЕ
| БизнесПроекты.Ссылка В ИЕРАРХИИ(&Группа)"
);
Запрос.УстановитьПараметр("Группа", Откуда);
Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
СЗ = Новый СписокЗначений; //Будем запихивать туда родителей
Пока Результат.Следующий() Цикл
ТекСпр = Результат.Ссылка.ПолучитьОбъект();
Если ТекСпр.Родитель = Откуда.Родитель Тогда //Копируем корень
Если НЕ ТекСпр.ЭтоГруппа Тогда
Предупреждение("Для элементов надо допилить, работает только для групп.",,"Аларм!");
Возврат;
КонецЕсли;
элементСправочника = ТекСпр.Скопировать();
элементСправочника.Родитель = Куда;
элементСправочника.Записать();
СЗ.Добавить(элементСправочника.Ссылка); //Запихали корневого родителя
Иначе //Копируем все остальное
элементСправочника = ТекСпр.Скопировать();
элементСправочника.Родитель = СЗ[СЗ.Количество()-1].Значение;
элементСправочника.Записать();
Если ТекСпр.ЭтоГруппа Тогда
СЗ.Добавить(элементСправочника.Ссылка); //А здесь запихиваем всех остальных родителей
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры



Администрация не несет ответственности за возможный вред, причиненный этим материалом.





  • 8618 Всего файлов
  • 9 Всего категорий
  • 45 Всего авторов
  • 22840 Всего загрузок
  • Акт списания ТМЦ Последний файл
  • kozavva Последний автор

1 посетителей за последние 15 минут

0 пользователей, 1 гостей, 0 анонимных