Имя: Пароль:
1C
1C 7.7
v7: Штрих-код в накладной
,
0 mcwolf
 
14.07.14
20:50
Собственно решил сделать штрих-код в расходной штрих-коду присваивается номер накладной ну и дата то есть получается что-то вроде этого: "0-0000000214.07.14" но столкнулся с проблемой если стоит в настройках префикс то штрих код получается пример: "Гит0-0000214.07.14". Штрих код Code 128, собственно вопрос как отрезать этот префикс если он есть в одних документах он "Гит" а в других "Сф" и тд и тп...
1 ildary
 
14.07.14
21:03
Прав() СтрДлина() и Найти()?
2 vcv
 
14.07.14
21:15
Если для внутреннего использования, то, по моему, лучше внутренний идентификатор документа как штрихкод использовать.
3 mcwolf
 
14.07.14
21:30
(1) Я думаю что это все не подходит так как стрДлина() будет везде равно 18, Прав(), Лев() не подходит потому, что не известно сколько символов стоит слева 2 или 3 как это определить?
4 Pasha
 
14.07.14
21:31
Переделай буквы в цифры и всего делов
5 КонецЦикла
 
14.07.14
21:32
(2) +1
Если документы разных видов - в длинную строку бд
6 vcv
 
14.07.14
21:33
Можно перебрать символы с конца, когда встретится первая "не цифра", значит номер закончился и начался префикс. Но, может быть и не всё так просто. Вдруг у вас используются номера типа СФ000015/2 или Гит0001543А
7 mcwolf
 
14.07.14
21:37
Нет как раз таки вот так "Гит0-00002" или "Сф0-00003"
А как перебрать цифры с конца?
8 mcwolf
 
14.07.14
21:48
Ищу так:               ДокПрием=СоздатьОбъект("Документ");
                _ШК=Строка(Данные);
                Если ДокПрием.НайтиПоНомеру(_ШК, Прав(_ШК, 8), "РасходнаяНакладная")=1 тогда
                        ОткрытьФорму(ДокПрием.ТекущийДокумент());
                    Иначе
                        Сообщить("Документ с номером "+Лев(_ШК, 10)+" от "+ Прав(_ШК, 8)+" не найден!");
                    КонецЕсли;
9 vcv
 
14.07.14
21:52
(7)
ДлинаНомера = СтрДлина(НомерДок);
Для Номер = 0 По ДлинаНомера-1 Цикл
   ЦифраНомера = Сред(НомерДок,ДлинаНомера-Номер,1);
   ...
КонецЦикла;

Если в всегда-всегда номер выглядит именно так, можно просто искать "0".
Позиция = Найти(НомерДок,"0");
Префикс = Лев(НомерДок,Позиция-1);
НомерБезПрефикса = Сред(НомерДок,Позиция);

Но тут хорошо бы проверок всяческих. На всякий случай. Вдруг встретится номер типа СФ12345.
10 vcv
 
14.07.14
21:54
(8) Для подобного внутреннего использования однозначно делать штрихкод из идентификатора документа.
11 mcwolf
 
14.07.14
22:40
(10) а где найти идентификатор документа?
12 mcwolf
 
14.07.14
22:49
(9) Спасибо БОЛЬШУЩИЕ!!! Склоняю голову перед мастерством)
13 spectre1978
 
14.07.14
22:58
(11) ЗначениеВСтроку (Док), ЗначениеВСтрокуВнутр (Док) ?
14 КонецЦикла
 
14.07.14
23:52
(11) 1С++
Meta.ЗначениеВСтрокуБД(Док)
Ну или по старинке...
15 Злопчинский
 
15.07.14
02:01
(14) а чем ЗначениеВСтрокуБД отличается от ЗначениеВСтрокуВнутр ...?
16 Dolly_EV
 
15.07.14
04:52
А еще лучше использовать QR-код, и пихать в него хоть весь документ построчно.... Правда сканер нужен спициальный
17 vcv
 
15.07.14
08:07
(15) Чебуратор! Срочно отгони пьяных гостей от клавиатуры! :)
ЗначениеВСтроку(глПользователь) = {"Справочник","Пользователи","Вася"}
ЗначениеВСтрокуВнутр(глПользователь) = {"B","0","0","30","0","0","        14ЦБ "}
18 spectre1978
 
15.07.14
08:33
(17) Документ="{"O","0","0","1611","0","0"," 101713001"}"
По-моему, вполне прилично.
19 spectre1978
 
15.07.14
08:33
Это ЗначениеВСтрокуВнутр, если что
20 Ёпрст
 
15.07.14
09:23
(15) ознакомься

ЗначениеВСтрокуБД(<?>)
ValueToDBString(<?>)
Синтаксис:
ЗначениеВСтрокуБД(<Object>)
Назначение:
преобразует ссылочный тип данных 1С (Справочник, документ, перечисление) во внутренние представление системы, только внутренний ИД объекта. Возвращает строку - внутреннего представления в виде: [ID(6)][Sign(3)] = 9 символов.
Возвращаемое значение:
(Строка)
Параметры:
<Object> - объект неопределенного вида
21 spectre1978
 
15.07.14
09:39
(20) красиво...
22 big
 
15.07.14
12:41
Вот прям как дети! (с)  )))

http://kb.mista.ru/article.php?id=442
23 КонецЦикла
 
15.07.14
23:57
(15) Не нужно ничего выковыривать, получаешь строку вида "     1   "
24 Web00001
 
16.07.14
02:30
Мне одному непонятно? Проблема получить номер без префикса?
25 DrZombi
 
гуру
16.07.14
07:14
(3) Префикс, это всегда буковки.
Номер, это циферки.
...

Рекомендую привести нумерацию документов мнеяемый вид :)
26 DrZombi
 
гуру
16.07.14
07:15
(24) Он сетует, на то, что префик у них формируют АБЫ как, т.е. каждый сотрудник имеет собственно представление об префиксе.... Анархия :)
27 big
 
16.07.14
07:58
(25) Это верно на 146%? ))


(26) да и пофих не все эти префиксы. Это вообще не важно в этом вопросе.


похоже тут собрались одни писатели и ни одного читателя.