|
Номер документа в динамическом списке | ☑ | ||
---|---|---|---|---|
0
dj_serega
27.11.13
✎
01:43
|
Есть динамический список
ВЫБРАТЬ
Значения в поле НомерНН имеют вид "[ПрефиксОрганизации]000002". Нужно что бы в результате колонка НомерНН заполнялась номером документа без префикса. Префикс получилось убрать через ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 13) КАК НомерНН .
Хотел через условное оформление, но не взлетело. Есть еще идеи как поизвращаться? |
|||
1
IamAlexy
27.11.13
✎
01:47
|
хранить номер без префикса как реквизит документа.
заполнять его при записи в модуле документа просто выводить в нужных местах этот реквизит |
|||
2
dj_serega
27.11.13
✎
01:51
|
(1) Спасибо.
Не хотелось так делать :) Но видиму по другому никак. А если найти решение, то можно будет в отчеты для конфигураций на полной поддержке вставлять =)))) |
|||
3
IamAlexy
27.11.13
✎
01:53
|
(2) ну используй уже подстроку
подстрока(ссылка.номер, 3,11) благо длина номера фиксирована |
|||
4
IamAlexy
27.11.13
✎
01:53
|
длина префикса опять же фиксирована и если у разных организаций разная то никто не мешает заколбасить в запрос "выбор" и там разные значения в подстроку поставлять по условиям этого выбора
|
|||
5
dj_serega
27.11.13
✎
02:00
|
(3) Не подходит так как:
Номер документа: РКМа00000000005 В запросе: ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 13) КАК НомерНН Результат: 00000000005 Я как раз от лидирующих нулей хочу избавиться. Условное оформление не работает, так как номер это строка. Есть еще идея над вложенным запросом подумать. (1) Не работает. Номер присваивается после события "ПерезЗаписью". ПередЗаписью (документ), ПередЗаписью (подписка), ПриУстановкеНомера (документ), ПриУстановкеНомера (подписка). Если выше не даст результат, попробую через ДополнительныеСвойства выкрутить. |
|||
6
IamAlexy
27.11.13
✎
02:08
|
(5) выборами нахренач проверки :)
|
|||
7
IamAlexy
27.11.13
✎
02:10
|
выбор когда подстрока(номер,5,9)="000000000" тогда
подстрока(Номер,13,1) Иначе выбор когда подстрока(номер,5,8)="00000000" тогда подстрока(Номер,12,2) Иначе выбор когда подстрока(номер,5,7)="0000000" тогда подстрока(Номер,11,3) Иначе конец конец конец ну и тд :) |
|||
8
dj_serega
27.11.13
✎
02:13
|
(7) =))))))
Если до такого дойдет, то смело можно на одном сайте публиковаться (где такой код собирают). |
|||
9
dj_serega
27.11.13
✎
02:17
|
Вложенный запрос провалился.
Как собственно и ДополнительныеСвойства. Видимо утро вечера мудренее. |
|||
10
IamAlexy
27.11.13
✎
02:20
|
(8) а чего смешного ?
у тебя есть четкое условие - метаданные не трогать. в запросах 1С хреново с преобразованиями типов, по этому зная что у тебя длина номера фиксированная запросто проблема решается подобыным пассажем.. |
|||
11
dj_serega
27.11.13
✎
02:26
|
(10) та я понял :) от тебя была улыбка, вот и я улыбнулся.
А другого решения я и не вижу. Кстати, это конфа 8.3.4. Может чё придумают в 8.3.5. |
|||
12
dj_serega
27.11.13
✎
02:28
|
(10) мне можно метаданные трогать, просто это приведет только к созданию РС где хранить ссылки на документ и адекватный номер. Запись в реквизит объекта не увенчалась успехом.
Имхо, лучше уже выбор когда когда когда. |
|||
13
IamAlexy
27.11.13
✎
02:30
|
// РКМа00000467835
ВЫБРАТЬ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 10) = "0000000000" ТОГДА ПОДСТРОКА(&Номер, 15, 1) ИНАЧЕ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 9) = "000000000" ТОГДА ПОДСТРОКА(&Номер, 14, 2) ИНАЧЕ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 8) = "00000000" ТОГДА ПОДСТРОКА(&Номер, 13, 3) ИНАЧЕ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 7) = "0000000" ТОГДА ПОДСТРОКА(&Номер, 12, 4) ИНАЧЕ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 6) = "000000" ТОГДА ПОДСТРОКА(&Номер, 11, 5) ИНАЧЕ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 5) = "00000" ТОГДА ПОДСТРОКА(&Номер, 10, 6) ИНАЧЕ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 4) = "0000" ТОГДА ПОДСТРОКА(&Номер, 9, 7) ИНАЧЕ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 3) = "000" ТОГДА ПОДСТРОКА(&Номер, 8, 8) ИНАЧЕ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 2) = "00" ТОГДА ПОДСТРОКА(&Номер, 7, 9) ИНАЧЕ ВЫБОР КОГДА ПОДСТРОКА(&Номер, 5, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 6, 10) ИНАЧЕ &Номер КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КАК Поле1 |
|||
14
IamAlexy
27.11.13
✎
02:31
|
возвращает 467835
:) |
|||
15
IamAlexy
27.11.13
✎
02:31
|
и не надо никаких регистров и прочей херни
просто запросец.. |
|||
16
IamAlexy
27.11.13
✎
02:32
|
функция :)
Функция ПолучРезЗапроса_Идентификатор() Запрос = Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 10) = "0000000000" | ТОГДА ПОДСТРОКА(&Номер, 15, 1) | ИНАЧЕ ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 9) = "000000000" | ТОГДА ПОДСТРОКА(&Номер, 14, 2) | ИНАЧЕ ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 8) = "00000000" | ТОГДА ПОДСТРОКА(&Номер, 13, 3) | ИНАЧЕ ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 7) = "0000000" | ТОГДА ПОДСТРОКА(&Номер, 12, 4) | ИНАЧЕ ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 6) = "000000" | ТОГДА ПОДСТРОКА(&Номер, 11, 5) | ИНАЧЕ ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 5) = "00000" | ТОГДА ПОДСТРОКА(&Номер, 10, 6) | ИНАЧЕ ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 4) = "0000" | ТОГДА ПОДСТРОКА(&Номер, 9, 7) | ИНАЧЕ ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 3) = "000" | ТОГДА ПОДСТРОКА(&Номер, 8, 8) | ИНАЧЕ ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 2) = "00" | ТОГДА ПОДСТРОКА(&Номер, 7, 9) | ИНАЧЕ ВЫБОР | КОГДА ПОДСТРОКА(&Номер, 5, 1) = "0" | ТОГДА ПОДСТРОКА(&Номер, 6, 10) | ИНАЧЕ &Номер | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ КАК Поле1"; //Параметры запроса Запрос.УстановитьПараметр("Номер","РКМа00000467835");//Строка Результат=Запрос.Выполнить(); Возврат Результат; КонецФункции |
|||
17
perec1982
27.11.13
✎
05:23
|
Временные таблицы
|
|||
18
dj_serega
27.11.13
✎
11:44
|
(17) Это динамический список.
|
|||
19
dj_serega
27.11.13
✎
11:45
|
(13) Спасибо :) Видимо, на текущий момент развития 1С, это можно сделать только так.
|
|||
20
FIXXXL
27.11.13
✎
11:51
|
(5) попробуй через ВЫРАЗИТЬ(<Выражение> КАК <Тип>)
сделать число, потом еще раз обернуть в ВЫРАЗИТЬ(<Выражение> КАК <Тип>) уже как строку |
|||
21
dj_serega
27.11.13
✎
11:57
|
(20) после ПОДСТРОКА ВЫРАЗИТЬ ругается на несовместимость типов ;(
Можно было попробовать сразу ВЫРАЗИТЬ но в номере префиксы (организации и месяца). |
|||
22
FIXXXL
27.11.13
✎
12:07
|
(21)да, не хотеть так работать :(
|
|||
23
dj_serega
29.11.13
✎
00:26
|
Может кому будет интересно. В запросе написал так:
ВЫБОР КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 12) = "000000000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 17, 1) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 11) = "00000000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 16, 2) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 10) = "0000000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 11, 3) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 9) = "000000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 4) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 8) = "00000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 4) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 7) = "0000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 4) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 6) = "000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 4) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 5) = "00000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 4) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 4) = "0000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 4) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 3) = "000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 4) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 2) = "00" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 4) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 1) = "0" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 4) ИНАЧЕ ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 18) КОНЕЦ КАК НомерНН, |
|||
24
dj_serega
29.11.13
✎
00:28
|
ой :)
Вот так:) ВЫБОР КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 12) = "000000000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 17, 1) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 11) = "00000000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 16, 2) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 10) = "0000000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 15, 3) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 9) = "000000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 14, 4) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 8) = "00000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 13, 5) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 7) = "0000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 12, 6) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 6) = "000000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 11, 7) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 5) = "00000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 10, 8) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 4) = "0000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 9, 9) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 3) = "000" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 8, 10) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 2) = "00" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 7, 11) КОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 1) = "0" ТОГДА ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 12) ИНАЧЕ ПОДСТРОКА(ЕСТЬNULL(НалоговаяНакладная.Номер, ""), 5, 13) КОНЕЦ КАК НомерНН |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |