Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запрос - распределение суммы
|
|||
|---|---|---|---|
|
#18+
Проверил еще раз пример запроса, на следующих данных: товары количество суммаа 3 100б 13 149.99 По характеристикам Товар характеристика количествоа А1 1а А2 1а А3 1а А4 1б Б1 2б Б2 5б Б3 6 Результат получился: а А1 1 33.33а А2 1 33.33а А3 1 33.33а А4 1 0.01б Б1 2 23.08б Б2 5 57.69б Б3 6 69.22 ? Программист 1сps Не претендую что максимум характеристика правильно. Но если 2 строки в которых одинаковые номера строк... Либо как вариант - у меня 1 документ с суммами, и куча документов присоединенных к нему без сумм но с характеристиками. Пусть даже нумерация правильная - легко найти вариант когда встретятся 2 разных характеристики, но у них будет номер строки одинаковый (Как пример в главном документе 1 товар, а подчиненных - два документа и в них под одной строчке с этим товаром но разными характеристиками. Любое действие с номером строки здесь будет ошибочным). Если я правильно понял суть задачи, это что-то вроде распределения доп. расходов по количеству? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 13:39 |
|
||
|
Запрос - распределение суммы
|
|||
|---|---|---|---|
|
#18+
Вы первую таблицу не поправили? там вроде теперь товары количество сумма а 4 100 б 13 149.99 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 13:53 |
|
||
|
Запрос - распределение суммы
|
|||
|---|---|---|---|
|
#18+
sWinTyz , точно забыл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 14:00 |
|
||
|
Запрос - распределение суммы
|
|||
|---|---|---|---|
|
#18+
ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Количество, ВложенныйЗапрос.Сумма ПОМЕСТИТЬ ТаблицаНоменклатура ИЗ (ВЫБРАТЬ "а" КАК Номенклатура, 3 КАК Количество, 100 КАК Сумма ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "б", 13, 149.99) КАК ВложенныйЗапрос ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Количество, ВложенныйЗапрос.Характеристика ПОМЕСТИТЬ ТаблицаХарактеристик ИЗ (ВЫБРАТЬ "а" КАК Номенклатура, 1 КАК Количество, "А1" КАК Характеристика ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "а", 1, "А2" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "а", 1, "А3" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "б", 2, "Б1" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "б", 5, "Б2" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "б", 6, "Б3") КАК ВложенныйЗапрос ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаХарактеристик.Номенклатура, ТаблицаХарактеристик.Характеристика, ТаблицаХарактеристик.Количество КАК Количество, СУММА(ТаблицаХарактеристик1.Количество) КАК КоличествоНакопительно ПОМЕСТИТЬ Накопительная ИЗ ТаблицаХарактеристик КАК ТаблицаХарактеристик ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаХарактеристик КАК ТаблицаХарактеристик1 ПО ТаблицаХарактеристик.Номенклатура = ТаблицаХарактеристик1.Номенклатура И ТаблицаХарактеристик.Характеристика >= ТаблицаХарактеристик1.Характеристика СГРУППИРОВАТЬ ПО ТаблицаХарактеристик.Номенклатура, ТаблицаХарактеристик.Количество, ТаблицаХарактеристик.Характеристика ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Накопительная.Номенклатура, Накопительная.Характеристика, Накопительная.Количество, (ВЫРАЗИТЬ(ТаблицаНоменклатура.Сумма * Накопительная.КоличествоНакопительно / ТаблицаНоменклатура.Количество КАК ЧИСЛО(15, 2))) - (ВЫРАЗИТЬ(ТаблицаНоменклатура.Сумма * (Накопительная.КоличествоНакопительно - Накопительная.Количество) / ТаблицаНоменклатура.Количество КАК ЧИСЛО(15, 2))) КАК Сумма ИЗ Накопительная КАК Накопительная ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаНоменклатура КАК ТаблицаНоменклатура ПО Накопительная.Номенклатура = ТаблицаНоменклатура.Номенклатура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 14:28 |
|
||
|
Запрос - распределение суммы
|
|||
|---|---|---|---|
|
#18+
shurikvzЕсли я правильно понял суть задачи, это что-то вроде распределения доп. расходов по количеству?Да. В принципе подойдет и для каких нибудь распределений расходов по счетам при закрытии месяца. А у меня как я уже сказал учет характеристик идет только количественный, поэтому и нужно иногда для печати делать суммовой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 15:07 |
|
||
|
Запрос - распределение суммы
|
|||
|---|---|---|---|
|
#18+
Программист 1сHoBTID, 1. С чего взято что нельзя оптимизировать одним запросом? Пример написан выше. Добавьте индексы. 2. А вы учли что метода заполнить нет для регистров накопления, и придется писать каждое поле отдельно? 3. Вы учил что sql и 1с сервер - это 2 разных машины? И логика реализованная на sql будет выполнятся на машине которая обычно гораздо менее загружена. Бессмысленно рассуждать о том, что я откуда взял, и что учел. Поскольку нет структуры таблиц и тестовых данных, разговор беспредметный. Могу ответить разве что по пункту 2. Есть процедура ЗаполнитьЗначенияСвойств(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 15:20 |
|
||
|
Запрос - распределение суммы
|
|||
|---|---|---|---|
|
#18+
HoBTID, 1 - согласен нужно смотреть. НО в моем запросе фактически также как и в запросе без распределения точно также 2 запроса к реальным таблицам, а вся остальная логика выполняется только с виртуальными таблицами. Или мы будем рассуждать что с виртуальными таблицами - "фиговенько" выполняется запрос? Не думаю. Во вторых на 2 разных компах 2 разных плана запроса - так что бессмысленно обсуждать равнение ауди и мерсов. Только 2 модели ауди еще можно было бы сравнить. 2. Не использую - очень медленно. Но согласен для простоты кода сойдет. 3. Вы не согласны что 1с сервер потребляет несравнимо больше ресурсов чем sql? Странно - можно хотябы один пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 15:47 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=37538565&tid=1520849]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 449ms |

| 0 / 0 |
