Имя: Пароль:
1C
1C 7.7
v7: Помогите разобраться с кодом
0 eltex
 
14.04.13
23:57
Процедура Сформировать()
   тз = создатьОбъект("ТаблицаЗначений");
  тз.НоваяКолонка("НомерДок");
  тз.НоваяКолонка("ДатаДок");
  тз.НоваяКолонка("Контрагент");
  тз.НоваяКолонка("Сумма");
  тз.НоваяКолонка("Итог");
  тз.НоваяКолонка("НеОпл");
  тз.НоваяКолонка("Админ");
  тз.НоваяКолонка("Сотрудник");
  тз.НоваяКолонка("Цех");
  тз.НоваяКолонка("Услуга");
  Если Долги = 1 Тогда
  Запрос = создатьОбъект("Запрос");
  ТекстЗапроса = "
  |Период С НачДата По КонДата;
  |ОбрабатыватьДокументы Проведенные;
  |Док = Документ.ЧекККМ.ТекущийДокумент;
  |Контрагент = Документ.ЧекККМ.Контрагент;
  |НомерДок = Документ.ЧекККМ.НомерДок;
  |ДатаДок = Документ.ЧекККМ.ДатаДок;
  |Сумма = Документ.ЧекККМ.Сумма;
  |НеОпл = Документ.ЧекККМ.НеОплачен;
  |Группировка НомерДок;
  |Условие (Контрагент в ВыбКонтрагенты);
  |";
   Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
     Возврат;
  КонецЕсли;

  Пока Запрос.Группировка(1)=1 Цикл
     Док = Запрос.Док;
      тз.НоваяСтрока();
     тз.ДатаДок = Запрос.ДатаДок;
     тз.НомерДок = Запрос.НомерДок;
     тз.Контрагент = Запрос.Контрагент;
     тз.НеОпл = Запрос.НеОпл;
      тз.Сумма = Запрос.Док.Итог("Сумма");
  КонецЦикла;

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

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

Нужно отобрать документы последующим критериям: контрагент, цех, исполнитель, администратор и номенклатура. Так-же необходимо выбрать все строки из табличной части документов за определенный период и по фильтру. Почему-то в таблицу выводится только по одной строке из каждого документа. Помогите пожалуйста,  4 день ковыряюсь...
1 Попытка1С
 
15.04.13
00:01
"Так-же необходимо выбрать все строки из табличной части документов"

И где это в запросе?
2 Попытка1С
 
15.04.13
00:02
Кури
Группировка СтрокаДокумента;
3 DES
 
15.04.13
00:02
Группировка по номеру дока? Не?
4 eltex
 
15.04.13
00:14
Группировка СтрокаДокумента; выбирает строки только из одного документа...
5 Попытка1С
 
15.04.13
00:19
Группировка Док;
Группировка СтрокаДокумента;
6 eltex
 
15.04.13
00:19
(2) выбирает строки только из одного документа..
7 Попытка1С
 
15.04.13
00:22
Ты не правильно обходишь результат запроса значит.
8 eltex
 
15.04.13
00:30
(5) Теперь выбирает все документы но по строке из каждого...
9 Sereja
 
15.04.13
02:12
(8) Скачай что-то типа http://infostart.ru/public/20068/

Потренируйся на нем писать запрос. И когда там получится, вставляй в свой отчет.

Обработку могу на почту выслать
10 eltex
 
15.04.13
02:37
(9) Скинь пож.
11 big
 
15.04.13
05:43
Группировка Док;
Группировка Номенклатура;


всё, больше них... не надо. Группировка по НомерДок - феерично )))


(9) Давай лучше сразу поставим SQL и там будем запросы Онализировать )))
12 eltex
 
18.04.13
22:03
Всем спасибо! все получлось!