![]() |
![]() |
![]() |
|
Как выбрать запросом документы которые проведены, а движений у них нет? | ☑ | ||
---|---|---|---|---|
0
antidot
07.09.09
✎
09:49
|
Как выбрать запросом документы которые проведены, а движений у них нет?
|
|||
1
shuhard
07.09.09
✎
09:50
|
(0) налево + Есть NULL
|
|||
2
antidot
07.09.09
✎
09:53
|
(1)-Что есть НУЛЛ ?
|
|||
3
Nurik87
07.09.09
✎
09:53
|
Может проведен = истина
|
|||
4
Point
07.09.09
✎
09:53
|
ССылкаДокумента в регистре ЕСТЬ NULL
|
|||
5
antidot
07.09.09
✎
09:53
|
(3)-Ну проведен, то "истина"-воистину :)
|
|||
6
antidot
07.09.09
✎
09:54
|
(4)-вот вот, кроме как соединить с регистром... правда по какому признаку ?
Скорее уж не ВСписке регистраторов, что-то в этом роде |
|||
7
Point
07.09.09
✎
09:55
|
Левое соединение
|
|||
8
Point
07.09.09
✎
09:55
|
(7) + скорее всего правое )
|
|||
9
antidot
07.09.09
✎
09:56
|
(7)-с кем-чем соединять-то ?
|
|||
10
Mitriy
07.09.09
✎
09:57
|
плюнь, а то запутаешься...
|
|||
11
Irbis
07.09.09
✎
09:57
|
(7) А не пох какое соединение?
|
|||
12
Ненавижу 1С
гуру
07.09.09
✎
09:58
|
(9) таблицу документов соединяй слева с регистром по ссылке и регистратору
условия: Проведен и Регистратор ЕСТЬ NULL |
|||
13
Point
07.09.09
✎
09:58
|
Как то так:
"ВЫБРАТЬ | РасходнаяНакладная.Ссылка |ИЗ | Документ.РасходнаяНакладная КАК РасходнаяНакладная | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваров КАК ПартииТоваров | ПО РасходнаяНакладная.Ссылка = ПартииТоваров.Регистратор | И (ПартииТоваров.Регистратор ЕСТЬ NULL ) | И (РасходнаяНакладная.Проведен = ИСТИНА)" |
|||
14
Aloex
07.09.09
✎
09:58
|
(0) Запрос к регистру бухгалтерии, по которому он делает движение. с указанием текущего регистратора(документа).
|
|||
15
antidot
07.09.09
✎
10:00
|
(13)-эээээ, а откуда в регистре регистраторы для соединения ?
|
|||
16
Point
07.09.09
✎
10:01
|
Ты логику смотри, а не вопросы задавай ))
|
|||
17
antidot
07.09.09
✎
10:02
|
ПО РасходнаяНакладная.Ссылка = ПартииТоваров.Регистратор
Вызывает определенное недоумение |
|||
18
Ненавижу 1С
гуру
07.09.09
✎
10:02
|
(15) а не должно быть?
|
|||
19
Ненавижу 1С
гуру
07.09.09
✎
10:02
|
(17) тогда читай буквари
|
|||
20
shuhard
07.09.09
✎
10:03
|
(17) а стоит ли с бодуна садиться за 1С ?
|
|||
21
Mitriy
07.09.09
✎
10:04
|
(17)+ Где ПартииТоваров.Регистратор Есть Null
|
|||
22
skunk
07.09.09
✎
10:05
|
(13)а что документ делает движуху только по одному регистру?
|
|||
23
vet7777
07.09.09
✎
10:05
|
пример запроса в типовой торговле:
ВЫБРАТЬ КорректировкаДолга.Ссылка Док ИЗ Документ.КорректировкаДолга КАК КорректировкаДолга ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НДСРасчетыСПокупателями КАК НДСРасчетыСПокупателями ПО НДСРасчетыСПокупателями.Регистратор = КорректировкаДолга.Ссылка ГДЕ НДСРасчетыСПокупателями.Регистратор ЕСТЬ NULL И КорректировкаДолга.Проведен |
|||
24
Ненавижу 1С
гуру
07.09.09
✎
10:06
|
(22) а что надо было здесь все расписать или дать автору право додумать?
|
|||
25
skunk
07.09.09
✎
10:07
|
(24)тупой вариант может просто не стоит предлагать?
|
|||
26
Ненавижу 1С
гуру
07.09.09
✎
10:08
|
(25) обоснуй, что он тупой, предложи лучше
|
|||
27
Point
07.09.09
✎
10:09
|
(25) спасибо, порадовал на весь оставшийся день
|
|||
28
antidot
07.09.09
✎
10:09
|
(27)-Щас протестирую
|
|||
29
shuhard
07.09.09
✎
10:09
|
(25) чем тупой ?
если регистров не один свяжет с каждым налево или Объединить все |
|||
30
Point
07.09.09
✎
10:09
|
(23) условия лучше не спускать, а использовать в соединении - запрос будет быстрее выполнятся
|
|||
31
skunk
07.09.09
✎
10:10
|
(26)прочитай условие в (0) ... и хорошо подумай, что надо сделать
|
|||
32
Ненавижу 1С
гуру
07.09.09
✎
10:11
|
(31) и что там такого?
|
|||
33
Point
07.09.09
✎
10:11
|
(31) а что так сложно еще одно ЛЕвое присобачить )
|
|||
34
Лефмихалыч
07.09.09
✎
10:12
|
(0) на собеседование сходил?
|
|||
35
antidot
07.09.09
✎
10:15
|
(34)-по работе надо.
|
|||
36
skunk
07.09.09
✎
10:15
|
ребята не тупим ... надо выбрать ВСЕ документы у которых нет движения
|
|||
37
antidot
07.09.09
✎
10:15
|
(34)-кстати очень похоже на ту хрню, подобную которой на собеседовах спрашивают.
|
|||
38
antidot
07.09.09
✎
10:16
|
(36)-Ну если ВСЕ, то надо от регистратора плясать, но как раз дело в том, что нет регистратора- движений-то нет :)
|
|||
39
Ненавижу 1С
гуру
07.09.09
✎
10:16
|
(36) сам не тупи, тебе ж сказали, это фрагмент
дальше - больше |
|||
40
Ненавижу 1С
гуру
07.09.09
✎
10:17
|
(38) дятел птица гордая?
|
|||
41
Ненавижу 1С
гуру
07.09.09
✎
10:18
|
+(40) хотя если человек понимает смысл "что нито"
|
|||
42
Point
07.09.09
✎
10:18
|
(38)как это у регистра в котором движения нет регистратора
|
|||
43
antidot
07.09.09
✎
10:28
|
ВЫБРАТЬ
Документики.Ссылка ИЗ (ВЫБРАТЬ ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка КАК Ссылка ИЗ Документ.ПлатежныйОрдерСписаниеДенежныхСредств КАК ПлатежныйОрдерСписаниеДенежныхСредств ГДЕ ПлатежныйОрдерСписаниеДенежныхСредств.Проведен = ИСТИНА И ПлатежныйОрдерСписаниеДенежныхСредств.Дата МЕЖДУ &НачДата И &КонДата) КАК Документики ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ДвиженияДенежныхСредствОбороты.Регистратор КАК Регистратор ИЗ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&НачДата, &НачДата, Регистратор, ) КАК ДвиженияДенежныхСредствОбороты) КАК Движуха ПО Документики.Ссылка = Движуха.Регистратор ГДЕ Движуха.Регистратор ЕСТЬ NULL Не работает. |
|||
44
y22-k
07.09.09
✎
10:35
|
(0)
http://infostart.ru/projects/3738/ посмотри эту обработку я писал недавно, там есть косячки, но работает) сегодня еще перезалью новую, которая ищет пустые по регистру партии товаров на складах |
|||
45
Point
07.09.09
✎
10:39
|
ВЫБРАТЬ
Документики.Ссылка ИЗ ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка КАК Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ДвиженияДенежныхСредствОбороты.Обороты(&НачДата, &НачДата, Регистратор, ) КАК Регистратор ПО Документики.Ссылка = ДвиженияДенежныхСредствОбороты.Регистратор И ДвиженияДенежныхСредствОбороты.Регистратор ЕСТЬ NULL И Документики.Проведен = ИСТИНА И Документики.Ссылка ССЫЛКА Документ.ПлатежныйОрдерСписаниеДенежныхСредств Как то так, хотя могут быть ошибки |
|||
46
Point
07.09.09
✎
10:40
|
(45) хотя виртуальную таблицу оборотов можно и не юзать, можно все к основной сделать
|
|||
47
vet7777
07.09.09
✎
10:42
|
а так?
ВЫБРАТЬ Док.Ссылка КАК Ссылка ИЗ Документ.ПлатежныйОрдерСписаниеДенежныхСредств КАК Док ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств КАК Рег ПО Рег.Регистратор = Док.Ссылка И Рег.Период МЕЖДУ &НачДата И &КонДата ГДЕ Док.Проведен И Док.Дата МЕЖДУ &НачДата И &КонДата И Рег.Регистратор ЕСТЬ NULL |
|||
48
Point
07.09.09
✎
10:42
|
(45)+ Есть ошибки связанные с псевдонимами
|
|||
49
Point
07.09.09
✎
10:43
|
(47) опередил )
|
|||
50
Point
07.09.09
✎
10:44
|
(47)+ не спускайте вы условия вниз, используйте их в соединении - работает быстрее. Проверено!
|
|||
51
vet7777
07.09.09
✎
10:49
|
(50) если проверку проведения закинуть вверх, то в выборку попадут все документы, в том числе не проведенные, тут же не внутреннее соединение
|
|||
52
vet7777
07.09.09
✎
10:49
|
(50) + прежде чем советовать проверь свои слова в консоле )
|
|||
53
antidot
07.09.09
✎
10:56
|
ВЫБРАТЬ
ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка, ВыборкаДокументов.Регистратор ИЗ Документ.ПлатежныйОрдерСписаниеДенежныхСредств КАК ПлатежныйОрдерСписаниеДенежныхСредств, ВыборкаДокументов КАК ВыборкаДокументов ГДЕ ПлатежныйОрдерСписаниеДенежныхСредств.Проведен = ИСТИНА И ПлатежныйОрдерСписаниеДенежныхСредств.Дата МЕЖДУ &НачДата И &КонДата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДенежныеСредстваКСписаниюОбороты.Регистратор ПОМЕСТИТЬ ВыборкаДокументов ИЗ РегистрНакопления.ДенежныеСредстваКСписанию.Обороты(&НачДата, &КонДата, Регистратор, ) КАК ДенежныеСредстваКСписаниюОбороты Никак не соображу, какое тут должно быть соединение. |
|||
54
antidot
07.09.09
✎
10:56
|
(53)-или какой то аналог НЕ В (чего-то там)
|
|||
55
Odin1C
07.09.09
✎
11:01
|
(0) выбрать все документы из таблицы документа, на закладке условия добавить условие "ГДЕ Не ССЫЛКА В (выбрать различные регистратор из Имярегистра) И Проведен"
|
|||
56
antidot
07.09.09
✎
11:05
|
ВЫБРАТЬ
ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка ИЗ Документ.ПлатежныйОрдерСписаниеДенежныхСредств КАК ПлатежныйОрдерСписаниеДенежныхСредств ГДЕ ПлатежныйОрдерСписаниеДенежныхСредств.Проведен = ИСТИНА И ПлатежныйОрдерСписаниеДенежныхСредств.Дата МЕЖДУ &НачДата И &КонДата И (НЕ ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка В (ВЫБРАТЬ ВыборкаДокументов.Регистратор ИЗ ВыборкаДокументов)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДенежныеСредстваКСписаниюОбороты.Регистратор ПОМЕСТИТЬ ВыборкаДокументов ИЗ РегистрНакопления.ДенежныеСредстваКСписанию.Обороты(&НачДата, &КонДата, Регистратор, ) КАК ДенежныеСредстваКСписаниюОбороты Пишет что таблица не найдена |
|||
57
Point
07.09.09
✎
11:10
|
(56) найди того кто это сделает и заплати ему (только не говори об этом никому)
|
|||
58
Point
07.09.09
✎
11:11
|
(57)+ а по сделаному потом изучай "что к чему"
|
|||
59
1СCовец
07.09.09
✎
11:16
|
(55) а ты сам это пробовал? количество записей в результате запроса будет равно количество документов*количество не равных ему регистраторов
|
|||
60
hhhh
07.09.09
✎
11:28
|
(15) Возьми из типовой. Например в БП, посмотри процедуру
ОпределитьНаличиеДвиженийПоРегистратору. |
|||
61
antidot
07.09.09
✎
11:38
|
Ладно, как поправить, чтоб вот это работало. Запрос конструктором открывается, но при исполнении выдает ошибку.
|
|||
62
antidot
07.09.09
✎
11:39
|
ВЫБРАТЬ
ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка ИЗ Документ.ПлатежныйОрдерСписаниеДенежныхСредств КАК ПлатежныйОрдерСписаниеДенежныхСредств ГДЕ ПлатежныйОрдерСписаниеДенежныхСредств.Проведен = ИСТИНА И ПлатежныйОрдерСписаниеДенежныхСредств.Дата МЕЖДУ &НачДата И &КонДата И (НЕ ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка В (ВЫБРАТЬ ВыборкаДокументов.ДокументРегистратор ИЗ ВыборкаДокументов)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ДенежныеСредстваКСписаниюОбороты.Регистратор КАК ДокумВЫБРАТЬ ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка ИЗ Документ.ПлатежныйОрдерСписаниеДенежныхСредств КАК ПлатежныйОрдерСписаниеДенежныхСредств ГДЕ ПлатежныйОрдерСписаниеДенежныхСредств.Проведен = ИСТИНА И ПлатежныйОрдерСписаниеДенежныхСредств.Дата МЕЖДУ &НачДата И &КонДата И (НЕ ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка В (&ячсячс))ентРегистратор ПОМЕСТИТЬ ВыборкаДокументов ИЗ РегистрНакопления.ДенежныеСредстваКСписанию.Обороты(&НачДата, &КонДата, Регистратор, ) КАК ДенежныеСредстваКСписаниюОбороты |
|||
63
antidot
07.09.09
✎
11:57
|
ап
|
|||
64
vet7777
07.09.09
✎
12:04
|
мда, одно из двух - автор мазохист или просто тупит...
|
|||
65
antidot
07.09.09
✎
12:05
|
ну у меня вложенным запросов- выходит, а таблицей временной-нет
|
|||
66
antidot
07.09.09
✎
12:06
|
ВЫБРАТЬ
ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка ИЗ Документ.ПлатежныйОрдерСписаниеДенежныхСредств КАК ПлатежныйОрдерСписаниеДенежныхСредств ГДЕ ПлатежныйОрдерСписаниеДенежныхСредств.Проведен = ИСТИНА И ПлатежныйОрдерСписаниеДенежныхСредств.Дата МЕЖДУ &НачДата И &КонДата И (НЕ ПлатежныйОрдерСписаниеДенежныхСредств.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ДенежныеСредстваКСписаниюОбороты.Регистратор КАК ДокументРегистратор ИЗ РегистрНакопления.ДенежныеСредстваКСписанию.Обороты(&НачДата, &КонДата, Регистратор, ) КАК ДенежныеСредстваКСписаниюОбороты)) //////////// Вот это работает |
|||
67
vet7777
07.09.09
✎
12:06
|
ты сильнее тужься, чаша то и выйдет )
|
|||
68
vet7777
07.09.09
✎
12:07
|
чем тебя ответы не устроили?
|
|||
69
Asirius
07.09.09
✎
12:10
|
Я бы делал так: Во временную таблицу помещваем все проведенные документы и колонку "КоличествоДвижений", заполненное единицами. Факт проведения будем воспринимать тоже как движение.
Запрос к регистру через объединение и группировку с сумированием по "КоличествоДвижений". Т.о. делаем серию запросов по порядку ко всем регистрам и на выходе имеем временную таблицу со всеми документами и количеством их движений. Нас интересуют документы, у которых только одно движение. |
|||
70
antidot
07.09.09
✎
12:17
|
(69)-да, блин... надо заставить запрос работать с временной таблицей, а я чет подтупливаю как
|
|||
71
vet7777
07.09.09
✎
12:19
|
зачем тебе через временную таблицу, если без нее можно обойтись?
|
|||
72
vet7777
07.09.09
✎
12:21
|
скажи чем тебя (47) не устроил?
|
|||
73
antidot
07.09.09
✎
12:25
|
(71)-не люблю, когда не получается чего-то
(66)-работает. |
|||
74
marvak
07.09.09
✎
12:27
|
(0) Дык а не проще выбрать из регистра те строки у которых Не Регистратор.Проведен?
|
|||
75
y22-k
07.09.09
✎
12:40
|
(75) документа в регистре то нет, ты не понимаешь?)
|
|||
76
vet7777
07.09.09
✎
12:45
|
Кесарю кесарево, а дротику .... )
с ним бесполезно говорить, он пишет сам себе, остальных отфильтровывает ))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |