8.х Копирование группы в много уровневом справочнике

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем observer, 9 июл 2008.

  1. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Всем привет!
    Подскажите с чего начать что бы полностью скопировать группу первого уровня с учетом что в группе есть под группы и в под группах есть группы и много много данных. Покажите у кого есть данный опыт! :unsure:
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Перебор по родителю
  3. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Перебор по родителю B) !
    А можно маленький пример? :unsure:
  4. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Генеральному Директору ЗАО ......
    .....
    от .....​


    Служебная записка
    В связи с моим полным незнанием 1С, прошу заключить договор с франчайзи,
    либо рассмотреть вариант ввода в штат должности Программист 1С.


    Далее пишите быструю выкладку, сколько времени у вас уйдет на обучение 1Се. Сколько это будет стоить фирме, и сколько будет стоить фирме новый или привлеченный специалист.

    Дата:
    Подпись:

    Такие вопросы IMHO, надо не на форумах задавать, а обложившись литературой "ковырять"
  5. tugrik
    Offline

    tugrik Опытный в 1С

    Регистрация:
    18 июн 2008
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    все равно чело веку помочь надо. Независимо от того, какие вопросы он задает. Поучив конечно немного.

    Во первых - куда скопировать (в другую базу, в ту же базу, но на другой уровень)
    Во-вторых - есть ли вообще опыт программирования под 1С (судя по всему есть, но вопросы задаются глупые)?
    и В третьих был ли навык программирования вообще?

    Это минимум, после которого все скажут куда тебе идти :) и на что обратить внимание.
  6. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Вот вам маленький пример моей компетенции!


    Код:
    перем число1;
    ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");
    Секция_5 = Макет.ПолучитьОбласть("Секция_5");
    ОсновныеДанные = Макет.ПолучитьОбласть("ОсновныеДанные");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Данные = Макет.ПолучитьОбласть("Данные");
    Пробел = Макет.ПолучитьОбласть("Пробел");
    
    
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |	ЛичнаяКарточкаСтудента.Специальность,
    |	ЛичнаяКарточкаСтудента.Статус,
    |	ЛичнаяКарточкаСтудента.СтупеньОбучения,
    |	ЛичнаяКарточкаСтудента.Факультет,
    |	ЛичнаяКарточкаСтудента.Шифр,
    |	ЛичнаяКарточкаСтудента.Фамилия,
    |	ЛичнаяКарточкаСтудента.Имя,
    |	ЛичнаяКарточкаСтудента.Отчество,
    |	ЛичнаяКарточкаСтудента.ФормаОбучения,
    |	ЛичнаяКарточкаСтудента.Группа,
    |	ЛичнаяКарточкаСтудента.КурсОбучения
    |ИЗ
    |	Справочник.ЛичнаяКарточкаСтудента КАК ЛичнаяКарточкаСтудента";
    Запрос.УстановитьПараметр("Факультет", );
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    
    
    Таб=Новый ТаблицаЗначений;
    Таб.Очистить();
    Таб.Колонки.Добавить("ФАМ"); 
    Таб.Колонки.Добавить("ИМ"); 
    Таб.Колонки.Добавить("ОТ"); 
    Таб.Колонки.Добавить("Группа"); 
    Таб.Колонки.Добавить("Курс");     
    Таб.Колонки.Добавить("Ступень"); 
    Таб.Колонки.Добавить("Специальность"); 
    Таб.Колонки.Добавить("ФормаОбуч"); 
    Таб.Колонки.Добавить("Статус"); 
    Таб.Колонки.Добавить("Шифр");
    Таб.Колонки.Добавить("Факультет");
    
    если Флажок1=Ложь тогда
    ///**********************************ОЧНАЯ ФОРМА ОБУЧЕНИЯ
    Пока Выборка.Следующий() Цикл    
    Если (Выборка.Статус=Перечисления.СтатусСтудента.студент) и (сокрлп(факультет)=сокрлп(Выборка.факультет)) тогда
    
    НовСтрока = Таб.Добавить(); 	
    НовСтрока.ФАМ=Выборка.Фамилия; 
    НовСтрока.ИМ=Выборка.Имя; 
    НовСтрока.ОТ=Выборка.Отчество; 
    НовСтрока.Группа=Выборка.Группа; 
    НовСтрока.Курс = КурсЧисло(Выборка.КурсОбучения);
    НовСтрока.Ступень = Выборка.СтупеньОбучения;
    НовСтрока.Специальность =Выборка.Специальность;
    НовСтрока.ФормаОбуч  =Выборка.ФормаОбучения;   
    НовСтрока.Статус=Выборка.Статус; 
    НовСтрока.Шифр=Выборка.Шифр; 
    НовСтрока.Факультет=Выборка.Факультет;
    //	сообщить("Обрабатывается-" +НовСтрока.ФАМ+","+НовСтрока.ИМ+","+НовСтрока.ОТ+" "+НовСтрока.Группа+" "+НовСтрока.Факультет);	
    КонецЕсли;   
    КонецЦикла; 
    
    Таб.Сортировать("Специальность Возр,Ступень Убыв,Группа Возр,ФАМ Возр");   
    Секция_5.Параметры.Данные_1="Данные по "+Нрег(факультет);
    ТабДок.Вывести(Секция_5);
    Спец="";
    ФОбучения="";
    Ступ="";
    Група="";
    
    Для Каждого стр Из Таб Цикл
    //сообщить("Обрабатывается-" +стр.ФАМ+" "+стр.ИМ+" "+стр.ОТ+" "+стр.Группа+" "+стр.Курс);	
    ОсновныеДанные.Параметры.Специальность="Специальность "+сокрлп(стр.Специальность)+", форма обучения "+стр.ФормаОбуч+", ступень "+сокрлп(стр.Ступень)+", курс "+сокрлп(стр.курс)+", группа "+сокрлп(стр.Группа);
    Если (стр.Специальность<>Спец) или (стр.ФормаОбуч<>ФОбучения) или (стр.Ступень<>Ступ) или (стр.Группа<>Група)тогда
    ТабДок.Вывести(Пробел);
    ТабДок.Вывести(ОсновныеДанные);
    ТабДок.Вывести(Шапка);
    число1=1;
    Спец=стр.Специальность;
    ФОбучения=стр.ФормаОбуч;
    Ступ=стр.Ступень; 
    Група=стр.Группа;
    КонецЕсли;         
    Данные.Параметры.число2=число1;
    Данные.Параметры.фио=стр.ФАМ+" "+стр.ИМ+" "+стр.ОТ;
    Данные.Параметры.статус=стр.Статус;
    Данные.Параметры.шифр=стр.Шифр;         
    Данные.Параметры.курс=стр.Курс;
    число1=число1+1;
    ТабДок.Вывести(Данные);
    КонецЦикла;
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита=Истина;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки =Ложь;
    ТабДок.Показать("Списки студентов "+Нрег(Факультет));
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////	
    
    иначе
    //списки по курсу
    ///**********************************ОЧНАЯ ФОРМА ОБУЧЕНИЯ 
    Таб.Очистить();
    Пока Выборка.Следующий() Цикл    
    Если (Выборка.Статус=Перечисления.СтатусСтудента.студент) и (сокрлп(факультет)=сокрлп(Выборка.факультет)) тогда
    
    НовСтрока = Таб.Добавить(); 	
    НовСтрока.ФАМ=Выборка.Фамилия; 
    НовСтрока.ИМ=Выборка.Имя; 
    НовСтрока.ОТ=Выборка.Отчество; 
    НовСтрока.Группа=Выборка.Группа; 
    НовСтрока.Курс = КурсЧисло(Выборка.КурсОбучения);
    НовСтрока.Ступень = Выборка.СтупеньОбучения;
    НовСтрока.Специальность =Выборка.Специальность;
    НовСтрока.ФормаОбуч  =Выборка.ФормаОбучения;   
    НовСтрока.Статус=Выборка.Статус; 
    НовСтрока.Шифр=Выборка.Шифр; 
    НовСтрока.Факультет=Выборка.Факультет;
    //	сообщить("Обрабатывается-" +НовСтрока.ФАМ+","+НовСтрока.ИМ+","+НовСтрока.ОТ+" "+НовСтрока.Группа+" "+НовСтрока.Факультет);	
    КонецЕсли;   
    КонецЦикла; 
    
    Таб.Сортировать("Курс Возр,Группа Возр, Специальность Возр, Ступень Убыв,ФАМ Возр");   
    Секция_5.Параметры.Данные_1="Данные по "+Нрег(факультет);
    ТабДок.Вывести(Секция_5);
    Спец="";
    ФОбучения="";
    Ступ="";
    Група="";
    
    Для Каждого стр Из Таб Цикл
    //сообщить("Обрабатывается-" +стр.ФАМ+" "+стр.ИМ+" "+стр.ОТ+" "+стр.Группа+" "+стр.Курс);	
    ОсновныеДанные.Параметры.Специальность="Специальность "+сокрлп(стр.Специальность)+", форма обучения "+стр.ФормаОбуч+", ступень "+сокрлп(стр.Ступень)+", курс "+сокрлп(стр.курс)+", группа "+сокрлп(стр.Группа);
    Если (стр.Специальность<>Спец) или (стр.ФормаОбуч<>ФОбучения) или (стр.Ступень<>Ступ) или (стр.Группа<>Група)тогда
    ТабДок.Вывести(Пробел);
    ТабДок.Вывести(ОсновныеДанные);
    ТабДок.Вывести(Шапка);
    число1=1;
    Спец=стр.Специальность;
    ФОбучения=стр.ФормаОбуч;
    Ступ=стр.Ступень; 
    Група=стр.Группа;
    КонецЕсли;         
    Данные.Параметры.число2=число1;
    Данные.Параметры.фио=стр.ФАМ+" "+стр.ИМ+" "+стр.ОТ;
    Данные.Параметры.статус=стр.Статус;
    Данные.Параметры.шифр=стр.Шифр;         
    Данные.Параметры.курс=стр.Курс;
    число1=число1+1;
    ТабДок.Вывести(Данные);
    КонецЦикла;
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита=Истина;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки =Ложь;
    ТабДок.Показать("Списки студентов "+Нрег(Факультет));
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    конецесли;
    
  7. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Я прекрасно понимаю что есть КОПИРОВАНИЕ И ПРИ КОПИРОВАНИИ ПРОСТО ПРИСВОИТЬ РОДИТЕЛЯ!
  8. tugrik
    Offline

    tugrik Опытный в 1С

    Регистрация:
    18 июн 2008
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    так в чем вопрос? Ответа так и не прозвучало...

Поделиться этой страницей