Запрос по регистру с фильтрацией по реквизиту шапки документа #155585


#0 by Dallas
Ситуация следующая: конфа - Комплекс для Украины. Работники хотят видеть в отчете по Взаиморасчетам(поставщиков и покупателей)выборку по типу продукции. Есть несколько видов продукции; приход-расход-оплата происходят исключительно по видам продукции. Добавлять измерение/реквизит в регистры не совсем подходит: в день проводят 150-300 накладных,- перепроводить их нереально. Добавил реквизит ТипПродукции в документы и написал обработку по автозаполнению, но с отчетом ничего не получается. Подскажите, пожалуйста, решение, может кто сталкивался :-(
#1 by Alexaha
уточни вот что: есть ли еще документы, двигающие этот регистр или только этот?
#2 by IchRovan
так делал ?
#3 by Alexaha
2. если другие доки регистр не двигают, тогда этого будет достаточно, а иначе придется через внешнюю функцию фильтровать
#4 by Dallas
ивыбрал все документы двигающие регистр (простая обработка)и ВО ВСЕХ этих документах добавил реквизит ТипПродукции. При выполнении запроса была ругань "Поле агрегатного объекта не обнаружено (ТипПродукции): 2", чего-то считает.......|Докум=Регистр.ВзаиморасчетыПокупателей.ТекущийДокумент,Регистр.ВзаиморасчетыПоставщиков.ТекущийДокумент;...
#5 by Dallas
Да начальные остатки неправильно считаются, ихвообще нет!
#6 by leshik
А начальных остатков и не будет... у тебя же ТекущийДокумент = это предопределенная группировка, если бы у тебя было измерение типа Документ (в разрезе каких документов долг храниться...) но как быть тогда с авансами :-)
#7 by Alexaha
5.|Докум=Регистр.ВзаиморасчетыПокупателей.ТекущийДокумент,Регистр.ВзаиморасчетыПоставщиков.ТекущийДокумента где идентификатор документа?
#8 by Dallas
----------------Запрос[9] : Неверно заданный путь 'ТипПродукции'(Alexaha) а как через внешнюю функцию фильтровать? Пользователь не обязательно захочет видеть взаиморасчеты в разрезе документов, а просто по Клиенту... :-( SOS!!!
#9 by mvk
Ну еще можно добавить измерение в регистр, а потом обработкой напрямую в таблицу соответствующего RA... заполнить поле значениями типа продукции и выполнить пересчет итогов регистра, чтобы RG заполнилось.
#10 by Dallas
К сожалению не могу перепроводить такую кипу документов, а так бы выкрутился измерением/реквизитом.Я ведь не могу загнать в движение регистра реквизит без перепроведения документа, породившего это движение. Поэтому родилась идея выкрутиться просто реквизитом документов. Пользователи хотят видеть информацию по взаиморасчетам именно в разрезе видов продукции. Может есть другие варианты без проведения документов?
#11 by IchRovan
надо делать либо общий реквизит либо в запросе перечислять все(!) типы документов двигающих регистрТекДок=Регистр.ВзаиморасчетыПокупателей.ТакойтоДок1.ТекущийДокумент,Регистр.ВзаиморасчетыПокупателей.ТакойтоДок2.ТекущийДокумент, ... ;
#12 by Dallas
(mvk) А что это за обработка? Есть ли какой-то опыт ее использования, насколько корректно она работает. (УРБД: Центр-DBF, периферия-SQL и DBF)
#13 by Dallas
(IchRovan) - объясни пожалуйста, что даст общий реквизит
#14 by mvk
Общий реквизит даст возможность писать запрос без типизации документа:ТипПродукции=Регистр.ВзаиморасчетыПокупателей.ТекущийДокумент.ТипПродукции; Нет такой обработки - это прямое вмешательство в данные. Нужно писать под тебя, причем не на 1С, а извне.
#15 by Dallas
Общий реквизит даст возможность писать запрос без типизации документа....С этим все в порядке, большене ругается, но по прежнему не видно ни начального ни конечного остатков, а хотелось бы увидеть.Очень!!!
#16 by Саха
и Остатки берутся ТОЛЬКО по ИЗМЕРЕНИЯМ, а не по реквизитам Документа !!!!!!статок(<?>,)Синтаксис:Остаток(<Измерен1>,<Измерен2>...,<ИмяРесурса>)Назначение:Возвращает значение остатка заданного ресурса регистра.Параметры:<Измерен1>,<Измерен2>... - значения измерений регистра;<ИмяРесурса> - название требуемого ресурса регистра.Замечание:Метод используется только для регистров
#17 by Шурик71
Как засунуть данные по новому измерению в регистр.1)В регистре снимается галка "Авт. удаление движений".2)Во всех доках, двигающих регистрв ОбработкуПроведения добавляется параметр//// Процедура ОбработкаПроведения(ПарПроведения)4) Затем пишется: (в начале процедуры)КонецЕсли;3) Код процедур (функций) "СохранитьДвиженияДокумента" и "ПровестиДокументПоТЗ(Тз)" напишешь сам :)4) Пишешь обработку, которая будет вызывать Док.Провести(,"ПроставитьРеквизитХХХ");
#18 by Dallas
Спасибо, интересное решение, сам бы не додумался.НО!!! Опять натыкаемся на перепроведение документов, что при исходных условиях недопустимо: документооборот немаленький, одновременно работают до 20 человек, выходных нет, также работает ночной оператор у которого тоже немало работыSOS!!!
#19 by Шурик71
Запусти перепроведение ночью, порциями через обработку ожидания.Т.е. при запуске обработкипо нажатию кнопки, запихнуть в список значений все документы для перепроведения, и последней строкой Форма.ОбработкаОжидания("ПроводитьПорцией",Интервал);В форме процедура ПроводитьПорцией - проводит "служебно" по 10 документов и ждет, к примеру, 3 минуты (чтобы другие работали).Служебное проведение будет быстрым, т.к. расчеты не нужны.За ночь проведется :)
#20 by Dallas
(Шурик71) Огромное спасибо! Перепроводится действительно быстро (попробую еще с транзакцией)!Возьми меня к себе, в Страну Умных!!!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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