Имя: Пароль:
1C
1С v8
8.1 УТ. Печатная форма к документу
,
0 RasuLL
 
16.11.12
17:00
Здравствуйте. Создал печатную форму для документа Отчет о розничных продажах http://s018.radikal.ru/i506/1211/a4/95f027f1bc8b.jpg
и функцию
Функция ПечатьОтчетаКассира() // печатная форма ОтчетКассира
   
   Макет = ЭтотОбъект.ПолучитьМакет("ОтчетКассира");
   ТабДок = Новый ТабличныйДокумент;
   // получаем область Заголовок
   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ТабДок.Вывести(ОбластьЗаголовок);
   // область Шапки
   ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
   ОбластьШапки.Параметры.Организация = ЭтотОбъект.Организация;
   ОбластьШапки.Параметры.Магазин = ЭтотОбъект.Склад;
   ОбластьШапки.Параметры.Номер = ЭтотОбъект.Номер; // РабочаяДата
   ОбластьШапки.Параметры.Дата = ЭтотОбъект.Дата;
   ТабДок.Вывести(ОбластьШапки);
   // область СуммаНачало
   РегВалюта = Константы.ВалютаРегламентированногоУчета.Получить();
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК СуммаНачальныйОстаток,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрПриход КАК СуммаПриход,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрРасход КАК СуммаРасход,
                  |    ДенежныеСредстваОстаткиИОбороты.Период
                  |ИЗ
                  |    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(, , День, , ) КАК ДенежныеСредстваОстаткиИОбороты";
   Результат = Запрос.Выполнить().Выбрать();              
   СуммаНачальныйОстаток = Результат.СуммаНачальныйОстаток;
   СуммаПриход = Результат.СуммаПриход;
   СуммаРасход = Результат.СуммаРасход;
   ОбластьСуммаНачало = Макет.ПолучитьОбласть("СуммаНачало");
   ОбластьСуммаНачало.Параметры.СуммаНачало = СуммаНачальныйОстаток;
   ОбластьСуммаНачало.Параметры.Валюта = РегВалюта;
   ТабДок.Вывести(ОбластьСуммаНачало);
   // область Продажа
   Наличные = ЭтотОбъект.СуммаДокумента;
   Карты = ЭтотОбъект.ОплатаПлатежнымиКартами.Итог("Сумма");
   Банки = ЭтотОбъект.ОплатаБанковскимиКредитами.Итог("Сумма");
   СуммаПродажи = Наличные + Карты + Банки;
   ОбластьПродажа = Макет.ПолучитьОбласть("Продажа");
   ОбластьПродажа.Параметры.Наличными = 1;
   ОбластьПродажа.Параметры.Карты = 2;
   ОбластьПродажа.Параметры.Банки = 3;
   ОбластьПродажа.Параметры.Валюта = РегВалюта;
   ОбластьПродажа.Параметры.СуммаПродажи = СуммаПродажи;
   ОбластьПродажа.Параметры.СуммаНалич = Наличные;
   ОбластьПродажа.Параметры.СуммаКарты = Карты;
   ОбластьПродажа.Параметры.СуммаБанка = Банки;
   ТабДок.Вывести(ОбластьПродажа);
   // область Оборот
   ОбластьОборот = Макет.ПолучитьОбласть("Оборот");
   ОбластьОборот.Параметры.СуммаПриход = СуммаПриход;
   ОбластьОборот.Параметры.СуммаРасход = СуммаРасход;
   ТабДок.Вывести(ОбластьОборот);
   // область Итог
   //СуммаИтог = СуммаНачальныйОстаток + СуммаПриход - СуммаРасход;
   ОбластьИтог = Макет.ПолучитьОбласть("Итог");
   //ОбластьИтог.Параметры.СуммаИтог = СуммаИтог;
   ТабДок.Вывести(ОбластьИтог);
   
   ТабДок.Защита = Истина;
   ТабДок.ТолькоПросмотр = Истина;
   ТабДок.Показать();
   
КонецФункции

Я новенький, прощу сильно не пинать. Запросом пытаюсь получить Денежный Остаток на начало дня, приход и расход за день. А еще не знаю как добавить в области Продажа каждую карту и банк с итогом. Надеюсь меня кто-нибудь понял.
1 RasuLL
 
17.11.12
09:33
Данные из запроса не выводятся в ТабличныйДокумент. Скажите пожалуйста в чем ошибка?
2 ICWiner
 
17.11.12
09:45
Ты сам скажи где у тебя ошибка. Что конкретно не получается?
3 hhhh
 
17.11.12
09:45
Результат = Запрос.Выполнить().Выбрать();              
Результат.Следующий();
4 ICWiner
 
17.11.12
10:06
(3) Я просто столько букв не осилил :) +
5 RasuLL
 
17.11.12
10:23
(2) хочу взять из регистра СуммаНачальныйОстаток, СуммаПриход, и СуммаРасход из ДенежныеСредства с периодом равным Начало дня даты документа Отчет о розничных продажах а конечная дата текущая дата документа, и вывести их на Табличный документ в нужные параметры макета.
6 RasuLL
 
17.11.12
10:24
(3) не помогает
7 ICWiner
 
17.11.12
10:26
Поставь точку остановки и посмотри что там вообще происходит... В результате данные есть?
8 RasuLL
 
17.11.12
10:27
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК СуммаНачальныйОстаток,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрПриход КАК СуммаПриход,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрРасход КАК СуммаРасход,
                  |    ДенежныеСредстваОстаткиИОбороты.Период
                  |ИЗ
                  |    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(, , Регистратор, , ) КАК ДенежныеСредстваОстаткиИОбороты
                  |ГДЕ
                  |    ДенежныеСредстваОстаткиИОбороты.Период = &Дата";
   Запрос.УстановитьПараметр("Дата", Дата);              
   Результат = Запрос.Выполнить().Выбрать();              
   СуммаНачальныйОстаток = Результат.СуммаНачальныйОстаток;
   СуммаПриход = Результат.СуммаПриход;
   СуммаРасход = Результат.СуммаРасход
9 RasuLL
 
17.11.12
10:31
(7) поставил в

СуммаНачальныйОстаток = Результат.СуммаНачальныйОстаток;
начал отладку. не знаю как узнать результат...
10 RasuLL
 
17.11.12
11:50
скажите пожалуйста что не так? не удается вывести данные
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК СуммаНачальныйОстаток,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрПриход КАК СуммаПриход,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрРасход КАК СуммаРасход,
                  |    ДенежныеСредстваОстаткиИОбороты.Период
                  |ИЗ
                  |    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(, , Регистратор, , ) КАК ДенежныеСредстваОстаткиИОбороты
                  |ГДЕ
                  |    ДенежныеСредстваОстаткиИОбороты.Период = &Дата";
   Запрос.УстановитьПараметр("Дата", Дата);              
   Результат = Запрос.Выполнить().Выбрать();              
   Пока Результат.Следующий() Цикл      
   СуммаНачальныйОстаток = Результат.СуммаНачальныйОстаток;      
   СуммаПриход = Результат.СуммаПриход;      
   СуммаРасход = Результат.СуммаРасход;      
   КонецЦикла;


// область Оборот      
ОбластьОборот = Макет.ПолучитьОбласть("Оборот");      
ОбластьОборот.Параметры.СуммаПриход = СуммаПриход;      
ОбластьОборот.Параметры.СуммаРасход = СуммаРасход;      
ТабДок.Вывести(ОбластьОборот);
11 shuhard
 
17.11.12
11:56
(10)[ГДЕ
                  |    ДенежныеСредстваОстаткиИОбороты.Период = &Дата";]

лажа
либо приведи период к дню
либо возьми период в интервале
12 RasuLL
 
17.11.12
12:07
(11) shuhard, нужно чтобы СуммаНачальныйОстаток, СуммаПриход и СуммаРасход считывались как Начало дня даты документа , СуммаПриход и СуммаРасход до даты самого документа. просто не знаю как это сделать((
13 RasuLL
 
17.11.12
12:09
Запрос.Текст = "ВЫБРАТЬ
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК СуммаНачальныйОстаток,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрПриход КАК СуммаПриход,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрРасход КАК СуммаРасход
                  |ИЗ
                  |    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(, , День, , ) КАК ДенежныеСредстваОстаткиИОбороты";
14 hhhh
 
17.11.12
12:46
|ИЗ
                  |    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(&Дата1,&Дата2 , День, , ) КАК ДенежныеСредстваОстаткиИОбороты";
15 RasuLL
 
19.11.12
09:41
(14) Спасибо, сделал так

Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК СуммаНачальныйОстаток,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрПриход КАК СуммаПриход,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрРасход КАК СуммаРасход,
                  |    ДенежныеСредстваОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК СуммаКонечныйОстаток
                  |ИЗ
                  |    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(&Дата1, &Дата2, День, , ) КАК ДенежныеСредстваОстаткиИОбороты";
   Запрос.УстановитьПараметр("Дата1", НачалоДня(Дата));              
   Запрос.УстановитьПараметр("Дата2", КонецДня(Дата));
   Результат = Запрос.Выполнить().Выбрать();              
   Пока Результат.Следующий() Цикл
   СуммаНачальныйОстаток = Результат.СуммаНачальныйОстаток;
   СуммаПриход = Результат.СуммаПриход;
   СуммаРасход = Результат.СуммаРасход;
   СуммаКонечныйОстаток = Результат.СуммаКонечныйОстаток;
   КонецЦикла;
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший