|
Как получить остатки на конец периода по счету ? | ☑ | ||
---|---|---|---|---|
0
never_be
12.06.13
✎
17:20
|
Никогда не имел дело с запросами к регистрам бухгалтерии, мне надо на определенную дату запросом получить остатки на конец периода дебет и кредит (счет 631), какую таблицу для этого использовать, может пример есть какой-то ?
|
|||
1
Alterife
12.06.13
✎
17:21
|
Виртуальную таблицу регистра бухгалтерии. Также разберись с параметрами вируальных таблиц.
|
|||
2
zak555
12.06.13
✎
17:34
|
(1) +1
только учти, что есть "свёрнутые" итоги и развёрнутые |
|||
3
never_be
12.06.13
✎
17:37
|
Вот такой запрос получился:
Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто4, | ХозрасчетныйОстатки.СуммаОстатокДт, | ХозрасчетныйОстатки.СуммаОстатокКт, | ХозрасчетныйОстатки.Субконто3 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки |ГДЕ | ХозрасчетныйОстатки.Счет = &Счет | И ХозрасчетныйОстатки.Субконто1 = &Субконто1"; Запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.НайтиПоКоду("631")); Запрос.УстановитьПараметр("Субконто1",Результат.Ссылка); РезультатПоСчету = Запрос.Выполнить().Выбрать(); Не могу только вкурить как сюда период впихнуть, получаю остатки на текущую дату. В настройках таблицы есть период но его установить не могу, |
|||
4
zak555
12.06.13
✎
17:38
|
1. читай, что такое параметры виртуальной таблицы
2. какой период, если ты хочешь получить остаток на дату ? |
|||
5
never_be
12.06.13
✎
17:40
|
(4) Неправильно выразился, таки на дату.
|
|||
6
never_be
12.06.13
✎
17:41
|
(2) Вот, мне надо чтоб остались только "незакрытые" суммы, как это сделать ?
|
|||
7
zak555
12.06.13
✎
17:41
|
РегистрБухгалтерии.Хозрасчетный.Остатки (тут есть параметры, и тут тоже)
|
|||
8
zak555
12.06.13
✎
17:42
|
(6) незакрытые суммы --- это и есть остатки
|
|||
9
never_be
12.06.13
✎
17:43
|
(7) В настройках таблицы Остатки есть окошко период в котором только мои 2 параметра счет и субконто1, где тут дату впилить ?
|
|||
10
never_be
12.06.13
✎
17:44
|
В регистрах накопления все как-то проще.
|
|||
11
zak555
12.06.13
✎
17:45
|
(9) открой в конфигуруторе справку
(10) тоже самое |
|||
12
never_be
12.06.13
✎
17:57
|
(11) Разобрался, спасибо.
|
|||
13
zak555
12.06.13
✎
18:05
|
(12) 790 рублёв мне бы не помешало на телефоне
|
|||
14
never_be
12.06.13
✎
18:23
|
(13) спасибо это намного больше :)
почему-то запрос выполняется подозрительно медленно |
|||
15
never_be
12.06.13
✎
22:06
|
Ребята если упорядочиваю по Субконто1 получаю неправильный результат запроса, в Субконто1 Контрагент, я хочу результат получить отсортированный по алфавиту, как это сделать ?
Вот такой запрос выводит результат не правильно, без упорядочивания все гуд "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1 КАК Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто4, | ХозрасчетныйОстатки.СуммаОстатокДт, | ХозрасчетныйОстатки.СуммаОстатокКт, | ХозрасчетныйОстатки.Субконто3 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаКон, , , ) КАК ХозрасчетныйОстатки |ГДЕ | ХозрасчетныйОстатки.Счет = &Счет | |УПОРЯДОЧИТЬ ПО | Субконто1"; |
|||
16
GoldenCalf
12.06.13
✎
22:19
|
А что значит неправильный результат?
|
|||
17
never_be
12.06.13
✎
22:27
|
(16) Нету половину контрагентов в результате, не совпадает с ОСВ по счету, показывает по сути движения, а не остатки потому что есть все суммы, даже закрытые.
|
|||
18
never_be
12.06.13
✎
22:27
|
(16) без упорядочивания все ок, результат совпадает с ОСВ
|
|||
19
Фрэнки
12.06.13
✎
22:33
|
в параметрах остатков поставь отбор по счету, а то у тебя возвращает всю-всю остаточную вирт-таблицу на дату... А условие ХозрасчетныйОстатки.Счет = &Счет срабатывает в том виде как у тебя уже после выполнения дефолтного подзапроса для виртуальной таблицы.
|
|||
20
never_be
12.06.13
✎
22:33
|
Так с результатом и без упорядочивания лажа, проверил не все, оказывается результат отличается от ОСВ и хз почему. Что не так в запросе ? Видимо дату не так кушает.
|
|||
21
zak555
12.06.13
✎
22:36
|
(14) надо было 14 000 просить ?
|
|||
22
never_be
12.06.13
✎
22:39
|
(21) )) Напасть какая-то, не работает ничего.
|
|||
23
Фрэнки
12.06.13
✎
22:40
|
(20) попробуй КонецДня(ДатаКон)+1 - там есть пояснения насчет использования даты в остатках, надо было внимательней читать
|
|||
24
zak555
12.06.13
✎
22:49
|
(22) что мне нужно сделать ?
|
|||
25
never_be
12.06.13
✎
22:50
|
(23) не помагает
вот запрос Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1 КАК Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто4, | ХозрасчетныйОстатки.СуммаОстатокДт, | ХозрасчетныйОстатки.СуммаОстатокКт, | ХозрасчетныйОстатки.Субконто3 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , ) КАК ХозрасчетныйОстатки"; Запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.НайтиПоКоду("631")); Запрос.УстановитьПараметр("Период",КонецДня(НаДату)+1); РезультатПоСчету = Запрос.Выполнить().Выбрать(); ставлю любую дату результат всегда одинаковый, ничего не понимаю. |
|||
26
zak555
12.06.13
✎
22:53
|
(25) осв покажи
|
|||
27
hhhh
12.06.13
✎
23:25
|
дальше что написано?
|
|||
28
GROOVY
12.06.13
✎
23:31
|
(25) В школу... Нефиг методом тырканья пальцем работать с серьезной системой.
Всего за 1000р на телефон я расскажу что такое параметр виртуальной таблицы "субконто", как он действует на производительность и как его использовать для выбора данных. Так же расскажу почему не имеет смысла выбирать счет в том случсе если он задан как значение отбора. |
|||
29
GROOVY
12.06.13
✎
23:32
|
А, забыл.... Еще рублей 300 и я рассажу про параметр "Период" о том, что есть такая штука как "Граница" о том, почему это не катит при оперативном проведении.
|
|||
30
zak555
12.06.13
✎
23:32
|
(28) > Так же расскажу почему не имеет смысла выбирать счет в том случсе если он задан как значение отбора.
переведи |
|||
31
GROOVY
12.06.13
✎
23:33
|
1300 должно на неделю хватить...
|
|||
32
zak555
12.06.13
✎
23:33
|
(31) ты много кушаешь
|
|||
33
GROOVY
12.06.13
✎
23:34
|
(30) Счет 631. Я это знаю. зачем мне в каждой строке в таблице еще и колонка с этим счетом? 631, 631, 631. Нафига? Счет что, другим будет?
|
|||
34
GROOVY
12.06.13
✎
23:35
|
(32) Я часто в роуминге. Это не я зажрался, а опсосы.
|
|||
35
zak555
12.06.13
✎
23:38
|
(33) это же укр, а у них нет субсчетов
(34) надо бывать чаще на Родине |
|||
36
GROOVY
12.06.13
✎
23:40
|
(35) Где про субсчета?
Я часто, пока что, бываю на родине. Больше чем полгода. |
|||
37
zak555
12.06.13
✎
23:43
|
я неправильно прочитал (33) )))
(36) в каких же странах ? |
|||
38
GROOVY
12.06.13
✎
23:51
|
РФ, КЗ, Суоми, другое. По времени пребывания.
|
|||
39
never_be
13.06.13
✎
08:18
|
Вот окончательный вид запроса, какую дату не ставлю результат всегда одинаковый, кто-то кому не лень тыкните где не правильно, перерыл гугл но везде точно такой же запрос пишут и вроде работает
Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1 КАК Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто4, | ХозрасчетныйОстатки.СуммаОстатокДт, | ХозрасчетныйОстатки.СуммаОстатокКт, | ХозрасчетныйОстатки.Субконто3 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , ) КАК ХозрасчетныйОстатки"; Запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.РасчетыСОтечественнымиПоставщиками); Запрос.УстановитьПараметр("Период",КонецДня(НаДату)); |
|||
40
never_be
13.06.13
✎
08:38
|
(39) Плющит меня, все работает, осталось только упорядочить результат.
Если делаю так, суммы правильные и упорядочивает как надо но в запрос попадают закрытые суммы, а мне контрагенты с нулевым остатком не нужны "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1 КАК Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто4, | ХозрасчетныйОстатки.СуммаОстатокДт, | ХозрасчетныйОстатки.СуммаОстатокКт, | ХозрасчетныйОстатки.Субконто3 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , ) КАК ХозрасчетныйОстатки | |УПОРЯДОЧИТЬ ПО | ХозрасчетныйОстатки.Субконто1.Наименование"; |
|||
41
never_be
13.06.13
✎
08:53
|
Как в результате запроса выкинуть закрытые суммы ?
ДТ КТ 21.02.2013 1 156 30.04.2013 7 567,5 27.05.2013 4 372,8 29.01.2013 2 540,4 29.05.2013 1 271 29.01.2013 2 540,4 23.04.2013 7 567,5 30.04.2013 1 413 30.04.2013 1 413 22.05.2013 844 22.02.2013 1 156 28.05.2013 844 22.05.2013 4372,8 |
|||
42
Фрэнки
13.06.13
✎
08:55
|
(41) а там у тебя аналититки одинаковы в этих якобы "закрытых"?
|
|||
43
never_be
13.06.13
✎
09:29
|
(42) Да, одно счет, второе оплата. В оплате есть ссылка на счет.
|
|||
44
never_be
13.06.13
✎
09:38
|
Вот еще пример:
ДТ КТ Поступление товаров и услуг 00000000437 3 424 Поступление товаров и услуг 00000001761 3 828 Платежное поручение исходящее 00000002097 3 828 нафига мне показывать 3828 если оно закрыто |
|||
45
Фрэнки
13.06.13
✎
10:25
|
(44) по тексту запроса видно, что у тебя 4 субконто.
Сворачивание остатков происходит в виртуальной таблице остатков регистра, когда все 4 субконто совпадут. Т.е. движения по составу значений в каждой своей записи отличаются у разных регистраторов |
|||
46
never_be
13.06.13
✎
10:30
|
(45) Отличаются, то есть прийдется вручную убрать лишние записи ?
|
|||
47
Фрэнки
13.06.13
✎
10:38
|
(46) из отчета? ну будешь каждый раз убирать. Правильный подход - исправить или поступление или платежки
А тебе в этом частном случае твоего отчета все 4-ре субконто сразу нужны? Я бы попробовал оставить в запросе только Субконто1 и посмотрел свернется оно автоматом или нет |
|||
48
acsent
13.06.13
✎
10:40
|
(44) у тебя НЕ ЗАКРЫТЫ остатки
|
|||
49
Csar
13.06.13
✎
10:53
|
(23) неправильно говоришь. Если проводки были не 31.12.12 23:59:59, а 01.01.13 00:00:00, то они тоже попадут в остатки. Правильно брать границу даты:
Запрос.УстановитьПараметр("Период",Новый Граница(КонецДня(НаДату), ВидГраницы.Включая)); |
|||
50
never_be
13.06.13
✎
11:01
|
(47) Мне надо только 1 и 3, пробовал их оставить ничего не меняется.
|
|||
51
Фрэнки
13.06.13
✎
11:15
|
(50) значит значения в третьем субконто выбраны разные. Во встроенной справке на таблицу остатков заявлено, что:
--- Позволяет получать остатки на произвольную дату в разрезе Счет, <Имя измерения>, Субконто<Номер субконто>. Агрегация производится по полю счет, измерениям и субконто указанным в запросе. --- Так что попробуй переписать агрегацию на свой лад или думай о заменене третьего субконто в регистраторах и перепроведении документов за отчетный период. |
|||
52
never_be
13.06.13
✎
11:20
|
(51) Спасибо, вопрос закрыт.
|
|||
53
Фрэнки
13.06.13
✎
11:28
|
(49) я дословных развернутых разъяснений разработчиков сейчас не могу найти, но сам смысл у виртуальных таблиц остатков такой, что для них задано по описанию << Позволяет получать остатки на произвольную дату в разрезе Счет, <Имя измерения>, Субконто<Номер субконто>. >>
К сожалению, <<НА произольную дату>> разработчики сделали так, что запрос вернет разные результаты при подстановке в поле Период значений: ДАТА(01.01.13 00:00:00) или Новый Граница(ДАТА(01.01.13 00:00:00), ВидГраницы.Включая) . |
|||
54
Csar
13.06.13
✎
11:39
|
(53) так, конечно, разные результаты. остатки на 'Дата' будут неполными и отличаться от истины. Что бы получить настоящие остатки на дату надо указывать дату через границу Граница('Дата', ВидГраницы.Включая). Это легко проверить посмотрев в ОСВ остаток по заданным условиям на дату 'Дата'.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |