• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Создание таблицы отчета

  • Автор темы Guest
  • Дата начала
G

Guest

Делаю отчет по продавцам:

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

ОчетККМ и ВозвратОтПокупателя - все верно выводит!
Но в самой таблице в поле "Авани и ВсегоАванс" ничего не выводит???
 
I

Isabela

Поставь в ветке цикла

ИначеЕсли (Док.Вид()="ВозвратОтПокупателя") Тогда

сообщение о документе и авансе, может программа туда просто не попадает
 
G

Guest

Поставь в ветке цикла

ИначеЕсли (Док.Вид()="ВозвратОтПокупателя") Тогда

сообщение о документе и авансе, может программа туда просто не попадает

Спасибо!
Нашел проблему - не поставил галочку на оперучете в док.ВыплатаАвансаСотруднику... :rolleyes:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!