Выборка из регистра сведений, где ресурс - шкала #620522


#0 by i_rodionov
Есть справочник Диапазоны, с реквизитом Предел. Справочник заполнен условно так: 00000 - "0", 00001 - "10000", 00002 - "50000", 00003 - "99999999" Нужно взять срез последних запросом из такого регистра сведений КурсПоШкале: измерения Контрагент и Диапазон (спр. Диапазоны), ресурс - КурсУЕ. Запросом получить КурсУЕ, используя только параметры виртуальной таблицы КурсПоШкалеСрезПоследних?
#1 by i_rodionov
+ Значение предела берется из временной таблицы в этом пакете запросов. Пусть называется ОборотКонтрагента.СуммаУЕОборот
#2 by andrewks
про справочник не понял
#3 by Stim
курсУЕ, максимум(Диапазон)
#4 by i_rodionov
Справочник - это тип одного из ресурсов регистра.
#5 by andrewks
это я понял. у тебя элементы записаны криво, подумал сначала, что это диапазоны
#6 by i_rodionov
Не годится. Нужно обратиться к значению предела сначала. Писал выше, откуда значение
#7 by andrewks
а кто тебе прогарантировал, что первый элемент выборки и будет искомым?
#8 by andrewks
показывай, что у тебя получилось, и что ещё нет
#9 by i_rodionov
Практическая мысль такова: найти курс УЕ для контрагента с вычисленным ранее оборотом (ОборотКонтрагента.СуммаУЕОборот - уже есть во временной таблице) по шкале. Курс дифференцируется от ОборотКонтрагента.СуммаУЕОборот. Всего участвуют: Справочник, виртуальная таблица оборотов по регистру бухии и Регистр сведений
#10 by H A D G E H O G s
Сории за офф, выйди в аську.
#11 by andrewks
ты запрос-то показывай. а то складывается ощущение, что ты не можешь сделать элементарное соединение таблиц
#12 by i_rodionov
Для очень опытных - это задача 2.20 из задачника. В сети есть решение, но мне оно не нравится, так как используется условие соединения
#13 by i_rodionov
Нужно добиться того, чтобы полное соединение давало только одну строку в результате
#14 by i_rodionov
Поставим вопрос по другому. Как сделать так, чтобы этот запрос был без последнего соединения, а в параметрах РегистрСведений.ШкалаКурсов.СрезПоследних было (&МоментВремени, (Контрагент = &Контрагент) И (?????????) ) Давало одну запись этого регистра
#15 by andrewks
это не запрос, а произвольный набор инструкций
#16 by i_rodionov
Нет. Он выбирает обороты между двумя счетами, выбирает все ресурсы из регистра сведений для контрагента на момент времени. Вопрос: Как получить запрос, который выбирает значение из справочника Диапазоны для Контрагента и Оборота?
#17 by andrewks
во-первых, для чего ты делаешь полное соединение со спр.Диапазоны? во-вторых, подумай получше над условием соединения. в-третьих, что за ШкалаКурсовСрезПоследних.Значение?
#18 by i_rodionov
Согласен, полное соединение - ошибка. ШкалаКурсовСрезПоследних.Значение это значение из регистра сведений. Структура: Измерения - Контрагент, Диапазон. В зависимости от диапазона (объем продаж), есть ресурс - курсУЕ.
#19 by i_rodionov
+ Нужно получить из запроса только одну строку - по какому курсу продать товар данному контрагенту с данным оборотом с начала месяца. Значение курса находится в регистре ШкалаКурсов, периодическом
#20 by andrewks
теперь выясняется, что регистр периодический. про ШкалаКурсовСрезПоследних.Значение я так и не понял. и как же, всё-таки, называется регистр - ШкалаКурсов или КурсПоШкале?
#21 by i_rodionov
Мне думалось, если человек видит ШкалаКурсовСрезПоследних, подразумевается, что периодический. Называется шкала курсов. Но интересна только виртуальная таблица ШкалаКурсовСрезПоследних
#22 by i_rodionov
Постановка задачи: расчеты с покупателями ведутся в уе. Делается проводка Дт "Покупатели" - Кт "Прибыли и убытки" Текущий курс рассчитывается при проведении "Расходной накладной" в соответствии со шкалой, устанавливаемой пользователем для каждого контрагента. Шкала продаж написана в . Данные шкалы могут меняться помесячно. Курс берется в зависимости от объема продаж этому контрагенту с начала периода (месяца)
#23 by andrewks
вот так находишь нужный диапазон ВЫБРАТЬ    |        |    УправленческийОборотыДтКт.СубконтоДт1 как Контрагент, дальше дело техники - соединяешь со срезом последних
#24 by andrewks
макс(Дипазоны.Диапазон) , конечно
#25 by i_rodionov
Иными словами, получить оборот, присоединить значение из справочника Диапазоны, соотвествующее обороту с помощю условия. Сделать левое соединение со Шкалой Курсов.
#26 by i_rodionov
+ Спасибо, мне это больше нравится, но я думал, есть метод, когда делается не объединение, а параметры виртуальной таблицы отбрасывают ненужное
#27 by i_rodionov
Спрашиваю из любопытства... Вы видели решение этой задачи в сети?
#28 by i_rodionov
Если кому-то интересно решение задач 1С:Специалист, могу поделиться моим решением задачи 1.46
#29 by i_rodionov
ап
#30 by andrewks
не видел ни задачу, ни решение. если есть демо-база для этой задачки - выкладывайте, поищем оптимальные решения. а то руктями мета- и прочие данные забивать лень
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С