Имя: Пароль:
1C
 
Удалить строки содержащие NULL в таблице где NULL недопустимо. КАК? ☑
0 Ksandr
 
22.07.09
✎
12:16
Собственно сабж. Таблицу нашел, в 1с открываю вижу строки, но сделать с ними ничего не могу. Открываю в SQL Server Management - запрос:
SELECT [_Fld5982_TYPE]
     ,[_Fld5982_RTRef]
     ,[_Fld5982_RRRef]
     ,[_Fld5983_TYPE]
     ,[_Fld5983_RTRef]
     ,[_Fld5983_RRRef]
     ,[_SimpleKey]
 FROM [Trade].[dbo].[_InfoReg5981] WHERE [_Fld5982_TYPE] IS NULL

Результатов тоже не возвращает. Как быть?
1 Defender aka LINN
 
22.07.09
✎
12:17
(0) Значит, там не null
2 Ksandr
 
22.07.09
✎
12:18
В процессе обновления информационной базы произошла критическая ошибка.
по причине:
Ошибка СУБД:
Microsoft OLE DB Provider for SQL Server: Не удалось вставить значение NULL в столбец "_Fld5982_TYPE", таблицы "Trade.dbo._InfoReg5981NG"; в столбце запрещены значения NULL. Ошибка в INSERT.
HRESULT=80040E2F, SQLSrvr: Error state=2, Severity=10, native=515, line=1


(1) А что?
3 mikecool
 
22.07.09
✎
12:19
(2) откуда у тебя там нулл, если ты его еще не вставил: "Не удалось вставить значение NULL в столбец"
4 borik
 
22.07.09
✎
12:20
(0) Проще данные перезалить. Типа очистить таблицу и залить данные заново...
5 Ksandr
 
22.07.09
✎
12:25
(3) Ошибка при Тестировании и исправлении на моменте реструктуризации таблиц.
NULL здесь:
http://photofile.ru/users/liht/150112457/
(4) Как?
6 Ksandr
 
22.07.09
✎
12:28
(5) Не та ссылка. Вот правильная: http://s08.radikal.ru/i181/0907/f8/d1893b15fc8b.png
7 Rie
 
22.07.09
✎
12:30
(6) А если красным цветом не писать - NULL тоже там есть?
Как было выяснено, что там - именно NULL?
8 Ksandr
 
22.07.09
✎
12:31
(7) а что ж это еще?
9 H A D G E H O G s
 
22.07.09
✎
12:32
(8) Неопределено.
ПустаяСсылку
10 H A D G E H O G s
 
22.07.09
✎
12:32
Пустая ссылка
11 Ksandr
 
22.07.09
✎
12:32
А как выяснить?
12 H A D G E H O G s
 
22.07.09
✎
12:33
(8) Почисть ты его и всё.
13 Ksandr
 
22.07.09
✎
12:34
(12) Не могу. 1с перестает реагировать на клавиатуру когда наводишь на ячейку, правоклик тоже не работает
14 H A D G E H O G s
 
22.07.09
✎
12:35
(11) Прочитай полностью в ТЗ, удали из ТЗ строки с
НЕ ЗначениеЗаполнено(ТекСтрока.ДокументСсылка)

Запиши в регистр ТЗ.

Всё в транзакции
15 Ksandr
 
22.07.09
✎
12:38
Как записать?
16 Ksandr
 
22.07.09
✎
12:38
Прочитаю, а как записать? нужно наверное удалить все перед этим?
17 КонецЦикла
 
22.07.09
✎
12:39
1C не использует null для "пустых" значений
Трудно что ли посмотреть что реально в таблице?
Омистинеть...
18 Sadovnikov
 
22.07.09
✎
12:42
(17) А чего ты хотел от человекка, у которого 106 тем за 5 месяцев? "Миста - лучший отладчик", блин.
19 H A D G E H O G s
 
22.07.09
✎
12:43
(16) ППЦ.

YfxfnmТранзакцию();
Набор=РегистрыСведений.ОбъектыДоступа.СоздатьНаборЗаписей();
Набор.Прочитать();
ТЗ=Набор.Выгрузить();
i=0;
Пока i<ТЗ.Количество() Цикл
ТекСтрока=ТЗ[i];
Если Не ЗначениеЗаполнено(ТекСтрока.ДокументСсылка) Тогда
ТЗ.Удалить(ТекСтрока);
Иначе
i=i+1;
КонецЕсли;
КонецЦикла;
Набор.Загрузить(ТЗ);
Набор.записать(Истина);
ЗафиксироватьТранзакцию();
20 H A D G E H O G s
 
22.07.09
✎
12:44
Жаль, не 86-ой.
21 fisher
 
22.07.09
✎
12:45
Народ, внимательно читаем (2)
Ничего у него там нет. Ни NULL, ни чего либо еще.
Ошибка при INSERT.
Какого-то платформа пытается туды NULL записать. Т.е. причина вообще в другом.
Х.з. в чём...
22 H A D G E H O G s
 
22.07.09
✎
12:47
(21) _InfoReg5981NG

Я такой таблицы то найти не могу
23 H A D G E H O G s
 
22.07.09
✎
12:50
Но я думаю, что это - служебная какая-то табличка, на момент реструктуризации.

Во временные таблицы - побоялись засовывать, вдруг все гикнется.

А судя по уверенному посту (6) автор запустил процедуру
ПолучитьСтруктуруХраненияБазыДанных() и нашел, что просто
_InfoReg5981 - это регистр ОбъектыДоступа
24 fisher
 
22.07.09
✎
12:50
(22) Автор ошибся, наверное. Постфиксы у эски в названиях таблиц в самом деле всегда числовые... Других не видел, во всяком случае.
25 fisher
 
22.07.09
✎
12:51
(23) Точно! Причем проскакивало уже где-то... Тоже был критичный сбой при реструктуризации и пооставались эти таблички.
26 Ksandr
 
22.07.09
✎
12:55
(23) Так и поступил.
Выполнил код, который Вы написали! Сегодня вечером попробую провести реструктуризацию заново.
27 Ksandr
 
22.07.09
✎
12:56
А код оставил на память!))
28 H A D G E H O G s
 
22.07.09
✎
13:01
Ты, если что (вечером) - заходи © м/ф "Собака и Волк".
AdBlock убивает бесплатный контент. 1Сергей