Имя: Пароль:
1C
1С v8
Как выбрать элементы с одинаковой ТЧ?
0 ИС-2
 
naïve
02.06.14
12:31
Пусть есть справочник контрагенты с ТЧ Скидки (ГруппаНоменклатуры, ТипЦен, СрокДействия, Скидка).
Мне надо выбрать контрагентов у которых действуют одинаковые скидки.
Вариант суммировать скидки не подходит...

Как можно это сделать?
1 wms
 
02.06.14
12:34
группируй и выводи где >1
2 ИС-2
 
naïve
02.06.14
14:18
(1) я получу только контрагентов у которых есть скидки и все
3 salvator
 
02.06.14
14:20
(2) А ты в (0) разве не то же самое хочешь получить?
4 butterbean
 
02.06.14
14:21
(0) нужны полностью одинаковые наборы скидок по ном. группам??
5 Kassius
 
02.06.14
14:21
Ответ в (1)
6 ИС-2
 
naïve
02.06.14
14:28
(4) да
7 ИС-2
 
naïve
02.06.14
14:29
можно по другому задачу сформулировать - надо сгруппировать по ТЧ
8 Kassius
 
02.06.14
14:31
После (7) можно смело в юмор =)
9 Chai Nic
 
02.06.14
14:34
Обрабатывай ЗначениеВСтрокуВнутр(Контрагент.Скидки.Выгрузить())
10 butterbean
 
02.06.14
14:35
(9) с разным порядком строк будет засада
11 Chai Nic
 
02.06.14
14:35
(10) Ну можно предварительно сортирнуть)
12 butterbean
 
02.06.14
14:35
(7) тебе нужно что-то типа контрольной суммы придумать и пихать в какой-то реквизит и по нему уже собирать
13 ИС-2
 
naïve
02.06.14
14:42
(8) было бы смешно, если это не реальная задача. Вот к чему приводит гибка ценовая политика :)
14 tdm
 
02.06.14
14:48
(12) +1, иначе совсем уже нетривиальная задачка получается(
15 catena
 
02.06.14
14:48
У меня есть запрос, находящий документы с одинаковым составом номенклатуры. Вроде даже работающий, давно дело было. Могу показать, если интересно.
16 ИС-2
 
naïve
02.06.14
14:49
(9) хорошая идея
17 Рэйв
 
02.06.14
14:50
(13)делай составной текстовый ключ из скидок с помощью ЗначениеВСтрокуВнутр()

Потом ищи совпадающие. Хоть в запрос , хоть перебором
18 Chai Nic
 
02.06.14
14:50
(14) Тривиальнее некуда..

ВремТаб=Контрагент.Скидки.Выгрузить();
ВремТаб.Сортировать(ГруппаНоменклатуры, ТипЦен, СрокДействия, Скидка);
СтрокаСкидки=ЗначениеВСтрокуВнутр(ВремТаб);

Далее заполняешь таблицу этими значениями и группируешь по ним.
19 Рэйв
 
02.06.14
14:50
опередили кажется:-)
20 Gogger
 
02.06.14
14:55
Напиши функцию ОпределитьСкидкуПоКонтрагенту(КонтрольнаяСумма).
По контрольной сумме вычисляй сумму со скидкой по правилам из ТЧ.
Если сумма со скидкой совпадает - значит суммарная скидка у контрагентов одинаковая.
21 ИС-2
 
naïve
02.06.14
15:06
анализ данных можно как-то пристроить или не стоит на него тратить время?
http://langslab.com/22-s-sol/108-analysis
22 ИС-2
 
naïve
02.06.14
15:49
пробую найти через анализ данных 2 головных контрагентов - вылетает с нехваткой памяти (всего 182 элемента).

В чем проблема?

      Анализ = Новый АнализДанных;

    // Выбранный тип анализа как раз и указывает на то, что ищем
    // "совместно продаваемые" товары.
    Анализ.ТипАнализа = Тип("АнализДанныхПоискАссоциаций");
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Контрагенты.ГоловнойКонтрагент,
                   |    Контрагенты.Ссылка
                   |ИЗ
                   |    Справочник.Контрагенты КАК Контрагенты
                   |ГДЕ
                   |    (Контрагенты.ГоловнойКонтрагент.Код = ""CEN0009977""
                   |            ИЛИ Контрагенты.ГоловнойКонтрагент.Код = ""CEN0004873"")";

    Запрос.УстановитьПараметр("НачПериода", НачПериода);
    Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
    
    // Получить продажи за указанный период.
    // Выбрана периодичность по Регистратору, т.к. необходимо получить
    // данные о совместных продажах в рамках одной покупки.
    Анализ.ИсточникДанных = Запрос.Выполнить();
    
    // Выполнить анализ в соответствии с указанным источником.
    РезультатАнализа = Анализ.Выполнить();
23 ИС-2
 
naïve
03.06.14
07:01
апа
24 butterbean
 
03.06.14
08:04
(23) на какой вопрос апаешь??
если (0) то все уже расписали
если (22) то непонятно зачем тебе там анализ данных если всего 2 головных контрагента ищется
25 ИС-2
 
naïve
03.06.14
08:39
(24) про анализ данных. Хочу что анализ данных заработал, но инфы по нему в инете мало. Может у кого-то есть примеры или конфы где он используется
Это тестовый пример, но и он не работает. 1C доходит до 1гбайта памяти и вылетает.
26 IVT_2009
 
03.06.14
09:00
я скорей всего наверное хэш прикрутил в качестве контрольной суммы. Предварительно отсортировав.