Тестовое задание

1. G.P. 11 02.09.20 13:38 Сейчас в теме
Необходимо в пустой конфигурации на платформе 8.3 на управляемых формах выполнить следующую задачу.
Организация выставляет своим контрагентам счета на оплату своих услуг. Таких счетов может быть любое количество и на любую сумму. Контрагенты платят организации совершенно рандомную сумму. Эту сумму необходимо распределить по заказам таким образом, чтобы охватить как можно большее количество заказов одной оплатой. Причем сумма оплаты <= сумме заказов.

Пример интерфейса: Имеем список Заказов на определенную сумму слева. Вводим сумму оплаты, нажимаем кнопку Обработать и на выходе справа получаем все комбинации подходящие по сумме оплаты.
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
23. Obvious 02.09.20 16:36 Сейчас в теме +3 $m
(17) вот тебе твой вариант - там Дт и сразу с примерами. надеюсь поймешь что к чему.
Прикрепленные файлы:
учеба от CptObv.dt
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
22. G.P. 11 02.09.20 16:13 Сейчас в теме
(21)
Непонятно, как это применить к решению моей задачи
Нужен уровень программирования "бог", до которого мне очень далеко
2. Alexei_Siva 184 02.09.20 13:47 Сейчас в теме
Не совсем понятна проблема/вопрос в озвученном задании.
Но что касается решения, то вроде очевидно, что заказы надо отсортировать по сумме от меньшей к большей и на что хватит денег, то и оплатить. У вас на картинке вроде всё уже отсортировано.
4. user1166203 02.09.20 13:48 Сейчас в теме
(2)
Судя по всему условие "охватить" = "полностью оплатить".
3. user856012 13 02.09.20 13:48 Сейчас в теме
Для тех, кто решит подзаработать стартмани, рекомендуется ознакомиться с предыдущей темой этого же автора: https://forum.infostart.ru/forum9/topic242136/
ubnkfl; mushdaj; +2 Ответить
5. Andrekaa 02.09.20 13:50 Сейчас в теме
6. oleg-x 27 02.09.20 13:50 Сейчас в теме +1 $m
1) Запросом получить все заказы контрагенты, которые еще не оплачены.
2) В запросе сортируешь по сумме остатка оплаты (заказ может быть на 1000, а не оплачено 100 руб)
3) Распределить последовательно оплату по заказам.
8. G.P. 11 02.09.20 13:53 Сейчас в теме
(6) логика понятна, но реализация задачи в 1С не удается. Решением считаю готовую конфигурацию с документом и обработкой
10. oleg-x 27 02.09.20 13:58 Сейчас в теме
(8) Ну это Вы уж сами, а то как иначе научитесь перекладывать алгоритмы в код. Вот интересно, две выложенные публикации, это Вы сами написали или просто выложили чье то готовое решение?
P.S. почитал, чьи то решения, при чем устаревшие.
11. G.P. 11 02.09.20 13:59 Сейчас в теме
(10) это этапы моего обучения. PS. Сам делал по работе
PPS Задачу нужно сделать до вечера, боюсь, что не успею обучиться сам, поэтому и выложил задание
9. G.P. 11 02.09.20 13:55 Сейчас в теме
(6) по логике задачи заказ может быть оплачен только полностью
Факт оплаты в конфигурации отражать не нужно. Нужны варианты распределения оплаты
12. oleg-x 27 02.09.20 14:01 Сейчас в теме
(9) Тогда задача заведомо не решима, ибо первое распределение оплат, может перекроить вторую оплату.
Суть такова клиент оплатил два заказа с большой суммой, а распределили по маленьким заказам.
А следующая оплата может не совпасть по суммам с оставшимися заказами.
Либо возможно оплата остатка частично, либо оплата должна распределятся по конкретным заказам, как оплатил клиент.
13. G.P. 11 02.09.20 14:04 Сейчас в теме
(12) Следующей оплаты не будет
Нужно сделать обработку, которая отобразит возможные варианты оплаты. Всегда одинаковые варианты при одинаковых заказах
Саму оплату выполнять не требуется
14. oleg-x 27 02.09.20 14:23 Сейчас в теме
(13) Ну тогда это все вводит в заблуждение и это обычная задачка "рюкзака", который надо заполнить полностью.
Алгоритмов на просторе интернета полно и наверняка тут есть на инфостарте, вот возьмите и скачайте шаблон.
А готовое решение Вам здесь не выложат, учитывая вашу историю поведения в прошлом посте, да и делать работу за других, не благодарное дело. Помочь да, а сделать, нужно своей головой.
16. G.P. 11 02.09.20 14:29 Сейчас в теме
(14) Открыл предыдущую тему и выпал в осадок
Какое-то недоразумение, за которое мне бесконечно стыдно
Потому что я человек честный и никогда не планировал кого-то обманывать.
3 заявленных стартмани отдам за файл конфигурации с решением задачи
18. Fril 02.09.20 14:48 Сейчас в теме
(16) Если нужно готовое решение задачи обратись в раздел "Фриланс", а тут отдай см тому кто наиболее полно, по твоему разумению, ответил\помог\подсказал на твой вопрос!
19. XAKEP 02.09.20 14:50 Сейчас в теме
20. G.P. 11 02.09.20 14:54 Сейчас в теме
(18) Непонятный раздел "Фриланс"
Там даже картинку в текст заявки нельзя вставить
Поэтому буду пытать счастья здесь на форуме
7. G.P. 11 02.09.20 13:50 Сейчас в теме
Описываю то, как понял задачу.
В конфигурации есть документ "Заказ"
В нем есть реквизит "Сумма".
В обработке слева выбираются существующие заказы.
Нажатие кнопки "Обработать" запускает выбор возможных вариантов распределения оплаты.
Да, оплата выполняется только полностью
15. XAKEP 02.09.20 14:28 Сейчас в теме
так и правда посмотрите , кто желает "Помочь" автору

https://forum.infostart.ru/forum9/topic242136/

думаю стоит задуматься.
17. G.P. 11 02.09.20 14:44 Сейчас в теме
(15) см. выше (14)
Не вгоняйте меня в краску, пожалуйста
За идею решения этой задачи я уже отдал 1 стартмани.
3 стартмани отдам за конфигурацию с решением
23. Obvious 02.09.20 16:36 Сейчас в теме +3 $m
(17) вот тебе твой вариант - там Дт и сразу с примерами. надеюсь поймешь что к чему.
Прикрепленные файлы:
учеба от CptObv.dt
24. Obvious 02.09.20 16:44 Сейчас в теме
(23) походу забыл на форму вывести реквизит "Контрагент", но думаю это не критично
25. G.P. 11 02.09.20 16:53 Сейчас в теме
(23) Огромное спасибо!
Не совсем то, что в теме на скриншоте. Оплаченную сумму и Контрагента в счете заполнять не нужно было
Но СМ за решение отдаю!
26. Obvious 02.09.20 17:15 Сейчас в теме
(25) И тебе спасибо.
Оплаченой суммой в счете - мы контролируем чтоб второй раз не разнести оплаты в тот же документ.
В любом случае - удалить пару строчек проще чем дописать :)
Оставьте свое сообщение

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