Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Вставка строк в табл.справочника (число прочтений - 1575 )
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Вставка строк в табл.справочника
05. Октября 2006 :: 01:09
Печать  
Здрасти. Это снова я. Мож ещё раз поможете.  Круглые глаза
Задача
"Залить" справочник из "чужой" базы с идиентичной структурой с необходимостью сохранения всех ИД как в базе-источнике.
База ДБФ, использую ОЛЕ ДБ. (грубо говоря, пример на спр.Сотрудники стандарт. конфиги Бухгалтерия)
Что сделал (урезанный вариант Озадачен)
1. Вставляем значения всех полей из "той" табл. в нашу табл.:
Код
Выбрать все
INSERT INTO SC594  
SELECT
	ID,PARENTID,CODE,DESCR,СинСпр.ISFOLDER,ISMARK,VERSTAMP,
	СинСпр.SP15846, СинСпр.SP12989,
	IIF(ISNULL(СвСпр.IdS4),'   0     0   ',LEFT(СвСпр.IdS4,4)+RIGHT(СинСпр.SP27073,9)),
	СинСпр.SP185, СинСпр.SP21417, СинСпр.SP186, СинСпр.SP184,
	СинСпр.SP183, СинСпр.SP182, СинСпр.SP181,
	СинСпр.SP176, СинСпр.SP15848, СинСпр.SP15947,
	СинСпр.SP27099, СинСпр.SP13581, СинСпр.SP15851,
	СинСпр.SP15853, СинСпр.SP15852, СинСпр.SP15855,
	СинСпр.SP15849, СинСпр.SP24231, СинСпр.SP24230, СинСпр.SP12990,
	СинСпр.SP21416,
	IIF(ISNULL(СвСпр.IdS4),'   0     0   ',LEFT(СвСпр.IdS4,4)+RIGHT(СинСпр.SP27072,9)),
	СинСпр.SP27071, СинСпр.SP27098, СинСпр.SP47954, СинСпр.SP49492
FROM
	F:\Раб.папка\bux\SC208 СинСпр
LEFT JOIN
	tmp3 СвСпр ON СвСпр.IdS4OLE IN (LEFT(СинСпр.SP27073,4),LEFT(СинСпр.SP27072,4))
WHERE
	СинСпр.ID NOT IN (SELECT ID FROM SC594)
 


небольшое пояснение: табл. tmp3 - таблица соответствий м/у ID справочников "той" базы и нашей.
2. Добавляем в нашу базу историю реквизитов:
Код
Выбрать все
INSERT INTO 1SCONST
SELECT
	OBJID,
	'  I5',
	DATE,
	PARTNO,
	VALUE,
	'         ',  
	TIME,
	0,
	0,
	TVALUE
FROM
	F:\Раб.папка\bux\1SCONST
WHERE
	ID='126U' AND
	OBJID NOT IN (SELECT OBJID FROM 1SCONST WHERE ID='  I5')
 


небольшое пояснение: Так для каждого поля с признаком "Периодический".
Аналогично добавляем строки неограниченной ширины Улыбка
(ВСЕ ПРИМЕРЫ ПРИВЕДЁННЫЕ ВЫШЕ ВЗЯТЫ ИЗ ОКНА СООБЩЕНИЙ ПРИ клКоманда.Отладка(1)Подмигивание
Заходим в программу в режиме "предприятия". Открытваем форму списка справочника. Всё нормально. Если даже вывести на неё поля с период.реквизитами - всё нормально отображается.
Пытаемся открыть форму элемента - 1с вываливается с криком "обнаружена ошибка, прилож. будет закрыто".
Переиндексация не помогает. Пробовал заливать без период. рекв. и длинный строк - тоже самое.
С др. справочниками, даже также имеющий период. реквизиты - всё нормально. Да и пробовал я "заливать" вышеуказанный спр. без период. реквизитов - всё равно вываливается 1с при открытии формы справочника.
Пытался отследить момент через отладчик - все процедуры нормально отрабатывают, вываливание именно после отработки ПриОткрытии().
  
Наверх
ICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: Вставка строк в табл.справочника
Ответ #1 - 05. Октября 2006 :: 05:04
Печать  
блин... дело оказалось не в запросе.
попробовал открыть форму элемента в "чистой" базе - то же самое, вываливается
удалил спр., заново скопировал из стандартной конфигурации - то же самое. Что за хрень?
  
Наверх
ICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: Вставка строк в табл.справочника
Ответ #2 - 05. Октября 2006 :: 05:37
Печать  
спасибо всем ответимшим Смех, вопрос снят
очистил все реквизиты с формы элемента - всё нормально, дальше разбираться пока нет ни желания, ни времени
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать