0
- 11.03.2012 - 14:47
|
собственно вопросец возможно ли запросом 1С создать следующую таблицу К примеру нужно построить таблицу со значениями от 1 до 100 на входе НачЗначение = 1 и КонЗначение = 100 на выходе таблица 1 2 3 ... 100 | |
1
- 11.03.2012 - 15:05
| только лишь в частных случаях | |
2
- 11.03.2012 - 15:32
| Зачем? Или удалять гланды через задний проход - принципиальная социально-важная задача? | |
3
- 11.03.2012 - 16:22
|
2(1) Можно. Даже универсальную. ВЫБРАТЬ НашеЧисло ИЗ ( ВЫБРАТЬ 0 КАК НашеЧисло ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ... ОБЪЕДИНИТЬ ВЫБРАТЬ 99999999999999999999999999999999999999) КАК МассивЧисел Где МассивЧисел.НашеЧисло >= &МинЧисло И МассивЧисел.НашеЧисло <= &МаксЧисло УПОРЯДОЧИТЬ ПО НашеЧисло ВОЗР | |
4
- 11.03.2012 - 16:30
| (4) Длина запроса получится больше 40000 или что то типа того символов. Их 1С не кушает | |
5
- 11.03.2012 - 16:34
| 2(5) Это проблемы 1С. Юзайте пакеты и временные таблицы. | |
6
- 11.03.2012 - 16:38
| (6) С временной таблицой все слишком легко. Генерить ее по внешней таблице значений - и всего делов. | |
7
- 12.03.2012 - 08:40
|
(3) задачки бывают разными ) к примеру мне нужно было на заданный период на Каждый день сделать собрать таблицу с остатками. для дальнейшей ее обработки. естесно напрямую сделать это не получиться поскольку не каждый день есть обороты. Те мне нужна была подготовленная таблица где на КАЖДЫЙ день были какие то циферки ). Соответственно я хотел получить табличку со всеми датами из этого периода ну а числа это в таблице или даты роли не играло суть одна и таже. Конечно можно использовать и временные таблицы предварительно сформировав табличку. но меня интересовал просто способ сделать все одним запросом В общем ладно поскольку так понял что проблему типовыми средствами не решить то задачу решил частным способом | |
8
- 12.03.2012 - 08:47
|
2(8) "естесно напрямую сделать это не получиться поскольку не каждый день есть обороты" Читай про дополнение дат в запросе. Двоешник. | |
9
- 12.03.2012 - 08:52
|
) ну как бы прочитай сперва что я писал мне нужно была предварительная таблица ДЛЯ ДАЛЬНЕЙШЕЙ ее обработки а не вывод этой таблицы | |
10
- 12.03.2012 - 09:04
| 2(10) http://www.kb.mista.ru/article.php?id=92 | |
11
- 12.03.2012 - 09:46
|
хз чето не убедили... мож я действительно двоешник и туплю.. я не увидел по вашей ссылке требуемого для меня решения Приведите пожалуйста пример. Был бы весьма признателен параметры запроса ДатаНач ДатаКон Результатом запроса должна стать таблица с курсами валют скажем с 1.01.12 по 5.01.12 в регистре курсы валют указаны НЕ на каждую даты значения по регистру 02.01.12 - 30 04.01.12 - 45 результатом должна быть таблица 01.01.12 - 0 02.01.12 - 30 03.01.12 - 30 04.01.12 - 45 05.01.12 - 45 запрос должен быть таким чтоб я сделав Запрос.выполнить().выгрузить() мог получить данную таблица мне НЕ нужно синтетическое дополнение на уровне вывода данных. для меня важно чтоб данные были полными.. поскольку результирующая таблица попадает во временную таблицу для дальнейшей обработки | |
12
- 12.03.2012 - 09:57
| 2(12) зачем эта таблица? все равно ведь будет какой-то вывод - значит можно и через дополнение дат при обходе группировки использовать. | |
13
- 12.03.2012 - 10:53
| ну к примеру мы занимаемся хранением товара, до скажем 10 дней храним бесплатно свыше идет оплата по объему хранения. соответственно нам на каждый день требуется понимать сколько остатков и есть ли превышение по времени хранения.. а потом это суммировать чтоб получить сумму хранения | |
14
- 12.03.2012 - 10:58
|
можно конечно извращаться и не смотреть промежуточные данные а вводить формулы для расчета за период а не за день.. но в большом запросе это усложняет его понимание в дальнейшем гораздо проще делать расчет на каждый день.. заодно проще отлаживать и тестить | |
15
- 12.03.2012 - 11:03
|
2(14) первое, зачем знать, сколько было вчера передержанного товара, если его вчера и забрали. Это как с пенями за просрочку платежа за отгрузку. второе, нужна таблица: Груз (сам товар как единица) Дата постановки на хранение Дата когда забрали (если забрали) Дней просрочено (итого) Сумма штрафа (как объем чего-то там * дни просрочки). И ничего более. Иначе, если получишь таблицу Дата Груз Количество дней просрочки Штраф (как объем чего-то там * дни просрочки). А потом просуммируешь штрафы - получишь полную чушь. Дата - в этой задаче лишние. | |
16
- 12.03.2012 - 11:41
|
ты забываешь о том что груз можно забирать частично объясняю пусть 1 числа остаток 10 (приход) 3 числа остаток 7 7 числа остаток 4 10 числа остаток 1 оплата идет за превышение 4 дневного срока хранения те оплата будет считаться так 5 числа сумма за 7 штучек 6 числа сумма за 7 штучек 7 числа сумма за 4 8 числа сумма за 4 9 числа сумма за 4 и 10 числа сумма за 1 сумма хранения зависит от объема. объем меняется | |
17
- 12.03.2012 - 11:48
| и заметь это простейший вариант )... тут все линейно... а вот к примеру чтоб на каждый день брался средневзвешенный остаток за последние Nдней.. расчеты могут быть очень разнообразны.. и гораздо удобнее хранить полноценную таблицу с которой и работать | |
18
- 12.03.2012 - 11:55
| В общем я думаю пора прекращать спор. ты видишь задачу локально. не думая о том что это только кусочек боле объемной задачи. Мне интересен был конкретный кусочек алгоритма... просто мало ли... может в последних релизах расширили язык запросов... каюсь не слежу за этим. К примеру на скуле ж есть реализация рекурсии.. вот я и подумал.. время есть потому и спросил.. мало ли каких свежих идей подкинут). Спасибо | |
19
- 12.03.2012 - 13:38
|
Правильнее считать как (с 5 по 6 число)* 7 штук + (с 7 по 9 число) * 4 штуки + (10 число) * 1 штука. Такая формула легко извлекается запросом. | |
20
- 12.03.2012 - 13:46
|
Правильнее считать как (с 5 по 6 число)* 7 штук + (с 7 по 9 число) * 4 штуки + (10 число) * 1 штука. Такая формула легко извлекается запросом. | |
21
- 12.03.2012 - 14:36
|
(20) извини а откуда ты возьмешь 5 число? если оборотов не было по нему? у нас скажем будет 3 партии у одной 5 дневный срок наступит 4 числа у второй 5, у третьего 6... ни по одному из дней оборотов нет соответственно выводить формулами... увольте... конечно таблицу построить можно.. но мне кажется вы запутаетесь в дальнейшем когда нужно будет что-либо допилить.. отладить какой то момент. | |
22
- 12.03.2012 - 14:42
|
хотя ее можно получить от даты прихода... но мне кажется выигрыш в производительности будет копеечным, а пострадает юзабилити.. хотя я может и не прав | |
23
- 12.03.2012 - 14:44
|
Если в конфе есть РегламентированныйПроизводственныйКалендарь, то можно использовать его: ВЫБРАТЬ ДЕНЬ(РегламентированныйПроизводственныйКалендарь.Д атаКалендаря) КАК День ИЗ РегистрСведений.РегламентированныйПроизводственный Календарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКа лендаря МЕЖДУ &Дт1 И &Дт2 | |
24
- 12.03.2012 - 15:29
| (23) Ты пытаешься использовать простейшую логику при расчете, но есть и другая - более сложная, но выгодная по затратам времени и ресурсов сервера. | |
| Интернет-форум Краснодарского края и Краснодара |