Имя: Пароль:
1C
1С v8
Остатки по субконто
0 Elkin-Palkin
 
20.06.14
13:22
Хочу получить "мини-анализ по субконто". Т.е. хочу увидеть остатки по определённому виду субконто на каком бы счёте они не числились. Запрос - 5 строк:
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1.Ссылка,
ХозрасчетныйОстатки.Субконто2.Ссылка,
ХозрасчетныйОстатки.Субконто3.Ссылка,
ХозрасчетныйОстатки.СуммаОстатокДт,
ХозрасчетныйОстатки.СуммаОстатокКт
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&ВыбДата, , &Контрагенты, ) КАК ХозрасчетныйОстатки.
И устанавливаю два параметра:
Запрос.УстановитьПараметр("Контрагенты", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);
Запрос.УстановитьПараметр("ВыбДата", ВыбДата);
Однако, при выполнении запроса получаю ошибку:
Ошибка обработки представления "РегистрБухгалтерии.Хозрасчетный.Остатки:Поле не найдено (Субконто2)"
<<?>>РегистрБухгалтерии.Хозрасчетный.Остатки(&ВыбДата, , &Контрагенты, ) КАК ХозрасчетныйОстатки
Что мне надо дополнительно предпринять, чтобы избежать этой ошибки?
1 Apokalipsec
 
20.06.14
13:24
Не у всех счетов есть 2ое субконто, а тем более третье...
2 butterbean
 
20.06.14
13:26
(0) ты поставил выбор по одному субконто Контрагенты, а потом пытаешься выбрать целых 3....
3 zak555
 
20.06.14
13:28
(1) предложи, как обойти ситуацию
4 Elkin-Palkin
 
20.06.14
13:31
(2) согласен. А как тогда быть если на одном счёте Контрагенты 1ое субконто и единственное, а на другом, к примеру, они вторым идут?
5 Apokalipsec
 
20.06.14
13:34
(4) Обойти метаданные, выбрать Счет, номер субконто контрагентов. Для каждого получить Остатки, на вскидку так, но не очень удачное решение, по времени.
6 тарам пам пам
 
20.06.14
13:35
(4) Выбери во врем. таблицу или вложенным запросом счета, у которых есть субконто контрагент, и по ним уже выбирай остатки.
7 Apokalipsec
 
20.06.14
13:36
(3) вариант в (5) устроит? Чисто в запросе такое не прокатит.
8 тарам пам пам
 
20.06.14
13:38
(7), запросом элементарно делается
9 Elkin-Palkin
 
20.06.14
13:40
Ну вот, уже было собрался кодом перебирать счета, а тут (8) опять в смятение вверг
10 Мэс33
 
20.06.14
13:43
И ((Субконто1 В (&Контрагент)) ИЛИ (Субконто2 В (&Контрагент)) ИЛИ (Субконто3 В (&Контрагент)) ИЛИ (Субконто4 В (&Контрагент)) ИЛИ (Субконто5 В (&Контрагент)))
11 тарам пам пам
 
20.06.14
13:43
(9), как-то вот так:
ВЫБРАТЬ
    ХозрасчетныйОстатки.Счет,
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    ХозрасчетныйОстатки.Организация,
    ХозрасчетныйОстатки.СуммаОстаток
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(
            ,
            Счет В
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    ХозрасчетныйВидыСубконто.Ссылка
                ИЗ
                    ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
                ГДЕ
                    ХозрасчетныйВидыСубконто.ВидСубконто = &ВидСубконтоКонтрагенты),
            ,
            ) КАК ХозрасчетныйОстатки
12 zak555
 
20.06.14
13:44
(10) это оптимально?
13 тарам пам пам
 
20.06.14
13:45
вдогонку - РАЗЛИЧНЫЕ можно убрать, постоянно забываю, что у счета не может быть 2 одинаковых вида субконто
14 Мэс33
 
20.06.14
13:45
(10) Хе.. не то сморозил. Но суть понятна.
Сравнивать с  &ВидСубконто
15 Apokalipsec
 
20.06.14
13:47
(11) и работает?)
16 Elkin-Palkin
 
20.06.14
13:48
(15) Не работает. Я проверил только что.
17 тарам пам пам
 
20.06.14
13:48
(16), что именно не работает?
18 Apokalipsec
 
20.06.14
13:49
(17) Твой запрос не работает
19 Apokalipsec
 
20.06.14
13:49
(16) см (5). а почему не работает (11) смотри (1)
20 Elkin-Palkin
 
20.06.14
13:51
(17) Ту же ошибку получаю в морду. Получается, что я хоть и выбрал счета подзапросом, где есть контрагенты, но всё равно же пытаюсь получить все три субконто не зная, сколько реально есть на счёте
21 тарам пам пам
 
20.06.14
13:51
(19), специально проверил в консоли запросов, все работает. И без разницы, сколько субконто у счета.
22 butterbean
 
20.06.14
13:51
пля, ппц, первый раз что-ли отчеты к регистрам бухгалтерии делаете?? задал отбор по одному виду субконто, значит в выборке будет только Субконто1 и не важно на каком месте оно в счете прописано....
23 Elkin-Palkin
 
20.06.14
13:55
Уважаемый, пля, butterbean. Не первый. Но вот такой простой запрос (на первый взгляд) не придумал как сделать. Ткни,  где в моём запросе поправить, чтобы не было ошибки?
24 Мэс33
 
20.06.14
13:56
Если субконто не составное, то можно так проверить:

ВЫБОР
    КОГДА ТиповойОстатки.Субконто1 ССЫЛКА Справочник.Контрагенты
        ТОГДА ТиповойОстатки.СуммаОстаток
    КОГДА ТиповойОстатки.Субконто2 ССЫЛКА Справочник.Контрагенты
        ТОГДА ТиповойОстатки.СуммаОстаток
    КОГДА ТиповойОстатки.Субконто3 ССЫЛКА Справочник.Контрагенты
        ТОГДА ТиповойОстатки.СуммаОстаток
    ИНАЧЕ 0
КОНЕЦ
25 тарам пам пам
 
20.06.14
13:58
для совсем ленивых:
ВЫБРАТЬ
    ХозрасчетныйОстатки.Счет,
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    ХозрасчетныйОстатки.Организация,
    ХозрасчетныйОстатки.СуммаОстатокДт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(
            ,
            Счет В
                (ВЫБРАТЬ
                    ХозрасчетныйВидыСубконто.Ссылка
                ИЗ
                    ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
                ГДЕ
                    ХозрасчетныйВидыСубконто.ВидСубконто = &ВидСубконтоКонтрагенты),
            ,
            ВЫБОР
                КОГДА Субконто1 ССЫЛКА Справочник.Контрагенты
                        И Субконто1 В (&Контрагенты)
                    ТОГДА ИСТИНА
                КОГДА Субконто2 ССЫЛКА Справочник.Контрагенты
                        И Субконто2 В (&Контрагенты)
                    ТОГДА ИСТИНА
                КОГДА Субконто3 ССЫЛКА Справочник.Контрагенты
                        И Субконто3 В (&Контрагенты)
                    ТОГДА ИСТИНА
                ИНАЧЕ ЛОЖЬ
            КОНЕЦ) КАК ХозрасчетныйОстатки
26 butterbean
 
20.06.14
13:58
(23)
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
ХозрасчетныйОстатки.СуммаОстатокДт,
ХозрасчетныйОстатки.СуммаОстатокКт
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&ВыбДата, , &Контрагенты, ) КАК ХозрасчетныйОстатки
27 zak555
 
20.06.14
13:59
(26) взял и всё испортил
28 Apokalipsec
 
20.06.14
14:00
(26) как всё оказывается просто.)
29 тарам пам пам
 
20.06.14
14:04
(26), а теперь выбери таким запросом Субконто2 и Субконто3
30 тарам пам пам
 
20.06.14
14:09
По запросу из (25) есть один нюанс - не совсем корректно будет работать, если на одном счете есть более 1 субконто с типом Справочник.Контрагенты.
31 butterbean
 
20.06.14
14:10
(29) там надо только контрагентов как я понял, так зачем какие-то 2 и 3?? что там будет??
32 тарам пам пам
 
20.06.14
14:13
(31), у ТС в первоначальном запросе выбираются все субконто. И смотри сообщение (20).
33 тарам пам пам
 
20.06.14
14:15
небольшой оффтоп: как здесь ставить спойлер вид (+Code)? И ткните пожалуйста, где посмотреть возможности форума по оформлению постов
34 Elkin-Palkin
 
20.06.14
14:16
()31 Да, надо только контрагентов. Я просмотрел глазами, что у меня на всех счетах, где есть субконто "Контрагенты" - это первое субконто. Поэтому конкретно в моём случае этот запрос будет работать. А вот выберутся ли остатки эти же запросом, если бы на каком-то счёте субконто "Контрагенты" было вторым-третьим - ни подтвердить, ни опровергнуть не могу - надо план счетов менять у себя.
35 Elkin-Palkin
 
20.06.14
14:18
Сразу надо было посмотреть. А так задача ушла в раздел "что если бы..."
36 catena
 
20.06.14
14:21
(34)Выберутся, отчет "Анализ субконто" именно так и работает же.
37 тарам пам пам
 
20.06.14
14:21
(35), просто не заметил в первоначальном запросе, что параметр Контрагенты - это не список контрагентов, а Вид субконто. Остатки выберутся в любом случае, вне зависимости от того, на каком месте стоит субконто Контрагенты.
38 Elkin-Palkin
 
20.06.14
14:24
Спасибо за терпение! Теперь всё понятно стало мне без всяких "а вдруг если..."
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.