#0
by breezee
Может у меня проблема в понимании? Скажите, пожалуйста, я правильно понимаю? Для того чтобы выбрать все номенклатуру и по всем документам в периоде нужно 1)Выбрать все номенклатуру в этом периоде - волженный запрос в котором просто выбирается вся номенклатура за период 2)Взять из Среза Последних - текущую цену на эту номенклатуру(будет текущей) 3)Взять максимальное значение из вложенного запроса, но меньшее чем в срезе последних для каждой номенклатуры - для этого используется функция МАКСИМУМ(период волженного запроса) - это и будет прдыдущим периодом на который надо получать цены. Все это помещается во временную таблицу 4)Получение цен на предыдущей период - путем добавления таблицы регистра, и связь по периоду и номенклатуре между временной таблицей и таблицей регистра, выбираются все данные из таблицы регистра - если нет записи выбирается 0(проверка на ЕСТЬNULL для цены) Так почему у меня выбираются ВСЕ старые цены, а не максимальные? Где я мог накосяить? ЦеныНоменклатурыСрезПоследних.Характеристика,
#2
by breezee
Да что за фигня то? Почему у меня выбираются ВСЕ старые цены, я же поставил максимм, даже во волженном запросе сразу выбрал сатрые цены
#6
by sapphire
даже теоретически непраивльно в ИМХО. Грубо, выбираем все уникальные пары Дата-Номенклатура и для них определяем срез последних запросом, а не виртуальной таблицей.
#7
by breezee
Сейчас првоерил во там везде >= &ДатаНач Я бы так и сделал но мне нужно посторение номенклатуры для каждого регистратор - по -этому выбираю все во волженном запросе(каждую номенклатуру для каждого регистратора за период), а потом уже срезом последних для них получаю предпослежнее значение(связь по номенклатурере, дата мкасимально приближена к дате вложенного запроса но меньше неё)
#9
by manfeese
Поставь задачу правильно! Что ты хочешь получить в итоге? всю номенклатуру и по всем документам в периоде или последние цены по номенклатуре. Полностью опиши свою проблему от начала и до конца!
#11
by breezee
Хочу получить все номенклатуру во всех документах в периоде, назначенном пользователем. Если есть 2 номенклатуры одинкаовые в периоде выводить для эти 2 номенклатуры. Для каждой хочу получать последние цены(не важно в периоде ли последняя цена или нет)
#12
by manfeese
Приведи пример текста запроса, которым ты получаешь всю номенклатуру во всех документах в периоде, назначенном пользователем
#13
by breezee
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры Работает - я проверял, после этого не раобтает. Пытался еще с получившейся таблицей установить соотвествие по регистратору(не с этой, а с той где получаются уже предыдущие цены) - не помогло, выбирается много раз документ, хотя везде условия по датам проставил и связи по номенклатуре и характеристике
#14
by breezee
>Работает - я проверял, после этого не раобтает. Имел в виду что конктретно этот запрос отрабатывает нормально, дальше выбирается уже не то что надо
#15
by hhhh
вид цены подправил? А то полнейший бред получается. ЦеныНоменклатуры один вид цен, а ЦеныНоменклатурыСрезПоследних совсем другой.
#17
by breezee
Угу Выбралась почему-то одна номенклатура, запрос вот такой Спасибо за помощь! но выбрались только посление номенклатуры, сейчас попробую к этому запросу по регистратору условие прикрутить - может поможет
#18
by breezee
Запрос забыл вставить ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.Характеристика, ВТВыборкиПредпоследнихЦен.Характеристика,
#19
by breezee
ГИГАААААААААНТСКОЕ СПАСИБО! ВСЕ РАБОТАЕТ. Расскажие секрет пожалуйста, где я накосячил?
#23
by manfeese
Зачем тебе в СрезПоследних? Я в привел целый кусок кода, который удовлетворит все твои пожелания!
#24
by breezee
Прости, а можно как то получить еще и текущую цену? Нужно этот запрос поместить во временну таблицу и с ним свзь сделать по таблице регистра? Если просто изменяю дату на менбшую в теущей связи идет задвоение - опять все старые цены подтягиваются ВЫБРАТЬ
#31
by breezee
Простите что снова поднимаю тему, стал проверять - новая цена подтягивается номально, старая цена подтягивается какая-то левая, может потому что во вложенном запросе не выбирается 1 дата( скрин ) Я окончательно запутался. Может вы скажите что делать? Описание задачи: Пользователь выбирают вид цены и дату начала и конца на которую выводятся все документы "Установка цен номенклатуры" со всей номенклатурой внутри - если для неё было изменение по заданному типу цен - если номенклатура присутствует за период в двух документах - надо вывести её 2 раза для каждого документа(если больше двух - тоже самое), для каждой номенклатуры нужно вывести цену на дату документа и предыдущую цену, установленную на эту номенклатуру. Мои идеи: Воспользоваться "Получением среза последних на каждую дату", только за место физической таблицы использовать вложенный запрос, который выбирает все номенклатуру и все документы, которые её устанавливали
#35
by Gangar
не пробовал делать по аналогии с остатками на каждую дату из периода? сперва получать таблицу дат и потом от неё танцевать.
#36
by breezee
Сейчас попробую. Получается я должен получить последнии и предпсоеднии даты во вложенном или как лучше - если я хочу получить цены на даты из таблицы дат. Я опять запутался, что с ними дальше делать? У меня получились 2 предпоследнии даты - 27.05 и 26.05 и одна последняя - 27.05 Вот запрос на получение всех дат ВЫБРАТЬ
#37
by breezee
Подумал что если я получу все последнии и предпследниии даты и для каждой вытащю номенклатуру и цену и потом все это свяжу по номенлатуре - получится нормально. Выбрались все даты. Наверное я идиот. Вот запрос, подскажите что делать ВЫБРАТЬ ИЗ ИЗ
#40
by breezee
За период получить все номенклатуру во всех документах "Установка цен номенклатуры" полуить цену для неё на период текущего документа и цену предыдущуюю(установелнную предыдущим документом)
#41
by France
в ут 11 обработка "Цены (прайс-лист)" показывает цену текущую, и цены старую *предыдущую) - может, это то, что нужно? и не нужно ничего писать?. А если все нужно писать - и ответ проще там поискать..
#43
by breezee
Нашел, правда это отчет и там только "Отображать только цены используемы в НДС" в настройках, галочку снял, вывелась только последняя цена
#47
by Chieftain
Из не до конца понял что в итоге нужно получить. Однако цена на каждый день по всей номенклатуре примерно таким запросом получал: ///////////////////// Формируем ПЕРИОДЫ ВЫБРАТЬ 0 КАК Цифра ПОМЕСТИТЬ ТабЦифр ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9; ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачПериода, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) КАК День ПОМЕСТИТЬ ТабДней ИЗ ТабЦифр КАК ТабЦифр1, ТабЦифр КАК ТабЦифр2,ТабЦифр КАК ТабЦифр3,ТабЦифр КАК ТабЦифр4 ГДЕ ДОБАВИТЬКДАТЕ(&НачПериода, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) <= &КонПериода ИНДЕКСИРОВАТЬ ПО День; ПО МаксДаты.ДатаЦены=Цены.Период и МаксДаты.Номенклатура=Цены.Номенклатура и МаксДаты.ТипЦен=Цены.ТипЦен
#48
by breezee
Что-то не то выбирает - условия на дату не сработало. Может, мне сотит лучше описвть задачу. Есть Период и Вид Цены. за весь период надо выбрать всю номенклатру из докумнтов "Установка цен номенклатуры" с ценой на момент документа и предыдущей ценой. Пердыдущая цена цена - предпоследнее значения из регистра "Цены номенклатуры" для этой номенклатуры.
#49
by Chieftain
Параметры НачПериода,КонПериода,ТипЦен. Но оно тебе отдаст актуальные цены на каждую дату.
#50
by breezee
В промежутке между НачПриода и Конпериода? Все равно не точ то надо, может я плохо объяснил. У меня есть запрос который получает последнюю цену и предпослежнюю цену по номенклатуре - т.е. выводится только последнии изменение цен номенклатуры, мне надо чтобы он выводил всю номенклатуру за период и для каждой получал последнюю цену и предпослднюю, т.е. проеследить все изменение цен. Вот зпрос ВЫБРАТЬ
#51
by breezee
Т.е. вот у меня выбирается во второй части запрос то для чего нужно получить еще и старую цену, в пером у меня выбирается только для последней строчки второго
#53
by breezee
ААААА! ОГРОМНОЕ СПАСИБИЩЕ! В чем был мой косяк? что я делал не так? Т.е. ты получаешь историю цен и делашь свзяку по старой и новой цене? Я же вроде тоже самое делал и ни черта не работало? Все дело в том что ты получаешь их для отдельных таблиц, а не для одной и по этому для каждой таблицы свои значения? ЕЩЕ РАЗ ГИАНТСКОЕ СПАСИБО!!!
#55
by breezee
Блин не туда отписался в 1 раз, от как я думал. ЕЩЕ РАЗ ГИГАНТСКОЕ СПАСБО!!!! Я вроде понял - так получим все изменения на каждый преиод в указанном отрзке времени и потом просто добавм туда цены. Но для того чтобы получить цены нужно так же получить все прериоды из физической таблицы(просто запрос к физ. таблицы за период), потом найти максимально приближенное не последние значение - выбираю по финкции МАКСИМУМ(период таблицы физической) - полусются даты таким образом предпоследняя, последняя; предпоследняя, последняя; ... Потом для каждой даты я выбираю цену - просто свзяь с физической таблицей и таблицей дат и из полученной таблицы я выбираю(вот тут финя полчается)предпоследний период, послдний период и только одно значение из цены, потому что нельзя же установить свзяь таблиц сразу по двум периодам чтобы мне выдавались цены на оба период
#56
by breezee
Так дело было в срезе последних? В том что я получал только последнее значение за период, а не все, которые мне нужны были?
#57
by Chieftain
Во вложенной получаем историю цен, к нему слева цепляем движения по дате меньше исторической, выбираем максимальную. Потом к датам слева по обеим датам берем цены
#58
by Chieftain
Срезом ты сразу выбираешь только актуальные на конкретную дату, динамически дату в срез не подставишь, поэтому значения только на указанную дату. А оттуда историю не вытянешь.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Помогите с запросом: нужно выбрать срез первых и срез последних.
- Срез последних на каждую дату в запросе
- Срез последних по каждой дате внутри запроса. Как сделать?
- RE: вопрос по теме "Срез последних на каждую дату в запросе"
- Срез последних на каждую дату в запросе.
- Как в запросе получить срез из регистра сведений на дату?
- Срез последних на каждую дату в запросе
- Как во внутреннем запросе сделать "срез последних" до параметра внешнего запроса
- Срез последних на каждую дату запросом
- Срез последних на каждую дату
- как ускорить срез последних на каждую дату
- СКД : Соедиение с Регистр сведений срез последних срез ближайший по дате
В этой группе 1С
- Подключение торгового оборудования к веб клиенту и его работа с УТ 11
- Как в запросе объединить 2 таблица с одинаковыми полями
- Сквозной нарастающий итог
- Табличный документ сворачивание группировок
- Ответcтвенные лица ЗУП 3.0
- Не переводит строку
- УФ, СКД, Диаграммы горизонтально
- Не запускается 1сV8.3 в файловом варианте
- авторизация на авито из 1С. Возможно?
- Проблема с синхронизацией УТ 11 - БП 3.0
- Функция ПРЕДСТАВЛЕНИЕ в запросе возвращает какую-то "особенную" строку?
- УНФ ред.1.5 Запрет удаления (и пометки на удаление) всех документов
- Сколько стоит установить Linux для дома
- УТ10.3 Запуск внешней обработки по расписанию
- УФ. УТ 11. Реализация списывает товар из под резерва.
- Комплексная автоматизация. Разукомплектация
- 1С 8.2 Вызов из обычного режима формы с динамическим списком - как сделать отбор
- Как присвоить в запросе Субконто1 значение из того же запроса
- Веб клиент 1С и ограничение функционала
- Не понятен алгоритм расчета прочих доходов и расходов в УНФ