Имя: Пароль:
1C
 
Проверка номера и присвоение нового индекса.
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.