![]() |
![]() |
|
Товары закупаемые вместе (чаще всего) | ☑ | ||
---|---|---|---|---|
0
Silverspam
20.05.09
✎
11:50
|
Добрый день!
Подскажите неопытному новичку следующий вопрос. Требуется в расходной накладной (документ продажа товара) сделать что то навроде как в интернет-магазине. Тоесть смысл в том, что при выборе товара одного показывались бы товары которые наиболее с ним часто покупают (привмер: товар-велосипед, покупают с ним -насос, крыло, велокомпьютер)... Как я понимаю запрос нужно делать к регистру сведений продажи.обороты но только вот как я не пытался ничего у меня невышло... Может кто набросает примерно как он должен выглядеть, а я уж дальше помозгую это дело. Заранее спасибо за помощь. |
|||
1
rs_trade
20.05.09
✎
11:52
|
(0) У Радченко в книге как раз по моему такой пример описан. Посмотри.
|
|||
2
Нуф-Нуф
20.05.09
✎
11:52
|
конфига какая студент
|
|||
3
rs_trade
20.05.09
✎
11:53
|
+(1) Анализ данных надо юзать
|
|||
4
Silverspam
20.05.09
✎
11:54
|
У радченко там анализ данных в виде отчета формируется на всю документы. А мне нужно в конкретном документе так же по всем анализировать, но чтобы и представление данных было тут же например в табличном поле
|
|||
5
Господин ПЖ
20.05.09
✎
11:55
|
в книжках пишут что для такого пользуют АнализДанных с типом АнализДанныхПоискАссоциаций
|
|||
6
Господин ПЖ
20.05.09
✎
11:55
|
в "Проф. разработке"
|
|||
7
Нуф-Нуф
20.05.09
✎
11:55
|
запросом получить таблицу документов в которых есть этот товар, потом запрос к регистру продажи с группировкой по номенклатуре и с фильтром по предыдущей таблице и допустим первые 10
|
|||
8
Silverspam
20.05.09
✎
11:56
|
Да перелопатил я уже литературу всю. Самое интересное что програмист 1с на работе (не буду называть фирму) тоже не может придумать ничего (а может нехочет, но тут уже другой вопрос тогда).
|
|||
9
Silverspam
20.05.09
✎
11:58
|
Нуф-Нуф да вот этот вариант я думал, но как допустим быть если товара в списке два? И можно если нетрудно пример привести обоих запросов...
|
|||
10
rs_trade
20.05.09
✎
12:02
|
(9) Завести ресурс какой нить для хранения сопутствующего товара (подч. спр, рег. свед). И заполнять его товарами по результатам работы анализа данных. В подборе добавить возможность выбирать подчиненные эл-ты, по владельцу. Как то так, может быть...
|
|||
11
Silverspam
20.05.09
✎
12:04
|
Это если товар подчинен. А если допустим нужна выборка не из комплектующих?
Тоесть вместе с роликами покупают шахматы допустим ))). |
|||
12
Нуф-Нуф
20.05.09
✎
12:15
|
чиста из любопытства наваял запрос для УТ. пользуйся :)
ВЫБРАТЬ ПродажиОбороты.Регистратор ПОМЕСТИТЬ ТаблицаДокументов ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, Номенклатура = &Номенклатура) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Регистратор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 10 ПродажиОбороты.Номенклатура, СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот ИЗ РегистрНакопления.Продажи.Обороты( &ДатаНачала, &ДатаОкончания, Регистратор, ДокументПродажи В (ВЫБРАТЬ ТабДок.Регистратор ИЗ таблицаДокументов КАК ТабДок)) КАК ПродажиОбороты ГДЕ ПродажиОбороты.Номенклатура <> &Номенклатура СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура УПОРЯДОЧИТЬ ПО КоличествоОборот УБЫВ |
|||
13
rs_trade
20.05.09
✎
12:15
|
(11) Причем тут комплектующие. Еще раз, Хранишь где нибудь связку БазовыйТовар - СопутствующийТовар
велосипед - насос велосипед - крыло велосипед - велокомпьютер Данные периодически формируешь на основе результата работа Анализа данных. В накладной кнопка Сопутствующий товар, нажимаешь у тебя для выбранной номенклатуры список товара вываливается |
|||
14
Нуф-Нуф
20.05.09
✎
12:18
|
+(12) этот анализ делается по отчету ккм (т.е. получишь товары купленные не в одном чеке, а в одном дне), так как в УТ чеки не хранятся. если хочешь в разрезе чеков, сделай доп регистр накопления продажиПоЧекам и сделай измерение Чек
|
|||
15
Нуф-Нуф
20.05.09
✎
12:20
|
покритикуйте мой вариант
|
|||
16
Нуф-Нуф
20.05.09
✎
12:20
|
: )
|
|||
17
LegO
20.05.09
✎
12:21
|
А.П. Габец, Д.И. Гончаров
1С:Предприятие 8.0 Простые примеры разработки i Как получить данные о товарах продаваемых вместе? Анализ = Новый АнализДанных; // Выбранный тип анализа как раз и указывает на то, что ищем // "совместно продаваемые" товары. Анализ.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПродажиКомпанииОбороты.Регистратор Как ДокументПродажи, | ПродажиКомпанииОбороты.Номенклатура |ИЗ | РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, Регистратор) КАК ПродажиКомпанииОбороты |УПОРЯДОЧИТЬ ПО | ДокументПродажи"; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); // Получить продажи за указанный период. // Выбрана периодичность по Регистратору, т.к. необходимо получить // данные о совместных продажах в рамках одной покупки. Анализ.ИсточникДанных = Запрос.Выполнить(); // Выполнить анализ в соответствии с указанным источником. РезультатАнализа = Анализ.Выполнить(); // Для вывода результата анализа воспользуемся построителем // отчета анализа данных. Построитель = Новый ПостроительОтчетаАнализаДанных(); Построитель.Макет = Неопределено; Построитель.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); ТабДок = Новый ТабличныйДокумент; Построитель.Вывести(РезультатАнализа, ТабДок); ТабДок.Показать(); |
|||
18
LegO
20.05.09
✎
12:21
|
i Как порекомендовать сопутствующие товары?
Анализ = Новый АнализДанных; // Найти ассоциации. Анализ.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПродажиКомпанииОбороты.Регистратор КАК ДокументПродажи, | ПродажиКомпанииОбороты.Номенклатура |ИЗ | РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, Регистратор) КАК ПродажиКомпанииОбороты |УПОРЯДОЧИТЬ ПО | ДокументПродажи"; // Ассоциации ищем подокументно, это определяется поведением // объекта "АнализДанных" "по умолчанию" при выборе // периодичности виртуальной таблицы Регистратор Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); Анализ.ИсточникДанных = Запрос.Выполнить(); РезультатАнализа = Анализ.Выполнить(); // Исходя из полученного анализа создать прогноз. МодельПрогноза = РезультатАнализа.СоздатьМодельПрогноза(); // ТЗ- таблица значений, содержащая данные о том, // какие номенклатурные позиции вошли в "текущую" покупку. МодельПрогноза.ИсточникДанных = ТЗ; // ТП - элемент управления "Табличное поле" связанный через // свойство "Данные" с реквизитом формы "ТП" (тип ТаблицаЗначений) ТП = МодельПрогноза.Выполнить(); ЭлементыФормы.ТП.СоздатьКолонки(); |
|||
19
Ненавижу 1С
гуру
20.05.09
✎
12:22
|
(15) имхо, чаще это не больше по объему покупок, а по числу покупок
|
|||
20
Ногаминебить
20.05.09
✎
12:25
|
(15) КоличествоОборот не совсем то, что надо наверное. Это не наиболее часто покупаемый вместе товар будет, а просто тот, которого больше всего продается.
|
|||
21
Ногаминебить
20.05.09
✎
12:25
|
Опа. Уже написали. :)
|
|||
22
Нуф-Нуф
20.05.09
✎
12:25
|
хм... щас подумаю...
|
|||
23
Silverspam
20.05.09
✎
12:26
|
Ух ты отошел на 20 минут а тут стока всего наваяли уже... Пойду разгеру все :) Разложу по полочкм в голве и в конфигураторе попробую наваять. Если что напишу сюда )
|
|||
24
Нуф-Нуф
20.05.09
✎
12:33
|
чет не сообразил как количество суммировать сразу во втором запросе, вынес в третий:
ВЫБРАТЬ ПродажиОбороты.Регистратор ПОМЕСТИТЬ ТаблицаДокументов ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, Номенклатура = &Номенклатура) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Регистратор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродажиОбороты.Номенклатура, КОЛИЧЕСТВО(ПродажиОбороты.Номенклатура) КАК Кол ПОМЕСТИТЬ ТаблицаТОваров ИЗ РегистрНакопления.Продажи.Обороты( &ДатаНачала, &ДатаОкончания, Регистратор, ДокументПродажи В (ВЫБРАТЬ ТабДок.Регистратор ИЗ таблицаДокументов КАК ТабДок)) КАК ПродажиОбороты ГДЕ ПродажиОбороты.Номенклатура <> &Номенклатура СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура, ПродажиОбороты.Регистратор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 10 таблицаТоваров.Номенклатура, СУММА(таблицаТоваров.Кол) КАК Количество ИЗ ТаблицаТОваров КАК таблицаТоваров СГРУППИРОВАТЬ ПО таблицаТоваров.Номенклатура УПОРЯДОЧИТЬ ПО Количество УБЫВ |
|||
25
Нуф-Нуф
20.05.09
✎
12:35
|
ыыыыы. затупил. (24) не смотрите (хотя вариант тоже рабочий). вот правильно:
ВЫБРАТЬ ПродажиОбороты.Регистратор ПОМЕСТИТЬ ТаблицаДокументов ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, Номенклатура = &Номенклатура) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Регистратор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 10 ПродажиОбороты.Номенклатура, КОЛИЧЕСТВО(ПродажиОбороты.Номенклатура) КАК КоличествоПокупок ИЗ РегистрНакопления.Продажи.Обороты( &ДатаНачала, &ДатаОкончания, Регистратор, ДокументПродажи В (ВЫБРАТЬ ТабДок.Регистратор ИЗ таблицаДокументов КАК ТабДок)) КАК ПродажиОбороты ГДЕ ПродажиОбороты.Номенклатура <> &Номенклатура СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура УПОРЯДОЧИТЬ ПО КоличествоПокупок УБЫВ |
|||
26
Нуф-Нуф
20.05.09
✎
12:42
|
ну как?
|
|||
27
Нуф-Нуф
20.05.09
✎
12:45
|
я крут?
|
|||
28
Silverspam
20.05.09
✎
12:56
|
вечером скажу ))) Но пока что попробовал под свою базу подвести оишбок навыдавало. подправлю под себя скажу как работает. Пока что уехал. Спасибо тебе земляк :)
|
|||
29
sf
20.05.09
✎
13:11
|
(25) может скорее:
КОЛИЧЕСТВО(ПродажиОбороты.ДокументПродажи) КАК КоличествоПокупок ? |
|||
30
Silverspam
20.05.09
✎
20:59
|
Нуф-Нуф а ты можешь свою аську оставить? Или мне стукнуть...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |