Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
03 июл 2022, 21:26

Не выводится отчет с даными..

Автор Staler, 27 дек 2017, 12:08

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

Staler

Подскажите где и в чем Ошибка?

&НаСервере
Функция ПринятыеНаСервере(ВхДата)
      
   ПараметрВыборПол = ДатаПоле;
   
   ЭтаФорма.РеквизитПоле = ПараметрВыборПол;
      ОтчетОбъект = РеквизитФормыВЗначение("отчет");
      Макет = ОтчетОбъект.ПолучитьМакет("Макет");
      Запрос = Новый Запрос;
   Запрос.Текст =
        "ВЫБРАТЬ
         
      |   Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
      |   ПРЕДСТАВЛЕНИЕ(Сотрудники.ФизическоеЛицо) КАК ФизическоеЛицоПредставление,
      |   ТекущиеКадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
      |   ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность КАК ТекущаяДолжность,
      |   ПРЕДСТАВЛЕНИЕ(ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность) КАК ТекущаяДолжностьПредставление
      |ИЗ
      |   РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
      |      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
      |      ПО ТекущиеКадровыеДанныеСотрудников.Сотрудник = Сотрудники.Ссылка
      |где ДатаПриема=&Парам
      |УПОРЯДОЧИТЬ ПО
      |   ДатаПриема Убыв"; 
   запрос.УстановитьПараметр("Парам",ВхДата);
   РезультатЗапроса = Запрос.Выполнить();
   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
   ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
   ТабДок.Очистить();
   ТабДок.Вывести(ОбластьЗаголовок);
   ТабДок.Вывести(ОбластьШапкаТаблицы);
   ТабДок.НачатьАвтогруппировкуСтрок();
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
      ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
   КонецЦикла;   
   ТабДок.ЗакончитьАвтогруппировкуСтрок();
   ТабДок.Вывести(ОбластьПодвалТаблицы);
       
   КонецФункции                     

&НаКлиенте
Процедура Принятые()
         ВхДата = отчет.ВхДата;
   АдресДокНаСервере = ПринятыеНаСервере(вхдата);
             

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

wise

(0) ГДЕ возврат из функции.?? :o
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

pavl_vs

Staler, обычная структура формирования и вывода табличного документа такова:

&НаКлиенте
- определение ТабДок;
- вызов серверной функции заполнения с передачей ТабДок в качестве параметра;
- и как завершение ТабДок.Показать().

&НаСервере
- функция(ТабДок), где
- выполняются запросы получения данных для заполнения ТабДок;
- выполняется заполнение ТабДок в соответствии с макетом;
- итогом является сформированный ТабДок.
Добавлено: 27 дек 2017, 13:01


wise, возврат из функции у ТС есть: АдресДокНаСервере = ПринятыеНаСервере(вхдата); - !?
Вызывающая процедура на клиенте ничего "не знает" о ТабДок !!!

Staler

Цитата: pavl_vs от 27 дек 2017, 12:51
Staler, обычная структура формирования и вывода табличного документа такова:

&НаКлиенте
- определение ТабДок;
- вызов серверной функции заполнения с передачей ТабДок в качестве параметра;
- и как завершение ТабДок.Показать().

&НаСервере
- функция(ТабДок), где
- выполняются запросы получения данных для заполнения ТабДок;
- выполняется заполнение ТабДок в соответствии с макетом;
- итогом является сформированный ТабДок.
Добавлено: 27 дек 2017, 13:01


wise, возврат из функции у ТС есть: АдресДокНаСервере = ПринятыеНаСервере(вхдата); - !?
Вызывающая процедура на клиенте ничего "не знает" о ТабДок !!!


как это сделать?

НаСервере
ТабДок.ЗакончитьАвтогруппировкуСтрок();
   ТабДок.Вывести(ОбластьПодвалТаблицы);
   ТабДок = Новый ТабличныйДокумент;
    ТабДок.Вывести(Макет);
   
    Возврат Макет;
   //ТабДок.ОтображатьСетку = Ложь;


&НаКлиенте
Процедура Принятые()
ВхДата = отчет.ВхДата;
ТабДок = ПринятыеНаСервере(ВхДАта);
АдресДокНаСервере = ПринятыеНаСервере(ВхДата);
//СерверЗаполнитьТабличныйДокумент(ТабДок);
  ////ТабДок = отчет.ВхДата;
  ТабДок.Показать();
КонецПроцедуры



Добавлено: 28 дек 2017, 06:50


вот нормальное вложение ( Ну или почти :dfbsdfbsdf:)
Добавлено: 28 дек 2017, 07:35


вот собрал в кучу всё, выходит таблица а данных нет.. в чем теперь косяк??
Добавлено: 28 дек 2017, 08:19


Проблема скорее всего с параметром, он его не воспринемает...

Norfolk

Пробуйте на принятых. Если все ок, то по аналогии переделайте по уволенным.

pavl_vs

Цитата: Staler от 28 дек 2017, 05:45
.................
Проблема скорее всего с параметром, он его не воспринемает...

Это так.
1. Дата увольнения/приема имеет формат "Дата", а Вы пытаетесь сравнить с параметром формата "Строка".
2. Закометарьте строки запроса |где ДатаПриема=&Парам или |где ДатаУвольнения=&Парам2 и Вы увидите все данные.
3. Наконц, точное совпадение Дат не лучший вариант - лучше раньше, позже или между.

Norfolk

Цитата: pavl_vs от 28 дек 2017, 17:24
Цитата: Staler от 28 дек 2017, 05:45
.................
Проблема скорее всего с параметром, он его не воспринемает...

Это так.
1. Дата увольнения/приема имеет формат "Дата", а Вы пытаетесь сравнить с параметром формата "Строка".
2. Закометарьте строки запроса |где ДатаПриема=&Парам или |где ДатаУвольнения=&Парам2 и Вы увидите все данные.
3. Наконц, точное совпадение Дат не лучший вариант - лучше раньше, позже или между.
Этот момент тоже удивил, что якобы это дата но тип Строка, думал автор в курсе и просто тестировал печать :)

pavl_vs

Staler, приведу вариант "Уволенные" при Парам2 = Пусто при условии
| ДатаУвольнения<>&Парам2";, а в запросе добавлена строка для Даты приема.

Staler

Цитата: Norfolk от 28 дек 2017, 17:06
Пробуйте на принятых. Если все ок, то по аналогии переделайте по уволенным.

ругается на "ТабДок Показать" пока ищу в  чем  может быть косяк)
Добавлено: 29 дек 2017, 05:33


Цитата: pavl_vs от 28 дек 2017, 17:24
Цитата: Staler от 28 дек 2017, 05:45
.................
Проблема скорее всего с параметром, он его не воспринемает...

Это так.
1. Дата увольнения/приема имеет формат "Дата", а Вы пытаетесь сравнить с параметром формата "Строка".
2. Закометарьте строки запроса |где ДатаПриема=&Парам или |где ДатаУвольнения=&Парам2 и Вы увидите все данные.
3. Наконц, точное совпадение Дат не лучший вариант - лучше раньше, позже или между.

2) я знаю если "//ДатаПриема=&Парам "Сделать то данные появляются, но задача стоит чтоб сделать именно поиску по определенной дате..
3) значит  по точным совподениям дат сделать не получится?
Добавлено: 29 дек 2017, 07:27


|где ДатаПриема=&Парам";
       
   запрос.УстановитьПараметр("Парам",Дата('0001.01.01'));  как вот здесь сделать эту переменную? ('0001.01.01')) я вводил данные в поле и отображалось мое число?
Добавлено: 29 дек 2017, 09:47


Всем Спасибо за помощь!! =)) всех с наступающим!) кому надо готовая обработка скину

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск