Перенос справочников из 7.7 в 8.1 (OLE)

50 Comments

  1. su_mai

    Хорошо, что делаете такие вещи, но есть конфигурация конвертация данных — очень мощная вещь!

    Reply ↓
  2. cs25

    Из-за чего может быть:

    {Форма.Форма(159)}: Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса

    V7=Новый COMОбъект(«V77s.Application»);

    Reply ↓
  3. Abadonna

    (2)>V7=Новый COMОбъект(«V77s.Application»);

    А у тебя движок точно V77s? Скульный?

    Reply ↓
  4. cs25

    2 Abadonna > движок скульный, бваза dbf …

    Reply ↓
  5. BandW

    конфигурация конвертация данных делает тоже вродек как.

    А вот не то не другое не помогает перенести на пример историю значений курса по валюте

    Reply ↓
  6. zaic

    Вот добавить сюда перенос групп — ценность повысится на порядок. В основном ведь все большие справочники иерархические.

    А вот перенос истории вообще отдельня песня.

    Reply ↓
  7. deemaa

    (6) перенос групп сделаю попозже, не вопрос

    Reply ↓
  8. cs25

    2 > deemaa 03.09.2008

    (6) перенос групп сделаю попозже, не вопрос

    Было бы рульно !!!

    Reply ↓
  9. anatoly1234

    Abadonna, объясни плиз, что значит это сообщение:

    {Форма.Форма(159)}: Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса

    V7=Новый COMОбъект(«V77s.Application»);

    по причине:

    Недопустимая строка с указанием класса.

    Чего-то я не понимаю!

    Перенос групп — это супер!

    Reply ↓
  10. zaic

    9. скорее всего надо версию 7.7 для СКЛ установить, чтоб в реестр прописать. Еще права проверить и т.д.

    Такие вопросы обычно обычно решаются поиском. Или на форумах, где с вас стрясут кучу дополнительной информации про вас и ваши компьютеры.

    Reply ↓
  11. rasswet

    указал базу 77. подключить. спросило логин-пароль и зависло. лажа((

    Reply ↓
  12. amazonka

    Дмитрий, а у тебя нет ли обработки для вызова из 7.7 по Оле 8.1 .

    и вопрос: вариант из 8.1 вызов 7.7 по Оле лучше технически или в части программирования чем из 7.7 вызов 8.1?

    Reply ↓
  13. Abadonna

    (12)>вариант из 8.1 вызов 7.7 по Оле лучше

    Лучше не по Оле, а по Наташе :)))

    Reply ↓
  14. GeorgeU

    Спасибо. Мне нравится. На основе Вашей обработки мастячу свою.

    Reply ↓
  15. vdscom

    спасибо за обработку, с нее начал кодирование в восьмерке 🙂

    добавил перенос групп с учетом иерархии и очистку справочника (для удаления последствий неудачного переноса) — куда можно ее выложить ?

    Reply ↓
  16. vdscom

    из минусов — не переносит ссылки на объекты (элементы справочников и перечислений) — справочник Номенклатура в 1с8.1 УТ перенести не смог — доработать пока тоже -(

    Reply ↓
  17. deemaa

    спасибо за отзывы

    (16) если переносить ссылки- пока не знаю как не потерять универсальность обработки

    Дорабатывайте, выкладывайте, можете мне выслать я выложу deemaa<a>tut.by

    Reply ↓
  18. vdscom

    (17)

    отправил на мыло

    «если переносить ссылки- пока не знаю как не потерять универсальность обработки» — делать все через метаданные, как же еще :-). как — понимаю, но еще не разобрался, как работать с ними в восьмерке

    Reply ↓
  19. Zhorland

    Отличная обработка, но возникла проблема с допиливанием ее под себя — и именно с переносом ссылок. Если с ссылками на справочники я худо-бедно разобрался — создаем с помощью V7.CreateObject , а потом находим элемент и мы счастливы — то как обратится к перечислению? V7.CreateObject(«Перечисление.СтавкиНДС») не прокатывает 🙁

    Reply ↓
  20. vdscom

    (19) объект «перечисление» создавать не нужно. вот фрагмент кода, правда, выполняемый в 7.7 — думаю, суть понятна

    Если Метаданные.Справочник(Справ).Реквизит(ТекущийРеквизит).Тип=»Перечисление» Тогда

    ВидПеречисл=Строка(Метаданные.Справочник(Справ).Реквизит(ТекущийРеквизит).Вид);

    Кво=Метаданные.Перечисление(ВидПеречисл).Значение();

    Для н=1 По Кво Цикл

    ЗначПеречисл=Метаданные.Перечисление(ВидПеречисл).Значение(н);

    Если Нрег(ЗначРекв)=Нрег(Строка(ЗначПеречисл)) Тогда

    Элемент.УстановитьАтрибут(ТекущийРеквизит,Перечисление.ПолучитьАтрибут(ВидПеречисл).ЗначениеПоНомеру(н));

    Прервать;

    КонецЕсли;

    КонецЦикла;

    КонецЕсли;

    Reply ↓
  21. Cyberboy

    почему когда переносишь из бух 7,7 в УТ 8.1 то выдает вот это сообщение.

    Перед записью в элементе справочника «Номенклатура» необходимо заполнить «базовая единица»!

    Перед записью в элементе справочника «Номенклатура» необходимо заполнить «вид номенклатуры»!

    Ошибка! Возможно код элемента справочника не уникален!

    Reply ↓
  22. IsiKosta

    Чтобы не было ошибки V7=Новый COMОбъект(«V77s.Application»);

    надо добавить в функцию

    ПодключитьБазу(ТекПутьКБазе,ТекПользователь,ТекПароль) Экспорт

    Попытка

    V7=Новый COMОбъект(«V77.Application»);

    Исключение

    V7=Новый COMОбъект(«V77s.Application»);

    КонецПопытки;

    А еще бы сохранение настроек не помешало!

    Reply ↓
  23. toys-nn

    открываю обработку указываю базу, пользователя , пароль, нажимаю подключиться потом пишит «не удалось подключиться» помогите люди добрые

    Reply ↓
  24. Flinky

    плюсанул. пригодится.

    Reply ↓
  25. sorg

    справочник переносится, но реквизиты как перетащить? например справочник КОНТРАГЕНТЫ. Как перенести адреса? телефоны? уз бух 77 в ут 8.1

    Reply ↓
  26. den_vladimir

    Автор молодец! Я дописал ее с вытаскиванием всех зарегиных баз и выводом списка, чтоб не выбирать из каталогов.

    По поводу V7=Новый COMОбъект(«V77.Application»); есть проще вариант

    V7=Новый COMОбъект(«V1CEnterprise.Application»);

    Это универсальный объект, независимо от платформы, сам определяет!

    Reply ↓
  27. URFF

    а возможности переноса с папками есть?

    Reply ↓
  28. Re:аниматор

    почему забывают переносить «ПометкаУдаления»?… сколько не смотрел подобных оле переносов

    Reply ↓
  29. pavlo

    с одной и другой стороны Код справочника типа строка, а в коде 134 строка стоит принудительно число и сразу же падает и ничего не грузит, сырая имхо обработка!

    Reply ↓
  30. Union37

    Спс дядько!

    Reply ↓
  31. provnick

    Вываливается с ошибкой «неверный формат хранилища»

    Reply ↓
  32. Greymem

    Автор, спасибо за обработку

    Скачал, запустил, вроде подключает базу 1С 7.7 нормально, всё видит

    Да вот незадача… как быть?

    Хочу перенести справочник номенклатура, но в базе 1С 8.1 уже есть номенклатура с кодами как в базе 1С 7.7

    Как добавить префикс перед кодом для элементов из 1С 7.7 чтобы нормально элементы записывались

    И вообще дай справочку по настройкам, как настраивать?

    Reply ↓
  33. pomestnik1

    при переносе справочника с 7.7 КА в 8.1 УТ выдает кучу ошибок

    Перед записью в элементе справочника «Номенклатура» необходимо заполнить «базовая единица»!

    Перед записью в элементе справочника «Номенклатура» необходимо заполнить «вид номенклатуры»!

    Ошибка! Возможно код элемента справочника не уникален!

    Reply ↓
  34. EMelihoff

    Спасибо конечно, только вот какая ОШИБКА:

    {Форма.Форма(138)}: Ошибка при получении значения атрибута контекста (ПолноеНаименование): Неизвестная ошибка

    Эл[СокрЛП(СтрокаСт.Реквизит)] = Спр77[СокрЛП(СтрокаСт.Реквизит_77)];

    по причине:

    Неизвестная ошибка

    Reply ↓
  35. isn

    было бы неплохо добавить в перенос помимо сопоставления ещё и принудительное присвоение значений реквизитов справочника в базе приемника, т.к. в некоторых случаях отсутствуют реквизиты и сопоставить их нечему. а в целом обработка хороша и удобна. Буду использовать как шаблон, добавлю элемент «универсальности».

    Reply ↓
  36. agentesecreto

    потребовалось срочно перенести выборочные справочники из бух 7.7 в БП 8.1

    нашел здесь обработку переноса, плюсанул, но обработка не переносит группы

    в комментариях так и не дождался чтобы выложили доработанную обработку, поэтому немного доработал сам, ТЕПЕРЬ ПЕРЕНОСЯТСЯ ГРУППЫ с соблюдением иерархии и ДОБАВЛЕНА КНОПКА ОЧИСТКИ загруженного справочника (возможно придется нажать несколько раз)

    кроме того, убрано пребразование кода в число, и восстановлена синхронизация по коду

    кому интересно, берите на http://infostart.ru/public/80256/

    Reply ↓
  37. fokin_an

    Полный бред!!! Не советую даже смотреть. Это делается за 10 мин. А если я хочу перенести, конкретную группу номенклатуры??? что тогда??? отсос?

    к тому же, как вытащить наименование и код-понятно всем. Вот, как быть с единицами — это вопрос, который надо было решить))))

    Reply ↓
  38. linkdp

    Отличная обработка, мне оч. помогла разобраться в хитростях и основах ole-систем. Автору респект…)

    Reply ↓
  39. eli1984

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

    Reply ↓
  40. karbofos

    Да. Тоже долго разбирался, но всеже помогло, хотя и не в полной мере. Автору респект.

    Reply ↓
  41. raffall

    Пригодилась

    Reply ↓
  42. ok1infos

    Спасибо конечно, но ошибки полезли, пришлось менять

    V7=Новый COMОбъект(«V77s.Application»);

    на

    V7=Новый COMОбъект(«V77.Application»);

    ну и с Код. проблемы были. код вовсе не числовой оказался, а преобразование было лишним.

    Reply ↓
  43. andersss

    Спасибо!!!

    Reply ↓
  44. Грааль

    Ах какое огромное вам спасибо!!! Даже представить не можете как выручили!!!

    Reply ↓
  45. xDee

    Спасибо огромное, просто за готовую реализацию идеи.

    Reply ↓
  46. trum86

    СПАСИБО!!! НАСТОЯЩИЙ МАСТЕР!!!=))))

    Reply ↓
  47. nanik

    Попробовал перенести из 1с 77 ЗиК в 1с 8.2 конфигурацию на базе Управления производственным предприятием справочник физические лица (77 Сотрудники, 8.2 Физические лица) только общие реквизиты, выдает ошибку:

    {Форма.Форма.Форма(134)}: Преобразование значения к типу Число не может быть выполнено

    Эл.Код =Число(Спр77.Код);

    🙁

    Что ж будет время поковыряю обработку, а идея очень хорошая.

    Reply ↓
  48. CrVik

    работает, как положено, спасиб!

    Reply ↓
  49. AlexO

    (47) nanik,

    То, что в строке 134 замените на:

      Если ТипЗнч(Эл.Код) = Тип(«Число») Тогда
    Попытка
    Эл.Код = Число(Спр77.Код);
    Исключение
    Сообщить(«Ошибка! Код «»» + Спр77.Код + «»» импортируемого элемента справочника не может быть преобразован в число.»
    + Символы.ПС + «Код элемента » + Спр77.Наименование + » не записан!», СтатусСообщения.Важное);
    КонецПопытки;
    Иначе
    Если ТипЗнч(Спр77.Код) = Тип(«Число») Тогда
    Эл.Код = Строка(Спр77.Код);
    Иначе
    Эл.Код = Спр77.Код;
    КонецЕсли;
    КонецЕсли;
    

    Показать

    Reply ↓
  50. LanaSN

    Хорошая обработка, спасибо за помощь!

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *