Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 14:32

Ошибка в табличной частине

Автор casper21, 21 окт 2015, 22:21

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

casper21

Функция Печать() Экспорт
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетДруку");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьДанные = Макет.ПолучитьОбласть("Данные");
ОбластьПереченьНоменклатурыШапка = Макет.ПолучитьОбласть("ПереченьНоменклатурыШапка");
ОбластьПереченьНоменклатуры = Макет.ПолучитьОбласть("ПереченьНоменклатуры");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапка.Параметры.ТекстЗаголовка = "Печатная форма "+Ссылка.Номер;
ТабДок.Вывести(ОбластьШапка);


Запрос = Новый Запрос;
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ОказаниеУслуг.Дата,
| ОказаниеУслуг.Клиент,
| ОказаниеУслуг.Мастер,
| ОказаниеУслуг.Склад,
| ОказаниеУслугПереченьНоменклатуры.НомерСтроки,
| ОказаниеУслугПереченьНоменклатуры.Номенклатура,
| ОказаниеУслугПереченьНоменклатуры.Количество,
| ОказаниеУслугПереченьНоменклатуры.Цена,
| ОказаниеУслугПереченьНоменклатуры.Сумма
|ИЗ
| Документ.ОказаниеУслуг.ПереченьНоменклатуры КАК ОказаниеУслугПереченьНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОказаниеУслуг КАК ОказаниеУслуг
| ПО ОказаниеУслугПереченьНоменклатуры.Ссылка = ОказаниеУслуг.Ссылка
|ГДЕ
| ОказаниеУслуг.Ссылка В(&Ссылка)";


Выборка = Запрос.Выполнить().Выбрать();
ИтогоСумма = 0;
ИтогоКоличество = 0;

Пока Выборка.Следующий() Цикл

ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
ЗаполнитьЗначенияСвойств(ОбластьПереченьНоменклатуры.Параметры,Выборка);
ИтогоСумма = ИтогоСумма + Выборка.Сумма;
    ИтогоКоличество = ИтогоКоличество + Выборка.Количество;

// ????????
//ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();
// Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл
// ЗаполнитьЗначенияСвойств(ОбластьПереченьНоменклатуры.Параметры,Выборка);
//
// КонецЦикла;
// ????????

КонецЦикла;
  ТабДок.Вывести(ОбластьДанные);
  ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);
  ТабДок.Вывести(ОбластьПереченьНоменклатуры);


ОбластьПодвал.Параметры.ИтогоКоличество = ИтогоКоличество;
ОбластьПодвал.Параметры.ИтогоСумма      = ИтогоСумма;
ТабДок.Вывести(ОбластьПодвал);
ВставлятьРазделительСтраниц = Истина;
ТабДок.Показать();
Возврат ТабДок;


Конецфункции


Надо вывести данные в табличную часть. А оно перезаписывает данные и виводить последнюю инфу.
Я уже что то там перезаписывал, уже забил че и как зделал. Может кто увидит((
а надо так



cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Golickoff

ТабДок.Вывести Проблема здесь. Ты сначала заполняешь нужные поля в цикле, который длится пока не закончатся нужные данные, а затем ты выводишь это поле. Отсюда и твоя проблема. Как только заполнил все нужные поля области макета -- выводи её, а не перезаписывай. Тот код, с которого я начал своё сообщение, должен находиться ВНУТРИ цикла, а не после него.
Пока Выборка.Следующий() Цикл
   
        ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
        ЗаполнитьЗначенияСвойств(ОбластьПереченьНоменклатуры.Параметры,Выборка);
        ИтогоСумма = ИтогоСумма + Выборка.Сумма;
        ИтогоКоличество = ИтогоКоличество + Выборка.Количество;
        ТабДок.Вывести(ОбластьДанные);
        ТабДок.Вывести(ОбластьПереченьНоменклатуры);

    КонецЦикла;
    ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

casper21

http://s016.radikal.ru/i336/1510/02/ebdb55b1bd02.png
Вот такое...в табличной части все ок.
Но ОбластьДанные повторяются

cska-fanat-kz

ну так вытащи вывод ОбластьДанные из цикла!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

casper21

а как сделать чтобы область данные были сверху.
Перед табличной части.
Но в цикле описуэться что там писать
http://s020.radikal.ru/i705/1510/b9/ee53b4ca347a.png
Добавлено: 22 окт 2015, 14:46


Зделал!:wacko:
Функция Печать() Экспорт
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетДруку");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьДанные = Макет.ПолучитьОбласть("Данные");
ОбластьПереченьНоменклатурыШапка = Макет.ПолучитьОбласть("ПереченьНоменклатурыШапка");
ОбластьПереченьНоменклатуры = Макет.ПолучитьОбласть("ПереченьНоменклатуры");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапка.Параметры.ТекстЗаголовка = "Печатная форма "+Ссылка.Номер;
ТабДок.Вывести(ОбластьШапка);


Запрос = Новый Запрос;
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ОказаниеУслуг.Дата,
| ОказаниеУслуг.Клиент,
| ОказаниеУслуг.Мастер,
| ОказаниеУслуг.Склад,
| ОказаниеУслугПереченьНоменклатуры.НомерСтроки,
| ОказаниеУслугПереченьНоменклатуры.Номенклатура,
| ОказаниеУслугПереченьНоменклатуры.Количество,
| ОказаниеУслугПереченьНоменклатуры.Цена,
| ОказаниеУслугПереченьНоменклатуры.Сумма
|ИЗ
| Документ.ОказаниеУслуг.ПереченьНоменклатуры КАК ОказаниеУслугПереченьНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОказаниеУслуг КАК ОказаниеУслуг
| ПО ОказаниеУслугПереченьНоменклатуры.Ссылка = ОказаниеУслуг.Ссылка
|ГДЕ
| ОказаниеУслуг.Ссылка В(&Ссылка)";


Выборка = Запрос.Выполнить().Выбрать();
ИтогоСумма = 0;
ИтогоКоличество = 0;
ОбластьДанные.Параметры.Заполнить(Ссылка);
ТабДок.Вывести(ОбластьДанные);
ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);
Пока Выборка.Следующий() Цикл
       // ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
ЗаполнитьЗначенияСвойств(ОбластьПереченьНоменклатуры.Параметры,Выборка);
ИтогоСумма = ИтогоСумма + Выборка.Сумма;
    ИтогоКоличество = ИтогоКоличество + Выборка.Количество;
ТабДок.Вывести(ОбластьПереченьНоменклатуры);
КонецЦикла;
   //  ТабДок.Вывести(ОбластьДанные);
ОбластьПодвал.Параметры.ИтогоКоличество = ИтогоКоличество;
ОбластьПодвал.Параметры.ИтогоСумма      = ИтогоСумма;
ТабДок.Вывести(ОбластьПодвал);
ВставлятьРазделительСтраниц = Истина;
ТабДок.Показать();
Возврат ТабДок;


Конецфункции

cska-fanat-kz

Ну естественно кто за кем у вас ...Вывести(...) расположены, так они сверху вниз и идут в табдоке!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск