Имя: Пароль:
1C
1С v8
Документ исчез, а движения остались
0 Umka2008
 
19.01.12
16:11
В регистре есть движения, регистратор такой = <Объект не найден> (91:b636001d7da2bf1711e12fa3fcb31019), как теперь удалить это движение, без документа?
1 PR
 
19.01.12
16:11
Набор записей, прочитать, очистить, записать.
2 mikecool
 
19.01.12
16:16
(1) без отбора? ))
3 PR
 
19.01.12
16:17
А что, отбор по регистратору не сработает?
Не проверял, может и не сработает, а может сработает.
4 Umka2008
 
19.01.12
16:21
по какому регистратору? Его нет
5 AllJoke
 
19.01.12
16:22
Ручками попробовать. Или там много.
6 rbcvg
 
19.01.12
16:23
прострелить жпу, тому кто так нещадно удаляет доки.
7 Митор
 
19.01.12
16:24
(0) создай документ по идентификатору. а потом удали
типа
ссылка=Документ.тратата.получитьссылку((<Уникальный дентификатор);
Объект = Документы.тратата.СоздатьДокумент();
Объект.УстановитьСсылкуНового(Ссылка);
       
Объект.Дата = ТекущаяДата();
       
Объект.Записать();
8 aleks-id
 
19.01.12
16:25
1. прочитать набор записей запросом с условием НЕ Регистратор.Дата ЕСТЬ NULL
2. записать результат запроса
9 PR
 
19.01.12
16:26
(4) А "91:b636001d7da2bf1711e12fa3fcb31019" — это что?
10 PR
 
19.01.12
16:27
(7) Хорошее решение, кстати, сработает сто процентов :))
11 mikecool
 
19.01.12
16:27
(9) это ссылко на то, что когда то было
12 PR
 
19.01.12
16:28
(8) Фигня. Набору записей нужен отбор по конкретному регистратору.
13 PR
 
19.01.12
16:28
(11) Не пробовал, может и не сработает, а может сработает.
14 mikecool
 
19.01.12
16:28
(7) сработает
15 aleks-id
 
19.01.12
16:31
(12) прочти внематочно (8)
>>прочитать набор записей запросом с условием НЕ Регистратор.Дата ЕСТЬ NULL
там будут записи только с регистраторами
16 Skylark
 
19.01.12
16:31
баян
ищите "битые ссылки"
17 PR
 
19.01.12
16:32
(15) Что, если перезаписать все нормальные записи, то ненормальным станет стыдно и они уйдут? :))
18 aleks-id
 
19.01.12
16:33
(17) без отбора? конечно уйдут
19 PR
 
19.01.12
16:35
(18) А можно записывать набор записей регистра накопления без отбора по конкретному регистратору?
20 aleks-id
 
19.01.12
16:39
(19) а кто мешает?
21 mikecool
 
19.01.12
16:39
(20) +1
22 Defender aka LINN
 
19.01.12
16:41
(19) Нельзя
(4) Ссылка на него зато есть. Отбор не спрашивает у ссылки, существует ли такой объект.
23 aleks-id
 
19.01.12
16:41
не знаю прокатит ли вариант получить набор записей запросом с условием Регистратор.Дата ЕСТЬ NULL , очистить его и записать... было бы быстрее
24 Irbis
 
19.01.12
16:43
Запрос = Новый Запрос("
   |ВЫБРАТЬ Регистратор
   |ИЗ "+ТипРегистраЗ+"."+ИмяРегистра+"
   |ГДЕ Регистратор.Ссылка ЕСТЬ NULL И НЕ Регистратор = &ПустаяСсылкаДокумента");
   Запрос.УстановитьПараметр("ПустаяСсылкаДокумента",Неопределено);
   
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       Сообщить(Выборка.Регистратор);
       Набор = ТипРегистра[ИмяРегистра].СоздатьНаборЗаписей();
       Набор.Отбор.Регистратор.Установить(Выборка.Регистратор);
       Набор.Записать();
       ОбработкаПрерыванияПользователя();
       Состояние(""+ТипРегистра+" "+ИмяРегистра);
   КонецЦикла;


у меня работает, откуда то брал идею
25 aleks-id
 
19.01.12
16:45
(24) замени в запросе Регистратор.Ссылка на Регистратор.Номер - так запрос будет быстрее ибо Ссылка - составного типа...
26 Defender aka LINN
 
19.01.12
16:48
(25) Бггг.
27 PR
 
19.01.12
16:49
(20), (21) Вам видимо ничего :))
Мне ограничения платформы :))

У меня например такое не работает :))

НаборЗаписей = РегистрыНакопления.Рег1.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.ВидСравнения = ВидСравнения.НеРавно;
НаборЗаписей.Отбор.Регистратор.Значение = Документы.Док1.ПустаяСсылка();
НаборЗаписей.Отбор.Регистратор.Использовать = Истина;
НаборЗаписей.Записать();
28 PR
 
19.01.12
16:49
(22) +1 :))
29 PR
 
19.01.12
16:50
(23) Не знаешь, но бодро вопрошаешь (20) :))
30 5 Элемент
 
19.01.12
16:51
а что ТИИ не исправит?
31 PR
 
19.01.12
16:52
(30) Вообще-то (7), но некоторые продвинутые личности ищут более экзотические варианты :))
32 Shurjk
 
19.01.12
16:52
Гыы, вот какие вещи надо на собеседованиях спрашивать, не думал что такой поток невежества будет - надо запомнить:)
33 Umka2008
 
20.01.12
09:37
30 - ТИИ запускад, не помогает. А вот способ в (24) помог, спасибо!
34 1с-кин
 
20.01.12
09:57
(24) это выбрать все битые сслыки? странно, по оогике работать не должно, но, видно, в 1с работает...
(32) если вы не знаете, что спрашивать на собеседовании по работе, а ищите вопросы по форумам - вашу контору надо обходить большой дугой и везде предупреждения вешать.
35 Defender aka LINN
 
20.01.12
10:04
(34) "по оогике работать не должно" - ну расскажи свою "оогику" тогда, как раз пятница.
Давай тогда подумаем заодно, каким маршрутом и на каком расстоянии надо обходить людей, которые элементарных вещей не знают.
36 Shurjk
 
20.01.12
11:19
(34) Можешь не приходить:)
37 1с-кин
 
20.01.12
11:57
(36) в вашу контору?! ни ногой. И другим не советую.
38 PR
 
20.01.12
11:57
1с-кин, предупреждение
39 1с-кин
 
20.01.12
11:59
(35) регистратор = <Объект не найден> - это не
NULL и не НЕ Регистратор = &ПустаяСсылкаДокумента.
Т.к. точно не пустой, и точно не NULL.
40 1с-кин
 
20.01.12
12:00
(38) а причем тут предупреждение? я контору не рекламировал :)
41 Shurjk
 
20.01.12
12:02
(40) Зато себя вполне прорекламировал:)
42 Дядя Васька
 
20.01.12
12:03
43 1с-кин
 
20.01.12
12:03
(35) вам уже осторожнее надо про "элементарных вещей" :)
не первый год в 1с.
44 Shurjk
 
20.01.12
12:05
(39) А регистратор.ссылка  - что будет?
45 hhhh
 
20.01.12
12:07
(43) ну вот элементарная вещь: Регистратор.Ссылка будет NULL. А ты нам говоришь Регистратор не NULL. Читать не умеешь?
46 1с-кин
 
20.01.12
12:07
(44) ссылка будет. Вида 91:b636001d7da2bf1711e12fa3fcb31019
47 Shurjk
 
20.01.12
12:07
(46) Попробуй. Откуда интересно она возьмется только.
48 1с-кин
 
20.01.12
12:08
(45) в битой ссылке она как раз не нулл.
а  91:b636001d7da2bf1711e12fa3fcb31019
и  <Объект не найден> - это не "элементарные вещи", а очень коварная и непобедимая до сих пор штукаю
Поэтому и осторожнее надо про "элементарные вещи".
49 1с-кин
 
20.01.12
12:10
(47) ниоткуда не возмется. Но для платформы - существует. Потому и  <Объект не найден>, что платформа не может разрешить диллему: ссылка есть - а по ссылке ничего нет.
50 Shurjk
 
20.01.12
12:10
Знаешь чем интересен этот вопрос на собеседовании - не тем что она какой то сложный или какой то каверзный, а тем что он ярко демонстрирует невежество отвечающего, есть люди которые просто скажут не знаю, есть которые подумают и придумают ответ а есть такие как ты которые считают что все знают и поэтому начинают лажать в элементраных вещах.
51 Shurjk
 
20.01.12
12:10
(48) Как раз NULL а теперь расскажи в каком случае он может быть не NULL.
52 Shurjk
 
20.01.12
12:12
+(51) Только подумай сначал что такое по сути есть битая ссылка.
53 Дядя Васька
 
20.01.12
12:15
(52) Битая ссылка по сути есть ссылка в небо. Что запрос вернет хз, но в таблице она не нулевая. Я бы заюзал не Регистратор.Ссылка, а Регистратор.Номер например. Вот тут уж гарантировано пусто будет.
54 Shurjk
 
20.01.12
12:17
(53) Не мешай, дай 1с-кину шанс реабилитироваться.
55 5 Элемент
 
20.01.12
12:17
(53) обращение через точку это левое соединение, какая разница какое поле ты будешь брать из присоединяемой таблицы?
56 Shurjk
 
20.01.12
12:19
(55) Разница на самом деле есть и по хорошему в запросе не хватает еще одного условия.
57 Shurjk
 
20.01.12
12:20
+(56) Да и не левое это соединение.
58 1с-кин
 
20.01.12
12:21
(51) вот поэтому я и не рекомендую работать у вас - где битая ссылка - это NULL.
59 1с-кин
 
20.01.12
12:21
(57) левое
60 1с-кин
 
20.01.12
12:22
(57) полнейшее левое соединение. Где присоединяется все, чт о после точки.
вот поэтому и не рекомендую работать именно у ВАС.
И предостерегаю старожил от "эт элементарные вещи!"
61 Shurjk
 
20.01.12
12:22
(58) Включи мозг.
62 Shurjk
 
20.01.12
12:23
(60) Определение левого соединения помнишь?
63 Shurjk
 
20.01.12
12:25
(58) Не битая ссылка а поле объекта на который эта ссылка.
64 Shurjk
 
20.01.12
12:26
+(63) Ну верни мне веру в людей расскажи в каком случае она будет не NULL.
65 ЧеловекДуши
 
20.01.12
12:30
Оторвать (можно и руки) тому, кто так удалил документ :)
66 Дядя Васька
 
20.01.12
12:31
(55) Не совсем. Ссылка через точку еще не соединение. Это поле ID в таблице регистра. Вот чтобы реквизит какой получить, тут уже надо по этому полю найти запись в таблице документа. Так что ссылку запрос вполне может непустую вернуть, а когда в запросе ПолучитьОбъект() напишешь, тут уже облом будет.
67 Shurjk
 
20.01.12
12:31
(65) Отрывать в первую очередь надо тому кто предоставил такую возможность.
68 Shurjk
 
20.01.12
12:32
(66) А где находиться таблица уже удаленного документа? И как в запросе ПолучитьОбъект()
69 Дядя Васька
 
20.01.12
12:32
+(66) в запросе ПолучитьОбъект() = в обходе результатов запроса ПолучитьОбъект()
70 Дядя Васька
 
20.01.12
12:34
(68) Смысл в том что если ты у запроса спрашиваешь только поле ссылка и ничего больше, есть очень большая вероятность что в таблицу документа он и не полезет. Нечего ему там делать, сама ссылка в регистре есть. И она не пустая.
71 Seeker
 
20.01.12
12:34
а тестирование исправление никто не предлагал?
72 Shurjk
 
20.01.12
12:35
(70) Ну вообще то программа она тупая, это вы можете подумать и полезть или не полезть, а она однозначно всегда работает.
73 1с-кин
 
20.01.12
12:36
(63) ссылка - это ссылка, откуда еще какое-то поле объекта, если объекта уже нет??
было бы поле - не было бы битой ссылки. Для машины все равно - чем поле занято, главное, чтобы соответствовало её "представлениям" о нем (типы данных и прочее). А в случае битой ссылки как раз и не соотвествует - ссылка указывает на "поле", а по ней ничего нет.
74 Shurjk
 
20.01.12
12:37
(73) Что в этом случае вернет запрос?
75 Дядя Васька
 
20.01.12
12:38
(72) Однозначно могу сказать про прямой скулевский - не полезет. Как себя в данной ситуации поведет восьмерка покажет только эксперимент. Случай все же не типичный, можно всю жизнь с ней проработать и не столкнуться.
76 Shurjk
 
20.01.12
12:38
(74) Поле объекта это как раз поле ссылка которое получаем по Регистратор.Ссылка
77 Shurjk
 
20.01.12
12:39
(75) Здесь про восьмерку речь.
78 Shurjk
 
20.01.12
12:40
+(77) Зачем мутить воду так и скажи сразу - не знаю.
79 5 Элемент
 
20.01.12
12:40
(75) написал простой запрос, вот что в SQL. Как видно лезет за ссылкой в таблицу документа.

SELECT
T2._IDRRef
FROM _AccumRg17 T1 WITH(NOLOCK)
LEFT OUTER JOIN _Document12 T2 WITH(NOLOCK)
ON T1._RecorderRRef = T2._IDRRef
80 Дядя Васька
 
20.01.12
12:40
(77) Я понимаю. Просто о том как она интерпретирует свой запрос в скульный знают только ее разработчики.
81 1с-кин
 
20.01.12
12:40
(74) а что он должен вернуть? все зависит от запроса - может и ошибку, а если данные - то просто не найдет ничего.
82 Shurjk
 
20.01.12
12:41
(81) Запрос уже есть
83 1с-кин
 
20.01.12
12:41
(79) правильно. А так как ничего уже нет в базе - разработчики заткнули пробоину <Объект не найден>.
И плыви дальше, как хочешь....
84 Дядя Васька
 
20.01.12
12:42
(79) Ну дура она, чо сказать :) Смысл в таком соединении нулевой в данном случае, замедляет только...
85 5 Элемент
 
20.01.12
12:42
(80) не может он по разному интерпритировать.
Обращение через точку это не особый термин 1С.
С точки зрения разработчика - точка это значит возьми из таблицы. Она обязана брать из таблицы.
86 Shurjk
 
20.01.12
12:42
(80) Может еще от магнитной активности солнца чего то зависит? А как разработчик запроса в 1с ты обязан знать как этот запрос отработает в 1с. Для упрощения будем далее рассматривать файловую базу:)
87 1с-кин
 
20.01.12
12:43
(82) а, ну понятно. У вас уже все определено - и битая ссылка это NULL, и как запросы к SQL раскладываются в 1с.
Документации нет, разработчики 20 лет молчат, тут копья постоянно ломают - а вам только бы вопросы "для тестов" понабирать. Ну правильно, для тестов - ответ-то должен быть один.
88 Shurjk
 
20.01.12
12:45
(87) Не для тестов а для понимания, отцепись от скуля уже - пусть будет файловая база.
89 Shurjk
 
20.01.12
12:45
(87) Где я сказал что битая ссылка = NULL
90 1с-кин
 
20.01.12
12:45
+ битая ссылка - это еще и поле удаленного объекта... эт вообще первый раз такое вижу...
чтобы ссылка превратилась (мановением пера) в поле целого объекта.
91 5 Элемент
 
20.01.12
12:46
А что тут понимать, пришли намутили воду и пытаетесь доказать что вода черная.
92 Shurjk
 
20.01.12
12:46
(90) Что такое Регистратор.Ссылка ?
93 1с-кин
 
20.01.12
12:46
(89) -> (51) или тесты свои посмотрите, что ли :)
94 1с-кин
 
20.01.12
12:48
(92) запишите в блокнрот для своих тестов - это ССЫЛКА, т.е. поле ССЫЛКА, содержит ССЫЛКУ, т.е. 20-тиричное (находка 1с-ев! - везде кратное, у них - 20тиричное) число-идентификатор.
95 Shurjk
 
20.01.12
12:48
(93) Значит все таки работает запрос из (24)
96 1с-кин
 
20.01.12
12:48
+ причем в SQL оно, по-моему, 16-тиричное, и 1с-цы там его еще конвертируют туда-сюда....
97 Shurjk
 
20.01.12
12:49
(94) Ладно не мучайся и мой тебе совет бросай ты нафиг 1с- с твоим сомомнением и самоуверенностью надо в продажники идти - там это цениться.
98 Рэйв
 
20.01.12
12:50
ГДЕ
  Регистратор.Ссылка Есть NULL
  И Регистратор<>&ПустаяСсылка
99 1с-кин
 
20.01.12
12:50
(95) <Объект не найден> - это не NULL. Т.к. содержит ссылку.
и не ПустаяСсылка - т.к. содержит 20тиричный идентификатор  91:b636001d7da2bf1711e12fa3fcb31019.
100 Рэйв
 
20.01.12
12:51
получишь все битые движения
101 1с-кин
 
20.01.12
12:52
(7) это вы половине этого топика написали? я-то как раз разбиваю чужое самомнение здесь...
102 Рэйв
 
20.01.12
12:52
+(98)потом при выборке результата создавай НаборЗаписей, запихивай значение битой ссылки в отбор и удаляй движения
103 Shurjk
 
20.01.12
12:54
(101) еще раз вопрос (98) - будет работать?
104 Рэйв
 
20.01.12
12:55
Что=то вроде

ВЫБРАТЬ Различные
   ТоварыНаСкладах.Регистратор КАК Ссылка
ИЗ
   РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
  ТоварыНаСкладах.Регистратор.Ссылка Есть NULL
  И ТоварыНаСкладах.Регистратор<>&ПустаяСсылка    

тРез=Запрос.Выполнить().Выгрузить();
Для Каждого Стр из тРез Цикл
   Набор=РегистрНакопления.Твой.СоздатьНаборЗаписей();
   Набор.Отбор.Регистратор.Установить(Стр.Ссылка);
   Набор.Прочитать();
   Набор.Записать(Истина);
КонецЦикла;
105 Рэйв
 
20.01.12
12:56
(104) ->(103)
106 Рэйв
 
20.01.12
12:57
+Параметр пустой ссылки установи не забудь
107 Shurjk
 
20.01.12
12:58
(104) Да уже было решение см (24), тут уже о другом спор идет. Товарищ вот утверждает что такое работать не будет, в принципе есть случай в котором оно реально не будет работать, но товарищ 1с-кин в качестве аргументов такой бред приводит - и при чем так уверенно.
108 1с-кин
 
20.01.12
12:59
(103) вы даже скопипастить толком не сумели - а "тесты, на работу принимаю, идите все лесом!"
Книга знаний: Пустые ссылки
там ясно указано, что проверяется ОБЪЕКТ, а не ссылка.
И четко - что такое битая ссылка, и где она ни разу не пустая или NULL
109 1с-кин
 
20.01.12
12:59
(107) сколько в москве контор непутевых...
110 Рэйв
 
20.01.12
12:59
(107)Будет.
Первой строкой условия ГДЕ - неявное соединение которое не найдет док и даст NULL
Второй строкой отсеятся действительно пустые регистраторы если вдруг есть.
т.е. получишь быитые ссылки
111 Shurjk
 
20.01.12
13:00
(109) А сколько тупых самоуверенных спецов ходит так это вообще просто катострофа:)
112 Shurjk
 
20.01.12
13:02
(110) Будет но только если регистратор не составного типа, для составного типа надо добавить условие на НЕОПРЕДЕЛЕНО.
113 Shurjk
 
20.01.12
13:02
1с-кин - ты дебил, кто со мной несогласен пусть меня забанит.
114 Рэйв
 
20.01.12
13:02
(112)Да.
115 Рэйв
 
20.01.12
13:03
+(114)Но побольшому счету я ниразу не видел еще регистр накопления без регистратора:-)
116 Shurjk
 
20.01.12
13:03
(115) А где регистратор составного типа?
117 Рэйв
 
20.01.12
13:04
(16)Даже если он составного на 99,9 % вероятности- он заполнен.
118 Рэйв
 
20.01.12
13:04
А неопределено даст только незаполненое поле регистратора
119 Shurjk
 
20.01.12
13:05
(117) Чем заполнен? про битые ссылки говорим.
120 5 Элемент
 
20.01.12
13:05
если поле составного типа то в нем могут быть неопределено или любая пустая ссылка из возможных типов.
значит надо проверять не только а неопределено.
121 Рэйв
 
20.01.12
13:06
(119)Битая ссылка- это заполненный регистратор.
Просто его нет самого физически в базеь.Ссылка заполнена
122 НЕА123
 
20.01.12
13:07
(119)(120)
Рэйв говорит про то, что ни разу не видел ПУСТОГО РЕГИСТРАТОРА. я тоже не видел.
123 Рэйв
 
20.01.12
13:07
потому просто проверкой на пустую ссылку ты битые никогда не найдешь..Они не пустые
124 1с-кин
 
20.01.12
13:08
(115) да не регистр не заполнен регистраторами - таблица в базе осталась без объекта, на который ссылались.
Поэтому регистратору деваться некуда - ну не прописали ему, что делать, кроме как <Объект не найден>, он и выводит <Объект не найден>.
А как дальше жить - этого не прописали.
125 5 Элемент
 
20.01.12
13:09
(122) а я говорю, что проверять пустой регистратор условием = неопределено недостаточно.
надо еще проверять = пустые ссылки всех типов.
Но эта проверка какой-то бред того кто решил перестраховаться.
126 Shurjk
 
20.01.12
13:09
(122) Бывает
127 Рэйв
 
20.01.12
13:09
(124)А что ему еще делать если у него есть линк, а объекта на которы линк в базе нет?:-)..Тут ничего не сделаешь кроме тии с созданием объектов:-)
128 Рэйв
 
20.01.12
13:10
(125)Битая ссылка никогда не будет равноа Неопределено
129 Рэйв
 
20.01.12
13:10
*равна
130 Рэйв
 
20.01.12
13:10
потому что она определена
131 1с-кин
 
20.01.12
13:10
(121) да, именно так.
(122) это вообще из рассуждений "сколько на кончике иглы..." :)
132 5 Элемент
 
20.01.12
13:11
(128) ты читать умеешь? я пишу про пустой регистратор.
133 Рэйв
 
20.01.12
13:11
(126)Ну, если спциально заполнить пустым:-)
134 Shurjk
 
20.01.12
13:11
(133) Можно специально, а можно просто очистить.
135 Рэйв
 
20.01.12
13:11
(132) причем тут пустой регистратор когда ищут битые ссылки а пустых почти не бывает?:-)
136 1с-кин
 
20.01.12
13:12
(127) ну 1с могла бы все-таки сохранять хотя бы ПОЛЯ объектов (которые Shurjk уже нашел и включил в свои тесты) в виде кода той же ссылки - чтобы потом хотя бы восстановить пустой, но сущетсвующий объект. А нет ни наследования (которое бы здесь очень пригодилось), ни восстановления ссылок...
137 Defender aka LINN
 
20.01.12
13:13
(132) Для начала покажи записанный набор записей с пустым регистратором, потом продолжим разговор.
138 Рэйв
 
20.01.12
13:13
(136)Если ты заметил "код ссылки" стоит в скобках после "Объект не найден" Это и есть УИД
139 5 Элемент
 
20.01.12
13:13
(135) потому что условие "ТоварыНаСкладах.Регистратор.Ссылка Есть NULL" будет истина, если регистратор пустой.
Но это не значит что в этой записи есть битая ссылка.
Поэтому и добавлено условие на проверку пустого регистратора.
140 Defender aka LINN
 
20.01.12
13:14
(136) Ты 1С вообще открывал когда-нибудь?
141 5 Элемент
 
20.01.12
13:14
(137) Я как раз таки и говорю что это условие не нужно - см (125)
142 Рэйв
 
20.01.12
13:14
(139) Да, будет пусто, пот ому я навсяк случай длобавил второе условие. Но там нужно неопределено в случае составного регистратора
143 1с-кин
 
20.01.12
13:15
(138) но по нему нельзя восстановить объект хотя бы в виде каркаса из объектов без данных, не так ли?
144 5 Элемент
 
20.01.12
13:15
(142) ппц, если тип составной то там может быть не только неопределено, но и еще пустые ссылки всех типов регистратора. Ты это понимаешь?
145 Рэйв
 
20.01.12
13:17
(143)Можно.Хочешь програмно, хочешь через ТИИ с созданием объектов
146 Рэйв
 
20.01.12
13:19
(144)>>но и еще пустые ссылки всех типов регистратора

Ты хоть раз это видел? Я нет.
Но если сильно хочется подстраховаться на случай ядерной войны - включи дополнительные условия на
НЕ Регистратор ССЫЛКА Документ.Вид

...и успокойся:-)
147 Рэйв
 
20.01.12
13:20
А с другой стороны "пустые ссылки всех типов регистратора" тоже не дурно было бы прибить вместе с битыми ссылками ибо неправильно это
148 5 Элемент
 
20.01.12
13:21
(146) ты меня поражаешь. кто-то решил проверять регистратор = неопределено, чтобы защититься от пустых регистраторов.
Я говорю, что если он собрался решать эту задачу то проверять = неопределено недостаточно. надо еще проверять пустые ссылки.
В чем я не прав?
149 Рэйв
 
20.01.12
13:23
(148)Ну прав.Просто я пренебрег почти невероятной ситуацией:-)...Забыть заполнить регистратор еще возможно как то.Но СПЕЦИАЛЬНО задолбить туда ПустаяСсылка()- это надо иметь сильно злой умысел:-)
150 5 Элемент
 
20.01.12
13:25
Это Волшебник добавил еще в дремучем 2006г, молод еще был.
151 bugz2003
 
20.01.12
13:38
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                  |    ТоварыНаСкладахОбороты.Регистратор
                  |ИЗ
                  |    РегистрНакопления.ТоварыНаСкладах.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ТоварыНаСкладахОбороты
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    ТоварыНаСкладахОбороты.Период";
   Запрос.УстановитьПараметр("ДатаНач",НачПериода);
   Запрос.УстановитьПараметр("ДатаКон",КонПериода);
   Рез = Запрос.Выполнить().Выбрать();
   НачатьТранзакцию();
   Пока Рез.Следующий() цикл
       Если Рез.Регистратор.Дата = Дата(1, 1, 1) Тогда
           Набор = РегистрыНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей();
           Набор.Отбор.Регистратор.Установить(Рез.Регистратор);
           Набор.Прочитать();
           Набор.Очистить();
           Набор.Записать();
           ПланыОбмена.УдалитьРегистрациюИзменений(ПланыОбмена.Полный.НайтиПоКоду("ЦБ-"),Набор);
       КонецЕсли;
   КонецЦикла;
   ЗафиксироватьТранзакцию();
152 bugz2003
 
20.01.12
13:39
естественно по своему регистру и периоду записи в нем
153 Defender aka LINN
 
20.01.12
13:44
(151) У вас сервер излишне мощный, как я погляжу, да?
154 Леха Дум
 
20.01.12
13:51
Все проще гораздо....

Запрос.Текст="
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ВашРегистр.Регистратор
|ИЗ
|    РегистрНакопления.ВашРегистр КАК ВашРегистр
|ГДЕ
|    ВашРегистр.Регистратор.Номер ЕСТЬ NULL
|";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Набор = РегистрыНакопления.ВашРегистр.СоздатьНаборЗаписей();
   
Пока Выборка.Следующий() Цикл

Набор.Отбор.Регистратор.Установить(Выборка.Регистратор, Истина);
Набор.Записать();

КонецЦикла;
155 1с-кин
 
20.01.12
14:01
(122) а зачем статью поправили? было правильно -
Регистратор.Номер ЕСТЬ NULL
т.к. поле номер НЕ СУЩЕСТВУЕТ (по причине отсутствия самого объекта) и возвращается NULL, а
Регистратор.Ссылка ЕСТЬ NULL -
ссыка есть, и она не NULL.
156 PR
 
20.01.12
14:20
Я смотрю, вы никак не угомонитесь.
Развели базар из элементарного отсутствия объекта в базе.
157 Defender aka LINN
 
20.01.12
14:26
(155) Теоретик, блин. Запусти 1С хоть раз...
158 PR
 
20.01.12
14:32
(157) Разве запрос с условием "ГДЕ Регистратор.Ссылка ЕСТЬ NULL" вернет битые ссылки?
159 Shurjk
 
20.01.12
14:37
(158) А разве нет?
160 Vovan1975
 
20.01.12
14:40
(159) неа, более того ситуация из (0) - не является ошибочной с точки зрения платформы....
161 1с-кин
 
20.01.12
14:40
(159) вернет отсутствующие ссылки, а не битые
162 Shurjk
 
20.01.12
14:42
(161) С тобой у меня нет желания общаться, я тебя и так сегодня пол дня лечил - ты неисправимый.
163 Shurjk
 
20.01.12
14:42
(160) Вот оно как:) А что же оно вернет тогда?
164 1с-кин
 
20.01.12
14:43
(160) + я (124) уже написал, почему...
165 Defender aka LINN
 
20.01.12
14:44
(161) И что же есть "отсутствующая" и "битая" ссылка в вашей реальности?
(160) Ты, я так понимаю, тоже 1С не запускал ни разу?
166 5 Элемент
 
20.01.12
14:44
Не дай бог с вами на совещание попасть
167 sda553
 
20.01.12
14:44
Если у регистра более одного регистратора
168 Shurjk
 
20.01.12
14:45
(160) Про такое понятие как ссылочная целостность  не доводилось слышать?
169 PR
 
20.01.12
14:45
(159) А разве да?
170 Vovan1975
 
20.01.12
14:45
(165) ага, ниразу
171 Shurjk
 
20.01.12
14:45
(169) А ты попробуй.
172 5 Элемент
 
20.01.12
14:46
(168) он прав, данные регистра могут жить без регистратора
173 PR
 
20.01.12
14:46
Кто еще раз перейдет на личности отправится в бан.
174 Defender aka LINN
 
20.01.12
14:46
(170) Заметно.
175 Shurjk
 
20.01.12
14:46
(172) Жить то они могут, но нормальной такую ситуацию точно не назовешь.
176 Vovan1975
 
20.01.12
14:47
(168) приходилось, а ты про планы обмена не слышал нифига.
(175) это нормальная ситуация
177 1с-кин
 
20.01.12
14:47
(168) в блокнотик поглядите, где с курсов записывали - ОбъектНеНайден - это как раз и есть ссылочная целостность для объекта, который удален.
178 PR
 
20.01.12
14:47
(171) Да я вроде как уже попробовал :))
Вроде как ссылка есть, номера нет, все как полагается :))
179 5 Элемент
 
20.01.12
14:47
(175) зачем мне документы, если все есть в регистрах?
180 Vovan1975
 
20.01.12
14:48
(174) какой ты остроокий! Пирожок с полки возьми
181 Shurjk
 
20.01.12
14:49
(179) Для аналитики, а если это не документ, а скажем справочник?
182 5 Элемент
 
20.01.12
14:50
(175) даже в стандартах 1С есть следующее

Самодостаточность регистров
При разработке структуры регистров необходимо придерживаться правила, что регистр должен быть логически независим от регистраторов. Любая логика, опирающаяся или анализирующая данные регистра, а также любые отчеты по этому регистру не должны обращаться к полям регистратора, им должно быть достаточно данных самого регистра.

Обращение к полям регистратора "через точку" приводит к неявному соединению с дополнительными таблицами (подробнее см. Разыменование ссылочных полей составного типа в языке запросов). Кроме того, в распределенной информационной базе регистратора может и не быть, если движения в регистрах мигрируют между узлами, а регистраторы - нет.
183 Shurjk
 
20.01.12
14:50
(178) ссылка должна быть в тадблице объекта, а объекта нет.
184 Defender aka LINN
 
20.01.12
14:50
(180) Спасибо, я уже поел. И именно поэтому чушь не несу :)
185 Shurjk
 
20.01.12
14:53
(182) Хорошо, а что делать если к примеру движения есть, а мне вот их надо удалить или откорректировать. Что по этому поводу в стандартах написано?
186 PR
 
20.01.12
14:53
(183) Ты хорошо себе представляешь организацию базы данных на уровне таблиц и полей таблиц?
Как реализуется ссылка на регистратор в таблице регистра например?
187 Shurjk
 
20.01.12
14:54
(186) Что такое объект в базе данных чем он характеризуется и что из себя представляет?
188 5 Элемент
 
20.01.12
14:54
(185) не вижу смыла это обсуждать - все очевидно
189 Shurjk
 
20.01.12
14:55
(188) Да ну, уже тут только 200 постов накидали, а что ты пользователю скажешь когда он тебя спросит об этом?
190 PR
 
20.01.12
14:57
(187) Это вопрос ко мне?
Если да, то могу порекомендовать только открыть учебник и почитать.
191 5 Элемент
 
20.01.12
14:58
(189) зависит от того с какой базой они работают.
192 Vovan1975
 
20.01.12
14:58
(184) открой книгу знаний из (108) и подумай почему в последнем примере стоит условие "|ГДЕ Регистратор.Ссылка ЕСТЬ NULL И НЕ Регистратор = &ПустаяСсылкаДокумента"
193 Shurjk
 
20.01.12
14:58
(190) Это наводящий вопрос чтоб ты понял почему Регистратор.Ссылка при удаленном регистраторе будет NULL
194 Рэйв
 
20.01.12
14:59
(187)Да господи...Ссылка побльшому счету это текст в базе с УИДом объекта. Тексту пофигу удалил ты его или нет. Если есть объект он его покажет.Если нет напишет "Объект не найден". ВСот и вся ссылочная целостность
195 Shurjk
 
20.01.12
15:01
(194) Просвятил :) то то я и не знал. Я про последствия этой ситуации говорю.
196 Vovan1975
 
20.01.12
15:01
(187) объект в базе данных не хранится. В БД хранятся данные объекта, не?
197 1с-кин
 
20.01.12
15:01
(192) раньше несколько лет было
ГДЕ Регистратор.Номер ЕСТЬ NULL
(194) точно, (177) никто не прочитал...
198 Shurjk
 
20.01.12
15:01
(187) Чем объект в БД отличается от к примеру той же записи регистра.
199 Defender aka LINN
 
20.01.12
15:01
(192) Потому что второе условие избыточно.
200 Рэйв
 
20.01.12
15:02
(165)При неявонм соединении он не найдет ни номер ни ссылку.Так что пофигу что в условии на ЕСТЬ NULL писать
201 PR
 
20.01.12
15:02
(192) Последний редактор посчитал, что делать по номеру неправильно и поменял на ссылку.
А что? :))
202 Рэйв
 
20.01.12
15:02
(200)->(195)
203 PR
 
20.01.12
15:02
(193) Ладно, в сад.
Ты легких намеков не понимаешь, а заниматься твоим обучением у меня нет никакого желания.
Пусть будет по-твоему :))
204 Shurjk
 
20.01.12
15:04
(200) Бредишь уже.
205 Shurjk
 
20.01.12
15:04
(203) Ты попробуй для интереса, если ты не самоуверенный дебил, то придешщь и извинишься.
206 Shurjk
 
20.01.12
15:05
+(205) С выводами кому у кого еще учиться надо.
207 1с-кин
 
20.01.12
15:05
(201) логика не нарушается:
ссылка все-таки есть как ссылка, а вот поля Номер - однозначно нет. И да, когда он разъименвоание делает до таблицы, и по ссылке тоже ничего нет....
208 1с-кин
 
20.01.12
15:06
+ 9201), (202) -> (197), вот так вернее :)
209 5 Элемент
 
20.01.12
15:06
нет чтобы объяснить, а то приходят дураками называют и уходят)
210 1с-кин
 
20.01.12
15:08
(209) ну какой 1с-ник другого дураком не назовет? а пользователей - придурками? :))
211 Defender aka LINN
 
20.01.12
15:09
(210) На (165) ответь, плиз, а то я аж заинтригован весь.
212 1с-кин
 
20.01.12
15:11
(211) NULL - это отсутствие объекта в 1с, а битая ссылка - это ссылка, которая ссылается на несуществующий объект, при этом сама она вполне себе легитимна и обладает всеми правми.
213 Shurjk
 
20.01.12
15:14
(212) Какие права есть у ссылки?
214 5 Элемент
 
20.01.12
15:14
(212) пятничная ветка не здесь)
215 Irbis
 
20.01.12
15:16
NULL - это отсутствие объекта в 1с
В книгу незнаний
216 Defender aka LINN
 
20.01.12
15:16
(212) NULL - это NULL, не надо изобретать для него оригинальных названий :)
(213) "У вас есть право быть битой" :)))
217 5 Элемент
 
20.01.12
15:18
Подпортил ты себе карму)
218 1с-кин
 
20.01.12
15:25
(213)-(217) да никт о из вас не сможет дать четкого определения NULL в 1С :)
по причине отсутствия такового.
Я дал в контексте ветки. А то еще обвинят во флуде... :)
219 Defender aka LINN
 
20.01.12
15:28
(218) wiki:NULL_(SQL)
В 1С специального определения нет. Извини.
220 Shurjk
 
20.01.12
15:28
(218) Ну если даже типа в терминах 1с - пустая ссылка - это ссылка на существующий объект?
221 Shurjk
 
20.01.12
15:29
(219) Там тоже какое то кривое определение.
222 Shurjk
 
20.01.12
15:32
Мне больше вот такое определение нравиться - четко и понятно - http://www.firebirdsql.org/manual/ru/nullguide-whatisnull-ru.html
а  вики статью похоже тоже какой то 1с-кин писал.
223 1с-кин
 
20.01.12
15:34
(219) а причем тут NULL от SQL и NULL в 1С?
v8: еще раз про NULL в полях примитивных типов
(215) ай-яй-яй:
"   Irbis
12 - 29.12.10 - 14:44    (8) Если не NULL уже значит что-то присвоено"
- это что? NULL - где объект присвоен?
224 Shurjk
 
20.01.12
15:36
(223) Не читай глупости которые Ненавижу1с пишет, хоть в 1с хоть в SQL хоть где NULL это не значение - это признак отсутствия значения.
225 Defender aka LINN
 
20.01.12
15:36
(223) Т.е. в SQL и в 1С - разные NULL? Продолжайте, продолжайте, я пока за попкорном схожу...
226 1с-кин
 
20.01.12
15:38
(220) пустая ссылка - это ссылка на тип данных "ОбъектТакой-ТО"
227 5 Элемент
 
20.01.12
15:45
(226) а что такое тип данных?
228 5 Элемент
 
20.01.12
15:46
и что значит ссылка?
229 1с-кин
 
20.01.12
15:46
(225) это мне уже пора за попкорном идти.. чтобы мистян рассматривать..
из той же Вики о NULL в SQL:
-  NULL соответствует понятию «пустое поле», то есть «поле, не содержащее никакого значения». Введено для того, чтобы различать в полях БД пустые (визуально не отображаемые) значения (например, строку нулевой длины) и отсутствующие значения (когда в поле не записано вообще никакого значения, даже пустого). - у 1С как?
- В БД, поддерживающих понятие NULL, для поля таблицы при описании определяется, может ли оно быть пустым. Если да, то в это поле можно не записывать никакого значения, и это поле будет иметь значение NULL. Также можно и явно записать в такое поле значение NULL. - а 1С?
- Любая операция сравнения с NULL (даже операция «NULL = NULL»), даёт в результате значение «неизвестность» (UNKNOWN). - в 1С?
- Агрегатные и аналитические функции (используемые в SQL в качестве операций на множествах и списках), как правило, игнорируют значения NULL в пользу допустимых значений остальных элементов множества - а в 1С?

ГДЕ МОЙ ПОПКОРН??
230 1с-кин
 
20.01.12
15:47
(227) Справочник, например.
231 1с-кин
 
20.01.12
15:49
+ (227) только в 1С тип данных от примитивных к составным плавно подменяется термином "тип Объект".
Хотя это именно набор примитивных данных под общим флагом, а никак не объект.
232 Shurjk
 
20.01.12
15:49
(230) Слушай тебя самого не смущает что ты "плаваешь" в вопросах на которые отвечаешь?
233 Shurjk
 
20.01.12
15:50
(231) "Остапа понесло"
234 1с-кин
 
20.01.12
15:51
+ (231) собственно, отсюда и все проблемы обработки даных в 1С.
235 Shurjk
 
20.01.12
15:51
(229) Вот я сразу сказал что в вики мутное определение, это не ты его случайно писал?
236 5 Элемент
 
20.01.12
15:53
(231) составной тип данных ... это уже что-то новое )
237 1с-кин
 
20.01.12
15:55
(232) хоть одно определение объекта знакомо?
можно даже в вики посмотреть:
wiki:Объектно-ориентированное_программирование
- какое подходит под "объект" 1с-а?
В 1с псевдообъекты, состоящие из примитивных типов данных, и работающие на "псевдологике" :)
238 1с-кин
 
20.01.12
15:56
+ (237) если затруднительно читатьь все - там есть "Основные понятия" ))
239 Fish
 
20.01.12
15:56
(237) Ну нифига себе срач развели :)))
Значит ты, судя по нику, "псевдопрограммист"? :))))
240 5 Элемент
 
20.01.12
15:56
Пустая ссылка это объект а не ссылка на тип данных.
241 Shurjk
 
20.01.12
15:57
(237) причем здесь определение объекта и ООП. Ты опять начал  все в кучу собирать, а все началось с того что ты ответил на первый вопрос не подумав в итоге ты начинаешь вспоминать все подряд и нести полную чушь. Если что пустая ссылка - это не тип данных, а значение по умолчанию, такое же как например для типа число 0.
242 Shurjk
 
20.01.12
15:58
+(241) Объекта БД.
243 1с-кин
 
20.01.12
15:59
(240) ПутсаяСсылка - это именно что тип данных, означающая, что здесь описание "объекта1С".
И как тип данных, хранит своеобразны данные - характеристику.
244 1с-кин
 
20.01.12
15:59
(241) не, ООП и Объекты - это вообще противоположные вещи... ))
245 1с-кин
 
20.01.12
16:00
(239) а ты? :))
246 Shurjk
 
20.01.12
16:01
(244) Ты какие объекты имеешь в виду? Те которые у тебя в базе хранятся или те которые ты в программе описываешь?
247 1с-кин
 
20.01.12
16:01
(241) я говорю, что и ПустаяСсылка, и "объекты1С" - все суть типы данных.
ПустаяСсылка без ссылки, объект - с конкретной ссылкой.
248 1с-кин
 
20.01.12
16:03
(246) объекты и в строительстве есть ))
ежели что ))
А в программиировании есть единственные объекты - из ООП.
и у остальных логических единиц есть наименования и описания.
А ежели 1С нравится называть "объектами" набор данных - то путсь называет. Плохо, что неокрепшие умы смущает и не разъясняет все толком.
249 Shurjk
 
20.01.12
16:05
(248) Вообще то объекты БД и объекты в программировании везде разные вещи как в 1с так и в других языках.
250 1с-кин
 
20.01.12
16:07
(249) вот именно, а в 1С все в куче. И нет никаких настоящих Объектов.
"Бьёрн Страуструп в 1988 году писал, что обоснование «объектной ориентированности» чего-либо, в большинстве случаев, сводится к ложному силлогизму:
«X — это хорошо. Объектная ориентированность — это хорошо. Следовательно, X является объектно-ориентированным».
Тимоти Бадд пишет:
Роджер Кинг аргументированно настаивал, что его кот является объектно-ориентированным. Кроме прочих своих достоинств, кот демонстрирует характерное поведение, реагирует на сообщения, наделён унаследованными реакциями и управляет своим, вполне независимым, внутренним состоянием".
Все. Точка.
Отсюда вывод (согласно логике самой 1с-же, как она обращается с терминами "объекты", NULL и прочая): 1С - на уровне кота :))
251 5 Элемент
 
20.01.12
16:09
напиши еще чегонибудь)
252 Fish
 
20.01.12
16:10
(245) А я и не знаю уже теперь. :)) Видимо я "псевдочеловек" который пишет "псевдопрограммы" для "псевдозаказчиков", а они мне платят "псевдобабло" :))))
(250) Ура!!! наконец-то я прозрел!!!! 1С - ненастоящая!!!! :))))
253 Shurjk
 
20.01.12
16:11
(250) А ты где нибудь на программиста учился?
254 shuhard
 
20.01.12
16:12
(253) явно учился и выучился до раздвоения личности,
зарабатывает на жизнь 1С и тихо её ненавидит
255 Fish
 
20.01.12
16:14
(254) Скорее, судя по v8: Почему можно не ставить разделитель строк, если одна строка? , то если и учился, то явно недоучился :)))
256 Fish
 
20.01.12
16:16
+(254) Мне оттуда понравилась фраза: "насколько в 1с реализован накопленный опыт языков" :)))
257 1с-кин
 
20.01.12
16:17
(256) ну вот и обсудили здесь, насколько :))
258 Shurjk
 
20.01.12
16:18
(254) Ну может нужда заставила, просто интересное понимание основных вещей, вроде как есть кое какие знания но какие то они слишком поверхностные, до такой степени что даже не возникает у него подозрения о том что там под поверхностью еще что то есть, вот мне и интересно где сейчас так качественно обучают.
259 1с-кин
 
20.01.12
16:20
(258) зато у кого здесь "не поверхностные и глубокие знания" - в легкую путаются в терминах 1с и ничего не могут объяснить ни себе, ни оппоненту :))
260 Shurjk
 
20.01.12
16:23
(259) Трудно объяснить что то человеку который считает что все уже знает, и сам готов тебе что угодно объяснить. Так все таки открой секрет - где учился?
261 rs_trade
 
20.01.12
16:43
> Вообще то объекты БД и объекты в программировании везде разные вещи как в 1с так и в других языках.

> вот именно, а в 1С все в куче. И нет никаких настоящих Объектов.


в первом предложении соглашается. во втором, опровергает то, с чем согласился в первом.
262 rs_trade
 
20.01.12
16:48
Автор, запусти ТИИ с галочкой херить не существующие ссылки и все. Не надо запросов и кода.
263 1с-кин
 
20.01.12
17:09
(261) первая фраза - не мои слова.
вторая - мои.
Если высокообразованным непонятно - расшифровываю :))
- вот именно, "Вообще то объекты БД и объекты в программировании везде разные вещи",  а в 1С все в куче.
(260) меряться, что ли? ))
не в москве учился, и что? ))
и очень доволен, что не в москве... а то был бы настоящим тру-мистовцем :))
264 rs_trade
 
20.01.12
17:21
(263) не фраза, а предложение. речь идет о

> вот именно, а в 1С все в куче. И нет никаких настоящих Объектов.
265 rs_trade
 
20.01.12
17:24
еще позабавило про настоящие объекты.
266 Shurjk
 
20.01.12
17:45
(263) Название ВУЗ-а скажи и факультет.
267 1с-кин
 
21.01.12
22:47
(266) в Демиде.
ЯрГУ, ИВТ
а ты?
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.