Имя: Пароль:
1C
 
Как отобрать документы подскажите
,
0 Gray776
 
01.05.15
11:34
В общем смысл такой отбираю документы за период, и если по контрагенту больше одного документа в периоде, то такие документы нужны. Другие не нужны.
1 GROOVY
 
01.05.15
11:40
Молодец. Мысль сформулировал.
2 Gray776
 
01.05.15
11:45
(1) Не то слово... Башка раскалывается... И что обидно не с похмелья...
3 zenik
 
01.05.15
11:54
Документы одного вида или нет?
4 Gray776
 
01.05.15
12:11
(3) ага одного вида. Просто обработать надо те которых 2 и более за период по контрагенту...
5 Gray776
 
01.05.15
12:26
Короче что-то я попытался подумать, и решил сортировка у меня всерно по контрагенту. Буду проверять уже по ходу обработки есть еще документ по контрагенту в таблице или нет...
6 zenik
 
01.05.15
12:32
Как то так может:
ВЫБРАТЬ
    ВложенныйЗапрос.Контрагент
ИЗ
    (ВЫБРАТЬ
        ПоступлениеТоваров.Контрагент КАК Контрагент,
        СУММА(1) КАК Количество
    ИЗ
        Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
    
    СГРУППИРОВАТЬ ПО
        ПоступлениеТоваров.Контрагент) КАК ВложенныйЗапрос
ГДЕ
    ВложенныйЗапрос.Количество > 1
7 Gray776
 
01.05.15
12:40
(6) Блин попробую сейчас...
или ну его завтра попробую ...
Я у же дня 4 за комп сажусь музыку включить или клип какойнить с ютуба. сегодня с утра вродь голова малость соображала так кое что набросал. два варианта если отбор по конкретному контрагенту. Но там просто. а это вариант когда все у кого 2 и больше документа... и башка уже болит...
8 tznimble
 
01.05.15
14:07
(6) Ему немножко иначе надо:
9 tznimble
 
01.05.15
14:13
(8) +
ВЫБРАТЬ
  Док.Ссылка,
  Док.Контрагент
ИЗ
  Документ.<виддокумента> КАК Док

ГДЕ
  Док.Дата МЕЖДУ &НачалоПериода И &КонецПериода
  И Док.Контрагент В (
    ВЫБРАТЬ
      Док.Контрагент
    ИЗ
      Документ.<виддокумента> КАК Док
    СГРУППИРОВАТЬ ПО
      Док.Контрагент
    ИМЕЮЩИЕ
      КОЛИЧЕСТВО (РАЗЛИЧНЫЕ Док.ССЫЛКА)>1
    )
УПОРЯДОЧИТЬ ПО
   Док.Контрагент,
   Док.Ссылка
10 Gray776
 
01.05.15
17:57
(9) Я правильно вас понял?
вот:

    Иначе
        Запрос = Новый Запрос("ВЫБРАТЬ
        |    ДокРеализация.Ссылка,
        |    ДокРеализация.Номер,
        |    ДокРеализация.Дата,
        |    ДокРеализация.Контрагент,
        |    ДокРеализация.СуммаДокумента КАК Сумма,
        |    ДокРеализация.Комментарий
        |ИЗ
        |    Документ.РеализацияТоваровУслуг КАК ДокРеализация
        |ГДЕ
        |    ДокРеализация.Дата МЕЖДУ &НачПериода И &КонПериода
        |    И    ДокРеализация.Организация = &Организация
        |    И    ДокРеализация.Проведен
        |    И    ДокРеализация.Контрагент В (
        |ВЫБРАТЬ
        |    ДокРеализация.Контрагент
        |ИЗ
        |    Документ.РеализацияТоваровУслуг КАК ДокРеализация
        |СГРУППИРОВАТЬ ПО
        |    ДокРеализация.Контрагент
        |ИМЕЮЩИЕ
        |    КОЛИЧЕСТВО (РАЗЛИЧНЫЕ ДокРеализация.ССЫЛКА)>1
        |    )
        |УПОРЯДОЧИТЬ ПО
        |    ДокРеализация.Контрагент");
        //|    ДокРеализация.Ссылка
        Запрос.УстановитьПараметр("НачПериода",НачалоДня(НачПериода));                
        Запрос.УстановитьПараметр("КонПериода",КонецДня(КонПериода));                
        Запрос.УстановитьПараметр("Организация",Организация);    
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
            НС = ТабДокументов.Добавить();
            ЗаполнитьЗначенияСвойств(НС,Выборка);
        КонецЦикла;
    КонецЕсли;
11 Gray776
 
01.05.15
18:05
(10) + Ну в смысле этот запрос отбирает все документы а не только те которых 2 и более по контрагенту.
12 Garykom
 
гуру
01.05.15
19:58
Когда нормального решения не придумывается, нуна решать задачу по тупому в лоб

выбрать все доки засунуть в ТЗ контрагент-документ-период, добавить колонку кол-во, и свернуть... ("Контрагент, Период,", "Кол-во")

далее в цикле получаем с кол-во >=2 и у нас есть фильтра "Контрагент, Период" для доков одного вида
13 Gray776
 
02.05.15
22:31
(12) Ну я в (5) примерно это и имел ввиду... Просто это сам пытаюсь разобраться.
14 ИУБиПовиц
 
03.05.15
10:17
(11) Нужно запрос который в условии "в" немножко преобразовать. создать вложенный запрос(2 уровня) в котором будет группировка по контрагенту и Сумма(1), он сворачивается в подзапрос 1 уровня в котором уже условие количество >1 (1C под рукой нет, поэтому в виде  кода не могу выложить пример)
15 ИУБиПовиц
 
03.05.15
10:18
А то у вас  в запросе
|ВЫБРАТЬ
        |    ДокРеализация.Контрагент
        |ИЗ
        |    Документ.РеализацияТоваровУслуг КАК ДокРеализация
        |СГРУППИРОВАТЬ ПО
        |    ДокРеализация.Контрагент
        |ИМЕЮЩИЕ
        |    КОЛИЧЕСТВО (РАЗЛИЧНЫЕ ДокРеализация.ССЫЛКА)>1
        |    )
Количесов всегда 1 будет:)
16 Gray776
 
08.05.15
13:28
(12) нее не прокатило, не суммирует.
Поставлю лучше я "флажок" и циклом пробегу проставлю.
17 zak555
 
08.05.15
13:30
делаем запрос к регистру за период по контрагенту == получаем список их