Имя: Пароль:
1C
 
Внешняя печатная форма
,
0 Staler1
 
28.12.17
11:05
таблица выходит а данные не заполнены,
помогите найти решение.

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

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


    
&НаКлиенте
Процедура Принятые()
ВхДата=отчет.ВхДата;
//ВхДата=ВхДата+" 0:00:00";
АдресДокНаСервере = УволенныеНаСервере(ВхДата);
ТабДокКлиент = ПолучитьИзВременногоХранилища(АдресДокНаСервере);
ТабДокКлиент.Показать();
1 Ц_У
 
28.12.17
11:07
таб док можно передать и так без ВХ
2 Ц_У
 
28.12.17
11:09
Функция ПринятыеНаСервере(ВхДата)
Пределай в процедуру с 2 параметрами
Процедура ПринятыеНаСервере(ВхДата,ТабДок)
передавай в нее дату и таб док

ТабДок = Новый ТабДок;
УволенныеНаСервере(ВхДата,ТабДок);
ТабДок.Показать()
3 Staler1
 
28.12.17
11:18
(2) что то я уже не понимаю как это сделать =((
каша в голове..
4 Ц_У
 
28.12.17
11:21
(3) слово функция замени на процедура
5 Остап Сулейманович
 
28.12.17
11:24
(3) Создать табличный документ на клиенте. Передать параметром в процедуру на сервере. Там заполнить. Показать на клиенте.
Примерно так :

&НаСервере
Процедура ЗаполнитьТабДокНаСервере(Таб)
  ...
  Таб.Вывести();
  ...
КонецПроцедуры

&НаКлиенте
Процедура Печать()
  ТабДок = Новый ТабличныйДокумент;
  ЗаполнитьТабДокНаСервере(ТабДок);
  ТабДок.Показать();
КонецПроцедуры
6 Sayan_mi
 
28.12.17
11:30
А результат запроса не пустой? Какая конфа?
7 Staler1
 
28.12.17
12:13
(4) если поменять происходит ошибка. (6) таблица пустая выходит.


меня параметр беспокоит он при замене "парам" на число нечего не происходит, так же пустая таблица выходит.

вот переделанный код.



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

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


    
&НаКлиенте
Процедура Принятые()
ВхДата=отчет.ВхДата;
//ВхДата=ВхДата+" 0:00:00";
АдресДокНаСервере =  ПринятыеНаСервере(ВхДата);
АдресДокНаСервере = УволенныеНаСервере(ВхДата);
ТабДокКлиент = ПолучитьИзВременногоХранилища(АдресДокНаСервере);
////ТабДок = Новый ТабДок;
//ПринятыеНаСервере(ВхДата,ТабДок);
ТабДокКлиент.Показать();

    КонецПроцедуры
8 Staler1
 
28.12.17
12:24
https://ru.files.fm/u/qhw8wx5k#_  вот сама впф, если не сложно посмотрите =)
9 Ц_У
 
28.12.17
12:27
&НаСервере
Процедура ПринятыеНаСервере(ВхДата,ТабДок)
    ПараметрВыборПол = ДатаПоле;
    
    ЭтаФорма.РеквизитПоле = ПараметрВыборПол;
        ОтчетОбъект = РеквизитФормыВЗначение("отчет");
        Макет = ОтчетОбъект.ПолучитьМакет("Макет");
        Запрос = Новый Запрос;
    Запрос.Текст =
         "ВЫБРАТЬ
            
        |    Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
        |    ПРЕДСТАВЛЕНИЕ(Сотрудники.ФизическоеЛицо) КАК ФизическоеЛицоПредставление,
        |    ТекущиеКадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
        |    ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность КАК ТекущаяДолжность,
        |    ПРЕДСТАВЛЕНИЕ(ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность) КАК ТекущаяДолжностьПредставление
        |ИЗ
        |    РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
        |ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
        |ПО ТекущиеКадровыеДанныеСотрудников.Сотрудник = Сотрудники.Ссылка
        |где ДатаПриема= ДАТАВРЕМЯ(0001,01,01,0,0,0);
        |ДатаВремя=&Парам;
        |УПОРЯДОЧИТЬ ПО
        |ДатаПриема Убыв";  
    запрос.УстановитьПараметр("Парам", ВхДата);
    РезультатЗапроса = Запрос.Выполнить();
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");    
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;

    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);    
    КонецПроцедуры                      

    
&НаКлиенте
Процедура Принятые()
ВхДата=отчет.ВхДата;
ТабДок = Новый ТабличныйДокумент;
УволенныеНаСервере(ВхДата,ТабДок);
ТабДок.Показать();
КонецПроцедуры;
10 Ц_У
 
28.12.17
12:28
УволенныеНаСервере(ВхДата,ТабДок);
ПринятыеНаСервере(ВхДата,ТабДок);
11 Staler1
 
29.12.17
07:39
(10) |где ДатаПриема=&Парам";
      
   запрос.УстановитьПараметр("Парам",Дата('0001.01.01'));  как вот здесь сделать эту переменную? ('0001.01.01')) я вводил данные в поле и отображалось мое число?

Подскажешь как сделать вот тут?
12 Sayan_mi
 
29.12.17
07:49
Так всё таки какая конфа. Если ЗУП 3 то там в регистре ТекущиеКадровыеДанныеСотрудников есть Физическое лицо, как следствие зачем соединять с со справочником сотрудники? Отладь проверь запрос в консоли.
13 Staler1
 
29.12.17
07:59
(12) 3.1
14 Мимохожий Однако
 
29.12.17
08:03
(13) Запрос в консоли проверил?
15 Staler1
 
29.12.17
08:04
(12) если за место Дата('0001.01.01')) я поставлю дату то всё ОК, но у меня данные "парам" меняются, и я не знаю как правильно задать это чтоб работало как будто я тут подставил  Дата('2017.10.13'))
16 Staler1
 
29.12.17
08:05
(14) сам запрос отрабатывает, именно с функцией парам беда...
17 Мимохожий Однако
 
29.12.17
08:08
(16) Отладчиком смотрел? На каком месте данные пропадают?
18 Staler1
 
29.12.17
08:12
(17) не ошибок, не остановок нет
19 Мимохожий Однако
 
29.12.17
08:16
(18) Как отлаживаешь? Через файл или через подключенную форму? Надо через файл поставить точку остановки на результате запроса и идти дальше.
20 Sayan_mi
 
29.12.17
08:17
Таки в консоли запрос нормально отрабатывает, причем именно с тем параметром который передаёшь?
21 Staler1
 
29.12.17
09:06
(19) и так и так.. (20) если число сам ставишь то работает,
а если в поле то нет
22 Мимохожий Однако
 
29.12.17
09:09
(21) Проверь, что получаешь из поля. Здесь косяк.
23 Staler1
 
29.12.17
09:49
(22) Всё сделал спасибо!!! =))) С наступающим=))
24 Staler1
 
29.12.17
09:49
Всем Спасибо С наступающим =)))
25 Косяк
 
29.12.17
09:57
(22) Да, я здесь, а что?