|
УНФ: в арендованной базе отчет пустой, в файловой копии работает | ☑ | ||
---|---|---|---|---|
0
katerinaUniv
18.04.19
✎
16:30
|
Добрый день, подскажите, почему такое может быть? Давно не писала отчеты, а вот тут пришлось. На файловой базе отчет работает, а вот на арендованной у раруса тот же отчет абсолютно пустой. Почему такое может быть?
|
|||
1
katerinaUniv
18.04.19
✎
16:31
|
&НаСервере
Функция СформироватьНаСервере() ТабДок = Новый ТабличныйДокумент; Макет = РеквизитФормыВЗначение("отчет").ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка|Начало"); ОбластьШапка.Параметры.ДатаС = Формат(отчет.ДатаС, "ДЛФ=DD"); ОбластьШапка.Параметры.ДатаПо = Формат(отчет.ДатаПо, "ДЛФ=DD"); ТабДок.Вывести(ОбластьШапка); Для Каждого текСтрока Из отчет.СписокИПорядокПрайсов Цикл ОбластьШапка = Макет.ПолучитьОбласть("Шапка|Прайс"); ОбластьШапка.Параметры.Прайс = текСтрока.Прайс; ТабДок.Присоединить(ОбластьШапка); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказПокупателяЗапасы.Ссылка.СтруктурнаяЕдиницаПродажи КАК Филиал, | ЗаказПокупателяЗапасы.Ссылка.Контрагент.ИНН КАК ИНН, | ЗаказПокупателяЗапасы.Ссылка.Контрагент КАК ЮЛ, | ЗаказПокупателяЗапасы.Номенклатура КАК Номенклатура, | ЗаказПокупателяЗапасы.Сумма КАК СуммаПродаж, | ЗаказПокупателяЗапасы.Количество КАК Количество, | ЗаказПокупателяЗапасы.Ссылка КАК Ссылка, | ФактОплатыЗаказов.Сумма КАК Сумма1, | ФактОплатыЗаказов.СуммаАванса КАК СуммаАванса, | ФактОплатыЗаказов.СуммаОплаты КАК СуммаОплаты, | ЗаказПокупателяДополнительныеРеквизиты.Значение КАК Менеджер, | ФактОплатыЗаказов.СуммаАванса + ФактОплатыЗаказов.СуммаОплаты - ФактОплатыЗаказов.Сумма КАК Оплачен |ИЗ | Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФактОплатыЗаказов КАК ФактОплатыЗаказов | ПО ЗаказПокупателяЗапасы.Ссылка = ФактОплатыЗаказов.СчетНаОплату | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ДополнительныеРеквизиты КАК ЗаказПокупателяДополнительныеРеквизиты | ПО ЗаказПокупателяЗапасы.Ссылка = ЗаказПокупателяДополнительныеРеквизиты.Ссылка |ГДЕ | ЗаказПокупателяЗапасы.Ссылка.Дата МЕЖДУ &ДатаС И &ДатаПо | И ЗаказПокупателяДополнительныеРеквизиты.Свойство = &Свойство | И ФактОплатыЗаказов.СуммаОплаты + ФактОплатыЗаказов.СуммаАванса - ФактОплатыЗаказов.Сумма >= 0 |ИТОГИ | СУММА(СуммаПродаж), | СУММА(Количество), | СУММА(Сумма1), | СУММА(СуммаАванса), | СУММА(СуммаОплаты) |ПО | Филиал, | Менеджер, | ИНН, | ЮЛ, | Номенклатура"; Запрос.УстановитьПараметр("ДатаПо", КонецДня(отчет.ДатаПо)); Запрос.УстановитьПараметр("ДатаС", НачалоДня(отчет.ДатаС)); Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Менеджер по продажам")); РезультатЗапроса = Запрос.Выполнить(); ВыборкаСтруктурнаяЕдиницаПродажи = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСтруктурнаяЕдиницаПродажи.Следующий() Цикл // Вставить обработку выборки ВыборкаСтруктурнаяЕдиницаПродажи ОбластьФилиал = Макет.ПолучитьОбласть("Филиал|Начало"); ОбластьФилиал.Параметры.Заполнить(ВыборкаСтруктурнаяЕдиницаПродажи); ТабДок.Вывести(ОбластьФилиал); Для Каждого текСтрока Из отчет.СписокИПорядокПрайсов Цикл ОбластьФилиал = Макет.ПолучитьОбласть("Филиал|Прайс"); ТабДок.Присоединить(ОбластьФилиал); КонецЦикла; ВыборкаМенеджер = ВыборкаСтруктурнаяЕдиницаПродажи.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаМенеджер.Следующий() Цикл // Вставить обработку выборки ВыборкаМенеджер ОбластьМенеджер = Макет.ПолучитьОбласть("Менеджер|Начало"); ОбластьМенеджер.Параметры.Заполнить(ВыборкаМенеджер); ТабДок.Вывести(ОбластьМенеджер); Для Каждого текСтрока из отчет.СписокИПорядокПрайсов Цикл ОбластьМенеджер = Макет.ПолучитьОбласть("Менеджер|Прайс"); ТабДок.Присоединить(ОбластьМенеджер); КонецЦикла; ВыборкаИНН = ВыборкаМенеджер.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаИНН.Следующий() Цикл ВыборкаЮЛ = ВыборкаИНН.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаЮЛ.Следующий() Цикл ВыборкаДетальныеЗаписи = ВыборкаЮЛ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи ОбластьСтрока = Макет.ПолучитьОбласть("Строка|Начало"); ОбластьСтрока.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьСтрока); Для Каждого текСтрока Из отчет.СписокИПорядокПрайсов Цикл ОбластьСтрока = Макет.ПолучитьОбласть("Строка|Прайс"); ОбластьСтрока.Параметры.Сумма = ПолучитьСумму(текСтрока.Прайс, ВыборкаДетальныеЗаписи.Номенклатура, ВыборкаДетальныеЗаписи.Количество); ТабДок.Присоединить(ОбластьСтрока); КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; Возврат ТабДок; КонецФункции Функция ПолучитьСумму(прайс, номенклатура, количество) //получаем цену по прайсу, умножаем на количество и возвращаем результат сумма = 0; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.Цена КАК Цена |ИЗ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних( | &ДатаПо, | Актуальность = ИСТИНА | И | Номенклатура = &Номенклатура | И ВидЦен = &Прайс) КАК ЦеныНоменклатурыСрезПоследних"; Запрос.УстановитьПараметр("ДатаПо", КонецДня(отчет.ДатаПо)); Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("Прайс", Прайс.ВидыЦен[0].ВидЦен); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл сумма = Количество * ВыборкаДетальныеЗаписи.Цена; КонецЦикла; Возврат сумма; КонецФункции &НаКлиенте Процедура Сформировать(Команда) ТабДок = СформироватьНаСервере(); //ТабДок = Новый ТабличныйДокумент; ТабДок.ОтображатьСетку = Ложь; ТабДок.Показать(); КонецПроцедуры |
|||
2
katerinaUniv
18.04.19
✎
16:32
|
В чем может быть ошибка?
|
|||
3
Darych
18.04.19
✎
16:33
|
кэш повантузь попробуй
|
|||
4
katerinaUniv
18.04.19
✎
16:38
|
(3) по отладчику в той базе смотрю, в процедуру на сервере которая даже не проваливается
|
|||
5
katerinaUniv
18.04.19
✎
16:38
|
Говорит о чем-нибудь?
|
|||
6
ДенисЧ
18.04.19
✎
16:40
|
(4) Просто на сервере арендованном отладка на сервере не включена
|
|||
7
katerinaUniv
18.04.19
✎
16:41
|
Тогда почему на файловой работает серверная процедура полностью, весь запрос собирается, а на серверной результат запроса пустой?
|
|||
8
Darych
18.04.19
✎
16:42
|
к серверу рдп?
|
|||
9
katerinaUniv
18.04.19
✎
16:44
|
(8)Да. Но у меня запускается не полноценное рдп, а только приложение
|
|||
10
katerinaUniv
18.04.19
✎
16:44
|
Это может быть что-то из серии асинхронных и синхронных вызовов процедур?
|
|||
11
katerinaUniv
18.04.19
✎
16:44
|
Я не читала об этом еще
|
|||
12
Жан Пердежон
18.04.19
✎
16:48
|
может данных в базе нет?
ПолучитьСумму() - &НаСервере не хватает, да и вообще запросы в цикле - зло. |
|||
13
Жан Пердежон
18.04.19
✎
16:51
|
Кстати, почему не СКД? Попробуй обработку сделать, а не отчет.
|
|||
14
RomanYS
18.04.19
✎
16:55
|
Сильно):
|ГДЕ | .... | И ЗаказПокупателяДополнительныеРеквизиты.Свойство = &Свойство | И ФактОплатыЗаказов.СуммаОплаты + ФактОплатыЗаказов.СуммаАванса - ФактОплатыЗаказов.Сумма >= 0 |
|||
15
katerinaUniv
18.04.19
✎
17:20
|
(14) как лучше тогда такое писать? Тремя вложенными запросами?
|
|||
16
katerinaUniv
18.04.19
✎
17:20
|
почему запрос не отрабатывает на сервере?
|
|||
17
katerinaUniv
18.04.19
✎
17:24
|
через консоль он не пустой, через обработку - пустой на серверной базе
|
|||
18
Darych
18.04.19
✎
17:24
|
см (3).. на сервере попинай... а так еще может быть: у тебя говноотчет - твой комп привык, а серв еще нет
|
|||
19
Rovan
гуру
18.04.19
✎
17:25
|
Вангую: дело в
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Менеджер по продажам") |
|||
20
Rovan
гуру
18.04.19
✎
17:29
|
(+19) тоже создаю отчеты под УНФ и делаю там обычно так:
= ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту( "Заголовок", "Тут что-то написано"); |
|||
21
kzot
18.04.19
✎
17:36
|
(20) Может лучше Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.Свойство.Имя = "Здесь значение строки для разработчиков.");
хотя хз про УНФ, должно быть. |
|||
22
katerinaUniv
18.04.19
✎
17:46
|
(18)во-первых, на скорую руку
во-вторых, можно сказать, что именно не так и как сделать лучше. А то получается бессмысленное "фу". Я пришла сюда за помощью, а не за тем, чтобы кто-то написал, что может лучше. Не думаю, что с утробы матери тут сразу все все умели... |
|||
23
katerinaUniv
18.04.19
✎
17:48
|
(20) Дело не в этом параметре. Убрала запрос и в отчете пусто. Показывает только шапку.
|
|||
24
hhhh
18.04.19
✎
17:49
|
(22) намекаете на что, не называть говноотчет говноотчетом?
|
|||
25
katerinaUniv
18.04.19
✎
17:52
|
(24) Говорить, как бы сделали иначе. Я же не прихожу к буху и глядя в красноту на оборотке не говорю, что там говно, а потом не ухожу домой) Показываю, что не так и как не делать
|
|||
26
kzot
18.04.19
✎
17:56
|
(0) может клиент потолще, ПолучитьОбласть Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
|
|||
27
katerinaUniv
18.04.19
✎
17:57
|
(26)да нет, все-таки в отборе дело...
|
|||
28
katerinaUniv
18.04.19
✎
17:58
|
Просто когда убирала - убрала во внешнем, а проверила тот, что в расширении
|
|||
29
Darych
18.04.19
✎
17:59
|
(25) поверьте.. я так делал.. Меня это не красит, но
|
|||
30
Darych
18.04.19
✎
17:59
|
а было где слово про расширение?
|
|||
31
kzot
18.04.19
✎
17:59
|
(27) Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.Свойство.Имя = "Здесь значение строки для разработчиков.");
вроде лучше будет ) |
|||
32
katerinaUniv
18.04.19
✎
18:01
|
(31) ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.Свойство.Имя = "Здесь значение строки для разработчиков." - такая конструкция вернет тот реквизит?
|
|||
33
katerinaUniv
18.04.19
✎
18:08
|
kzot, спасибо огромное. Для меня необычно, что только такая конструкция работает, но видимо так оно теперь работает))) Не так часто занимаюсь разработкой. Да и отчет нужен на один-два раза. Система мотивации меняется. Спасибо еще раз огромное, удачного вечера!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |