Ошибка SDBL: Таблица или поле не содержится в разделе FROM при загрузке в подчиненный узлел РИБ

1. tishatdv 20.05.21 20:43 Сейчас в теме
Исходные данные на постгресе9 живет типовая УПП 1.3. Имеется РИБ состоящий из 3х точек (центральный узел+2 подчиненых узла).
При очередном обновлении на свежий релиз (157-158) получил указанную ошибку
Ошибка SDBL: Таблица или поле _Fld34480 не содержится в разделе FROM
При этом второй подчиненный узел обновился без ошибок и успешно работает.
Поиск по структуре метаданных в центральном узле результата не дал - такое поле отсутствует, этого поля нет и в обоих подчиненных узлах).
Включил техжурнал 1с: в нем удалось отловить событие по сосзданию таблицы _InfoRG33542NG с указанным полем _Fld34480. (результат отработки sql успешно создана, а по факту в постгресе такой таблицы не вижу.)
Совершенно не пойму куда копать. Как исправить?
Руками добавить таблицу в постгрес, но может надо добавлять не одну или ещё чтонибудь - а где посмотреть какие изменения вносятся в структуру при РИБ (если тупо стравнить две конфы - то там нет упоминания об этой таблице - ведь и ЦБ и ПодчинУзел_1 живут без этой таблицы, но при этом ПодчинУзел_2 у себя зачем-то хочет создать её)
Найденные решения
12. МихаилМ 21.05.21 12:46 Сейчас в теме
(11) "откуда 1с их берет?" - из записи dbnames таблицы params
19. МихаилМ 21.05.21 19:04 Сейчас в теме
конфе-пустышке могут быть другие имена таблиц, полей и загрузка в неё dbnames из другой базы приведет к неработоспособности
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tishatdv 20.05.21 21:21 Сейчас в теме
Забыл уточнить: эти базы живут на двух серверах 1с (8.3.11.3034). Перекладывание проблемной базы с одного на другой результата не меняет, т.е. чистить кэши и грешить на платформу нельзя, т.к. ЦБ и ПодчинУзел_1 - живут на любом из этих серверов.
3. Verdad 84 20.05.21 21:41 Сейчас в теме
Здравствуйте! Была похожая ошибка после обновления, отправляла базу в 1С они исправляли, сказали, что при обновлении задвоились предопределенные элементы в одном из справочников, поэтому была ошибка.
5. N0t_F0und 10 20.05.21 21:50 Сейчас в теме
(3) Задвоение предопределенных можно обработкой снять
6. Verdad 84 20.05.21 22:05 Сейчас в теме
(5)Да, но ошибка была в таком же виде "Ошибка SDBL: Таблица или поле _...... не содержится в разделе FROM".
4. МихаилМ 20.05.21 21:49 Сейчас в теме
подсмотрите тип поля в _InfoRG33542NG и добавьте такое поле в _InfoRG33542
7. tishatdv 20.05.21 22:18 Сейчас в теме
В моих БД нету ни _InfoRG33542NG ни _InfoRG33542. Т.о. говорить о недостающих полях не могу. их НЕТ...
8. tishatdv 20.05.21 22:25 Сейчас в теме
предопределенные - относится к справочникам? В моем случае проблема с регистром сведений.
Прикрепленные файлы:
9. МихаилМ 20.05.21 23:26 Сейчас в теме
с помощью ddl триггера или тех журнала воспроизведите таблицу _InfoRG33542 из _InfoRG33542NG

в постгре скл ддл триггеры появились в версии 9.5. создайте в вм постгре 9.5 . разверните копию базы настройте триггер . полученную структуру таблиц перенесите в постгре 9
10. tishatdv 21.05.21 05:18 Сейчас в теме
структуру таблицы _InfoRg33542NG я отловил через техжурнал и создал её в постргресе (результата загрузки РИБ жду), а как найти откуда 1с знает о необходимости её (таблицы) создания, если в структуре метаданных исходной БД эта таблица отсутствует?
В тех журнале видно как создавалась таблица с проблемным полем (проблемное поле не первое и не последнее, но ругается пока на него) вместе с тем полей создается куча, ругается только на него (_Fld34480), таблица вроде как "не случайная", а вполне осмысленная, т.е. вродебы рукотворная - но почему её нет в структуре метаданных ЦБ и ПодчинУзел_1. И в техжурнале написано - создано успешно (Result=PGRES_COMMAND_OK)

06:11.205000-7998,
DBPOSTGRS,3,process=rphost,p:processName=upp02,OSThread=31915,t:clientID=611,t:applicationName=Designer,t:computerName=Ast-36,
t:connectID=450,SessionID=10,Usr=ТишковскийДВ_02,Trans=0,dbpid=18455, 
Sql='dr op   table if exists _InfoRg33542NG cascade;
     cre ate   table _InfoRg33542NG (	_Fld33547_TYPE bytea not null, 
					_Fld33547_RTRef bytea not null, 
 			          	_Fld33547_RRRef bytea not null,
					_Fld33549RRef bytea not null, 
					_Fld33550 timestamp not null, 	
					_Fld34480 timestamp not null, 
					_Fld34481 mvarchar(50) not null, 
					_Fld34482RRef bytea not null, 
					_Fld34483RRef bytea not null, 
					_Fld33551RRef bytea not null, 
					_Fld33552 boolean not null, 
					_Fld33553 boolean not null, 
					_Fld33554 boolean not null, 
					_Fld33555 boolean not null, 
					_Fld33556 boolean not null, 
					_Fld33557 boolean not null, 
					_Fld33558 boolean not null, 
					_Fld33559 boolean not null, 
					_Fld33560 boolean not null, 
					_Fld33561 boolean not null, 
					_Fld33562 mvarchar(250) not null, 
					_Fld33563 mvarchar(250) not null,
					_Fld33564 numeric(15, 2) not null,
 					_Fld33565_TYPE bytea not null, 
					_Fld33565_RTRef bytea not null, 
					_Fld33565_RRRef bytea not null, 
					_Fld33566_TYPE bytea not null, 
					_Fld33566_RTRef bytea not null, 
					_Fld33566_RRRef bytea not null, 
					_Fld33567 mvarchar(250) not null, 
					_Fld33568RRef bytea not null, 
					_SimpleKey bytea not null ) without oids '
,RowsAffected=0,Result=PGRES_COMMAND_OK


06:11.208000-2999,
DBPOSTGRS,3,process=rphost,p:processName=upp02,OSThread=31915,t:clientID=611,t:applicationName=Designer,t:computerName=Ast-36,
t:connectID=450,SessionID=10,Usr=ТишковскийДВ_02,Trans=0,dbpid=18455,
Sql='   ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33547_TYPE SET STORAGE PLAIN;
	
ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33547_RTRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33547_RRRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33549RRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld34482RRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld34483RRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33551RRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33565_TYPE SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33565_RTRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33565_RRRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33566_TYPE SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33566_RTRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33566_RRRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _Fld33568RRef SET STORAGE PLAIN;

	ALT ER   TABLE _InfoRg33542NG ALTER COLUMN _SimpleKey SET STORAGE PLAIN;
'
,RowsAffected=0,Result=PGRES_COMMAND_OK


06:11.213000-3999,
DBPOSTGRS,3,process=rphost,p:processName=upp02,OSThread=31915,t:clientID=611,t:applicationName=Designer,t:computerName=Ast-36,
t:connectID=450,SessionID=10,Usr=ТишковскийДВ_02,Trans=0,dbpid=18455,
Sql='create unique index _inforg33542_bydims_rrng on _inforg33542ng(_Fld33547_TYPE, 
								    _Fld33547_RTRef, 
								    _Fld33547_RRRef, 		
								    _Fld33549RRef); 
	alt er   table _inforg33542ng cluster on _inforg33542_bydims_rrng; '
,RowsAffected=0,Result=PGRES_COMMAND_OK

Показать
11. tishatdv 21.05.21 05:56 Сейчас в теме
После создания таблицы на постгресе при загрузке РИБ - эта ошибка ушла, но теперь ругается на другое поле Fld34490
Понятно, что можно создать и его вместе с его таблицей, но этих таблиц в структуре 1с НЕТ!!! - откуда 1с их берет? Сколько их ещё? В второй ПодчинУзел_1 их тоже нет.
12. МихаилМ 21.05.21 12:46 Сейчас в теме
(11) "откуда 1с их берет?" - из записи dbnames таблицы params
13. tishatdv 21.05.21 14:24 Сейчас в теме
(12)Спасибо. А если я из ПодчинУзел_1 "заберу" эту запись в ЦБ - ведь РИБ прошел успешно. Значит могу в обратную сторону накатить и затереть "мусор". Сделать это можно поменяв главный/подчиненный или в постгресе ячейку перезалить?
14. tishatdv 21.05.21 14:33 Сейчас в теме
(13)
Сделать это можно поменяв главный/подчиненный или в постгресе ячейку
А при РИБ ячейка перетирается полностью или дописывается?
15. МихаилМ 21.05.21 14:49 Сейчас в теме
(13) попробуйте на копии и тии с реструктуризацией
16. tishatdv 21.05.21 15:18 Сейчас в теме
База под 1тер и метаданных на 1,4Гб, эксперименты осложняются тем что ТИИ на такой конфе уже давно не работает. - может у кого-то есть опыт. А так, таки да - можно на песочнице любой проверить поведение.
17. МихаилМ 21.05.21 15:23 Сейчас в теме
(16) перенесите в копию по 2к записей в каждой таблице данных. и сделайте тии
18. tishatdv 21.05.21 17:01 Сейчас в теме
Да, конечно, согласен. Тут даже живые данные не нужны. Проверить оба способа можно на конфе-пустышке, создав в ней по паре объектов метаданных разных типов.
19. МихаилМ 21.05.21 19:04 Сейчас в теме
конфе-пустышке могут быть другие имена таблиц, полей и загрузка в неё dbnames из другой базы приведет к неработоспособности
20. tishatdv 22.05.21 09:42 Сейчас в теме
Как уже писал ранее: отловил техжурналом проблемный запрос
cre ate   table _InfoRg33542NG (_Fld33547_TYPE bytea not null, 
                    		_Fld33547_RTRef bytea not null, 
                    		_Fld33547_RRRef bytea not null,
                    		_Fld33549RRef bytea not null, 
                    		_Fld33550 timestamp not null,
     
    		                _Fld34480 timestamp not null,
                		_Fld34481 mvarchar(50) not null, 
                    		_Fld34482RRef bytea not null, 
                    		_Fld34483RRef bytea not null,
 
                    		_Fld33551RRef bytea not null, 
                    		_Fld33552 boolean not null, 
                    		_Fld33553 boolean not null, 
Показать


Код почемуто спотыкается на создании реквизита _Fld34480. Решил ему помочь - па постгресе создал нужную ему таблицу.
На "втором круге" загрузки РИБ он захотел создать и споткнулся на _Fld34490 - я создал и её. На третьем повторилась закономерность теперь просит _Fld34500. Попробую сейчас на 2хода создать _Fld34510 и _Fld34520 , но предполагаю что попал в бесконечный цикл.
Как прервать не пойму. Сказать конфе что она идентична ЦБ, руками перелить записи dbnames таблицы params, а после симптоматически докидать недостающие таблицы? Еще способы есть?
Но ведь цепляется только за это поле, к другим ни до ни после вопросов нет - странно.
Примечательно, скрипт создает таблицу infoRg33542NG - предположительно регистр сведений и ng указывает на то что это новая структура и после переименовывает её в infoRg33542. Т.о. после обработки мною созданной таблицы 1с движек с ней работал, но зачем-то в неё хочет запихнуть новую структуру и так по кругу...
21. МихаилМ 22.05.21 12:13 Сейчас в теме
тип timestamp меня смущает. тем более в количестве полей больше 1. 1с8 использовала timestamp для Version. это понятно.
22. tishatdv 22.05.21 13:07 Сейчас в теме
(21)так это я на 2захода скриптик нарисовал. Изначально было одно.
25. tishatdv 22.05.21 13:51 Сейчас в теме
(22)нет. Это из тех журнала. Протормозил
24. tishatdv 22.05.21 13:49 Сейчас в теме
(21)а, понял мысль. Список создаваемых поле в хронологии начинается на 3354хх и тутже вклинился 34480.
23. tishatdv 22.05.21 13:14 Сейчас в теме
Мне непонятна причина какого фига 1ска вообще хочет эту таблицу создавать. В цб ее нет ни на стороне метаданных ни на стороне постргеса. Во второй переферийке тоже нет. Т.е. те 2 базы живут нормально. По идее достаточно в этой иб перетереть ячейку dbnames, но после могу получить типа сруктура не соотв конфе... а значит хотябы надо ее (ячейку) както хотябы глазами сличить. Ячейка бинари. Чем прочитать пока не знаю.
26. МихаилМ 23.05.21 02:04 Сейчас в теме
(23) 1) в postgsql9 нет типа бинари. 2)запись dbnames была бы легко сравнима,тк - текст. но она сжата по алгоритму deflate. что прямое сравнение делает бессмысленным.

3) в таблицах бд не ячеек. есть записи и поля.



и 1 ) и 2) описаны широко в интернет . 3) - базовые знания. для общения не владеете базовой терминологией.

а по существу: у вас в бд произошло рассогласование сопоставления метаданных и имен таблиц (полей) бд. книгу проф.разработка Вы не читали. и понимания работы бд и 1с8 у Вас нет.

обратитесь за платной консультацией в компании франчайзи 1с , имеющих соответствующий опыт. тк многие Ваши домыслы не правильны.
27. пользователь 23.05.21 07:56
Сообщение было скрыто модератором.
...
28. tishatdv 23.05.21 10:22 Сейчас в теме
Да, нашел я описания, спасибо (вчера штудировал):
Params (служебные параметры информационной базы) DBnames
Файл сжат по алгоритму deflate. Начинается с указания количества содержащихся в нём элементов. Содержит список структур DBNameEntry, которые описывают объекты хранения данных в СУБД: основные и вспомогательные таблицы, таблицы настроек, поля этих таблиц и т.п.
{28439047-46ca-4fba-9e2b-a3ac9f95a2c3,"Fld",18},
{4e75ac96-7c81-4c57-af12-a52eebdb576a,"Fld",19},

Вы правы, потребности в этом не было, следовательно и знаний не было.

Поправьте меня если не прав:
Могу смоделировать проблему на конфе пустышке если закину через backup/restore в нее DBSchema, Params (полностью в т.ч. DBnames), Config, v8users(опционально) - после зайду в режим предприятия - загружу из РИБ (ругнется на номер сообщение - исправить) очередной пакет обмена в т.ч. ConfigSave (или тоже можно через backup/restore из ЦБ) и при попытке загрузки конфы должен получить мою туже ошибку. Далее перезаливаю Params (полностью в т.ч. DBnames) из живой другой рабочей переферийной базы - моя ошибка купирована. В ЦБ релиз158, в ПерефБазе1 тоже уже релиз 158, в проблемной базе застопорился на релизе 157 - по идее отличия в структуре метаданных возможны и тогда ругнется на отсутствующие таблицы на постгресе - их тоже можно будет досоздать.
Прикрепленные файлы:
29. МихаилМ 23.05.21 11:54 Сейчас в теме
(28) нужны все служебные таблицы. не верю , что в POSTGESQL9 нет возможности обратиться из одной бд в другую. через backup/restore - это какой-то позор.

но сначала сделайте (17)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот