![]() |
![]() |
![]() |
|
СКД и МоментВремени. Нужно ли брать границу, когда получаю остатки с помощью СКД | ☑ | ||
---|---|---|---|---|
0
DirecTwiX
20.09.13
✎
23:45
|
Допустим, запрос такой:
В СКД добавлен стандартный период, и указаны связи: НП = &Период.ДатаНачала КП = &Период.ДатаОкончания Такой запрос корректен? Или нужно учитывать момент времени: НП = &Период.ДатаНачала КП = НачалоПериода(ДобавитьКДате(&Период.ДатаОкончания, "День", 1) "День"); (взято отсюда: http://help1c.com/faq/view/997.html) |
|||
1
Лефмихалыч
20.09.13
✎
23:47
|
а вот теперь берем и смотрим в СП, что там пишут про таблицу остатков.
РегистрНакопленияМенеджер.<Имя регистра накопления>.Остатки (AccumulationRegisterManager.<Имя регистра накопления>.Balance) РегистрНакопленияМенеджер.<Имя регистра накопления> (AccumulationRegisterManager.<Имя регистра накопления>) Остатки (Balance) Синтаксис: Остатки(<МоментВремени>, <Отбор>, <Измерения>, <Ресурсы>) Параметры: <МоментВремени> (необязательный) Тип: Дата; МоментВремени; Граница. Момент времени, на который необходимо получить остатки. Если параметр не указан, то будут получены текущие остатки (на максимальную дату движений регистра). Если в качестве параметра передана Дата, то остатки будут получены на начало дня, если МоментВремени - то в остатках не будут учтены движения регистра, произошедшие в тот же момент времени. какой же вывод из этого следует? дайте подумать... хм... |
|||
2
shuhard
20.09.13
✎
23:48
|
(0)[КП = НачалоПериода(ДобавитьКДате(&Период.ДатаОкончания, "День", 1) "День"); ]
оторвать руки по самые уши |
|||
3
DirecTwiX
20.09.13
✎
23:58
|
Спасибо!
(2) Да, мне тоже показалось странным) (1) Хм.. А зачем тогда требуют подставлять момент времени в регистры бухгалтерии, хотя в СП написано, что и дата пойдёт? |
|||
4
Лефмихалыч
21.09.13
✎
00:05
|
(3) а ты почитай глазами, что конкретно про дату там написано. Прямо вот пересиль себя и дочитай до конца. Во что бы то ни стало. Там есть ответ на этот вопрос.
|
|||
5
Armando
21.09.13
✎
00:18
|
Херня что в ноль обороты?
|
|||
6
DirecTwiX
21.09.13
✎
00:31
|
РегистрБухгалтерииМенеджер.<Имя регистра бухгалтерии>.ОборотыДтКт (AccountingRegisterManager.<Имя регистра бухгалтерии>.DrCrTurnovers)
РегистрБухгалтерииМенеджер.<Имя регистра бухгалтерии> (AccountingRegisterManager.<Имя регистра бухгалтерии>) ОборотыДтКт (DrCrTurnovers) Синтаксис: ОборотыДтКт(<НачалоПериода>, <КонецПериода>, <ВидыСубконтоДт>, <ВидыСубконтоКт>, <Отбор>, <Измерения>, <Ресурсы>) Параметры: <НачалоПериода> (необязательный) Тип: Дата; МоментВремени; Граница. Момент времени, начиная с которого необходимо получить обороты. Если параметр не указан, то обороты будут получены начиная с момента ведения базы данных. Если в качестве параметра передана Дата или МоментВремени, то обороты за указанную дату (момент времени) будут включены в результирующую таблицу значений. <КонецПериода> (необязательный) Тип: Дата; МоментВремени; Граница. Момент времени, определяющий конец периода за который необходимо получить обороты. Если параметр не указан, то обороты будут получены до самого позднего движения регистра. Если в качестве параметра передана Дата или МоментВремени, то обороты за указанную дату (момент времени) будут включены в результирующую таблицу значений. <ВидыСубконтоДт> (необязательный) Тип: ПланВидовХарактеристикСсылка.; Массив; ФиксированныйМассив. Передается ссылка, или массив ссылок, или фиксированный массив ссылок на виды субконто. Параметр определяет, какие значения субконто дебета будут доступны по именам "СубконтоДт1", "СубконтоДт2" и т.д. Кроме того, обороты будут посчитаны только по счетам дебета, имеющим заданные виды субконто дебета. Если параметр не задан, то обращение к значениям субконто дебета осуществляется по порядку (индексу), как они определены на соответствующем счете. Параметр не существует, если при конфигурировании для плана счетов не указаны субконто. <ВидыСубконтоКт> (необязательный) Тип: ПланВидовХарактеристикСсылка.; Массив; ФиксированныйМассив. Передается ссылка, или массив ссылок, или фиксированный массив ссылок на виды субконто. Виды субконто определяют, какие значения субконто кредита будут доступны по именам "СубконтоКт1", "СубконтоКт2" и т.д. Кроме того, обороты будут посчитаны только по счетам кредита, имеющим заданные виды субконто кредита. Если виды субконто кредита не заданы, то обращение к значениям субконто кредита осуществляется по порядку, как они определены на соответствующем счете. Параметр не существует, если при конфигурировании для плана счетов не указаны субконто. <Отбор> (необязательный) Тип: Структура. Структура, содержащая набор значений измерений регистра, по которым надо отбирать итоги. Допустимые значения ключа: СчетДт, СубконтоДт<Номер>, СчетКт, СубконтоКт<Номер>, <Имя измерения> или <Имя измерения>Дт и <Имя измерения>Кт. Если параметр не указан, то отбор не используется. <Измерения> (необязательный) Тип: Строка, Неопределено. Список измерений, для которых надо получить обороты. Строка, содержащая имена измерений, разделенных запятыми. Допустимые имена измерений: СчетДт, СубконтоДт<Номер>, СчетКт, СубконтоКт<Номер>, <Имя измерения> или <Имя измерения>Дт и <Имя измерения>Кт. Если параметр не указан или указано Неопределено, то обороты будут сформированы по всем измерениям. Значение по умолчанию: Неопределено <Ресурсы> (необязательный) Тип: Строка, Неопределено. Список ресурсов, для которых надо получить обороты. Строка, содержащая имена ресурсов, разделенных запятыми. Если параметр не указан или указано Неопределено, то обороты будут сформированы по всем ресурсам. Значение по умолчанию: Неопределено Возвращаемое значение: Тип: ТаблицаЗначений. Описание: Получает обороты по регистру бухгалтерии на заданный момент. Обороты получаются в разрезе заданных измерений и по заданным ресурсам. В измерения входят счет дебета, субконто дебета, счет кредита, субконто кредита, измерения кредита, измерения (для балансовых) и измерения дебета, измерения кредита (для не балансовых). Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Параметры "Виды субконто Дт" и "Виды субконто Кт" не существуют, если при конфигурировании для плана счетов не указаны субконто. Не нашёл... |
|||
7
Armando
21.09.13
✎
00:36
|
"Если в качестве параметра передана Дата..."
|
|||
8
Armando
21.09.13
✎
00:44
|
(0) только что в название темы вчитался
ппц СКД и МОМЕНТВРЕМЕНИ. Нужно ли брать ГРАНИЦУ, когда получаю ОСТАТКИ а в (0) ОБОРОТЫ ты уж определись, что конкретно тебе надо |
|||
9
DirecTwiX
21.09.13
✎
00:46
|
(8) Большая разница что ли между остатками и оборотами?
Т.е. в остатки нужно момент времени пихать, а для оборотов и дата пойдёт? |
|||
10
sanja26
21.09.13
✎
00:54
|
(9) для оборотов есть доп. параметр "включая .." в парамтреах таблицы
(1), (2) т.е. каждый раз пишем в коде Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Период")); Граница = Новый Граница(КонецДня(Дата), ВидГраницы.Включая); Параметр.Значение = Граница; Параметр.Использование = Истина; ?? Я обычно, если не забываю, просто добавляю "+1" к концу периода |
|||
11
DirecTwiX
21.09.13
✎
01:02
|
(10) "для оборотов есть доп. параметр "включая .." в параметрах таблицы"
Где? Виртуальной таблицы? |
|||
12
Armando
21.09.13
✎
01:03
|
(9) большая разница. дату для остатков тоже можно.
при получении остатков, если подставишь дату, то в запросе к БД будет "period < ТвояДата", тоже самое, если граница исключая если граница включая, то "period <= ТвояДата" для таблицы оборотов, если передаешь дату, всегда будет >= и <= если границу передаешь, то в зависимости от вида границы. < или <= то есть граница работает всегда однозначно. а дата в остатках и оборотах по разному себя ведет |
|||
13
DirecTwiX
21.09.13
✎
01:19
|
(12) Спасибо за разъяснение!
Тогда получается, что вместо ДатыОкончания можно указать не границу, а дату+1 в остатках? 2) Почему в СП для остатков написано следующее: "Если в качестве параметра передана Дата, то остатки будут получены на начало дня" Косяк? |
|||
14
sanja26
21.09.13
✎
01:32
|
(13) &Период.ДатаОкончания тебя спасет.
Дата по-умолчанию в 1с всегда начало дня |
|||
15
sanja26
21.09.13
✎
01:33
|
(14) это по второму пункту (13)
|
|||
16
DirecTwiX
21.09.13
✎
02:00
|
(14) Это понятно. Вопрос был в следующем: если дата будет 24.10.92 12:00, то остатки будут на 24.10.92 00:00?
|
|||
17
Armando
21.09.13
✎
02:01
|
чуть-чуть обманул. остатки немного по другому считаются. там есть нюансы.
в общем берутся рассчитанные итоги на начало следующего месяца (из таблицы итогов) и от них отнимается оборот из основной таблицы от твоей даты до даты итогов. схема примерно такая (упрощенно): если остаток на дату &ТвояДата, или граница исключая выбрать Сумма из ТаблицаИтогов где Период = &ДатаИтогов объединить все выбрать -Сумма из ОсновнаяТаблица где Период >= &ТвояДата и Период < &ДатаИтогов если граница включая, то где Период > &ТвояДата и Период < &ДатаИтогов |
|||
18
sanja26
21.09.13
✎
02:07
|
(16) если дата будет 24.10.92 12:00, то остатки будут на 24.10.92 12:00
Просто дата обычно задается пользователем без указания времени |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |