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

Автор Тема: (Не выводит в макет)  (Прочитано 730 раз)

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

Оффлайн GanG031

  • ***
  • Сообщений: 160
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Доброго времени суток! Пишу отчет, точнее переделываю с обычных форм на управляемые, вот текст в управляемом приложении:

Процедура Сформировать(Команда)
   
    СформироватьНаСервере();

   
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере()
      
   ТаличныйДокумент.Очистить();
   Запрос = Новый  Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |   СУММА(ПоступлениеТоваровУслуг.СуммаДокумента) КАК СуммаПокупок,
   |   СУММА(1) КАК КоличествоПокупок
   |ИЗ
   |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
   |ГДЕ
   |   ПоступлениеТоваровУслуг.Проведен = ИСТИНА
   |   И ПоступлениеТоваровУслуг.СуммаДокумента <= &СуммаДокумента
   |   И ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачПериода И &КонПериода" ;
   Запрос.УстановитьПараметр("НачПериода", Период.ДатаНачала);
   Запрос.УстановитьПараметр("КонПериода",Период.ДатаОкончания);
   Запрос.УстановитьПараметр("СуммаДокумента", СуммаДокумента);
   Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
   ОП = Макет.ПолучитьОбласть("Область");
   ОП.Параметры.ПериодОтчета = "" + Формат(Период.ДатаНачала, "ДФ=dd.MM.yyyy") + " - " + Формат(Период.ДатаОкончания, "ДФ=dd.MM.yyyy");
   
   ТабРез = Запрос.Выполнить().Выгрузить();
   Если Не ТабРез.Количество() = 0 Тогда
      ОП.Параметры.Заполнить(ТабРез[0]);
      ОП.Параметры.ТекущаяДата = ТекущаяДата();
      ТаличныйДокумент.Вывести(ОП);
   КонецЕсли   

КонецПроцедуры


Все это пишется в модуле формы, так же есть макет. Сам запрос верный, проверял в консоле запросов, но вот выводить в макет никак не хочет, выыводит только пустой макет. Я так понимаю, что не правильно передал какие то параметры, но вот не пойму  где ошибка...Подскажите пожалуйста! Заранее спасибо!




Оффлайн GanG031

  • ***
  • Сообщений: 160
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Период - Реквизит формы, имеющий тип "Стандартный период"

Онлайн LexaK

  • *****
  • Сообщений: 1259
  • РЕПУТАЦИЯ: 345
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
необходимо сформировать табличный документ, вернуть его на клента и там его показать
ваш код с небольшими корректировками, попробуйте


&НаКлиенте
Процедура Сформировать(Команда)
    лкТаб = 0;
    СформироватьНаСервере(лкТаб);
    лкТаб.Показать(,,Ложь);
   
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере(лкТаб)

   лкТаб = Новый ТабличныйДокумент;

   //ТаличныйДокумент.Очистить();
   Запрос = Новый  Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |   СУММА(ПоступлениеТоваровУслуг.СуммаДокумента) КАК СуммаПокупок,
   |   СУММА(1) КАК КоличествоПокупок
   |ИЗ
   |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
   |ГДЕ
   |   ПоступлениеТоваровУслуг.Проведен = ИСТИНА
   |   И ПоступлениеТоваровУслуг.СуммаДокумента <= &СуммаДокумента
   |   И ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачПериода И &КонПериода" ;
   Запрос.УстановитьПараметр("НачПериода", Период.ДатаНачала);
   Запрос.УстановитьПараметр("КонПериода",Период.ДатаОкончания);
   Запрос.УстановитьПараметр("СуммаДокумента", СуммаДокумента);
   Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
   ОП = Макет.ПолучитьОбласть("Область");
   ОП.Параметры.ПериодОтчета = "" + Формат(Период.ДатаНачала, "ДФ=dd.MM.yyyy") + " - " + Формат(Период.ДатаОкончания, "ДФ=dd.MM.yyyy");
   
   ТабРез = Запрос.Выполнить().Выгрузить();
   //таблицу лучше обходить для каждого ...
   //такой код подходит для всех случаев 0 строк в таблице, 1 или несколько
   Для каждого лкСтр из ТабРез Цикл   
      ОП.Параметры.Заполнить(лкСтр);
      ОП.Параметры.ТекущаяДата = ТекущаяДата();
      лкТаб.Вывести(ОП);
   КонецЦикла;

   //Если Не ТабРез.Количество() = 0 Тогда
      //ОП.Параметры.Заполнить(ТабРез[0]);
      //ОП.Параметры.ТекущаяДата = ТекущаяДата();
      //лкТаб.Вывести(ОП);
   //КонецЕсли   

КонецПроцедуры

Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн GanG031

  • ***
  • Сообщений: 160
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Ругается: Переменная не определена (лкТаб)
в процедуре свормировать я ее объявил как у вас, лкТаб = 0....
Добавлено: 23 Мар 2016, 13:27

эммм...мне нужно вывести в табличный документ, который уже есть на форме. Сделал вот так:

&НаКлиенте
Процедура Сформировать(Команда)
   
    СформироватьНаСервере();
     ТаличныйДокумент.Показать(,,Ложь);

   
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере()
   ЛкТаб = Новый ТабличныйДокумент;   
   ТаличныйДокумент.Очистить();
   Запрос = Новый  Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |   СУММА(ПоступлениеТоваровУслуг.СуммаДокумента) КАК СуммаПокупок,
   |   СУММА(1) КАК КоличествоПокупок
   |ИЗ
   |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
   |ГДЕ
   |   ПоступлениеТоваровУслуг.Проведен = ИСТИНА
   |   И ПоступлениеТоваровУслуг.СуммаДокумента <= &СуммаДокумента
   |   И ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачПериода И &КонПериода" ;
   Запрос.УстановитьПараметр("НачПериода", Период.ДатаНачала);
   Запрос.УстановитьПараметр("КонПериода",Период.ДатаОкончания);
   Запрос.УстановитьПараметр("СуммаДокумента", СуммаДокумента);
   Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
   ОП = Макет.ПолучитьОбласть("Область");
   ОП.Параметры.ПериодОтчета = "" + Формат(Период.ДатаНачала, "ДФ=dd.MM.yyyy") + " - " + Формат(Период.ДатаОкончания, "ДФ=dd.MM.yyyy");
   
   ТабРез = Запрос.Выполнить().Выгрузить();
   //Если Не ТабРез.Количество() = 0 Тогда
   //   ОП.Параметры.Заполнить(ТабРез[0]);
   //   ОП.Параметры.ТекущаяДата = ТекущаяДата();
   //   ТаличныйДокумент.Вывести(ОП);
   //КонецЕсли   
   Для каждого лкСтр Из ТабРез Цикл
   
          ОП.Параметры.Заполнить(лкСтр);
      ОП.Параметры.ТекущаяДата = ТекущаяДата();
      ТаличныйДокумент.Вывести(ОП);
   
   КонецЦикла;


но что то опять нет то...

Последний раз редактировалось: GanG031; 23 Мар 2016, 13:27. Причина: Объединение сообщений

Онлайн LexaK

  • *****
  • Сообщений: 1259
  • РЕПУТАЦИЯ: 345
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
ну вы блин даете!!! откуда у вас пальцы растут? что уже даже не можете кусок кода скопировать один в один!!! :angry:
я же прислал вам ваш же, исправленный код!
а вы запускаете совсем не то, и пишите про ошибки! :wacko:

да-а-а, клиника. :^454^:
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн GanG031

  • ***
  • Сообщений: 160
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
а как вывести в табличный документ, который размещен на форме?


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
91 Сообщений
alex0402
47 Сообщений
AIFrame
42 Сообщений
Oldman06
31 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
29 Сообщений
vitasw
29 Сообщений
Golickoff Golickoff
27 Сообщений
Liv98 Liv98
20 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений
DmitriyF DmitriyF
14 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal