Перенос справочников из 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 не будет опубликован. Обязательные поля помечены *