![]() |
|
Найдите мне ошибку в запросе? | ☑ | ||||||
---|---|---|---|---|---|---|---|---|
0
Мисти
13.05.15
✎
17:57
|
Писала не я! Суть в том, что в таблице (в отладчике в запроснике смотрела)ВТ_ВыборкаБезНДС данные верные, а в итоге - 1 сумма попадает - там в одном поступлении совпадает сумма и договор, если сумму изменить (стоб они разные были), то в выборку попадает всё. Не вижу я такого места, чтоб по сумме что-то склеивалось!
|
|||||||
1
Мисти
13.05.15
✎
17:57
|
ВЫБРАТЬ
ХозрасчетныйОборотыДтКт.Регистратор КАК Документ, ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Контрагент, ХозрасчетныйОборотыДтКт.СубконтоКт2 КАК Договор, ХозрасчетныйОборотыДтКт.Регистратор.НомерВходящегоДокумента КАК НомерДокумента, ХозрасчетныйОборотыДтКт.Регистратор.ДатаВходящегоДокумента КАК ДатаДокумента, ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма, ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.Регистратор.НазначениеПлатежа КАК СТРОКА(1000)) КАК НазначениеПлатежа, ХозрасчетныйОборотыДтКт.СубконтоКт3 ПОМЕСТИТЬ ВТ_ВыборкаПоДокументам ИЗ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт( &НачалоПериода, &КонецПериода, Регистратор, СчетДт = &Счет51, , СчетКт = &Счет6204 ИЛИ СчетКт = &ДопСчет, , ) КАК ХозрасчетныйОборотыДтКт ГДЕ ХозрасчетныйОборотыДтКт.Регистратор ССЫЛКА Документ.ПоступлениеНаРасчетныйСчет И ХозрасчетныйОборотыДтКт.Регистратор.Организация = &Организация ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ХозрасчетныйОборотыДтКт.Регистратор, ХозрасчетныйОборотыДтКт.СубконтоКт1, ХозрасчетныйОборотыДтКт.СубконтоКт2, ХозрасчетныйОборотыДтКт.Регистратор.Номер, ХозрасчетныйОборотыДтКт.Регистратор.Дата, ХозрасчетныйОборотыДтКт.СуммаОборот, ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.Регистратор.Основание КАК СТРОКА(1000)), ХозрасчетныйОборотыДтКт.СубконтоКт3 ИЗ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт( &НачалоПериода, &КонецПериода, Регистратор, СчетДт = &Счет50, , СчетКт = &Счет6204 ИЛИ СчетКт = &ДопСчет, , ) КАК ХозрасчетныйОборотыДтКт ГДЕ ХозрасчетныйОборотыДтКт.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер И ХозрасчетныйОборотыДтКт.Регистратор.Организация = &Организация ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ХозрасчетныйОборотыДтКт.Регистратор, ХозрасчетныйОборотыДтКт.СубконтоКт1, ХозрасчетныйОборотыДтКт.СубконтоКт2, ХозрасчетныйОборотыДтКт.Регистратор.Номер, ХозрасчетныйОборотыДтКт.Регистратор.Дата, ХозрасчетныйОборотыДтКт.СуммаОборот, "", ХозрасчетныйОборотыДтКт.СубконтоКт3 ИЗ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, Регистратор, СчетДт = &Счет7609, , СчетКт = &Счет6204, , ) КАК ХозрасчетныйОборотыДтКт ГДЕ ХозрасчетныйОборотыДтКт.Регистратор ССЫЛКА Документ.КорректировкаДолга И ХозрасчетныйОборотыДтКт.Регистратор.Организация = &Организация И ХозрасчетныйОборотыДтКт.Регистратор.АР_УсловияКорректировкиДолга = ЗНАЧЕНИЕ(Перечисление.АР_УсловияКорректировкиДолга.УчитыватьВСтрокеПоступилоВОплату) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ АР_ЗаключениеДоговораАренды.Ссылка КАК Регистратор, АР_ЗаключениеДоговораАренды.Дата КАК Период, АР_ЗаключениеДоговораАренды.ДоговорКонтрагента КАК Договор, АР_ЗаключениеДоговораАренды.Собственник, ВТ_ВыборкаПоДокументам.Документ.Дата КАК ДатаСреза ПОМЕСТИТЬ ВТ_ДокументыЗаключения ИЗ ВТ_ВыборкаПоДокументам КАК ВТ_ВыборкаПоДокументам ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АР_ЗаключениеДоговораАренды КАК АР_ЗаключениеДоговораАренды ПО ВТ_ВыборкаПоДокументам.Договор = АР_ЗаключениеДоговораАренды.ДоговорКонтрагента ГДЕ АР_ЗаключениеДоговораАренды.Проведен ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РАЗЛИЧНЫЕ АР_ДополнительноеСоглашение.Ссылка, АР_ДополнительноеСоглашение.Дата, АР_ДополнительноеСоглашение.ДоговорКонтрагента, АР_ДополнительноеСоглашение.Собственник, ВТ_ВыборкаПоДокументам.Документ.Дата ИЗ ВТ_ВыборкаПоДокументам КАК ВТ_ВыборкаПоДокументам ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АР_ДополнительноеСоглашение КАК АР_ДополнительноеСоглашение ПО ВТ_ВыборкаПоДокументам.Договор = АР_ДополнительноеСоглашение.ДоговорКонтрагента ГДЕ АР_ДополнительноеСоглашение.Проведен ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ВТ_ДокументыЗаключенияОграничение.Период) КАК Период1, ВТ_ДокументыЗаключенияОграничение.Договор ПОМЕСТИТЬ ВТ_ОпределениеСобственникаМаксимумПоПериоду ИЗ ВТ_ДокументыЗаключения КАК ВТ_ДокументыЗаключенияОграничение ГДЕ ВТ_ДокументыЗаключенияОграничение.Период <= ВТ_ДокументыЗаключенияОграничение.ДатаСреза СГРУППИРОВАТЬ ПО ВТ_ДокументыЗаключенияОграничение.Договор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ДокументыЗаключения.Договор, ВТ_ДокументыЗаключения.Собственник ПОМЕСТИТЬ ВТ_Собственники ИЗ ВТ_ДокументыЗаключения КАК ВТ_ДокументыЗаключения ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ОпределениеСобственникаМаксимумПоПериоду КАК ВТ_ОпределениеСобственникаМаксимумПоПериоду ПО ВТ_ДокументыЗаключения.Договор = ВТ_ОпределениеСобственникаМаксимумПоПериоду.Договор И ВТ_ДокументыЗаключения.Период = ВТ_ОпределениеСобственникаМаксимумПоПериоду.Период1 СГРУППИРОВАТЬ ПО ВТ_ДокументыЗаключения.Договор, ВТ_ДокументыЗаключения.Собственник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ВыборкаПоДокументам.Документ, ВТ_ВыборкаПоДокументам.Контрагент, ВТ_ВыборкаПоДокументам.Договор, ВТ_ВыборкаПоДокументам.НомерДокумента, ВТ_ВыборкаПоДокументам.ДатаДокумента, ВТ_ВыборкаПоДокументам.Сумма, ВТ_ВыборкаПоДокументам.НазначениеПлатежа ПОМЕСТИТЬ ВТ_ВыборкаБезНДС ИЗ ВТ_ВыборкаПоДокументам КАК ВТ_ВыборкаПоДокументам ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Собственники КАК ВТ_Собственники ПО ВТ_ВыборкаПоДокументам.Договор = ВТ_Собственники.Договор ГДЕ ВТ_Собственники.Собственник = &Собственник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ВыборкаБезНДС.Документ, ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.СтавкаНДС ПОМЕСТИТЬ ВТ_СтавкиНДС ИЗ ВТ_ВыборкаБезНДС КАК ВТ_ВыборкаБезНДС ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеНаРасчетныйСчет.РасшифровкаПлатежа КАК ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа ПО ВТ_ВыборкаБезНДС.Документ = ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.Ссылка СГРУППИРОВАТЬ ПО ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.СтавкаНДС, ВТ_ВыборкаБезНДС.Документ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВТ_ВыборкаБезНДС.Документ, ПриходныйКассовыйОрдерРасшифровкаПлатежа.СтавкаНДС ИЗ ВТ_ВыборкаБезНДС КАК ВТ_ВыборкаБезНДС ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдерРасшифровкаПлатежа ПО ВТ_ВыборкаБезНДС.Документ = ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка СГРУППИРОВАТЬ ПО ВТ_ВыборкаБезНДС.Документ, ПриходныйКассовыйОрдерРасшифровкаПлатежа.СтавкаНДС ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВТ_ВыборкаБезНДС.Документ, КорректировкаДолгаСуммыДолга.СтавкаНДС ИЗ ВТ_ВыборкаБезНДС КАК ВТ_ВыборкаБезНДС ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.КорректировкаДолга.СуммыДолга КАК КорректировкаДолгаСуммыДолга ПО ВТ_ВыборкаБезНДС.Документ = КорректировкаДолгаСуммыДолга.Ссылка СГРУППИРОВАТЬ ПО ВТ_ВыборкаБезНДС.Документ, КорректировкаДолгаСуммыДолга.СтавкаНДС ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_СтавкиНДС.Документ, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_СтавкиНДС.СтавкаНДС) КАК СтавкаНДС ПОМЕСТИТЬ ВТ_СтавкиНДСБезДублей ИЗ ВТ_СтавкиНДС КАК ВТ_СтавкиНДС СГРУППИРОВАТЬ ПО ВТ_СтавкиНДС.Документ ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_СтавкиНДС.СтавкаНДС) = 1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ВыборкаБезНДС.Документ, ВТ_ВыборкаБезНДС.Контрагент, ВТ_ВыборкаБезНДС.Договор, ВТ_ВыборкаБезНДС.НомерДокумента, ВТ_ВыборкаБезНДС.ДатаДокумента, ВТ_ВыборкаБезНДС.Сумма, ВТ_СтавкиНДС.СтавкаНДС, ВТ_ВыборкаБезНДС.НазначениеПлатежа ИЗ ВТ_ВыборкаБезНДС КАК ВТ_ВыборкаБезНДС ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СтавкиНДС КАК ВТ_СтавкиНДС ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СтавкиНДСБезДублей КАК ВТ_СтавкиНДСБезДублей ПО ВТ_СтавкиНДС.Документ = ВТ_СтавкиНДСБезДублей.Документ ПО ВТ_ВыборкаБезНДС.Документ = ВТ_СтавкиНДС.Документ СГРУППИРОВАТЬ ПО ВТ_СтавкиНДС.СтавкаНДС, ВТ_ВыборкаБезНДС.Документ, ВТ_ВыборкаБезНДС.Контрагент, ВТ_ВыборкаБезНДС.Договор, ВТ_ВыборкаБезНДС.НомерДокумента, ВТ_ВыборкаБезНДС.ДатаДокумента, ВТ_ВыборкаБезНДС.Сумма, ВТ_ВыборкаБезНДС.НазначениеПлатежа УПОРЯДОЧИТЬ ПО ВТ_ВыборкаБезНДС.ДатаДокумента |
|||||||
2
mistеr
13.05.15
✎
18:02
|
Купите мне Феррари.
|
|||||||
3
mistеr
13.05.15
✎
18:03
|
Плачу не я!
|
|||||||
4
Мисти
13.05.15
✎
18:03
|
Знаю, есть специалисты, которые прекрасно просто глазами видят такую ошибку.
|
|||||||
5
mistеr
13.05.15
✎
18:05
|
СГРУППИРОВАТЬ ПО
... ВТ_ВыборкаБезНДС.Сумма, |
|||||||
6
Мисти
13.05.15
✎
18:09
|
А тогда сложилось бы, наверное?
Ну а куда ее сунуть? Просто убрать нельзя! |
|||||||
7
Мисти
13.05.15
✎
18:12
|
Если по ней суммировать, то складываются даже разные суммы, а мне нужно, чтоб все были отдельно.
|
|||||||
8
mistеr
13.05.15
✎
18:18
|
(6) Сложилось бы, если бы была СУММА()
Куда сунуть, я не знаю. Я не понимаю общего смысла запроса. |
|||||||
9
Мисти
13.05.15
✎
18:23
|
ВТ_ВыборкаБезНДС - там всё, что нужно, кроме ставки НДС. Ставка НДС как-то хитро прицепляется в конце, для этого даже специальный регистр разработчики заводили. Иногда она всё равно цепляется криво и в это время теряется одинаковая сумма.
Если б я понимала досконально смысл запроса, я бы сама придумала, как поправить. |
|||||||
10
Мисти
13.05.15
✎
19:05
|
В запросе сначала находятся все строки (11 штук в примере), потом при объединении с результатом запроса по ставкам НДС (8 штук по числу документов "поступ. на р/с" в примере) - теряются строки с одинаковыми суммами.
Почему?? |
|||||||
11
lera01
13.05.15
✎
19:16
|
Сгруппировались же!
|
|||||||
12
Drac0
13.05.15
✎
19:19
|
(10) Эту группировку можно заменить на РАЗЛИЧНЫЕ. Именно различные строки она и отбирает.
|
|||||||
13
GROOVY
13.05.15
✎
19:29
|
За "Регистратор.Чтото" без типизации надо яйца отрывать.
|
|||||||
14
XLife
13.05.15
✎
20:05
|
(13) в данном случае надо пришить))
|
|||||||
15
wertyu
13.05.15
✎
20:08
|
(14) надо бы голосовалку )
|
|||||||
16
GROOVY
13.05.15
✎
20:11
|
Да и за обращение к регистраторам в виртуальных таблицах, я бы тоже задумался о членовредительстве автора.
|
|||||||
17
wertyu
13.05.15
✎
20:20
|
(16) а разве в бухии нет регистров НДС, чтобы по ним такие запросы можно было сделать?
|
|||||||
18
RomanYS
13.05.15
✎
20:22
|
(16) а как иначе получить субконто и регистратор в одном запросе? или (16) к данному конкретному случаю относится
|
|||||||
19
GROOVY
13.05.15
✎
20:29
|
(18) Есть движения с субконто.
|
|||||||
20
Мисти
13.05.15
✎
20:34
|
Это не мой запрос! И я не хочу его сильно менять, всё работает уже год, всё находится, кроме вот этого странного случая.
(19) А как тогда в запросе посмотреть регистратор? |
|||||||
21
Мисти
13.05.15
✎
20:35
|
Так как выкинуть сумму из группировки?
Или не в этом дело? |
|||||||
22
Мисти
13.05.15
✎
20:36
|
Если суммы поставить в суммируемое поле "количество различных" - так тем более одинаковые суммы склеятся, разве нет?
|
|||||||
23
Мисти
13.05.15
✎
20:42
|
Короче, уберу я эту историю со ставками НДС, всё равно она неправильно работает - если ставки разные, то вообще никакие не выдает.
|
|||||||
24
wertyu
13.05.15
✎
20:46
|
(23)
ВЫБРАТЬ ВТ_СтавкиНДС.Документ, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_СтавкиНДС.СтавкаНДС) КАК СтавкаНДС ПОМЕСТИТЬ ВТ_СтавкиНДСБезДублей ИЗ ВТ_СтавкиНДС КАК ВТ_СтавкиНДС СГРУППИРОВАТЬ ПО ВТ_СтавкиНДС.Документ ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_СтавкиНДС.СтавкаНДС) = 1 ; бестолковая штука, которая получает список документов, у которых в ТЧ только один вид ставки НДС |
|||||||
25
Мисти
13.05.15
✎
20:50
|
(24) Ага.
|
|||||||
26
RomanYS
13.05.15
✎
20:50
|
(19) так она тоже виртуальная, и ИМХО потормознее будет
|
|||||||
27
GROOVY
13.05.15
✎
20:53
|
(26) Так там одно соединение, по трем полям, а как ОборотыДтКт считаются?
(20) Если нужен регистратор - значит регистр спроектирован не верно. |
|||||||
28
wertyu
13.05.15
✎
20:56
|
(25) и надо сразу ограничить по последнему собственнику, т.е. выборку по регистру бухии надо делать после получения доков по собственнику
|
|||||||
29
AlexITGround
13.05.15
✎
20:56
|
Здесь только один возможный вариант.
Пришить |
|||||||
30
Мисти
13.05.15
✎
20:59
|
(28) Ну и фик с ним.
(27) А как иначе найти документ, который сделал движение? |
|||||||
31
wertyu
13.05.15
✎
21:01
|
(30).1 там надо просто местами создание ВТ
|
|||||||
32
GROOVY
13.05.15
✎
21:01
|
(30) Я понимаю, что вы работаете с типовыми, и понимаю с чем приходится сталкиваться, но если нужно отловить оборот в разрезе регистратора, то должен быть регистр, где есть соответствующий разрез.
|
|||||||
33
wertyu
13.05.15
✎
21:01
|
+(31) поменять
|
|||||||
34
Torquader
13.05.15
✎
21:02
|
Мне кажется, что сначала с позором пришить, потом с ещё большим позором оторвать.
Может быть, после этого автор будет сам писать запросы, а не задавать глупые вопросы. |
|||||||
35
AlexITGround
13.05.15
✎
21:08
|
(34)
"Мы все учились понемногу, Чему-нибудь и как-нибудь, Так воспитаньем, слава Богу, У нас немудрено блеснуть." (с) |
|||||||
36
Torquader
13.05.15
✎
21:09
|
(0) Чудо!
Убери группировку в последнем запросе и посмотри, что получается. Просто, если две одинаковые записи по всем полям, то группировка от них оставляет только одну. |
|||||||
37
Мисти
13.05.15
✎
21:10
|
(33) Я не поняла! Как надо сделать? И решатся обе проблемы?
Пока я решила эту ерунду со ставками ндс выкинуть и искать их без запроса. (34) Ну ничего себе! Они миллион заплатили за всю эту красоту, а я теперь всё буду переделывать? Нет уж, я по краешку... |
|||||||
38
Мисти
13.05.15
✎
21:11
|
(36) А я не могу убрать группировку - мне кажется, я тогда вообще ничего не получу.
|
|||||||
39
zak555
13.05.15
✎
21:14
|
нахрена вот это :
ГДЕ ХозрасчетныйОборотыДтКт.Регистратор ССЫЛКА Документ.ПоступлениеНаРасчетныйСчет ????????????????????????? а как же бух операции ? |
|||||||
40
Мисти
13.05.15
✎
21:15
|
Бух. операций нет. Есть строго 3 вида документов, все они перечислены.
|
|||||||
41
zak555
13.05.15
✎
21:16
|
(40) неправильная логика -- в бп можно любую операцию описать с помощью бух справки
|
|||||||
42
Torquader
13.05.15
✎
21:16
|
(40) Чудо!
Давай рассказывай, что мы хотим получить этим запросом. |
|||||||
43
Мисти
13.05.15
✎
21:19
|
(42) Убрала группировку всю - и всё получилось! Я помню, я с тобой дружила! Спасибо!!
|
|||||||
44
zak555
13.05.15
✎
21:21
|
как я понял нужно отобрать доки,которые делают проводки
Дт 51/50 Кт Счет6204/ДопСчет -- это один запрос и Дт Счет67609 Кт Счет6204 -- это другой запрос их объединяем и всё достаём, что нужно |
|||||||
45
zak555
13.05.15
✎
21:21
|
все где убрать к чёрту
|
|||||||
46
Мисти
13.05.15
✎
21:21
|
А почему нельзя было из группировки убрать только сумму?
По существу я уже писала - сначала выбираются все платежи, потом все собственники, потом таблицы объединяются - получаются платежи по собственникам, а потом к этой таблице пытаются приклепать ставки НДС, благо они обычно в 1 документе одинаковые. Если разные - не работает. |
|||||||
47
zak555
13.05.15
✎
21:24
|
(46) надеюсь ты в курсе, что одна оплата может быть произведена по нескольким договора/докамРасчётам ?
|
|||||||
48
Мисти
13.05.15
✎
21:27
|
У нас - только по 1 договору, а документов расчета - да, может быть несколько.
|
|||||||
49
Мисти
13.05.15
✎
21:29
|
Не надо мне ничего пришивать-отрывать, хочу уже внуков и на пенсию.
Пришить |
|||||||
50
Мисти
13.05.15
✎
21:30
|
Ого! А я думала, это не работает!
Оторвать |
|||||||
51
Torquader
13.05.15
✎
21:42
|
(49) (50) Как я и говорил!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |