|
Из sql в файловую | ☑ | ||
---|---|---|---|---|
0
Стажер_1С
29.08.18
✎
11:51
|
Добрый день!
Я выгрузила .dt из sql базы, загрузила ее в файловую(новую базу создала). База не загружается,через некоторое время пишет: Ошибка СУБД: Длина ключа индекса превышает максимально допустимую '_AccumRg23916_ByDims@ (_Fld1002, _Period, _Fld23909RRef, _Fld23910RRef, _Fld23911RRef, _Fld23912RRef, _Fld23913RRef, _Fld25663, _Fld25908, _Splitter)' Мне нельзя в базе sql что-либо делать,кроме как взять саму базу! Так что я не знаю как обойти этот момент |
|||
1
Базис
naïve
29.08.18
✎
11:55
|
Фотка есть, продолжаем помогать.
Тестирование (без исправления!) базы можешь сделать? |
|||
2
Черный маклер
29.08.18
✎
11:56
|
Создай северную базу
|
|||
3
novichok79
29.08.18
✎
11:56
|
(0) получи внутреннюю структуру таблиц в 1С. есть обработки на ИС - структурабазданных. найди что за регистр накопления AccumRg23916
посмотри какие там измерения. возможно какое-то из измерений включает в себя слишком много типов или является строкой. такое на серверном варианте хранения подходит, но при попытке загрузить такой cf в файловом режиме в пустую базу вываливается с ошибкой. |
|||
4
shadow_sw
29.08.18
✎
11:57
|
надо понять на какой объект ругается, потом у реквизитов убрать параметр "индексировать" - профит
|
|||
5
novichok79
29.08.18
✎
11:58
|
смотреть нужно в рабочей базе, что это за accumrg23916 такой. и решать что дальше делать с ним. если базы нет, разверни dt в какой-нибудь СУБД, открой конфигуратор и вперед.
|
|||
6
ПегийЛунь
29.08.18
✎
12:10
|
accumrg - регистр накопления.
Найти соответствующий регистр. Найти в нем строковое поле, которое проиндексировано. Снять индексацию. Сделать "исправление", выгрузить в dt еще раз. Загрузить в файловую. Максимальная длина ключа в индекса в файловой версии 1920 байта. |
|||
7
Стажер_1С
29.08.18
✎
12:14
|
(1) не могу.Если я ее даже загрузить не могу в пустую базу
|
|||
8
Стажер_1С
29.08.18
✎
12:14
|
(2) как?Если у меня нет сервера,а просто комп
|
|||
9
Стажер_1С
29.08.18
✎
12:16
|
(6) (5) (3) Так вот я находила такое решение.Но что за обработка?Имя?
|
|||
10
Стажер_1С
29.08.18
✎
12:16
|
Не правильно спросила,я обработкой если найду,то как мне исправить индекс?
|
|||
11
Стажер_1С
29.08.18
✎
12:19
|
И как мне воспользоваться обработкой, если у меня только dt
|
|||
12
H A D G E H O G s
29.08.18
✎
12:23
|
(11) Загрузить в промежуточную файловую базу.
|
|||
13
Стажер_1С
29.08.18
✎
12:29
|
Нашла регистр накопления. У меня в измерении, на которые он ругается, в свойствах стоит "не индексировать".Мне надо поставить "Индексировать"?
|
|||
14
H A D G E H O G s
29.08.18
✎
12:30
|
Проблемы в одной из колонок
_Fld25663 _Fld25908 посмотреть, какая из них - строковая. Найти строки максимальной длины, скорее там какая-то дичь, типа многострочного текста, скопипистенного с сайта, или пробелы, или xml хрень. Искать надо запросом к Оборотам() регистра |
|||
15
H A D G E H O G s
29.08.18
✎
12:30
|
(13) Нет. Это никак не поможет, галочками это не решишь
|
|||
16
H A D G E H O G s
29.08.18
✎
12:31
|
Но запросом ты длину строки не вытащищь. Только постобработкой, что потенциально длительно. Но большую базу людям женского пола обычно не дают.
|
|||
17
H A D G E H O G s
29.08.18
✎
12:33
|
(13) Как называется регистр, оборотный он или остаточный, как называется измерение, и его тип?
|
|||
18
Стажер_1С
29.08.18
✎
12:34
|
У одного длина 36, у другой 1000
Регистр обороты; измерения имеют тип строка ,длина столько разная |
|||
19
Стажер_1С
29.08.18
✎
12:34
|
(14) А как вы поняли,что именно в этих измерениях косяк?
|
|||
20
H A D G E H O G s
29.08.18
✎
12:36
|
(19) Магия
|
|||
21
novichok79
29.08.18
✎
12:37
|
(19) все, что заканчивается на Ref - это ссылки.
обработок, чтобы посмотреть структуру базы данных полно на ИС, поищите нужную вам. |
|||
22
H A D G E H O G s
29.08.18
✎
12:37
|
(18) "у другой 1000"
В нем - проблема. Ищите строки с текстом, длиннее 300 символов. |
|||
23
novichok79
29.08.18
✎
12:37
|
а вообще люлей проектировщику такого регистра накопления, это еще додуматься надо такую дичь придумать.
|
|||
24
Стажер_1С
29.08.18
✎
12:38
|
(21) Я уже нашла обработку,ей воспользовалась и нашла регистр
|
|||
25
Стажер_1С
29.08.18
✎
12:39
|
(22) то есть запись в регистр смотреть?в режиме предприятия?
|
|||
26
H A D G E H O G s
29.08.18
✎
12:39
|
(25) Да
|
|||
27
H A D G E H O G s
29.08.18
✎
12:40
|
(25) Что за конфа? Страна должна знать долбодятлов.
|
|||
28
Стажер_1С
29.08.18
✎
12:40
|
(22) я поняла почему взяли 1000. Это измерения номенклатураДля Печати.И посмотрела что наименование номе-ы длина там тоже 1000
|
|||
29
novichok79
29.08.18
✎
12:40
|
значит дело в строковых измерениях. выберите запросом из регистра строки из измерений, сделайте стрдлина, найдите максимум...
|
|||
30
Стажер_1С
29.08.18
✎
12:40
|
Сейчас консолем запросов достану тогда записи
|
|||
31
H A D G E H O G s
29.08.18
✎
12:41
|
(29) Ахаха. Да это квест для автора.
|
|||
32
H A D G E H O G s
29.08.18
✎
12:41
|
(28) Мне вот 10 лет стажа, а я - не понялю
|
|||
33
novichok79
29.08.18
✎
12:44
|
походу в измерении указано полное наименование номенклатуры для печати, такой же реквизит в справочнике номенклатура есть, длиной 1000 символов. но это конечно оригинальное решение.
|
|||
34
Стажер_1С
29.08.18
✎
12:50
|
ВЫБРАТЬ
Регистр.НоменклатураДляПечати, Регистры.Регистратор ИЗ РегистрНакопления.Регистр.Обороты(, , Регистратор, НоменклатураДляПечати > ПОДСТРОКА(НоменклатураДляПечати, 1, 300)) КАК Регистр |
|||
35
Стажер_1С
29.08.18
✎
12:51
|
Таким запросом он вывел 9 записей
|
|||
36
Стажер_1С
29.08.18
✎
12:51
|
вот и что же мне делать с ними то?
|
|||
37
Стажер_1С
29.08.18
✎
12:51
|
(33) я и писала выше,что там указано полное наиме-е
|
|||
38
H A D G E H O G s
29.08.18
✎
12:55
|
(36) Исправь наименование в номенклатуре, перепроведи документ, верни наименование в номенклатуре (если надо).
Потом переделай регистр, убери это измерение. |
|||
39
Стажер_1С
29.08.18
✎
12:56
|
(38) так я не могу исправить имя номенклатуры, так именно им и надо.
Вместо измерения сделать реквизит,так выйдет? |
|||
40
Стажер_1С
29.08.18
✎
12:57
|
а не слетят у меня записи прошлых периодов?
|
|||
41
Стажер_1С
29.08.18
✎
12:57
|
А если я изменю регистр,то что будет с записими прошлых периодов?
|
|||
42
H A D G E H O G s
29.08.18
✎
13:01
|
(41) Кирдык
|
|||
43
novichok79
29.08.18
✎
13:10
|
(41) обычно под такое дело делается обработка, которая перезаписывает движения только нужного регистра. по идее надо делать так - в SQL базе добавить новое измерение в регистр, измерение типа "Номенклатура", переписать проведение в этот регистр, чтобы записывалось измерение типа номенклатура, удалить строковое измерение.
|
|||
44
spiller26
29.08.18
✎
13:10
|
(0) Так у вас база сколько весит? Где разворачиваете операционка какая?
|
|||
45
spiller26
29.08.18
✎
13:14
|
||||
46
Sammo
29.08.18
✎
13:22
|
А точно надо в файловую? может в какой-нибудь вариант бесплатного скуля? (postgress, sql express - если база позволит)
|
|||
47
Стажер_1С
29.08.18
✎
13:39
|
Мне эта база нужна как тестовая,чтобы свои доработки внести.Так что я просто удалю запись в регистре и все. На рабочую sql ручками перенесу свои доработки.
|
|||
48
Стажер_1С
29.08.18
✎
13:39
|
Всем спасибо огромное!!!!!!!Вы супер)
|
|||
49
spiller26
29.08.18
✎
13:47
|
(47) от проблемы ты всё равно не избавишься, может когда нибудь вылезти (При обновлении например).
|
|||
50
Стажер_1С
29.08.18
✎
13:59
|
(49) согласна,но я не могу никак изменить данные без согласия клиентов.а им это нахер не надо,пока все работает.
Мне так то запретили на файловую разворачивать.Сделали мне sql базу,так что теперь буду там работать.Спасибо) |
|||
51
Buster007
29.08.18
✎
14:04
|
(16) чего это ты так не доверяешь им?
|
|||
52
Стажер_1С
29.08.18
✎
14:28
|
(51) так нужно))
|
|||
53
vitkhv
29.08.18
✎
15:05
|
(46)
MS SQL Developer Edition с версии 2016 тоже бесплатный, а возможностей как в Enterprise, разница только в лицензионном соглашении. Так что зачем автор извращается с файловой мне не понятно. |
|||
54
Стажер_1С
30.08.18
✎
07:49
|
(53) да потому что,у меня есть база на sql тестовая,загружаю туда dt с рабочей базы(на sql она тоже),выдает ошибку
|
|||
55
Стажер_1С
30.08.18
✎
07:50
|
Вообщем не помогло мне нифига(((((((
|
|||
56
Buster007
30.08.18
✎
11:50
|
"Вообщем" надо сказать спасибо тому человеку, кто придумал сделать в измерении строку 1000 ))
|
|||
57
Михаил Козлов
30.08.18
✎
11:57
|
(56) Хорошо бы еще понять, зачем он это сделал.
Поняв, можно попробовать объяснить владельцам БД, что им это не нужно. Либо, как можно обойтись без этих измерений. |
|||
58
Кир Пластелинин
30.08.18
✎
12:11
|
(57) зачем? да как вариант - "оптимизация"))) а то ж ведь придется соединение со справочником "номенклатуры" делать, что бы наименование для печати получить, а соединение с виртуалкой - ай-яй-яй (хотя исходя из спроектированного регистра знание оного ставится под большое сомнение). ппц...
(55) единственный вариант загрузить данный dt-шник в файловую - это убирать это измерение, либо сокращать его длину со всеми вытекающими. |
|||
59
Сияющий в темноте
30.08.18
✎
12:18
|
Мне понравилось,теперь я знаю,как сделать так,чтобы скуль базу в файло не развернули,просто регистр и в него поле типа строка,и не важно,что в регистре будет только одна строка.
|
|||
60
novichok79
30.08.18
✎
15:12
|
(55) а что пишет? как боролись?
|
|||
61
Serg_1960
30.08.18
✎
15:52
|
Возможно автор не все записи с длинными строками пофиксила. В (14) правильно сказано - их там два таких. Нужно на предмет их общей длины сканить регистр.
|
|||
62
Serg_1960
30.08.18
✎
15:56
|
Но этого недостаточно - нужно резать длину у этих полей, имхо.
|
|||
63
vitkhv
30.08.18
✎
16:21
|
(54) В SQL с этой же ошибкой не грузиться?
|
|||
64
Стажер_1С
31.08.18
✎
14:10
|
Я не стала уже дальше разбираться,просто взяла создала sql базу и залила туда рабочую bak
|
|||
65
vitkhv
31.08.18
✎
15:52
|
(64) Тогда честно говоря не понял, как этот ваш ответ(54)соотносится с моим предложением (53), раз вы все равно ему последовали?
|
|||
66
Стажер_1С
03.09.18
✎
11:32
|
(65) Ну я то думала взять dt,я не знала что sql делает архив по другому
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |