![]() |
#22 |
Участник
|
вот видите как замечательно.
Сразу появилась масса тем для обсуждения. 1. мне очень нравится, что вы сразу начали говорить про оптимизацию... как времени выполнения, так и оптимизацию объектов. 2. Вопросы: Цитата:
Изначально опубликовано i-sergey
.... смотрим в таблицу Product Group, по ней мы будем строить группировки товаров при выгрузке в Excel. Бежим поочередно по всем группам при этом фильтруя таблицу Item и читая из нее все записи, и создаем записи в Excele. При переходе на каждую следующую запись в Product Group создаем группу в Excel, ну и для красоты по умолчанию ее схлапываем. Цитата:
Изначально опубликовано i-sergey
В конце на всякий случай фильтруем таблицу Item по пустой Товарной группе и выгружая все товары, которые не попали под товарные группы. Таким образом мы выгрузим все позиции сгруппировав их. Цитата:
Изначально опубликовано i-sergey
Теперь следующий этап - нам надо выгрузить цены, причем их должно быть несколько. Мы можем либо определить заранее какие цены мы будем выгружать либо выгружать все возможные варианты. К примеру в первом случае мы хотим выгрузить цены когда "Тип продажи" = "Все Клиенты", "Тип продажи" = "Группа Скидки Клиента"+"Код продажи"="хххх" и "Тип продажи" = "Группа Скидки Клиента"+"Код продажи"="yyyy". Тогда беря товар из таблицы Item идем в таблицу Sales Prices фильтруем ее сначала для первого столбца с ценой, потом для второго и третьего, беря из нее последние записи, и предварительно фильтруем ее, чтобы "Дата Конца Цены" > рабочей даты. 1. вы указали место, где может быть выбор 2. вы предложили свой вариант. Если консультант не в курсах, то он, в крайнем случае, может выбрать ваш. Плоха одна вещь: 1. Записей, для которых "дата конца цены" > рабочей даты может быть несколько 2. почему рабочая дата? Но это пока постановка задачи, консультантская часть, так сказать. Теперь программистская часть. Как будете решать коллизии? Случаи когда есть несколько подходящих записей и нет ни одной? Можно ли увидеть ваш алгоритм хотя бы на всеводкоде или блок схему? Цитата:
Изначально опубликовано i-sergey
есть еще замечательный codeunit Sales Price Calc. Mgt., но на первый взгляд я там не обнаружил функции которая могла бы вернуть значение с ценой (видимо кроме как из документов продажи его не попользуешь, хотя могу и ошибаться) ![]() Но уровень понятен. Спасибо. Цитата:
Изначально опубликовано i-sergey
В случае, если нам не надо выгружать позиции по которым нет никаких цен, то мы просто не делаем запись в Excel. Как вы определите, что по позиции нет никаких цен? Цитата:
Изначально опубликовано i-sergey
Это если писать с минимальным воздействием на стандартные объекты, а можно еще добавить в таблицу Sales Prices поле Product Group Code из Item и тогда можно будет бегать только по таблице Sales Prices, что ускорит выгрузку и позволит попроще решить вопрос, если не надо выгружать строки без цен (т.к. таковых просто не будет ![]() Поговорим о скорости? Итак, вы выбрали Эксель. Причем заполняете не range, а каждую ячейку по отдельности. Приведите оценку скорости заполнения для 10 тыс наименований номенклатур и 10 колонок. Вас устраивает эта оценка? Как повысить производительность? Про оптимизацию SalesPrice я понял. Приведите оценку скорости заполнения для модифицированного алгоритма. Вас устраивает скорость заполнения модифицированного варианта? Что можно сделать для повышения производительности? Далее. 1. Зачем добавлять поле Product Group Code? Можно ли решить задачу по-другому? 2. Сейчас вы предложили последовательную выборку из четырех сущностей = Тип продажи == Product Group === Item ==== Sales Prices Вы точно уверены, что у вас получатся ровные колонки? ![]() Вы уверены, что у вас цены попадут в свою колонку? Как вы это сделаете программно? приведите алгоритм на псевдоязыке. Ну и, наконец, если вы решили вынести обсуждение на публику, приведите оценку стоимости вашего решения и времени, которое вам потребуется для решения. На самом деле, не знаю как другим. Но мне в принципе понятно. Спасибо, i-sergey. Вы предложили не самое худшее решение, но и не самое лучшее ![]() Посмотрим что вы скажете по деньгам и срокам. |
|
|
|