Имя: Пароль:
1C
1C 7.7
v7: Отбор в общем журнале по контрагенту
,
0 Asia2016
 
24.07.18
15:05
В общем журнале есть отбор документов по контрагенту. Но при отборе показывает только проведенные документы. Как сделать, чтобы в списке отобранных документов показывало проведенные и не проведенные
документы
1 Asia2016
 
24.07.18
15:07
Перем СписокДействий;
Перем ОтборУстановлен;
Перем СписокВидовДокументов;
Перем ВидДокумента;
Перем СохранятьЗначения;

//******************************************************************************
//
Процедура УправлениеДиалогом()

    Если (ОтборУстановлен = 1) Тогда
        Форма.КнопкаОтобратьПо.Заголовок("Снять отбор");
        Форма.СписокВидовОтбора.Доступность(0);
    Иначе
        Форма.КнопкаОтобратьПо.Заголовок("Отобрать по:");
        Форма.СписокВидовОтбора.Доступность(1);
    КонецЕсли;

КонецПроцедуры // УправлениеДиалогом()

//******************************************************************************
//
Процедура УстановкаОтбора()

    ТекДок = ТекущийДокумент;
    ВидОтбора = СписокВидовОтбора.ПолучитьЗначение(СписокВидовОтбора.ТекущаяСтрока());

    Если (ОтборУстановлен = 1) Тогда

        Если (ВидОтбора = "ВидДокумента") Тогда

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

            АктивизироватьОбъект(ТекДок);

        Иначе

            УстановитьОтбор(ВидОтбора, ЗначениеОтбораСпр);

        КонецЕсли;

        ВидыОтбора("");

    Иначе

        УстановитьОтбор("");
        ВидыОтбора("*");

        АктивизироватьОбъект(ТекДок);

    КонецЕсли;

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

//******************************************************************************
//
Процедура ПриИзмененииЗначенияОтбора()

    Если (ОтборУстановлен = 1) Тогда

        УстановкаОтбора();

    КонецЕсли;

КонецПроцедуры // ПриИзмененииЗначенияОтбора

//******************************************************************************
//
Процедура ПриИзмененииВидаОтбора()
    
    ВидОтбора = СписокВидовОтбора.ПолучитьЗначение(СписокВидовОтбора.ТекущаяСтрока());

    Если (ВидОтбора = "ВидДокумента") Тогда

        Форма.ЗначениеОтбораСтр.Видимость(1);
        Форма.ЗначениеОтбораСпр.Видимость(0);
    Иначе        

        Форма.ЗначениеОтбораСтр.Видимость(0);  
        Форма.ЗначениеОтбораСпр.Видимость(1);

        Если (ВидОтбора = "Контрагент") Тогда
            НазначитьВид(ЗначениеОтбораСпр, "Контрагенты");
        ИначеЕсли (ВидОтбора = "Автор") Тогда
            НазначитьВид(ЗначениеОтбораСпр, "Пользователи");
        КонецЕсли;

    КонецЕсли;

КонецПроцедуры // ПриИзмененииВидаОтбора

//******************************************************************************
//
Процедура ПоКнопкеОтобратьПо()

    Если ОтборУстановлен = 1 Тогда
        ОтборУстановлен = 0;
    Иначе
        ОтборУстановлен = 1;
    КонецЕсли;

    УправлениеДиалогом();

    УстановкаОтбора();

КонецПроцедуры // ПоКнопкеОтобратьПо()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()

    ТекДок = ВосстановитьЗначение("ТекДок");
    АктивизироватьОбъект(ТекДок);

    // Определим, что журнал открывается как журнал подчиненных документов.
    Если ТипЗначенияСтр(ПодчинениеДокументу()) = "Документ" Тогда

        Форма.Заголовок("Журнал подчиненных документов к документу " + глПредставлениеДокумента(ПодчинениеДокументу()));

        Форма.КнопкаОтобратьПо.Видимость(0);
        Форма.СписокВидовОтбора.Видимость(0);
        Форма.ЗначениеОтбораСтр.Видимость(0);
        Форма.ЗначениеОтбораСпр.Видимость(0);
        Форма.КнопкаРеестр.Видимость(0);
        Форма.КнопкаСформироватьПроводки.Видимость(0);
        Форма.КнопкаПодсказкаПоФормированиюПроводок.Видимость(0);
        
        Возврат;

    КонецЕсли;

    // Если в качестве параметра передан контрагент, установим по нему отбор.
    Если ТипЗначенияСтр(Форма.Параметр) = "Справочник" Тогда

        Если Форма.Параметр.Вид() = "Контрагенты" Тогда

            Форма.Заголовок("Документы по: " + Форма.Параметр, 0);

            УстановитьОтбор("Контрагент", Форма.Параметр);

            Форма.КнопкаОтобратьПо.Видимость(0);
            Форма.СписокВидовОтбора.Видимость(0);
            Форма.ЗначениеОтбораСтр.Видимость(0);
            Форма.ЗначениеОтбораСпр.Видимость(0);
            Форма.КнопкаРеестр.Видимость(0);
            Форма.КнопкаСформироватьПроводки.Видимость(0);
            Форма.КнопкаПодсказкаПоФормированиюПроводок.Видимость(0);

            Возврат;

        КонецЕсли;

    КонецЕсли;

    // Заполним список видов документов для отбора.
    СписокВидовДокументов = СоздатьОбъект("СписокЗначений");
    Для х = 1 по Метаданные.Документ() Цикл
        СписокВидовДокументов.ДобавитьЗначение(Метаданные.Документ(х).Идентификатор, Метаданные.Документ(х).Представление())
    КонецЦикла;

    // Если в качестве параметра передана строка с видом документа, установим
    // отбор виду документа.
    Если ТипЗначенияСтр(Форма.Параметр) = "Строка" Тогда

        Если СписокВидовДокументов.НайтиЗначение(Форма.Параметр) > 0 Тогда

            УстановитьОтбор(Форма.Параметр);

            Форма.КнопкаОтобратьПо.Видимость(0);
            Форма.СписокВидовОтбора.Видимость(0);
            Форма.ЗначениеОтбораСтр.Видимость(0);
            Форма.ЗначениеОтбораСпр.Видимость(0);
            Форма.КнопкаРеестр.Видимость(0);
            Форма.КнопкаСформироватьПроводки.Видимость(0);
            Форма.КнопкаПодсказкаПоФормированиюПроводок.Видимость(0);

            Возврат;

        КонецЕсли;

    КонецЕсли;

    // Если в качестве параметра передан документ, активизируем его в списке.
    Если ТипЗначенияСтр(Форма.Параметр) = "Документ" Тогда

        ДатаТекДок = Форма.Параметр.ДатаДок;
        НачалоИнтервала = НачалоИнтервала();
        КонецИнтервала = КонецИнтервала();
        НужноИзменитьИнтервал = 0;

        Если ДатаТекДок <= НачалоИнтервала Тогда
            НачалоИнтервала = ДатаТекДок;
            НужноИзменитьИнтервал = 1;
        КонецЕсли;

        Если ДатаТекДок >= КонецИнтервала Тогда
            КонецИнтервала = ДатаТекДок;
            НужноИзменитьИнтервал = 1;
        КонецЕсли;

        Если НужноИзменитьИнтервал = 1 Тогда
            УстановитьИнтервал(НачалоИнтервала, КонецИнтервала);
        КонецЕсли;

        АктивизироватьОбъект(Форма.Параметр);

    КонецЕсли;

    СохранятьЗначения = 1;
    
    Форма.ЗначениеОтбораСпр.НеИзменятьВид(1);
    
    // Заполним список видов отбора.
    СписокВидовОтбора.УдалитьВсе();
    СписокВидовОтбора.ДобавитьЗначение("ВидДокумента", "виду документа");
    СписокВидовОтбора.ДобавитьЗначение("Контрагент",      "контрагенту");
    СписокВидовОтбора.ДобавитьЗначение("Автор",           "автору");
    СписокВидовОтбора.ТекущаяСтрока(1);
    
    ПриИзмененииВидаОтбора();

    УправлениеДиалогом();

КонецПроцедуры // ПриОткрытии

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриНачалеВыбораЗначения(ИдентЭлементаДиалога, ФлагСтандартнойОбработки)

    Если ИдентЭлементаДиалога = "ЗначениеОтбораСтр" Тогда
        
        Позиция = 0;

        Если (СписокВидовДокументов.ВыбратьЗначение(ВидДокумента, "Укажите вид документа для отбора", Позиция) = 0) Тогда
        
            Возврат;
        
        КонецЕсли;
        
        СписокВидовДокументов.ПолучитьЗначение(Позиция, ЗначениеОтбораСтр);
        ПриИзмененииЗначенияОтбора();

    КонецЕсли;

КонецПроцедуры // ПриНачалеВыбораЗначения()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриЗакрытии() // Предопределенная процедура

    Если СохранятьЗначения = 1 Тогда

        СохранитьЗначение("ТекДок", ТекущийДокумент);

    КонецЕсли;

КонецПроцедуры // ПриЗакрытии

//******************************************************************************
2 HawkEye
 
24.07.18
18:03
(0) " Но при отборе показывает только проведенные документы" - это что за конфа такая новая?
3 HawkEye
 
24.07.18
18:04
+(2) а в целом - добавить свой отбор...
4 Builder
 
24.07.18
18:21
(0) В 7-ке в типовом отборе таких чудес не бывает :)
Либо не туда смотрите и непроведенных документов нет.
5 uno-group
 
24.07.18
18:33
Журнал-графы отбора-контрагент- добавить ссылку на поле контрагент из своего документа.
создали свой документ. Регистр он двигает и попадает так как в графе отбора есть регистр.взаиморасчеты...контрагент.
а не проведенный нет так как документ.мойдокумент.контрагент
ктото забыл добавить
6 Asia2016
 
25.07.18
07:50
(4) чудеса есть. два документа отгрузки. показывает только проведенный.
7 Asia2016
 
25.07.18
07:58
(5) информацию из проведенного документа видно. из не проведенного документа - не видно.
8 Asia2016
 
25.07.18
08:00
(5) как это можно исправить? в основном отбор нужен для документов отгрузки ГП.
9 Масянька
 
25.07.18
08:15
(8) В (2) уже спросили, но я повторю - конфа?
10 Asia2016
 
25.07.18
08:17
(9) в конфе дописать чтобы просматривала список документов как проведенных так и не проведенных ?
11 Масянька
 
25.07.18
08:21
(10) Название и номер конфигурации.
12 Asia2016
 
25.07.18
08:24
(114) 7.7 релиз 23. это была типовая, но мы практически ее всю переписали под свое производство. то что типовая это с большой натяжкой
13 Asia2016
 
25.07.18
08:25
(11) если нет других вариантов кроме как переписать отбор придется делать.
14 Масянька
 
25.07.18
08:26
(12) Партизан? Чего все клещами тянуть надо? А название?
15 Asia2016
 
25.07.18
08:29
(14) название ? например ? честно как то не въезжаю
16 Asia2016
 
25.07.18
08:31
производство+услуги+бухгалтерия
17 Масянька
 
25.07.18
08:35
(16) Ну, вот... А говорила - не въезжаю :)
18 Масянька
 
25.07.18
08:38
(16) Там в коде есть

        ДатаТекДок = Форма.Параметр.ДатаДок;
        НачалоИнтервала = НачалоИнтервала();
        КонецИнтервала = КонецИнтервала();
        НужноИзменитьИнтервал = 0;

Может не проведенный не попадает в интервал?
Контрагент однозначно один и тот же?
19 uno-group
 
25.07.18
08:46
Для тех кто в танке.
Открой конфигуратор. Конфигурация открыть конфигурацию.
+ на Журналы документов
+ на графы отбора
кликаешь по Контрагенту.
В Списке возможные значения
+ на документы - находишь свой документ
+ на нем.
+ на шапка
находишь реквизит контрагенты или клиент как, он там у ваз в базе зовется выделяешь нажимаешь стрелку "Влево"
убеждаешься что он появился в списке выбранные значения.
закрываешь все окна подтверждая сохранения и т.п.
Аллилуйя.
20 Масянька
 
25.07.18
08:51
(19) А почему проведенные док-ки попадают, а не проведенные нет?
21 Asia2016
 
25.07.18
09:13
(18) и (19) ща попробую все варианты.
22 Asia2016
 
25.07.18
09:15
(18) сделала документы одной датой, но один док проведенный, другой не проведенный.  не проходит
23 Масянька
 
25.07.18
09:18
(22) Контрагент один?
24 Asia2016
 
25.07.18
09:20
(19) ПОЛУЧИЛОСЬ! СПАСИБО ВСЕМ!
25 Карст
 
25.07.18
09:22
чудес не бывает ...
26 Asia2016
 
25.07.18
09:41
(19) можно еще один вопрос. если хочу добавить еще графу например сумма. и так же с документа обозначить сумму. выдает сообщение, что невозможно добавить в состав графы отбора числовой реквизит допускающий значение отличный от целого. сумма - тип значения отбора - число.
27 Asia2016
 
25.07.18
09:42
сумму нужна не для отбора, а чтобы при отборе была видна колонка сумма.
28 Asia2016
 
25.07.18
09:42
или много хочу ?
29 Asia2016
 
25.07.18
09:43
сделала!
30 Asia2016
 
25.07.18
09:44
спасибо!
31 HawkEye
 
25.07.18
12:13
(20) потому что отбор наложен не по реквизиту документа, а по реквизиту регистра...
32 Злопчинский
 
25.07.18
14:57
(31) ээээ а как в отбор по журналу наложить отбор по реквизиту регистра..???
33 aka AMIGO
 
25.07.18
15:12
(32) Реквизит регистра поместить в шапку документа :)
ЗЫ. любишь ты задавать вопросы с подковыркой :)
34 HawkEye
 
25.07.18
15:17
(32) ну как... обычно, создавая графу отбора выбираешь не реквизит документа, а реквизит регистра, ес-сно в этом случае будут отбираться только проведенные документы (как у автора)...

(33) мимо...  чего ты сочиняешь, как вообще можно такое сказать: "Реквизит регистра поместить в шапку документа"!? можно чтобы типбыл один и тот-же у реквизита регистра и элемента шапки, но это не будет одно и то-же и на отбор не повлияет никак....
35 HawkEye
 
25.07.18
15:18
(+34) у автора точнее не по реквизиту, а по измерению, но это на суть не виляет, можно и по реквизиту и по измерению отборы накладывать...
36 aka AMIGO
 
25.07.18
15:22
(34) Ну, мимо, так мимо.
А что мешает сделать типы в доке и регистре одинаковыми?
37 HawkEye
 
25.07.18
15:34
(36) ничего, так обычно и делают, только при чем тут отбор?
38 aka AMIGO
 
25.07.18
15:39
(37) Отбор? так по этому реквизиту документа и производить его.
39 HawkEye
 
25.07.18
15:43
(38) а у автора отбор не по реквизиту документа, а по реквизиту или измерению регистра.... а он, не факт, что есть в документе, не факт, что совпадает, и не заполнен если док. не проведен, отсюда и сабж...
40 Злопчинский
 
25.07.18
15:45
(34) О, блин, действительно. Никогда не пользовался.
41 aka AMIGO
 
25.07.18
15:50
(39) друже, я могу заполнить его и при проведении, т.е. из модуля документа..
А вообще-то ладно, ты меня уговорил, и я с тобой полностью согласен :)
42 HawkEye
 
25.07.18
15:52
(41) можешь, это был второй вариант ответа на вопрос автора, что реквизит по которому стоит отбор заполняется при проведении документа...

(40) я тоже )))