Версия для печати темы (https://pro1c.org.ua/index.php?s=a3054db1917c86e1c9f2d3fde4f33b4b&showtopic=59870)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Выбор минимальной даты в ТаблицеЗначений 1С 7.70.003 торговля склад для Украины?

Автор: ZUBR 25.06.20, 13:14

Здравствуйте. Есть таблица значений, в которой есть колонка ДатаПриема. Нужно из этой колонки выбрать минимальную дату.

Расх=СоздатьОбъект("Документ.РасходнаяНакладная");
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("ДатаПриема");
...................................................................
..................................................................
Расх.ВыбратьДокументы(НачДата, КонДата);
Пока Расх.ПолучитьДокумент()=1 цикл
ТЗ.ДатаПриема=Расх.ДатаПриема;
................................................
....................................................
КонецЦикла;

МинДата=???????????


Как определить из таблицы значений минимальную дату из всех значений ДатаПриема?
Спасибо!

Автор: denis84 25.06.20, 14:18

ZUBR @ Сегодня, 14:14 * ,
Добрый день! Отсортировать ТЗ по возрастанию и получить значение из первой строки.

Если не ошибаюсь вот так:

ТЗ.Сортировать("+ номер или идентификатор колонки");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
    МинДата = ТЗ.ПолучитьЗначение(номерСтроки,номер или идентификатор колонки);
        Сообщить(МинДата);
КонецЦикла;


denis84 @ Сегодня, 14:46 * ,

Цикл не нуженsad.gifкод вписал чуть не тот(невнимательно))
ТЗ.Сортировать("+ номер или идентификатор колонки");
МинДата = ТЗ.ПолучитьЗначение(номерСтроки,номер или идентификатор колонки);
Сообщить(МинДата);

Автор: Sharzem 25.06.20, 15:08

denis84 @ Сегодня, 14:18 * ,
Результат той самий. Добавити лише Прервать. Сам так роблю іноді.

ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
    МинДата = ТЗ.ПолучитьЗначение(номерСтроки,номер или идентификатор колонки);
    Сообщить(МинДата);
    Прервать;
КонецЦикла;

На ДБФ відпрацює однаково. Мала затримка на виборці.
Можна ще так:
ТЗ.ВыбратьСтроки();
Если ТЗ.ПолучитьСтроку() = 1 Тогда
    МинДата = ТЗ.ПолучитьЗначение(номерСтроки,номер или идентификатор колонки);
    Сообщить(МинДата);
КонецЕсли;

Автор: denis84 25.06.20, 15:16

Цитата(Sharzem @ 25.06.20, 16:08) *
На ДБФ відпрацює однаково. Мала затримка на виборці.

Согласен

Автор: andrew76 26.06.20, 18:53

Цитата(ZUBR @ 25.06.20, 16:14) *
Отсортировать ТЗ по возрастанию и получить значение из первой строки.


Цикл строить не надо.

ТЗ.Сортировать("+ДатаПриема");
Сообщить(ТЗ.ПолучитьЗначение(1,"ДатаПриема")); //минимальное значение

Автор: ZUBR 27.06.20, 13:19

Всем спасибо! Все верно! Сортировка! Совсем вылетело из головы!

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua