Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Янв 2018, 05:19
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вывод максимума из столбца таблицы  (Прочитано 7281 раз)

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

Оффлайн b1ackjke

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-03
  • Сайт: 
есть таблица в которой есть значения состоящая из столбцов M1,M2,M3,M4 и J. Столбец J - это сумма элементов M1-m4*1/4. Вопрос в том как вывести максимальный элемент из столбца J в поле "ответ"?  В 1С написании модулей практически ничего не понимаю, помогите пожалуйста  :( Хотя бы общие наводки, как это сделать...


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6571
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Можно отсортировать таблицу по этой колонке по убыванию. Первая строка - будет ответ.
Можно перебором строк со сравнением значений функцией МАКС()
Можно сделать запрос и в нем вычислить максимальное значение.

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн b1ackjke

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-03
  • Сайт: 
Процедура Поиск_Максимального_Значение_В_Колонках_Заполняемая_ТаблицаНажатие(Элемент)
    Для Колоноки=0 По Заполняемая_Таблица.Колонки.Количество()-1 Цикл
        Сообщить("В колонке "+Заполняемая_Таблица.Колонки[Колоноки].Заголовок+" максимальное значение = "+Максимольное_Значение_Колонки_Вернуть(Колоноки,Заполняемая_Таблица));
    КонецЦикла;
       
КонецПроцедуры

расскажите пожалуйста немного про синтаксис? В данном случае название процедуры может быть любым? И откуда берется значение "Заполняемая_Таблица"? Это название Табличной части?
Добавлено: 03 Дек 2012, 21:17

Функция ВернутьМаксимольноеЗначениеКолонки(Знач ИмяКолонки="",таблица)
 
    Если ПустаяСтрока(ИмяКолонки) Тогда
        Возврат 0;
    КонецЕсли;
   
    Список = Новый СписокЗначений;
   
    Список.ЗагрузитьЗначения(таблица.ВыгрузитьКолонку(ИмяКолонки));
   
    Если Список.Количество() = 0 Тогда
        Возврат 0;
    КонецЕсли;
   
    Список.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
   
    Возврат Список[0].Значение;
 
КонецФункции // ВернутьМаксимольноеЗначениеКолонки()

Нашел функцию нахождения максимума (она описана выше). Что передавать в качестве параметров(В качестве ИмяКолонки видимо "J")?  и как передать параметр таблица, из формы документа.

Последний раз редактировалось: b1ackjke; 03 Дек 2012, 21:17

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Процедура КнопкаВыполнитьНажатие(Кнопка)
 
        //Переменная ТП - реквизит формы с типом Табличное поле (таблица значений)
    //Пример1
    Для Сч=0 ПО ТП.Колонки.Количество()-1 Цикл
        Сообщить("В колонке <"+ТП.Колонки[Сч].Заголовок+"> максимальное значение = "+ВернутьМаксимольноеЗначениеКолонки(Сч,ТП));
    КонецЦикла;
    //Пример2
    Сообщить("В колонке <МояКолонка> максимальное значение = "+ВернутьМаксимольноеЗначениеКолонки("МояКолонка",ТП));
    //Пример3
    Сообщить("В первой колонке максимальное значение = "+ВернутьМаксимольноеЗначениеКолонки(0,ТП));
       
КонецПроцедуры

//Описание
//Применимо только для числовых значений
//------------------------------
//Параметры
//Индекс - тип:Число,строка - Индекс колонки, Имя колонки
//таблица - тип: ТаблицаЗначений - Таблица значений или табличное поле с типом таблица значений
Функция ВернутьМаксимольноеЗначениеКолонки(Знач Индекс="",таблица)
 
    Если ПустаяСтрока(Индекс) Тогда
        Возврат "Не задан индекс";
    КонецЕсли;
   
    Список = Новый СписокЗначений;
   
    Список.ЗагрузитьЗначения(таблица.ВыгрузитьКолонку(Индекс));
   
    Если Список.Количество() = 0 Тогда
        Возврат "В колонке отсутствуют значения";
    КонецЕсли;
   
    Список.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
   
    Возврат Список[0].Значение;
 
КонецФункции // ВернутьМаксимольноеЗначениеКолонки()
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн b1ackjke

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-03
  • Сайт: 
У меня есть документ, в нем присутствует Табличная Часть Материалы, она же является реквизитом формы.  Как передать её в качестве параметра? пробовал вот так, но что то не вышло(
ТП = Элементы.Материалы;

За счет того, что не занимался раньше 1C туплю ужасно ( Может не так табличную часть создаю?

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Вот так
ТП = Материалы.Выгрузить();
Сообщить("В колонке количество максимальное значение = "+ВернутьМаксимольноеЗначениеКолонки("Количество",ТП));
Если управляемое приложение то
ТП = Объект.Материалы.Выгрузить();
Сообщить("В колонке количество максимальное значение = "+ВернутьМаксимольноеЗначениеКолонки("Количество",ТП));
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн b1ackjke

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-03
  • Сайт: 
Попробовал, вот что пишет:
{Документ.МетодЛапласа.Форма.ФормаДокумента.Форма(60)}: Ошибка при вызове метода контекста (Выгрузить)
   ТП = Объект.Материалы.Выгрузить();
по причине:
Метод недоступен на клиенте

А если выполнять &НаСервере, то как вывести сообщение о максимуме?

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Попробовал, вот что пишет:
{Документ.МетодЛапласа.Форма.ФормаДокумента.Форма(60)}: Ошибка при вызове метода контекста (Выгрузить)
   ТП = Объект.Материалы.Выгрузить();
по причине:
Метод недоступен на клиенте

А если выполнять &НаСервере, то как вывести сообщение о максимуме?


в серверной функции получаете ваше максимальное значение
на клиенте ее вызываете и сообщаете результат функции.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн b1ackjke

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-03
  • Сайт: 
Наконец то разобрался! Спасибо всем огромное!


Теги:
 

Вывод комментария в документ "Расходная накладная" из документа "Заказ покупателя"

Автор ОльгаПлРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 275
Последний ответ 07 Окт 2017, 19:03
от Norfolk
Вывод результата запроса через условие другого запроса

Автор jonik_jokerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3010
Последний ответ 16 Окт 2013, 15:08
от jonik_joker
Вывод набора данных "объединение" скд в дерево значений

Автор Gae4kaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1616
Последний ответ 02 Июн 2015, 12:19
от Gae4ka
Как добавить вывод ДоговораКонтрагента в печатную форму "Счет на оплату"

Автор ValentusРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 13297
Последний ответ 09 Июн 2010, 15:25
от Karamelkina
Внешняя обработка. Вывод чисел, которые без остатка делятся на количество своих цифр

Автор ХомякРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 700
Последний ответ 03 Июл 2017, 18:48
от Dethmontt

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
99 Сообщений
AIFrame
65 Сообщений
alex0402
32 Сообщений
kiksi
26 Сообщений
pavl_vs
24 Сообщений
alexandr_ll
17 Сообщений
andron81_81
16 Сообщений
Norfolk
15 Сообщений
KOI8-R
14 Сообщений
MuI_I_Ika MuI_I_Ika
13 Сообщений

* Кто онлайн

  • Точка Гостей: 120
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal