Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 фев 2025, 17:20

Группировка в ТЧ

Автор BruceWayne007, 29 янв 2025, 18:33

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

BruceWayne007

Всем привет. Подскажите, пожалуйста, группирую ТЧ в запросе, суммируемые поля - количество, остальные в группировке. и все ок. Но если одно из группируемых полей не совпадает, то таблица не схлопнется, а мне хотелось бы, чтобы это происходило только по полю Номенклатура и Характеристика. Есть идеи, как можно сделать?

BruceWayne007

BruceWayne007, убрать все поля кроме тех, что хочу сгруппировать

LexaK

BruceWayne007, еще такой вариант
группируйте по Номенклатура и Характеристика
по остальным полям  агрегируйте, например

Максимум(ТЧ.реквизитЧтоТам) как реквизитЧтоТам,
Максимум(ТЧ.реквизитЧтоТам2) как реквизитЧтоТам2,
Сумма(Количество) как Количество    - а это суммируем
если помогло нажмите: Спасибо!

BruceWayne007

LexaK, вообще я решаю задачу - где мне надо менять количество товара до кратного в зависимости от количества в упаковке. Думал сделать через группировку, но, видимо, надо как-то иначе. Либо я криво группирую. Т.е. если допустим в упаковке 100, а в заказе 2 строки 23 и 36, чтобы не каждую строку до 100 обновляло, а суммировало, например 59 и тогда уже до 100. Ведь по сути это одна упаковка.

LexaK

BruceWayne007, все правильно, сначала первая часть выполняется
Суммирование 23 и 36 = 59   - получается одна строка в ТЧ с этим товаром
к ней еще подтяните кратность,
и затем расчет, примерно такой

в цикле (можно и в запросе)
Для каждого лкСтр Из лкРезультат Цикл

лкКолОбщ = лкСтр.Количество / лкСтр.Кратность; //общая кратность
лкКолУп = Цел(лкКолОбщ); //получаем целое количество полных упаковок
Если лкКолОбщ <> лкКолУп  Тогда
лкКолУп = лкКолУп + 1; //учет не полной упаковки до полной
КонецЕсли;

//количество кратное целым полным упаковкам
лкСтр.Количество = лкКолУп * лкСтр.Кратность;

КонецЦикла;

ВашаТЧ.Загрузить(лкРезультат);

 

если помогло нажмите: Спасибо!

BruceWayne007

LexaK, спасибо) вопрос в том, что если я группирую по 2 полям, то у меня все остальные поля становятся пустыми. Т.е. это внешняя обработка, вида ЗаполнениеОбъекта - я передавал через ВладельцаФормы ТЧ документа в параметр серверной. В серверной Выгружал ТЧ в ТЗ, ТЗ в парметр запроса, там группировал и суммировал и обратно на клиента и в ТЧ. Простите, если криво объясняю. Как итог, например у меня есть товары одинаковый, но например какие-то стоят к обеспечению, какие-то нет. Если я группирую по всем полям, то что мне делать с теми у кого обеспечение деятельности разное. Если группирую только по номенклатуре и характеристики, то в ТЗ логично остается заполненным только поле номенклатура, характеристика и количество. В таком случае, может вообще как-то иначе надо подходить к решению задачи. Буду уточнять еще, какой итоговый вариант мой руководитель видит. ДУмал сам поискать подобные решения, но так и не нашёл. Простите за много букав

LexaK

BruceWayne007, ааа, это вам надо механизм обеспечения разбирать
тогда не надо предварительно сворачивать  ТЧ по товарам и считать общее количество

1.то что Отгрузить округлять до целых коробок в низ
- так как болше остатка на складе отгрузить не сможете
2.то что к обеспечению (для закупки) округлять до целых коробок вверх
(с учетом отброшенного кол-ва из п.1)


если помогло нажмите: Спасибо!

LexaK

это если товар разбился на две строки, т.е. часть не хватает

а если все хватает то округляйте до целой упаковке вверх.
если помогло нажмите: Спасибо!

BruceWayne007

LexaK, а если у меня это заказ на перемещение - в нем "обеспечивать", "не обеспечивать" и "резервировать". И т.е. я делаю условие по обеспечению внутри обхода каждой строки ТЧ и в зависимости от значения обеспечения вычисляю количество? а если обеспечение совпадет? может тогда лучше сгруппировать по всем, а потом в зависимости от обеспечения шагать? Вообще, конечно, я еще жду обратной связи от руководителя. Может он иначе считает, но хотелось бы самому разобраться.

LexaK

BruceWayne007, как вариант
отбором Товар + хар-ка из ТЧ находите строки
если одна строка то просто округяете упаковки до полной
если несколько строк, то проверяете вид обеспечения
и что-то округляете вниз, что-то вверх

помещаете все обратно в ТЧ и еще раз выполняете расчет обеспечения
(может не хватить остатков, тогда строка разобъъется)

а еще лучше, сразу бы вели учет товара Упаковками!  а не штуками!!!  :befhbt:
и тогда всеь этот гимор был бы не нужен
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск