Имя: Пароль:
1C
 
1C 8.1 + PostgreSQL 8.3.3. Ошибка при загрузке DT в пустую базу.
0 Tedman
 
12.11.09
01:03
Добрый вечер, Уважаемые коллеги.
У меня возникли трудности с переносом базы данных с файлового варианта на PostgreSQL. Опишу подробнее задачу и возникшую в связи с этим проблему:
Есть база на 1С Предприятии 8.0.18.2 - УТ 10.2.10.2, старенькая и очень сильно мною переписанная. Компания растёр, народ прибывает, и всё начало тормозить, в связи с чем потребовался переход на клиент-серверный вариант работы. Мною был выбран PostgreSQL вместо MS SQL Serv 20** т.к. он бесплатен и есть более глубокие возможности настройки.
Ну так вот:
Поставил Предприятие версии 8.1.15.14, после этого переконвертировал базу (с 8.0 на 8.1), установил PostgreSQL-8.3.3-2.1C.msi, и т.п. Создал пустую базу. Но при попытке загрузить в пустую базу dt архив, деланный переконвертированной в 8.1 базой, пишет:
"Попытка вставки неуникального значения в уникальный индекс:
ERROR: could not create unique index "params_pkey"
DETAIL: Table contains duplicated values."
Причём я копался и на форуме, и на оф. сайте postgres'а, и на http://www.gilev.ru/1c/81/index/nonunique.htm , и хочу сразу исключить возможные варианты:
1) " Если есть возможность в файловом варианте работать с базой, то выполните Тестирование и Исправление, а также Конфигурация - Проверка конфигурации - Проверка логической целостности конфигурации + Поиск некорректных ссылок"
Ошибки были найдены и исправлены, но базу всё-рно грузить не хочет, причём голую конфу с радостью глотает.
2) Запросом типа:
"ВЫБРАТЬ Справочник.Ссылка
ИЗ Справочник.Справочник КАК Справочник
СГРУППИРОВАТЬ ПО Справочник.Ссылка
ИМЕЮЩИЕ КОЛИЧЕСТВО(*) > 1 "
прогонял все справочники, документы и планы видов характеристик - пусто.

Вот, собственно и вся ситуация. Очень прошу предлагать какие-то варианты, потому что я уже, кажется, перепробывал всё, на что фантазии хватило. Спасибо за внимание =)
1 Alise85
 
12.11.09
01:07
такая сложная проблема и так поздно :(
2 Mashinist
 
12.11.09
01:11
Интересно а в MS SQL загрузится? Видимо нет...
3 Demiurg
 
12.11.09
01:13
Слон <= 8.3.7 играет с 1С <= 8.1.14 или с 1С <= 8.2.9
Слон >= 8.3.8 играет с 1С >= 8.1.15 или с 1С >= 8.2.10
http://infostart.ru/forum/forum16/topic28711/messages/?PAGEN_1=2
4 Demiurg
 
12.11.09
01:15
еще лучше ставь db2, есть хорошое место для консультаций http://www.ibm.com/developerworks/forums/forum.jspa?forumID=1446
а слоник тольки мозги новичкам выносит
5 Tedman
 
12.11.09
01:23
2Demiurg: Не вариант. Я, как... программист,  с помощью метода тыка срубал 1с 8.1, и пробовал загрузить как на 8.1.13, так и на 8.1.14 и на 8.1.15. Та же история.
На счёт СУБД db2... Во-первых очень смущает ограничения бесплатной версии:"Максимальное использование процессоров: 2 ядра (макс 1 процессор); Максимальное использование оперативной памяти 2Гб", во-вторых радует факт открытого кода "слоника", да и просто не хочет уходить от возникшей проблемы.

2Mashinist: Мне тоже эта идея пришла в голову, на если я ещё и SQL 2005 себе на ноут поставлю, он у меня из тормозов вообще выходить, наверное, не будет )))
6 H A D G E H O G s
 
12.11.09
01:31
Проверял ТЧ справочников/документов на наличие нескольких строк с одинаковым НомерСтроки  ?
7 H A D G E H O G s
 
12.11.09
01:32
Сноси наюг PostGree, ставь MSSQL (есть ограниченные бесплатные) и не парь мозх.
Профайлером точно ошибку найдешь.
8 Tedman
 
12.11.09
01:36
2H A D G E H O G s:
Не проверял. Попробую-отпишуть.
На счёт MSSQL... видимо придётся, когда совсем надежду потеряю, а пока...)))
9 Demiurg
 
12.11.09
01:38
(5)>смущают ограничения
а халява не смущает, ну так постгря - это наказание халявщикам
слоник - субд не для начинающих

дб2 ты явно не поставишь, страшно же, это "новая неизвестная субд", черт меня

вообщем все ясно
10 Tedman
 
12.11.09
01:40
2Demiurg:
"дб2 ты явно не поставишь, страшно же, это "новая неизвестная субд", черт меня"...
Ну, вообще-то что такое PostgreSQL я узнал вчера днём ;-) Так что это меня совсем не пугает.
11 H A D G E H O G s
 
12.11.09
01:41
(8) "Удачи вам, мистер Горски" ©
12 Dm81
 
12.11.09
02:50
(0) Попробуй так:

вариант 1 - создай пустую базу, загрузи сначала .cf, запусти 1С, а потом загрузи .dt;

вариант 2 - создай пустую базу, в ней какой-нить справочник, заполни его парой значений, а потом грузи .dt.
13 Мутабор
 
12.11.09
05:58
(12) С трудом верю в такие шаманские танцы
14 Dm81
 
12.11.09
08:13
(13) у меня клиент-сервер, PostgreSQL 8.3.3-2.1C, под линуксом, платформа 8.1.15.14. Загружаются базы типовые и доработанные, из файлового варианта в клиент-серверный.
15 Мутабор
 
12.11.09
08:20
(14) Они у тебя только как в (12) описано загружаются, или все же стандартно загружаются
16 Dm81
 
12.11.09
11:51
Загружаются стандартно. Как в пустую базу (копию создаем для экспериментов), так и на имеющуюся .dt накатываем. (12) - это как варианты попробовать. Сам же знаешь про танцы с бубном.
17 Tedman
 
12.11.09
13:28
2Dm81:
Оба варианта попробовал. Cf встаёт отлично, сделал несколько товаров, характеристик, штрих-кодов, поступление, реализацию, после этого начал загружать Dt- тоже самое.

Я вот думаю, а если взять PGSQL версии 8.3.8 или 8.4.1, и попытаться загрузить на него, но, как я понял, патченных дистрибутивов от 1С нету,а как патчить самому я так и не понял, и описания по этому не нашёл =(...
18 valeriy vm
 
12.11.09
13:42
можно залить пустую базу, потом обменом между базами перекинуть данные в режиме предприятие. Вроде данные из одинаковых конфигураций не проблема перегружать
19 valeriy vm
 
12.11.09
13:44
у меня постгре не грузил dt который стоял на поддержке, пришлось снять с поддержки чтоб залить данные.
В связи с этим думаю что все дело в кофе а не платформе.
Возможно надо обновлять конфу, но этого делать не будете так как сильно писанная она уже
20 Tedman
 
12.11.09
14:02
2valeriy vm...
Вариант переброски данных с помощью "Конвертации" тоже пришёл мне на ум ещё как только я столкнулся с этой ошибкой, т.к. больше ничего и не остаётся, и ошибку там отследить проще, но...Сейчас решается вопрос стоит ли вообще всё это делать, и какой будет прирост производительности от перехода, потому хорошо бы иметь все док-ты и записи регистров, что бы вживую проверять.
А так же... может быть немного писсимистично, но не возникнет ли потом, после переброски данных, ещё какой-нить подобной проблемы, решение которой никто не знает...
21 Tedman
 
12.11.09
14:25
Есть определённое продвижение...
Взял архив ноября прошлого года... те же самые действия-> переконвертировал и т.п... Всё отлично встало О_о
22 Dm81
 
12.11.09
15:32
(17) 8.4.1 патченный есть на пользовательском сайте. У меня 8.3.3 (патченный), 8.4.1 поставлю на след. неделе, когда нагрузка меньше будет.
23 Dm81
 
12.11.09
15:44
(21) О. Попробуй платформу поставить 8.1.13.41, переконвертируй на ней базу.
24 diger
 
12.11.09
16:09
Та же самая херь была ...только с 1с 8.1.13.41 + слон 8.3.3
перечитал кучу всего а реально помогло тестированиа и исправление файлового варианта со всеми галочками кроме сжатия
25 Tedman
 
12.11.09
16:55
2Dm81:
"Попробуй платформу поставить 8.1.13.41, переконвертируй на ней базу."
Сделал  сегодня ночью)) Делал с версиями 8.1.15.*, 8.1.14.*, 13 и 12, не помогает.
2diger:
Тоже делал. И "Тестирование и исправление", и "Проверка конфигурации"...
27 valeriy vm
 
12.11.09
17:05
(25)Постгре это серверСКЛ, по этому по любому будет лучше файлового варианта, производительность будет если делать склсервер на отдельной машине.
Если сервер 1С и скл будут вместе ни чего хорошего по производительности не получиться.
28 Tedman
 
12.11.09
17:14
2valeriy vm:
Спасибо большое, учту это, когда буду базу ставить.
29 Торин
 
12.11.09
17:14
Эта ошибка никак не зависит от PostgreSQL. На MSSQL она у вас тоже не зальется... Спасает тока ТиС со ВСЕМИ галочками... включая последнюю - "Реструктуризация базы"
30 Торин
 
12.11.09
17:17
У меня эта ошибка была раза три. Делал так - ТиС с реструктуризацией, выгрузка в дтшник, загрузка в новую файловую базу, выгрузка в ДТ-шник, загрузка в СКЛ...
- все работает
31 Tedman
 
12.11.09
17:47
2Торин:
И даже это не помогло =(((
32 Dm81
 
12.11.09
19:07
(31) А ТиИ на какой платформе делал?
33 Dm81
 
12.11.09
19:09
Попробуй еще так:
1) ТиИ на платформе 8.0;
2) затем конвертация в формат 8.1;
3) выгрузка в ДТ;
4) создание пустой базы на скл-сервере;
5) загрузка в эту пустую базу ДТ
34 Dm81
 
12.11.09
19:16
+ (33). Возможно, между этапами 2 и 3 опять ТиИ делать нужно будет
36 Tedman
 
12.11.09
21:50
Сделал:
1) Отчистил Групповой обработкой справочников и док-тов все документы, что бы исключить возможность существования документов с одинаковыми номерами или одинаковыми "НомерСтроки" в регистрах.
    Проблема не ушла.
2) Сделал последовательность Dm81 (пост №33).
    Проблемы не ушла.
=(((( Какие ещё могут быть варианты?
39 Tedman
 
12.11.09
22:02
Вот, что ещё странно. Когда делаю ТиИ в 8.0 - выдаёт одну ошибку, которую говорит, что исправил. Повторное ТиИ говорит что ошибок нет.После переконвертации в 8.1 каждое ТиИ, как первое так и последующие выдают:"
Тестирование начато
Обработка структуры базы данных...
Сбор служебной информации...
Объект изменен: Справочник.АдресныеСокращения
Объект изменен: Справочник.Банки
Объект изменен: Справочник.БанковскиеСчета
Объект изменен: Справочник.Валюты
Объект изменен: Справочник.ВариантыОтветовОпросов
Объект изменен: Справочник.ВидыВзаиморасчетов
**********************************************
Все объекты конфигурации
**********************************************
Объект изменен: ПланВидовХарактеристик.СвойстваОбъектов
Объект изменен: ПланВидовХарактеристик.ТипыШтрихкодов
Принятие изменений...
Тестирование закончено"
В связи с чем это такое чудо?
44 zak555
 
12.11.09
22:22
(0) "П" забыл
46 Tedman
 
12.11.09
22:32
2zak555: Чего?
47 Serg_1960
 
12.11.09
22:43
(0) К теме об ошибке создания уникального индекса "params_pkey" (источник http://www.holden.ru/node/19)

Таблица Params содержит параметры информационной базы. Среди них:
  Список пользователей информационной базы.
  Национальные настройки информационной базы.
  Таблица соответствия объектов метаданных и объектов базы данных (таблиц, полей, индексов).
  Некоторая другая информация.
49 Tedman
 
12.11.09
22:47
2Serg_1960:
Хорошо... как отчистить "Список пользователей информационной базы" я знаю, а с остальным что делать?
50 Serg_1960
 
12.11.09
23:11
Конвертация видать, не совсем, удачная была. Ошибки в (39) связанны (имхо) с неудачными попытками реструктуризации внутренних таблиц. Неудачными из-за кривизны в таблице параметров...
51 Serg_1960
 
12.11.09
23:17
Вы в (0) сообщали "...Проверка конфигурации... Ошибки были найдены и исправлены..." - нет, не исправлены. Вы исправили рабочую конфу - ошибки в конфе БД остались.
53 Tedman
 
13.11.09
00:32
2Serg_1960:
И как это лечить? Последовательно "Проверка конфигурации" -> "ТиИ" делал...
55 Dm81
 
13.11.09
03:01
(53) Когда ТиИ делаешь, выстави параметры "Создавать несуществующие объекты"
56 Tedman
 
13.11.09
08:03
2Dm81: Не помогло.
57 Dm81
 
13.11.09
08:07
Попробуй тогда так:

на платформе 8.0
делаем ТиИ (все галочки);
выгружаем дт;
создаем чистую;
загружаем дт в нее;
запускаем 1С;
после запуска выгружаем дт.

на платформе 8.1
создаем чистую базу файловую;
загружаем дт из 8.0 и конвертируем;
затем запускаем 1С;
выгружаем дт;
создаем чистую базу на сервере;
загружаем дт из 8.1.
58 Dm81
 
13.11.09
08:09
(56) когда пишешь новый пост, в скобках пиши номер поста, на который хочешь сослаться - и будет ссылка :)
59 Tedman
 
13.11.09
08:16
(58) Спасибо, буду знать =)
60 Tedman
 
15.11.09
14:13
Проблему, судя по всему решил.
Я последовательно вичищал всю базу - не помогло.
Взял архив от сентября месяца-он отлично грузится, взял от октября- он нет.
А потом вспомнил, что примерно в конце сентября кое-что произошло. Ситуация такая-был установлен пароль на единственного пользователя, у которого были админские права (т.е. на вход в конфу и редактирование списка пользователей), а потом пароль был успешно забыт, как обычно такое и бывает. Ну что, я как "продвинутый" юзер погуглил, и нашёл статью, в которой говорилось как его снять. Смысл в том, что надо зайти WinHex'ом в базу, найти определённое место, исправить (на пример) 0 на 1, и список пользователей пропадёт, потом зайти в конфу, открыть список пользователей, потом с 1 снова исправить на 0, обновить и список пользователей снова появится (а ты уже в нём, и можешь всё менять), но... поскольку моя карма не позволяет, что бы у меня всё было не через жж.... ну вы поняли,  меня этот список не появился. Т.е. всех пользователей ИБ ввели заного, и всё нормально... было... до сего момента. Вот. Люди добрые, что делать? Как вычистить user1c.*** , который лежит в самой базе?
61 Dm81
 
15.11.09
16:05
(60) Ты ж в конфигуратор заходишь. Сними пароли всех юзеров. Да, и еще, справочник пользователей посмотри. Даже можно попробовать под каждым юзером зайти после снятия паролей.

понимаю, что это танцы с бубном.
62 Tedman
 
15.11.09
16:16
(61) Не... я и СпрПользователи вычищал, и в конфе пользователей удалял... Мне кажется, что записи о пользователях задублировались именно в users.usr, а до него добраться можно, как я понял, только WinHex'ом, т.к. подругому 1Cv8.1CD не просмотреть, а 1C'овцы вряд ли будут с этим разбираться, если им базу скинуть и описать проблему.
63 Dm81
 
15.11.09
18:03
А если так попробовать... делаешь базу sql (8.1) из того сентябрьского файла, в котором все в порядке. Затем конвертишь текущую базу в формат 8.1. А потом конвертацией (или другим каким механизмом) данные переносишь в скульную базу.
64 Tedman
 
15.11.09
18:37
(63) Можно, ток план обмена для такой дофигищи объктов писать - большой геморой.
Я другую вещь придумал, и обязательно хочу поделиться ею... Я собой ещё неделю буду ходить гордиться)
В общем придумал вот что.. в 8.0 (т.е. текущей базе), сделал план обмена с составом всех объектов. После чего сделал распределённую базу из основной, потом эту РБ отвязал от центральной, как говориться в
Книга знаний: v8: Как отвязаться от УРБД
, потом переконвертировал в 8.1 -> далее в dt и dt в SQL и... АЛИЛУЯ!!!
Правда список пользователей не сохранился, но после такого 4х дневного гемороя это меньшая из бед! =) Как до меня эта штука дошла, я, честно говоря, до сих пор не представляю но, результат - всё отлично загружается =)
Огромное спасибо всем, кто пытался мне помочь с этим вопросом =) Тема, я думаю, полездная т.к. судя по рунету далеко не я один сталкивался с подобными трудностями при переходе на SQL.
Доброго всем воскресного вечера! =)
65 Dm81
 
15.11.09
18:44
(64) Молодец, победил проблему!
66 Tedman
 
15.11.09
18:55
(65) Большое спасибо =)