#0
by Собеседник
Недавно была тема о срезе последних по 2-измерениям для регистра где есть 3-измерения. Необходимо было получить последний регистратор и значения ресурсов. Максимум(Регистратор) - понятно, не совсем подходит. Вернее совсем не подходит Сделал вот так.( правда только по одному измерению, но это не суть) Мож кому пригодится. А может я чего-то перемудрил? :) ВЫБРАТЬ ТаблицаСрезПоследних.Номенклатура КАК Номенклатура, ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
#1
by Собеседник
сорри за настойчивость, хотелось бы услышать можеть хоть какую ругань в свой адрес :) так как в - правильно или нет
#6
by Долорес И
а, то есть, фиксируешь два, а из оставшихся значений берёшь с наиболее поздним регистратором. например, так можно: в подзапросе получаем таблицу с датой, соответствующей максимальному регистратору, которую во внешнем запросе соединяем внутренним соединением по дате и совпадающим измерениям и берем максимум уже по регистратору. получим то, что нужно.
#7
by Собеседник
- это не моя задача, просто было интересно. Максимум(регистратор) <> "последний" регистратор, поэтому вложенных запроса 3. 1 - максимальный период 2 - источник для максимального регистратора 3 - максимальный регистратор а потом уже итог
#10
by Долорес И
не поняла, зачем п.2 если тебе известна дата последнего регистратора, то максимум по всем документам с такой датой и даст необходимый регистратор. поскольку позиция документа - это дата + ид, а максимум по документу вычисляется как раз по ид(то есть, максимальный в пределах нужной даты документ и будет последним).
#11
by Собеседник
не вопрос - для краткости можно и так но как по мне - это менее читаемо ?) ВЫБРАТЬ ТаблицаСрезПоследних.Номенклатура КАК Номенклатура, ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
#13
by Garkin
Если интерестно то посмотри "Проф. разработка в системе 1С:Предприятие 8" А.П. Гарбец и компания стр 126. Там есть пример получения среза последних запросом.
#14
by Собеседник
- спасибо за участие. Но вы, господа, не поняли. (на стр 126 - не в тему, все равно, если нужен будет регистратор - необходм будет еще одн вложеный запрос) В качестве примера мной был приведен рс ЦеныНоменклатуры, не совсем корректно. Не имеет смысла получение цены без учета характеристики... Я не помню как конкретно назывался РС в задаче - пусть это будет "ХарактеристикиПродукции" Исходные данные: РС: "ХарактеристикиПродукции", периодичность - В пределах дня, подчинен регистратору Измерения: "Продукция", "Характеристика1", "Характеристика2" Ресурсы: "Ресурс" Необходимо получить последнее значение "Ресурс" и "Регистратор" для Продукция=ПродА и Характеристика1 = Х11 (т.е. без учета значения измерения "Характеристика2") Имеем данные в РС по ПродА и Х11: Регистратор Период Продукция Х-ка1 Х-ка2 Ресурс 01.01.08 00:00:00 01.01.08 ПродА Х11 <> Зн1 01.01.08 00:00:20 10.01.08 ПродА Х11 Х21 Зн2 01.01.08 00:00:10 10.01.08 ПродА Х11 Х22 Зн3 Все три строки являются срезом последних для ПродА и Х11. Время регистратора во второй строке не является ошибкой - именно так будет представлен список РС(или результат запроса с автоупорядочиванием), при периодичности "День". Причем Регистратор в строке 1 внесен в БД позже "всех". Согласны, что Максимум(Регистратор) - понятие далекое от "последний" на временной оси документ? Т.е. необходимо определить сначала максимальный период, потом макс регистратор в этом периоде и уж потом одну из строк (2 или 3) в зависимости от того, что будем считать макс периодом(и как вополняется регистрация в РС). Можно в первом запросе получать или МАКСИМУМ(Период) и соединять со вторым по Период или МАКСИМУМ(Регистратор.Дата) и соединять со вторым Регистратор.Дата Уф. НапЫсав :)
#15
by Immortal
это всё равно что остатки получать из Остатки с необходимостью получить документ поступления.недавно делал. то что в нормально соединений могло быть меньше, но при этом вложенных запросов было бы больше. так что один фиг.
#16
by Собеседник
- вот это в тему т.е. я хотел сказать, что по методике можно и "последний" приход получать просто в более нагладно в компактней. вобЧим весь этот мой треп к тому что 1) МАКСИМУМ(Регистратор) - фонарь т.е. необходимо как минимум 2 вложенных запроса. Всем спасибо
#18
by Собеседник
- не подойдет. во первых: если в периоде два регистратора с одной датой(дата время) Регистратор Период Продукция Х-ка1 Х-ка2 Ресурс 01.01.08 00:00:00 01.01.08 ПродА Х11 <> Зн1 01.01.08 00:00:10 10.01.08 ПродА Х11 Х21 Зн2 01.01.08 00:00:10 10.01.08 ПродА Х11 Х22 Зн3 то в результате получим две строки- 2 и 3 а не одну 2) во вторых есть мнение, что если дата регистратора <> период (такое ведь может быть) можем получить интересные набор данных а после соединени с РегистрСведений.ХарактеристикиПродукции(а не с СрезПоследних) получим у точно не срез последних :) ИМХО.
#24
by sapphire
Варианты есть всегда, если есть мозги и желание разобраться. Заниматься генной инженерией последний год мне по-просту влом.
#26
by sapphire
Нормальному с моей точки зрения программисту понадобиться максимум 2 минуты на решение - иначе мне такой коллега нафиг не нужен.
#28
by Собеседник
да я без претензий :). самому интересно вот - грит: "все бобаны, один я - крут. но как я крут не скажу!" :)
#29
by Шурик71
Или я чтего-то не понимаю, или ВЫБРАТЬ ПЕРВЫЕ 1 р1.регистратор ,р1.период ,р2.ресурс1 ,р2.ресурс2 ИЗ регистрсведений.МойРегистр как р1 Левое соединение регистрсведений.МойРегистр как р2 И р1.измерение2 = &ФильтрИзмерения2 Упорядочить по Период Убыв это то, что просили?
#30
by PowerBoy
А нафига их связывать - нельзя просто сделать: ВЫБРАТЬ ПЕРВЫЕ 1 р1.регистратор ,р1.период ,р1.ресурс1 И р1.измерение2 = &ФильтрИзмерения2 Упорядочить по Период Убыв
#33
by Шурик71
почему не выполняет? Или это типа шутка (смайлик в обращен к самому себе как к автору темы)?
#34
by Шурик71
Если имеется в виду, что периодичность регистра низкая, то в запросе примерно Упорядочить по Период Убыв, Регистратор Убыв - смысл все равно не меняется
#38
by Шурик71
Ну-ну... ВЫБРАТЬ ПЕРВЫЕ 1 ЦеныНоменклатуры.Период КАК Период, ЦеныНоменклатуры.Регистратор, ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры Как ни странно, работает и выводит на цены, записанные _последним_ регистратором по номенклатуре (1 изм) и типу цен (2 изм), несмотря на то, что в одну дату по этой номенклатуре есть цены по нескольким характеристикам номенклатуры (3 изм), и то, что периодичность регистра = дата (без времени) :) > Недавно была тема о срезе последних по 2-измерениям для регистра > где есть 3-измерения. > Необходимо было получить последний регистратор и значения ресурсов. Разве я отклонился от задачи?
#39
by Garkin
Задача не в том чтобы найти последний регистратор для заданных значений измерения, а в том чтобы найти последние регистраторы для всех значений измерений
#40
by Шурик71
Согласись, от постановки это несколько отличается :) Тогда вот так: И ЦеныНоменклатуры1.Номенклатура В ИЕРАРХИИ(&Номенклатура) ==== В юзается вирт. таблица СрезПоследних. А вот для данной задачи она никак не катит... В неверно одновременное определение максимума периода и регистратора. P.S. В задаче еще как минимум одна дырка: если в последнем документе устанавливаются значения для нескольких 3-х измерений, то тогда какое брать - неясно.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- SQL База вылетает с ошибкой при выполнении запрса
- Изменить существующие элементы справочника 1С 8.1
- Проблема с таблицами регистра бухгалтерии Остатки и ОстаткиИОбороты
- v7: Как сделать откат расчетного периода по одному сотруднику ?
- Сортировка табличной части обработки по нажатию на шапку колонки ?
- Как запретить удаление строки табличного поля?
- Обновление регламенированной отчетности!
- Полоса прокрутки в окнах списка
- Внешняя обработка по заполнению табличных частей
- Учет управленческой зарплаты в УПП - реально?
- Как проанализировать захват таблиц в 1С 7.7 SQL?
- Как распечатать план счетов?
- При проведении документа 1с сворачивается
- Помогите сменить название окна 1С (в левом верхнем углу) !
- Принтер HP 9040 - настройка дуплекса
- Как отправить пачкой на печать
- Как отправить пачку на печать
- Нет КБК нужного вида для счета 401.03.
- Посоветуйте учебники по ТиС 7.7 для чайников-программистов
- При выгрузке из УТ в БП документы создаются непроведёнными. Как исправить?