Загрузка данных в Postgres SQL #556725


#0 by Ofomokbr
Была выгружена конфигурация из Слона в 1С файловую. Обработана обновлена. После обновления при попытке загрузить в Слона назад отказывается грузиться и пишет поаытка загрузить неуникальное значение в уникальный индекс files_pkey. Самое интересное что и выгруженная до этого конфигурация не грузиться назад в слона и пишет тоже самое. Что может быть и как бороться?
#1 by Fragster
перед выгрузкой сделать ТиИ, а потом выгрузить еще раз
#2 by Ofomokbr
Пробовал не помогает. Делал по разному и с удалением и без. Самое интересное что предыдущая выгрузка позволяет сделать все и загружается.
#3 by rs_trade
что за таблица? Files что ли?
#4 by rs_trade
может попробовать выгрузить cf, а потом загрузить в файловую. потом попытаться опять выгрузить и загрузить в слона.
#5 by Ofomokbr
Таблица Files. Финты с загрузкой обработко и выгрузкой в файловую пробовал не помогает.  Конфа ЗиК БюджУчреж 26. Платформа 8.2 219.
#6 by rs_trade
именно перезагрузку cf делал? таблица Files относится к структуре конфигурации
#7 by Ofomokbr
Сделал выгрузки из рабочей базы в режиме конфигуратора. Администрирование - выгрузка. Дальше загрузил в файловую. Обработал, обновил, провел запуск. Загружаю не загружается. Дальше в файловой провел ТиИ заружаю фиг. че делать не знаю. Ругается на таблицу Files. И пишет что в таблицу в ключ пишется  неуникальное значение.
#8 by rs_trade
ее кстати вообще по моему можно очистить. только вот как это в файловой сделать не знаю. есть приблуды для просмотра таблиц файловой?
#9 by Ofomokbr
Как в SQL сделать это и коню понятно, как теперь загрузку провести вот блин задача. Какие есть приблуды или какие инструменты штатные кто знает. Доступ к техподдержке у меня есть.
#10 by Ofomokbr
не понял как перезагрузку cf.
#11 by глазковыколупыватель
Создай чистую базу в постгресе и в нее загрузи попробуй.
#12 by rs_trade
выгрузить cf, и загрузить назад. Загрузить конфигурацию из файла. насчет просмотра таблиц файловой, погугли. есть какие то приблуды.
#13 by Ofomokbr
Пробовал не помогает. Уже убивал и создавал по новой. Фигня какая то. Самое интересное что конфигурация двухнедельной давности загружается нормально. А сегодняшняя выгрузка назад не грузится.
#14 by Ofomokbr
выгружаю в dt. cf это же обновление конфигурации без данных.
#15 by rs_trade
надо что бы таблица Files очистилась. А когда она очищается хз. Поэтому все варианты можно попробовать.
#16 by Ofomokbr
Давай называй варианты будем пробовать. Прсто я не предстваляю как можно получить доступ к таблице в файловом варианте 1С.
#17 by rs_trade
вариант в . есть Tool_1CD, но в ней только смотреть можно. посмотри через нее таблицу эту. Вообще даже в файловом варианте поле FileName индексировано. Там не может быть двух одинаковых значений.
#18 by rs_trade
А почему обновление на клиент-серверной базе не сделать? И кстати манипуляций с версиями платформы не было?
#19 by Ofomokbr
Вот ти я о том просмотрел ТооL_1CD нет там никаких повторений или нарушений индексов. Как очистить не представляю. На клиент серверной базе не получилось потому как один из пользователей создал документ 0113 годом. при попытке обновить базу или удалить документ все зависает напроч. Чего тлолько не делал. При любых манипуляциях база уходит в отключку. Подключиться можно но данный документ заблокирован навсегда. Пробовал вывесет его думал прокатит. Не коннект провесел неделю до перезагрузки сервера.
#20 by rs_trade
удали документ средствами СУБД.
#21 by Ofomokbr
не получилос да и поздно уже при загрузке база обнулилась теперь только один вариан все загрузит в зад.
#22 by rs_trade
не может быть что бы средствами субд нельзя было удалить. почему не получилось?
#23 by Ofomokbr
Потому как в СУБД можно было удалить только запись о документе. При удалении документ проводился по регистрам и ссылки на него зависали. Тоесть фактическое удаление документа не позволяло изхменить регистры. А там расчетов на лимон с небольшим и сотрудников пости две тысячи. Смысл был удалить всю цепочку. ну да ладно это уже проехали.
#24 by rs_trade
дату документа можно поправить.
#25 by Ofomokbr
нет при открытии давало поправить при проведении зависаем и молчим.
#26 by rs_trade
средствами субд дату поправить.
#27 by Ofomokbr
Да уже поздняк. нет больше той проблемы есть проблема загрузки.
#28 by rs_trade
тогда не понятно, если проблемы нет почему клиент-серверную базу обновить не получается? может имеет смысл решить проблему обновления клиент-серверной, а не проблему загрузки из файловой.
#29 by Ofomokbr
Да при загрузке уже обновленной конфигурации клиент-серверная очистилась и теперь нет ее совсем. Проблма произошла уже на этапе когда все было готовок загрузке в рабочий сервер.
#30 by rs_trade
забавно. ну тогда есть еще вариант с переносом данных. создай из CF пустую клиент-серверную базу и перекидывай данные из файловой через выгрузку xml. если конечно размер базы позволяет. сколько база весит?
#31 by Ofomokbr
1.5 гига.Ща будем так пробовать. Для редактирования 1СВ нифига не нашел. Всякая чуш валяется.
#32 by Ofomokbr
На сайте 1С вообще таких проблем нет. Все в шоколаде.
#33 by rs_trade
тогда не парься. 1.5 гига без проблем через xml перекинешь.
#34 by rs_trade
теоретически можно еще один вариантик попробовать. но это если бы база большая была и перенос xml не годился бы. в данном случае дешевле перекинуть конечно. Если при загрузке dt 1С сначала создает все таблицы, а потом начинает заполнять их, что скорее всего так и есть. То можно было бы попробовать успеть повесить на нужную табличку instead of триггер на инсерт, или грохнуть PK.
#35 by Ofomokbr
Да вопрос только если это просто запрос скулей то можно а как это в клиенте 1С организовать?
#36 by Ofomokbr
Наверное проще бы было удалить данные из таблицы Files только нечем. Засада.
#37 by Ofomokbr
и на ИТС тоже ничего подобного нетю Даже описания похожего не говоря об утилитах.
#38 by rs_trade
строки из Files это какие то служебные файлы в AppDataRoaming1C1Сv82 Но если грохнуть эти файлы, таблица Files остается без изменений, а при запуске вновь их создает.
#39 by Ofomokbr
Не пробовал сейчас попробую.
#40 by Ofomokbr
Нифига не помогает. Есть тут умные помогите кто нибудь!!!
#41 by DDD2006
а это не поможет
#42 by Ofomokbr
не получается ничего. Подкиньте идею.
#43 by Doomer
Автор сними конфу полностью с поддержки. А потом попробуй загрузить в постгресс.
#44 by rs_trade
переноси данные через xml в пустую конфу
#45 by Ofomokbr
Ссылка очень помогла прримерно как совет купить веревку. :)) снято с поддержки. В Пост не грузится.
#46 by Ofomokbr
Ну перенесу. Там 16000 документов. Блин не проведеш все. Да и расеты не переносятся.
#47 by rs_trade
тогда может попробовать как в открываешь консоль pgAdmin, написать заранее скрипт который грохает PK в таблице Files. Запустить загрузку. Попытаться поймать момент, когда таблица создана, но данные туда еще не грузятся. Грохнуть PK. Не знаю правда насколько реально поймать этот момент. Надо пробовать.
#48 by rs_trade
можно триггер DDL повесить и там прописать грохать PK после создания таблицы
#49 by Ofomokbr
Дело в том что при загрузке база сначала вся грохается безвозвратно, а потом только начинает грузиться и создаваться. Пытался поймать, не получается и тригерром не возможно. Нуно в сам файл 1СD внести изменения, удалить записи из таблицы Файлов и потом только что=то делать. Завтра будем писать в поддержку. Может там что скажут нужного.
#50 by Ofomokbr
Ладно до завтра. Может кто что придумает. А то у меня Инет сейчас уйдет.
#51 by rs_trade
вот триггер для удаления PK таблицы Files во время загрузки dt. но он для MS SQL. Постгреса нету под рукой
#52 by rs_trade
--GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF EXISTS (SELECT * FROM sys.triggers WHERE parent_class = 0 AND name = 'dbTrigger') DROP TRIGGER dbTrigger ON DATABASE; GO CREATE TRIGGER [dbTrigger] ON DATABASE FOR DDL_DATABASE_LEVEL_EVENTS AS BEGIN SET NOCOUNT ON; IF CHARINDEX('alter table [Files] add primary key', @TSQL , 1) > 0    BEGIN        SELECT @PKName = Name FROM sys.objects WHERE Name LIKE '%PK__Files%' GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO
#53 by rs_trade
+ Постгреса нету под рукой что бы проверить. Автор, знаешь что с этим в делать?
#54 by rs_trade
Попробуй кстати в скуль загрузить базу. Ошибки может и не быть. А если будет, скрипт из должен помочь. Из скуля табличку почистить. И в постгрес можно выгружать.
#55 by Ofomokbr
Спасибо сейчас попробую. Интересно а в SQLExpress база полезет. Там ограничения до 2 ГБ или до 4 ?
#56 by эцп
В этом случае база не грузится ни в PostgreSQL (не сообщает неуникальное значение), ни В MSSQL (сообщает неуникальное значение). 1) Найти 2 одинаковых значения можно вручную с помощью "Tool_1CD.exe" в таблице "FILES" в поле "FILENAME". У меня это были 2 строки с именем "9c83728b-80f1-4c37-b432-49cbdaf207dc.pfl", а в поле "CREATION" у одной их них было "29.12.2010", а у другой текущая дата). 2) Исправить значение можно программой "WinHex". Я просто исправил первый байт у первого найденного значения на "2". Сохранил  файл. После этого выгрузка базы отлично загружалась в PostgreSQL. 3) После загрузки исправленное значение можно удалить из таблицы "FILES", чтобы не замусоривало таблицу. Я делал это в копии задолго до перехода на Клиент-Сервер. Самое интересное, что в рабочей базе через месяц проблема исчезла сама  собой (когда я хотел исправить дубль, его уже не было). Все, что там делали - сменили пароль админа (может быть это был файл  этого пользователя).
#57 by Ofomokbr
Не понял как WinHex можно инструкцию честно никогда не пользовался.
#58 by rs_trade
полезет. можно версию 2008 качнуть. там 10 гб ограничение
#59 by эцп
Не обязательно WinHex, любым другим редактором, которым можно поправить несколько байт в файле (hiview.exe, Far, dd и т.п.)
#60 by Ofomokbr
Скачал WinHex че дальше делать правильно и быстро?
#61 by Ofomokbr
Нашел значение. Как найти в WinHex.
#62 by эцп
искать обычным текстовым поиском, как есть
#63 by Ofomokbr
вот есть значение C01B78F6 забрасываю его в Find в WinHex пишет что нет такого значения
#64 by Ofomokbr
Не в маленьком не в большом регистре.
#65 by эцп
попробуй поиском в UTF-8 как в верхнем, так и в нижнем регистре
#66 by Ofomokbr
Нашел. Сейчас попробую выгрузку.
#67 by Ofomokbr
Честно просто поторопился.
#68 by Ofomokbr
Всем спасибо все получилось. Алгоритм следующий. С помощью программы  Tool-1CD находим дублируемое значение, затем WinHex правим файл 1CD. Делаем запуск 1С. Затем Запуск конфигуратора, Выгрузку и загрузку в СКУЛЬ.
#69 by trdm
Правильная тема :) С решением...
#70 by Ofomokbr
Для пущей важности обращаю внимание запуск 1С в режиме Предприятие ОБЯЗАТЕЛЕН.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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