Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Выгрузка из 77 загрузка в 8 (число прочтений - 7184 )
U_zer
Экс-Участник


Выгрузка из 77 загрузка в 8
11. Сентября 2009 :: 12:07
Печать  
Всем привет!

Столкнулся с проблемой:
Есть база 77, номенклатура порядка 50 000, необходимо ее выгружать и загружать в 8. Использовать OLE или XML не получится.
Все бы ничего, но поэлементная выгрузка происходит Оооооооо ччень долго. Использовать методы ЗначениеВФайл() ИзФайла - и любые другие нельзя, пока использую выгрузку в обычный текст. Есть ли какая возможность по увеличению скорости выгрузки?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #1 - 11. Сентября 2009 :: 12:10
Печать  
Цитата:
Всем привет!

Столкнулся с проблемой:
Есть база 77, номенклатура порядка 50 000, необходимо ее выгружать и загружать в 8. Использовать OLE или XML не получится.
Все бы ничего, но поэлементная выгрузка происходит Оооооооо ччень долго. Использовать методы ЗначениеВФайл() ИзФайла - и любые другие нельзя, пока использую выгрузку в обычный текст. Есть ли какая возможность по увеличению скорости выгрузки?

1 выгружай dbf
2 MS sql таблица загружать через aDO

  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Выгрузка из 77 загрузка в 8
Ответ #2 - 11. Сентября 2009 :: 12:19
Печать  
ДБФ будет весить гага 2. Как я это потом по сети или почте буду перекидывать?
Да и потом, это опять нужно поэлементно выгружать, что не есть хорошо.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #3 - 11. Сентября 2009 :: 12:31
Печать  
Цитата:
ДБФ будет весить гага 2. Как я это потом по сети или почте буду перекидывать?
Да и потом, это опять нужно поэлементно выгружать, что не есть хорошо.

так все равно самый тормоз будет ( чем не делай )
на  операции v8 Записать.
для dbf кто мешает создать несколько файлов.
Если v77 sql то бери из таблицы справочника через ADO.
( или копии таблицы если надо не прерывать работу 1с 77 )



  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #4 - 11. Сентября 2009 :: 13:08
Печать  
А зачем регулярно перегружать такие объемы?

Для решения подобной задачи у себя реализовал в 77 аналог восмеркиных ПлановОбмена. Т.о. выгружаются/загружаются только измененные элементы номенклатуры.
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: Выгрузка из 77 загрузка в 8
Ответ #5 - 11. Сентября 2009 :: 13:13
Печать  
DmitrO писал(а) 11. Сентября 2009 :: 13:08:
А зачем регулярно перегружать такие объемы?

Для решения подобной задачи у себя реализовал в 77 аналог восмеркиных ПлановОбмена. Т.о. выгружаются/загружаются только измененные элементы номенклатуры.


Да понятно это все. У меня тоже все это есть. Пакетник работает в боевых условиях только по измененным. Тестируем мы новую разработку. Периодически приходится перегружать товары для тестирования.
Задрало уже по 30 минут перегружать это все раз по 5 на дню.
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Выгрузка из 77 загрузка в 8
Ответ #6 - 11. Сентября 2009 :: 13:16
Печать  
Z1 писал(а) 11. Сентября 2009 :: 12:31:
Цитата:
ДБФ будет весить гага 2. Как я это потом по сети или почте буду перекидывать?
Да и потом, это опять нужно поэлементно выгружать, что не есть хорошо.

так все равно самый тормоз будет ( чем не делай )
на  операции v8 Записать.
для dbf кто мешает создать несколько файлов.
Если v77 sql то бери из таблицы справочника через ADO.
( или копии таблицы если надо не прерывать работу 1с 77 )





Да я и так в 77 беру через SQL. Прикол в том, что 8 нихрена не понимает семерочные ЗагрузитьИзФайла() и т.д. Поэтому приходится поэлементно формировать текстовик. Типа Имярекв ЗначениеРекв.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #7 - 11. Сентября 2009 :: 13:45
Печать  
DmitrO писал(а) 11. Сентября 2009 :: 13:08:
А зачем регулярно перегружать такие объемы?

Для решения подобной задачи у себя реализовал в 77 аналог восмеркиных ПлановОбмена. Т.о. выгружаются/загружаются только измененные элементы номенклатуры.

А можешь поподробнее про ПланыОбмена в 77 ? Технология, я так думаю, только для sql-версий
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Выгрузка из 77 загрузка в 8
Ответ #8 - 11. Сентября 2009 :: 14:09
Печать  
JohnyDeath писал(а) 11. Сентября 2009 :: 13:45:
DmitrO писал(а) 11. Сентября 2009 :: 13:08:
А зачем регулярно перегружать такие объемы?

Для решения подобной задачи у себя реализовал в 77 аналог восмеркиных ПлановОбмена. Т.о. выгружаются/загружаются только измененные элементы номенклатуры.

А можешь поподробнее про ПланыОбмена в 77 ? Технология, я так думаю, только для sql-версий


Да в принципе, это можно и на SqLite замутить, в SQL - проще,
создаешь табличку на сервере и пишешь туда все измененные  объекты (ну для справочников достаточно вида и полного кода, для документов - вида и номера), а потом выгружаешь измененные и все.
Зы: Хорошо бы было нечто типа поставщика данных для измененных сляпать - был бы рулеzz форева.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #9 - 11. Сентября 2009 :: 15:50
Печать  
А как определять "всех измененных"?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #10 - 12. Сентября 2009 :: 10:33
Печать  
JohnyDeath писал(а) 11. Сентября 2009 :: 15:50:
А как определять "всех измененных"?

+1
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #11 - 12. Сентября 2009 :: 10:54
Печать  
JohnyDeath писал(а) 11. Сентября 2009 :: 15:50:
А как определять "всех измененных"?

Нетипичное использование компоненты УРБД
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Выгрузка из 77 загрузка в 8
Ответ #12 - 14. Сентября 2009 :: 05:36
Печать  
JohnyDeath писал(а) 11. Сентября 2009 :: 15:50:
А как определять "всех измененных"?


Не понял вопроса .......
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #13 - 14. Сентября 2009 :: 06:17
Печать  
Степан постом выше привел ссылку на одно из решений.
А как ты определял объекты, которые изменились/добавились после последней выгрузки?
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Выгрузка из 77 загрузка в 8
Ответ #14 - 14. Сентября 2009 :: 06:23
Печать  
JohnyDeath писал(а) 14. Сентября 2009 :: 06:17:
Степан постом выше привел ссылку на одно из решений.
А как ты определял объекты, которые изменились/добавились после последней выгрузки?


Элементарно ......
Процедура ПриЗаписи() объекта,
И если этого объекта нет в табличке добавим.
А после выгрузки - табличка очищается. Какие проблемы-то?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #15 - 14. Сентября 2009 :: 06:37
Печать  
Править процедуру ПриЗаписи в каждом объекте?? + анализировать, а нет ли там СтатусВозврата(0) ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #16 - 14. Сентября 2009 :: 06:37
Печать  
Цитата:
JohnyDeath писал(а) 14. Сентября 2009 :: 06:17:
Степан постом выше привел ссылку на одно из решений.
А как ты определял объекты, которые изменились/добавились после последней выгрузки?


Элементарно ......
Процедура ПриЗаписи() объекта,
И если этого объекта нет в табличке добавим.
А после выгрузки - табличка очищается. Какие проблемы-то?

а если объект записывается(изменяется) обработкой ?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #17 - 14. Сентября 2009 :: 06:43
Печать  
Z1 писал(а) 14. Сентября 2009 :: 06:37:
а если объект записывается(изменяется) обработкой ?

Кстати да, это ж самая большая проблема.
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Выгрузка из 77 загрузка в 8
Ответ #18 - 14. Сентября 2009 :: 07:19
Печать  
JohnyDeath писал(а) 14. Сентября 2009 :: 06:43:
Z1 писал(а) 14. Сентября 2009 :: 06:37:
а если объект записывается(изменяется) обработкой ?

Кстати да, это ж самая большая проблема.


Не вижу препядствий ... (С)  Улыбка

Делаещь глоб процедуру по проверке, вставке измененных объектов, да, и добавляешь ее в ПриЗаписи и в различные обработки. Да, я понимаю, тяжело. Нонче программисты обленились.  Но ведь пока еще нет поставщика измененных ... Так что се-ля-ви ....
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #19 - 14. Сентября 2009 :: 07:27
Печать  
Очень х#ровое решение. Это каждый раз надо помнить про эту глоб. процедуру. Уж лучше поле verstamp проверять (если нет УРБД).
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #20 - 22. Сентября 2009 :: 23:06
Печать  
да Улыбка, в случае с урбд даже както проще, создать липовую базу и настроить миграцию, и обрабатывай себе updts скок влезет.
  
Наверх
IP записан
 
U_zer
Экс-Участник


Re: Выгрузка из 77 загрузка в 8
Ответ #21 - 23. Сентября 2009 :: 06:02
Печать  
Есть один большой минус - УРБД надо покупать.
А из-за такой ерунды, как отслеживание измененных - никто дурные деньги за 77 платить не будет. Да и глупость это, потому что уж естли и вкладывать, то в 8 сразу.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #22 - 23. Сентября 2009 :: 06:25
Печать  
Цитата:
Есть один большой минус - УРБД надо покупать.
А из-за такой ерунды, как отслеживание измененных - никто дурные деньги за 77 платить не будет. Да и глупость это, потому что уж естли и вкладывать, то в 8 сразу.

да не таких уж и больших деньг стоит УРБД
да и без УРБД решений много
Вот все изложенные в ветке варианты
1. Твое решение Вручную отслеживать изменения
2. УРБД
3. анализ поля verstamp в таблице справочника товары.
4.(еще здесь не обсуждалось) на таблицу спр. товаров повесить тригер.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #23 - 23. Сентября 2009 :: 06:38
Печать  
Z1 писал(а) 23. Сентября 2009 :: 06:25:
4.(еще здесь не обсуждалось) на таблицу спр. товаров повесить тригер.

На ДБФ триггер не повесишь  Печаль
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выгрузка из 77 загрузка в 8
Ответ #24 - 23. Сентября 2009 :: 06:44
Печать  
JohnyDeath писал(а) 23. Сентября 2009 :: 06:38:
Z1 писал(а) 23. Сентября 2009 :: 06:25:
4.(еще здесь не обсуждалось) на таблицу спр. товаров повесить тригер.

На ДБФ триггер не повесишь  Печаль

да вроде из контекста следует что у автора sql.
но в любом случае есть из чего выбрать
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать