Имя: Пароль:
1C
1C 7.7
v7: ТиС 7.7 ,групповая обработка документов, отбор по группе контрагентов
0 tesei
 
17.03.17
13:27
в типовой обработке сделал выбор клиента - группы:

Процедура ПриОткрытии()    
    
    Форма.ВыбКонтрагент.ВыборГруппы(1);
    
КонецПроцедуры

Выбираю группу, но теперь не работает отбор документов:


    Док=СоздатьОбъект("Документ");
    
    Если (ВыбКонтрагент.Выбран()=1) Тогда
        Док.ВыбратьПоЗначению(ДатаНачала,ДатаКонца,"Контрагент",ВыбКонтрагент);
    КонецЕсли;

Как наиболее простым способом отобрать документы по контрагентам из группы?
1 VladZ
 
17.03.17
13:31
(0)  Док.ВыбратьПоЗначению выбирает по определенному значению (проверка на равенство).

Зачем дорабатывать стандартную обработку? Она и так замечательно работает!
2 tesei
 
17.03.17
13:31
(1) Нужно обработать документы ко контрагентам из группы.
3 VladZ
 
17.03.17
13:31
+1 Встаешь на контрагентов. Тычешь "заполнить по реквизиту" (какая-то доп.кнопка есть, ищи). Заполнишь список контрагентов. И для них выводишь нужные доки.
4 пипец
 
17.03.17
14:00
хмм групповая обработка - а универсальные или множественные поделки ?
5 tesei
 
17.03.17
14:19
(3) ты не путаешь с UChoice?
6 Builder
 
17.03.17
14:20
Запрос не предлагать?
7 Злопчинский
 
17.03.17
14:47
как вы утомили...
8 Злопчинский
 
17.03.17
14:50
В обработку внести косметические изменения

1.

//[+]progadmin, 17.03.2017, ДОБАВЛЕНО НЕТИПОВОЕ
    Форма.ВыбКонтрагент.ВыборГруппы(1);
//[+]_progadmin, 17.03.2017, ДОБАВЛЕНО НЕТИПОВОЕ
    
КонецПроцедуры         // ПриОткрытии()

2.
Процедура ПоКнопкеСформировать()
    
    // Формируем таблицу номенклатуры
    ТаблицаДокументов.Очистить();
    ТаблицаДокументов.НоваяКолонка("Пометка",    "Число"   ,1,,             ,     4    );
    ТаблицаДокументов.НоваяКолонка("Документ",   "Документ", ,,             ,          );
    ТаблицаДокументов.НоваяКолонка("Дата",       "Дата"    , ,,"Дата"       ,     10,,2);
    ТаблицаДокументов.НоваяКолонка("СтрДокумент","Строка"  , ,,"Документ"   ,     32   );
    ТаблицаДокументов.НоваяКолонка("Номер",      "Строка"  , ,,"Номер"      ,     17,,2);
    ТаблицаДокументов.НоваяКолонка("Автор",      "Строка"  , ,,"Автор"      ,     30   );
    ТаблицаДокументов.НоваяКолонка("Статус",     "Строка"  , ,,"Статус"     ,     25,,2);
    ТаблицаДокументов.НоваяКолонка("Сумма",      "Строка"  , ,,"Сумма"      ,     20,,2);        
    ТаблицаДокументов.НоваяКолонка("Валюта",     "Строка"  , ,,"Валюта"     ,      7,,2);
    ТаблицаДокументов.НоваяКолонка("Проект",     "Строка"  , ,,"Проект"     ,     30   );
    ТаблицаДокументов.НоваяКолонка("Информация", "Строка"  , ,,"Информация" ,     50   );
    ТаблицаДокументов.НоваяКолонка("Комментарий","Строка"  , ,,"Комментарий",     50   );
    
    ТаблицаДокументов.ВыводитьПиктограммы("Пометка",1);
    ТаблицаДокументов.ВидимостьКолонки("Документ", 0);

    ВидыДок = "";
    Для Инд=1 По ВыбранныеДокументы.РазмерСписка() Цикл
        ВидыДок = ВидыДок + Документы.ПолучитьЗначение(ВыбранныеДокументы.ПолучитьЗначение(Инд))+",";
    КонецЦикла;
    
    Если ПустаяСтрока(ВидыДок)=1 Тогда
        Возврат;
    КонецЕсли;
    
    Док=СоздатьОбъект("Документ");
    
    Если (ВыбКонтрагент.Выбран()=1) Тогда
//[*]progadmin, 17.03.2017, ДОБАВЛЕНО НЕТИПОВОЕ
//        Док.ВыбратьПоЗначению(ДатаНачала,ДатаКонца,"Контрагент",ВыбКонтрагент);
// -------------
        Док.ВыбратьДокументы(ДатаНачала,ДатаКонца);
//[*]_progadmin, 17.03.2017, ДОБАВЛЕНО НЕТИПОВОЕ
    ИначеЕсли (ВыбПроект.Выбран()=1) Тогда
        Док.ВыбратьПоЗначению(ДатаНачала,ДатаКонца,"Проект",    ВыбПроект);

3.
        //Проверка проекта
        Если ВыбПроект.Выбран() = 0 Тогда
        ИначеЕсли (Док.Проект <> ВыбПроект) Тогда
            Продолжить;
        КонецЕсли;
        
        //Проверка склада
        Если ВыбСклад.Выбран() = 0 Тогда
        ИначеЕсли глЕстьРеквизитШапки("Склад", Док.Вид()) = 0 Тогда    
            Продолжить;
        ИначеЕсли (Док.Склад <> ВыбСклад) Тогда
            Продолжить;
        КонецЕсли;

//[+]progadmin, 17.03.2017, ДОБАВЛЕНО НЕТИПОВОЕ
        //Проверка контрагента
        Если ВыбКонтрагент.Выбран() = 0 Тогда
        ИначеЕсли глЕстьРеквизитШапки("Контрагент", Док.Вид()) = 0 ТогдаПродолжить;
        Иначе
            Если  ВыбКонтрагент.ЭтоГруппа()=0
            Тогда Если (Док.Контрагент <> ВыбКонтрагент) Тогда Продолжить; КонецЕсли;
            Иначе Если Док.Контрагент.ПринадлежитГруппе(ВыбКонтрагент) = 0 Тогда Продолжить; КонецЕсли;
            КонецЕсли;
        КонецЕсли;
//[+]_progadmin, 17.03.2017, ДОБАВЛЕНО НЕТИПОВОЕ
        
        //Проверка вида документа
        Если Найти(ВидыДок,Док.Вид()+",")=0 Тогда
            Продолжить;
        КонецЕсли;


4. Профит
9 tesei
 
17.03.17
16:51
(8) спасибо!
10 Злопчинский
 
18.03.17
00:38
(9) шо, работает?!