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

05.04.12

Задачи пользователя - Подбор и обработка объектов

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
КопированиеГруппыСправочникаСЭлементами
.epf 6,76Kb
93 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Как-то возникала необходимость, решил поделиться.

Естественно нужно поменять тип справочника в реквизитах обработки и в запросе на нужный вам.

Например, если вы хотите использовать эту обработку для справочника "Номенклатура", то вам надо зайти в реквизиты обработки и изменить тип реквизита "Откуда" и "Куда" на "СправочникСсылка.Номенклатура" и далее в модуле формы обработки в тексте запроса заменить "БизнесПроекты" на "Номенклатура". Т.е. вместо текста:

 

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

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

  

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


 

Вобщем, чтобы было нагляднее выкладываю весь код модуля формы:

 

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    4710    16    1    

20

Учетные задачи Поиск данных Подбор и обработка объектов 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

1.обработка позволяет автоматически вычислить дубли и привести их к единому наименованию во всех документах. 2.так же есть возможность в документах поменять счета учета для номенклатуры. Например разные бухгалтера оформляют поступление одного и того же товара - один занес на 10.01, второй на 41.01 в результате в ОСВ у нас минусы. В обработке есть возможность наглядно увидеть такие ошибки и тут же их поправить не бегая по всем документам. Достаточно поставить галочку у номенклатуры и указать счет учета который надо найти и счет учета на который надо его заменить. Обработка сама вычислит документы в которых номенклатура с галочкой была задействована и заменит счета учета. Что бы не было излишнего изменения документов, в обработке указываются типы документов, где операция замены счета разрешена (например Поступление ТМЦ, Реализация, Отчет о розничных продажах, возврат покупателю итд.)

7320 руб.

05.06.2026    468    2    0    

4

Подбор и обработка объектов Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Данная обработка предлагается для случаев, когда бывает необходимо изменить какой-либо реквизит в группе проводок, отобранных по определенному набору полей, за определенный период, с определенным типом документа-регистратора. Предлагается четыре варианта обработки для конфигураций: БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0.

2400 руб.

30.05.2016    30491    32    1    

52

Подбор и обработка объектов Программист 1С 8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Универсальный алгоритм для переотражения регистров документов, не требующий перепроведения.

1 стартмани

17.07.2026    192    0    VKuser233196182    2    

5

Перенос данных 1C Учет документов Подбор и обработка объектов Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Платные (руб)

Обработка «Сравнение документов» — это мощный инструмент для синхронизации и контроля данных между базами 1С:УНФ – 1С:БП, 1С:УТ – 1С:БП. Она позволяет сравнивать документы в двух базах, выявлять расхождения и загружать недостающие документы из одной базы в другую.

12200 руб.

06.08.2025    2543    4    0    

5

Подбор и обработка объектов Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Абонемент ($m)

Данная обработка может быть полезна тем, кто хочет сделать более точечную замену объектов, когда заказчику необходимо заменить что-то только в определенном виде документа (справочника) с определенным отбором по реквизитам.

1 стартмани

09.05.2025    3441    94    Rafael-87    18    

7

Поиск данных ЭДО и ОФД Подбор и обработка объектов 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Поиск номенклатуры при сопоставлении в ЭДО не интуитивный, не настраиваемый и просто неудобный. Данное решение - это альтернативный вариант расширенного поиска и сопоставления номенклатуры для 1С, который подключается в качестве расширения и решает эту проблему.

10000 руб.

10.04.2025    2601    1    1    

2

Зарплата Подбор и обработка объектов Бухгалтер 1С:Предприятие 8 1С:Управление производственным предприятием Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Обработка позволяет выполнить последовательное (по датам получения дохода) распроведение и проведение документов по НДФЛ в конфигурации УПП 1.3.

1 стартмани

17.02.2025    4731    74    alexbur    19    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Alex_E 2402 04.04.12 07:25 Сейчас в теме
А просто взять и мышкой перетащить не судьба?
4. arhal-ya@yandex.ru 254 04.04.12 09:29 Сейчас в теме
(1) Alex_E,
1. Пробовал в 8.1? Может у тебя судьба отличная от всех остальных пользователей 1с?
2. Читай внимательнее тему, особенно слово "Копирование".
6. Alex_E 2402 04.04.12 09:38 Сейчас в теме
(4) Судьба у мня обычная. Переносить из группы в группу можно было ещё в 7.7, кнопочка соответственная была и в 7.7 и в 8.0 и в 8.1 и в 8.2. В 8.2 можно ещё и мышкой. Слово копирование в публикации - крутое слово. Для чего - непонятно :-( Может что бы создать несколько одинаковых элементов номенклатуры в разных папках?
8. arhal-ya@yandex.ru 254 04.04.12 09:48 Сейчас в теме
(6) Alex_E,
Слово копирование в публикации - крутое слово. Для чего - непонятно :-( Может что бы создать несколько одинаковых элементов номенклатуры в разных папках?
Правильно, а если внимательнее почитать тему, то не только элементов, но и групп с учетом вложенной иерархии. Насчет "крутое" не знаю - слово как слово, меня особо не впечатляет:)
2. yegorovnv 1 04.04.12 07:59 Сейчас в теме
есть аналог... уже с выбором справочника в форме.
давайте не будем плодить плохие клоны.
умение пользоваться методом Скопировать() похвально, рад за вас
7. arhal-ya@yandex.ru 254 04.04.12 09:40 Сейчас в теме
(2) rinatru,
Не встречал.
Во первых это простой оригинальный инструмент а не клон. Кстати, не увидел ссылку на аналог.
Во вторых не претендует на универсальность типа выбора справочника - потому и делюсь задаром.
По поводу "Скопировать()" - это пафос уставшего от своей значимости кодера 1С? Зачем тогда было вообще лезть в код если и так все знаешь и умеешь? Тем более в такой "плохой клон".
9. yegorovnv 1 04.04.12 09:58 Сейчас в теме
(7)

я не лез в код.. просто предположил, что использовался метод Скопировать()...
перед тем как выкладывать свой простой продукт, рекомендуется использовать поиск аналогов...
пафоса нет, просто рекомендация

аналог вот здесь -- >> http://infostart.ru/public/92395/
специально потратил 2 минуты, чтобы найти аналог и показать его тебе
10. arhal-ya@yandex.ru 254 04.04.12 11:06 Сейчас в теме
(9) rinatru,
пафоса нет
,
специально потратил 2 минуты
- ... :)
Посмотрел аналог - клоном и не пахнет. Справедливости ради надо заметить - удобней для конечного пользователя потому что есть выбор любого справочника. Использование транзакции наверно обусловлено скорее избыточностью алгоритма копирования (в котором, например может быть не найден родитель при копировании o_O) а не критичностью процесса.
Собственно резюме:
- для конечного пользователя лучше "аналог".
- для кодера, сисадмина и прочих причастных к 1с не только поверхностно - лучше "мой плохой клон" потому как алгоритм раза в три проще и допиливать, соответственно, удобнее.
3. fishca 1314 04.04.12 09:13 Сейчас в теме
стандартного функционала разве не достаточно?
Прикрепленные файлы:
5. arhal-ya@yandex.ru 254 04.04.12 09:30 Сейчас в теме
(3) fishca,
Еще раз - читаем слово "Копирование" в теме публикации.
11. Roni 25.04.12 15:09 Сейчас в теме
Я тоже считаю что не аналог. А когда нужно скопировать более 1000 элементов мышкой пощелкать тяжеловато будет...
12. Ranika 25.04.12 15:10 Сейчас в теме
Спасибо! Просто, удобно :)
13. пользователь 30.06.12 13:27
Сообщение было скрыто модератором.
...
14. yuraskas 178 19.09.13 16:59 Сейчас в теме
Спасибо, помогло.
15. yuraskas 178 27.09.13 09:44 Сейчас в теме
Код не рабочий. Иерархия не сохраняется.
16. пользователь 09.12.14 07:31
Сообщение было скрыто модератором.
...
17. Yakudza1984 05.09.18 09:02 Сейчас в теме
Спасибо. Просто, удобно, ничего лишнего. Помогло.
18. nik389 19.11.18 23:38 Сейчас в теме
Иерархия не сохраняется
Для отправки сообщения требуется регистрация/авторизация