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

Автор Тема: Как выбрать Запросом самое частое значение?  (Прочитано 3961 раз)

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

Оффлайн Frost

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-09-29
  • Сайт: 
  • Профессия: Ученик 1С
Прошу прощения за ламерский вопрос, но я только учусь...
При заполнении таблицы необходимо в колонку Количество подставлять количество, которое обычно заказывает клиент.
Пример: если в 10 предыдущих заказах товар 8 раз куплен в количестве 10 шт., один раз в кол-ве 2 шт., и один раз в кол-ве 6 шт., то в количество должно подставится 10 шт.
Т.е. нужно брать то количество, которое встречается чаще других. Если все количества встречаются одинаково часто, то необходимо брать максимальное количество.

Подскажите пожалуйста, как можно это сделать?


Оффлайн ivanov660

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 1
  • КПД: 6%
  • Регистрация: 2011-09-05
  • Компания: Орион XL
  • Профессия: Программист 1С
К примеру, в итогах используй функцию Максимум

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Самому интересно стало. Вобщем решение нашел такое, есть таблица вида

По нажатию кнопки выполнить, код
Процедура КнопкаВыполнитьНажатие(Кнопка)

ТабНоменклатуры = Новый ТаблицаЗначений;
ТабНоменклатуры.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТабНоменклатуры.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));

ТабНоменклатуры = Товары.Выгрузить();

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

Запрос.УстановитьПараметр("ТабНоменклатуры", ТабНоменклатуры);
Запрос.Выполнить().Выгрузить().ВыбратьСтроку();

КонецПроцедуры
В итоге получаем результат

Дальше сам обработаешь думаю. Т.к. товар тут всегда один, то в конечном запросе я его выводить не стал.

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
   "ВЫБРАТЬ
   |   РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
   |   ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура),
   |   РеализацияТоваровУслугТовары.Количество КАК Количество,
   |   1 КАК Раз
   |ИЗ
   |   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   |ИТОГИ
   |   СУММА(Раз)
   |ПО
   |   Номенклатура,
   |   Количество";

А вот так, вроде, покрасивше и по-понятней...?
Только с единицами измерения, конечно, поаккуратнее бы надо в обоих вариантах...
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Оффлайн Frost

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-09-29
  • Сайт: 
  • Профессия: Ученик 1С
В общем все равно не очень въезжаю.....
Запрос = Новый Запрос("ВЫБРАТЬ
                               |   Товары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                               |   Товары.Номенклатура КАК Номенклатура,
                               |   Товары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                               |   МАКСИМУМ(Товары.Ссылка.Ссылка) КАК Ссылка,
                               |   КОЛИЧЕСТВО(*) КАК КоличествоРаз,
                               |   МАКСИМУМ(Товары.Ссылка.Дата) КАК ДатаПоследнейПродажи,
                               |Товары.Количество КАК Количество
                               |ИЗ
                               |   Документ.ЗаказПокупателя.Товары КАК Товары
                               |ГДЕ
                               |   Товары.Ссылка.Проведен = ИСТИНА
                               |   И Товары.Ссылка.Контрагент = &Контрагент
                               |
                               |СГРУППИРОВАТЬ ПО
                               |   Товары.ЕдиницаИзмерения,
                               |   Товары.Номенклатура,
                               |   Товары.ХарактеристикаНоменклатуры,
                               | Товары.Количество
                               |УПОРЯДОЧИТЬ ПО
                               |   КоличествоРаз УБЫВ");
                     
   Запрос.УстановитьПараметр("Контрагент", Контрагент);

Если делать с временными таблицами получается, что он ищет повторение значений по всей колонке Количество, а мне нужно чтобы для каждой номенклатуры.

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Ну также тогда, просто добавить номенклатуру в выборку и в группировки.

Оффлайн ivanov660

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 1
  • КПД: 6%
  • Регистрация: 2011-09-05
  • Компания: Орион XL
  • Профессия: Программист 1С
ппц... я бы сделал так
...
количество(различных таб.количество) как КоличествоРазличных,
максимум(таб.количество) как число_из_таб,
...
зачем изобретать велосипед, когда есть готовые функции, а если использовать СКД,
то вычисления всех этих значений можно сделать средствами компановки..


Теги:
 

Значение "00000000001" поля "Код" не уникально

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

Ответов: 4
Просмотров: 7295
Последний ответ 24 Ноя 2014, 12:21
от gigson
Значение поля "Владелец" не заполнено или заполнено неверно

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

Ответов: 1
Просмотров: 3628
Последний ответ 16 Ноя 2015, 09:36
от cska-fanat-kz
Как в СКД вычислить значение ресурса для группировки по значениям ресурса нижестоящей группировки

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

Ответов: 1
Просмотров: 1112
Последний ответ 23 Ноя 2016, 12:53
от sertak
как получить значение реквизита "Код" в обработке "ПодборНоменклатуры" в УТ10.3

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

Ответов: 2
Просмотров: 1216
Последний ответ 02 Дек 2016, 12:58
от Jalib
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

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

Ответов: 14
Просмотров: 9314
Последний ответ 22 Ноя 2014, 04:50
от cska-fanat-kz

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
217 Сообщений
AIFrame AIFrame
78 Сообщений
alexandr_ll
41 Сообщений
MuI_I_Ika MuI_I_Ika
38 Сообщений
BuhRust
29 Сообщений
wise wise
27 Сообщений
andron81_81
25 Сообщений
pavl_vs
23 Сообщений
ildar32 ildar32
22 Сообщений
oleg-x
22 Сообщений

* Кто онлайн

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

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal