Имя: Пароль:
1C
 
Как убрать повторяющиеся значения из запроса
0 aptomilov
 
07.04.26
13:29
Например задачка
Выбрать реализации  и сумму оплаты этих реализаций по договору
Будет что то типа:           а хотелось бы
Реализация 1   Дог1   800   800
Реализация 2   Дог1   800    0
Реализация 3   Дог1   800    0

ну или как то другой вариант
1 spiller26
 
07.04.26
13:36
(0) ВЫБРАТЬ РАЗЛИЧНЫЕ
Ну или свернуть через Группировку

а где хотелось бы?
2 aptomilov
 
07.04.26
13:36
Записи то различные (реализации)
3 aptomilov
 
07.04.26
13:37
а хотелось бы надо колонкой где нолики
4 aptomilov
 
07.04.26
13:38
800   это цифра договора но не документа  
может в скд это можно как то обыгра ть?
5 arsik
 
гуру
07.04.26
13:41
(4) Итог, Максимум(сумма договора)
6 spiller26
 
07.04.26
13:44
(0) Что такое 3 по 800 и последня колонка с одним числом 800.
Даты реализаций по убыванию?

Если 3 по 800 - это сумма долга, а одна 800 - оплата, и вы хотите раскидать оплаты, то у вас нифига не получиться ни в запросе ни в СКД, т.к. оплата может быть как за 2 долга так и за один дробленая.
7 aptomilov
 
07.04.26
13:46
(5) точно похоже  
а как то убрать из основной таблицы  тогда и все
8 Homer
 
07.04.26
13:48
стаж 14 лет!!!
вы точно "программист"?!
9 aptomilov
 
07.04.26
13:52
(8)  точно точно про итоги я знал но итоги могут брать только из выборки а мне оттуда надо убрать
10 aptomilov
 
07.04.26
13:52
ВЫБРАТЬ
    ВыручкаИСебестоимостьПродаж.Регистратор КАК Регистратор,
    ВыручкаИСебестоимостьПродаж.Договор КАК Договор,
    ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
    ВыручкаИСебестоимостьПродаж.Количество КАК Количество,
    ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродаж.СуммаВыручкиБезНДС / ВыручкаИСебестоимостьПродаж.Количество КАК ЧИСЛО(15, 2)) КАК ЦенаБезНДС,
    ВыручкаИСебестоимостьПродаж.СуммаВыручкиБезНДС КАК СуммаВыручкиБезНДС,
    ВыручкаИСебестоимостьПродаж.СуммаВыручки КАК СуммаВыручки,
    СФВ.ПервичныйДокумент КАК ПервичныйДокумен,
    Оплата.СуммаОплаты КАК СуммаОплаты
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж
        ЛЕВОЕ СОЕДИНЕНИЕ СФВ КАК СФВ
        ПО ВыручкаИСебестоимостьПродаж.Регистратор = СФВ.Реализация
        ЛЕВОЕ СОЕДИНЕНИЕ Оплата КАК Оплата
        ПО ВыручкаИСебестоимостьПродаж.Договор = Оплата.Договор
ГДЕ
    ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    И ВыручкаИСебестоимостьПродаж.Количество > 0
ИТОГИ
МАКСИМУМ(СуммаОплаты)
ПО
Договор
11 Dmitrii
 
гуру
07.04.26
13:53
(0) Если взаиморасчеты ведутся по договору в целом (без разделения по документам отгрузок и оплат), то никак. Запросом такая задача не решается.

СКД позволят считать суммы по группировкам. То есть можно сделать так, что в таблице сумма "800.00" в графе оплат будет повторяться у каждой отгрузки, но в итогах эта сумма не проссумируется, а будет учтена только один раз. Но какого-то прикладного смысла в такой картинке нет.
12 aptomilov
 
07.04.26
13:57
(8) вы там пытались меня уязвить сможете решить ?
(11) да взаиморасчеты по договору в целом. Спасибо подозревал что в скд это как то обошли.
13 d4rkmesa
 
07.04.26
13:59
(0) Распределить в запросе возможно, но запрос будет нечитаемым, плюс будут вопросы к производительности, поэтому лучше так не делать. Распределение при помощи тета-соединения и поля с, грубо говоря, нарастающим итогом. Я в такое наигрался в одно время, больше не хочу.
14 aptomilov
 
07.04.26
14:01
(13) я думал может есть вариант распределения суммы на количество записей или что то типо того
15 aptomilov
 
07.04.26
14:05
Изящное решение все этой кухни это конечно скд + ручная обработка таблицы это я все понимаю  - хотелось как то запросом
Распределить оплату пропорционально выручке по номенклатуре и все а группировка сделает свое дело
16 Garykom
 
гуру
07.04.26
14:09
Классическое распределение (раскидывание) оплат (неких сумм) по договорам/документам (другим суммам)?

Ну баян же.
17 Garykom
 
гуру
07.04.26
14:11
Понимаешь что задачка на SQL нормально не решаема?
Алгоритм слишком последовательный
Приходится кучу соединений таблички с самой собой делать
18 Garykom
 
гуру
07.04.26
14:12
Точнее можно легко "размазать" сумму по всем
А вот в порядке FIFO уже сложна
19 arsik
 
гуру
07.04.26
14:16
Нужен новый движок
Назовем его FIFOSQL
20 spiller26
 
07.04.26
14:17
(15) Блин где логика в этом всём?
Реализаций 1 800
Реализация 2 800
Реализация 3 800
Оплата 1 - 500
Оплата 2 - 200
Оплата 3 - 900
Оплата 4 - 800

Как вы это всё расскидаете в запросе или в СКД я если честно не понимаю.
21 Homer
 
07.04.26
14:19
(16)-> (12)  Вы пытаетесь автора "уязвить"!
22 aptomilov
 
07.04.26
14:19
размажу тогда тупым обходом таблицы и выведу в скд
как по мне так какая нибудь функция  была бы очень кстати что то типа  Размазать Оплату по Договору ровно/пропорционально(поле) и было бы класс )

Ибо такие задачи они регулярны
23 aptomilov
 
07.04.26
14:22
Ладно спасибо всем пошел пилить СКД
думал уже чего нить придумали для таких задачек
24 spiller26
 
07.04.26
14:23
(22) За вас всё сделать считай.
25 aptomilov
 
07.04.26
14:25
все функции в 1с пишутся для того что бы за нас все делать )
26 trooba
 
07.04.26
15:49
(25) В БСП есть ОбщегоНазначенияКлиентСервер.РаспределитьСуммуПропорциональноКоэффициентам(
        РаспределяемаяСумма, Коэффициенты, Точность);

Может это поможет? А в скд можно ее использовать, как экспортную
27 Ботаник Гарден Меран
 
07.04.26
16:15
Фифо запросом баянистая тема.
Ну и никому не нужная, т.к. тормозит.

FIFO в запросе
Списание партий по FIFO одним запросом
Закон Брукера: Даже маленькая практика стоит большой теории.