Как достучаться в запросе до реквизита текущего документа? #14341


#0 by Diter
Доброго всем времени суток. Есть запрос и есть группировка Документ. Как получить в запросе значение реквизита текущего документа. Например контрагента? Может всё просто, но у меня нифига не получается.
#1 by Guk
Например вот так:
#2 by Шапокляк
Или через переменные запроса, типа |Контр=Документ.РасходнаяНакладная.Контрагент или в обработке результатов запроса Запрос.Документ.Контрагент
#3 by Diter
Опа. не предупредил. Запрос по регистру. По документам не получается (если кто помнит пару дней назад была ветка моя по запросам, так вот до сих пор тр...юсь)
#4 by Шапокляк
|Клиент = Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяНакладная.Клиент; если документы в регистре разных типов, через запятую... А если при обработке результатов запроса, там по алгоритму извлекать, что-то вроде Если Запрос.Документ.Вид="ТакойТо" Тогда Контрагент=...
#5 by Diter
Мне не известны заранее документы, по которым будет делаться запрос (точнее их виды). Предупрежу сразу - если формировать строку видов документов программно, то она при некоторых условиях может превысить допустимую длину.
#6 by Шапокляк
Ну значит при обработке результатов запроса - выгружаем в ТЗ, создаем новую колонку Контрагент, предположим, и начинаем извращаться над документами, можно как я говорила через перебор в зависимости от вида, можно через Попытку-исключение, можно функцией КонецФункции определять, есть реквизит шапки с каким-то наименованием... И заполняем колонку. Вот интересно, неужели этот регистр двигается таким огромным количеством документов?
#7 by Diter
Документов в конфе порядка 30 видов (переделаная ТиС). Такое количество от небольшого ума предыдущего программиста. Причём он периодически появляется и по "просьбам трудящихся" ваяет очередной документ копируя и исправляя уже существующие. Разбираться в его выкрутасах нет желания, как нет его приходить каждый раз, как поработает этот товарищь. Отсуда пришёл к выводу - формировать список документов, которые могут двигать регистр программно. Перебор конечно сам просится, но - формирование запроса по одной группе товара (15000 элементов) без отсучки по нужным юзеру клиентам занимает порядка 5 минут - и это только запрос по расходам. Нужно ещё три (остатки на начало, остатки на конец и поступления). Заказ - анализ продаж и расчёт прибыли.
#8 by Diter
(+7) "без отсучки по нужным " читать как "без отсечки по нужным "
#9 by Guk
По какому регистру запрос делаешь?...
#10 by Diter
Будешь смеяться, но в конфе три регистра - "ОстаткиТоваров", "Взаиморасчеты" и "Прибыль". Запрос делаю по Остаткам. В регистре два измерения "Товар" и "Склад", ресурсы "Остаток" и "БалансоваяСтоимость".
#11 by Guk
Да, действительно смешно...
#12 by Diter
Правда в Регистре "Взаиморасчеты" есть два измерения "Клиент" и "Документ". Может как-то можно сделать "перекрёстный" запрос? По идее документ двигающий регистр "ОстаткиТоваров" прописывается в регистре "Взаиморасчёты".
#13 by Diter
Если переделать регситры и перепровести документы, то меня подвесят за ... Ну в общем за нужное дело подвесят. База за три года, документов в месяц порядка 2000-3000 причём все доки не маленькие (фирма торгует через сеть магазинов автозапчастями оптом и в розницу). Как то решил перепровести документы за два месяца - заняло 5 часов. Перепроведение доков за весь период остановит работу конторы на несколько суток. Хозяин - вроде вежливый мужик, но не нравится мне его блеск в глазах, когда я ему счёт выставляю. Бось огорчиться очень от простоя и упущеноё выгоды.
#14 by Guk
Тогда тебе уже всё сказали...
#15 by tsd
есть такая штука РазделительСтрок, вот ее и вставляй при программном формировании строки запроса, тогда превышения не будет.
#16 by Rovan
Не поможет - при выполнении запроса учитывается реальная длина строки, а не способ её задания в конфигураторе. Работай с ТЗ. Чего стесняешься ?
#17 by tsd
интересно почему это работает?
#18 by Diter
Наверно потому, что суммарная длина строки не превышает 254 символа В ТЗ получается за три месяца 25000 строк, а нужно например только 8.
#19 by tsd
а попробуй запусти на стандартной бухгалтерии.
#20 by Diter
Зачем?
#21 by Rovan
Ты - прав ! Молодец ! Работает !
#22 by Diter
Это насколько я понял запрос по документам, а значение реквизитов документов как?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С