|   |   | 
| 
 | Маленький вопрос по СКД | ☑ | ||
|---|---|---|---|---|
| 0
    
        ДенисЧ 03.03.16✎ 14:12 | 
        Есть две таблички:
 первая: документ, номенклатура, количество1 вторая: документ, номенклатура, документДвижения, количество2 В СКД я их соединяю, имея соединение один ко многим от первой ко второй. Делаю вычисляемое поле дельта = Количество1 - количество2 в Детальных записях (разумеется) эта дельта не ноль, но в итоге по номенклатура и документу - 0. В ресурсе ставлю вычислять по документ, номенклатура. в детальных всё равно оно вычисляется. А потом в отбор добавляю дельта <> 0, но всё равно выводятся записи, где в деталях не ноль... Надеюсь, понятно объяснил? )) Как сделать так, чтобы отбор работал только по группировкам, а детальные не трогал? | |||
| 1
    
        mikecool 03.03.16✎ 14:13 | 
        может добавить еще один ресурс только по группировкам и по нему отбирать?     | |||
| 2
    
        ObjectRelation Model 03.03.16✎ 14:13 | 
        сделай всё это в запросе     | |||
| 3
    
        Defender aka LINN 03.03.16✎ 14:13 | 
        Делай отбор в группировке. ВНЕЗАПНО, да?     | |||
| 4
    
        mikecool 03.03.16✎ 14:14 | 
        (3) это в какой момент? в запросе?     | |||
| 5
    
        Defender aka LINN 03.03.16✎ 14:14 | 
        (4) В СКД     | |||
| 6
    
        ДенисЧ 03.03.16✎ 14:15 | 
        (3) Внезапно. Не умею. 
 (2) Таблички собираются вручную. Например, юзвери сами вводят. Запроса тут нет. И условие должно быть или не быть. От желания зависит. | |||
| 7
    
        ДенисЧ 03.03.16✎ 14:18 | 
        (3) а, я понял, что ты имеешь в виду...
 но группировок больше одной... Пользаку что, на всех задавать? | |||
| 8
    
        Defender aka LINN 03.03.16✎ 14:20 | 
        (6) Я поражен (с)
 http://screencast.com/t/3xKxvAlaN | |||
| 9
    
        Defender aka LINN 03.03.16✎ 14:21 | 
        (7) Ну, я бы может и посоветовал чего, но сломался на фразе "в отбор добавляю дельта <> 0, но всё равно выводятся записи, где в деталях не ноль..."     | |||
| 10
    
        aleks_default 03.03.16✎ 14:24 | 
        (9) я тоже на ней завис     | |||
| 11
    
        ДенисЧ 03.03.16✎ 14:24 | 
        вот примерик картинки...
 http://pics.rsh.ru/img/rep_pf994bv2.png | |||
| 12
    
        ДенисЧ 03.03.16✎ 14:25 | 
        Видим, что по одному из документов получается дубление...
 В итоге по номенклатуре должно быть 0. А имеем 24... | |||
| 13
    
        ObjectRelation Model 03.03.16✎ 14:26 | 
        (11) картинки нет     | |||
| 14
    
        Defender aka LINN 03.03.16✎ 14:27 | 
        (12) Не видим %)     | |||
| 15
    
        ДенисЧ 03.03.16✎ 14:29 | ||||
| 16
    
        Defender aka LINN 03.03.16✎ 14:31 | 
        Дык у тебя ж небось формула ресурса "Сумма(Разница)".
 А надо "Сумма(Количество1)-Сумма(Количество2)" | |||
| 17
    
        ДенисЧ 03.03.16✎ 14:37 | 
        (16) Хм...
 Цифры стали правильные, а вот отбор всё равно не срабатывает... Хотя.. Сейчас попробую в самом отчёте... | |||
| 18
    
        ObjectRelation Model 03.03.16✎ 14:37 | 
        ты же все равно документ-движения не выводишь?     | |||
| 19
    
        also 03.03.16✎ 14:38 | 
        (17) отбор на уровне всего отчета ставишь?     | |||
| 20
    
        Defender aka LINN 03.03.16✎ 14:39 | 
        (17) А что именно за отбор? "Количество <> 0"? Посмотри на мой скрин и найди 10 отличий     | |||
| 21
    
        ДенисЧ 03.03.16✎ 14:53 | 
        (18) Вывожу. Он нужен
 (19) и так и так. В пользовательском - не срабатывает, в схеме компоновки срабатывает... (20) отбор Дельта <> 0, где Дельта = Сумма(количество1) - сумма(количество2) | |||
| 22
    
        Defender aka LINN 03.03.16✎ 14:54 | 
        (21) Так вот "Дельта <> 0" и "Дельта Заполнено" - это 2 большие разницы, если что.     | |||
| 23
    
        ДенисЧ 03.03.16✎ 14:59 | 
        (22) Если что, у меня оба количества гарантированно числа. Поэтому не нуль и заполнено - это одна разница, причём маленькая.     | |||
| 24
    
        Defender aka LINN 03.03.16✎ 15:04 | 
        (23) У тебя 2 набора, т.е. левое соединение. Так что никаких гарантий.     | |||
| 25
    
        ДенисЧ 03.03.16✎ 15:10 | 
        (24) и как быть?     | |||
| 26
    
        Живой Ископаемый 03.03.16✎ 15:12 | 
        Объеднить таким образом чтобы ресурсы второй таблички были отдельными, и потом сгруппировать по тем поляем, по которым ты бы соединял.     | |||
| 27
    
        ДенисЧ 03.03.16✎ 15:16 | 
        (26) Они и так отдельные - количество1 из первой, количество2 из другой.     | |||
| 28
    
        aleks_default 03.03.16✎ 15:28 | 
        может завязаться на уровеньВГруппировке в отборе?     | |||
| 29
    
        Живой Ископаемый 03.03.16✎ 15:34 | 
        2(27)хы... ща.
 Таблица1 имеет такую запись: Номенклатура1, Документ1, КоличествоТаблицы1. Таблица2 имеет такую запись: Номенклатура1. Документ2, КоличествоТаблицы2. Что можно сделать. Соединение. в результате которого родится таблица с одной записью: Номенклатура1, Документ1, Документ2, КоличествоТаблицы1, Количествотаблицы2, (очевидно. что тут можно добавить высиляемое поле разницы.) А можно сделать ОБЪЕДИНЕНИЕ, в результате котоого родится таблица с двумя записями: Номенклатура1, Документ1, КоличествоТаблицы1, 0(Как КоличествоТаблицы2) Номенклатура1, Документ2, 0(Как КоличествоТаблицы1), Как КоличествоТаблицы2 Во втором случае Ты еще сгруппируешь по Номенклатуре1 (по тому полю, по которому бы ты соединил в первом случае) | |||
| 30
    
        Defender aka LINN 03.03.16✎ 15:34 | 
        (27) Ты внятно объясни - что надо-то.     | |||
| 31
    
        ДенисЧ 03.03.16✎ 15:37 | 
        (30) мне надо:
 по документу и номенклатуре слева составить а) список документов справа и б) вывести только те номенклатуры, где есть расхождение на уровне группировки номенклатуры (в моём случае - справок А и Б). | |||
| 32
    
        Defender aka LINN 03.03.16✎ 15:39 | 
        (31) Ну так и ставь отбор на уровне группировки номенклатуры     | |||
| 33
    
        ДенисЧ 03.03.16✎ 16:38 | 
        Мда...
 С отборами вроде разобрался, но возникла новая вопроса... Отчёт у меня компонуется программно. Ибо нужно сначала данные получить, потом их через источники данных подсунуть... Установил отчёту схему компоновки, кнопки стандартные в форме подставилсьь... Но если я делаю настройку в пользовательском режиме, то отчёт на них не реагирует. примерный код: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; тзРеализация = ""; тзТТН = ""; РасчетДанных(тзРеализация, тзТТН); СхемаКомпоновкиДанных = ПолучитьМакет("СхемаКомпоновки"); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; внДанные = Новый Структура("Реализация, ЕГАИС", тзРеализация, тзТТН); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, внДанные, ДанныеРасшифровки); Результат = ДокументРезультат; Результат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры Понятно, что берутся НастройкиПоУмолчанию... А вот как и откуда взять те настройки, что я сделал через форму? В отладчике смотрел ЭтотОбъект - там даже следов моего вмешательства не наблюдается... | |||
| 34
    
        LordCMEPTb 03.03.16✎ 16:43 | 
        (33) Настройки = СхемаКомпоновкиДанных.ПолучитьНастройки()     | |||
| 35
    
        LordCMEPTb 03.03.16✎ 16:44 | 
        (34) Тьфу, то есть КомпоновщикНастроек.ПолучитьНастройки()     | |||
| 36
    
        ДенисЧ 03.03.16✎ 16:47 | 
        О! Точно... Склеротик старый...
 Помогло, спасибо! | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |