#0
by Asmody
Задачка на сообразительность: даны два документа Док1 и Док2 одного вида. Требуется на СКД получить обороты по некоторому регистру за период между этими документами. Без кода. Документы задаются как параметры СКД.
#9
by DarKySiK
А чего мешает в параметры границы передавать по документам вместе с самими документами (если они еще где-то нужны)...
#10
by Asmody
Куда передавать? Параметры определены в настройках, форма генерится автоматом. "Чистая" СКД, ни строчки другого кода.
#11
by ДенисЧ
"Асмоде?й (собственно Ашмедай, то есть искуситель) — злой, сластолюбивый демон" Я всегда (уже over 4 года) говорил, что СКД от лукавого...
#13
by DirecTwiX
Регистраторов у регистра несколько? Время выполнения запроса важно? У тебя получилось?)
#18
by Asmody
> Регистраторов у регистра несколько? Не имеет значения > Время выполнения запроса важно? Время хочется разумное > У тебя получилось?) Несколько сегодняшних идей не дали результата. Есть еще несколько, буду пробовать завтра.
#22
by PR
Нууу, думаю, что разве что если в выражение параметра воткнуть код, так ведь не втыкается же :))
#23
by PR
+ С учетом того, что делается двумя строчками кода и очень красиво без всяких созданий форм, я бы сделал и не парился :))
#24
by Asmody
Я остановился на том, что можно через связь запросов перекинуть моменты времени в параметры виртуальной таблицы Обороты.
#25
by Armando
>>Документы могут не являтся регистратором Тогда непонятно чего ты хочешь. Когда в параметры виртуальной таблицы передаешь момент времени, ограничение именно на регистратор делается.
#26
by Armando
Вот запрос который физически на SQL выполняется, когда в параметры суешь момент времени. Такой же можно самому сделать без использования виртуальной таблицы оборотов SELECT T1.Fld18168RRef, T1.Fld18179Turnover_ FROM (SELECT T2._Fld18168RRef AS Fld18168RRef, CAST(SUM(T2._Fld18179) AS NUMERIC(26, 8)) AS Fld18179Turnover_ FROM dbo._AccumRg18167 T2 WHERE ((T2._Fld894 = ?)) AND ((T2._Period > ? OR T2._Period = ? AND (T2._RecorderTRef > 0x0000011B OR T2._RecorderTRef = 0x0000011B AND T2._RecorderRRef >= ?)) AND (T2._Period < ? OR T2._Period = ? AND (T2._RecorderTRef < 0x0000011B OR T2._RecorderTRef = 0x0000011B AND T2._RecorderRRef <= ?)) AND T2._Active = 0x01) GROUP BY T2._Fld18168RRef HAVING (CAST(SUM(T2._Fld18179) AS NUMERIC(26, 8))) <> ?) T1
#27
by Asmody
Чего хочу - понятно: есть два документа. Любых. Хоть два События, неважно, они просто задают период. Хочу посчитать, какие, например, продажи были между первым и вторым документом.
#30
by Armando
По полю период. Давай представим, что есть оборотный регистр с одним измерением, пусть будет номенклатура, и ресурс сумма. Как бы ты выполнил свою задачу не на СКД? Хоть кодом, хоть как.
#33
by Armando
граница это дата. момент времени в твоем случае тоже дата, т.к. ссылку с регистратором ты сравнивать не хочешь
#35
by Asmody
Задача сводится к тому, как из документа, заданного в параметре СКД, вытянуть МоментВремени (это просто) и подставить его в параметр виртуальной таблицы. Или, если отойти от СКД к просто запросам, как, передав в запрос параметр типа ДокументСсылка и , подставить его момент времени в параметр виртуальной таблицы.
#36
by Armando
см в 1С это был такой запрос: выбрать измерение, ресурс из ОбротныйРегистр.Обороты(&МоментВремени1, &МоментВремени2)
#37
by Asmody
Задача решается без использования виртуальной таблицы, надо просто городить ее аналог в запросе. Задача решается с виртуальной таблицей, но без параметров, сравнением периодов с дополнительными группировками. На СКД я предполагаю, что ее можно сделать через передачу параметров в связях таблиц. На "голом" запросе, скорее всего, решения не будет.
#41
by Armando
В одном наборе данных из документа вытаскиваешь момент времени и передаешь его параметром в другой набор данных
#43
by Armando
если под связью таблиц и связью запросов подразумевалась связь наборов данных, то извините
#44
by Armando
Но я все равно не догоняю. С одной стороны ты хочешь в параметры передать момент времени, а с другой не хочешь сравнивать с регистратором. Даже не знаю что сказать.
#45
by Asmody
Пишу большими жирными буквами: в параметры передается , ни момент времени, ни дата, ничего иного. И что я должен сравнить с регистратором? P.S. Наборы данных я называю "запросами" автоматически, поскольку ни разу ни у кого не встречал и сам не использовал "набор данных объект", а объединение суть тот же запрос.
#46
by Armando
ок выражусь точнее. В параметры компоновки ты передаешь ссылку, а в параметры виртуальной таблицы хочешь чтоб передался момент времени. Так?
#48
by Armando
не важно. Если передавать границу на основании момента времени, то условие все равно по регистратору делается. было передано две границы. одна исключающая, другая включающая. SELECT T1.Fld12442RRef, T1.Fld11029Turnover_ FROM (SELECT T2._Fld12442RRef AS Fld12442RRef, CAST(SUM(T2._Fld11029) AS NUMERIC(27, 8)) AS Fld11029Turnover_ FROM dbo._AccumRg11023 T2 WITH(NOLOCK) WHERE (T2._Period > ? OR T2._Period = ? AND T2._RecorderRRef > ?) AND (T2._Period < ? OR T2._Period = ? AND T2._RecorderRRef <= ?) AND T2._Active = 0x01 GROUP BY T2._Fld12442RRef HAVING (CAST(SUM(T2._Fld11029) AS NUMERIC(27, 8))) <> ?) T1
#49
by Trance_1C
Если типы документов-границ однозначны, то можно сначала получить их моменты времени, а потом сделать выборку оборотов за период между ними, не вижу проблемы сделать все это на голом СКД
#56
by Зеленый пень
В чем проблема? Ссылки (регистраторы) сравниваются точно так же как и даты. Если в пределах одной секунды - сравниваем ссылки.
#60
by DirecTwiX
Того. Порядковые, таблиц. Так, например, ссылки заказов покупателей всегда меньше ссылок требований-накладных.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- СКД: СКД. Понимает ли СКД ссылки на МенеджерВременныхТаблиц?
- СКД: как в СКД значеняи параметров по умолчанию заполнять?
- СКД: СКД. В группировке верхнего уровня получить сумму группировок нижнего
- СКД: Диаграмма в СКД
- СКД: СКД. Как задать устанавливать параметры вложенных схем СКД?
- СКД: Объединение в СКД
- СКД: СКД - можно ди получить промежуточные итоги по колонкам
- СКД: Настройки СКД
- СКД: СКД: Программное обращение к полям группировки СКД
- СКД: СКД. Как переоределить действие кнопки "Сформировать" отчета, созданного в СКД?
- СКД: Сумма(НачальныйОстаток) - разница между СКД и Запросом
- СКД. В чем разница соединения между запросом и в СКД?
В этой группе 1С
- Стандартные настройки оформления динамического списка
- УФ переопределение процедуры началовыбор элемента
- Не могу найти в модулях код, отвечающий за формирование бух.проводок документа!
- При вводе контрагента при нажатии заполнить по ИНН выдает ошибку
- Конвертация данных, редакция 2.1 (2.1.8.2). поиск объетов с условием
- Запрет выдачи лицензии сервером 1С
- Свободные остатки на складах 1С УПП
- УТ 11: частичная оплата и отгрузка на основании счета на оплату
- Несколько Установок цен в один день, на один товар
- Как быстро разобрать XML файл
- ОГРН в УНФ
- Пропала синхронизация 1C по FTP
- 1С 8.3. Запрос по последнему документу контрагента за каждый месяц
- УТ11. Учет движения денежных средств в разрезе подразделений
- КриптоПро и ключ 1С
- Где в ЗУП 3.0 посмотреть суммы которые облагаются и не облагаются взносами?
- 1с 8.3 УФ, отладка внешних печатных форм клиент-сервер
- Настройка синхронизации между БП 3.0 и УНФ 1.5
- 8.3, такси, tinyMCE. Как передать в редактор текст?
- Шаблон отчет СКД - 1С 8.3 такси