Имя: Пароль:
1C
1С v8
Получить значение для таблицы в виде строки сложенных значений прямо в запросе
0 Novicadmin
 
18.06.13
09:32
ВЫБРАТЬ
           ТоварыВРозницеОстатки.Склад,
           ТоварыВРозницеОстатки.Номенклатура.НаименованиеПолное как Номенклатура,
           ТоварыВРозницеОстатки.Номенклатура как Товар,
           ТоварыВРозницеОстатки.Номенклатура.Код КАК Код,
           ТоварыВРозницеОстатки.Номенклатура.ЕдиницаХраненияОстатков КАК Единица,
           ТоварыВРозницеОстатки.Номенклатура.Родитель как Родитель,
           ТоварыВРозницеОстатки.Номенклатура.Родитель.Код как КодРодителя,
           ТоварыВРозницеОстатки.КоличествоОстаток,
           ТоварыВРозницеОстатки.СуммаПродажнаяОстаток,
           ТоварыВРозницеОстатки.Номенклатура.Весовой КАК Весовой,
           ЦеныАТТСрезПоследних.Цена,
           СкидкиНаГруппыТоваров.Значение,
           КодыВесовогоТовара.Код как КодВесовогоТовара,    
           ШтрихКодыТовара.ШтрихКод как ШтрихКод
       ИЗ
           РегистрСведений.ЦеныАТТ.СрезПоследних(&Дата, ) КАК ЦеныАТТСрезПоследних
               ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, ) КАК ТоварыВРозницеОстатки
               ПО ЦеныАТТСрезПоследних.Номенклатура = ТоварыВРозницеОстатки.Номенклатура
                   И ЦеныАТТСрезПоследних.Склад = ТоварыВРозницеОстатки.Склад
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СкидкиНаГруппыТоваров КАК СкидкиНаГруппыТоваров
               ПО СкидкиНаГруппыТоваров.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура
                   И СкидкиНаГруппыТоваров.Склад = &Склад
                   ИЛИ СкидкиНаГруппыТоваров.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель
                   И СкидкиНаГруппыТоваров.Склад = &Склад
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыВесовогоТовара КАК КодыВесовогоТовара
               ПО КодыВесовогоТовара.Номенклатура = ТоварыВРозницеОстатки.Номенклатура
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихКоды КАК ШтрихКодыТОвара
               ПО ШтрихКодыТовара.Владелец = ТоварыВРозницеОстатки.Номенклатура
       ГДЕ
           ТоварыВРозницеОстатки.Склад = &Склад
           и ТоварыВРозницеОстатки.КоличествоОстаток > 0

Если выполнить этот запрос то мы получим результат (при условии что у нас у товара несколько Штрих-Кодов):

Строка1 штрихкод1
Строка1 штрихкод2

Вопрос:

Возможно ли в запросе сделать так чтобы получить в результате значение поля ШтрихКод в виде:

Строка 1 ШтрихКод1 | ШтрихКод2

где строковое значение ШтрихКод1 | ШтрихКод2 - занимает одну ячейку.
1 Novicadmin
 
18.06.13
09:34
Возможно ли в запросе сделать так чтобы получить в результате значение поля ШтрихКод в виде:

ШтрихКод1 | ШтрихКод2
2 Deon
 
18.06.13
09:34
Да хрен ты та сделаешь. Обработать результат запроса в коде возможности нет?
3 el-gamberro
 
18.06.13
09:35
Если штрих кода всего 2 вида, то можно. Если требуется
ШтрихКод1 | ШтрихКод2...ШтрихКодN то такое невозможно
4 Novicadmin
 
18.06.13
09:36
этото код полностью работает, но выводит в 2 строки товар который имеет несколько штрих кодов
5 1Cv8_MaZaFaKa
 
18.06.13
09:36
Можно. Через ВЫБОР.

Подзапрос1: ШК1, NULL
Подзапрос2: NULL, ШК2
Запрос: ШК1, ШК2

...если я правильно понял.
6 el-gamberro
 
18.06.13
09:37
(5) Зачем? Можно таблицу саму с собой соеденить :)
7 el-gamberro
 
18.06.13
09:37
(4) а ты убери второй :)
8 Novicadmin
 
18.06.13
09:40
(7) Мне нужны все ШК которые имеет товар через разделитель "|"
9 Novicadmin
 
18.06.13
09:41
(5) а какой результат в итоге получается если использовать твой метод?
10 Deon
 
18.06.13
09:44
(8) А в каком контексте ты этот запрос используешь?
11 Novicadmin
 
18.06.13
09:48
(10) Извини, не совсем понял вопрос, что значит в каком контексте?
12 Novicadmin
 
18.06.13
09:50
наверное быстрее будет просто через функцию получить ШК, но это влияет на скорость перебора строк в выборке
13 Novicadmin
 
18.06.13
09:50
хотелось бы всё получить в одной таблице (
14 zak555
 
18.06.13
09:58
что такое ячейка в запросе ?
15 Novicadmin
 
18.06.13
10:04
(14) поле
16 fisher
 
18.06.13
10:08
(1) В СКД можно.
17 vicof
 
18.06.13
10:11
(16) я даже подозреваю как.
Задейсвовать общий модуль типа ОбщийМодульКакойТо.РазложитьСтрокувМассив(ВычислитьВыражениеСгруппировкойМассив(...)), не?
18 vicof
 
18.06.13
10:11
точней массив в строку
19 fisher
 
18.06.13
10:13
(17) Не. Через СоединитьСтроки() и ВычислитьВыражениеСГруппировкойМассив().
20 vicof
 
18.06.13
10:14
(19) Направление верное :)
21 fisher
 
18.06.13
10:15
Это родные функции СКД со всеми вытекающими. Никаких внешних функций.
22 Novicadmin
 
18.06.13
10:18
спасибо за советы, до СКД я еще не добрался )))
как следствие - надо изучать СКД
23 fisher
 
18.06.13
10:18
У мя последнее время косяками пошли заявки на такие хитрые KPI в отчетах, что только на все эти хитрые функции и молюсь. Иначе совсем через опу делать бы пришлось.
24 Novicadmin
 
18.06.13
10:35
(23) Если ты еще тут, загнал свой запрос в СКД, теперь надо что то сделать а что я не знаю )))
25 fisher
 
18.06.13
10:39
(24) С учетом (22) - скачиваешь видеокурс Гилева по работе с СКД и вдумчиво смотришь.
26 Novicadmin
 
18.06.13
10:54
))) ок, спс
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс