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

Автор Тема: Фильтр: возможность вывода отчета по группе контрагентов  (Прочитано 5048 раз)

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

Оффлайн Snakey

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-06
  • Сайт: 
  • Профессия: Консультант 1С
Есть обработка, которая выводит отчет Книги продаж. Я сделал фильтр по заданному периоду, по определенному контрагенту и использование вместе заданный период и определнного контрагента.

Хочу сделать фильтр по группе контрагентов. Не получается. Подскажите или, если не сложно, напишите...

Текст модуля обработки:

Перем ЧислоСтрок,ВерхнийКолонтитул, НижнийКолонтитул;
Перем Запрос, ТекстЗапроса, Таб;
Процедура Оживить(ДобСтрок)
   ЧислоСтрок=ЧислоСтрок+ДобСтрок;
   Состояние("В отчет выведено "+ЧислоСтрок+" строк.");
КонецПроцедуры
Процедура Сформировать()   
   ВерхнийКолонтитул = "";
   НижнийКолонтитул  = "";
   Если ДатаНачала > ДатаКонца Тогда
      Предупреждение("Неправильно задан период формирования книги продаж!
                  |Дата начала больше даты окончания периода.");
      Возврат;
   КонецЕсли;
   Таб = СоздатьОбъект("Таблица");
      Таб.ИсходнаяТаблица("Таблица2004");
   // Вывод в рублях с копейками
   Таб.ИспользоватьФормат("Ч-15.2-");
   ЧислоСтрок=0;
   Таб.ВывестиСекцию("Шапка");
   Оживить(11);
   УчПолитика = Константа.МетодОпределенияВыручки.Получить( РабочаяДата() );
   Док = СоздатьОбъект("Документ");
    Спр1 = СоздатьОбъект("Справочник.Контрагенты");
    Спр1.ВыбратьЭлементы();
   Если УчПолитика = глПоОтгрузке Тогда
      Если ВыбКонтрагент.Выбран()=1 Тогда 
      //   Если ВыбКонтрагент.ЭтоГруппа()=1 Тогда
      //         Пока Спр1.ИспользоватьРодителя(ВыбКонтрагент)=1 Цикл
      //               сообщить (Спр1);
                         Док.ВыбратьПоЗначению(ДатаНачала,ДатаКонца,"Контрагент",Спр1);
                  КонецЦикла;
            ИначеЕсли ВыбКонтрагент.ЭтоГруппа()=0 Тогда
                 Док.ВыбратьПоЗначению(ДатаНачала,ДатаКонца,"Контрагент",ВыбКонтрагент);
         КонецЕсли;   
      ИначеЕсли ВыбКонтрагент.Выбран()=0 Тогда
         Док.ВыбратьДокументы(ДатаНачала,ДатаКонца);   
      КонецЕсли;
   ИначеЕсли УчПолитика = глПоОплате Тогда
      // Если учетная политика "по оплате", в книгу продаж попадают документы,
      // дата ОПЛАТЫ которых находится в указанном периоде.
      // В общем случае, ранее выданный счет-фактура может быть оплачен
      // через любой промежуток времени. Поэтому просматривать документы
      // приходится с какой-либо условной древней даты (например, с 1990 года).
      Если ВыбКонтрагент.Выбран()=1 Тогда     
         //   Если ВыбКонтрагент.ЭтоГруппа()=1 Тогда   
         //   Пока Спр1.ПолучитьЭлемент()=1 цикл 
            //   если Спр1.ПринадлежитГруппе(ВыбКонтрагент) = 1 тогда   
                   //   Док.ВыбратьПоЗначению(ДатаНачала,ДатаКонца,"Контрагент",Спр1);
               //   Конецесли;
            //   КонецЦикла; 
      //   ИначеЕсли  ВыбКонтрагент.ЭтоГруппа()=0 Тогда
            Док.ВыбратьПоЗначению(Дата( 1990, 1, 1 ), ДатаКонца,"Контрагент",ВыбКонтрагент);      
         КонецЕсли;
      ИначеЕсли ВыбКонтрагент.Выбран()=0 Тогда                                           
            Док.ВыбратьДокументы( Дата( 1990, 1, 1 ), ДатаКонца); 
      КонецЕсли;
   КонецЕсли;                    
      ИтогВсего=0;
   ИтогСуммаБезНДС18=0;
   ИтогСуммаБезНДС10=0;
   ИтогНДС18=0;
   ИтогНДС10=0;
   ИтогНДС0=0;
   ИтогСуммаСовсемБезНДС=0;     
   Пока Док.ПолучитьДокумент() = 1 Цикл      
      Если Док.ПометкаУдаления() = 1 Тогда
         Продолжить;
      КонецЕсли;   
      Стр = Док.Вид();
      Если (Стр = "СчетФактура") или (Стр = "ЗаписьКнигиПродаж") Тогда
         Если (УчПолитика = глПоОплате)  Тогда
            Если Стр = "СчетФактура" Тогда
               //Отсекаем неоплаченные с-ф
               Если ПустоеЗначение(Док.ДатаОплатыISL) = 1 Тогда
                  Продолжить;               
               //Отсекаем оплаченные с-ф в следующем отчетном периоде
               ИначеЕсли Док.ДатаОплатыISL > ДатаКонца Тогда
                  Продолжить;               
               //Отсекаем оплаченные с-ф в предыдущем отчетном периоде
               ИначеЕсли (Док.ДатаОплатыISL < ДатаНачала) и (Док.ДатаДок < ДатаНачала) Тогда
                  Продолжить;
               КонецЕсли;
            ИначеЕсли (Стр = "ЗаписьКнигиПродаж") и ((Док.ДатаДок < ДатаНачала) или (Док.ДатаДок > ДатаКонца)) Тогда
               Продолжить;
            КонецЕсли;
         КонецЕсли;
         Если Стр = "СчетФактура" Тогда
            СуммаВсего = Док.Итог("Всего");
            НомерДата = "" + Формат(Док.ДатаДок, "Д ДДММГГГГ") + "г. №" + СокрЛП(глПреобразоватьНомерДок(Док.НомерДок, 0, 0));
         ИначеЕсли Стр="ЗаписьКнигиПродаж" Тогда
            Попытка
               СуммаВсего = Док.Итог("Всего");
            Исключение   
               СуммаВсего = Док.Всего;
            КонецПопытки;   
            НомерДата = Док.ДокументОснование;
         КонецЕсли;
         Если Док.НДСпоСтавкеНольПроцентов = 1 Тогда
            НДС0 = СуммаВсего;
            СуммаБезНДС18 = 0;
            СуммаБезНДС10 = 0;
            НДС18 = 0;
            НДС10 = 0;
            СуммаСовсемБезНДС=0;
         Иначе
            НДС0 = 0;
            СуммаБезНДС18 = 0;
            СуммаБезНДС10 = 0;
            НДС18 = 0;
            НДС10 = 0;
                Док.ВыбратьСтроки();
               Пока Док.ПолучитьСтроку()=1 Цикл
                  Если строка(док.ставкандс) = "18%" Тогда
                      СуммаБезНДС18 = СуммаБезНДС18 + Док.Сумма;
                     Ндс18         = НДС18         + Док.НДС;
                  КонецЕсли;
                  Если строка(док.ставкандс) = "10%" Тогда
                      СуммаБезНДС10 = СуммаБезНДС10 + Док.Сумма;
                     Ндс10         = НДС10         + Док.НДС;
                  КонецЕсли;
               КонецЦикла;
               ДатаОплаты = Док.ДатаОплатыISL;
         КонецЕсли;
         Таб.ВывестиСекцию("Строка");
         ИтогВсего=ИтогВсего+СуммаВсего;
         ИтогСуммаБезНДС18=ИтогСуммаБезНДС18+СуммаБезНДС18;
         ИтогСуммаБезНДС10=ИтогСуммаБезНДС10+СуммаБезНДС10;
         ИтогНДС18=ИтогНДС18+НДС18;
         ИтогНДС10=ИтогНДС10+НДС10;
         ИтогНДС0=ИтогНДС0+НДС0;
         ИтогСуммаСовсемБезНДС=ИтогСуммаСовсемБезНДС+СуммаСовсемБезНДС;
         Оживить(11);
      КонецЕсли;
   КонецЦикла;
   Таб.ВывестиСекцию("Всего");
   ГлБух = ФИО(Константа.ГлБухгалтер.Получить( ДатаКонца ));
   Таб.ВывестиСекцию("Подвал");
   Оживить(2);
   Таб.Опции(0,0,0,0, "Параметры печати книги продаж" );
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Книга продаж","");
 КонецПроцедуры
Процедура ПриОткрытии(ИспНастройки)
   Если ИспНастройки=0 Тогда

      ДатаНачала=НачалоПериодаБИ();
      ДатаКонца =КонецПериодаБИ();

   КонецЕсли;
КонецПроцедуры
Процедура ВводНового() //Считывание существующей настройки
   ДатаНачала = НачалоПериодаБИ();
   ДатаКонца = КонецПериодаБИ();
КонецПроцедуры



Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Напишите в запросе! будет проще!
Помогли, отблагодари!

Оффлайн Snakey

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-06
  • Сайт: 
  • Профессия: Консультант 1С
Слабо дружу с запросами. Понимаю, что это основополагающая штука...

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Так попробуйте конструктор! Сделайте запрос для его проверки есть хорошая обработка для управляемого приложения ConsSel_Managed_Plus, для толстого не управляемого RequestConsoleManaged. Они выводят результат запроса!
Помогли, отблагодари!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Так попробуйте конструктор! Сделайте запрос для его проверки есть хорошая обработка для управляемого приложения ConsSel_Managed_Plus, для толстого не управляемого RequestConsoleManaged. Они выводят результат запроса!
Думаю у него не получиться это сделать в 1С 7.7 =)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Да только сейчас заметил по коду! :)
Помогли, отблагодари!


Теги:
 

Печатная форма "ЧекККМ" для "Отчета о розничных продажах"

Автор Игорь ПолищукРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 7062
Последний ответ 01 Июн 2011, 20:39
от Шурыгин Иван Сергеевич
Формирование отчёта "Задолженость по контрагентам" 1С:Предприятие 8.2 "Торговля для частных предпринимателей базовая", редакция 1.0

Автор casper009Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 2998
Последний ответ 27 Май 2015, 10:02
от casper009
Ошибка при выгрузке отчета "Прибыль"

Автор VasilРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4099
Последний ответ 28 Апр 2011, 14:34
от MaryaAlbertovna
Создание отчета "Отсутствие заказов"

Автор dronspartak9@gmail.comРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3877
Последний ответ 16 Апр 2014, 15:09
от dronspartak9@gmail.com
Программирование отчета "Движения на складах"

Автор ЛунатикРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1960
Последний ответ 05 Апр 2016, 10:15
от vitasw

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

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

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal