Имя: Пароль:
1C
1С v8
Максимум табличной части незаписанного документа
0 umnick
 
17.09.12
20:14
Пожалуйста подскажите как можно получить максимум табличной части перезаписанного документа.
1 vicof
 
17.09.12
20:17
что значит максимум табличной части?
2 vicof
 
17.09.12
20:17
количество строк?
3 umnick
 
17.09.12
20:20
В таблице есть колонка которая содержит перечень числовых значений. Так необходимо найти максимальное значение этой колонки.
4 shuhard
 
17.09.12
20:22
(3) выгрузи ТЧ в ТЗ
ТЗ засунь в пакетный запрос
найди максимум
5 vmv
 
17.09.12
20:22
Максимум(ТчСсылка.НомерСтроки)
6 vmv
 
17.09.12
20:23
(4) нахрена выгрузка, вложенную таблицу получать в звпросе еще Радченко учил 20 лет назад, лентяи, лоботряси!
7 Пеппи
 
17.09.12
20:24
(6) это слишком просто, а надо сделать чтобы было красиво :)
8 ДенисЧ
 
17.09.12
20:25
(6) Какую вложенную? Откуда запрос её тягать будет, если документ не записан?
9 vmv
 
17.09.12
20:25
(7) красиво может быть только когда у вас будет фото платформы, а не конфигурации)
10 shuhard
 
17.09.12
20:26
(6) недоросль, документ не записан
11 vmv
 
17.09.12
20:27
(8) тогда Количество() спасет отца русской демократии, но я буду лоббировать запрос и точка!)
12 Пеппи
 
17.09.12
20:27
так документ незаписан или перезаписан?)) в теме одно в нулевом посте другое) но shuhard прав как всегда ))
13 umnick
 
17.09.12
20:28
(12) Незаписан
14 vmv
 
17.09.12
20:28
чуваки, вы меня прищучили, бгг - расскажите детям)
15 aleks-id
 
17.09.12
20:28
(13) тогда выгрузить и запросом
16 aleks-id
 
17.09.12
20:29
(14) ничё. и на старухе бывает прореха
17 dauster
 
17.09.12
20:30
Выгрузить и отсортировать?
18 aleks-id
 
17.09.12
20:32
(17) тоже вариант
19 dauster
 
17.09.12
20:38
Еще можно через построитель запроса/отчета.
В качестве источника данных можно передать ТЧ.
20 umnick
 
17.09.12
21:28
Я попробовал сделать так:

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

И получил ошибку:

{Документ.Заказ.Форма.ФормаДокумента(70)}: Поле объекта не обнаружено (Время)
   Сообщить(Выборка.Время);
21 aleks-id
 
17.09.12
21:29
(20) ну поместил ты в ВТ. а выборку из нее кто делать будет? управдом?
22 umnick
 
17.09.12
21:35
(21) А

ВЫБРАТЬ
   Время.ВремяПроизводства КАК Время

это не выборка?
23 zippygrill
 
17.09.12
21:36
Запрос.Текст = "ВЫБРАТЬ
                  |    Время.ВремяПроизводства КАК Время
                  |ПОМЕСТИТЬ ВТВремя
                  |ИЗ
                  |    &Время КАК Время
///////////////////////////////////////
| выбрать *
| из &МояТЗ";
24 umnick
 
17.09.12
21:38
(23) Спасибо!
25 zippygrill
 
17.09.12
21:39
вот рабочий пример!

   з = Новый Запрос;
   з.Текст = "ВЫБРАТЬ *
   |ПОМЕСТИТЬ вт
   |Из
   |    &МояТаблица КАК МояТаблица
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ *
   |ИЗ
   |    вт КАК вт
   |ИТОГИ
   |    СУММА(вт.VbsStart),
   |    СУММА(вт.VbsEnd),
   |    СУММА(вт.AStart),
   |    СУММА(вт.AEnd),
   |    СУММА(вт.BottlesCount)
   |ПО
   |    вт.SensorNumber";
   
   з.УстановитьПараметр("МояТаблица",тз);
26 Mort
 
17.09.12
22:04
Почему никто не предложил читать содержимое диска через DMA ?
27 Mort
 
17.09.12
22:09
Может у него в документе в среднем по 20 строк? Нахер запросы?
28 acsent
 
17.09.12
22:22
Вот дожили. Уже максимум в массиве (таблице) не могут найти. П..ц
29 dauster
 
17.09.12
22:30
ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличнаяЧасть1);
   ИсточникДанных.Колонки.Реквизит2.Итог = "Максимум(Реквизит2)";
   ПЗ = Новый ПостроительЗапроса;
   ПЗ.ИсточникДанных = ИсточникДанных;
   ПЗ.Выполнить();
   
   Выборка = ПЗ.Результат.Выбрать();
   Пока Выборка.Следующий() Цикл
       Сообщить("Максимальное значение = "+Выборка.Реквизит2);
       Прервать;
   КонецЦикла;
30 Конфигуратор1с
 
17.09.12
22:31
(29)А зачем цикл? не проще
 Если Выборка.Следующий() тогда
       Сообщить("Максимальное значение = "+Выборка.Реквизит2);
       
   КонецЕсли;
31 dauster
 
17.09.12
22:33
(30) Согласен, так даже проще, просто привык с выборками через цикл в-основном.
32 petrowsky
 
18.09.12
00:01
(0) как вариант

Если Материалы.Количество() > 0 Тогда
   ТЗ = Материалы.Выгрузить(, "ВремяПроизводства");
   ТЗ.Сортировать("ВремяПроизводства Убыв");

   Сообщить("Максимальное значение = " + ТЗ[0].ВремяПроизводства);
КонецЕсли;