|
v8: Решение задачи 1.19. Спец по платформе. | ☑ | ||
---|---|---|---|---|
0
wwwqwert2014
02.01.14
✎
19:59
|
Решал задачу 1.19 из сборника по спецу по платформе. Вот интересует, насколько рационально я её решил.
Что конкретно интересует. Модуль объекта РасходнаяНакладная. 1. Правильно ли я решал проблему "копеек" в РН Продажи (Обороты). 2. Интересует, рационально ли я вообще сделал обработку проведения РАсходнаяНакладная. Что конкретно смущает: ТЗАналоги = МассивРезультатов[3].Выгрузить(); ТЗАналоги.Индексы.Добавить("РодительНоменклатура"); //далее в цикле поиск: Отбор = Новый Структура; Отбор.Вставить("РодительНоменклатура", ВыборкаДетальныеЗаписи.Номенклатура); Строки = ТЗАналоги.НайтиСтроки(Отбор); Вот DT http://zalil.ru/34879880 |
|||
1
wwwqwert2014
02.01.14
✎
19:59
|
вот условие задачи
Задача 1.19. Компания занимается оптовой торговлей. У некоторых товаров могут быть аналоги - другие позиции номенклатуры с теми же потребительскими свойствами и ценой, причем таких аналогов у товара может быть несколько. Каждой номенклатурной позиции присваивается уникальный артикул, считается, что пользователь сам контролирует уникальность артикулов и назначает их вручную. Закупка товаров отражается документом «Приходная накладная», продажа - Расходная накладная». Учет остатков ведется в разрезе складов. В документах «Приходная накладная» и «Расходная накладная» склад только один (склад - реквизит шапки). Продажи оформляются документом «Расходная накладная». В случае нехватки товара автоматически должен списываться его аналог. В том случае, когда не хватает не только товара, но и всех его аналогов, документ не должен доводиться. Порядок списания аналогов определяется артикулом. Следует учитывать, что один и тот же товар может являться аналогом различных номенклатурных позиций. Себестоимость товаров рассчитывается как средняя по складу. Необходимо построить отчет по продажам товаров и их аналогов за период. |
|||
2
ИсчадиеADO
02.01.14
✎
20:14
|
смотри на сайте у GROOVY http://chistov.spb.ru/forum/16
|
|||
3
Лефмихалыч
02.01.14
✎
20:24
|
найтиСтроки - это уже сразу не оптимальное решение
|
|||
4
Лефмихалыч
02.01.14
✎
20:25
|
А копейки решаются просто
Движение.Себестоимость = ?(КоличествоСписать = КоличествоОстаток, СебестоимостьОстаток, СебестоимостьОстаток/КоличествоОстаток*КоличествоСписать) |
|||
5
GANR
02.01.14
✎
22:00
|
(0) Выгрузка результата запроса в таблицу значений - это сразу минус один балл, а уж если запрос в цикле в тех задачах - за это сразу с экзамена просто обязаны выгнать. Вот здесь http://www.1c.ru/rus/partners/training/files/ATT82PL.zip требования к решению.
|
|||
6
Лефмихалыч
02.01.14
✎
22:09
|
(5) запрос в цикле - это почему-то два балла всего. При условии, что других ошибок больше, чем на полбалла нет, с запросом в цикле можно сдать на трояк.
|
|||
7
GANR
02.01.14
✎
22:14
|
(6) Будь я на месте преподавателя, на меня-бы такой запрос как красная тряпка на быка подействовал. Это явный сигнал, что человек не умеет пользоваться запросами, а это 70% дела в 1С.
|
|||
8
Coldboy
02.01.14
✎
23:10
|
(7) а спецы в БП 2.0 почему то запросы в цикл загоняют и ниче ...
|
|||
9
GROOVY
02.01.14
✎
23:12
|
||||
10
GROOVY
02.01.14
✎
23:17
|
(0) В регистре оборотов есть "проблема копеек"? - интересно...
|
|||
11
etc
03.01.14
✎
06:53
|
Я вот только одну магическую фразу не понял: "Порядок списания аналогов определяется артикулом." Приоритет определять сортировкой по буквенно-цифровому значению чтоли?
|
|||
12
floody
03.01.14
✎
08:51
|
(11) для учебных целей, почему бы нет?
(0) у Гилева есть видео с решением задачи аналогов (если не смотрел) (5) ТЗ в этой задаче нужна, в нее выгружается результат запроса, но не для того, чтобы по ней потом списывать товар, а чтобы хранить в ней количество УЖЕ списанное на предыдущих шагах цикла (как аналоги других товаров) |
|||
13
МастерВопросов
03.01.14
✎
10:37
|
(3) а как кашерно? В запросе к таб.части присоединять аналоги и остатки, а потом обход результата запроса по иерархии?
|
|||
14
wwwqwert2014
03.01.14
✎
11:17
|
(10) То есть нет проблемы копеек в регистре оборотов?
А как же такая ситуация: Хотим продать 11 позиций номенклатуры "Ручка шариковая". Сумма 11 позиций составляет 200 рублей. Причём на складе есть 7 "Ручка шариковая" и 4 "Ручка Bing". Они являются аналогами. Если не заморачиваться по поводу копеек, то получаются следующие записи в РН Продажи: Движение1.Номенклатура = "Ручка шариковая"; Движение1.Сумма = 200/11 / * 7 = 127,27 руб. Далее продаём аналог Движение2.Номенклатура = "Ручка Bing"; Движение2.Сумма = 200/11 * 4 = 72,72 Таким образом, по двум движениям регистров получается, что общая сумма продажи составляет 199,99 руб. 1 копейка потерялась. Собственно поэтому и вопрос, как в оборотном РН Продажи ПРАВИЛЬНО решать проблема копеек |
|||
15
wwwqwert2014
03.01.14
✎
11:17
|
Сорри чуть опечатался. Так правильно
Движение1.Сумма = 200/11 * 7 = 127,27 руб. |
|||
16
Coldboy
03.01.14
✎
11:28
|
(15) а последнюю копейку ты повесил куда ?
|
|||
17
floody
03.01.14
✎
11:36
|
(14) то, что вы описали, это не проблема
проблема копеек - когда остаточный регистр не закрывается и пухнет |
|||
18
wwwqwert2014
03.01.14
✎
11:46
|
я вообще для решения этого делал всегда так: Заподил переменную ОсталосьСписатьДенег и из общей сумма вычитал Движение.Сумма. И тогда всё тютелька в тютельку сходится.
Всё работает, но вот только это лишние проверки и лишний код и лишнее время на экзамене. Как я понимаю из сообщения floody, по этому поводу можно не заморачиваться и никто баллы не снимет, так? |
|||
19
Alexman13
03.01.14
✎
11:49
|
В оборотном регистре это не проблема.
И вообще если правильно применять округление, то 200/11 * 4 = 72,73 |
|||
20
Лефмихалыч
03.01.14
✎
11:53
|
(14) какая половая религия запрещает записать продажи одной строкой:
Движение.Номенклатура = Ручка; Движение.Количество = 11; Движение.Сумма = 200; ? |
|||
21
Лефмихалыч
03.01.14
✎
11:55
|
это в остатках копейки могут засесть потому, что остатки надо по партиям раскидать
|
|||
22
GANR
03.01.14
✎
12:09
|
(8) Запрос, конечно, можно загонять в цикл, но это надо делать умеючи - иногда запрос в цикле может работать и быстрее, так как INDEX SEEK быстрее, чем INDEX SCAN в плане запроса.
|
|||
23
wwwqwert2014
03.01.14
✎
12:24
|
(20) потому что номенклатура разная
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |