Умножение табличных частей документа

1. rosenword 06.03.21 01:08 Сейчас в теме
Доброго времени суток! Вопрос возможно глупый, однако самому пока разобраться не получается. В БП в документе ПеремещениеТовара есть колонки коэффициент и количество. Коэффициент зависит от выбора измерения количества товара, но думаю это не сильно влияет к вопросу. Нужно, чтобы в Количестве стояла цифра умноженная на Коэффициент, если он больше 1. Думаю ничего страшного если обойтись без условия и переумножить все строки, даже те где стоит 1. Данные в документ берутся запросом из документа ПоступлениеТоваровИУслуг. Как выполнить это переумножение колонки Коэффициент на Количество с последующей вставкой в Количество? Это делать прямо в запросе, если да то как это будет выглядеть? Или это надо лезть в документ ПоступлениеТоваровИУслуг и править что то там?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alex_E 2355 06.03.21 06:35 Сейчас в теме
Там ещё, ЕМНИП, есть колонка количество мест, и таки Количество = КоличествоМест * Коэффициент... Сделано все верно - есть "базовая" единица измерения (в ней и указывается количество), есть единица измерения, отличная от "базовой", которую можно указать в документе (в ней будет количество мест), и есть коэффициент, это количество в "базовых" единицах в одном месте.
Вроде как такова логика разработчика, а какую логику Вы исповедуете, когда из трёх колонок (ед.изм., количество мест и коэффициент) начинаете использовать только коэффициент?
3. rosenword 06.03.21 08:44 Сейчас в теме
(2) К сожалению полной логики работы документа я не знаю. Мне просто сказали доработать, чтобы было так и так.
4. Alex_E 2355 06.03.21 08:54 Сейчас в теме
(3)
Мне просто сказали доработать, чтобы было так и так.
)))) знакомо, потом, если возникнут вопросы, что за хрень ув учёте знаете как ответят Ваши постановщики задач? Я знаю - "Программист хреновый попался!"))))

По существу вопроса - в запросе можно получить данные, в результате запроса всё пересчитать, но документ от этого не пострадает изменится. Для того, чтобы программно изменить документ надо получить на него ссылку (вот тут легко запросом выбрать нужные документы), потом по этой ссылке получить объект, и уже в объекте сделать нужные изменений, например, обойти табличную часть в цикле и перемножить что захочется, потом сохранить объект. Если нравится получать и считать всё запросом, то, опять таки получив объект по ссылке очистить изменяемую табличную часть, и загрузить готовы результат из таблицы значений запроса и сохранить объект...вариантов много, но одно дело техническая реализация хотелки заказчика, и совсем другой уровень - понимание процесса, и понимание того, к чему приведут твои настройки, и что получится в результате...
Вообще, очень часто бывает, что заказчик настройки неверно формулирует свою хотелку, или заказчик и исполнитель под одними и теми же словами "понимают" разные сущности...в общем, ИМХО, Вас ждет "много открытий чудных", как сказал поэт когда-то давно......
vadeem_13; +1 Ответить
5. rosenword 06.03.21 08:58 Сейчас в теме
(4) Спасибо за комментарий, учту на будущее, что такое возможно. А изменить текущий запрос не получится, чтобы он сразу подставлял нужные данные?
6. Alex_E 2355 06.03.21 09:05 Сейчас в теме
(5) Ещё раз - результат запроса, по факту некоторый набор данных, который считывается из базы данных. Документ в базе данных - это другой набор данных... Вот сейчас классика непонимания, что Вы имеете ввиду под
А изменить текущий запрос не получится
?
У меня сразу не один вопрос возникает:
1. Что есть текущий запрос?
2. Кто написал этот текущий запрос? если Вы, то
3. Кто запретит Вам его менять?
4. Что Вы хотите изменить изменив текущий запрос?
....

про
сразу подставлял
см. выше - запрос не может менять документы...
7. rosenword 06.03.21 09:11 Сейчас в теме
(6) 1) Если я правильно понимаю текущий запрос берет данные из документа ПоступлениеТоваровИУслуг и подставляет в ТЧ этого документа.
2) Писал не я.
3) Никто не запретит
4) Хочу изменить, чтобы при подстановке данных сразу ставились перемноженные значения. И если это возможно, то к сожалению, я не понимаю, что и как. Поэтому и спросил можно ли так, и если можно, то как дописать или что поменять в нем.
8. Alex_E 2355 06.03.21 09:13 Сейчас в теме
(7) Можно вставить сразу перемноженные значения - не вопрос, только мне таки кажется перемножать надо количество мест на коэффициент, но тому кто задачи ставит виднее...
9. rosenword 06.03.21 09:17 Сейчас в теме
(8) Перечитал Ваши ответы. Вроде что то понял. Попробую перемножить коэффициент на кол-во и кол-во мест на коэффициент. Спасибо Вам огромное за помощь.
10. Alex_E 2355 06.03.21 09:18 Сейчас в теме
11. spacecraft 06.03.21 11:00 Сейчас в теме
Это все когда должно происходить? При записи/проведении документа?
А теперь подумайте, что будет если документ перезаписать/перепровести? А раз 100?

Если заказчик хочет в документе видеть готовое количество с коэффициентом, то логично сделать дополнительную колонку (где и вычислять что нужно) на форме и выводить ее.
12. rosenword 06.03.21 11:25 Сейчас в теме
(11) Как я понял при открытии документа. О новой колонке тоже думал и хотел уточнить у заказчика на счет этого, но перед этим решил попробовать найти решение другим путем.
13. spacecraft 06.03.21 11:56 Сейчас в теме
(12) при открытии документа заменяете данные физической таблицы документа. Документ становится модифицированным и требует перезаписать/перепровести с новыми данными.
Т.е. было Кол-во 10, Коэф. 2.
При открытии Кол-во становится 20. Записали.
Еще раз открывают. Кол-во становится 40. Записали.
И так много раз.

Хотя, скорее всего ошибку записи выдаст уже на первой попытке перепровести, так как товара может не хватать.

Тут нужно на форме (только на форме без изменения структуры метаданных самого документа) добавить колонку, в которую и выводить рассчитываемые данные. Они нужны только для визуального представления пользователю. Их в базу записывать не нужно.
14. rosenword 06.03.21 12:19 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот