Разделить регистр на два #474322


#0 by es3000
Есть самописная конфа. В ней есть регистр, база ведется с 2005 года. Сейчас понадобилось этот регистр разделить на два регистра: часть реквизитов перенести в другой регистр, а часть оставить в старом регистре. В принципе можно изменить структуру и все перепровести, но это нереально. Надо попробовать каким-то другим способом разделить. Как это можно сделать?
#1 by Жеглофф
а зачем?
#2 by Ёпрст
перепровести базу только по этому регистру, для начала,дублируя записи в новый регистр,затем, прибить лишнеие измерения/ресурсы в старом регистре. Можно делать как штатными способами, так и прямым запросом..
#3 by Ахиллес
НовыйРегтстр = СтарыйРегистр / 2
#4 by Ахиллес
Как то так наверное.
#5 by ДенисЧ
А перепроводить зачем? :-)
#6 by Ахиллес
В семерке регистры штатно заполняются только документами.
#7 by Ёпрст
это если штатно всё делать..
#8 by Генератор
создать док и два регистра, док ввести к каждому регистратору (или с заданной периодичностью) который состорнирует старый регистр и сделает движения по новым двум (или не сторнировать старый, а просто грохнуть потом)
#9 by Злой Бобр
Заполняй, убивай, пересчитай итоги. Вроде так...
#10 by AlexNew
Сделай еще один регистр такой же в dd посмотри его файлы, замени эти файлы скопированными из старого. Дальше делай - что хочешь, в SQL Insert.
#11 by es3000
так похоже будет быстрее всего
#12 by Ёпрст
структуру полей нужно еще будет менять и итоги рассчитывать все.
#13 by es3000
а как это? перепровести прямым запросом?
#14 by es3000
ну сначала сделаю новый регист = точная копия старого, а потом уже буду менять струткру этих двух регистров по отдельности
#15 by Ёпрст
да блин перепровод - это только для штатного способа, прямым запросом и так всё можно сделать ты не понял идеи - у тебя названия полей в табличках регистра будут другими, при копировании файла движений ( а только ешо и можно скопирять в данном случае), нужно будет измениь названия каждого поля, чтоб она соответствовала новому мд-нику.. Затем лишние поля порезать  пофигураторе и пересчитать итоги.
#16 by AlexNew
А итоги почему не скопировать?
#17 by Ёпрст
при удалении лишних измерений, записей при персчете будет меньше..
#18 by Ёпрст
+17 и когда он будет прибивать лишние в пофигураторе - один хрен будет пересчет всей таблички, смысла с копированием нет никакого.
#19 by es3000
у меня база SQL-ная
#20 by Ёпрст
ну и ? думаешь, есть какая-то огромная разница ? :)
#21 by es3000
получается алгоритм такой: 1) копируем существующий регистр 2) сохраняем конфигурацию 3) смотрим в 1Cv7.DDS название таблиц регистров 4) командой SQL копируем содержимое таблицы движений из первой таблицы во вторую 5) переиндексируем и пересчитываем итоги в конфигураторе поправьте если что не так
#22 by es3000
Застрял на последнем пункте - 5. На сервере стоит Windows Server 2008. Захожу в конфигуратор , выбираю в меню "Тестирование и исправоление...", устанавливаю галочки, нажимаю ОК. 1С-ка думает какое-то время, потом говорит: "порядок сортировки установленный для базы данных отличается от системного". Файл ordnochk.prm присутсвует и в каталоге BIN и в каталоге базы данных. Что делать?
#23 by es3000
(22+) для этой ошибки сделал новую тему:
#24 by es3000
В общем ситуация такая. Выполнил я все шаги, но получилось не очень красиво: правой кнопкой на документе выбираю пункт меню "Движения документа", высвечивается список регистров. Для старого регистра галочка стоит, движения по нему есть. Для нового регистра движения тоже есть, но галочка в этом окошке не стоит! Как бы это где-нибудь не аукнулось. Это как можно поправить?
#25 by DrZombi
...может повторюсь... 1. Создаешь второй регистр 2. Прописываешь его в коде, где он должон анализироваться 3. Правишь старый код со старым регистром, но так, как он будет по новому, т.е. без измерения ;) 4. Садишься и пишешь на T-SQL запросы для перебросу данных со старого регистра в новый и пишешь это все в оборотную часть регистра... 5. Затем когда все пройдет на ура (советую написать тест сей операции). Удаляешь из старого регистра не нужное ;) 6. Запускаешь ТиИ (только пересчет служебных данных, индексов и пересчет итогов!!!) Не вздумай запустить проверку логической целостности, тогда еще неделю будет все проверять, если только смогет ;) 7. После пересчета запускаешь в рабочем режиме и проверяешь все, что должно быть проверенно, ну там отчеты обороты, движения, остатки и т.д.
#26 by DrZombi
+Бекапы, как базы, так и МД-ешника не забудь сделать ;)
#27 by es3000
все так и сделал, все равно в списке регистров, который появляется по пункту меню "Движения документа, напротив нового регистра галочки нету, хотя движения по нему есть
#28 by Ёпрст
дай права на просмотр в пофигураторе
#29 by Ёпрст
+28 для этого регистра..
#30 by Ёпрст
+29 и в _1sjourn выстави флаг принадлежности документа к этому регистру.
#31 by Ёпрст
+30 короче, тебе нужно проапдейтить журнальчик и поле RF сделать таким же, как и у старого регистра..
#32 by es3000
идею понял, а какой журнальчик?
#33 by es3000
+32 ступил, все нашел
#34 by es3000
а штатными средствами это никак не исправить?
#35 by Ёпрст
только перепроводом документов..токма оно тебе надо ? за 1 сек пишешь update _1sjourn set RF666 = RF555 и всё..
#36 by es3000
понял, огромное спасибо
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С