Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Программное копирование справочника , Программное копирование справочника          
MATEVI Подменю пользователя
сообщение 16.12.10, 10:41
Сообщение #1

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

Как програмно скопировать справочник со всеми его родителями?
Скопировать() работает только для текущего. Но родители не копируются. И в голову ничего не приходит для копирования всех его родителей 64000000.gif .

zetovich Подменю пользователя
сообщение 16.12.10, 11:04
Сообщение #2

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

чет не понял куда скопировать. и что значит всех его родителей? много родителей у эл-та?

MATEVI Подменю пользователя
сообщение 16.12.10, 11:14
Сообщение #3

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

Есть справочник например ПодразделенияОрганизаций. Владелец Организация

Администрация (уровень 0)
ФЭО (уровень 1)
ПЭО (уровень 2)
Бухгалтерия (уровень 2)

Надо создавать программно для другого владельца точно такой же справочник Бухгалтерия (уровень2)
Нахожу по первому владельцу ссылку Бухгалтерия (уровень2)
Ссылка.Скопировать()
Ссылка.Владелец = Организация2;
Но родитель то у Бухгалтерия (уровень 2) - ФЭО (уровень 1) подчиненный 1 Организации. А для Оргнизации2 его еще нет. Его тоже надо скопировать.

Приходит в голову только фигня типа
Если Ссылка.Уровень() = 1
Родитель.
ИначеЕсли уровень 2
Родитель.Родитель


Вот вообщем пытаюсь чего то придумать, вариант функции.
// Необходима для поиска и замены подчиненных фирме справочников
Функция ЗаменаПодчиненногоСправочника(Организация,Ссылка) Экспорт
    
    Наименование     = Ссылка.Наименование;
    ИмяСправочника   = Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя;    
    СправочникСсылка = Справочники[ИмяСправочника].НайтиПоНаименованию(Наименование,Истина,,Организация);
    
    Если СправочникСсылка = Справочники[ИмяСправочника].ПустаяСсылка() Тогда
        Если Ссылка.Уровень() > 0 Тогда // Вот это вот фигня на постном масле
            Ур = Ссылка.Уровень();
            Если Ур=1 Тогда
                НовыйСправочник1 = Ссылка.Родитель.Скопировать();
                НовыйСправочник1.Владелец = Организация;
                НовыйСправочник1.Записать();
                
                НовыйСправочник = Ссылка.Скопировать();
                НовыйСправочник.Родитель = НовыйСправочник1.Ссылка;
                НовыйСправочник.Владелец = Организация;
                НовыйСправочник.Записать();
            Иначе
                Предупреждение("Справочник имеет много уровневую структуру! И замена не будет произведена!");
                Возврат Ссылка;
            КонецЕсли;
            
        Иначе    
            НовыйСправочник = Ссылка.Скопировать();
            НовыйСправочник.Владелец = Организация;
            НовыйСправочник.Записать();
        КонецЕсли;
        ТекстСообщения = НСтр("ru='Создан элемент справочника: "+Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Представление()+
        ". Значение: "+НовыйСправочник.Наименование+"!';uk='Додан елемент довідника: "+Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Представление()+
        ". Значення: "+НовыйСправочник.Наименование+"!'");
        
        ОбщегоНазначения.СообщитьИнформациюПользователю(ТекстСообщения,СтатусСообщения.Информация);
        
        Возврат НовыйСправочник.Ссылка;
        
    КонецЕсли;
    
    Возврат СправочникСсылка;
    
КонецФункции

zetovich Подменю пользователя
сообщение 16.12.10, 11:18
Сообщение #4

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

а...он подчиненный?
если да то двигаться сверху вниз.
1) структуру родителей загнать в ТЗ, Список
2) "перевернуть" эту ТЗ/список
3) создавать родителей по порядку.

Спасибо сказали: MATEVI,

MATEVI Подменю пользователя
сообщение 16.12.10, 12:44
Сообщение #5

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

Да как вариант. Что то сегодня голова никак не включается... 36000000.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 27.04.24, 13:10
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!