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

Работа с таблицей значений

Автор Moskal9801, 09 янв 2023, 02:37

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

Moskal9801

Вывести таблицу, в которой указаны в строках день и последний поставщик за этот день и не отображать дни, в которых не было поставки ( файл - https://disk.yandex.ru/d/EOn_-EoWaIEX6Q ). Проблема с первым заданием, помогите решить.

Максим75

привет.
не совсем я понял, что значит последний поставщик за этот день? поставщик с последним временем в дате?
если да, то примерно так надо действовать:

&НаКлиенте
Процедура ЗаполнитьРезультат(Команда)
   ЗаполнитьРезультатНаСервере();
КонецПроцедуры

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

если же последний считается по номеру строки (записи) в этот день, то надо будет запрос переделывать и выбирать максимальный номер строки в дате.

Максим75

пропустил выгрузку результат запроса в ТЗ.
ТЗ = Новый ТаблицаЗначений;
ТЗ = Запрос.Выполнить().Выгрузить();

так должно быть

Теги:

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

Рейтинг@Mail.ru

Поиск