Имя: Пароль:
1C
1С v8
найти минимальное и максимальное значение в табличной части документа
,
0 molly_sue
 
14.06.16
22:29
Добрый вечер форумчане.
Такая ситуация. Нужно найти в созданном документе максимальное и минимальное значение в определенной колонке табличной части, после ответ записать в реквизит. в 1с я конкретный чайник:( помогите пожалуйста, срочная ситуация.
1 Asmody
 
14.06.16
22:54
(0) Самый простой для понимания — банально циклом пройти.
2 molly_sue
 
14.06.16
22:55
понять бы еще что вы сказали:(
3 Asmody
 
14.06.16
22:57
(2) Информатика, 9й класс.
4 Lexey_
 
14.06.16
22:58
(2) это что ж за "срочная ситуация" может быть, когда человек не понимает о чем говорит?
5 Asmody
 
14.06.16
23:05
в 1С v8 будет так:


ТЧ = Док.НужнаяТабЧасть;
Если ТЧ.Количество()>0 Тогда
  Минимум=ТЧ[0].НужнаяКолонка;
  Максимум=ТЧ[0].НужнаяКолонка;
  Для ии=1 по ТЧ.Количество()-1 Цикл
    Текушее = ТЧ[ии].НужнаяКолонка;
    Если Минимум>Текушее Тогда
       Минимум=Текушее;
    КонецЕсли;

    Если Максимум<Текушее Тогда
       Максимум=Текушее;
    КонецЕсли;

  КонецЦикла;
Иначе
  Минимум=Неопределено;
  Максимум=Неопределено;
КонецЕсли;

ДокО = Док.ПолучитьОбъект();
ДокО.Минимум = Минимум;
ДокО.Максимум = Максимум;
ДокО.Записать();

[\1C]
6 Garykom
 
гуру
14.06.16
23:40
(5) Современным "программистам" проще запрос написать к временной таблице. Ну или хотя бы выгрузить ТЧ в ТЗ, отсортировать по нужной колонке и взять 1 и последнюю строки ))
7 molly_sue
 
14.06.16
23:46
пишу диплом (не по своей воле на 1с достался). в этой сфере конкретный новичок, тема такая закарючная попалась что мучаюсь, а 21 числа защита.
8 molly_sue
 
14.06.16
23:48
ДокО -  это реквизит, как я поняла?
9 Garykom
 
гуру
14.06.16
23:55
(8) Нэт это пэрэмэнная
10 molly_sue
 
15.06.16
00:05
записала все в команду, создала 2 реквизита, чтобы было видно что выведет, код попыталась "подогнать" по свой, лад, вышла ошибка "Значение не является значением объектного типа (РУ1)". РУ1 - название табличной части:(
11 Asmody
 
15.06.16
00:15
(10) Давайте начнём с версии платформы
12 molly_sue
 
15.06.16
00:16
8,3
13 Asmody
 
15.06.16
00:21
Ну и? В Док нужно как-то загнать ссылку на документ.
14 Chameleon1980
 
15.06.16
00:24
"...после ответ записать в реквизит...."
в куда*?
15 molly_sue
 
15.06.16
00:26
Док=ДокументСсылка.Вычисление1
так получается?
16 molly_sue
 
15.06.16
00:26
простите что так туплю, просто реально не знаю что к чему
17 SiAl-chel
 
15.06.16
06:15
(0) Жесть. И как тамк может быть, что диплом по теме в которой человек не зуб ногой? Хорошо хоть что это программист.
А если такой неуч врач по жизни попадется? А еще говорили, что в СССР жить было плохо.
18 FIXXXL
 
15.06.16
08:26
выгрузи ТЧ в ТЗ (можно колонку указать)
отсортируй по возрастанию
ТЗ[0] - будет минимум, ТЗ[ТЗ.Количество()-1] - максимум
19 Beretta
 
15.06.16
08:38
(18) Записать документ, получить данные запросом и записать обратно через объектную модель, например, будет куда проще для начинающего.
20 FIXXXL
 
15.06.16
08:42
(19) не надо сразу .овнокоду учить
зачем два раза документ переписывать?
если хочется запросом, можно выгруженную ТЧ засунуть во временную таблицу и через ВыполнитьПакет() получить сразу Макс и Мин
21 GROOVY
 
15.06.16
08:47
Прогуливала, видать, все занятия... Как может достаться тема диплома, о которой студент не имеет никакого понятия. И даже "циклом пройти" вызывает у него ступор?

Ну правда! Как это может быть?
22 GROOVY
 
15.06.16
08:48
(20) Нафига пакет? Сгруппировать (МИН и МАКС) и взять результат. Одна строка, один запрос.
23 Azverin
 
15.06.16
08:51
без фото и взлетело? господа... стареете)
24 Azverin
 
15.06.16
08:52
(21) у меня диплом на дельфях был, и я тоже ни в зуб, ни ногой)
25 FIXXXL
 
15.06.16
08:52
(22) согласен
26 Garykom
 
гуру
15.06.16
10:54
(23) Там фото лучше не видеть
27 Healer
 
15.06.16
11:12
Самое оптимальное решение такое:
Передайм табчасть параметром в запрос.  В запросе выбираем что-то вроде
ВЫБРАТЬ
    МАКСИМУМ(интересующий реквизит) КАК МаксимальноеЗначение,
    МИНИМУМ(интересующий реквизит) КАК МинимальноеЗначение,
НомерСтроки КАК НомерСтроки
ИЗ &Табчасть

Затем ищем строку в табчасти по индексу (номер строки - 1) и вставляем нужное значение (максимум или минимум).
28 Healer
 
15.06.16
11:16
...пропоиск строки я погорячился :-) Просто пишем в реквизит.