Имя: Пароль:
1C
1С v8
1с 8.3 Добавление строки к значению колонки в запросе
,
0 zhukovia
 
12.06.13
11:52
ВЫБРАТЬ
 БАРКОДЫ.Место КАК Место,
 1 КАК Количество
ПОМЕСТИТЬ ВР_БАРКОДЫ
ИЗ
 &Баркоды КАК БАРКОДЫ
Есть простенький запрос. &Баркоды это таблица значений с одной колонкой "Место" тип Число. Вопрос. Как в таблице ВР_БАРКОДЫ получить колонку "Место" заполненную по принципу "Место №"+БАРКОДЫ.Место тип Строка?
1 Wobland
 
12.06.13
11:53
потом получай
2 zhukovia
 
12.06.13
12:00
(1) Потом неинтересно. У меня формируется еще временная таблица с текстовым полем типа "Место №"+N и их потом нужно соединять вместе.
3 Wobland
 
12.06.13
12:01
(2) по такой строке хочешь соединить? каков смысл, когда и так есть этот самый №
4 Зойч
 
12.06.13
12:03
никак в запросах нет приведения типов
5 Wobland
 
12.06.13
12:08
6 zhukovia
 
12.06.13
12:17
(3)
ВЫБРАТЬ
 БАРКОДЫ.Место КАК Место,
 1 КАК Количество
ПОМЕСТИТЬ ВР_БАРКОДЫ
ИЗ
 &Баркоды КАК БАРКОДЫ
;
//////////////////////////
ВЫБРАТЬ
 МЕСТА.НомерМеста,
 0 КАК Количество
ПОМЕСТИТЬ ВР_МЕСТА
ИЗ
 &Места КАК МЕСТА
;
У меня 2 ТЗ в БАРКОДЫ одно поле Место тип Число, а в Места поле место с типом Строка Вида "Место №X". Мне нужно добавить в обе таблицы колонку Количество в 1 ТЗ заполнить 1 во 2 ТЗ заполнить 0. Потом соединить по колонке Место и свернуть с суммированием количества. Я это сделал без запросов но хотел все более красиво сделать.
Значит никак? Может можно из второй таблици подстроку "Место №" как то вырезать? Хотя потом опять в цикле перебирать, а это убивает всякий смысл запроса.
7 Wobland
 
12.06.13
12:18
(6) сделай во второй таблице поле про место типа число
8 zhukovia
 
12.06.13
12:21
(7) Командой Подстрока? А потом в цикле резултирующую таблицу все равно ведь перебирать придется? Я потом ее в реквизит формы выгружаю, а там надо чтоб строка была.
9 zladenuw
 
12.06.13
12:24
ех а в 8.3 уже есть это

чего они в 8.2 не добавили
1.2. Операции над строками

Конкатенация (Бинарный +)
Данная операция предназначена для конкатенации двух строк.

Номенклатура.Артикул + ": "+ Номенклатура.Наименование
10 zladenuw
 
12.06.13
12:27
может такой вариант проканает. но тогда данные будут через запятую

Строка(<Выражение>) - Если в качестве параметра передан массив, то функция возвращает строку, содержащую строковые представления всех элементов массива, разделенных символами “; ”. Если в качестве параметра передана таблица значений, то функция возвращает строку, содержащую строковые представления всех строк таблицы значений, причем представления ячеек каждой строки разделяются символами “; ”, а строки — смиволом перевода строки. Если у какого либо элемента строковое представление пустое, то вместо его представления выводится строка<Пустое значение>.
11 zhukovia
 
12.06.13
12:28
ВЫБРАТЬ
 "Место №"+БАРКОДЫ.Место КАК Место,
Я пробовал так, не работает.
12 Зойч
 
12.06.13
12:35
(5) это НЕ приведение типов
13 zhukovia
 
12.06.13
12:58
Значит никак? По моему очень простая и нужная возможность и жаль что ее нет в языке запросов.
14 Wobland
 
12.06.13
13:01
(13) зачем тебе "место №"? я так и не понял
15 zhukovia
 
12.06.13
13:07
(14) Потому что потом результат выгружается в форму, а там должно отображаться "Место №".
(6) У меня так и не выходит привести к типу Число. Как это сделать?
16 Wobland
 
12.06.13
13:13
(15) вот ближе к форме и делай. не запросное это дело - представлением рулить
17 zhukovia
 
12.06.13
13:23
(6) А все таки. Как привести к типу Число?
18 Wobland
 
12.06.13
13:24
(17) никак. преобразование типов не поддерживается
19 Рэйв
 
12.06.13
13:27
(15) Так в момент отображения и делай свое "Место №".
На кой именно в запросе то?
20 Wobland
 
12.06.13
13:28
(19) я уже полтора часа бьюсь ;)
21 Рэйв
 
12.06.13
13:30
(20)ТС -  упертый малый:-)
22 zhukovia
 
12.06.13
13:32
(19) Дак а как объединить таблицы то? Видимо туплю сильно, но никак не могу въехать.
23 zhukovia
 
12.06.13
13:34
(21) Я правильно понял, что только одинаковые таблицы можно объеденить и свернуть, а все преобразования либо до, либо после делать?
24 zhukovia
 
12.06.13
13:34
(23) До или после Запроса.
25 Wobland
 
12.06.13
13:39
кстати, какой вариант симпатичней?
http://screencast.com/t/BqEysjqU
26 Wobland
 
12.06.13
13:40
(22) для объединения число полей должно быть одинаковым. всё
27 zhukovia
 
12.06.13
13:44
28 vs7719
 
12.06.13
13:53
Попробуйте использовать выражение "Представление"
ВЫБРАТЬ
   ПРЕДСТАВЛЕНИЕ(Номенклатура.Код + "-" +Номенклатура.Наименование) КАК ВоКак
ИЗ
   Справочник.Номенклатура КАК Номенклатура
29 zhukovia
 
12.06.13
14:01
(28) Не выходит "-" кавычки мешают видимо.
30 vs7719
 
12.06.13
14:03
В тексте запроса нужно " заменить на ""
31 zhukovia
 
12.06.13
14:04
(28) Неверные параметры "+"
32 zhukovia
 
12.06.13
14:07
Сделаю тогда как обычно Выгрузить, Заполнить, Свернуть. БЕЗ Запросов. Тупо конечно что такого простого и никак не сделать. Я не думаю что только мне это могло понадобиться.
33 vs7719
 
12.06.13
14:09
Похоже, что у вас числовые параметры, тогда можно добавить конструкцию ВЫРАЗИТЬ(Место КАК СТРОКА)