Имя: Пароль:
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"" )"
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn