Нетривиальная задача для запроса по бухитогам

Форум 1С: Одинэс.Ру

Найти!

Нетривиальная задача для запроса по бухитогам

victuan
26.03.2009 - 12:09
Есть список элементов справочника Материалы и Номенклатура.
Необходимо получить для каждого элемента последний документ поступления (список видов документов поступления - задается пользователем).
Интересно, как можно получить этот список документов быстро?
Решение я конечно знаю, но хочется получить наибыстрейшее.
Поэтому прошу участвовать.
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
24.10.2020 - 09:19
Смотри также:
7.Помогите организовать поиск по адресной строке в списке справочника
Неверные данные записываются в регистр при проведении документа ТиС 7.7 SQL
Плоский справочник как лог - вопросы

Re: Нетривиальная задача для запроса по бухитогам

victuan
1 - 26.03.2009 - 12:23
Я знаю один способ: цикл по перебору документов нужного вида через ОбратныйПорядок(1), выгрузка ТЧ документа в ТЗ, поиск в ней элементов из списка справочника, если найден занести в ТЗ - эл-т справочника и его последний документ, вычеркнуть этот элемент из списка справочника.
Но этот метод жутко тормозной.
Как, используя, например, возможности запроса, получить быстрый вариант?

Re: Нетривиальная задача для запроса по бухитогам

roma n
2 - 26.03.2009 - 12:25
Общего решения ИМХО нет. Зависит от стуктуры поступлений. Поквартальная "дихотомия" (опять же ИМХО)

Re: Нетривиальная задача для запроса по бухитогам

victuan
3 - 26.03.2009 - 12:32
(2) Поквартальная "дихотомия" запросом по бухитогом с вычеркиванием из списка отработанных элементов справочника. Наверное, да.

Re: Нетривиальная задача для запроса по бухитогам

victuan
4 - 26.03.2009 - 12:35
(2) Тем более что, следующая задача: получить все документы поступления каждого элемента справочника в пределах того квартала, в котором был обнаружен последний документ его прихода.
Т.е. одним заходом я решу две задачи.
Спасибо за подсказку, сам я не додумался.

Re: Нетривиальная задача для запроса по бухитогам

roma n
5 - 26.03.2009 - 12:36
+ Но есть недостаток. Поступление и сторнирование в одном периоде "дихотомии" (если использовать бухитоги) проглотится

Интересные темы

odines.ru
24.10.2020 - 09:19
Смотри также:
Не получается проверить 2НДФЛ :(
Перенос длинной текстовой строки без пробелов
Вопрос по внешней компоненте Formex

Re: Нетривиальная задача для запроса по бухитогам

victuan
6 - 26.03.2009 - 12:38
(5) Если я сделаю детализацию запроса "Проводка", то - нет.

Re: Нетривиальная задача для запроса по бухитогам

victuan
7 - 26.03.2009 - 12:40
Под "дихотомией" я имел ввиду провести серию запросов с периодом квартал в убывающем порядке до начала существования базы, пока не иссякнет список обрабатываемых элементов.

Re: Нетривиальная задача для запроса по бухитогам

roma n
8 - 26.03.2009 - 12:45
(6) так не исчезнет, но запросы будут довольно громоздкими. Если б не (5) можно было бы сделать серию запросов с все возрастающей точностью. Правда далеко не факт, что это дало бы прирост в скорости по сравнению с (6). С учетом (4) - (6) наверное будет в точку

Re: Нетривиальная задача для запроса по бухитогам

victuan
9 - 26.03.2009 - 13:11
Буду пробовать, учитывая, что поставки достаточно постоянны, то каждый последующий "квартальный" запрос будет выполняться со все меньшим фильтром по номенклатуре и быстро быстро иссякать.

Re: Нетривиальная задача для запроса по бухитогам

iogri
10 - 26.03.2009 - 13:56
Структуру базы можно менять?

Re: Нетривиальная задача для запроса по бухитогам

victuan
11 - 26.03.2009 - 14:06
(10) Можно. Ты предлагаешь завести в спр. Номенклатура реквизит, в котором при проведении поступлений пробивать документ?
А уже имеющиеся эл-ты справочников дозаполнить обработкой?

Re: Нетривиальная задача для запроса по бухитогам

iogri
12 - 26.03.2009 - 14:16
2(11) Да.
Была необходимость фиксировать не последний документ, а последнюю цену. Завел периодический реквизит "ПоследняяЦена" с изменением по документу. Цену видно сразу, документ - запросом по периодическому. Но ничто не мешает фиксировать в отдельном реквизите и сам документ - тогда еще быстрее.

Re: Нетривиальная задача для запроса по бухитогам

victuan
13 - 26.03.2009 - 14:20
(12) Плохое решение, если номенклатуры много, а база ДБФ (а так оно и есть), то через некоторе время 1sconst перевалит за 1Г и работать в базе станет не возможно. Отметаю решение.

Re: Нетривиальная задача для запроса по бухитогам

roma n
14 - 26.03.2009 - 14:21
(12) Сомнительное удовольствие. При большом товарообороте табличка пухнуть будет быстро. Хотя все зависит от задачи.
А делать непериодический - не выйдет, бо фильтр по видам документов. Да и с изменением времени/отменой проведения запара будет

Re: Нетривиальная задача для запроса по бухитогам

victuan
15 - 26.03.2009 - 14:25
(14) Да. Т.к при отмене проведения "последнего" документа надо искать последний из оставшихся, т.е возвращаемся к (0). А в модуле проведения документа такая задача - бомба!

Re: Нетривиальная задача для запроса по бухитогам

iogri
16 - 26.03.2009 - 14:34
2(13,14)
В моем случае было порядка 1000 позиций справочников, 1-2 прихода в месяц, поэтому нормально.
Одна запись занимает примерно 300 байт таблицы констант. Чтобы убить 2 гига нужно >6 миллионов записей (строк приходных накладных).
Согласен. Для очень большой базы может не взлететь.

Re: Нетривиальная задача для запроса по бухитогам

victuan
17 - 26.03.2009 - 14:45
Если ковырять мд, то лучше уж так: писать движения в оборотный регистр с измерениями "Документ" и "Номенклатура", а потом ОбратныйПорядок()/УстановитьФильтр()/ВыбратьДвижения()/ПолучитьДвижение()

Re: Нетривиальная задача для запроса по бухитогам

roma n
18 - 26.03.2009 - 14:46
17-victuan > При наличии отсутствия компоненты это затруднительно

Re: Нетривиальная задача для запроса по бухитогам

iogri
19 - 26.03.2009 - 14:47
+(16)
С другой стороны, одна запись в таблице проводок занимает места порядка 500 байт (даже если у проводок нет дополнительных реквизитов) - а строка накладной даст минимум одну проводку.
Так что, проблема ограничения размера в первую очередь возникнет в таблице проводок.

Re: Нетривиальная задача для запроса по бухитогам

victuan
20 - 26.03.2009 - 14:48
(18) Я знаю, и не хотелось бы в чистую бух, добавлять ошметки опер. учета.
ЗЫ. Компонента есть.

Re: Нетривиальная задача для запроса по бухитогам

2Green
21 - 26.03.2009 - 19:07
а чо сразу оперучёт, как будто в бухкомпоненте негде хранить
забалансовый счет с субконто СправочникМатериаловНоменклатуры неопределённого вида, СправочникНаименованийВидовДокументов, ДокументПоступления и обработочкой сформировать проводки к документам поступления в закрытом для редактирования периоде.

Re: Нетривиальная задача для запроса по бухитогам

2Green
22 - 26.03.2009 - 19:12
или подчинённый справочник

Re: Нетривиальная задача для запроса по бухитогам

roma n
23 - 27.03.2009 - 05:18
21-2Green >
бухия не позволяет выбирать периоды в обратном порядке. Была бы возможность и вопроса б не возникло.
19-iogri >
как-то темпы роста на запись не оценивал... На вскидку: а индекс как растет?

Re: Нетривиальная задача для запроса по бухитогам

iogri
24 - 27.03.2009 - 07:27
2(23)
Я тоже никогда не оценивал. Просто глянул размеры полей таблиц...
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Очередность заполнения реквизитов справочника 1с 7,7 + Linux + OLE »
© 2009 Форум 1С: Одинэс.Ру