Имя: Пароль:
1C
1С v8
v8: Как правильно взять остатки из регистра накопления?
0 Надежда25
 
21.09.12
12:07
V8.1. Объясните, пожалуйста, в чем моя ошибка: если после заданного &НачалоПериода оборотов не было, то и остатки не выводятся (НачальныйОстаток, КонечныйОстаток).
А еще не очень понимаю, что лучше ставить в поле Периодичность для вирт. таблиц: Запись (как у меня), Регистратор, Авто или День?
Запрос такой:
ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК НачальныйОстаток,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход КАК СтоимостьРеализации,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход КАК СуммаОплаты,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК КонечныйОстаток,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Запись, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
ГДЕ
   (ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее
           ИЛИ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
           ИЛИ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаДолга
           ИЛИ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя)
1 DrShad
 
21.09.12
12:10
ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Запись, , ) смотреть параметры
2 Надежда25
 
21.09.12
12:30
В смысле, что смотреть?
3 Godofsin
 
21.09.12
12:34
параметры)
4 flemming
 
21.09.12
12:36
5 IronDemon
 
21.09.12
12:44
Остатки с условием на виды документов? Да, жестоко :)
6 Goggy
 
21.09.12
12:45
ужс
7 Надежда25
 
21.09.12
12:47
С параметрами все нормально. &НачалоПериода=01.01.2012, &КонецПериода=30.09.2012.
(4)Значит надо во вложенном запросе просчитать все (или только где нет оборотов) остатки с &НачалоПериода1 = начала учета, &КонецПериода1 = &НачалоПериода- 1 день. А проще никак?
(6)А что конкретно не нравится?
8 IronDemon
 
21.09.12
12:48
а не &КонецПериода=30.09.2012 23:59:59?
9 IronDemon
 
21.09.12
12:49
(0) Авто
10 IronDemon
 
21.09.12
12:50
(0) Смысл какой в этом запросе?
Если нет движений то и остатков нет, т.к. условие на вид документа есть.
11 Goggy
 
21.09.12
12:56
(7) Ну первое что прям БРОСАЕТСЯ в глаза это условие.
Периодичность лучше вам поставить Авто или Период в зависимости какая вам периодичность нужно.
И вам самой стоит проанализировать содержание регистра чтобы понять почему у вас нету этих движений.
12 flemming
 
21.09.12
13:04
Если я правильно понял и вам нужны остатки по ВСЕМ дням, даже если не было оборотов, то необходимо соединять с таблицей всех дней за период.
13 m-serg74
 
21.09.12
13:11
OFF: очень странная контора, почти за год ни одной платежки и не одной реализации, что тогда делали все это время?
14 Надежда25
 
21.09.12
13:11
(10)Спасибо! Дело было в этом. Просто я хотела отобрать взаиморасчеты по продажам нашей продукции + корректировки.
Переделала так, работает правильно:
ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодДень КАК Дата,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК НачальныйОстаток,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход КАК СтоимостьРеализации,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход КАК СуммаОплаты,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК КонечныйОстаток,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор
   
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
ГДЕ
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент.Покупатель = ИСТИНА
Часто пишут, что лучше использовать не условие ГДЕ, а указать параметр сразу в ВЫБРАТЬ. В моем случае это тоже так? Влияет на быстродействие?
15 IronDemon
 
21.09.12
13:16
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , Контрагент.Покупатель)
16 Goggy
 
21.09.12
13:16
(14) а как вы ставите условие в ВЫБРАТЬ?
17 Надежда25
 
21.09.12
13:21
(15) Спасибо, очень помогли.
Сделала:
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, ,Контрагент.Родитель.Наименование = "Покупатели" ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
18 IronDemon
 
21.09.12
13:32
За это "Контрагент.Родитель.Наименование = "Покупатели"" надо наказывать
19 m-serg74
 
21.09.12
13:40
(17) угу... а в папке "Покупатели" наверное еще подпапки имеются... и на (13) ответ интересует
20 Надежда25
 
21.09.12
13:40
Почему? Просто в папке "Покупатели" есть папка "2007-2008", у которых тоже галачка Покупатели, но они не нужны в отчете.
И еще, если можно. Как избавиться от дня начала периода учета и окончания, если в эти дни не было записей (появились после смены "Запись" на "Авто"). Смогу отбором в СКД, а как считается правильней?
21 m-serg74
 
21.09.12
13:42
Контрагент.Родитель.Наименование = "Покупатели" это только те которые в папке Покупатели и не иначе
22 Надежда25
 
21.09.12
13:42
(13) Не выводились остатки (задолженность, например, за прошлый год) по тем покупателям, которые, например, в этом году у нас ничего не брали.
23 m-serg74
 
21.09.12
13:44
в (0) не было отбора по контрам, выходит вообще ни кто ничего не брал
24 m-serg74
 
21.09.12
13:45
>С параметрами все нормально. &НачалоПериода=01.01.2012, &КонецПериода=30.09.2012.

это прошлый год?)))
25 Надежда25
 
21.09.12
13:45
Как не было? А строка:
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
26 m-serg74
 
21.09.12
13:46
это выбор поля а не отбор
27 Надежда25
 
21.09.12
13:50
А мне и нужны были все контрагенты. А на &НачалоПериода=01.01.2012, даже если не было оборотов, остатки за прошлый год.
А о каком отборе идет речь? Изначально сделала по документам, была ошибка, теперь все работает, хотя нюансы остались. (18), (20).
28 tdm
 
21.09.12
13:51
(18) +1,
(20) просто найдется у вас менеджер или еще кто переименует "Покупатели" в "Прочие Покупатели" или "ПокупатИли" или еще много как и всё - программисту работа) над уходить по возможности от такого кода
29 m-serg74
 
21.09.12
13:52
"просто найдется у вас менеджер или еще кто переименует "Покупатели"" вот ему и отбить руки и голову на всякий))
30 tdm
 
21.09.12
13:53
(29) правильно - зачем пользователям в базе работать), пусть за них программист это делает))
31 m-serg74
 
21.09.12
13:54
"Покупатели", "Поставщики", "Прочие" - это практически стандарт для контров
32 tdm
 
21.09.12
13:57
(31) а две папки покупателей (отчеч.и импортные) ?))

предопределенный элемент решит неоднозначность - как вариант), параметры отчета в конце концов, настройки пользователя, вариантов куча чтобы однозначно спозициоцинироваться на элементе справочника)

нас по рукам прост за такое били))
33 m-serg74
 
21.09.12
13:58
правильно делали
34 m-serg74
 
21.09.12
14:01
"параметры отчета в конце концов" - вот это мудрое решение, пусть польз. выбирает что душе угодно и сохраняет настройку
35 Надежда25
 
21.09.12
14:26
Спасибо, здесь все понятно. А почему появились пустые строки с датой &НачалоПериода и &КонецПериода (даже когда не было записей в эти дни) и как это убрать?
36 m-serg74
 
21.09.12
14:28
остаток на границах есть всегда даже если он равен 0
37 Надежда25
 
21.09.12
14:34
Но он портит вид отчета!
38 m-serg74
 
21.09.12
14:37
может окончательный вариант запроса покажешь?
39 Надежда25
 
21.09.12
14:47
ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодДень КАК Дата,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК НачальныйОстаток,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход КАК СтоимостьРеализации,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход КАК СуммаОплаты,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК КонечныйОстаток,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор.ДокументОснование.Ссылка КАК ОснованиеПлатежа,
   СчетНаОплатуПокупателю.СуммаДокумента КАК СуммаСчета
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, ,Контрагент.Покупатель) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
       ПО (СчетНаОплатуПокупателю.Ссылка = ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор.ДокументОснование.Ссылка)
40 m-serg74
 
21.09.12
14:51
в консоли нет никаких "пустых строк" * не понятно кстати что под этим подразумевается*
41 Надежда25
 
21.09.12
15:04
В отчете есть группировка "Контрагент" с полями:
Контрагент, Нач. остаток, Стоимость реализации, Оплата, Кон. остаток
и "Детальные записи" с полями: Дата, Стоимость реализации, Оплата, Регистратор.
Так вот в "Детальных записях" выводятся пустые строки с полем Дата равным &НачалоПеиода и &КонецПериода. ?
42 m-serg74
 
21.09.12
15:09
это в СКД?
43 Надежда25
 
21.09.12
15:12
Да.
44 m-serg74
 
21.09.12
15:13
СчетНаОплатуПокупателю.СуммаДокумента КАК СуммаСчета а это для кого?
45 Надежда25
 
21.09.12
15:19
Забыла убрать. На самом деле в "Детальных записях" поля: Дата, Стоимость реализации, Оплата, Регистратор, Сумма счета, Основание платежа.
46 m-serg74
 
21.09.12
15:26
http://webfile.ru/6129811
у меня опять никаких пустых строк смотрите настройки полей и группировок
47 m-serg74
 
21.09.12
15:32
(45) вот с такими настройками
48 m-serg74
 
21.09.12
15:32
49 Надежда25
 
21.09.12
15:47
И правда, у вас все работает. Буду искать. Еще раз спасибо!
50 m-serg74
 
21.09.12
16:00
настройки полей смотрите
51 Надежда25
 
21.09.12
16:24
К сожалению, пока не нашла.
52 Надежда25
 
21.09.12
17:14
Извините, если замучила. Тем более убегаю.
Но! Если Поля: Начальный остаток, Стоимость реализации, Оплата, Конечный остаток, Регистратор, Сумма счета, Основание платежа сделать ресурсами, то тогда эта ситуация и появляется. В понедельник попробую что-то убрать в настройках.
Хороших выходных!
53 m-serg74
 
23.09.12
16:42
Регистратор, Основание платежа - ресурсы???
54 Надежда25
 
24.09.12
09:24
А как иначе их можно поместить последними? Итоги по каждому контрагенту тоже нужны.
55 m-serg74
 
24.09.12
09:55
ну а в моем варианте не так выводится как вам нужно?
56 Надежда25
 
24.09.12
10:43
В Вашем варианте, чтобы вывести данные по Контрагентам, надо поля Начальный остаток, Стоимость реализации, Оплата, Конечный остаток сделать ресурсами. Тогда и появляются в Детальных записях строки с датами НачалоПериода (если есть начальный остаток) и КонецПериода (если есть конечный остаток). А эти поля в Детальных записях не должны выводиться.
57 m-serg74
 
24.09.12
13:07
почему не должны выводится?
58 Надежда25
 
24.09.12
13:31
Если в Детальных записях оставить вывод полей Начальный остаток и Конечный остаток, то система будет выводить эти значения нарастающим итогом, а это лишняя информация, и смотрится некрасиво. Я уже махнула рукой на эти две пустые строки - если есть начальные или конечные остатки, но все-таки интересно.
59 Надежда25
 
24.09.12
14:16
Сделала через отбор:
"Отбор: (Стоимость реализации Больше ""0"" ИЛИ
   Сумма оплаты Больше ""0"" ИЛИ
   Сумма счета Больше ""0"" )"
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.