Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 18:11
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: [ТиС 7.70.878] Вывод в отчете не сдающих молоко людей  (Прочитано 1499 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Inkvirg

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-10-15
  • Сайт: 
  • Профессия: Ученик 1С
В общем, люди сдают молоко. В отчете формируются кто и сколько сдал за неделю. А мне же нужно сформировать, кто НЕ сдавал в конкретную неделю.
Кнопка формирующая отчет.
Процедура Сформировать()
          НашЗапрос= СоздатьОбъект("Запрос");
  ТекстЗапроса=
  "//{{Запрос(Сформировать)
  |Период с НачДата по КонДата;
  |ОбрабатыватьДокументы Проведенные;
  |Сдатчик=Регистр.Молоко.Сдатчик;
 
  |Док=Регистр.Молоко.ТекущийДокумент;
  |ФизВес=Регистр.Молоко.ФизВес;
  |ЗачВес1=Регистр.Молоко.ЗачВес1;
  |ЗачВес2=Регистр.Молоко.ЗачВес2;
  |ЗачВес3=Регистр.Молоко.ЗачВес3;";
 
  ТекстЗапроса=ТекстЗапроса+"
  |Группировка Сдатчик Без Групп;";
 
  Если ПоДокументам=1 Тогда
  ТекстЗапроса=ТекстЗапроса+"
  |Группировка Док;";
          КонецЕсли;     

  ТекстЗапроса=ТекстЗапроса+"
  |Функция Физ=Сумма(ФизВес);
  |Функция Зач1=Сумма(ЗачВес1);
  |Функция Зач2=Сумма(ЗачВес2);
  |Функция Зач3=Сумма(ЗачВес3); ";
  Спр=СоздатьОбъект("Справочник.Контрагенты");
  Спр.НайтиЭлемент(ВыбКонтрагенты);
  Гр=Спр.ТекущийЭлемент();
  Если (Спр.ЭтоГруппа()=1) И (СокрЛП(""+ВыбКонтрагенты+"")<>"") Тогда
   ТекстЗапроса=ТекстЗапроса+"
   |Условие (Сдатчик.ПринадлежитГруппе(Гр)=1); ";
      ИначеЕсли (Спр.ЭтоГруппа()<>1) И (СокрЛП(""+ВыбКонтрагенты+"")<>"") Тогда
   ТекстЗапроса=ТекстЗапроса+"
   |Условие (Сдатчик=ВыбКонтрагенты); ";
  КонецЕсли;
 
  ТекстЗапроса=ТекстЗапроса+"
  |"//}}Запрос
  ;

  Если НашЗапрос.Выполнить(ТекстЗапроса)=0 Тогда
  Сообщить("Запрос не выполнен");
  Возврат;
  КонецЕсли;
   Т = СоздатьОбъект("Таблица");
            Т.ИсходнаяТаблица( "Таблица" );
Т.ВывестиСекцию("Шапка");
   Зач=НашЗапрос.Зач1;
       Если ВыбВесМолока=Перечисление.ВесМолока.Зач2 Тогда
       Зач=НашЗапрос.Зач2;
   ИначеЕсли ВыбВесМолока=Перечисление.ВесМолока.Зач3 Тогда
       Зач=НашЗапрос.Зач3;
   КонецЕсли;
Т.ВывестиСекцию("Итого");
Ном=0;
   Пока НашЗапрос.Группировка(1)=1 Цикл
        Ном=Ном+1;
   
       Зач=НашЗапрос.Зач1;
       Если ВыбВесМолока=Перечисление.ВесМолока.Зач2 Тогда
       Зач=НашЗапрос.Зач2;
   ИначеЕсли ВыбВесМолока=Перечисление.ВесМолока.Зач3 Тогда
       Зач=НашЗапрос.Зач3;
   КонецЕсли;
   
         Т.ВывестиСекцию("Строка");
       
    Если ПоДокументам=1 Тогда
   
             Пока НашЗапрос.Группировка(2)=1 Цикл

             
         Зач=НашЗапрос.Зач1;
             Если ВыбВесМолока=Перечисление.ВесМолока.Зач2 Тогда
             Зач=НашЗапрос.Зач2;
         ИначеЕсли ВыбВесМолока=Перечисление.ВесМолока.Зач3 Тогда
             Зач=НашЗапрос.Зач3;
             КонецЕсли;
             
         Т.ВывестиСекцию("СтрокаДок");
       
             КонецЦикла;

    КонецЕсли;
   
        КонецЦикла;
        Если ВыводитьГрафик=1 Тогда
    Если ВыбВидДиаграммы=Перечисление.ВидДиаграммы.Гистограмма Тогда
             Т.ВывестиСекцию("ДиаграммГистограмма");
    ИначеЕсли ВыбВидДиаграммы=Перечисление.ВидДиаграммы.Круговая Тогда
             Т.ВывестиСекцию("ДиаграммаКруговая");
    ИначеЕсли ВыбВидДиаграммы=Перечисление.ВидДиаграммы.График Тогда
             Т.ВывестиСекцию("График");
    КонецЕсли;
        КонецЕсли;
        Т.ТолькоПросмотр(1);
            Т.Опции(0,0,5,0);
        Т.Показать("-----","");
КонецПроцедуры
Если расскажите на пальцах, буду благодарен финансово, не сильно конечно, но благодарен  :D
Если нужен весь код, скажите, просто он превышает допустимое количество символов =\


Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Сначала формируешь список контрагентов, которые сдавали.

потом пишешь  простой запрос:

|Контр = Справочник.Контрагенты.ТекущийЭлемент;
|Группировка Контр без групп;
|Условие Не(Контр в сзСдавшихМолоко);


где сзСдавшихМолоко - список значений в котором все контрагенты, сдавшие молоко.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 239
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal