Имя: Пароль:
1C
1С v8
Работа с запросом
,
0 Black Dragon
 
01.12.14
17:08
Всем доброго дня!

нужно в запросе(консоль запросов) преобразовать код номенклатуры из вида ПРЕФИКС+ЦИФР КОД => 00000000_T

ВЫБРАТЬ
    ОстаткиОбороты.Регистратор.Владелец.Ссылка КАК Ссылка,
    ОстаткиОбороты.Период КАК Период,
    ОстаткиОбороты.Регистратор.Владелец КАК ДокДвижения,
    ОстаткиОбороты.Номенклатура.Код КАК КодТовара,
    ОстаткиОбороты.ЕдиницаИзмерения КАК Единица,
    ОстаткиОбороты.КоличествоПриход КАК КоличествоПриход,
    ОстаткиОбороты.КоличествоРасход КАК КоличествоРасход
ПОМЕСТИТЬ ВТ_Документы
ИЗ
    РегистрНакопления.ОстаткиТоваров.Обороты(&НачДата, &КонДата, Регистратор, Номенклатура.Родитель = &ГруппаОтбора) КАК ОстаткиОбороты
ГДЕ
    ОстаткиОбороты.КоличествоОборот <> 0
1 Wobland
 
01.12.14
17:09
чо?
2 ДенисЧ
 
01.12.14
17:09
А зачем это делать в запросе?
3 rsv
 
01.12.14
17:10
(2) Удобнее ?
4 Wobland
 
01.12.14
17:12
(3) а ты о запросе подумал? удобнее ему..
5 rsv
 
01.12.14
17:12
(4) А что с ним ?
6 rsv
 
01.12.14
17:13
C запросом ...
7 Black Dragon
 
01.12.14
17:14
Т.е. как выполнить такой код в консоли:

КодТовара = СокрЛП(Номенклатура.Код);
ДлинаКода = СтрДлина(КодТовара);
КодТовара = Прав(КодТовара,ДлинаКода-2);

и т.д.

есть такой функционал???
8 pessok
 
01.12.14
17:14
если скд, то соединитьстроки, если надо для данных в обработке, то постобработкой
9 Wobland
 
01.12.14
17:15
(7) нет
10 pessok
 
01.12.14
17:16
(9) не, ну народ там через гланды как-то доставал, помнится. но это от лукавого
11 Black Dragon
 
01.12.14
17:17
ВЫРАЗИТЬ(КодТовара КАК Строка(10))

слева или справа отрезает?
12 pessok
 
01.12.14
17:18
(11) справа
13 Wobland
 
01.12.14
17:19
(11) подстроку уже видел?
14 pessok
 
01.12.14
17:24
(11) тебе для чего надо то? обработка, которая потом использует результаты запроса, али отчет?
15 Black Dragon
 
01.12.14
17:38
просто выборка данных для сверки с другой системой учета
16 Wobland
 
01.12.14
17:41
(15) внутри выборки и занимайся своей любовью с кодом
17 Black Dragon
 
01.12.14
17:43
не хотел писать обработку((
из консоли таб док в эксель и все, однако же не тут то было))
18 pessok
 
01.12.14
17:50
(17) возьми правильную консоль, которая умеет скд, сделай в скд через соединитьстроки
19 Wobland
 
01.12.14
17:54
(18) соединитьстроки в контексте задачи ничем не отличается от конкатенации прямо в запросе имхо
20 hhhh
 
01.12.14
17:54
(18) зачем соединять строки, ему наоборот, разъединять надо.
21 pessok
 
01.12.14
17:55
(20) ему сначала надо разъединить, а потом соединить в обратном порядке. разъединить можно через ПОДСТРОКА(), а вот соединить уже фиг
22 hhhh
 
01.12.14
17:59
(21) что такое 00000000_T ??
23 Black Dragon
 
01.12.14
18:01
(22) это формат кода на выходе, в 1С у нас префикс есть, его надо убрать, дополнить код слева нулями и справа _T чтобы общ длина была 10 симв
24 Black Dragon
 
01.12.14
18:03
уже делаю обработку, запрос отлажен, жаль что в запросе нельзя со строками поработать((
25 Wobland
 
01.12.14
18:04
(24) ты б ещё по 200 захотел прибавить к коду ;)
26 bolobol
 
01.12.14
18:47
(7) Поставить на форму кнопку, где выполнить для каждой строки результата Выполнить("<код>"). Код ввести через ВвестиСтроку, например.
27 hhhh
 
02.12.14
09:00
(23) а зачем в Екселе левые нули? ОН же их отбросит.
28 hhhh
 
02.12.14
09:02
(24) лучше сделать еще один реквизит в Номенклатуре, например, Артикул. Один раз пробежаться и его заполнить.