Как в журнале документов установить отбор по нескольким значениям #210074


#0 by biimmap
Привет всем! есть ТиС измененная, нужно в общем журнале документов установить отбор по нескольким реквизитам, например по виду документов и по контрагенту! как это делается? Очень нужно!!! помогите!
#1 by SunShinne
ТаблицаЗначений
#2 by Woppi
Если очень нужно - заведи общий реквизит, типа строка, в нем храни ВидДокумента+Контрагент, отбор программно по значению этого поля.
#3 by biimmap
Мне нужен пример кода. т.к. я в душе не шарю как это делать
#4 by zzz
засекаем 2 часа..
#5 by Бит
набираем в поиске форума "отбор" жмем интер
#6 by Dev
В дУше или в душЕ :)
#7 by SunShinne
тем более ТаблицаЗначений
#8 by DeiMos
Отбор в журнале по нескольким параметрам Решение John26.01.2000 - 07:56 Добавляем в каждый документ реквизит ВОтборе. В модуле журнала производим проверку каждого документа этого вида на соответствие параметрам отбора. Устанавливаем реквизит. Перезаписываем документы. Устанавливаем отбор. Проверял - работает. Хоть коряво, но есть и плюсы - можно отбирать документы хоть по 10 параметрам, причем и по тем которые задаются пользователемКоммунист6 - 26.01.2000 - 20:25 Есть более тонкие решения.... Правда не общие, но и не такие корявые, как я когда-то раньше описывал....John7 - 27.01.2000 - 08:05 Коммунисту: Например ....Anton8 - 27.01.2000 - 14:01 Коммунист, зря ты так, идея неплохая, John, я записал в функцию ПриЗаписи в интересующих документах запись дополнительных реквизитов (у меня 3 реквизита A,B,C для отбора и 3 дополнительных реквизита AB,AC,BC) и модифицировал форму журнала. Отборы (любые) работают как из пушки и пересчитывать ничего не нужно. С меня причитается.Коммунист11 - 27.01.2000 - 19:20 Аnton! Я корявым назвал метод использования таблицы значений!То, что Вы описали и есть самое грамотное решение!А размер базы здесь вообще ни причем!Anton12 - 28.01.2000 - 00:37 О размере базы. Мелкая она у меня после Y2ю Архивы по 2 мега делает. А насчет обновления реквизитов обработкой - я против. Стараюсь реквизиты документа изменять только в момент его сохранения юзером. Всю служебную инфу - в регистры или если лень - через запросы.Коммунист13 - 28.01.2000 - 11:19 Насколько я помню, там в типовой у народа такая задача, в документах банковских надо указывать, какие счета, накладные и т.д. гасятся...или что-то в этом роде. Погашение может быть частичным, и надо при подборе документов выбирать недогашенные и еще суммы видеть к погашению (которые в регистрах болтаются, и не факт, что на виду). Это кажется самый тяжелый случай! такое в доки не запихнуть... Или я не прав! Кто-нибудь такие отборы делал?Владимир Н.14 - 28.01.2000 - 12:47 Товарищ Коммунист, я делал подобный отбор, у меня существует специальный документ "Резерв", есть регистр Резервирование(Товар,Склад,Док,"Резерв").При проведении ентот документ делает "Приход" по этому регистру. Если на основании него выписывается накладная (у нее в табличной части есть реквизит-этот документ Резерв),то она списывает из этого регистра (может частично), при проведении проверяет, остался ли сводный остаток по этому документу(Резерву) в регистре, если нет, присваивается единица реквизиту "Погашен" этого резерва (или 0, если наоборот). Соответственно по этому реквизиту можно сделать отбор, можно делать отбор также по частично погашенным документам. также в форме журнала показывается остаток товара по этому резерву, и т. д. Что-то я, наверное, загрузил всех.Пока!Anton15 - 28.01.2000 - 16:40 Тогда если непогашенных документов не очень много может не через подбор выводить надо а через обработку?, Сделать запрос, выгрузить его в таблицу формы обработки, причесать ее слегка, иконки добавить...Коммунист16 - 28.01.2000 - 17:10 1. Схема резервирования совершенно понятна, как и то, что вы сделали с флагом в документе "Резерв". Интересно всетаки отбор делать по клиенту и по сумме непогашенного долга больше ненулевого предела!2. Anton! В маленькая базе проблем со скоростью нет в принципе, а вот в БОЛЬШОЙ!Anton17 - 28.01.2000 - 23:08 Старая база, (с которой проблем в общем-то тоже небыло) и на которой subj успешно проверен занимает 170Мб на SQL. to Коммунист. Если меньше 50 доков - ну их тогда эти отборы. Лучший отбор - запрос с таблицей!
#9 by DeiMos
Еще раз про отбор в журнале по нескольким параметрам KFR15.08.2000 - 16:45 Извинения за возврат к темеПочему нельзя объединить несколько параметров? Как тогда открывается журнал в SQL, и почему в select в SQL нельзя включать условие, т.е.хочу спросить, какие проблемы были у 1С, что не включили одну из необходимых возможностей работы с журналом. Например работает несколько операторов по выписке накладных, и все это в одной куче. И следующий вопрос :Насколько медленней будет открываться журнал, если буду формировать через запрос и открывать через таблицу значений?Afanasiev Vitaly5 - 16.08.2000 - 01:20 Да можно это. Надо только малость поизвращаться.Типичная проблема - отбор документов конкретного вида по конкретному контрагенту. Для простоты предположим, что журнал называется общий, графа отбора - Контрагент, и она определена для всех дкументоы (в которых только может быть этот реквизит - Контрагент (понятно, что не во вводе остатков товара)Здесь глЗначениеОтбора - глобальная переменная, с помощью которой мы передаем параметр в открывающуюся форму журнала. В ней в процедуре ПриОткрытии мы пишем следующий кодглЗначениеОтбора = "";Результатом всего этого станет то, что пред нами откроется Журнал Общий с отбором по виду документа И контрагенту - то, что и требовалось получить.Проблема правда в том, что откроется он в режиме жесткого выбора, т.е. кнопки НовыйДокумент и пр. недоступны (об этом позже). Главное, что мы установили - то что в 1С есть все необходимые индексы и пр. для выполнения такого одновременного отбора.Теперь о том, как открыть данный журнал в ином режиме.Допустим, что у нас есть форма и в ней реквизит типа Документ.КакойТоВидВ процедуру ПриНачалеВыбораЗначения(ИдЭлемДиалога, ФлагСтандобр) помещаем кодРезультат- опять же открывается журнал с отбором и по документу и контрагенту. но уже в режиме мягкого выбора - кнокпи создания нового документа и пр. доступны.Так что осталось совсем немного - открыть журнал в режиме чисто просмотра. Тут правда пока решения не нашел.
#10 by DeiMos
Отбор в журнале по нескольким параметрам Alexander21.01.2000 - 10:24 1С7.7.Необходимо сделать отбор в журнале по нескольким параметрам.Например, по автору и типу документов. Я понимаю, это невозможно? Или как ?Коммунист1 - 21.01.2000 - 19:41 Возможно, но ТАААААК криво! Проще в 1С коллективное письмо накатать, чтобы они наконец эту фичу вставили, и не в общий журнал, а во все!AlexG2 - 22.01.2000 - 00:51 Досточтимые сэры! А как это вообще можно сделать, пусть и криво? А то ну очень от меня хотят журнал счетов (и только счетов, к примеру), где показаны только счета данного менеджера (т.е. отобранные по реквизиту Автор - общий реквизит для всех документов). Ежели подскажете, как такое слепить в 7.5 - зело признателен буду.Коммунист3 - 22.01.2000 - 12:21 В новую вкладку таблицу значений поместить и заполнить чем требуется.Криво - не правда ли?AlexG4 - 22.01.2000 - 17:42 Весьма криво, согласен. Вопрос: при значительном числе документов насколько медленно (или быстро) эдакая вот штука будет формироваться? Я имею в виду: вот человек нажал на кнопку, чтоб вызвать подборку, откуда будет выбирать нужный счет - и сколько придется ожидать?Коммунист5 - 22.01.2000 - 23:19 Если не все доки выбирать, то быстро - цикл по докам и все. Если прямо множественный отбор, то надо период по-умолчанию ограничить. А как САМ ПОДБОР будет из таблицы работать, не знаю, сделать руки не доходят. Основная фича в таблицах значений - это множественная сортировка - хоть по всем полям сразу, только медленно очень. Этот алгоритм да на ассме бы, да быстрой сортировкой забабахать, да куда там 1С. 100 строк по 4 параметрам на 500MHz 2 секунды сортирует. Время сортироки всего общего журнала - никогда.... Но ничего! Спасибо, хоть такую сортировку реализовали и поиск грамотный не забыли.Интересующийся6 - 23.01.2000 - 11:07 Почему больше никто ничего не пишет. Должны же быть др. способы. Указанный выше способ работает только под 7.7. А под 7.5 что делать?Коммунист7 - 23.01.2000 - 12:14 AlexG! А зачем Вам вообще счета выбирать? Лучше использовать ввод на основании, если поле ПоСчету в многострочной части, то подбирать должна машина?Sergo8 - 23.01.2000 - 19:00 На самом деле это не так трудно, как кажется. Делать надо вот что:1) создаешь нужный вид отбора2) создаешь новый общий журнал2) если нужно выводить все документы какого-то типа, включаешь общий  отбор в журнале по типу документа, если нужно выбрать документы по реквизиту включаешь созданный тобой отбор.Единственная проблема , впрочем легко решаемая, для такого журнала нужносоздать свою панель управления, т.к. панель управления для общих журналовработает со всеми документами сразу.Как создавать разные отборы и подключать их к общим журналам читай в документации к 1С.Желаю удачи!Коммунист9 - 23.01.2000 - 20:33 Есть такая фишка! Но тоже кривой способ! Надо петицию на С писать! Чтобы отбор сделали произвольный, а заодно и разделитель учета произвольный!1С 2001 придется наверное ждать!АНТОН10 - 24.01.2000 - 11:34 Делал такую фишку. В таблицу значений загонял доки по с множественным отбором. Два нюанса 1. Тормоза жуткие времен СУБД на PC XT. 2. Проблемы с захватом таблицы "журналы" 3. Мало просто отобрать. Юзера (так их и эдак) хотят чтобы если они что-то сделали с документом (причем даже на другой машине), чтобы изменения в таблицу отображались. Причем кнопка Обновить их еще и бесит... После этого гемора - двумя руками за петицию
#11 by DeiMos
Неудобно, нужен журнал с отбором по реквизиту по какому либо документут.е. фактически отбор сразу по 2-м реквизитам "Вид документа" и "Фирма"(В моем случае нужны были закладки разделяющие по фирмам журнал ОДНОГО вида документов)Можно сделать Качественный (Не отдельное окошко с ТЗ, а окно 1С-овского журнала, а если умники возра-зят, что это не ново, то поясняю: отбор детальный не нов, но возможен только в ОБЩЕМ журнале,где при вводе нового – вываливается список всех документов, а в моем случае ЭТО НЕ ТАК!) Журнал по 1 ДОКУМЕНТУ! с отбором по фирмам (закладками отбора в журнале)Проблема отбора с использованием общего реквизита документов (например "Фирма" в комплексной)Для отбора по какому либо реквизиту делаешь графу отборакуда включаешь реквизит только нужного документа такого типа,какой он есть в документе. (к примеру "ФирмРасхНакл" значение заполняется при записи из "Фирма"соответственно графа отбора ФирмРасхНакл - т.е. т.к. это реквизит ТОЛЬКО ОДНОГО документа -то при включении этого отбора отбор будет УЖЕ по этому виду документа)Далее делаешь Общий журнал с нужными наворотами(закладки отбора, фильтр, итоги и проч.)Делаешь, что при открытии этого журнала сразу включается фильтр,либо активизируется УстановитьОтбор("НужнаяГрафаОтбора")И всячески запрещаешь его менять интерактивно (через предопред. процедуры)Далее метод использования значения, которое является отбором в открытом журнале при вводе новых документовТ.е. треба чтобы при нажатии ввода нового - открывался этот документ и уже с значением фирмыустановленной в этом журнале документов (а не Константа.ОсновнаяФирма).Делаешь, что при смене отбора в этом журнале - значение отбора сохраняется в ГлобПерем (соответственнопри закрытии журнала - обнуляется), и при вводе нового дока - использовать эту ГлобПерем - если она не пус-тая, иначе использовать Константа.ОсновнаяФирмаДалее метод избавления от неприятного момента появления списка всех документов при вводе новогоТеперь проблема - при нажатии ввода нового документа вываливается список ВСЕХ документовЭто очень неудобно , но есть решение - видимо это глюк ссылочности 1С Сохраняешь Конфу.У Журнала Документов ставишь что он обычныйУ документа ставишь ссылку на этот журнал документовСохраняешь Конфу.У Журнала Документов ставишь что он общийСохраняешь Конфу. - Готово! - главное потом не трогать ни этот журнал,ни ссылочность документа на журнал, иначе они сохранятся нормально и надо будет эту схемуснова делатьОказывается и по нескольким документам тоже можно! - Уже сложнее с вводом новых доку-ментов, решение красивое, обычному пользователю не понять, что ТАКОЕ не реализуется стандартными сред-ствами и стандартным мышлением, хотя иллюзия полная Если Аналогично создать обычный журнал на 2 или более видов документов (например в моем случае чтобы включились кассовые документы в один журнал с отбором по фирмам я сделал и у ПКО и у РКО по реквизиту КасФрм и включил их в одну графу отбора «КасФрм»)) , и провернуть те же операции с ним что и для одного, то по нажатию кнопки нового документа начинает вводиться первый из них (которые раньше были в составе обычного журнала), (вообще-то это с первого раза у меня не получилось,а получилось только после того как я эту конфигурацию подгрузил к неизмененной)чтобы сделать все комфортно и чтобы не вываливался списоквсех документов как обычно - надо это обойти:Создаем 2 глоб. Переменных и присваиваем им значенияПерем НашЖурналДокументовОткрыт Экспорт;Перем НашЖурналДокументовБылОткрыт Экспорт;НашЖурналДокументовОткрыт="Нет";НашЖурналДокументовБылОткрыт="Нет";В журнале Документов при открытииИм присваивается "Да",А при закрытии "Нет";В процедуре "ВводНового" того документа который вводится при вводе нового документав нашем ЖурналеПишем что-то подобноеВ итоге при нажатии кнопки ввода нового документаоткрывается список значений для выбора ТАКОЙ ЖЕ КАК В ОБЫЧНОМ ЖУРНАЛЕ,и вводится новый документ, который выбран, а тот который раньше выскакивал теперь не открываетсяОбычному пользователю не понять красоту этого решения, он будет думать, что все так как надоТак как визуально и по действиям в программе все также, а жаль... P.S.: кстати идея: - если обратиться программно к метаданным насчет состава этого журнала документов, то он покажет ли список?Хм, если покажет, то можно оттуда заполнять список для выбора и тем самым унифицировать ввод докумен-тов. + Сделать документ «Ввод документа» который будет стоять в первым во всех таких журналах и при от-крытии которого он открываться не будет, а будет открываться нужный список документов для ввода (брать состав того журнала, который на данный момент открыт (можно какой-нибудь dll-кой проанализировать ак-тивное окно и вернуть Идентификатор Журнала документов к которому и обратимся за списком))Идея хорошая, но не пробовал, если список не покажет, тогда это все ни к чему
#12 by DeiMos
Диагноз:Надо отфильтровать журнал документов по двум или более реквизитам. Например, выбрать только расходные накладные, причем только с определенным клиентом. Да еще и чтобы тип учета, при этом, был определенным.Анамнез:1С:Предприятие версий 7.5 и 7.7 накладывает ряд ограничений на фильтрацию (отбор) в журналах документов. Во-первых, отбор работает только в журналах типа "общий", т.е. по умолчанию будут отображаться документы всех видов. Во-вторых, отбор возможен только по одному признаку:отобрать документы только одного видаилиотобрать документы по значению графы отбораилиотобрать документы по значению общего реквизита, для которого установлен признак Отбор.Рецепт:Указанное ограничение можно обойти с помощью составного реквизита. Проще всего это объяснить на примере.Предположим, надо отбирать только счета, причем по отдельным клиентам. Прежде всего надо сделать новый общий текстовый реквизит. При записи документов в этот реквизит надо записывать примерно такую строку:Вид+"; "+Контрагент.КодПосле этого, в общем журнале надо дать возможность пользователю установить новый отбор. Например, разместить элемент ВыбКонтр для выбора контрагента, а в процедуре, вызываемой после выбора, написать примерно так:УстановитьОтбор("ИмяРеквизита","Счет; "+ВыбКонтр.Код);Следует иметь ввиду, что при использовании таких ссылок на элементы справочников, их реквизиты, используемые для отбора, должны быть уникальны и неизменны.Для большей надежности следует использовать внутренний идентификатор элемента справочника, который можно получить с помощью функции ЗначениеВСтрокуВнутр.
#13 by SunShinne
Есть одна идея, только что придумал. Создавать к каждому документу набор подчиненных документов (организовать в зависимости от фильтров - попадает под условия фильтра1 создаем докХ1, потом рассматриваем Фильтр2 для возможного создания докХ2). Организовать список [журнал] документов по подчиненным докам. При открытии подч. дока, например ДокХ2 СтатусВозврата; ОткрытьФорму(ДокОсн); Возврат;Работать будет точно, может быть сумбурно объяснил конечно, звиняйте.
#14 by Uho
А Дурочка сказала бы: "юзайте отчет, и не майтесь бредовыми идеями"
#15 by vrag
+ 14
#16 by Uho
хотя, честно говоря, у меня есть такой журнал, но он имел необходимость только из-за изначально неверно спроектированных документов.
#17 by sdaf
+14 UniJorn с любого итс
#19 by Uho
во как!
#21 by Uho
да вроде как нету в семерке ТабличногоПоля...
#22 by JARRE
Я че-то не понял. А где внешние компоненты.Я с ВК не работаю но неужели нет ВК для множественного обора в журнале.
#23 by Одинэсник
мыло давай
#25 by Uho
ну не в 7.7 же :))
#27 by Uho
в ВК :))
#29 by Uho
усё, согласен, был не прав, исправлюсь
#30 by USSR
Я ни разу не пользовался табличным полем, сейчас бегло прочитал, похоже вещь. То есть это практически аналог GRID?
#32 by USSR
При скроллинге?
#33 by SunShinne
[14] - см. 1 (в 13 погорячился, хотя использовать можно)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям