Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Объединение строк в СКД СоединитьСтроки  (Прочитано 17363 раз)
0 Пользователей и 1 Гость смотрят эту тему.
reznik911
Интересующийся

kz
Offline 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
Интересующийся

kz
Offline Offline

« Ответ #1 : 14-01-2014 10:26 » 

мне кто ни будь поможет?
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 14-01-2014 16:13 » 

reznik911, сомневаюсь, ибо не понятно ни в чем проблема, ни какая конфигурация/платформа.
Записан
reznik911
Интересующийся

kz
Offline Offline

« Ответ #3 : 15-01-2014 04:15 » 

Kivals, конфигурация УТП для Казахстана 2.0.2.5.  Я вроде все до мелочей описал. думал если будут вопросы отвечу по программе. проблему написал, как можно вывести несколько строк в одной или если по другому назвать объединить несколько строк. я все написал даже что у меня в настройках в ресурсах
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 15-01-2014 08:27 » 

Как минимум пишут в каком поле ошибка и что хотел получить, а что получил. Разбирать детально код, только чтобы выявить где же проблема из заголовка темы, желания нет.
В твоем случае (если ты говоришь что в консоли все ОК) - приводят 2 варианта результата: где "все ОК" и где "не ОК"
Еще не написал номер релиза платформы и (если 8.2 и выше) - какой режим используется.
Записан
reznik911
Интересующийся

kz
Offline Offline

« Ответ #5 : 15-01-2014 08:39 » 

Kivalsизвините, обычный режим, платформа 8,3 , с запросом все нормально. просто на некторых форумах требуют запрос
у меня в отчете получается так http://radikal.ru/f/s017.radikal.ru/...26f18.png.html, вместо того чтоб показыать 6 дат диска он показывает за весь год. я взял тот же запрос но вывод сделал детальными записями вуаля показывает правильно как и в консоли запросов http://radikal.ru/f/s019.radikal.ru/...c8ea4.png.html. существуют еще другие отчеты(где показывает правильно ) http://radikal.ru/f/s020.radikal.ru/...5ced9.png.html  и регистр сведений откуда я и беру данные  http://radikal.ru/f/s017.radikal.ru/...26f18.png.html. так вот вопрос заключается в том почему если я пытаюсь вывести в одной строке данные прописав (тот что выше указал) в ресурсах то он выводит неправильно, а если детальными записями правильно.
Записан
reznik911
Интересующийся

kz
Offline Offline

« Ответ #6 : 15-01-2014 08:44 » 





« Последнее редактирование: 15-01-2014 08:53 от reznik911 » Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 15-01-2014 09:08 » 

reznik911, с таким описанием уже можно пытаться работать, но еще 2 замечания (это не придирки - эта инфа необходима):
1. Номер платформы укажи до 4 числа (последний релиз: 8.3.4.389, в предыдущих могли быть и ошибки)
2. У меня не открылся ни один скриншот на radikal.ru - поправь ссылки
Записан
reznik911
Интересующийся

kz
Offline Offline

« Ответ #8 : 15-01-2014 09:16 » 

Kivals, 8.3.3.658 . ок я все понимаю. пока новенький учусь правильно писать на форумах)) .
у меня в отчете получается так

вместо того чтоб показыать 6 дат диска он показывает за весь год. я взял тот же запрос но вывод сделал детальными записями вуаля показывает правильно как и в консолизапросов


существуют еще другие отчеты(где показывает правильно )


и регистр сведений откуда я и беру данные 

так вот вопрос заключается в том почему если я пытаюсь вывести в одной строке данные прописав (тот что выше указал) в ресурсах то он выводит неправильно, а если детальными записями правильно.
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 15-01-2014 11:29 » 

В описании последней версии платформы есть такое:
Цитата
Ошибки исправленные в 8.3.4.389
...
20021468  Компоновщик макета компоновки данных
Проблема:
Компоновщик макета компоновки данных в некоторых случаях неправильно заполняет выражения полей.
Дата публикации:
2013-12-25
Так что есть смысл попробоватиь на последней версии.

И все же я не понял - есть у тебя правильный результат свернутого отчета, выполненного в консоли?
Попробуй еще убрать условие из параметра (Поле ДатаДиска - Выражение СоединитьСтроки(Формат(ДатаДиска, "ДФ=MM.yy"),",") ) - что тогда покажет для первой строки (бесплатная)?
Записан
reznik911
Интересующийся

kz
Offline Offline

« Ответ #10 : 15-01-2014 11:43 » 

Kivals,  запрос который скинул вначале и есть правильный запрос. ну по крайне мере я так думаю потому что повторюсь в детальные записи выводит правильно как на скриншоте показал и в консоле запросов тоже верно. это означает что запрос верный так? я прав или этого недостатточно чтоб сказать запрос верный
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 15-01-2014 11:49 » 

reznik911, выборка детальных записей правильна - тут вопросов нет.
Но есть подозрение, что неверно составлено выражение и/или ошибка в обработке этого выражения.
Потому в консоли сделай детальный запрос вложенным и оберни его запросом с выражением "СоединитьСтроки(Формат(ДатаДиска, "ДФ=MM.yy"),",") как ДатаДиска" и группировкой
Записан
reznik911
Интересующийся

kz
Offline Offline

« Ответ #12 : 15-01-2014 11:58 » 

Kivals, если убрать условие из параметра (Поле ДатаДиска - Выражение СоединитьСтроки(Формат(ДатаДиска, "ДФ=MM.yy"),",") ) то тогда он не позволяет в отборах установить по контрагенту, но я думаю это не проблема может быть))).
Он теперь выводит также не правильно датудиска но и по тем строкам где КоличетсвоНеОтгруженных=0

Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 15-01-2014 13:10 » 

Похоже, твое выражение трактутеся так: "если сумма неотгруженных не ноль - то объединить все строки из выборки", а правильно было бы так "объединить все строки, где неотгружено не ноль"
Скорее всего выражение должно быть каким-то таким:
Код: (1C v8)
ДатаДиска:
СоединитьСтроки(Выбор
        Когда ЗначениеЗаполнено(КоличествоНеОтгруженных)
                Тогда Формат(ДатаДиска, "ДФ=MM.yy")
        Иначе "" Конец, ",")
Записан
reznik911
Интересующийся

kz
Offline Offline

« Ответ #14 : 15-01-2014 16:41 » 

Kivals, Урраа получилось вытащить но почему то выводит еще и зачения <ПустоеЗначение>. как это можно исправить и вообще изза чего он так выводит

Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 15-01-2014 20:47 » 

Попробуй другие варианты вместо "Иначе "" Конец":
Иначе NULL Конец
Иначе Неопределено Конец
...
Записан
reznik911
Интересующийся

kz
Offline Offline

« Ответ #16 : 16-01-2014 04:19 » 

Kivals, урра  :dance:null сработало. большое спасибо!!! а никто слушать не хотел,  Внимание! Говорит и показывает... в ведь это поможет многим решить проблему такого типа. потому что нигде нет толкового варианта (сам гуглил и на форумах искал) . браво !   Все правильно сделал! Пиво!
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 16-01-2014 08:55 » 

reznik911, и тебе спасибо: узнал новую агрегатную функцию СоединитьСтроки(). Видимо пришло время перечитать документацию... Ага
Записан
reznik911
Интересующийся

kz
Offline Offline

« Ответ #18 : 16-01-2014 09:24 » 

Kivalshttp://1cskd.ru/2011/07/novye-funkcii-skd-8-2-14/ новые функции )))
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines