reznik911
Интересующийся
Offline
|
|
« : 14-01-2014 07:09 » |
|
у меня возникли иные проблемы с отчетом. оказывается наш отчет показывает не совсем правильные данные и я незнаю почему. помогите пожалуйста. заранее спасибо. ЗАпрос проверил в консоли,все правильно на закладке Ресурсы : Поле ДатаДиска - Выражение Выбор Когда ЗначениеЗаполнено(Сумма(КоличествоНеОтгруженных)) Тогда СоединитьСтроки(Формат(ДатаДиска, "ДФ=MM.yy"),",") Иначе "" Конец ; Поле КоличествоНеОтгруженных - Выражение Сумма(КоличествоНеОтгруженных) ; Поле ДатаДиска - Выражение Null , Расчитывать по ... Общий итог В Настройках отчета : вывод виде группировки по всем полям ВЫБРАТЬ ИТС_ПодпискиСрезПоследних.Организация, ИТС_ПодпискиСрезПоследних.Контрагент КАК Контрагент, ИТС_ПодпискиСрезПоследних.ВидПодписки, ИТС_ПодпискиСрезПоследних.ДатаНачала, ИТС_ПодпискиСрезПоследних.ДатаЗавершения, ИТС_ПодпискиСрезПоследних.Контрагент.ОсновноеКонтактноеЛицо, ИТС_ПодпискиСрезПоследних.СостояниеЗаявки, ИТС_ПодпискиСрезПоследних.Заявка.РегНомер КАК РегистрационныйНомер, ИТС_ПодпискиСрезПоследних.Заявка ПОМЕСТИТЬ ВТ_ИТСПодпискиСрезПоследних ИЗ РегистрСведений.ИТС_Подписки.СрезПоследних(&Дата, Организация = &Организация) КАК ИТС_ПодпискиСрезПоследних
ИНДЕКСИРОВАТЬ ПО Контрагент ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ИТСПодпискиСрезПоследних.Организация, ВТ_ИТСПодпискиСрезПоследних.Контрагент, ВТ_ИТСПодпискиСрезПоследних.ВидПодписки, ВТ_ИТСПодпискиСрезПоследних.ДатаНачала, ВТ_ИТСПодпискиСрезПоследних.ДатаЗавершения, МАКСИМУМ(ВЫБОР КОГДА НЕ ЕСТЬNULL(КонтактнаяИнформация.Поле6, "") = "" ТОГДА "Ул. " + КонтактнаяИнформация.Поле6 + ВЫБОР КОГДА НЕ ЕСТЬNULL(КонтактнаяИнформация.Поле7, "") = "" ТОГДА ", Дом " + КонтактнаяИнформация.Поле7 + ВЫБОР КОГДА НЕ ЕСТЬNULL(КонтактнаяИнформация.Поле8, "") = "" ТОГДА ", " + КонтактнаяИнформация.Поле8 + ВЫБОР КОГДА НЕ ЕСТЬNULL(КонтактнаяИнформация.Поле9, "") = "" ТОГДА ", " + КонтактнаяИнформация.Поле9 ИНАЧЕ "" КОНЕЦ ИНАЧЕ "" КОНЕЦ ИНАЧЕ "" КОНЕЦ ИНАЧЕ "" КОНЕЦ) КАК Адрес, МАКСИМУМ(КонтактнаяИнформация.Поле3) КАК Телефон, ВТ_ИТСПодпискиСрезПоследних.Контрагент.ОсновноеКонтактноеЛицо, ВТ_ИТСПодпискиСрезПоследних.СостояниеЗаявки, ВТ_ИТСПодпискиСрезПоследних.Заявка.РегНомер КАК РегистрационныйНомер, ВТ_ИТСПодпискиСрезПоследних.Заявка КАК Заявка ПОМЕСТИТЬ ПодпискиИТС ИЗ ВТ_ИТСПодпискиСрезПоследних КАК ВТ_ИТСПодпискиСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ПО (ВТ_ИТСПодпискиСрезПоследних.Контрагент = (ВЫРАЗИТЬ(КонтактнаяИнформация.Объект КАК Справочник.Контрагенты))) И (КонтактнаяИнформация.Вид В (ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента), ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента)))
СГРУППИРОВАТЬ ПО ВТ_ИТСПодпискиСрезПоследних.ВидПодписки, ВТ_ИТСПодпискиСрезПоследних.Организация, ВТ_ИТСПодпискиСрезПоследних.Контрагент, ВТ_ИТСПодпискиСрезПоследних.ДатаНачала, ВТ_ИТСПодпискиСрезПоследних.ДатаЗавершения, ВТ_ИТСПодпискиСрезПоследних.СостояниеЗаявки, ВТ_ИТСПодпискиСрезПоследних.Заявка, ВТ_ИТСПодпискиСрезПоследних.Контрагент.ОсновноеКонтактноеЛицо, ВТ_ИТСПодпискиСрезПоследних.Заявка.РегНомер
ИНДЕКСИРОВАТЬ ПО Заявка ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ИТС_ДискиСрезПоследних.Заявка КАК Заявка, СУММА(ВЫБОР КОГДА ИТС_ДискиСрезПоследних.СостояниеДиска = ЗНАЧЕНИЕ(Перечисление.ИТС_ВидыСостоянийДисков.Получен) ТОГДА 1 КОНЕЦ) КАК КоличествоНеОтгруженных, ДОБАВИТЬКДАТЕ(ИТС_ДискиСрезПоследних.Заявка.ДатаНачала, МЕСЯЦ, ИТС_ДискиСрезПоследних.Заявка.ВидПодписки.Периодичность * (ИТС_ДискиСрезПоследних.НомерПериода - 1)) КАК ДатаДиска ПОМЕСТИТЬ ДискиИТС ИЗ РегистрСведений.ИТС_Диски.СрезПоследних КАК ИТС_ДискиСрезПоследних
СГРУППИРОВАТЬ ПО ИТС_ДискиСрезПоследних.Заявка, ДОБАВИТЬКДАТЕ(ИТС_ДискиСрезПоследних.Заявка.ДатаНачала, МЕСЯЦ, ИТС_ДискиСрезПоследних.Заявка.ВидПодписки.Периодичность * (ИТС_ДискиСрезПоследних.НомерПериода - 1))
ИНДЕКСИРОВАТЬ ПО Заявка ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПодпискиИТС.Организация, ПодпискиИТС.Контрагент, ПодпискиИТС.ВидПодписки, ПодпискиИТС.ДатаНачала, ПодпискиИТС.ДатаЗавершения, ПодпискиИТС.Адрес, ПодпискиИТС.Телефон, ПодпискиИТС.КонтрагентОсновноеКонтактноеЛицо, ПодпискиИТС.СостояниеЗаявки, ПодпискиИТС.РегистрационныйНомер, ДискиИТС.КоличествоНеОтгруженных, ДискиИТС.ДатаДиска ИЗ ПодпискиИТС КАК ПодпискиИТС ЛЕВОЕ СОЕДИНЕНИЕ ДискиИТС КАК ДискиИТС ПО ПодпискиИТС.Заявка = ДискиИТС.Заявка
|
|
|
Записан
|
|
|
|
reznik911
Интересующийся
Offline
|
|
« Ответ #1 : 14-01-2014 10:26 » |
|
мне кто ни будь поможет?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #2 : 14-01-2014 16:13 » |
|
reznik911, сомневаюсь, ибо не понятно ни в чем проблема, ни какая конфигурация/платформа.
|
|
|
Записан
|
|
|
|
reznik911
Интересующийся
Offline
|
|
« Ответ #3 : 15-01-2014 04:15 » |
|
Kivals, конфигурация УТП для Казахстана 2.0.2.5. Я вроде все до мелочей описал. думал если будут вопросы отвечу по программе. проблему написал, как можно вывести несколько строк в одной или если по другому назвать объединить несколько строк. я все написал даже что у меня в настройках в ресурсах
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #4 : 15-01-2014 08:27 » |
|
Как минимум пишут в каком поле ошибка и что хотел получить, а что получил. Разбирать детально код, только чтобы выявить где же проблема из заголовка темы, желания нет. В твоем случае (если ты говоришь что в консоли все ОК) - приводят 2 варианта результата: где "все ОК" и где "не ОК" Еще не написал номер релиза платформы и (если 8.2 и выше) - какой режим используется.
|
|
|
Записан
|
|
|
|
|
|
Kivals
|
|
« Ответ #7 : 15-01-2014 09:08 » |
|
reznik911, с таким описанием уже можно пытаться работать, но еще 2 замечания (это не придирки - эта инфа необходима): 1. Номер платформы укажи до 4 числа (последний релиз: 8.3.4.389, в предыдущих могли быть и ошибки) 2. У меня не открылся ни один скриншот на radikal.ru - поправь ссылки
|
|
|
Записан
|
|
|
|
reznik911
Интересующийся
Offline
|
|
« Ответ #8 : 15-01-2014 09:16 » |
|
Kivals, 8.3.3.658 . ок я все понимаю. пока новенький учусь правильно писать на форумах)) . у меня в отчете получается так вместо того чтоб показыать 6 дат диска он показывает за весь год. я взял тот же запрос но вывод сделал детальными записями вуаля показывает правильно как и в консолизапросов существуют еще другие отчеты(где показывает правильно ) и регистр сведений откуда я и беру данные так вот вопрос заключается в том почему если я пытаюсь вывести в одной строке данные прописав (тот что выше указал) в ресурсах то он выводит неправильно, а если детальными записями правильно.
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #9 : 15-01-2014 11:29 » |
|
В описании последней версии платформы есть такое: Ошибки исправленные в 8.3.4.389 ... 20021468 Компоновщик макета компоновки данных Проблема: Компоновщик макета компоновки данных в некоторых случаях неправильно заполняет выражения полей. Дата публикации: 2013-12-25 Так что есть смысл попробоватиь на последней версии. И все же я не понял - есть у тебя правильный результат свернутого отчета, выполненного в консоли? Попробуй еще убрать условие из параметра ( Поле ДатаДиска - Выражение СоединитьСтроки(Формат(ДатаДиска, "ДФ=MM.yy"),",") ) - что тогда покажет для первой строки (бесплатная)?
|
|
|
Записан
|
|
|
|
reznik911
Интересующийся
Offline
|
|
« Ответ #10 : 15-01-2014 11:43 » |
|
Kivals, запрос который скинул вначале и есть правильный запрос. ну по крайне мере я так думаю потому что повторюсь в детальные записи выводит правильно как на скриншоте показал и в консоле запросов тоже верно. это означает что запрос верный так? я прав или этого недостатточно чтоб сказать запрос верный
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #11 : 15-01-2014 11:49 » |
|
reznik911, выборка детальных записей правильна - тут вопросов нет. Но есть подозрение, что неверно составлено выражение и/или ошибка в обработке этого выражения. Потому в консоли сделай детальный запрос вложенным и оберни его запросом с выражением "СоединитьСтроки(Формат(ДатаДиска, "ДФ=MM.yy"),",") как ДатаДиска" и группировкой
|
|
|
Записан
|
|
|
|
reznik911
Интересующийся
Offline
|
|
« Ответ #12 : 15-01-2014 11:58 » |
|
Kivals, если убрать условие из параметра (Поле ДатаДиска - Выражение СоединитьСтроки(Формат(ДатаДиска, "ДФ=MM.yy"),",") ) то тогда он не позволяет в отборах установить по контрагенту, но я думаю это не проблема может быть))). Он теперь выводит также не правильно датудиска но и по тем строкам где КоличетсвоНеОтгруженных=0
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #13 : 15-01-2014 13:10 » |
|
Похоже, твое выражение трактутеся так: "если сумма неотгруженных не ноль - то объединить все строки из выборки", а правильно было бы так "объединить все строки, где неотгружено не ноль" Скорее всего выражение должно быть каким-то таким: ДатаДиска: СоединитьСтроки(Выбор Когда ЗначениеЗаполнено(КоличествоНеОтгруженных) Тогда Формат(ДатаДиска, "ДФ=MM.yy") Иначе "" Конец, ",")
|
|
|
Записан
|
|
|
|
reznik911
Интересующийся
Offline
|
|
« Ответ #14 : 15-01-2014 16:41 » |
|
Kivals, Урраа получилось вытащить но почему то выводит еще и зачения <ПустоеЗначение>. как это можно исправить и вообще изза чего он так выводит
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #15 : 15-01-2014 20:47 » |
|
Попробуй другие варианты вместо "Иначе "" Конец": Иначе NULL Конец Иначе Неопределено Конец ...
|
|
|
Записан
|
|
|
|
|
Kivals
|
|
« Ответ #17 : 16-01-2014 08:55 » |
|
reznik911, и тебе спасибо: узнал новую агрегатную функцию СоединитьСтроки(). Видимо пришло время перечитать документацию...
|
|
|
Записан
|
|
|
|
|
|