К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Опять я к Вам со своими запросами )

Гость
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) Ты пытаешься использовать простейшую логику при расчете, но есть и другая - более сложная, но выгодная по затратам времени и ресурсов сервера.


К списку вопросов






Copyright ©, Все права защищены