gifts2017

Порядковый номер в запросе (Новым простым способом)

Опубликовал Ivan Veres (MrFlanker) в раздел Программирование - Практика программирования

По образованию я прикладной математик, ну не смог без боли в глазах смотреть на предлагаемый всюду способ образования натуральных(порядковых) чисел в запросе. Заодно список дат по порядку.

Предлагаю новый простой способ. (с) Верес Иван 2014

Я минут 15 думал как получить натуральный ряд в запросе (специально не стал смотреть как устроено решение в интернете, чтобы не пойти по накату)

Поставил задачу получить линейную функциию от декартового произведения нескольких множеств  .
Поиграл с простыми числами, рядами.... применил теорию вероятности (в части распределения)... почти добился результата... но некоторые записи все таки повторялись, что конечно легко решалось группировкой. Но хотелось не терять ни одной строчки декартового произведения. Как только я поставил это условие, сразу пришло просто решение.

Изучив предложенный код вы сами с легкостью напишите запросы для ваших нужд. 

Добавив условие  "Выражение" < 500 легко ограничть список из 1024 элементов... если вам нужно только 500. 
Преимуществом данного способа является то что он совершенно нетрудоемок для "компилятора", у меня список из 1..1000000 элементов формируется 10 секунд и еще 12 секунд просто выводится в отчет.  

На всякий случай добавил запрос для формирования списка дат по порядку от ДатаНач до ДатаКон

Надеюсь с новым способом ваши запросы станут еще элегантнее и чуть чуть быстрее.

Порядковый Номер 1..64  

ВЫБРАТЬ	0 КАК Поле ПОМЕСТИТЬ Числа 
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ	(Числа1.Поле+4*Числа2.Поле+16*Числа3.Поле)+1 КАК Поле
ИЗ Числа КАК Числа1, Числа КАК Числа2, Числа КАК Числа3
УПОРЯДОЧИТЬ ПО	Поле

Порядковый Номер 1..256

ВЫБРАТЬ	0 КАК Поле ПОМЕСТИТЬ Числа
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ	(Числа1.Поле+4*Числа2.Поле+16*Числа3.Поле+64*Числа4.Поле)+1 КАК Поле
ИЗ Числа КАК Числа1, Числа КАК Числа2, Числа КАК Числа3, Числа КАК Числа4
УПОРЯДОЧИТЬ ПО Поле

Порядковый Номер 1..1024

ВЫБРАТЬ	0 КАК Поле ПОМЕСТИТЬ Числа
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ	(Числа1.Поле+4*Числа2.Поле+16*Числа3.Поле+64*Числа4.Поле+256*Числа5.Поле)+1 КАК Поле
ИЗ Числа КАК Числа1, Числа КАК Числа2, Числа КАК Числа3, Числа КАК Числа4, Числа КАК Числа5
УПОРЯДОЧИТЬ ПО Поле

Порядковый Номер 1..1000000

ВЫБРАТЬ	0 КАК Поле ПОМЕСТИТЬ Числа
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ	(Числа1.Поле+10*Числа2.Поле+100*Числа3.Поле+1000*Числа4.Поле+10000*Числа5.Поле+100000*Числа6.Поле)+1 КАК Поле
ИЗ Числа КАК Числа1, Числа КАК Числа2, Числа КАК Числа3, Числа КАК Числа4, Числа КАК Числа5, Числа КАК Числа6
УПОРЯДОЧИТЬ ПО Поле

Интервал дат ДатаНач..ДатаКон (но не более 1024 дня)

ВЫБРАТЬ   0 КАК Поле ПОМЕСТИТЬ Цифры
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ   1
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ   2
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ   3;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1024 
Числа1.Поле + 4 * Числа2.Поле + 16 * Числа3.Поле + 64 * Числа4.Поле + 256 * Числа5.Поле + 1 КАК Поле
ПОМЕСТИТЬ Числа 
ИЗ   Цифры КАК Числа1,   Цифры КАК Числа2,   Цифры КАК Числа3,   Цифры КАК Числа4,   Цифры КАК Числа5
УПОРЯДОЧИТЬ ПО   Поле ;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, Поле) КАК ПолеДата
ИЗ   Числа КАК Числа
ГДЕ Поле < = РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ДЕНЬ)

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Ivan Veres (MrFlanker) 18.01.14 06:29
Уже несколько раз размещал, отрезается последняя строчка в алгоритме формирования Дат
(размещаю зедсь)

Интервал дат ДатаНач..ДатаКон (но не более 1024 дня)
ВЫБРАТЬ	0 КАК Поле ПОМЕСТИТЬ Цифры
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ	1
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ	2
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ	3;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1024 
Числа1.Поле + 4 * Числа2.Поле + 16 * Числа3.Поле + 64 * Числа4.Поле + 256 * Числа5.Поле + 1 КАК Поле
ПОМЕСТИТЬ Числа 
ИЗ	Цифры КАК Числа1,	Цифры КАК Числа2,	Цифры КАК Числа3,	Цифры КАК Числа4,	Цифры КАК Числа5
УПОРЯДОЧИТЬ ПО	Поле ;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, Поле) КАК ПолеДата
ИЗ	Числа КАК Числа
ГДЕ Поле <= РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ДЕНЬ)
...Показать Скрыть
2. Ivan (tanzwut) 18.01.14 08:49
(1) MrFlanker,
Это конечно, прикольно - 4 цифры, двоичная система, непонятная с первого взгляда начинающему формула... Чтобы понять эту формулу, надо потрудиться, подумать. А очень многие программисты 1С (по моему личному опыту) очень хорошо составляют алгоритмы, но создать и понять формулу (тем более сложную) для них становится очень трудной задачей. Не все они изучали высшую математику, статистику и т.д. Программист должен написать расчет по предоставленной ему формуле - вот его основная задача при сегодняшнем подходе.
Поэтому Ваш ограниченный вариант (1024 числа) можно заменить более понятным для простого человека:

ВЫБРАТЬ    0 КАК Поле 
ПОМЕСТИТЬ Цифры
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ    1
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ    2
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ    3
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ    4
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ    5
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ    6
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ    7
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ    8
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ    9;
 X 
ВЫБРАТЬ ПЕРВЫЕ 1000000 
Числа1.Поле + 10 * Числа2.Поле + 100 * Числа3.Поле + 1000 * Числа4.Поле + 10000 * Числа5.Поле + 100000 * Числа6.Поле + 1 КАК Поле
 
ИЗ    Цифры КАК Числа1,    Цифры КАК Числа2,    Цифры КАК Числа3,    Цифры КАК Числа4,    Цифры КАК Числа5,    Цифры КАК Числа6
УПОРЯДОЧИТЬ ПО    Поле ;
...Показать Скрыть


Все в десятичных числах, какой предел нужен, такой и ставим. Зачем эти вычисления в двоичной системе? Кто их поймет?
Это из разряда, когда мне поставили задачу: сделать мотивацию торговых представителей от объема сбыта, но так, чтобы один торговый работает со 100 небольшими клиентами и имеет объем 1000000, а второй - с 20 крупными и имеет объем 5000000. Пришлось извратиться и использовать логарифм от объема: все равно заказчику важен конечный результат, а не формула (которую он, кстати, и не видит и не понимает).
cleaner_it; +1 Ответить 1
3. Nathan Rothschild (Rothschild) 18.01.14 09:08
(0)
Олимпиадные задачи по математике всегда вызывали у меня
чувство чуть ли не религиозного благовеения...
***
но меня больше интересует более практическая задача:
как можно пронумеровать произвольную выборку запроса, а именно -
- вставить колонку "НомерСтроки" и заполнить ее порядковыми номерами строк в выборке???
4. Nathan Rothschild (Rothschild) 18.01.14 09:16
(3)
это может пригодиться для дополнения двух таблиц "друг другом" в итоговой таблице
как это обсуждается на ветке
http://forum.infostart.ru/forum26/topic102445/

там это решается по "тупому" -
- таблицы выгружаются в ТЗ,
программно перенумеруются с созданием колонки "НомерСтроки"
и загружаются в запрос обратно для соединения.
5. Ivan (tanzwut) 18.01.14 10:30
(3) Rothschild,
Все уже придумано до нас:
ВЫБРАТЬ
	СписаниеТоваров.Ссылка,
	СписаниеТоваров.Дата,
	СписаниеТоваров.Номер
ПОМЕСТИТЬ Доки
ИЗ
	Документ.СписаниеТоваров КАК СписаниеТоваров
УПОРЯДОЧИТЬ ПО Дата, Номер;
 X 
ВЫБРАТЬ count(Доки_2.Дата) КАК Порядок, Доки_1.Дата, Доки_1.Номер, Доки_1.Ссылка
ИЗ Доки КАК Доки_1 
inner join Доки КАК Доки_2 on
	Доки_1.Дата >= Доки_2.Дата
group by Доки_1.Дата, Доки_1.Номер, Доки_1.Ссылка
УПОРЯДОЧИТЬ ПО Порядок
...Показать Скрыть


не все операторы перевел на русский язык, но, думаю, и так понятно. в оригинальной статье есть еще несколько примеров.
Взято с sql.ru

А вообще жаль, что 1С не поддерживает функцию SQL 2005 типа "ROW_NUMBER() OVER(ORDER BY name ASC)"
mikhailovaew; brr; Evil Beaver; Rothschild; +4 Ответить 1
6. Nathan Rothschild (Rothschild) 18.01.14 10:40
(5) tanzwut,
Испльзование агрегатной фукции COUNT для нумерации
строк мне как-то и в голову не могло придти!

Пример не очень удачный, не универсальный -
- завязан на конкретный пример с хронологией документов.

И проканает ли использование УПОРЯДОЧИТЬ при укладывании
сортируемой выборки во временную таблицу???
***
У меня под 8.1 этот номер ни разу не выходил!!!
7. Ivan (tanzwut) 18.01.14 10:46
(6) Rothschild,
там это необязательно. я делал себе для проверки. эту строку можно удалить.
единственный минус этого примера - при наличии одинаковых дат, нумерация строится неверно.
т.е. требование - в нумеруемой таблице в поле (полях) сортировки должны быть уникальные значения.
Если сортировка идет по двум и более полям, то и запрос в объединении надо соответственно подправить.
8. Ivan Veres (MrFlanker) 18.01.14 10:49
(2) tanzwut, Ну так я специально несколько вариантов написал.

- вариант с миллионом записей нельзя использовать для маленьких таблиц,.... он же будет обрабатывать большую часть таблицы из миллиона записей (для условия ГДЕ Выражение<1000,... уже порядка секунды... имхо много сильно)

- Пример с двоичной системой я не приводил (хотя правильно заметили, это возможно).


(3) Rothschild,
как можно пронумеровать произвольную выборку запроса, а именно -
- вставить колонку "НомерСтроки" и заполнить ее порядковыми номерами строк в выборке???

Однозначно вопрос претендует на маленькую нобелевскую премию.... это позволило бы решить ряд прикладных задач.
9. Ivan (tanzwut) 18.01.14 11:12
(8) MrFlanker,
Надо попробовать заставить 1С не резать своим компилятором функцию ROW_NUMBER() в SQL2005 и выше.
Все равно SQL2000 уже мало у кого остался, а для относительно небольших файловых баз подойдет и указанный вариант (если он там конечно сработает - не проверял).

А что касается секунды на нумерацию миллиона - так надо еще посмотреть, сколько времени займет нумерация в выгруженной таблице значений. Думается, что SQL быстрее. гораздо быстрее.
10. Ivan Veres (MrFlanker) 18.01.14 11:23
(9) tanzwut, Можно-то можно..... но спать-то потом трудно будет... вдруг ночью кто-нибудь SQL-сервак поменяет))

Можно изначально создавать почти любое количество записей,... тогда будет очень быстро.

p.s. Выбирая размерность множества от 2 до 20 и количество операций объединения 2..6 можно получить максимальные размеры таблицы с порядковыми числами от 4 до 20^6.
11. Nathan Rothschild (Rothschild) 18.01.14 11:27
(9) tanzwut,
там много какие функции "зарезаны"
...
у движка запросов 1С ваще голову сносит,
он должен генерить запросы для множества мало-совместимых СУБД

Информационная база (IInfoBaseInfo)
DBMS (DBMS)

Использование:

Чтение и запись.
Описание:

Тип: Строка.
Определяет тип СУБД, в которой размещается информационная база. Возможны следующие типы СУБД:
MSSQLServer - Microsoft SQL Server;
PostgreSQL - PostgreSQL;
IBMDB2 - IBM DB2;
OracleDatabase - Oracle Database.

Доступность:

Интеграция.

плюс - еще для своего самобытного файлового формата
(могли бы сохранить DBASE для файлового варианта как в 7.7
а не городить самопал!)
12. Nathan Rothschild (Rothschild) 18.01.14 11:30
(11)
а для PostgreSQL, как я понял, вообще все плохо.
там движок запросов часто городит не работающие запросы к СУБД.
и народу приходится переводить базы на файловый формат
пока в следующих релизах платформы очередной баг не залатают:


http://forum.infostart.ru/forum87/topic102443/
http://forum.infostart.ru/forum26/topic102234/
http://forum.infostart.ru/forum26/topic102539/
13. Сергей (ildarovich) 18.01.14 13:11
Давно не видел статей с такой высокой "плотностью" ошибок в названии и содержании. Автора жонглирует терминологией, которую, наверное, не вполне понимает.
Это как сделать четыре ошибки в слове "ещё". То есть описание всех ошибок по объему будет больше самой статьи.
Предлагаемый метод самый очевидный, ну никак не новый, не самый простой, не самый быстрый. На Инфостарте почти десяток публикаций, реализующий подобный подход. Есть и другие подходы, в том числе и чуть более сложные, но более быстрые.
Осталось непонятным на какой метод автор не может смотреть "без боли в глазах".
В общем, "неряшливая работа".
14. andrewks 18.01.14 13:39
ну не смог без боли в глазах смотреть на предлагаемый всюду способ образования натуральных(порядковых) чисел в запросе

так я и не понял, в чём новация предлагаемого запроса - этот способ был предложен много-много лет назад
15. Ivan (tanzwut) 18.01.14 13:55
(13) ildarovich,
О могучий, прости простых смертных, что посмели высказывать свои грязные мысли в твоем Вашем присутствии.
Не будете ли Вы так любезны привести пример кода для такой задачи:
"Требуется пронумеровать по-порядку 1,2,3.... все строки запроса непосредственно в самом запросе".

P.S.
И еще: насколько я понимаю, это форум, на котором люди делятся своими знаниями, незнаниями, мыслями, просят помочь в решении задачи и т.д. и т.п. Поэтому применять выражения
Давно не видел статей с такой высокой "плотностью" ошибок
и
В общем, "грязная работа"
считаю некорректным. Относитесь, пожалуйста, с уважением к присутствующим на форуме людям. Знаете решение - подскажите. А сказать
"грязная работа"
и не предложить решение - странное поведение, недостойное человека, тем более профессионала.
TuMyP1985; kefir; vano-ekt; Натц; PowerBoy; AllexSoft; Sitex; MrFlanker; +8 1 Ответить 4
16. Nathan Rothschild (Rothschild) 18.01.14 14:18
(13) ildarovich,
(14) andrewks,
(15) tanzwut,

О всемогущий Яхве-Саваоф, сущий на небе и на земле!
Прости их - ибо не ведают они, что творят!!!

18. Ivan Veres (MrFlanker) 18.01.14 18:02
(13) ildarovich,
Ваш комментарий совершенно бесполезный...пока в нем нет конкретики. Вы уж отпишитесь по делу...а мы примем критику.

Например приведите более короткую запись более быстрого способа.... я честно не нашел.
19. Ivan Veres (MrFlanker) 18.01.14 18:09

Этот способ достаточно известен у него есть существенный недостаток - ресурсоёмкость. Вряд ли он выживет на таблице из миллиона строк.

Я бы его не рекомендовал ни под каким соусом. Все ИМХО.
20. andrewks 18.01.14 19:44
21. Сергей (ildarovich) 18.01.14 21:44
(18) (15) В чем, по моему мнению основная, но не единственная ошибка данной публикации. В названии. Оно неверное. Судя по приведенным запросам, в них решается задача получения таблицы с одной колонкой, содержащей все натуральные числа в заданном диапазоне.
Это никак не нумерация. Ведь нумерация предполагает наличие некоторой исходной таблицы, к которой в запросе добавляется колонка с номером записи. Это совсем другая действительно сложная и ресурсоемкая задача, которая в данной статье не решается. (но решается в статье по ссылке из комментария (17) и более быстрым способом (даже для миллиона строк) в статье Баттерфляй - метод быстрого расчета нарастающего итога в запросе).
Далее в аннотации к статье говорится о натуральных (порядковых) числах. Есть натуральные числа и есть порядковые (обобщение первых). А зачем здесь порядковые числа? Блеснуть словцом?
Говорится, что без боли в глазах невозможно смотреть на применяемый всюду метод. Что это за метод. Это осталось совершенно непонятным. Какой метод имеется ввиду? Его обязательно нужно указать, привести, удовлетворить общее любопытство.
Ну и о новизне. Вот несколько ссылок навскидку, в которых используется тот же метод:
Некоторые полезные новичкам платформы 1С8.х приёмы работы с запросами - 2 часть - пример 7.
Порождающий запрос - решения из комментариев 7, 17, 19, 38
Работаем с датами в запросе.
Формирование списка дат в заданном диапазоне в тексте запроса.
Генерация числовой последовательности и последовательности дат при помощи языка запросов.
Я же считаю лучшим методом оригинальный метод из статьи
Порождающий запрос
MasterTonLab; GorDAn; sasha777666; denis_aka_wolf; VasMart; iov; kanalex; klinval; ugroblin; userGJ; omut; danilasky; vano-ekt; brr; Andreynikus; boln; Дмитрий74Чел; melenaspb; SP2000; absolutblohin; pumbaE; MrUnnamed; Evil Beaver; wunderland; Ёпрст; ivanitland; +26 1 Ответить 1
22. Сергей (ildarovich) 18.01.14 21:56
(15) Признаю, что погорячился. Просто после слов "по образованию я прикладной математик" ожидал более аккуратного обращения с терминологией. Видимо, более подходящим словом было "неряшливая работа" (именно это я на самом деле имел ввиду). Еще раз внимательно прочитал статью. Надеюсь, Вы не будете против, если я уточню свой комментарий с таким несчастливым номером (13).
sasha777666; awk; +2 Ответить 1
23. Ivan Veres (MrFlanker) 19.01.14 05:20
(22) ildarovich, Ну вообще-то с заголовком все верно.... (ибо решается именно задача порядкового номера в запросе) или как вы правильно написали натуральный ряд чисел.... просто эта терминология неуместна в заголовке, но именно с нее начинается публикация.

Можно придраться и к "распределению" в "теории вероятности"... там его нет... это область мат. статистики.
Надеюсь что мои формулировки понятны сообществу... тем более что это все лирика )
Да и работой эту публикацию сложно назвать, просто решение.

По вашим ссылкам:
- Про Батерфляй ваш давайте здесь не будем писать... тем более что оффтопик.
- "http://infostart.ru/public/158617/" - частный случай (правда лучше с нуля нумеровать)
- http://infostart.ru/public/90367/ - интересное решение, суть та же только в пакетник переделано, он будет работать быстрее, но запись длиннее и читаемость. (тем не менее частный случай)
- http://infostart.ru/public/68269/ - ну банальный частный случай... много кода слишком
- http://infostart.ru/public/96226/ - вот сами привели способ, который вызывает боль в глазах.
- http://kb.mista.ru/article.php?id=704 - здесь то же много кода

Вывод: Порождающий запрос действительно будет работать быстрее.. так как фактические это 5-6 пакетных запросов (имеет смысл при огромных таблицах)... но тем не менее это частный случай (2-е строки) и код получается менее компактный.

Вывод: Вам удалось привести более быстрый способ, но не более компактный, это способ является частным случаем, повторенным 5-6 раз в пакетном запросе для количества цифр = 2.

Это решение было у меня промежуточным, затем я перешел к числу цифр=4....для себя считаю его оптимальным с точки зрения скорости и компактности записи.


"Без боли в глазах"
(ВЫБРАТЬ 
| aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d КАК НомерПериодаИзДиапазона 
| ИЗ 
| (ВЫБРАТЬ 
| 0 КАК a 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 1 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 2 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 3 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 4 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 5 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 6 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 7 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 8 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 9) КАК aa 
| ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 
| 0 КАК b 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 1 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 2 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 3 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 4 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 5 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 6 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 7 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 8 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 9) КАК bb 
| ПО (ИСТИНА) 
| ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 
| 0 КАК c 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 1 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 2 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 3 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 4 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 5 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 6 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 7 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 8 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 9) КАК cc 
| ПО (ИСТИНА) 
| ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 
| 0 КАК d 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 1 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 2 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 3 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 4 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 5 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 6 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 7 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 8 
| 
| ОБЪЕДИНИТЬ 
| 
| ВЫБРАТЬ 
| 9) КАК dd 
| ПО (ИСТИНА) 
| ГДЕ 
| aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= &КолПериодовМеждуДатами) КАК РазностьДат) КАК Даты 
...Показать Скрыть


И еще несколько решений:
http://kb.mista.ru/article.php?id=579
http://infostart.ru/public/156757/
http://itland.ru/forum//index.php?showtopic=21110
http://kb.mista.ru/article.php?id=704
PowerBoy; AllexSoft; +2 Ответить 1
24. Сергей (ildarovich) 19.01.14 11:56
1) Название. Нумерация - это отглагольное существительное, подразумевающее существующий объект действия - нумеруемое множество. В данном случае его нет, оно образуется в процессе выполнения запроса.
То есть это формирование, образование, получение, генерация, порождение, но никак не нумерация.
Неправильное название - это ошибка с серьезными последствиями.
Это все равно, что положить шприц с адреналином в коробку с надписью "средства от насморка".
Это может стоить человеческой жизни.
2) Новизна. В названии написано, что метод новый. Новый - это ранее неизвестный. Но к моим ссылкам добавляете еще несколько ссылок на тот же метод. "С болью в глазах" - это вложенный запрос. То есть перенос вложенного запроса во временную таблицу, который, к тому же ранее многократно публиковался, называется новизной? упрощением? Новизной считается обобщение - использование произвольного основания? Но уже было основание 2, 6, 10. Добавили основание 4? Новизна в этом? - Тогда докажите, что основание 4 лучше. - Оптимальнее? - Укажите критерий, приведите значение этого критерия для разных оснований. То есть сомнительная необоснованная оптимальность, но не новизна.
3) Простота. Тоже нужен критерий. Число строк в запросе. Число соединений. Число знаков в записи запроса. Что-то объективное.
4) "Порождающий запрос". Его суть не в начальном основании 2, а в каскадном попарном соединении таблиц. Вот это действительно другой по своей структуре принцип. Он никак не может являться частным случаем выбора оснований. В конце статьи "Порождающий запрос" приведена рекурсивная функция, которая строит по заданному числу требуемых элементов текст порождающего запроса с минимальным числом соединений и произвольным основанием.

В общем, если хотите, исправьте ошибки и неточности, уточните название, уберите из него слово "новый". Если не будет обмана, то статья обязательно кому-нибудь пригодится. Римейки вообще бывают популярны. Как Елки-3.
sasha777666; +1 Ответить 1
25. Ivan Veres (MrFlanker) 19.01.14 16:27
1) Название. Нумерация - это отглагольное существительное, подразумевающее существующий объект действия - нумеруемое множество. В данном случае его нет, ....

Нет конечно, это не то что вы хотите, а то что написано

2) Новизна.

Самая короткая запись кода, без ущерба скорости, при том достаточно понятная.

3) Простота. Тоже нужен критерий. Число строк в запросе.

Именно

4) "Порождающий запрос". Его суть не в начальном основании 2, а в каскадном попарном соединении таблиц.

Вы абсолютно правы, но это лишь Ваше мнение. Для меня ничего особенного в этом нет... я так часто делаю в целях оптимизации. Но для количества в 1000 строк это ничего не дает, только кода больше. Как я уже написал это было промежуточным звеном в моих рассуждениях.


Римейки вообще бывают популярны. Как Елки-3.

Рад что вы усматриваете хоть какую-то полезность решения, а то я уже про себя думаю зачем вообще опубликовал....
26. Ридван (утюгчеловек) 19.01.14 16:52
Интересно. Только это не нумерация, а генерация числовой последовательности.
sasha777666; zelevova; PLAstic; vano-ekt; adhocprog; VasMart; foliage; AllexSoft; Sergey K; ShantinTD; zqzq; DrAku1a; zarucheisky; userGJ; MrFlanker; +15 Ответить
27. Сергей (ildarovich) 19.01.14 19:10
(25) Не знаю, стоит ли дальше спорить. Если мы не можем согласовать значения простых слов "новый", "нумерация". Вижу, что свой обман (что метод новый) Вы признавать не хотите. Это некрасиво: думаю, Вам и самому неприятно, когда обманывают, например, в магазине - под видом новых подсовывают просроченные продукты. Это почти тоже самое.
Для меня ничего особенного в этом нет... я так часто делаю в целях оптимизации
экстраполяция Вашей манеры спорить говорит, что это тоже обман. - Жалко, что приходится говорить об этом, а могли бы обсудить вопрос (я, кажется, проследил ход Ваших рассуждений), почему для изоморфного отображения множеств была выбрана линейная функция.
28. Алексей Роза (DoctorRoza) 19.01.14 20:36
Надо внимательней изучить материал, может пригодится! :)
29. Nathan Rothschild (Rothschild) 20.01.14 06:20
(28) DoctorRoza,
диапазон целых чисел - не знаю
...
но генерация диапазона дат у нас используется
в одном из навороченных "аналитических" отчетов.

ЗЫ
Ну а большая часть подобных работ скорее
представляет академический интерес, как
занимательные примеры олимпиадных задач.
30. Ivan Veres (MrFlanker) 20.01.14 08:49
(27) ildarovich,
Не знаю, стоит ли дальше спорить. Если мы не можем согласовать значения простых слов "новый", "нумерация".

Нажмите F3 поиск по слову "нумерация", убедитесь что я ни разу не употреблял это слова.
Натуральный ряд чисел или порядковый номер в запросе, НЕ нумерация и НЕ произвольного запроса.

экстраполяция Вашей манеры спорить говорит, что это тоже обман.

Слово не к месту, прошу вас, не нужно меня аппроксимировать через призму вашего восприятия и тем более делится полученными результатами со мной или сообществом, создайте отдельную публикацию для этого ))) Она отлично впишется в ваши научные труды... без сарказма...

Для вас как любителя поговорок и афоризмов давно придумана фраза "в чужом глазу соринку видите, ......"

почему для изоморфного отображения множеств была выбрана линейная функция.

Согласен это обсуждать было бы интереснее.
31. Алексей Рожнятовский (spetzpozh) 21.01.14 09:39
Спасибо за статью, мне было полезно.
32. ффф ыыы (zqzq) 22.01.14 09:05
Кстати, нумерация строк произвольного запроса поддерживается в новых версяих MS SQL без всяких танцев с бубнами, жаль что 1С полноценно не поддерживает T-SQL. (Да, я тоже по заголовку подумал про эту задачу, а не про генерацию числового ряда).
33. Александр (Sitex) 22.01.14 09:13
Спасибо. Изначально меня тоже смутил заголовок. Но все равно зачетно.
34. Ivan Veres (MrFlanker) 22.01.14 10:17
(33) Sitex, формулировал заголовок я большей частью для поисковых систем, на всякий случай приложил картинки запросов.

p.s. Мои извинения, всем кого заголовок вводит в заблуждение.

Если сформулировать заголовок "Натуральный ряд в запросе" тоже будет не всем понятно.
По этому пока оставляю так "Порядковый номер в запросе".
35. Ловыгин Антон (wunderland) 22.01.14 13:01
(21) тот случай, когда комментарий полезнее статьи ;)
sasha777666; +1 Ответить 1
36. Ivan Veres (MrFlanker) 22.01.14 16:03
(35) wunderland,
Думаю это нормальное явление , из комментариев вашей статьи про звонки я узнал как это делать проще чем вы предлагаете. Выходит ваша статья помогла мне ))

вот думаю плюсик ставить вам или в комментарий :;)
поставил оба
37. Алексей Белоусов (AllexSoft) 22.01.14 16:23
Спасибо за статью, запрос по датам я думаю пригодится, тем более я только тот метод который режет глаза и знал, ваш элегантнее, буду использовать его.
38. Ivan Veres (MrFlanker) 22.01.14 17:02
(37) AllexSoft, Спасибо вам большое за положительный отзыв.

Это мотивирует на дальнейшие публикации.

Помнится по молодости из деревни приехал в город на олимпиаду по информатике там только 10 и 11 классы были, меня взяли с 9-м в порядке исключения, мол пусть деревенский парень поучаствует. Учитель мой провел (спасибо ему огромное).
С заданиями я справился быстро, думаю чем заняться начал "курочить" Yamaha MSX....это привлекло внимание вообщем попросили сдать работу и выйти. Помню долго ждал в коридоре больше часа пока хоть кто-нибудь выйдет.
Допустил 1 ошибку в 1 задании (Задание было анализ алгоритма, первую половину описал верно, а вторую по молодой самоуверенности не стал даже анализировать написал что никогда не выполнится)
После оглашения результата с первого взгляда увидел свою ошибку... а за это задание 10 балов было... ну мне только 5 дали. В итоге второе место, удивленные морды и тур на областную олимпиаду.


К чему это я здесь пишу,.... потому что я уже много лет с 2002 года не IT-к......, пришлось выбирать между свободой от работодателей и любимым делом. А так хочется чего нибудь по-программировать что-нибудь полезное.

P.s. Ссори за оффтопик, нахлынули воспоминания былой славы :)
39. Алексей Белоусов (AllexSoft) 22.01.14 17:44
(38) MrFlanker, только вот хотел все же написать по поводу заголовка статьи (кстати спасибо что написали про новый метод, иначе бы не зашел в статью и не увидел...) так вот, зашел просто ради интереса что за новый метод, сама нумерация была не очень интересна, а тут подарок с таблицей дат... пишите на будущее более точно что в статье есть (даже про подарки)
MrFlanker; +1 Ответить
40. Илларион Пак (pakill) 24.01.14 07:33
Согласен во многом с ildarovich.
Конечно есть путаница в терминах. Но вряд ли кто-то понимает разницу между терминами "порядковые числа" и "числа по-порядку". Единственно, не следует в таком случае упоминать про математику. Поскольку в математике
порядковое число - это нечто другое. Простим ему так же и обращение к теории вероятностей.
Все же, статья, полагаю, оказалась интересной и полезной для многих читателей

Теперь по теме.

1. Поскольку фрагмент

ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1

конструктор запроса записывает в 5 строк, то лично я вместо основания 4 использую основание 3. Получается компактнее. Для больших чисел, все равно использую основание 3. Просто формула становится длинее и все. Не вижу смысла переходить к основанию 10.


2. Насчет "Порождающего запроса".

Для меня как-то неочевидно, что соединение двух 16-строковых таблиц выполнится быстрее, чем соединение 4-х таблиц по 4 строки в каждой. Мне думается, что это будет одинаково по производительности.

Я даже не учитываю, что эти 16-строковые таблицы еще предварительно надо сформировать где-то в памяти. Впрочем, это несущественные мелочи.

Делалась ли проверка этого факта на тестах?

Интуитивно 4 вложенных цикла по 4 и два вложенных цикла по 16 примерно одинаковы по производительности, если это написано на серьезном языке, с оптимизацией счетчиков.

41. Анна Коломак (foliage) 24.01.14 08:46
Меня тоже заголовок статьи ввел в заблуждение. Хотя, прочитав все комментарии и обдумав, склоняюсь к тому, что заголовок верный, а вот его восприятие (у меня) почему-то неверное :)
И спасибо за запрос генерации последовательности дат!
42. Алексей Константинов (alexk-is) 24.01.14 15:15
(23) Компактный код не всегда самый быстрый. Вот код для сравнения
ВЫБРАТЬ 0 КАК Цифра ПОМЕСТИТЬ Единицы
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9;
ВЫБРАТЬ Десятки.Цифра * 10 КАК Цифра ПОМЕСТИТЬ Десятки ИЗ Единицы КАК Десятки;
ВЫБРАТЬ Сотни.Цифра * 10 КАК Цифра ПОМЕСТИТЬ Сотни ИЗ Десятки КАК Сотни;
ВЫБРАТЬ Тысячи.Цифра * 10 КАК Цифра ПОМЕСТИТЬ Тысячи ИЗ Сотни КАК Тысячи;
ВЫБРАТЬ ДесяткиТысяч.Цифра * 10 КАК Цифра ПОМЕСТИТЬ ДесяткиТысяч ИЗ Тысячи КАК ДесяткиТысяч;
ВЫБРАТЬ СотниТысяч.Цифра * 10 КАК Цифра ПОМЕСТИТЬ СотниТысяч ИЗ ДесяткиТысяч КАК СотниТысяч;
ВЫБРАТЬ Десятки.Цифра + Единицы.Цифра КАК Цифра
ПОМЕСТИТЬ ДоСотни ИЗ Десятки КАК Десятки, Единицы КАК Единицы;
ВЫБРАТЬ Тысячи.Цифра + Сотни.Цифра КАК Цифра
ПОМЕСТИТЬ ДоДесятиТысяч ИЗ Тысячи КАК Тысячи, Сотни КАК Сотни;
ВЫБРАТЬ СотниТысяч.Цифра + ДесяткиТысяч.Цифра КАК Цифра
ПОМЕСТИТЬ ДоМиллиона ИЗ СотниТысяч КАК СотниТысяч, ДесяткиТысяч КАК ДесяткиТысяч;
ВЫБРАТЬ ДоМиллиона.Цифра + ДоДесятиТысяч.Цифра + ДоСотни.Цифра КАК Цифра
ИЗ ДоМиллиона КАК ДоМиллиона, ДоДесятиТысяч КАК ДоДесятиТысяч, ДоСотни КАК ДоСотни
УПОРЯДОЧИТЬ ПО Цифра;
...Показать Скрыть

Это кусок выдранный из http://infostart.ru/public/68269/
43. Сергей (ildarovich) 24.01.14 15:26
(40) Задачи, в которых можно применить искусственные (создаваемые не на основе данных ИБ) таблицы, можно пересчитать по пальцам. Кстати, буду благодарен, если Вы поможете расширить мою коллекцию таких задач. Особых требований по компактности записи запроса или по скорости его работы в этих задачах , как правило, не предъявляется. Поэтому практического смысла спорить по поводу выбора основания системы счисления вроде бы нет.
Но если такой вопрос вдруг окажется важным, то скажу, что по критерию количества строк в записи запроса (после открытия запроса конструктором) наилучшим будет основание 2.
По критерию количества знаков в записи запроса лучшим могут оказываться разные основания в зависимости от требуемого числа генерируемых записей и языка (русский, английский) записи запроса. Можно вывести формулу, отражающую линейную зависимость длины запроса от величины основания и логарифмическую - от числа генерируемых строк, найти первую производную, приравнять нулю и так далее. Ну или просто построить таблицу для выбора основания.
Что касается быстродействия, то основание 2 тоже, как мне кажется, будет лучше. Оно обеспечивает более плотное покрытие натурального ряда числами, в которых не будет "холостых" соединений. Например, если нужно сгенерировать ряд от 1 до 257, то основание 4 даст 1024 - 257 = 767 холостых прогона, а основание 2 - только 512 - 257 = 255 (в три раза меньше!). Ну и поэтому основание 2 по сравнению с другими основаниями в среднем будет давать меньше лишних строк в декартовом произведении.
Видите, сколько факторов можно при желании учесть. Чтобы зря не ломать каждый раз над этим голову, я написал маленькую функцию, которая по требуемому количеству строк формирует запрос, генерирующий таблицу чисел. Я уже видел обработки, в которых она была использована. Функция приведена в статье "Порождающий запрос". Ну а эффективность "порождающего запроса" лучше обсуждать в соответствующей ветке комментариев (метод вложенных циклов для оценки производительности запросов будет очень кстати).
44. Ivan Veres (MrFlanker) 24.01.14 16:06
(40) pakill,
Согласен с вами во всем, я не использовал математические термины. Название оптимизировано под поисковик.

А про теорию вероятности, спасибо за прощение. Ну а вообще: а) это было лирическое отступление б) я действительно искал последовательность псевдослучайных чисел обладающих нужным мне распределением.

Насчет "Порождающего запроса".
В целом согласен, нужно проверять, но там фишка будет в том что формула вычислений короче, в итоге меньше операций.... я с этого начинал свои рассуждения....но моя задача была получить более компактный код, потому что раздражает когда на экране запрос листать сильно приходиться.... а к конструктору я еще не привык... анализирую запросы, работая с текстом.
45. Ivan Veres (MrFlanker) 24.01.14 16:19
(43) ildarovich, на редкость согласен с вашим постом за исключением
Что касается быстродействия, то основание 2 тоже, как мне кажется, будет лучше. Оно обеспечивает более плотное покрытие натурального ряда числами, в которых не будет "холостых" соединений.


Более плотное покрытие достигается использованием произвольного основания... о чем я написал еще в первом посте (не дословно конечно) "Изучив предложенный код вы сами с легкостью напишите запросы для ваших нужд".

Ну и дальше в комментах разжевано это уже.
46. Ivan Khorkov (vano-ekt) 21.08.14 07:05
и нахе*а эта последовательность в запросе?
47. ugroblin (ugroblin) 22.08.14 16:38
Один вопрос. Как это попало в рубрику "выбор экспертов"?
1. Как уже много раз упоминалось в комментариях: новизны 0 целых 0 десятых.
2. Практической пользы в таблице порядковых номеров без привязки к данным из других таблиц тоже 0.
3. Чем вас не устроил цикл "Для Н = 1 По Х" с добавлением в массив? По Вашим же критериям "Самая короткая запись кода, без ущерба скорости, при том достаточно понятная" - короче, быстрее и максимально понятно даже новичку. В тонком клиенте работает, гонять данные между сервером и клиентом не нужно - все выполнится на месте.

(3) как можно пронумеровать произвольную выборку запроса, а именно -
- вставить колонку "НомерСтроки" и заполнить ее порядковыми номерами строк в выборке???
Однозначно вопрос претендует на маленькую нобелевскую премию.... это позволило бы решить ряд прикладных задач.
Поздравляю с успешной демонстрацией полного незнания общеизвестных вещей. С Вас премия автору http://kb.mista.ru/article.php?id=703

(38) Прямо выпрашиваете похвалу. Вся статья просто сплошной поток самовосхваления и желания продемонстрировать мнимую значимость ("нахлынули воспоминания былой славы" и т.д.) и превосходство. И образование математическое и теорию вероятностей применил к порядковым номерам (что за бред вообще, где тут случайные события?).

Итог: публикация для сбора плюсов за счет громкого наименования. Жаль что некоторые ведутся.

48. Ivan Veres (MrFlanker) 24.08.14 03:18
(47) ugroblin,
Один вопрос. Как это попало в рубрику "выбор экспертов"?
Я не знаю что там куда попало, отвечу по вашим репликам:

1. Для вас может и нет новизны, а в инете на момент публикации короче записи не было.
2. Пользы без привязки к данным действительно мало.... так, пожалуй во всем :-)
3. Хотелось обойтись языком запросов. Распространенное желание.

http://kb.mista.ru/article.php?id=703
- Не вы первые привели эту ссылку
- По этой ссылке действительно "нумерация". Если бы я раздавал премии, я бы отметил эту работу. У меня же просто генерация числовой последовательности.

где тут случайные события
- я действительно искал последовательность псевдослучайных чисел обладающих нужным мне распределением.
- Просто не знал как подойти к решению этой задачи.... уверен есть и другие подходы.

Прямо выпрашиваете похвалу.
- Приятно получать позитивные комментарии, а такие как у вас - "так себе".



49. Анатолий Мощенко (with) 27.08.14 03:51
Коллеги, можно бизнес кейс в студию для чего надо порядковый номер в запросе вычислять? И почему его нельзя рассчитать при заполнении области вывода?
50. Ivan Veres (MrFlanker) 27.08.14 06:11
(49) with,
Имхо "бизнес-кейс" вы неуместно ляпнули.

лично для меня смысл больше теоретический,....если кто-то найдет серьезное практическое применение, пусть порадует нас.
51. Леонид Павлиенко (PLAstic) 27.08.14 12:50
Пока не имел возможности ознакомиться с комментариями выше, но замечу, что это бойанъ чистой воды.
Статья с датой публикации 30.03.10 : http://infostart.ru/public/68269/
Именно предлагаемое решение описано в 35ом комментарии мной.

ps: Ознакомился. Всё верно, баян. Даже не думал, что можно было оснастить свой комментарий таким количеством псевдонаучных слов.
52. Ivan Veres (MrFlanker) 27.08.14 17:04
(51) PLAstic,
Конечно подобные публикации были, просто я не смог их прогуглить.

Но до сих пор я не видел такой простой лаконичной записи.... но я не считаю что это как-то умоляет ваших заслуг, а также заслуг других авторов.
Конечно кто-то когда-то это сделал первым, возможно еще до вас.

У меня была весьма скромная цель: сделать запись компактнее.

Даже не думал, что можно было оснастить свой комментарий таким количеством псевдонаучных слов.
Это что моя проблема ??? для чего вы это пишите?

ps. Я тоже не думал что моя "заметка" привлечет такое количество "псевдо-умников".
А если кому-то понравилась, я искренне рад :-)
53. Леонид Павлиенко (PLAstic) 27.08.14 17:39
(52) MrFlanker, единственное, что можно было бы изменить - меньше пафоса в подаче статьи. Остальное всё верно говорите. У меня ж тоже такая ситуация была: http://infostart.ru/public/294052/
Кричат "баян", а ссылок не дают. Потом только я изучил комментарии к статье и заметил среди прочих один, где предлагалась такая же идея. Только комментарии к статьям читают далеко не все, да и поиска по ним нет, а статьи даже в рассылке упоминаются.
54. Ivan Veres (MrFlanker) 28.08.14 00:57
(53) PLAstic,
У вас конкретное практическое решение конкретной проблемы.
К тому же все сделано верно с методологической точки зрения.
Использование объектов метаданных по назначению так сказать.
Думаю многие начинающие кодеры извлекут пользу из вашей публикации.
Хотя конечно для программиста 1С это очевидность :)

Но критиковать вашу публикацию может только балбес или тот кому делать нечего :-))

p.s. У меня же есть к чему прицепиться "новизна?", "практическое применение?", "пафос?" - все вызывает желание покритиковать,... да и ладно :)
55. Василий Казьмин (awk) 28.10.14 12:55
(24) ildarovich, Про адреналин. Адреналин - сосудосужающее и прекрасно помогает при насморке :))))
56. Сергей (ildarovich) 28.10.14 13:53
(55) awk, в моей версии этой истории пациент должен был умереть от остановки сердца, а не от насморка.
57. Пользователь Maikl (os01) 19.08.16 15:41
в ласт примере ласт пакет чуть более корректно так:

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, Числа.Поле - 1) КАК ПолеДата
ИЗ
	Числа КАК Числа
ГДЕ
	Числа.Поле <= РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ДЕНЬ)
...Показать Скрыть
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа