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

Заполнение ТЧ Кратно упаковке

Автор BruceWayne007, 31 янв 2025, 13:40

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

BruceWayne007

Товарищи, подскажите, пожалуйста. Задача - нужно кратно отгрузить со склада и есть строки в которых мы количество не можем менять, так как назначение есть и приходиться для таких строк добавлять строки, но может быть вариант что такая строка без назначения уже есть и можно не добавлять, достаточно в строке без назначения поменять количество до необходимого, чтобы было кратно упаковке. Ход мысли - сгруппировать, для назначения посчитать кратное, если без назначения строк нет, просто добавляю строку с разностью от кратного, если есть без назначения есть, тогда складываю количество с назначением и без, вычитаю из кратного, ищу строку без назначения и складываю с разницей.


Например, было 20 шт. с назначением и 15 без, кратность 100 шт. Рассчет - 100 - (20+15) = 65, ищу строку без назначения и 15+65 = 80. А если бы было только с назначением строка 20шт., то я бы в новой добавил 80 и все. Кто-нибудь решал подобное?

antoneus

Ну в первой части вопроса вроде как и заключается ответ, то есть описан вполне себе алгоритм действий. Осталось только перевести его в код, чтобы 1с понимала что делать. Вместо того, чтобы плодить одинаковые темы, уже давно бы накодил что-нибудь :)

BruceWayne007

antoneus, я и накодил) только не то что нужно)

antoneus

Ну вот, молодец) А почему не то? Ну показывай, посмотрим.
Каждую строчку (ну или каждый логический блок кода) желательно прокомментировать - что она, по твоему мнению, делает.

BruceWayne007

На самом деле ничего сверхъестественного, сейчас у меня серверная процедура, куда я передаю свою ТЧ, там группирую, загружаю и возвращаю. Далее на клиенте перезаполняю ТЧ дока и привожу к кратному, это то как я думал, что надо сделать. Сейчас оказалось, что надо от назначения плясать. Получается, надо проверять на клиенте сначала есть ли назначение, если есть считаю кратное и потом все эти операции. Не до конца понимаю, что такое обеспечение и с чем его едят и что необходимо учитывать

BruceWayne007

antoneus, вообще может как-то иначе надо группировать

antoneus

Ну, решение любой задачи начинаем с того, что дробим ее на подзадачи.

Цитата: BruceWayne007 от 31 янв 2025, 13:40есть строки в которых мы количество не можем менять, так как назначение есть и приходится для таких строк добавлять строки

"Назначение есть" - это что значит?

BruceWayne007

antoneus, если я правильно понимаю, то это заказы

antoneus

Ну как-то примерно так:

Создаем новую ТЗ - Номенклатура, КоличествоСНазначением, Количество, КоличествоВУпаковке. Заполняем ее по ТЧ. Сворачиваем (группируем по Номенклатуре и КоличествуВУпаковке, складываем Количество и КоличествоСНазначением). В цикле по ней бегим. Вычисляем для каждой строки остаток:

Остаток = (ТекСтрока.КоличествоСНазначением + ТекСтрока.Количество) % ТекСтрока.КоличествоВУпаковке;
Если Остаток <> 0 Тогда//
    Если ТекСтрока.Количество <> 0 Тогда//строка без назначения есть, надо ее найти и приплюсовать остаток
    Иначе//нужно добавить строку без назначения и положить в нее остаток


Теги:

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

Рейтинг@Mail.ru

Поиск