Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 21:34

Срезпоследних дат

Автор mila1231, 20 ноя 2015, 13:00

0 Пользователей и 1 гость просматривают эту тему.

mila1231

Просто кому не сложно.. Срезпоследних дат, как установить, если вот запрос
Запрос.Текст ="ВЫБРАТЬ
              | РеестрДвиженияПрибора.Статус_регистр,
              | РеестрДвиженияПрибора.Дата_регистр,
              | РеестрДвиженияПрибора.Номер_прибора_регистр
              |ИЗ
              | РегистрСведений.РеестрДвиженияПрибора КАК РеестрДвиженияПрибора
              |ГДЕ
              | РеестрДвиженияПрибора.Статус_регистр = &Пр";
         
Запрос.УстановитьПараметр("Пр", "Принят");
    
ЗЫ без тапок по возможности
                                                    

дфтын

А у вас в регистр прям чтоли текст пишется .. в измерение чтоли..
Добавлено: 20 ноя 2015, 13:07


регистр переодический? тогда СрезПОслдених

vitasw

В качестве примера.
Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   КурсыВалютСрезПоследних.Курс
      |ИЗ
      |   РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
      |ГДЕ
      |   КурсыВалютСрезПоследних.Валюта = &Валюта";
   
   Запрос.УстановитьПараметр("Валюта", Валюта);

mila1231

Цитата: дфтын от 20 ноя 2015, 13:06
А у вас в регистр прям чтоли текст пишется .. в измерение чтоли..
Добавлено: 20 ноя 2015, 13:07


регистр переодический? тогда СрезПОслдених

нет не текст, это просто чтоб посмотреть , что хоть что-то пишется
Там по сути перечисление должно быть.
А регистр у меня непереодический.....тогда не работает.. нужно делать переодическим???

дфтын

ну или поздапросом на МАКСИМУМ(датакоторуюоцениваете)
Добавлено: 20 ноя 2015, 15:04


Но чот я уверен, что вам лучше переодический

mila1231

есть регистр сведений, тут то, что нужно для отбора, период, номера приборов и статус прибора, статус может быть принят, поверен, выдан, это перечисление.
Так вот получается, что у непосрественно номера прибора, может быть статус например
10,11 принят
11.11 поверен
теперь нужно в обработку запихнуть те номера приборов, у которых только статус прнинят, т.е если у этого номера уже есть статус поверен, то ,тогда его в списке нет.
И всё не могу я понять как этот запрос сделать.. подсказали про срезпоследних..
если я правильно поняла, то срез я делаю по Дате так? Т.е А дата у меня получается
Максимум(СП.Период) и  к тому же я ещё должна смотреть, чтоб статус был принят так?
и всё должно получиться как-то так? или нет.. вернее по выполнению запроса нет , поэтому вопрос, кому не сложно как?
ЦитироватьЗапрос.Текст = "ВЫБРАТЬ
           
                 |   СП.Номер_прибора_регистр ,
                 |   СП.Статус_регистр ,
              |   Максимум(СП.Период)
              
                 |ИЗ
                 |   РегистрСведений.РеестрДвиженияПрибора.СрезПоследних КАК СП
              |    где
              |   СП.Статус_регистр = &Пр " ;       
   
                Запрос.УстановитьПараметр("Пр", "Принят");   
Добавлено: 23 ноя 2015, 07:27


регистр периодичность В пределах дня

vitasw

Ну, так где проблема по последнему запросу?

mila1231

Цитата: vitasw от 23 ноя 2015, 10:57
Ну, так где проблема по последнему запросу?

{Обработка.Приборы_на_поверку.Форма.Форма.Форма(43)}: Ошибка при вызове метода контекста (Выполнить)
     ВыборкаДанные = Запрос.Выполнить().Выбрать();
по причине:
{(2, 4)}: Поле не входит в группу "СП.Номер_прибора_регистр"
<<?>>СП.Номер_прибора_регистр ,

Kironten

Цитата: mila1231 от 23 ноя 2015, 11:19
Цитата: vitasw от 23 ноя 2015, 10:57
Ну, так где проблема по последнему запросу?

{Обработка.Приборы_на_поверку.Форма.Форма.Форма(43)}: Ошибка при вызове метода контекста (Выполнить)
     ВыборкаДанные = Запрос.Выполнить().Выбрать();
по причине:
{(2, 4)}: Поле не входит в группу "СП.Номер_прибора_регистр"
<<?>>СП.Номер_прибора_регистр ,
Вы там руками, что ли запросы пишите?
Если не умеете сами добавлять группировки, воспользуйтесь конструктором.
На запросе правой кнопкой, откройте через конструктор запросов. Нажмите ок, и конструктор сам добавить нужные поля группировок при использовании суммируемых полей.

mila1231

Руками, в принципе если и не руками, всё равно ерунда происходит, пересмотрела кучу примеров и всё равно ерунда в голове какая-то , не могу понять, как вообще работает этот Срезпоследних
счас просто построила построителем запрос, где по сути выводятся  нужные мне данные, т.е Период, статус, номер
Запрос.Текст ="ВЫБРАТЬ
              | Сп.Период,
              | Сп.Номер_прибора_регистр КАК Номер_прибора_регистр,
              | Сп.Статус_регистр
              |ИЗ
              | РегистрСведений.РеестрДвиженияПрибора.СрезПоследних КАК Сп
                            |
              |СГРУППИРОВАТЬ ПО
              | Сп.Номер_прибора_регистр,
              | Сп.Период,
              | Сп.Статус_регистр
              |
              |УПОРЯДОЧИТЬ ПО
              | Номер_прибора_регистр";

т.е полностью выводит мне список, как здесь отрезать не нужное мне? т.е вывести только те номера_прибора, которые добавлены последними? Если честно я уже просто не понимаю своих действий.




Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск