Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Перенос справочников (число прочтений - 8932 )
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Перенос справочников
17. Октября 2008 :: 11:34
Печать  
Пробовал ли кто-нибудь реализовать перенос справочников из одной базы в другую, используя прямые запросы?
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Перенос справочников
Ответ #1 - 17. Октября 2008 :: 11:48
Печать  
SQL, ДБФ ?
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #2 - 17. Октября 2008 :: 12:18
Печать  
Все равно. Имеется в виду в принципе есть ли такие обработки?
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Перенос справочников
Ответ #3 - 17. Октября 2008 :: 12:27
Печать  
Перенос разовый, или синхронизация?

P.S.Для ДБФ и SQL - технологии разные
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #4 - 17. Октября 2008 :: 12:31
Печать  
Я знаю, что разные технолигии. Синхронизация любого справочника с переносом всех реквизитов.
Есть мысль эту идею воплотить.
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #5 - 17. Октября 2008 :: 15:37
Печать  
не всегда все реквизиты и нужны. ну в общем случае пригодится. у меня из комплексной в самописку банально по оле переносится, поскольку выгрузка делается вручную, т.е. выгружаются не все контрагенты а по выбору бухгалтера, запоминание id комплексной в самописке гарантирует отсутсвие дублей всё просто, а значит и стабильно ...

зы: хотя изначально и у меня была мысль прямым запросом реализовать, но скорости оле хватает, других причин в этой задаче для прямого запроса не вижу, причем по оле даже проще реализовать, без заморочек.
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Перенос справочников
Ответ #6 - 18. Октября 2008 :: 09:18
Печать  
Да, использовал
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Перенос справочников
Ответ #7 - 18. Октября 2008 :: 14:39
Печать  
используем для sql бд (триггеры он инсерт и апдейт)
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Перенос справочников
Ответ #8 - 18. Октября 2008 :: 14:47
Печать  
Использую для ДБФ. Пример http://www.1cpp.ru/forum/YaBB.pl?num=1182497837/19#19
Заточено под одну базу, т.е. не универсально.
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #9 - 20. Октября 2008 :: 07:07
Печать  
Есть обработка, которая переносит все реквизиты (в т.ч. периодические и нетипизированные), кроме тех, что имеют тип "Документ".
Проверялась на идентичных базах (sql). Вроде бы все корректно работает, но требуется еще потестить - все-таки процедура ответственная. Справочник можно перенести любой из выбранных в любую базу из выбранных в ТЗ. Думаю добавить еще возможность выбора и реквизитов, чтобы не все переносить, а только выбранные.
  
Наверх
 
IP записан
 
unnamed
Full Member
***
Отсутствует


0x1c = 28

Сообщений: 166
Местоположение: Chelyabinsk
Зарегистрирован: 01. Ноября 2007
Пол: Мужской
Re: Перенос справочников
Ответ #10 - 20. Октября 2008 :: 07:40
Печать  
Antes писал(а) 20. Октября 2008 :: 07:07:
Думаю добавить еще возможность выбора и реквизитов, чтобы не все переносить, а только выбранные.

Было бы интересно взглянуть на результаты Улыбка
  
Наверх
ICQ  
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #11 - 21. Октября 2008 :: 14:52
Печать  
А они есть!  Улыбка
  
Наверх
 
IP записан
 
ilf
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 01. Сентября 2008
Re: Перенос справочников
Ответ #12 - 22. Октября 2008 :: 07:17
Печать  
есть же конфигурация конвертации данных она заруливает всех
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #13 - 22. Октября 2008 :: 10:04
Печать  
Возможно! Но у меня ситуация такая, что есть несколько десятков баз! В одной обновляют некоторые справочники, которые затем нужно (желательно) несложным движением перебросить в некоторые другие базы. Причем желательно выбирать элементы, чтобы не "засорять" те базы ненужной инфой. Потом по всем базам сбиваются консолидированные отчеты.  Добавили элемен в справочник, выбрали нужные базы, нажали кнопочку и все! Улыбка
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #14 - 23. Октября 2008 :: 02:18
Печать  
Antes писал(а) 22. Октября 2008 :: 10:04:
Возможно! Но у меня ситуация такая, что есть несколько десятков баз! В одной обновляют некоторые справочники, которые затем нужно (желательно) несложным движением перебросить в некоторые другие базы. Причем желательно выбирать элементы, чтобы не "засорять" те базы ненужной инфой. Потом по всем базам сбиваются консолидированные отчеты.  Добавили элемен в справочник, выбрали нужные базы, нажали кнопочку и все! Улыбка

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

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #15 - 23. Октября 2008 :: 05:40
Печать  
Если элемент присутствует уже в справочнике, то он только обновляется (выбранные реквизиты).  А вообще, обработка практически готова и довольно неплохо выполняет то, что надо мне. И гораздо быстрее, чем это делать через OLE.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Перенос справочников
Ответ #16 - 23. Октября 2008 :: 06:45
Печать  
Antes писал(а) 23. Октября 2008 :: 05:40:
Если элемент присутствует уже в справочнике, то он только обновляется (выбранные реквизиты).  А вообще, обработка практически готова и довольно неплохо выполняет то, что надо мне. И гораздо быстрее, чем это делать через OLE.


синхронизация по внешнему id ? Или по какому полю?
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #17 - 23. Октября 2008 :: 06:57
Печать  
Берем элемент текущей базы, определяем по коду или наименованию его ID  в удаленной базе (с учетом подчинений, родителей). Если таковой имеется в базе, то простым запросом по ID обновляем строку (можем выборочно реквизиты) в таблице справочника (и, соотв. в таблице _1sconst). Если такового нет, то добавляем новую запись, заполняя все поля и делая записи в _1sconst (если есть периодич. реквизиты).
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #18 - 23. Октября 2008 :: 07:07
Печать  
Выглядит это вот так.
  

1_006.jpg ( 114 KB | Загрузки )
1_006.jpg
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #19 - 23. Октября 2008 :: 09:17
Печать  
синхронизировать по наименованию или коду опасно, бухи такое натворить могут, дублей не оберешься (переименуют в удаленной базе куда выгружаешь несколько элементов и вот он дубль)
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #20 - 23. Октября 2008 :: 09:23
Печать  
А тут без вариантов! По-моему.
Тем более, что можно выбирать и реквизиты, и справочники, и элементы...
К внешнему ID вообще привязываться нельзя - такое натворить можно, что дубли - просто шалости! ID в двух базах будут совпадать только в том случае, если инфа вносится в одной, а в другую производится только выгрузка.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перенос справочников
Ответ #21 - 23. Октября 2008 :: 09:26
Печать  
Делал. Все кроме периодических реквизитов переноситься:
INSERT - того чего нет, и UPDATE - тто что есть, синхронизация по ID. MD должны быть полностью одинаковыми.
  
Наверх
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #22 - 23. Октября 2008 :: 09:27
Печать  
Antes писал(а) 23. Октября 2008 :: 09:23:
А тут без вариантов! По-моему.
Тем более, что можно выбирать и реквизиты, и справочники, и элементы...
К внешнему ID вообще привязываться нельзя - такое натворить можно, что дубли - просто шалости!


Внешний ID - единственный выход когда, например в одну базу в спр-к номенклатура сливается из разных баз, где номенклатура межет не совпадать.
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #23 - 23. Октября 2008 :: 09:31
Печать  
ID в двух базах будут совпадать только в том случае, если инфа вносится в одной, а в другую производится только выгрузка.
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #24 - 23. Октября 2008 :: 09:32
Печать  
pvase писал(а) 23. Октября 2008 :: 09:26:
Делал. Все кроме периодических реквизитов переноситься:
INSERT - того чего нет, и UPDATE - тто что есть, синхронизация по ID. MD должны быть полностью одинаковыми.


ID элемента при Insert так правильно получать ?

Код
Выбрать все
set nocount on
select @id=MAX(ID) from SCХХХХ(NOLOCK)
if @id is null select @id='         ' 

  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #25 - 23. Октября 2008 :: 09:34
Печать  
Видимо, под термином "внешний ID" мы понимаем разные вещи. Я понимаю это, как ID справочника из "чужой" базы, по отношению к данной.
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #26 - 23. Октября 2008 :: 09:35
Печать  
Antes писал(а) 23. Октября 2008 :: 09:31:
ID в двух базах будут совпадать только в том случае, если инфа вносится в одной, а в другую производится только выгрузка.

можно конечно, но нужно на 100% уверенным быть в этом, бухи что и удалять не могут в справочниках и чистить помеченных на удаление ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #27 - 23. Октября 2008 :: 09:37
Печать  
Antes писал(а) 23. Октября 2008 :: 09:34:
Видимо, под термином "внешний ID" мы понимаем разные вещи. Я понимаю это, как ID справочника из "чужой" базы, по отношению к данной.

Да. так и есть, я имел ввиду под внешним id то что в моде называется idd
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #28 - 23. Октября 2008 :: 09:37
Печать  
Неверно!
В этом случае вы получаете максимальный из имеющихся в базе. А вам это значение нужно увеличить на 1, для чего вы должны преобразовать из 36-ричной системы в 10-ю, добавить 1, и преобразовать обратно!
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #29 - 23. Октября 2008 :: 09:39
Печать  
Я сделал это вот так:

ТекстЗапроса = "
                             |DECLARE @syst int
                             |DECLARE @MAX_ID CHAR(9)
                             |DECLARE @num int
                             |DECLARE @ID CHAR(9)
                             |DECLARE @i bigint
                             |DECLARE @c int
                             |DECLARE @Len_ID_1SObj int
                             |DECLARE @DateValue datetime
                             |DECLARE @IDRekv int
                             |DECLARE @Value char(255) 
                             |DECLARE @ТValue char(3)
                             |SET @syst = 36
                             |SET @Len_ID_1SObj = 6
                             |SET @MAX_ID = ''
                             |SET @i=0
                             |
                             |EXEC _1sp_" + ТабБД + "_MaxID @ID OUTPUT 
                             |SELECT @ID = UPPER(LTRIM(LEFT(@ID,@Len_ID_1SObj)))
                             |
                             |WHILE @ID<>''
                             |      SELECT @c=ascii(LEFT(@ID,1)),
                             |          @c=case when @c>57
                             |                  then @c-55
                             |                  else @c-48 end,
                             |               @i = @i + @c * power(@syst,len(@ID)-1),
                             |          @ID=SUBSTRING(@ID,2, len(@ID))
                             |
                             |
                             |SET @num = @i + 1
                             |
                             |WHILE @num>0
                             |         select @MAX_ID=char(case when @num%@syst < 10
                             |                   then @num%@syst + ascii('0')
                             |                   else @num%@syst + ascii('A')-10 end)   +@MAX_ID, 
                             |             @num=@num / @syst
                             |
                             |WHILE Len(@MAX_ID)<@Len_ID_1SObj
                             |      select @MAX_ID = ' '+@MAX_ID
                             |SELECT @MAX_ID = CONVERT(char(9), @MAX_ID)
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #30 - 23. Октября 2008 :: 09:42
Печать  
Antes писал(а) 23. Октября 2008 :: 09:37:
Неверно!
В этом случае вы получаете максимальный из имеющихся в базе. А вам это значение нужно увеличить на 1, для чего вы должны преобразовать из 36-ричной системы в 10-ю, добавить 1, и преобразовать обратно!


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

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #31 - 23. Октября 2008 :: 09:43
Печать  
Это я отвечал на вопрос, как получить новый ID! Улыбка  ev-kov писал(а) 23. Октября 2008 :: 09:42:
Antes писал(а) 23. Октября 2008 :: 09:37:
Неверно!
В этом случае вы получаете максимальный из имеющихся в базе. А вам это значение нужно увеличить на 1, для чего вы должны преобразовать из 36-ричной системы в 10-ю, добавить 1, и преобразовать обратно!


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

  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #32 - 23. Октября 2008 :: 09:45
Печать  
ev-kov писал(а) 23. Октября 2008 :: 09:42:
Antes писал(а) 23. Октября 2008 :: 09:37:
Неверно!
В этом случае вы получаете максимальный из имеющихся в базе. А вам это значение нужно увеличить на 1, для чего вы должны преобразовать из 36-ричной системы в 10-ю, добавить 1, и преобразовать обратно!


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


Да, повторно. А как иначе, если его нет в базе? Тогда выбирайте, что переносить, а что нет!
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #33 - 23. Октября 2008 :: 09:45
Печать  
Antes писал(а) 23. Октября 2008 :: 09:43:
Это я отвечал на вопрос, как получить новый ID! Улыбка  ev-kov писал(а) 23. Октября 2008 :: 09:42:
Antes писал(а) 23. Октября 2008 :: 09:37:
Неверно!
В этом случае вы получаете максимальный из имеющихся в базе. А вам это значение нужно увеличить на 1, для чего вы должны преобразовать из 36-ричной системы в 10-ю, добавить 1, и преобразовать обратно!


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


Так его получает штатная хранимка от 1с, кстати не пойму что там неверного ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #34 - 23. Октября 2008 :: 09:49
Печать  
ev-kov писал(а) 23. Октября 2008 :: 09:45:
Antes писал(а) 23. Октября 2008 :: 09:43:
Это я отвечал на вопрос, как получить новый ID! Улыбка  ev-kov писал(а) 23. Октября 2008 :: 09:42:
Antes писал(а) 23. Октября 2008 :: 09:37:
Неверно!
В этом случае вы получаете максимальный из имеющихся в базе. А вам это значение нужно увеличить на 1, для чего вы должны преобразовать из 36-ричной системы в 10-ю, добавить 1, и преобразовать обратно!


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


Так его получает штатная хранимка от 1с, кстати не пойму что там неверного ?

Как раз ее текст и приведен выше! Улыбка
Если я верно понимаю, то
select @id=MAX(ID) from SCХХХХ(NOLOCK)
как раз и выдает максимальный из имеющихся, а для добавления записи в таблицу нужен следующий после максимального! Верно?

  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #35 - 23. Октября 2008 :: 09:52
Печать  
Antes писал(а) 23. Октября 2008 :: 09:49:
ev-kov писал(а) 23. Октября 2008 :: 09:45:
Antes писал(а) 23. Октября 2008 :: 09:43:
Это я отвечал на вопрос, как получить новый ID! Улыбка  ev-kov писал(а) 23. Октября 2008 :: 09:42:
Antes писал(а) 23. Октября 2008 :: 09:37:
Неверно!
В этом случае вы получаете максимальный из имеющихся в базе. А вам это значение нужно увеличить на 1, для чего вы должны преобразовать из 36-ричной системы в 10-ю, добавить 1, и преобразовать обратно!


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


Так его получает штатная хранимка от 1с, кстати не пойму что там неверного ?

Как раз ее текст и приведен выше! Улыбка
Если я верно понимаю, то
select @id=MAX(ID) from SCХХХХ(NOLOCK)
как раз и выдает максимальный из имеющихся, а для добавления записи в таблицу нужен следующий после максимального! Верно?


дошло Улыбка
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перенос справочников
Ответ #36 - 23. Октября 2008 :: 10:02
Печать  
ev-kov писал(а) 23. Октября 2008 :: 09:42:
Antes писал(а) 23. Октября 2008 :: 09:37:
Неверно!
В этом случае вы получаете максимальный из имеющихся в базе. А вам это значение нужно увеличить на 1, для чего вы должны преобразовать из 36-ричной системы в 10-ю, добавить 1, и преобразовать обратно!



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


А если удалят в базе1 элемент который был выгружен в базу2, и допустим он с максимальным id в базе1 был, следущий новый в базе1 появится с этим же id который был выгружен, но это уже другой элемент. Тут наверное только внешний id и спасет, либо ручками контролировать выгрузку.
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #37 - 23. Октября 2008 :: 10:08
Печать  
При выгрузке в "чужую" базу ID текущей базы по барабану (нам нужен только код или наименование элемента в текущей базе)! ID нам нужен максимальный в "ЧУЖОЙ" базе, там мы его и определяем, Максимальный для той базы, а не для текущей!
« Последняя редакция: 23. Октября 2008 :: 11:35 - Antes »  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Перенос справочников
Ответ #38 - 23. Октября 2008 :: 12:13
Печать  
Опробовал обработку в "боевых" условиях. Справочник классификаторов ОС перебросил в три базы (всего 33114 элементов). Заняло это ровно 15 минут.
  
Наверх
 
IP записан
 
Александр Тихонов
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 26. Октября 2008
Re: Перенос справочников
Ответ #39 - 26. Октября 2008 :: 07:08
Печать  
Не поделитесь обработкой?
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Перенос справочников
Ответ #40 - 26. Октября 2008 :: 22:47
Печать  
Последние id и iddoc хранятся в специальной табличке (_1suidctl)
Я пользовался курсором и функцией перевода 36 в 10

  

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