|
Внешняя печатная форма | ☑ | ||
---|---|---|---|---|
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) Да, я здесь, а что?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |