#0
by Старуха Шапокляк
Здравствуйте, пытаюсь по OLE перенести контрагентов из одной базы в другую. В результате группы создаются, но только с одним уровнем вложенности (иерархии), а у нас может быть и три уровня. Создаются и элементы, но они не привязанны ни к одному родителю. Помогите пож-та, как мне при переносе соблюсти многоуровневость и подчиненность элемента родителю. P.S. Синхронизация по кодам мне не нужна. Процедура Сформировать
#2
by Ёпрст
Прежде чем лепить бездумно новые, нужно в начале найти существующие ... та и рекурсия рулит ...
#9
by Лефмихалыч
да в идеале вообще все здорово. А бывают справочники и большей вложенностью. Бывают справочники с дохрена элементов, многие из которых - неограниченые строки. о как!..
#10
by Ёпрст
Вызов функции самой из себя... Основ программирования нема ? Окромя 1с -ины не на чем не писала до того как ? ...
#15
by Tsar
а) При создании группы родителя, тоже нужно определять б) Нужно учесть, что у первого уровня родителя нет в) НайтиПоНаименованию - не коректно, т.к. Наименование не уникальный реквизит лучше рекурсия - тогда вообще можно без поиска обойтись
#18
by Старуха Шапокляк
спасибо конечно, а нет ли способа, чтобы по-проще как-то находить родителя...???
#20
by H A D G E H O G s
Пропишешь раз - и пользуйся везде, потом тока реквизиты, имя справочников меняй..
#22
by Ёпрст
Для начала, нужно определиться, по какому признаку будешь синхронизировать элементы в разных базах...
#23
by Старуха Шапокляк
спасибо, но боюсь, что я это не осилю... конфигурации баз совершенно разные, синхронизировать надо по наименованию (коды значения не имеют)...
#24
by H A D G E H O G s
По коду (уникален)/GUID-у (что нам в семерке? ID?) и доп реквизиту в локальном справочнике. Тут думать нечего...
#29
by Tsar
да возможно надо так: Процедура ЗагрузитьГруппу(ОлеГр,Знач ТекГр) Но остальное должно работать Я не могу понять зачем запускать загрузку два раза :)
#30
by Ёпрст
так тоже не работает... Думаешь, новых элементов не могут добавить за всё время работы в базе ???
#34
by Старуха Шапокляк
пишет ошибку: Если Оле.Уровень > 1 Тогда {C:ОЛЕ_100708.ERT}: Поле агрегатного объекта не обнаружено (Уровень)
#37
by Ёпрст
код весь - в топку... ЗЫ: Чтоб не проверять на уровень, делают ПолучитьЭлемент или ВключатьПодчиненные А так - такой код нафик ненужен, ибо его повторное выполнение недопустимо.
#38
by Старуха Шапокляк
спасибо, теперь выдает ошибку на: {C:ОЛЕ_100708_2.ERT}: Неверный тип справочника
#42
by Старуха Шапокляк
Не думала, что такая простая задача будет так сложно решаться. А где взять этот Универсал? Мне бы как-нибудь без рекурсии обойтись... :(
#45
by Старуха Шапокляк
спасибо, скачала Универсал. Попробовала им запустить перенос, ничего не переносит, а выводит ошибки: Ошибка назначения типа реквизита неопределенного вида ПолнНаименование справочника Контрагенты. ** 20 Поле агрегатного объекта не обнаружено (Реквизит) Ошибка назначения типа реквизита неопределенного вида ЮридическийАдрес справочника Контрагенты. ** 20 Поле агрегатного объекта не обнаружено (Реквизит) Ошибка назначения типа реквизита неопределенного вида Телефоны справочника Контрагенты. ** 20 Поле агрегатного объекта не обнаружено (Реквизит)
#47
by Старуха Шапокляк
2. Инициализировала базу-приемник; 3. На вкладке-Справочники выбрала соответствие справочника-источника справочнику-приемнику, указала соответствие их реквизитов; 4. Нажала ВыполнениеПереноса Процесс пошел, но в окне сообщений ошибки, как в P.S. Может где-то еще надо настроить?
#48
by Ёпрст
чего за конфы то хоть ? Синхронизацию по какому реквизиту выставила ? По Наименованию?...
#49
by Старуха Шапокляк
1-ая конф-ция - 1СБухгалтерия, 2-ая - 1СКанцелярия. Да, синхронизацию по наименованию делала. Мне там надо то всего Наименования, Юр.адрес и телефоны перенести, соблюдая иерархию...
#54
by Старуха Шапокляк
скинула md-шник на Надо загрузить поля: Наименование, ПолноеНаименование, ЮрАдрес и Телефон из спр.Контрагенты (в Бухгалтерии) в спр.Корреспонденты (Канцелярия, его md-шник я выложила).
#55
by Impressing3
Хм..на мой взгляд все правильно написано у автора, только при нахождении группы надо заново запускать эту процедуру и передавать в нее эту группу и лазить в этой группе.. нашли еще группу, лезем внутрь еще, и т.д.... пока до конечного элемента не доберемся... Тьфу..собственно это уже и писали тут..
#57
by Ёпрст
Взял демку от бухии, развернул конфу из твоего мд-ника... далее в бухне выставил всё прекрасно перенеслось.
#58
by Старуха Шапокляк
разобралась: я перепутала базу-источник и базу-приемник. Указала как надо, вроде перенеслось, но при ближайшем рассмотрении выяснилось: 1. перенес только те группы, у кого один уровень вложенности, а если свыше одного уровня - то не перенес ничего :( 2. перенес только Наименование, а адрес и телефоны - нет :( P.S. Т.е. опять вернулись к проблеме с иерархией... Может подскажет кто-нибудь, как мне поправить мой код в , чтобы подвязывался и родитель и если больше одного уровня... HELP!!!
#59
by kdm
странно у мну все перенеслось, все три уровня при этом правда писала: "Ошибка назначения типа реквизита неопределенного вида ПолнНаименование справочника Контрагенты. ** 20 Поле агрегатного объекта не обнаружено (Реквизит) Ошибка назначения типа реквизита неопределенного вида ЮридическийАдрес справочника Контрагенты. ** 20 Поле агрегатного объекта не обнаружено (Реквизит) Ошибка назначения типа реквизита неопределенного вида Телефоны справочника Контрагенты. ** 20 Поле агрегатного объекта не обнаружено (Реквизит) но элементы и значения реквизитов перенеслись. Это вопрос к Самому то лень смотреть.
#60
by DrZombi
Целый год на форуме, и не могешь перенос организовать :( Начни хотя бы с простого, перенос первого уровня справочника :) Затем второго... Хотя тут все дело в порядке передаваемых данных. Сначала сформируй ТЗ - Таблицу значений, где данные будут представлены в иерархии: 1 стр. Группа клиента №1 (уровень 1) 2 стр. элемент группы (Группа клиента №1) (уровень 2) 3 стр. Группа клиента №2 (уровень 1) 4 стр. Группа клиента №3 (уровень 2) 2 стр. элемент группы (Группа клиента №2) (уровень 3) и т.д. Потов загружаешь в том же порядке :)
#61
by DrZombi
+2 стр. элемент группы (Группа клиента №2) (уровень 3) => 5 стр. элемент группы (Группа клиента №3) (уровень 3) Ошибся малось
#64
by Старуха Шапокляк
у меня тоже такие же сообщения выходят, я их выложила в . спасибо за участие, может быть у Вас другая структура справочника, но у меня не переносит, если допустим: Так вот, при такой структуре справочника, переносит только Микрорайон (1уровень). А остальное не переносит...
#65
by Ёпрст
конфы разные... Переносит всё. Выкладывай скриншот с настройками, на сообщения об ошибках - забей... Переключатели правильно установила ? В настройке соответствия выставила галку - перезаписывать объекты ? ...
#66
by Старуха Шапокляк
Немного не так структуру отобразила, должно быть так: спасибо, но дает скачать только для зарегистрированных пользователей, и осуществляет перенос между одинаковыми базами, а у меня конфигурации разные.
#67
by DrZombi
Это я тебе пример без рекурсии привел, можно сказать тоже самое, если бы ты считала на пальцах ;)
#70
by Ёпрст
не переносит только по одной причине - есть одинаковые наименования в справочнике... Или наименование группы совпадает с наименованием элемента справочника... Я б так сделал - тип кода в канцелярии выставил бы как текстовый, и переносил бы с синхронизацией по коду, предвартиельно перебив все коды в справочнике Корренспонденты с каким-нить префиксом.
#73
by svaroha
В основном, вся проблема в том, что сравнивают по наименованию. Почему бы не сделать в базе-приемнике реквизит КодСвязи и уже сравнивать КодСвязиСправочника и КодСвязиПриемника. Коды то уникальны (если конечно проставлена признак уникальности), а наименование может и совпадать. Хуже всего, когда наименов. группы=наименов элемента.
#75
by Serjant
Вот пример: Хотя если у элемента и у группы внутри одного подчинения будут одинаковые наименования вылетит с ошибкой
#76
by svaroha
Код в базе источника уникальный?? Я думаю уникальный. При загрузке из БД источника заполняем и КодСвязи = КодБДИсточника. Тогда при загрузке из БДИсточник я бы проверял бы сразу КодСвязи, а если не находил бы код связи, тогда по наименованию. И вообще, если уж грузить, выборку нужно упорядочить таким образом, чтобы ишли сначала все группы (сортировка УровеньИерархии по возрастанию, а потом уже при загруженных группах - грузил бы элементы. Если запросом, то (выбрать Элемент.ЭтоГруппа = Истина ... Соединить Элемент.ЭтоГруппа = ложь). Где то так. Зато при последующих перегрузках всегда есть связь элементов источника и элементов приемника.
#77
by Ёпрст
А что, просто синхронизировать по Коду справочника религия мешает ? Нафига сдался еще один реквизит? ...
#78
by Старуха Шапокляк
***** Ёпрст3 большое Вам СПАСИБО за участие и помощь в решении моей проблемы!!! Сделала, как Вы посоветовали в : в Канцелярии сделала текстовый код, увеличила длину кода до 8-ми (чтобы как в Бухгалтерии было) и перенумеровала с префиксом. Затем запустила Универсал - все отлично перенеслось с соблюдением иерархии. Только почему-то не перенеслись реквизиты ЮрАдрес и Телефон... Спасибо, сейчас попробую и Ваш вариант.
#79
by Ёпрст
Странно, у меня переносится всё... :( С синхронизацией по коду можешь теперь сколько угодно раз переносить - он будет просто обновлять существующие...
#80
by svaroha
Можно, если это первая выгрузка. И потом все элементы будут синхронизироватся по коду. То можно. А вообще то, для контрагентов, униклаьным кодом обычно является ЭДРПОУ/ИНН.
#82
by Старуха Шапокляк
Это чудо!!! Код работает, переносится иерархия корректно. Только не пойму, почему переносит из реквизитов только Наименование, а Адрес и Телефон - нет :( Причем, если пользоваться Универсалом, то тоже не переносит Адрес и Телефон. Хотя я добавила в коде строчки: ... ... ТСпр.Новый; ... ...
#84
by Ёпрст
... В бухне, случаем, не меняла реквизиты Адрес и телефон, на периодические, к примеру ?...И это, они вообще заполнены хоть?...
#85
by Старуха Шапокляк
все переносится нормально - извините, была моя ошибка... ВСЕМ КТО ПОМОГАЛ ОГРОМНОЕ С П А С И Б О !!!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как закрыть приложение открытое через OLE
- OLE,OLE,OLE
- OLE объект (77). Проблема записи элемента справочника в символе "/"
- Проблемы с работой через OLE, запуск функции через OLE
- Перенос табличной части документа и перечислений по OLE
- Перенос остатков по OLE из ПУБ 7.7 в Комплексную авт 8.1
- Перенос из 7.7 в 8.1_8.2 OLE
- v7: Перенос данных из 1С:8 в 1С:77. Обход реквизитов справочника 1С:7.7 ч/з OLE
- v7: Перенос с формы справочника в реквизит справочника
- Перенос справочника из 1с 7.7 в 1с 8.2 справочник с группами через OLE
- v7: Перенос справочника Контрагенты по OLE
- Проблема с перенос справочника в УТ 11
В этой группе 1С
- Условие в запросе, аналогичное условию в запросе 77
- Не срабатывает событие "Перетаскивание"
- Лог-файлы сервера 1с
- Как запрограммировать обработку расшифровки?
- как из 1с программно установить защиту на группу ячеек в екселе?
- Параметры запуска 1с
- Как запустить формирование отчета из внешней обработки
- как я могу изменит тип строка на СправочникСсылка.Номенклатура
- Отчет "Расчеты с покупателями (услуги, счет 62) с группировкой по уровням
- ошибочный порядок записи XML
- Зуп Перерасчеты - почему и как возникают ?
- ЗиК codebase error 70
- MSSQL DELPHI OLE Бинарные данные, изображение
- Сколько времени необходимо для подготовки на 1С 8: Cпециалиста
- Работа в терминале, Зависает 1С при проведении документа.
- Как в v8 сохранить многостраничный отчет в Excel с разбивкой по листам-зак
- СправочникСписок: как спозиционироваться на определенной строке?
- Как открыть внешний файл mxl на чтение?
- Сортировка в запросе в обратном порядке
- УПП почему только для оборудования делается проводка по БУ?