|
Проверка номера и присвоение нового индекса. | ☑ | ||
---|---|---|---|---|
0
Олеся999
10.05.17
✎
09:31
|
При загрузки объектов из БД источника в БД приемник, возникает проблемка, т.к номера после приведения становятся одинаковые.
В документах имеются номера типа: 20, 020 после приведения: ИсходнаяСтрока = СокрЛП(Источник.Номер); А = "00000000000" + ИсходнаяСтрока; НомерВых = Прав(А, 11); после приведения они будут выглядеть (одинаково)как : 00000000020,00000000020 Подскажите пожалуйста как сделать проверку и присвоение индекса: допустим если уже есть число 00000000020 тогда будет присваиваться индекс "б" и будет выглядеть так: 00000000б20 или "в" 00000000в20 и.т.д. |
|||
1
Морозов Александр
10.05.17
✎
09:35
|
Префиксы однако не для вас придумали....
|
|||
2
Олеся999
10.05.17
✎
09:39
|
(1) Не там уже есть префиксы , я просто не написала.
Вот так номер выглядит НН000000020, просто опустила эти подробности :) |
|||
3
Морозов Александр
10.05.17
✎
10:09
|
Ну так и зачем еще номер менять тогда? У каждой базы должен быть включен свой префикс, и тогда номера не будут совпадать.
|
|||
4
Олеся999
10.05.17
✎
10:14
|
Так я говорю про номера в пределах одной БД.
|
|||
5
Serg_1960
10.05.17
✎
10:25
|
Так Вам и говорят о присвоении различных(!) префиксов однотипных объектов в пределах одной базы.
|
|||
6
Serg_1960
10.05.17
✎
10:28
|
(если кто чего не понял :)
Например, документы, создаваемые в этой базе, имеют префикс "НН" (вероятно префикс организации?), а документы, полученные обменом, имеют другой префикс. |
|||
7
Олеся999
10.05.17
✎
10:32
|
Есть несколько БД источников где менять ничего не нужно.
событие перед выгрузкой : ИсходнаяСтрока = СокрЛП(Источник.Номер); Ном = "00000000000" + ИсходнаяСтрока; НомерВых = Прав(Ном, 11); ОБ = ПланыОбмена.Полный.ЭтотУзел(); ОБКОД = ОБ.Код; Значение = Строка(ОБКОД) + Сред(НомерВых,4); По сути добираю нулями и присваиваю префикс перед выгрузкой, а при этом событии нет возможности проверить на предмет однотипных объектов. Это скорее всего нужно делать при загрузке проверку и присвоение индекса, или я ошибаюсь ? |
|||
8
Serg_1960
10.05.17
✎
10:38
|
Всё нужное уже было сказано.
|
|||
9
mistеr
10.05.17
✎
10:49
|
(7) Префиксы придуманы именно для того, чтобы гарантировать уникальность. Чтобы не проверять ничего при загрузке.
|
|||
10
Олеся999
10.05.17
✎
10:54
|
Так я не поняла при каком событии их присваивать нужно
тогда при выгрузке? Мы же не можем проверять на уникальность, или как? |
|||
11
mistеr
10.05.17
✎
11:14
|
(10) Просто обеспечь, чтобы во всех базах были разные префиксы, и все.
|
|||
12
Serg_1960
10.05.17
✎
11:18
|
(10) Уникальные префиксы узлов плана обмена, как правило, устанавливаются заранее, при подготовке баз данных к началу обмена.
Проверять уникальность Вы можете при загрузке данных. Но делать это придётся самостоятельно программно так, как проверку уникальности номеров при обмене платформа не выполняет (проверки отключаются при использовании ОбменДанными.Загрузка = Истина). Азбука :( |
|||
13
Олеся999
10.05.17
✎
11:33
|
(11) так во всех базах и так разные префиксы!
|
|||
14
Масянька
10.05.17
✎
11:35
|
(13) Ну, и на фига (извините) зачем - "приводить" номера?
|
|||
15
Serg_1960
10.05.17
✎
11:41
|
(14) Вообще-то, с учетом уже сказанного автором, в (0) номера не приводятся, а калечатся таким алгоритмом :( И становится понятным почему автора интересовали номера типа "00000000Б20" или "00000000В20" :))
|
|||
16
Serg_1960
10.05.17
✎
11:50
|
Имхо, по существу вопроса: Добавление лидирующих нулей в номер документа - обрати внимание на мой пост 28.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |