1с как сделать запрос нарастающим итогом
Известно, что запросы, простым способом не позволяют нумеровать строки и создавать нарастающие итоги. В запросах это возможно сделать только при соединении таблицы с самой собой достаточно хитрым способом, определенным образом упорядочивая, группируя и в соединения указывать неравенство.
Будет полезна изучающим запросы.
Ссылки при написании:
Данная обработка показывает по шагам как нужно создавать в запросе нарастающий итог. В обработке реализовано два примера.
Нумерация строк в запросе как яркий пример нарастающего итога. В качестве колонки_выбора выбран «код».
Реализован нарастающий итог по колонке «сумма документа». В качестве колонки_выбора выбран «номер».
Примечание1. Во всех примерах в условиях отбора в запросе используется «пометка на удаление».
Последовательность действия при получении в запросе "НарастающихИтогов".
Перед написание запроса необходимо определить колонку по которой хотим получить нарастающий итог.
Если мы хотим получить нумерацию строк в результате запроса то выибирать можно любую колонку.
По выбранной_колонке будем сортировать, соединять и использовать при группировки в нашем итоговом запросе.
Шаг1. Составляем запрос в который должны попасть то что мы хотим видеть.
Шаг2. Дополнем наш запрос из Шаг1. его точной копией.
Шаг3. Соединяем таблицу и таблицу_копию по выбранной_колонке и по ней же упорядочиваем.
Шаг4. Группируем наш запрос так чтобы в суммируемые колонки попала выбранная_колонка
Шаг5. Меняем условие соединения таблиц на больше_равно
Готово. Смотрим результат. Вот.
Примечание2. Последовательность «шагов» может быть любая. Так данное описание составление запросов с нарастающим итогом условное.
Примечание3. Быстродействие данных запросов ресурсоемко. Для большинства повседневных задач их использование вполне приемлемо.
Специальные предложения
гыы. все ссылки уже помечены как прочтенные (:
Шепот, на самом деле показан очень конкретный пример. Вместо больше равно может быть и меньше равно. в зависимости от целей.
Но для тех кто изучает сложное на примерах (как я например (% ) зер гуд.
Я очень рад, что моя статья вызвала-таки наконец ряд статей по теме.
А то если что и есть в инете, то только основы. Мне пришлось очень долго копаться прежде чем нашел упоминание об ограничении нарастающих итогов в запросах - большие объемы данных начинают существенно тормозить.
А уж метод обхода этого ограничения - это был вообще алес. ограничить выборку.
З.Ы. Предлагаю название изменить. Двухпальцевые нарастающие итоги и нумерация строк в запросе. Всё-таки если быть последовательным и логичным, то "понимаешь" ты в статьях, а вот обработки у тебя "двухпальцевые". Это без иронии.
. БОЛЬШОЕ видится на расстоянии, а начинается с МАЛОГО …
. если ВЫ умеете делать это в МАЛОМ то сделаете это и в БОЛЬШОМ .
.
п.с.
Около ста пятидесяти лет назад возникла новая область научного знания - учение о подобии явлений.
Гениальное предвидение этой науки было высказано Ньютоном в 1686 г. Но только в 1848 г. Член французской академии наук Жозеф Бертран впервые установил основное свойство подобных явлений, сформулировав первую теорему подобия, теорему о существовании инвариантов подобия.
Подобными называются явления, происходящие в геометрически подобных системах, если у них во всех сходственных точках отношения одноимённых величин есть постоянные числа.
. писать "нарастающие итоги" - это доставать кость попавшую в горло через задний проход .
. при помощи простого Запроса+ТаблицаЗначений = Результат любой сложности . эффективнее и проще и предсказуемо .
(5) хранение информации в текстовом виде намного проще и предсказуемо.
Уже было говорено, что абсолютно эффективных решений не бывает.
(6), (1) Шепот прав в одном - что опубликовал свое мнение по поводу нарастающих итогов.
Правда в том , что подавляющее(подчеркиваю , подавляющее) большинство пользователей ИС не знают , не умеют использовать запросы.
Шепот схватил это - и молодец !
Весь вопрос в том , как лучше подать материал о элементарном и с примерами и иллюстрациями :
"Запросы . как я их понимаю" или проще "Чайник - для чайников"
где просто и доступно было объяснено "на пальцах" ( а кого стесняться?):
1. Внутреннее соединение
2. Полное соединение
3. Левое.
4. Правое..
5. Соединение по неравенству+ Нарастающие итоги.+ соединение по двойному неравенству и т.д.
6. Сумма с условием , Оператор Выбор и т.д.
Т.е. на мой взгляд полезен будет целый цикл статей . Шепот - молодец !
Что касается самой обработки - я её пока не смотрел. Но посмотрю обязательно.
. итоговая сложность расчёта результата не должна быть выше самой максимально простой операции используемой при вычислении этого результата .
. вопрос знатокам "нарастающих итогов":
например, требуется вычислить 2*3 = .
как ВЫ ? думаете ? как компьютер получит результат . ?
декларативный язык запросов - один из самых "дурацких" языков программирования .
придумывался как "для всех" - оказался для "посвщЁнных" .
объснить его работу, словами, по-этапно - не возможно . в лучшем случае картинками . т.к. построение запросов это не язык "логики" а язык "желания" .
.. увиливаешь обычно ТЫ . ответь на (8) .
объснить его работу, словами, по-этапно - не возможно . в лучшем случае картинками . т.к. построение запросов это не язык "логики" а язык "желания" .
Так ведь в корень смотришь !
Именно так и нужно : диаграммки и картинки.
Я ж тебя подбиваю.
декларативный язык запросов - один из самых "дурацких" языков программирования .
придумывался как "для всех" - оказался для "посвщЁнных" .
не вижу темы для обсуждения.
Шепот я пришел к тебе в тему . По-честному.
Обсуждаю ТОЛЬКО содержание ТВОЕЙ статьи.
Тема : Запросы.
Ты же меня хочешь затащить в обсуждение некорректных или допускающих бесконечно много толкований рассуждений.
Не-а. Не затащишь.
Только текст ТВОЕЙ статьи. Только текст ТВОИХ запросов.
Обработку не скачал . Скачаю дома .
Угрожаю : долбить буду по -взрослому.
Ish_2 . ты меня удивляешь .
1. по взрослому мне бы хотелось в твоих статьях .
2. я же уже высказался по поводу нарастающих итогов в запросах -в серьёз это обсуждать можно только в философских поисках о границах языка запросов но не для практики . или приведи примеры .
3. именно поэтому и придумали "новые" костыли в виде - СКД . соединив запрос и ТЗ .
4. рисовать рисунки и чертить схемы на такие примеры - уж совсем дело последнее .
5. понимание в запросах приходит только через "ручки", в основном .
всЁ таки, мне гораздо интереснее (8) .
Продолжаю. Теперь о недостатках.
Считаю недостатком отсуствие иллюстраций - рисунков.
Две Простенькие таблички - и стрелками показано какая строка из первой талицы соединяется со строками из второй таблицы. И тогда вся суть соединения по неравенству была понятна даже непосвященному.
Считаю недостатком отсуствие текстов запросов в самой статье.
Текст должен быть на рисунке и разбит на секции :
Поля выборки, условия соединения и т.д.
Т.е. такие статьи для начинающих нужно делать максимально подробными и иллюстрированными.
Перечисленные шаги 1-5 мало ,что дают непосвященному.
Т.е. если бы я был изучающим, я бы твоей статьей не заинтересовался.
Надеюсь след. статья о запросах будет подробной и иллюстрированной.
Давай , Шепот ! Жми !
Долбежка откладывается. К сожалению.
2. Статья Anig99 как раз и переводит фил.вопос о границах использования языка запросов в практический вопрос : Как правильно использовать язык запросов для вычисления нарастающих итогов ? Именно в ней и говорится о том, что "в лоб" применять запрос для таких вычислений не стоит.
Нужно применять вычисление нарастающих итогов для небольших таблиц.
Как последовательно получать эти небольшие таблицы сказано сначала у Anig99 , потом у меня.
Шепот , ты этого просто не понял.
3. Нет . Шепот, СКД придумали совсем не для этого. И проблему трудного вычисления нарастающих итогов СКД НЕ РЕШАЕТ.
4. Жаль
5. Согласен.
6. Не заманишь, хитрец.
1. посмотрим "болтунишка" . увидим "болтунишка" .
2. нет конкретных примеров - говорить не о чЕм . кому нужны ЭТИ неБОЛЬШИЕ таблицы . то у вас 200 гигов а то НЕбольшие таблицы . бегаете по кругу "батенька"-ссс . да-ссс . по-кругу-ссс .
3. ну. ну. а для чего ТОГДА придумали ЭТИновомодныеКОСТЫЛИ .. .
4. левизна . детский вопрос . без абстракций нет программиста .
5. нууу. нЕужели . . . может ещЁ подумаешь .
6. жаль . фундаментальный вопрос всех вычислений . кстати это и к п3. относится .
(15)
1. Ага.
2. Прочитай статью Anig99 там есть ссылка на реальный отчет который работает в конкретной базе 120Гб.
3. В частности. СКД позволяет делать то , что не позволяет делать постоитель отчета - произвольное группирование колонок отчета, произвольное количество таких группировок.
Пример : В БП 1.6 есть отчет "Обороты счета" и сделан он "вручную" с тяжкими преобразованиями. В СКД такой отчет делается гораздо проще.
СКД - не костыли , а требование времени.
4. Умничаешь ?
5. Умничаешь ?
6. фундаментальные вопросы так не формулируются.
Впрочем , ты же у нас бравируешь отрицанием важности формы, тебе же главное -содержание. Про единство формы и содержания мы поговорим в другой раз.
1. . слова . слова . слова . как много в них НЕ сделанного .
2. . нууу . онанизм - пусть даже и цифровой то же кому-то приятен .
3. любая ТЗ позволяет группировать - и вдоль - и поперЁк - и "о-боже" даже по-диогонали .
4. нет .
5. ага .
6. чем фундаментальнее вопрос - тем ОН проще . например, почему Земля крутится ? .
п.с. НЕсогласен.
. я говорю о единстве, о гармонии - "формы" и "содержания" . вот .
1.
2.
3. Шепот , СКД надо изучить.
4. Да.
5. То-то.
6. Твоя статья - про запросы.
P.S. Ну вот и хорошо.
3. ну. ну, да . да . "я эту книгу не читал но по поводу её содержания могу сообщить следующее . " .
4. уломал .
5. ага .
6. . . моя статья - срубить "плюс"-ов по лЁгкому .
. но, как видишь . "нарастающие итоги" нафигникомуненужны . ))) .
(20) .. нууу конечно же . кто жжжеее спорит .
назвать надо было типа:
1. Пять шагов постижения .
2. Запросы и нарастающие итоги .
3. Метдика решения нарастающих итогов в запросах .
.
.. ну и ещё всякой були-були поднаписать . и обязательно указать много-много ГБайт, жути нагнать рисунками и графиками . и обязательно должны быть непонятные слова типа "глбоко-детальный анализ показывает", "после использования ограничения выборки в таблицах", " скорость получения таблиц результатов при использовании данного метода увеличена в 4-5 раз", привести кучу таблиц с замерами .
Известно, что запросы, простым способом не позволяют нумеровать строки и создавать нарастающие итоги. В запросах это возможно сделать только при соединении таблицы с самой собой достаточно хитрым способом, определенным образом упорядочивая, группируя и в соединения указывать неравенство.
Будет полезна изучающим запросы.
Ссылки при написании:
Данная обработка показывает по шагам как нужно создавать в запросе нарастающий итог. В обработке реализовано два примера.
Нумерация строк в запросе как яркий пример нарастающего итога. В качестве колонки_выбора выбран «код».
Реализован нарастающий итог по колонке «сумма документа». В качестве колонки_выбора выбран «номер».
Примечание1. Во всех примерах в условиях отбора в запросе используется «пометка на удаление».
Последовательность действия при получении в запросе "НарастающихИтогов".
Перед написание запроса необходимо определить колонку по которой хотим получить нарастающий итог.
Если мы хотим получить нумерацию строк в результате запроса то выибирать можно любую колонку.
По выбранной_колонке будем сортировать, соединять и использовать при группировки в нашем итоговом запросе.
Шаг1. Составляем запрос в который должны попасть то что мы хотим видеть.
Шаг2. Дополнем наш запрос из Шаг1. его точной копией.
Шаг3. Соединяем таблицу и таблицу_копию по выбранной_колонке и по ней же упорядочиваем.
Шаг4. Группируем наш запрос так чтобы в суммируемые колонки попала выбранная_колонка
Шаг5. Меняем условие соединения таблиц на больше_равно
Готово. Смотрим результат. Вот.
Примечание2. Последовательность «шагов» может быть любая. Так данное описание составление запросов с нарастающим итогом условное.
Примечание3. Быстродействие данных запросов ресурсоемко. Для большинства повседневных задач их использование вполне приемлемо.
Специальные предложения
гыы. все ссылки уже помечены как прочтенные (:
Шепот, на самом деле показан очень конкретный пример. Вместо больше равно может быть и меньше равно. в зависимости от целей.
Но для тех кто изучает сложное на примерах (как я например (% ) зер гуд.
Я очень рад, что моя статья вызвала-таки наконец ряд статей по теме.
А то если что и есть в инете, то только основы. Мне пришлось очень долго копаться прежде чем нашел упоминание об ограничении нарастающих итогов в запросах - большие объемы данных начинают существенно тормозить.
А уж метод обхода этого ограничения - это был вообще алес. ограничить выборку.
З.Ы. Предлагаю название изменить. Двухпальцевые нарастающие итоги и нумерация строк в запросе. Всё-таки если быть последовательным и логичным, то "понимаешь" ты в статьях, а вот обработки у тебя "двухпальцевые". Это без иронии.
. БОЛЬШОЕ видится на расстоянии, а начинается с МАЛОГО …
. если ВЫ умеете делать это в МАЛОМ то сделаете это и в БОЛЬШОМ .
.
п.с.
Около ста пятидесяти лет назад возникла новая область научного знания - учение о подобии явлений.
Гениальное предвидение этой науки было высказано Ньютоном в 1686 г. Но только в 1848 г. Член французской академии наук Жозеф Бертран впервые установил основное свойство подобных явлений, сформулировав первую теорему подобия, теорему о существовании инвариантов подобия.
Подобными называются явления, происходящие в геометрически подобных системах, если у них во всех сходственных точках отношения одноимённых величин есть постоянные числа.
. писать "нарастающие итоги" - это доставать кость попавшую в горло через задний проход .
. при помощи простого Запроса+ТаблицаЗначений = Результат любой сложности . эффективнее и проще и предсказуемо .
(5) хранение информации в текстовом виде намного проще и предсказуемо.
Уже было говорено, что абсолютно эффективных решений не бывает.
(6), (1) Шепот прав в одном - что опубликовал свое мнение по поводу нарастающих итогов.
Правда в том , что подавляющее(подчеркиваю , подавляющее) большинство пользователей ИС не знают , не умеют использовать запросы.
Шепот схватил это - и молодец !
Весь вопрос в том , как лучше подать материал о элементарном и с примерами и иллюстрациями :
"Запросы . как я их понимаю" или проще "Чайник - для чайников"
где просто и доступно было объяснено "на пальцах" ( а кого стесняться?):
1. Внутреннее соединение
2. Полное соединение
3. Левое.
4. Правое..
5. Соединение по неравенству+ Нарастающие итоги.+ соединение по двойному неравенству и т.д.
6. Сумма с условием , Оператор Выбор и т.д.
Т.е. на мой взгляд полезен будет целый цикл статей . Шепот - молодец !
Что касается самой обработки - я её пока не смотрел. Но посмотрю обязательно.
. итоговая сложность расчёта результата не должна быть выше самой максимально простой операции используемой при вычислении этого результата .
. вопрос знатокам "нарастающих итогов":
например, требуется вычислить 2*3 = .
как ВЫ ? думаете ? как компьютер получит результат . ?
декларативный язык запросов - один из самых "дурацких" языков программирования .
придумывался как "для всех" - оказался для "посвщЁнных" .
объснить его работу, словами, по-этапно - не возможно . в лучшем случае картинками . т.к. построение запросов это не язык "логики" а язык "желания" .
.. увиливаешь обычно ТЫ . ответь на (8) .
объснить его работу, словами, по-этапно - не возможно . в лучшем случае картинками . т.к. построение запросов это не язык "логики" а язык "желания" .
Так ведь в корень смотришь !
Именно так и нужно : диаграммки и картинки.
Я ж тебя подбиваю.
декларативный язык запросов - один из самых "дурацких" языков программирования .
придумывался как "для всех" - оказался для "посвщЁнных" .
не вижу темы для обсуждения.
Шепот я пришел к тебе в тему . По-честному.
Обсуждаю ТОЛЬКО содержание ТВОЕЙ статьи.
Тема : Запросы.
Ты же меня хочешь затащить в обсуждение некорректных или допускающих бесконечно много толкований рассуждений.
Не-а. Не затащишь.
Только текст ТВОЕЙ статьи. Только текст ТВОИХ запросов.
Обработку не скачал . Скачаю дома .
Угрожаю : долбить буду по -взрослому.
Ish_2 . ты меня удивляешь .
1. по взрослому мне бы хотелось в твоих статьях .
2. я же уже высказался по поводу нарастающих итогов в запросах -в серьёз это обсуждать можно только в философских поисках о границах языка запросов но не для практики . или приведи примеры .
3. именно поэтому и придумали "новые" костыли в виде - СКД . соединив запрос и ТЗ .
4. рисовать рисунки и чертить схемы на такие примеры - уж совсем дело последнее .
5. понимание в запросах приходит только через "ручки", в основном .
всЁ таки, мне гораздо интереснее (8) .
Продолжаю. Теперь о недостатках.
Считаю недостатком отсуствие иллюстраций - рисунков.
Две Простенькие таблички - и стрелками показано какая строка из первой талицы соединяется со строками из второй таблицы. И тогда вся суть соединения по неравенству была понятна даже непосвященному.
Считаю недостатком отсуствие текстов запросов в самой статье.
Текст должен быть на рисунке и разбит на секции :
Поля выборки, условия соединения и т.д.
Т.е. такие статьи для начинающих нужно делать максимально подробными и иллюстрированными.
Перечисленные шаги 1-5 мало ,что дают непосвященному.
Т.е. если бы я был изучающим, я бы твоей статьей не заинтересовался.
Надеюсь след. статья о запросах будет подробной и иллюстрированной.
Давай , Шепот ! Жми !
Долбежка откладывается. К сожалению.
2. Статья Anig99 как раз и переводит фил.вопос о границах использования языка запросов в практический вопрос : Как правильно использовать язык запросов для вычисления нарастающих итогов ? Именно в ней и говорится о том, что "в лоб" применять запрос для таких вычислений не стоит.
Нужно применять вычисление нарастающих итогов для небольших таблиц.
Как последовательно получать эти небольшие таблицы сказано сначала у Anig99 , потом у меня.
Шепот , ты этого просто не понял.
3. Нет . Шепот, СКД придумали совсем не для этого. И проблему трудного вычисления нарастающих итогов СКД НЕ РЕШАЕТ.
4. Жаль
5. Согласен.
6. Не заманишь, хитрец.
1. посмотрим "болтунишка" . увидим "болтунишка" .
2. нет конкретных примеров - говорить не о чЕм . кому нужны ЭТИ неБОЛЬШИЕ таблицы . то у вас 200 гигов а то НЕбольшие таблицы . бегаете по кругу "батенька"-ссс . да-ссс . по-кругу-ссс .
3. ну. ну. а для чего ТОГДА придумали ЭТИновомодныеКОСТЫЛИ .. .
4. левизна . детский вопрос . без абстракций нет программиста .
5. нууу. нЕужели . . . может ещЁ подумаешь .
6. жаль . фундаментальный вопрос всех вычислений . кстати это и к п3. относится .
(15)
1. Ага.
2. Прочитай статью Anig99 там есть ссылка на реальный отчет который работает в конкретной базе 120Гб.
3. В частности. СКД позволяет делать то , что не позволяет делать постоитель отчета - произвольное группирование колонок отчета, произвольное количество таких группировок.
Пример : В БП 1.6 есть отчет "Обороты счета" и сделан он "вручную" с тяжкими преобразованиями. В СКД такой отчет делается гораздо проще.
СКД - не костыли , а требование времени.
4. Умничаешь ?
5. Умничаешь ?
6. фундаментальные вопросы так не формулируются.
Впрочем , ты же у нас бравируешь отрицанием важности формы, тебе же главное -содержание. Про единство формы и содержания мы поговорим в другой раз.
1. . слова . слова . слова . как много в них НЕ сделанного .
2. . нууу . онанизм - пусть даже и цифровой то же кому-то приятен .
3. любая ТЗ позволяет группировать - и вдоль - и поперЁк - и "о-боже" даже по-диогонали .
4. нет .
5. ага .
6. чем фундаментальнее вопрос - тем ОН проще . например, почему Земля крутится ? .
п.с. НЕсогласен.
. я говорю о единстве, о гармонии - "формы" и "содержания" . вот .
1.
2.
3. Шепот , СКД надо изучить.
4. Да.
5. То-то.
6. Твоя статья - про запросы.
P.S. Ну вот и хорошо.
3. ну. ну, да . да . "я эту книгу не читал но по поводу её содержания могу сообщить следующее . " .
4. уломал .
5. ага .
6. . . моя статья - срубить "плюс"-ов по лЁгкому .
. но, как видишь . "нарастающие итоги" нафигникомуненужны . ))) .
(20) .. нууу конечно же . кто жжжеее спорит .
назвать надо было типа:
1. Пять шагов постижения .
2. Запросы и нарастающие итоги .
3. Метдика решения нарастающих итогов в запросах .
.
.. ну и ещё всякой були-були поднаписать . и обязательно указать много-много ГБайт, жути нагнать рисунками и графиками . и обязательно должны быть непонятные слова типа "глбоко-детальный анализ показывает", "после использования ограничения выборки в таблицах", " скорость получения таблиц результатов при использовании данного метода увеличена в 4-5 раз", привести кучу таблиц с замерами .
ВЫБРАТЬ
ВзаиморасчетыОбороты.Период,
ВзаиморасчетыОбороты.Регистратор,
ВзаиморасчетыОбороты.Контрагент,
ВзаиморасчетыОбороты.СуммаПриход
ПОМЕСТИТЬ ВТ_Источник
ИЗ
РегистрНакопления.Взаиморасчеты.Обороты(, , Регистратор, ) КАК ВзаиморасчетыОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Источник.Период КАК Период,
ВТ_Источник.Регистратор,
ВТ_Источник.Контрагент КАК Контрагент,
ВТ_Источник.СуммаПриход,
СУММА(ВТ_Источник1.СуммаПриход) КАК СуммаНарастающегоИтога
ИЗ
ВТ_Источник КАК ВТ_Источник
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Источник КАК ВТ_Источник1
ПО ВТ_Источник.Период >= ВТ_Источник1.Период
И ВТ_Источник.Контрагент = ВТ_Источник1.Контрагент
СГРУППИРОВАТЬ ПО
ВТ_Источник.Период,
ВТ_Источник.Регистратор,
ВТ_Источник.Контрагент,
ВТ_Источник.СуммаПриход
УПОРЯДОЧИТЬ ПО
Контрагент,
Период
В конкретном примере запрос может отрабатывать неправильно в случае если у регистратора будет совпадать время секунда в секунду в пределах группировки.
Фиксится данная проблема путем наложения более конкретного условия:
Если даты совпадают то происходит отработка по более конкретному условия - "МоментВремени" из регистратора.
ВЫБРАТЬ
ВзаиморасчетыОбороты.Период,
ВзаиморасчетыОбороты.Регистратор,
ВзаиморасчетыОбороты.Контрагент,
ВзаиморасчетыОбороты.СуммаПриход
ПОМЕСТИТЬ ВТ_Источник
ИЗ
РегистрНакопления.Взаиморасчеты.Обороты(, , Регистратор, ) КАК ВзаиморасчетыОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Источник.Период КАК Период,
ВТ_Источник.Регистратор,
ВТ_Источник.Контрагент КАК Контрагент,
ВТ_Источник.СуммаПриход,
СУММА(ВТ_Источник1.СуммаПриход) КАК СуммаНарастающегоИтога
ИЗ
ВТ_Источник КАК ВТ_Источник
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Источник КАК ВТ_Источник1
ПО (ВТ_Источник.Период > ВТ_Источник1.Период
ИЛИ ВТ_Источник.Период = ВТ_Источник1.Период
И ВТ_Источник.Регистратор.МоментВремени >= ВТ_Источник1.Регистратор.МоментВремени)
И ВТ_Источник.Контрагент = ВТ_Источник1.Контрагент
СГРУППИРОВАТЬ ПО
ВТ_Источник.Период,
ВТ_Источник.Регистратор,
ВТ_Источник.Контрагент,
ВТ_Источник.СуммаПриход
УПОРЯДОЧИТЬ ПО
Контрагент,
Период
В данной статье будет описано, что такое нарастающие итоги в 1С, а также как проводить работу с нарастающими итогами для оптимизации бизнес-процессов.
Нарастающий итог – это некоторые промежуточные суммы, которые необходимы для общего представления всей суммы по данным относительно времени. При помощи сумм нарастающих итогов можно проводить оценку суммарного вклада некоторой величины в конкретном периоде.
2. Задача по определению просроченных долгов
Пусть у нас есть две таблицы – «Долги» и «Обороты», как показано ниже:
Рис. 1 Таблица Долгов
Рис. 2 Таблица «Обороты»
Задача: сделать таблицу «Просроченные основные долги», как показано ниже:
Рис. 3 Таблица просроченных основных долгов
В исходной таблице находится документация на величину, которая равна сумме долга контрагента.
Принцип нахождения исходной таблицы – это распределение строки «Накл. 2», которая имеет регистратор, внутри таблицы «Обороты».
Таким образом сумма долга будет иметь такой вид сложения:
· Строка «Накл. 4» – 100;
· Строка «Накл. 3» – 80;
· Строка «Накл. 2» – 20, а 20 – это некоторая часть из «Сумма» в текущей строке внутри таблицы «Обороты».
То есть получается, что нужно найти внутри таблицы «Обороты» строку, которая будет являться крайней во всём порядке строк в таблице, которая подбирает в противоположном порядке строки до нужной суммы долга.
3. Алгоритм решения с нарастающими итогами в 1С
Рассмотрим подробный алгоритм для решения данной задачи.
1. Для начала, необходимо получить общие обороты, учитывая нарастающие итоги с начала каждого месяца в таблице «Обороты». Так как у контрагента в нашем примере долг = 200, то это входит в сентябрь, в котором интервал 180-280. Остаток по долгу, чтобы снова найти нужный поиск, будет происходить так: 200-180 = 20. Верхняя часть таблицы заполняется нарастающими итогами для оборотов, как показано в примере таблице ниже:
Рис. 4 Верхняя часть таблицы заполняется нарастающими итогами
2. Далее у нас появится правильный перечень документации, которая содержит нарастающий итог с начала месяца. Так как последний остаток у нас составляет 20 и он находится в промежутке от 0 до 60, мы нашли необходимую строчку в таблице «Обороты», как показано ниже:
Рис. 5 Нарастающий итог с начала сентября
3. Следующим шагом нужно будет скопировать те строчки в таблице «Обороты», в которых период равен, либо превышает 20.09.09 для новой таблицы. Далее прибавим новые столбцы: «Долг» и «Просроченный долг». Дальше нужно произвести заполнение новых столбцов так, что «Долг» нарастающим итогом в строчке «Накл. 2» = 20, а «Дата отсрочки» – 01.11.09, как демонстрируется на скриншоте ниже:
Рис. 6 Заполнение столбца таблицы «Долг нарастающим итогом»
Выше было описано только два варианта промежутка месяц-документ. Обычно в таблице «Обороты» довольно большая временная плотность, так что необходимо использовать интервал поиска таким образом: год → квартал → месяц → декада → день → документ.
Решение задачи при помощи запросов
Рассмотрим, как должен выглядеть запрос по отчёту в 1С «Просроченный долг», который находится в конфигурации «ПросроченныйДолг.dt». Первичные две таблицы, «Долги» и «Оборот», в запросе будут описаны как справочники.
Для начала необходимо описать ежемесячные обороты, тогда запрос будет выглядеть следующим образом:
Рис. 7 Описание ежемесячных оборотов
Первичная таблица, основанная на запросе «ОборотыПоМесяцам» будет иметь такой вид:
Рис. 8 Таблица ежемесячных оборотов
Далее нужно организовать запрос, чтобы определять итоги, которые нарастают, в «ОборотыПоМесяцам». Текст запроса будет следующим:
Рис. 9 Текст запроса для определения нарастающих итогов в 1С
Результатом данного запроса будет таблица с доходами нарастающим итогом «ОборотыПоМесяцамНарастающие», как демонстрируется на скриншоте ниже:
Рис. 10 Таблица с доходами нарастающим итогом
Далее ищем строку, которая будет иметь промежуток от «СуммаДо» до «СуммаПосле» и будет содержать внутри себя необходимое значение долга нарастающим итогом, для этого, в запросе нужно задействовать таблицы «Долги» и «ОборотыПоМЕсяцамНарастающие» и их соединение:
Рис. 11 Запрос для поиска значения долга нарастающим итогом
В результате выполнения запроса формируется таблица «ДолгиПоВыбраннымМесяцам»:
Рис. 12 Таблица долга нарастающим итогом
Следующим шагом в запросе будет выбор из таблицы с оборотами документации за конкретный временной промежуток:
Рис. 13 Запрос с выбором документации с суммой нарастающим итогом
Результатом будет таблица «ДвиженияПоВыбраннымМесяцам»:
Рис. 14 Таблица Движение по выбранным месяцам с нарастающим итогом в 1С
Дальше нужно получить долги нарастающим итогом, по необходимой документации, для этого запрос будет следующим:
Рис. 15 Запрос для выбора документации по долгам нарастающим итогом
Получим промежуточную таблицу «ДвиженияПредварительные»:
Рис. 16 Таблица Движения предварительные с нарастающим итогом в 1С
Далее, согласно нашему параметру «ОстатокДолга» = 20, нужно выявить одну строку и вывести её внутри таблицы «ДвиженияОкончательные», как демонстрируется в тексте запроса ниже:
Рис. 17 Выбор остатка долга нарастающим итогом
Итогом выполнения данного запроса будет таблица «ДвиженияОкончательные», которая представлена ниже:
Рис. 18 Таблица с остатком дога нарастающим итогом
Последний шаг – это получение окончательной таблицы при помощи таблицы «ДвиженияОкончательные» и таблицы «Обороты»:
Рис. 19 Окончательный запрос с нарастающим итогом
Далее получаем окончательную таблицу «ПросроченныеДолги», как показано ниже:
Рис. 20 Окончательная таблица Просроченные долги
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
В данной статье будет описано, что такое нарастающие итоги в 1С, а также как проводить работу с нарастающими итогами для оптимизации бизнес-процессов.
Нарастающий итог – это некоторые промежуточные суммы, которые необходимы для общего представления всей суммы по данным относительно времени. При помощи сумм нарастающих итогов можно проводить оценку суммарного вклада некоторой величины в конкретном периоде.
2. Задача по определению просроченных долгов
Пусть у нас есть две таблицы – «Долги» и «Обороты», как показано ниже:
Рис. 1 Таблица Долгов
Рис. 2 Таблица «Обороты»
Задача: сделать таблицу «Просроченные основные долги», как показано ниже:
Рис. 3 Таблица просроченных основных долгов
В исходной таблице находится документация на величину, которая равна сумме долга контрагента.
Принцип нахождения исходной таблицы – это распределение строки «Накл. 2», которая имеет регистратор, внутри таблицы «Обороты».
Таким образом сумма долга будет иметь такой вид сложения:
· Строка «Накл. 4» – 100;
· Строка «Накл. 3» – 80;
· Строка «Накл. 2» – 20, а 20 – это некоторая часть из «Сумма» в текущей строке внутри таблицы «Обороты».
То есть получается, что нужно найти внутри таблицы «Обороты» строку, которая будет являться крайней во всём порядке строк в таблице, которая подбирает в противоположном порядке строки до нужной суммы долга.
3. Алгоритм решения с нарастающими итогами в 1С
Рассмотрим подробный алгоритм для решения данной задачи.
1. Для начала, необходимо получить общие обороты, учитывая нарастающие итоги с начала каждого месяца в таблице «Обороты». Так как у контрагента в нашем примере долг = 200, то это входит в сентябрь, в котором интервал 180-280. Остаток по долгу, чтобы снова найти нужный поиск, будет происходить так: 200-180 = 20. Верхняя часть таблицы заполняется нарастающими итогами для оборотов, как показано в примере таблице ниже:
Рис. 4 Верхняя часть таблицы заполняется нарастающими итогами
2. Далее у нас появится правильный перечень документации, которая содержит нарастающий итог с начала месяца. Так как последний остаток у нас составляет 20 и он находится в промежутке от 0 до 60, мы нашли необходимую строчку в таблице «Обороты», как показано ниже:
Рис. 5 Нарастающий итог с начала сентября
3. Следующим шагом нужно будет скопировать те строчки в таблице «Обороты», в которых период равен, либо превышает 20.09.09 для новой таблицы. Далее прибавим новые столбцы: «Долг» и «Просроченный долг». Дальше нужно произвести заполнение новых столбцов так, что «Долг» нарастающим итогом в строчке «Накл. 2» = 20, а «Дата отсрочки» – 01.11.09, как демонстрируется на скриншоте ниже:
Рис. 6 Заполнение столбца таблицы «Долг нарастающим итогом»
Выше было описано только два варианта промежутка месяц-документ. Обычно в таблице «Обороты» довольно большая временная плотность, так что необходимо использовать интервал поиска таким образом: год → квартал → месяц → декада → день → документ.
Решение задачи при помощи запросов
Рассмотрим, как должен выглядеть запрос по отчёту в 1С «Просроченный долг», который находится в конфигурации «ПросроченныйДолг.dt». Первичные две таблицы, «Долги» и «Оборот», в запросе будут описаны как справочники.
Для начала необходимо описать ежемесячные обороты, тогда запрос будет выглядеть следующим образом:
Рис. 7 Описание ежемесячных оборотов
Первичная таблица, основанная на запросе «ОборотыПоМесяцам» будет иметь такой вид:
Рис. 8 Таблица ежемесячных оборотов
Далее нужно организовать запрос, чтобы определять итоги, которые нарастают, в «ОборотыПоМесяцам». Текст запроса будет следующим:
Рис. 9 Текст запроса для определения нарастающих итогов в 1С
Результатом данного запроса будет таблица с доходами нарастающим итогом «ОборотыПоМесяцамНарастающие», как демонстрируется на скриншоте ниже:
Рис. 10 Таблица с доходами нарастающим итогом
Далее ищем строку, которая будет иметь промежуток от «СуммаДо» до «СуммаПосле» и будет содержать внутри себя необходимое значение долга нарастающим итогом, для этого, в запросе нужно задействовать таблицы «Долги» и «ОборотыПоМЕсяцамНарастающие» и их соединение:
Рис. 11 Запрос для поиска значения долга нарастающим итогом
В результате выполнения запроса формируется таблица «ДолгиПоВыбраннымМесяцам»:
Рис. 12 Таблица долга нарастающим итогом
Следующим шагом в запросе будет выбор из таблицы с оборотами документации за конкретный временной промежуток:
Рис. 13 Запрос с выбором документации с суммой нарастающим итогом
Результатом будет таблица «ДвиженияПоВыбраннымМесяцам»:
Рис. 14 Таблица Движение по выбранным месяцам с нарастающим итогом в 1С
Дальше нужно получить долги нарастающим итогом, по необходимой документации, для этого запрос будет следующим:
Рис. 15 Запрос для выбора документации по долгам нарастающим итогом
Получим промежуточную таблицу «ДвиженияПредварительные»:
Рис. 16 Таблица Движения предварительные с нарастающим итогом в 1С
Далее, согласно нашему параметру «ОстатокДолга» = 20, нужно выявить одну строку и вывести её внутри таблицы «ДвиженияОкончательные», как демонстрируется в тексте запроса ниже:
Рис. 17 Выбор остатка долга нарастающим итогом
Итогом выполнения данного запроса будет таблица «ДвиженияОкончательные», которая представлена ниже:
Рис. 18 Таблица с остатком дога нарастающим итогом
Последний шаг – это получение окончательной таблицы при помощи таблицы «ДвиженияОкончательные» и таблицы «Обороты»:
Рис. 19 Окончательный запрос с нарастающим итогом
Далее получаем окончательную таблицу «ПросроченныеДолги», как показано ниже:
Рис. 20 Окончательная таблица Просроченные долги
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Читайте также: