|
Запрос по остатку по счету для группы когнтрагентов | ☑ | ||
---|---|---|---|---|
0
mrleo
01.12.17
✎
12:57
|
1С 8.3 Предприниматель. Нужен остаток по 62-му счету для группы контрагентов. Запрос для произвольного контрагента выглядит так:
Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Субконто1 = &Контр) КАК ХозрасчетныйОстатки"; Для группы контрагентов пробовал запрос: Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1 КАК Конрагент, | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Субконто1 = Контрагент В ИЕРАРХИИ (&ГрупКонтр)) КАК ХозрасчетныйОстатки"; Не работает. Помогите с правильным запросом. |
|||
1
Джинн
01.12.17
✎
12:59
|
"= Контрагент" явно лишнее
|
|||
2
mrleo
01.12.17
✎
13:02
|
Попробовал, спасибо, выдает несколько сумм, а как свести к общей сумме?
|
|||
3
Джинн
01.12.17
✎
13:03
|
(2) Убрать "ХозрасчетныйОстатки.Субконто1 КАК Конрагент". Ваш Кэп.
|
|||
4
mrleo
01.12.17
✎
13:07
|
Запрос.Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Субконто1 В ИЕРАРХИИ (&ГрупКонтр))) КАК ХозрасчетныйОстатки"; Запрос работает! Выдает остатки по счету для каждого контрагента, входящего в группу. А как изменить запрос, чтобы он выдавал одну сумма остатка для всей группы контрагентов? |
|||
5
vicof
01.12.17
✎
13:09
|
(4) Группировать по родителю, выбирать родителя
Следующий вопрос: а как сделать суммы по иерархии? |
|||
6
mrleo
01.12.17
✎
13:42
|
Выходит, только цикл по результатам запроса с суммированием остатков?
|
|||
7
Borteg
01.12.17
✎
13:44
|
(6) Запрос.Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Субконто1 В ИЕРАРХИИ (&ГрупКонтр))) КАК ХозрасчетныйОстатки"; |
|||
8
Джинн
01.12.17
✎
13:45
|
(6) Нет, выходит что сначала нужно в мозгу уложить то, чего вы хотите получить. Если Вам нужна только сумма, то на кой ляд Вы субконто включаете в результат?
|
|||
9
Джинн
01.12.17
✎
13:46
|
(7) См. (3) :))
|
|||
10
Borteg
01.12.17
✎
13:46
|
(9) :))
|
|||
11
mrleo
01.12.17
✎
15:35
|
Всем спасибо, в мозгу все уложилось!
|
|||
12
mrleo
01.12.17
✎
15:48
|
Запрос.Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Субконто1 В ИЕРАРХИИ (&ГрупКонтр)) КАК ХозрасчетныйОстатки"; не работает!!! |
|||
13
mrleo
01.12.17
✎
15:50
|
Результат запроса пустой, хоть в мозгу и уложилось...
|
|||
14
Джинн
01.12.17
✎
15:52
|
(13) Параметры кривые.
|
|||
15
mrleo
01.12.17
✎
15:52
|
Выходит, только (6) или возможны варианты?
|
|||
16
hhhh
01.12.17
✎
15:54
|
(15) только (12), но почитать книжки.
|
|||
17
Джинн
01.12.17
✎
15:54
|
(15) Ептыть, параметры передайте в запрос нормальные. Или по переданному набору параметров остатков нет.
|
|||
18
azernot
01.12.17
✎
15:56
|
Держу пари, что-нибудь типа
Запрос.УстановитьПараметр("ГрупКонтр", "Поставщики") |
|||
19
hhhh
01.12.17
✎
15:56
|
(17) ну, (4) работает у него.
|
|||
20
azernot
01.12.17
✎
16:01
|
(13) Результат запроса пустой, или 0 в результате?
Может быть и в (4) было Вася +4 Петя -4 ? |
|||
21
mrleo
01.12.17
✎
16:15
|
Запрос.Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Субконто1 В ИЕРАРХИИ (&ГрупКонтр))) КАК ХозрасчетныйОстатки"; Запрос работает! Выдает остатки по счету для каждого контрагента, входящего в группу. Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Субконто1 В ИЕРАРХИИ (&ГрупКонтр)) КАК ХозрасчетныйОстатки"; не работает! Результат запроса пустой. |
|||
22
mrleo
01.12.17
✎
16:17
|
(18) пари проиграл
|
|||
23
hhhh
01.12.17
✎
16:17
|
(21) как результат получаете?
|
|||
24
mrleo
01.12.17
✎
16:18
|
Есть дельные советы?
|
|||
25
hhhh
01.12.17
✎
16:18
|
(21) дальше, что в коде после запроса?
|
|||
26
mrleo
01.12.17
✎
16:20
|
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда Иначе Записи = Результат.Выбрать(); //Пока Записи.Следующий() Цикл // СальдоНаНачало=СальдоНаНачало+Записи.СуммаОстаток; //КонецЦикла; Сообщить(" Остатки долга на дату:"+НачДата); Сообщить( " Сумма [" + Записи.СуммаОстаток + " руб.]" ); КонецЕсли; |
|||
27
mrleo
01.12.17
✎
16:20
|
закомментированная часть для работающего запроса дает верный результат
|
|||
28
hhhh
01.12.17
✎
16:21
|
(26) вот это
//Пока Записи.Следующий() Цикл реальнго бред. Надо Пока Записи.Следующий() Цикл то есть по факту (18) выиграл пари. |
|||
29
mrleo
01.12.17
✎
16:22
|
(28) ты не внимательно читаешь
|
|||
30
mrleo
01.12.17
✎
16:23
|
я ж писал - с циклом и работающим запросом все ок, спрашивал, можно без цикла?
|
|||
31
hhhh
01.12.17
✎
16:24
|
(29) ну еще раз , выбрасывать
Записи.Следующий() это дебилизм. Во втором варианте нет Записи.Следующий() значит это дебильный вариант. |
|||
32
Михаил Козлов
01.12.17
✎
16:26
|
(21) Можно попробовать счет вывести. Или сгруппировать, взяв сумму. Или выгрузить (с субконто1) в ТЗ и взять ИТОГ.
|
|||
33
azernot
01.12.17
✎
16:33
|
(26) Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда Иначе Записи = Результат.Выбрать(); Если Записи.Следующий() ТОгда Сообщить(" Остатки долга на дату:"+НачДата); Сообщить( " Сумма [" + Записи.СуммаОстаток + " руб.]" ); КонецЕсли; |
|||
34
mrleo
01.12.17
✎
16:33
|
Запрос.Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Субконто1 В ИЕРАРХИИ (&ГрупКонтр)) КАК ХозрасчетныйОстатки"; Работает в следующем варианте: Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Иначе Записи = Результат.Выбрать(); Записи.Следующий(); Сообщить(" Остатки долга на дату:"+НачДата); Сообщить( " Сумма [" + Записи.СуммаОстаток + " руб.]" |
|||
35
mrleo
01.12.17
✎
16:34
|
Всем спасибо, извините, если что не так...
|
|||
36
vicof
01.12.17
✎
16:57
|
Автора парил цикл, который проходил один раз? М-да...
|
|||
37
vicof
01.12.17
✎
16:58
|
Дарю, без циклов и запросов
РегистрБухгалтерииМенеджер.<Имя регистра бухгалтерии> (AccountingRegisterManager.<Имя регистра бухгалтерии>) Остатки (Balance) Синтаксис: Остатки(<МоментВремени>, <ВидыСубконто>, <Отбор>, <Измерения>, <Ресурсы>) Параметры: <МоментВремени> (необязательный) Тип: Дата; МоментВремени; Граница. Момент времени, на который необходимо получить остатки. Если параметр не указан или установлен в Неопределено, то будут получены текущие остатки (на максимальную дату движений регистра). Если в качестве параметра передана Дата, то остатки будут получены на начало дня, если МоментВремени - то в остатках не будут учтены движения регистра, произошедшие в тот же момент времени. <ВидыСубконто> (необязательный) Тип: ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>; Массив; ФиксированныйМассив. Передается ссылка, или массив ссылок, или фиксированный массив ссылок на виды субконто. Виды субконто определяют, какие значения субконто будут доступны по именам "Субконто1", "Субконто2" и т.д. Кроме того, остатки будут посчитаны только по счетам, имеющим заданные виды субконто. Если виды субконто не заданы, то обращение к значениям субконто осуществляется по порядку (индексу), как они определены на соответствующем счете. Параметр не существует, если при конфигурировании для плана счетов не указаны субконто. <Отбор> (необязательный) Тип: Структура. Структура, содержащая набор значений измерений регистра, по которым надо отбирать итоги. Допустимые значения ключа: Счет, Субконто<Номер>, <Имя измерения>. Если параметр не указан, то отбор не используется. <Измерения> (необязательный) Тип: Строка; Неопределено. Список измерений, для которых надо получить остатки. Строка, содержащая имена измерений, разделенные запятыми. Допустимые имена измерений: Счет, Субконто<Номер>, <Имя измерения>. Если параметр не указан или указано Неопределено, то остатки будут сформированы по всем измерениям. Значение по умолчанию: Неопределено. <Ресурсы> (необязательный) Тип: Строка; Неопределено. Список ресурсов, для которых надо получить остатки. Строка, содержащая имена ресурсов, разделенные запятыми. Если параметр не указан или указано Неопределено, то остатки будут сформированы по всем ресурсам. Значение по умолчанию: Неопределено. Возвращаемое значение: Тип: ТаблицаЗначений. В таблице содержатся поля "ОстатокДт" и "ОстатокКт". Описание: Получает остатки по регистру бухгалтерии на заданный момент. Остатки получаются в разрезе заданных измерений и по заданным ресурсам. В измерения входят счет и субконто, зависящие от счета. Если параметр <ВидыСубконто> не задан, то обращение к субконто осуществляется по индексу в том порядке, как виды субконто определены на соответствующем счете. Если параметр <ВидыСубконто> задан, то остатки будут считаться только по счетам, у которых определены заданные виды субконто, обращение к значениям субконто осуществляется в порядке, заданном параметром <ВидыСубконто>. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Параметр <ВидыСубконто> не существует, если при конфигурировании для плана счетов не указаны субконто. Пример: Рег = РегистрыБухгалтерии.Хозрасчетный; Отбор = Новый Структура("Субконто1,Организация,Счет", Ссылка,ТекОрганизация,СчетУчетаБУ); ВыборкаЗаписей = Рег.Остатки(ДатаСведений,ВидСубконтоОС,Отбор); -------------------------------------------------------------------------------- Методическая информация |
|||
38
vicof
01.12.17
✎
16:58
|
Хотя не...сторно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |