Имя: Пароль:
1C
1С v8
Как программно установить общую ссылку для всех документов?
0 napagokc
 
14.10.11
14:59
У меня у некоторых партий товаров пропали документы прихода. Пишу запрос, который отберет только те партии, в которых документ прихода отсутствует. Т.к. документы прихода могут быть разные, то хотелось бы в запросе указать какого-то общего родителя для всех документов, чтобы проверка делалась просто на пустую ссылку в месте, где должен быть документ прихода, а не на пустую ссылку какого-то конкретного вида документа. Это возможно сделать программно? И если возможно, то как?
1 Amiralnar
 
14.10.11
15:00
НЕОПРЕДЕЛЕНО - такое знаечение у пусого составного поля
2 MRAK
 
14.10.11
15:01
Программно формировать текст запроса в цикле перебирая метаданные
3 Defender aka LINN
 
14.10.11
15:02
Поле.Ссылка есть NULL
4 Amiralnar
 
14.10.11
15:03
(3) На прошлой неделе выясняли. NULL - когда в соединении дырка.
5 НЕА123
 
14.10.11
15:08
(0)
ты это... того... не читай (4). ПЯТНИЦА (с)

(3)+1
6 Morphius
 
14.10.11
15:09
(2) Самый лучший совет! Это по нашему!
7 Ненавижу 1С
 
гуру
14.10.11
15:09
это моя ветка?
8 napagokc
 
14.10.11
15:11
Сделал НЕОПРЕДЕЛЕНО. Вроде, работает. Спасибо большое
9 Defender aka LINN
 
14.10.11
15:12
(4) и чО?
10 napagokc
 
14.10.11
15:12
(5) А Неопределено - не правильно, что ли? О_О
11 НЕА123
 
14.10.11
15:14
(10)
пустая ссылка на док не равно НЕОПРЕДЕЛЕНО. делай (3).
12 napagokc
 
14.10.11
15:17
(11) дело в том, что у меня с "Неопределено" запрос нормально отработал, а с NULL нет... Может у меня в справочнике после того, как ссылки исчезли, они стали именно Неопределено, а не пустыми...? Такое может быть?
13 Mort
 
14.10.11
15:18
Будь мужиком делай как в (3) Блеать!
14 Ненавижу 1С
 
гуру
14.10.11
15:19
(12) гы-гы
15 НЕА123
 
14.10.11
15:22
битые ссылки?
16 Ненавижу 1С
 
гуру
14.10.11
15:22
ПЯТНИЦА!
17 napagokc
 
14.10.11
15:24
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    Партия.ДокументПрихода.Ссылка КАК ДокПрих
|ИЗ
|    Справочник.Партии КАК Партия
|ГДЕ
|    Партия.ДокументПрихода.Ссылка <> &Пусто";
Запрос.УстановитьПараметр("Пусто", Неопределено);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Сообщить(""+Выборка.ДокПрих);


Так сообщение выдается. Если заменить на NULL - просто игнорится. Хватит смеяться, объясните, что не так =)
18 НЕА123
 
14.10.11
15:27
(17)
не, мы конечно все понимаем, но...
условие скопируй из (3)
19 Irbis
 
14.10.11
15:29
|ГДЕ Регистратор.Ссылка ЕСТЬ NULL И НЕ Регистратор = &ПустаяСсылкаДокумента");
   Запрос.УстановитьПараметр("ПустаяСсылкаДокумента",Неопределено);
20 НЕА123
 
14.10.11
15:32
(19)
не путайте ТС! ежели на битые, то там надо еще (2).
21 napagokc
 
14.10.11
15:34
(20) То есть, все равно дважды придется проверять - сначала запросом отсеивать, а потом еще в цикле делать проверку? Или я не так понял?
22 napagokc
 
14.10.11
15:37
ладно, буду постепенно выправлять. Может и не надо суперумную обработку писать. Вполне возможно, что там все очень просто. Всем спасибо.
PS: запрос исправил на ЕСТЬ NULL ;)
23 НЕА123
 
14.10.11
15:38
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    Партия.ДокументПрихода КАК ДокПрих
|ИЗ
|    Справочник.Партии КАК Партия
|ГДЕ
|    Регистратор.Ссылка ЕСТЬ NULL";
Запрос.УстановитьПараметр("Пусто", Неопределено);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Сообщить(""+Выборка.ДокПрих);
24 Irbis
 
14.10.11
15:39
(20) У меня именно так и ищутся "битые" ссылки
25 НЕА123
 
14.10.11
15:41
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    Партия.ДокументПрихода КАК ДокПрих,
|    Партия.Регистратор КАК Рег
|ИЗ
|    Справочник.Партии КАК Партия
|ГДЕ
|    Регистратор.Ссылка ЕСТЬ NULL";
Запрос.УстановитьПараметр("Пусто", Неопределено);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Сообщить("Рег = "+Выборка.Рег+" "Док = " +Выборка.ДокПрих);

ИБО ссылка не регистратор м.б. и не пустой, а битой.
26 НЕА123
 
14.10.11
15:44
*ссылка не регистратор = ссылка нА регистратор

(24)
да, можно, но если в общем случае, то надо (2).
ну если 1 регистратор то НЕОПРЕДЕЛЕНО не будет.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.