Имя: Пароль:
1C
1C 7.7
v7: Отбор в журнале документа
0 Aleksandr_
Nikonov
 
27.11.14
14:35
Помогите сделать отбор в простом журнале я знаю что типа не возможно это сделать но что то мне подсказывает что все -так это возможно!
1 antoneus
 
27.11.14
14:44
оно ошибается. Штатно вроде никак.
2 Aleksandr_
Nikonov
 
27.11.14
14:48
я знаю что ошибается а как не штатно? но без ТЗ
3 Aleksandr_
Nikonov
 
27.11.14
14:49
странно как то написано



Установить отбор журнала.

Синтаксис:

УстановитьОтбор(<ИмяОтбора>, <ЗначениеОтбора>)

Англоязычный синоним:

SetSelection

Параметры:
<ИмяОтбора>     Строковое выражение — имя отбора. Если это значение пустое, то отбор отключается.
<ЗначениеОтбора>     Значение отбора.

Описание:

Метод УстановитьОтбор() принудительно устанавливает отбор для журнала.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Замечание:

Во всех журналах, кроме журнала подчиненных документов, работает отбор по виду документа. В этом случае синтаксис вызова метода следующий:

УстановитьОтбор(<ВидДокумента>)

Параметры:
<ВидДокумента>     Строковое выражение — вид документа отбора.

Пример:

Изм = УстановитьОтбор("Склады", Склад1);
4 Aleksandr_
Nikonov
 
27.11.14
14:50
склады это же не вид документа :-)
5 antoneus
 
27.11.14
14:55
Нештатно - есть 1cpp.dll и куча всяких приблуд вроде http://www.1cpp.ru/forum/YaBB.pl?num=1273512019
6 eshtrey
 
27.11.14
14:56
делаешь журнал общий, при открытии по умолчанию делаешь отбор по какому то виду документа, или общему реквизиту у этих документов(предварительно надо их заполнить), добавляешь в графы отбора новый реквизит "склад", указываешь документы по которым отбирать, при выборе склада на форме журнала делаешь отбор. штантно
7 КонецЦикла
 
27.11.14
14:58
Штатно через графу отбора, это же уже старо как г мамонта
8 Aleksandr_
Nikonov
 
27.11.14
14:59
через графу отбора я же написал что документ обычный не общий!
9 eshtrey
 
27.11.14
15:00
графа отбора журнала, это не вид документа, а реквизит
10 Aleksandr_
Nikonov
 
27.11.14
15:01
подождите а можно использовать несколько общих журналов?
11 eshtrey
 
27.11.14
15:02
можно создать хоть 100 журналов с признаком общий
12 eshtrey
 
27.11.14
15:03
13 Aleksandr_
Nikonov
 
27.11.14
15:04
в этом случае я создаю новый журнал в него пихаю отбор при открытии именно нужного мне документа а в форме журнала делаю фильтр по нужным мне реквизитам так?
14 eshtrey
 
27.11.14
15:05
ну если такой вариант подходит, то да
15 Aleksandr_
Nikonov
 
27.11.14
15:05
ну конечно графы не забываю устанавливать все верно? попрет?
16 Aleksandr_
Nikonov
 
27.11.14
15:05
ок спасибо буду пробовать!
17 antoneus
 
27.11.14
15:07
О, сколько нам открытий чудных...
18 Aleksandr_
Nikonov
 
27.11.14
15:09
:-)
19 Aleksandr_
Nikonov
 
27.11.14
15:09
честно не знал что можно использовать несколько общих журналов
20 Aleksandr_
Nikonov
 
27.11.14
15:30
что то не получается
по виду отбор срабатывает а вот реквизитам нет?

Процедура УстОтбор()
        УстановитьОтбор("ЗаказНаряд");
КонецПроцедуры

Процедура ПриОткрытии()
      УстОтбор();
КонецПроцедуры


Процедура Поиск()
    
    Если Гдеискать = перечисление.Гдеискать.ПоКонтрагенту Тогда
        УстановитьОтбор("Контрагент",СтрокаПоиска);
    КонецЕсли;
КонецПроцедуры
21 eshtrey
 
27.11.14
15:31
"Контрагент" добавил в графы отбора журнала?
22 Aleksandr_
Nikonov
 
27.11.14
15:39
да!
ошибок нету просто пишу автонова и пусто хотя такой контр имеется!
23 eshtrey
 
27.11.14
15:43
строкапоиска имеет такой же тип как и графа отбора "контрагент"? условие гдеискать срабатывает?
24 Aleksandr_
Nikonov
 
27.11.14
15:44
условие срабатывает да если бы не срабатывало то и поле таб не очищалось бы!
25 Aleksandr_
Nikonov
 
27.11.14
15:45
по поводу типа не понял
а нет она обычный реквизит тип строка
26 Aleksandr_
Nikonov
 
27.11.14
15:54
так я хотел сделать так чтобы пользователь например ввел в место Автонова авто и система отобрала для него похожие в восьмерке это сделать можно а в семерке нет?
27 Aleksandr_
Nikonov
 
27.11.14
15:54
только выбор из справочника?
28 Aleksandr_
Nikonov
 
27.11.14
15:58
помагитеееее нечего не получаетсяяяяя
29 Aleksandr_
Nikonov
 
27.11.14
15:59
here is anyone there
30 eshtrey
 
27.11.14
16:00
установитьотбор работает только при отборе по реквизиту, такие хитрые отборы можно сделать только при помощи 1с++
31 Duke1C
 
27.11.14
16:02
(28) ну а как ты хотел? У тебя графа отбора с типом "Справочник.Контрагенты" а ты строку туда пихаешь
32 Aleksandr_
Nikonov
 
27.11.14
16:02
:-)
это я понял хорошо а через обработку можно замутить?
33 Aleksandr_
Nikonov
 
27.11.14
16:03
подождите а если я воспользуюсь поиском по нименованию например он не найдет наверное если наименование будет не полностью написано?
34 Aleksandr_
Nikonov
 
27.11.14
16:06
к примеру элемент справочника наименование Автонова ОАО в процедуре я произведу с ночало поиск но если пользователь введет Авто а не Автонова ОАО система нийдет или нет?
35 eshtrey
 
27.11.14
16:08
поиск по контексту можно предварительно применить, а если у тебя несколько контрагентов со вхождением "авто"?
36 Aleksandr_
Nikonov
 
27.11.14
16:09
ну так и х с ним мне так и нужно пусть там хоть 1000 выведетт пусть пользователь сам разберается что ему выбрать! :-)
37 Aleksandr_
Nikonov
 
27.11.14
16:10
спасибо буду пробовать надеюсь что получится
38 Aleksandr_
Nikonov
 
27.11.14
16:12
а нельзя ли сделать в 7 так чтобы пользователь воодил строку например ввел три зачения и система сделала запрос нашла что попалось и вывела ему в выподающем списке? а он уже выбрал то что ему нужно
39 Aleksandr_
Nikonov
 
27.11.14
16:13
я просто сночало не допер что вы имели в виду если несколько авто то какое выбрать черт возми :-)
если с выподающим списком нет возможность тогда занести в тз и от туда циклом отбор поканает?
40 eshtrey
 
27.11.14
16:31
вводишь строку для поиска, жмешь найти, формируешь список значений с результатами отбора по контексту в справочнике Контрагенты, если в итоге 1 значение, сразу делаешь отбор в журнале, если несколько, то выводишь список значений для выбора контрагента
41 Aleksandr_
Nikonov
 
27.11.14
16:38
а как сформировать список значений по результату отбора?
42 Aleksandr_
Nikonov
 
27.11.14
16:41
А нельзя ли создать реквизит на таб форме журнала типа строка и в него добавить значение из Контрагент.Наименование?
43 Aleksandr_
Nikonov
 
27.11.14
16:43
печально
контр = Контрагент.наименование;
{Журнал.ЗаказНарядыНов.Форма.ФормаСписка.Модуль(3)}: Попытка присвоить значение недоступной для записи переменной (контр)
44 Aleksandr_
Nikonov
 
27.11.14
16:51
вообще что то а не платформа как создать цикл строк журнала в модуле формы журнала?
45 antoneus
 
27.11.14
16:53
(26) http://rikcenter.ru/solutions.php

(43) можно, кидаешь текст на ТЧ, в формуле пишешь

ТекущийДокумент.РеквизитКоторыйНужноВывести
46 Aleksandr_
Nikonov
 
27.11.14
16:55
+(45) это разве удобно? это какой экран нужен?
47 Aleksandr_
Nikonov
 
27.11.14
16:59
а для справочника я  когда то делал для СТО что то похожее но у меня получилось сделать все с одной строкой поиска для всех реквизитов на форме! если найду поделюсь обязательно! идею взял из 1с рарус 8.1 :-)
48 Aleksandr_
Nikonov
 
27.11.14
17:03
все туплю
Процедура УстОтбор()
        УстановитьОтбор("ЗаказНаряд");
        Выбрать
        ТекущийДокумент.контр = Контрагент.наименование;
КонецПроцедуры

Процедура ПриОткрытии()
      УстОтбор();
КонецПроцедуры


Процедура Поиск()
    
    Если Гдеискать = перечисление.Гдеискать.ПоКонтрагенту Тогда
        УстановитьОтбор("Контрагент",СокрЛП(СтрокаПоиска));
    КонецЕсли;
КонецПроцедуры


<<?>>ТекущийДокумент.контр = Контрагент.наименование;
{Журнал.ЗаказНарядыНов.Форма.ФормаСписка.Модуль(4)}: Неопознанный оператор

я вижу что здесь

но что я не правильно сделал?

    ТекущийДокумент.контр = Контрагент.наименование;
49 ДенисЧ
 
27.11.14
17:05
Выбрать
        ТекущийДокумент.контр = Контрагент.наименование;


10 лет чтения мануалов. переписываться можно. Потом 5 лет разноса ИТС.
50 Aleksandr_
Nikonov
 
27.11.14
17:05
:-)
51 Aleksandr_
Nikonov
 
27.11.14
17:06
(50) умный? подскажи! ты с 7 работаешь? а я PHP и недавно устроился подрабатывать 1с-ником
52 ДенисЧ
 
27.11.14
17:07
(51) Умный, да.
Внимательно код прочитай свой. Потом почитай про ссылочные типы.
Да и про синтаксис тоже.
53 antoneus
 
27.11.14
17:08
блин, пришлось семерку расчехлять

http://i.imgur.com/n8H3Wri.jpg
54 Aleksandr_
Nikonov
 
27.11.14
17:09
ок спасибо! (53)
55 Aleksandr_
Nikonov
 
27.11.14
17:14
Блин теперь
УстановитьОтбор("контр",СокрЛП(СтрокаПоиска));
{Журнал.ЗаказНарядыНов.Форма.ФормаСписка.Модуль(14)}: Неверное имя реквизита!
думал что прокати если я создам рекв типа текст и внесу в него данные то отбор начнет работать печалька
56 ДенисЧ
 
27.11.14
17:22
(55) Так... С отягчающими.
Значит, 15 лет
57 Aleksandr_
Nikonov
 
27.11.14
17:24
а тебе лишь бы что то да написать (56)
58 eshtrey
 
27.11.14
17:36
если "конт" это тип справочник.контрагенты, значит строкапоиска должна быть справочник.контрагенты, и ни как иначе
59 eshtrey
 
27.11.14
17:38
если ты пытаешься использовать строку для поиска, а это неправильно, то конт должен быть типом Строка той же длины что и СтрокаПоиска, и при отборе СокрЛП надо убрать
60 Aleksandr_
Nikonov
 
27.11.14
17:40
короче не проканает :-(
61 Aleksandr_
Nikonov
 
27.11.14
17:46
короче сделал с выбором контрагента :-)
62 Aleksandr_
Nikonov
 
27.11.14
18:00
а почему когда я делаю так то подпадают еще и документы другого типа?
63 Aleksandr_
Nikonov
 
27.11.14
18:02
Процедура Поиск()    
    Если Гдеискать = перечисление.Гдеискать.ПоКонтрагенту Тогда  
        УстановитьОтбор("Контрагент",СтрокаПоискаПоКонтр);
    КонецЕсли;
КонецПроцедуры

я понял что нужно отбор еще и по типу одновременно делать правильно?
64 Aleksandr_
Nikonov
 
27.11.14
18:04
как сделать два отбора одновременно?
65 antoneus
 
27.11.14
18:10
1. Заводишь в своем документе реквизит "КонтрагентДляОтбора"
2. Туда копируешь значение реквизита Контрагент
3. По этому реквизиту делаешь отбор
вуаля - в отбор попадают только документы нужного вида с нужным контрагентом
66 antoneus
 
27.11.14
20:41
блин, фигню насоветовал, не читай (65). Будь мужиком, сделай для своего документа новую графу отбора, в которой только он будет участвовать.
67 КонецЦикла
 
27.11.14
20:45
А если три понадобится?
Может сразу на ТП перевестись :)
Кстати, если делать составной реквизит, то больше 23 символов вроде не будет работать...
68 smaharbA
 
28.11.14
00:01
(64) Общий реквизит строковый и заполняй чем попало.
69 Мигало
 
28.11.14
00:20
(68) По строке вроде не устанавливается отбор
70 smaharbA
 
28.11.14
00:21
усстанавливается
71 Мигало
 
28.11.14
00:22
Штатно ? Или магичить надо ?
72 smaharbA
 
28.11.14
00:24
Штатно. Журнал общий либо туда-сюда-обратно переделанный.
73 КонецЦикла
 
28.11.14
00:26
Да, но попробуй длинную строку... что-то помнится в 200 каком-то году наступал. Если короткая - все ок.
74 smaharbA
 
28.11.14
00:29
(73) Ты путаешь с 22 символами в "нетипическом" реквизите.
75 Мигало
 
28.11.14
00:31
(72) "...либо туда-сюда-обратно переделанный." - это как ?
76 КонецЦикла
 
28.11.14
00:34
(75) Была фишка, когда возвращаешь вид журналу и получаешь профит :)
Но по-моему жило это ненадежно... нельзя дергать его вроде было
Пройдись поиском в общем