|
РАУЗ. Ключи Аналитики. РИБ. | ☑ | ||
---|---|---|---|---|
0
Maxus43
29.11.12
✎
09:59
|
Приветствую господа!
Как мы знаем - Ключи аналитики просто справочник. Информация о нём - в Соответствующих регистрах. Имеем РИБ, много узлов. Ситуация - в разных узлах в производство списывают Доски, первый раз в жизни базы. Ключа такого нет, он формируется новый. В обоих базах свой ключ, но одинаковый по сути. Идут обмены, в итоге запись в регистре есть только об ОДНОМ ключе, а в движениях РАУЗа 2 ключа Если ещё раз списать доски в узле - подхватит ключ о котором есть запись в регистре, т.е. второй ключ. Имеем в РАУЗ 2 записи одинаковые по смыслу (и визуально одинаковые), но с разными ключами. Если перед расчетом себестоимости провести все доки - всё выровняется, но это просто нереально на больших объёмах, причем собственно и одно из достоинств РАУЗа - не надо ничего перепроводить Обработка ТИИ ключей - не исправляет данную ситуацию. Кто думал о такой ситуации вобще? Как бороться по феншую чтоб? |
|||
1
Maxus43
29.11.12
✎
10:04
|
Найти такие записи в Учете затрат легко, но надо делать замену ссылок, ибо в РС нельзя запихнуть информацию о 2-х одинаковых ключах...
|
|||
2
Нуф-Нуф
29.11.12
✎
10:06
|
сделать дополнительный оперативный обмен ключами
|
|||
3
Maxus43
29.11.12
✎
10:07
|
(2) да, риск снизится, но таки возможна эта ситуация, если реально в одно время будут проводить. Предполагаем сделать 5-ти минутный обмен ключами и РС. Хочется 100% гарантии
|
|||
4
shuhard
29.11.12
✎
10:09
|
(0) а РСВ делают параллельно во всех базах ?
|
|||
5
Serg_1960
29.11.12
✎
10:09
|
В типовых, для ключей, есть собственное ТИИ :)
|
|||
6
Cube
29.11.12
✎
10:10
|
Тестирование и исправление ключей аналитики тебе поможет.
|
|||
7
Maxus43
29.11.12
✎
10:11
|
(5) писал в (0), ТИИ ключей не исправляет данную "коллизию"
(4) сейчас - нет, идёт обкатка на 3-4 узлах, закрывают прошлые периоды |
|||
8
Maxus43
29.11.12
✎
10:11
|
(6) нет, смотрел что она делает то?
|
|||
9
Maxus43
29.11.12
✎
10:11
|
(7) + но уже столкнулись
|
|||
10
shuhard
29.11.12
✎
10:12
|
(7) ещё раз:
определись с главным - где будет РСВ |
|||
11
Maxus43
29.11.12
✎
10:12
|
ТИИ ключей:
1. удаляет лишние (нет движений по этим ключам) 2. правит наименование ключей 3. удаляет и заменяет битые ссылки в движения РАУЗ |
|||
12
Serg_1960
29.11.12
✎
10:13
|
(6) Нет, не поможет. Не всегда. Но туда, в отличие от ТиИ - можно внести изменения.
(8) Проверяет корректность, ищет и удаляет дубликаты, удаляет неактуальныеключи. |
|||
13
Maxus43
29.11.12
✎
10:13
|
(10) РСВ будет в каждом узле запускатся, узлов много, всё делать в центральной - не вариант. 15 узлов
|
|||
14
Bober
29.11.12
✎
10:14
|
(0) решение только одно. Формировать гуид ключа по md5. Тогда всега будет один ключ на всех узлах.
|
|||
15
Cube
29.11.12
✎
10:15
|
(7) А, я не внимательно прочитал. Показалось, что у тебя в регистре записи по одному ключу, но при списании товара, товар вешается на второй "пустой" ключ, который потом опять освободится...
|
|||
16
Maxus43
29.11.12
✎
10:15
|
(14) хм, оригинальный вариант
|
|||
17
Bober
29.11.12
✎
10:15
|
(14) после этого можно будет отказаться от рс
|
|||
18
Maxus43
29.11.12
✎
10:16
|
(17) как отказатся? инфа о ключах в РС, это не КА, где в справочнике реквизиты есть
|
|||
19
Serg_1960
29.11.12
✎
10:16
|
(13) Так не стоит делать. Себестоимость нужно считать в одном месте - это вопрос не политический или экономический - это чисто технический.
У меня случай, имхо, хуже: себестоимость по УУ - в одном узле, по БУ - в другом. |
|||
20
Cube
29.11.12
✎
10:17
|
(11) Ну допиши обработку, добавь в функционал удаление дублей с заменой ссылок...
|
|||
21
Bober
29.11.12
✎
10:17
|
В ключе есть реквизиты со значениями . Рс для уникальности
|
|||
22
shuhard
29.11.12
✎
10:18
|
(13)[РСВ будет в каждом узле запускатся]
у тебя 15 юрлиц или ты не понимаешь, что РСВ при РАУЗ делает половину проводок НУ ? |
|||
23
Bober
29.11.12
✎
10:19
|
(19) ладно сст, а когда движения по продажам идут с ключами
|
|||
24
Serg_1960
29.11.12
✎
10:19
|
Bober, без обид, ты не прав. Тебя юзверы повесят за одно место, когда увидят отчеты в РАУЗе с твоими гуидами.
|
|||
25
Maxus43
29.11.12
✎
10:20
|
(20) вот собсно и сделал ветку чтоб решить что лучше. вариант (2) рассматривается, и твой в данный момент
(21) в УПП нет реквизитов (19) да боюсь нереально, 15 РСВ делать в центре (причем же править как обычно надо, с первого раза расчитывается правильно только в сказках (22) Холдинг, 15 Организаций именно, потом всё консолидируется (ну Центр узел можно считать уже консолидированой базой) |
|||
26
Maxus43
29.11.12
✎
10:21
|
Да, узлы независимы в учете, разные организации. Справочники едины для всего холдинга
|
|||
27
Cube
29.11.12
✎
10:22
|
(25) Погоди, так а чем тебе задвоенные ключи жить помешали-то?
|
|||
28
Maxus43
29.11.12
✎
10:23
|
(27) мешают жить в случае:
>>Если ещё раз списать доски в узле - подхватит ключ о котором есть запись в регистре, т.е. второй ключ. Имеем в РАУЗ 2 записи одинаковые по смыслу (и визуально одинаковые), но с разными ключами визуально всё норм, а ключи разные в одном узле |
|||
29
Maxus43
29.11.12
✎
10:24
|
+ на один из этих ключей нет записей в РС
|
|||
30
shuhard
29.11.12
✎
10:26
|
(25)[15 Организаций именно,]
а нафига тогда вести учет в одной базе, а не в 15 ? |
|||
31
Мимохожий Однако
29.11.12
✎
10:28
|
(30)+1
|
|||
32
Serg_1960
29.11.12
✎
10:33
|
(30) Прикалываешься или действительно так считаешь/не понимаешь?
|
|||
33
Maxus43
29.11.12
✎
10:34
|
(30) учет в разных.
РИБ сделана для: Общие справочники (номенклатура, контрагенты, договора и т.д.) Вся инфа с организаций сливается в одну базу Центральную (считай сразу консолидация на будущее) Внутренние взаиморасчеты всякие хитрые и т.д. |
|||
34
Maxus43
29.11.12
✎
10:36
|
(27) может непонятно объяснил, давай проще - Документ должен при перепроведении делать такие же движения что и раньше, в данном случае старый док сделает другие движения (с другим ключем).
Учет затрат - остаточный, разные ключи разрывают остатки |
|||
35
Maxus43
29.11.12
✎
10:38
|
Сам вроде склоняюсь к мнению что легче дописать ТИИ ключей, замену ссылок сделать опираясь на РС ключей. Но ученые коллеги внедренцы хотят спец обмен быстрый + потом туже замену ссылок ключей, но как то через опу
|
|||
36
Cube
29.11.12
✎
10:38
|
(34) Да всё понятно) В любом случае, как бы ты оперативно не обменивался ключами, будут задвоенные. Поэтому в любом случае нужно будет удалять задвоенные с переносом ссылок...
|
|||
37
Maxus43
29.11.12
✎
10:41
|
(36) такая хрень возникает только если в промежутках между обмена создаются новые ключи, и информация из РС не дошла ещё до узла где формируют новый. Не так часто это на самом деле, но таки есть
|
|||
38
Bober
29.11.12
✎
10:42
|
(25) (35) если пойдут доработки, то проще сделать как это сделали в УТ 11. у ключей реквизиты-аналитики + регистр сведений (борются с контролем уникальности, так как накладывать блокировки на спр по реквизитам нельзя).
итого: потребуется переделать запросы, которые тягают данные из РС, но это мелочи. |
|||
39
Serg_1960
29.11.12
✎
10:42
|
У меня риб-база (и те-же проблемы с ключами). Но: автор не совсем правильно "акценты" ставит. "Дубликаты" возникают не от того что РСВ по разным узлам делается, а потому, что любое движение по новой номенклатуре генерирует ключи "на лету" в момент проведения документа.
|
|||
40
Maxus43
29.11.12
✎
10:43
|
(39) я вроде на РСВ акцент не ставил вобще) в сабже токмо про документы, и как они формируют ключи)
|
|||
41
Maxus43
29.11.12
✎
10:43
|
(39) как борешся кстати?
|
|||
42
Cube
29.11.12
✎
10:43
|
(35) А как часто сейчас обмен идет?
|
|||
43
Нуф-Нуф
29.11.12
✎
10:44
|
1. оперобмен в 2-3 минуты
2. обработка исправления |
|||
44
Serg_1960
29.11.12
✎
10:44
|
И в методике устранения дубликатов несколько иная механика.
|
|||
45
Нуф-Нуф
29.11.12
✎
10:44
|
3. и письмо в 1с, пусть думают
|
|||
46
Maxus43
29.11.12
✎
10:45
|
>>потребуется переделать запросы, которые тягают данные из РС, но это мелочи
хм, при той же РСВ - запросы и к РС, а там переписывать нихрена не мелочи (42) 4 часа, полный цикл Узел1 - Центр - Узел2 получается 8 часов |
|||
47
Maxus43
29.11.12
✎
10:46
|
(45) проблема не нова, не думаю что будут что-то делать. или скажут что в УПП 1.3 всё реализовано
(44) какая? где она? |
|||
48
Cube
29.11.12
✎
10:48
|
(46) Ну, терпимо. Я думаю, спец. обмен делать, пока, не надо - т.к. новая номенклатура летает только с текущими обменами и всех устраивает ведь... Значит и ключи не будут так сильно дублироваться, мне так кажется. Пока сделай удаление дублей в регламентном задании, ну а если функционала не хватит, то спец. обмен замутишь.
|
|||
49
Bober
29.11.12
✎
10:48
|
(38) из-за того, что в платформе не был встроенный метод получения md5, 1с не распространила ключи аналитики на все регистры учета, а ограничила только только упр регистрами, мол считать такие вещи нужно только в центральном узле.
После выхода 8.3 в типовых переделают на этот подход и мы еще увидим эти ключи аналитики во всех регистрах учета -) PS когда переделаешь с рс на реквищиты, в отчетах заработает такая конструкция: .Обороты(, {КлючАналтики.Номенклатура.* КАК Номенклатура}) |
|||
50
Maxus43
29.11.12
✎
10:51
|
(48) беда в том что номенклатурина летает каждые 5 минут специализированными средвами. аля общий репозитарий НСИ.
Заставлять юзеров ждать добавления в номенклатуру Гвоздя 4 часа - порвали бы на месте всех |
|||
51
Serg_1960
29.11.12
✎
10:51
|
Возникновение дубликатов ключей в риб-базах - не столь глобальная проблема, чтобы курочить внутренний механизм РАУЗа :(
|
|||
52
Maxus43
29.11.12
✎
10:52
|
(51) угу, вот и думаем как малой кровью
|
|||
53
Bober
29.11.12
✎
10:53
|
(51) да, что там курочить, пройтись и изменить в запросах с левого соединения с РС на получение аналитики через точку. Тут даже не нужно знать как работает рауз, простая техническая работа.
|
|||
54
Bober
29.11.12
✎
10:54
|
(52) плотной работы на три дня.
|
|||
55
Bober
29.11.12
✎
10:54
|
(51) не столь глобальная особенно когда регистр "не закрывается".
|
|||
56
Cube
29.11.12
✎
10:55
|
(50) Ну, раз так, то теми же специализированными средствами гоняй ключи туды-сюды))
|
|||
57
Serg_1960
29.11.12
✎
10:56
|
Предлогаю проверить алгоритм устранения дубликатов:
- находишь дубликаты ключей; - через поиск ссылок, получаешь список документов; - перепроводишь документы, что породили дубликаты; - удаление "осободившегося" ключа. |
|||
58
Нуф-Нуф
29.11.12
✎
10:57
|
(53) на получение аналитики через точку? имхо самый верный способ положить базу
|
|||
59
Bober
29.11.12
✎
10:58
|
(50) в свое время делал спец обмены (называли из быстрые обмены). Все тоже самое, но в течении дня идет обмен только сверху вниз и только необходимой информацией (цены, карточки товара)
|
|||
60
Bober
29.11.12
✎
10:58
|
(58) утром упал?
|
|||
61
Cube
29.11.12
✎
10:58
|
(57) Ф топку перепроводить весь документ! Надо просто сделать замену ссылок, имхо.
|
|||
62
Bober
29.11.12
✎
11:01
|
(58) прости, отвлек от утренней молитвы 1сника "никаких точек в запросах". Продолжайте, не будут отвлекать
|
|||
63
Feanorko
29.11.12
✎
11:05
|
(62) Оо уж0с, я так всегда делаю, это всё типовые виноваты!
|
|||
64
Maxus43
29.11.12
✎
11:13
|
Ну как понял таки проблема есть не у меня одного, 1с её не контролирует в типовых, выкручиватся самим
|
|||
65
Bober
29.11.12
✎
11:18
|
(64) так точно. Причем сценарий с заменой ключей по поиску еще более адовый
|
|||
66
Bober
29.11.12
✎
11:22
|
(65) ведь, то что ключ в рс не говорит о том, что это истина, возможно оригинальный, который во многих движениях полсто вылетел из рс. Поэтому нужно еще будет получить количество движений по каждому ключу-дубликату.
(64) кстати, ты говорил, что спр ключей нет реквизитов аналитики, тогда как понять какая аналитика у ключа, если он вылетел из рс при обмене? |
|||
67
Maxus43
29.11.12
✎
11:25
|
(66) никак, по наименованию только...
т.е. таки надо будет перепроводить доки, в которых ключ не имеет записей в РС. Он подхватит правильный ключ, а этот удалять. Ну или провести в транзакции - взять ключ, отменить транзакцию. Узнаем нужный ключ, заменим все неправильные на нужный |
|||
68
Serg_1960
29.11.12
✎
11:31
|
Сорри, отвлекли работой :)
"Надо просто сделать замену ссылок, имхо." - документы, увы надо перепровести. Можно только по одному регистру (что я и делаю). Там не только ключ при этом меняется - но и суммы плывут (другой ключ = другая аналитика). |
|||
69
Bober
29.11.12
✎
11:33
|
(67) треш, у тебя какая упп?
|
|||
70
Maxus43
29.11.12
✎
11:34
|
(69) 1.2.27
З.ы. переходить на 1.3 не советовать) |
|||
71
Serg_1960
29.11.12
✎
11:36
|
1.2 или 1.3 - без разницы. Риб-база - это первично.
|
|||
72
shuhard
29.11.12
✎
11:43
|
(33)[учет в разных.
РИБ сделана для: Общие справочники (номенклатура, контрагенты, договора и т.д.) Вся инфа с организаций сливается в одну базу Центральную (считай сразу консолидация на будущее) Внутренние взаиморасчеты всякие хитрые и т.д.] если РСВ делается в периферийных базах, то пофиг дубли аналитик отчетность по Рг РАУЗ в разрезе номенклатуры то будет верной |
|||
73
Maxus43
29.11.12
✎
11:53
|
(72) проблема в (68) получается больше, может в рауз сумму неправильную кинуть, списание по средней, остатки в раузе будут не соответсвовать ключу... нет?
Однотипные документы будут делать разные движения, хотя визуально одинаковые |
|||
74
shuhard
29.11.12
✎
11:56
|
(73) у тебя аналитическая база, в ней нельзя перепроводить документы, а движения передаются из узлов - я правильно понял ?
если это так, то какая разница сколько записей в справочнике аналитика учета затрат, ты же отчеты по РАУЗ для конечных пользователей строишь в разрезе номенклатуры ? |
|||
75
shuhard
29.11.12
✎
11:57
|
(74) +1
иными словами для консолидации уровень аналитик учета РАУЗ не нужен |
|||
76
Maxus43
29.11.12
✎
11:59
|
(74) давай пример напишу.
проводим док1 01.01.2012, списываем в производство Доску. Ключ встаёт новый созданный в этом узле. в другом узле сделали аналогичную операцию, тоже новый ключ. после обменов ключа 2, а запись в РС одна. Проводим док2, 02.01.2012, аналогичная операция. Но ключ он подтянет который в РС, а это не тот, по которому сделал движение док1. остатки в рауз будут какими? их порвёт разной аналитикой |
|||
77
neckto
29.11.12
✎
12:00
|
(74) В регистрах Аналитик будет одна запись по комбинациям измерений, в справочнике Ключи аналитики будет несколько записей, соответствующих этой комбинации - не взлетит.
Я непонимаю, зачем 15 заводов сливать в одну базу? Если нужна консолидация данных - есть специализированные продукты, нпрм 1С:Консолидация. Нужна общая НСИ, сделай базу (Портал) для только для учета НСИ и реплицируй как угодно часто с локальными базами. |
|||
78
Maxus43
29.11.12
✎
12:03
|
(77) это сделано давно и не мной, изначально была заложена идея централизации. Есть бизнес процессы которые гуляют между узлами, много причин, я же борюсь с последствиями. Такая структура тоже имеет право на жизнь, не меньше чем 15 отдельных баз + консолидация, просто тут подводный камень типа этого обнаружился
|
|||
79
shuhard
29.11.12
✎
12:04
|
(76)
(77) значит я не прав лет 5 с РИБ не работал |
|||
80
Serg_1960
29.11.12
✎
12:07
|
shuhard, проблема в том что при повторном проведении документа ключи аналитики могут "самопроизвольно" измениться. Ладно если только суммы плывут, но аналитики... Дубли аналитик --> в отчетах - каша --> юзверы в непонятках = вопросов больше, чем ответов :(
|
|||
81
Bober
29.11.12
✎
12:09
|
(78) решение ты уже знаешь, осталось только решиться это сделать.
|
|||
82
Maxus43
29.11.12
✎
12:09
|
(81) решений много, надо выбрать)
|
|||
83
Bober
29.11.12
✎
12:10
|
(82) оно одно, все остальное полумеры
|
|||
84
Maxus43
29.11.12
✎
12:11
|
(83) уволится?)
|
|||
85
shuhard
29.11.12
✎
12:12
|
(80) верю (с)
и решение ТС-у надо искать архитектурное возможно не передавать Рг РАУЗ в центр совсем и узнать это можно только из целей консолидации |
|||
86
neckto
29.11.12
✎
12:13
|
На существующих типовых объектах УПП вряд ли что-то получится. Как вариант: отключить обмен справочниками Ключи аналитик и регистрами Аналитики учета. В переферии перед обменом изменившиеся Ключи аналитики сливать в дубль-справочник, значения регистров Аналитик в дубль-регистры. Закачиваем дубль-справочники и дубль-регистры в центр, после отого запускаем постобработку по соединению справочников и регистров в типовые справочники Ключи аналитик и типовые регистры Аналитик учета.
|
|||
87
Maxus43
29.11.12
✎
12:14
|
(85) в систему заложен постулат что не должно быть разницы между узлами и данными в центре, т.е. проведение дока в центре должно благополучно отразится и на узле, поведение системы должно быть одинаково в рамках всех узлов РИБа
|
|||
88
Bober
29.11.12
✎
12:14
|
(84) это полумера. передай получение ключа на md5 и все. можно даже оставить эти грабли с РС. Главное, чтобы гиуд ключа (ссылка на объект) в любой точке была одинаковой.
|
|||
89
Bober
29.11.12
✎
12:15
|
(88) передай -> переделай
|
|||
90
Maxus43
29.11.12
✎
12:15
|
(88) да, интересная идея, буду брать в расчет
|
|||
91
neckto
29.11.12
✎
12:16
|
>>проведение дока в центре должно благополучно отразится и на >>узле
писец |
|||
92
Bober
29.11.12
✎
12:16
|
(88) а одинаковой она может быть толко с хеш-функцией и все.
|
|||
93
Maxus43
29.11.12
✎
12:17
|
(91) почему?
|
|||
94
Bober
29.11.12
✎
12:18
|
(90) при этом ты даже не нужно делать какие-то быстрые обены этими ключами. Ну нету в узле этого ключа, так он сделает его с аналогичным гуидом и при обменах все пройдет гладко.
Даже если сотня узлов одновременно сделает этот ключ, он все равно будет одинаковый. |
|||
95
neckto
29.11.12
✎
12:19
|
Как будешь отрабатывать ситуацию по одновременному проведению дока по одинаковым аналитикам в центре и на переферии?
|
|||
96
Bober
29.11.12
✎
12:20
|
(70) к сожалению не нашел в закромах такой старый релиз. Но по описанию уже и так понял как это сделано в этой редакции.
|
|||
97
Serg_1960
29.11.12
✎
12:20
|
(про себя, молча) А ведь истиную проблему возникновения дублирования ключей так и не озвучили. Если убрать все наслоения - то имеем классическое "Хаос невозможно автоматизировать"(с) Решение - административное.
|
|||
98
Maxus43
29.11.12
✎
12:21
|
(95) РИБ делаёт это за нас, т.е. вариант центра при обмене будет истинный.
Это не значит что в центре сидим проводим за всех, просто есть такая возможность |
|||
99
Maxus43
29.11.12
✎
12:21
|
(94) да, я оценил уже подход
|
|||
100
Cube
29.11.12
✎
12:21
|
100
|
|||
101
Bober
29.11.12
✎
12:21
|
(97) решение на уровне платформы а не административное.
Так как дубли ключей могут появиться, если одновременно провести два документа с отсутствующими ключами с системе. |
|||
102
Bober
29.11.12
✎
12:22
|
(99) теперь когда ты оценил, ты понимаешь что все остальное это просто полумера.
|
|||
103
Maxus43
29.11.12
✎
12:22
|
(97) какое именно? на примере (76) не вижу административного решения...
|
|||
104
Bober
29.11.12
✎
12:23
|
(103) добавлю, что на больших базах специально выносят упр. расчеты на отдельный узелю
|
|||
105
Maxus43
29.11.12
✎
12:23
|
(102) две полумеры ведут к гарантии, т.е. 1.быстрые обмены + 2. замена ссылок. Но делать конечно геморней
|
|||
106
Bober
29.11.12
✎
12:24
|
(105) оцени доработки двух костей и их последующее администрирование.
|
|||
107
Bober
29.11.12
✎
12:24
|
(105) особенно в части замени. так как после замены потребуется перерасчет.
|
|||
108
Базис
naïve
29.11.12
✎
12:46
|
В любом случае перепроведение открытого периода перед РСВ мне кажется полезным.
|
|||
109
Maxus43
29.11.12
✎
15:38
|
(106) хм, MD5 получается сразу подходит для генерации ссылки по гуиду?
|
|||
110
Maxus43
29.11.12
✎
16:25
|
Если юзать идею по генерации гуида для новых элементов - есть риск напороться на то, что элемент с таким гуидом уже есть в базе, и селяви. Пока не придумал как обойти можно
|
|||
111
Bober
29.11.12
✎
17:37
|
(110) уже проверил?
|
|||
112
Maxus43
29.11.12
✎
17:38
|
(111) нет, пока умозаключения, ибо мы делаем свой порядок генерации ссылки. Кто гарантирует что такой уже нет? МД5 как раз подходит для гуида, 32 символа в виде 16-чном.
|
|||
113
Maxus43
29.11.12
✎
17:39
|
(112) тьфу, т.е. не подходит немного)
|
|||
114
Bober
29.11.12
✎
17:59
|
(113) и что не подходит?
|
|||
115
Maxus43
30.11.12
✎
11:30
|
||||
116
Maxus43
30.11.12
✎
11:32
|
ответ 1с:
Мы рассматривали такую идею в самом начале, но нам не удалось найти приемлемого решения. Преобразование гуидов по математическим формулам не может дать 100% гуид. |
|||
117
Maxus43
30.11.12
✎
11:34
|
(116) у кого доступа нет - ответ был на вопрос:
а не хотите-ли вы генерировать гуид ключа на основании значений ключа например: гуид партнера + гиуд организации + гуид контрагента - md5 = гуид ключа. тогда можно будет и в РИБе это использовать. (с) |
|||
118
Maxus43
30.11.12
✎
11:35
|
правда я сам не понял пока почему мы не получим 100% гуид.
|
|||
119
Maxus43
30.11.12
✎
11:44
|
хотя может и понял...
Если у двух строк хеш-коды разные, строки гарантированно различаются, если одинаковые — строки, вероятно, совпадают. (с) вики т.е. одинаковый |
|||
120
Maxus43
30.11.12
✎
11:45
|
(119) + одинаковый хэш-код возможен у разных входных данных
|
|||
121
Maxus43
30.11.12
✎
12:01
|
а вот и Bober пришёл)
на партнёрке тоже обсуждали, йс отказалась от идеи короче, хоть и красиво, но не 100% |
|||
122
Bober
30.11.12
✎
12:02
|
(121) не знаю, почему отказались, делал. работает.
|
|||
123
Maxus43
30.11.12
✎
12:03
|
(122) работать будет, но нет гарантии просто. Теоретически возможна бяка, когда один гуид сгенерится на разные данные
|
|||
124
Bober
30.11.12
✎
12:03
|
(120) да, такое возможно, но вероятность маленькая. Еще как вариант написать свою хеш-фукнцию и спасть спокойно.
|
|||
125
Maxus43
30.11.12
✎
12:04
|
а 1с ничего не делает, если нет 100% уверенности, допущений не допускают, и делают по своему через опу
|
|||
126
Bober
30.11.12
✎
12:04
|
(123) зато сейчас гарантий полно -)
|
|||
127
Bober
30.11.12
✎
12:04
|
(125) делает, поэтому мы и обсуждаем как это переделать.
|
|||
128
Maxus43
30.11.12
✎
12:04
|
(126) ну разгребать овно в РИБе они разрешают самим...
|
|||
129
Bober
30.11.12
✎
12:06
|
(128) дубль ключа возможен и в одной базе при параллельном вводе данных, только вероятность этого намного меньше (если только не накладывать исключительную блокировку перед создание нового ключа).
|
|||
130
Maxus43
30.11.12
✎
12:11
|
(129) короче великие наши внедренцы последовали совету 1с так не делать. будем мучатся с комплексом затычек: быстрые обмены, замена ссылок, перепроведение
|
|||
131
Bober
30.11.12
✎
12:12
|
вот как делал MD5(НРЕГ(СтрЗаменить(XMLСтрока(Ключ.знч1) + XMLСтрока(Ключ.знч2) + XMLСтрока(Ключ.знч3)), "-", "")). Далее все это в ссылку. Полет нормальный.
PS - Если значение ключа составной тип, то обязательно добавлять гуид тип объекта и следить за тем, чтобы значение было заполнено. - если значение ключа пустое, то все рано передавать гуид (00000000-0000-0000-000000000000). - если количество аналитики меняется, то потребуется все переделывать. |
|||
132
Maxus43
30.11.12
✎
12:14
|
(131) можешь поделится функцией MD5? для себя
|
|||
133
Bober
30.11.12
✎
12:16
|
||||
134
Maxus43
30.11.12
✎
12:19
|
(133) это видел) я имею ввиду использовал читсый алгоритм этот, без дополнительных доработок?
|
|||
135
Bober
30.11.12
✎
12:20
|
с генерацией ключа?
|
|||
136
Maxus43
30.11.12
✎
12:20
|
(135) для генерации гуида
|
|||
137
Maxus43
30.11.12
✎
12:25
|
(136) + тупой вопрос, дефисы вставить только)
|
|||
138
Bober
30.11.12
✎
12:30
|
(137) нужно подождать, сейчас пример сделаю.
|
|||
139
Bober
30.11.12
✎
12:55
|
(137) тебе всю мини конфу или только кусок кода?
|
|||
140
Bober
30.11.12
✎
12:55
|
(137) накатал пример
ТекстДляКлюча = НРег(СтрЗаменить(XMLСтрока(Объект.Номенклатура) + XMLСтрока(Объект.Характеристика) + XMLСтрока(Объект.Склад), "-", "")); ХешТекста = ОбработкаОбъект.MD5(ТекстДляКлюча); ГуидТекст = Сред(ХешТекста, 1, 8) + "-" + Сред(ХешТекста, 9, 4) + "-" + Сред(ХешТекста, 13, 4) + "-" + Сред(ХешТекста, 17, 4) + "-" + Сред(ХешТекста, 21, 12); Объект.КлючАналитики = XMLЗначение(Тип("СправочникСсылка.КлючАналитики"), ГуидТекст); //идет в транзакции для блокировки спр НачатьТранзакцию(); ЗаблокироватьСправочникПоСсылке(Объект.КлючАналитики); Если Не КлючСоздан(Объект.КлючАналитики) Тогда СоздатьКлючАналитики(Объект.КлючАналитики, Объект.Номенклатура, Объект.Характеристика, Объект.Склад); КонецЕсли; ЗафиксироватьТранзакцию(); |
|||
141
Maxus43
30.11.12
✎
12:57
|
(140) мини конфу на мыло можно, если не трудно)
впринципе понятно конечно |
|||
142
Serg_1960
30.11.12
✎
13:55
|
Я не тупой или упрямый, я - упорный :)
Пример ситуаций, плиз, порождающих дублирование ключей. С учетом, что узлы - различные организации, различные подразделения и каждый со своим складом. |
|||
143
Maxus43
30.11.12
✎
13:56
|
(142) всмысле? какой пример?
|
|||
144
Serg_1960
30.11.12
✎
13:57
|
ТС, как тебе идея: генерировать заранее набор ключей, при добавлении новой номенклатуры в справочник?
|
|||
145
Maxus43
30.11.12
✎
13:58
|
(142) пример - АналитикаУчетаЗатрат, там запросто
|
|||
146
Maxus43
30.11.12
✎
14:02
|
(144) тоже как вариант, только ТИИ ключей убъёт их, ибо они не используются
|
|||
147
Serg_1960
30.11.12
✎
14:14
|
(145) Для новой номенклатуры ключ создаётся при первом поступлении(оприходовании) в организацию. Как ключ ухитряется дублироваться? Вы сразу на нескольких узлах поступление(оприходование) вбиваете?
(146) Запуск ТиИ ключей можно зарегламентировать - запускать не тогда, когда хочется, а тогда - когда можно :) В алгоритм можно внести условия(ограничения) по удалению неиспользуемых ключей. |
|||
148
Bober
30.11.12
✎
14:15
|
||||
149
Maxus43
30.11.12
✎
14:17
|
(147) номенклатура - там десятки тыщ наименований. заветси её могут давно заранее, когда запланируют
|
|||
150
Maxus43
30.11.12
✎
14:18
|
(148) спс. заценю на днях
|
|||
151
Bober
30.11.12
✎
14:22
|
(142) (147) детсад какой-то.
|
|||
152
Maxus43
30.11.12
✎
14:23
|
(147) убрать эту функцию из обработки можно конечно... но, как ты себе это представляешь? на ВСЕ сочетания номенклатур, характеристик, статей, серий, качество и т.д. создавать ключи? боюсь распухнет справочник до неприличных размеров
|
|||
153
Serg_1960
30.11.12
✎
15:30
|
У меня, наверное, какая-то неправильная УПП: для позиции номенклатуры пара-тройка записей, ну максимум 5-6 в аналитике учета затрат.
|
|||
154
Maxus43
30.11.12
✎
15:33
|
(153) это не все варианты, а те которые ты используешь... ты предлагал все варианты создать, ибо кто значет что введут и какой ключ понадобится
|
|||
155
Serg_1960
30.11.12
✎
16:06
|
Вообще-то я имел ввиду, говоря про "набор", что это не всевозможные варианты. Например: "набор" основные производственные материалы. Статья затрат - определена и не изменяется. Качество - новое или брак (допустим). Пришло на склад - ушло в производство. Всё.
|
|||
156
Maxus43
30.11.12
✎
16:08
|
(155) характеристики, серии и т.д.? чтоб не было кучи дублей - надо при поступлении создавать сразу и аналогичные производственные. А если сразу после поступления списали в производство до обменов? получаем (0) опять)
|
|||
157
Serg_1960
30.11.12
✎
16:12
|
Ладно, уговорил. Не универсальное решение.
Другая идея: специально выделенный план обмена только по этим справочникам и регистрам. Обмен по событию (по мере надобности - по факту добавления новой записи в справочник). Как тебе это? |
|||
158
Bober
30.11.12
✎
16:14
|
(157) да, еще костыльков да побольше. вот кто будет весь этот зоопарк админить.
|
|||
159
Maxus43
30.11.12
✎
16:14
|
(157) идея быстрых обменов по этим объектам в первых постах, так и решили делать впринципе наши большеголовые, тока не по появлению записи, они тоже могут скопом создаватся.
|
|||
160
Maxus43
30.11.12
✎
16:16
|
(158) самое смешное что это фпнач-внедренец у нас делает, т.е. ему лишь бы сделать, кто поддерживать будет - не их проблема
|
|||
161
Maxus43
30.11.12
✎
16:16
|
*франч
|
|||
162
Bober
30.11.12
✎
16:16
|
(161) бррррр. звери а не люди
|
|||
163
Serg_1960
30.11.12
✎
16:20
|
(159) Ну, в принципе... новая запись справочника может быть только "спусковым курком" - сам обмен начнется через несколько секунд допустим. Одна или куча записей туда войдет уже не важно. Тот кто не успеет - вновь взведет курок.
|
|||
164
Maxus43
30.11.12
✎
16:22
|
(163) как организовать не суть, смысл предложения - обмениваться быстрей. к сожалению Гарантии тоже не даёт, приходится совмещать с другими костылями
|
|||
165
Serg_1960
30.11.12
✎
16:23
|
Bober, кстати, мне твоя идея тоже нравится. Можно генерировать уникальный идентификатор по уникальному наименованию. В риб-базах будет исключено дублирование наименований так, как при обмене это будет одна единственная запись.
|
|||
166
Maxus43
30.11.12
✎
16:26
|
(165) ответ 1с на такой подход в (116), и наши франчи согласились с ним( хотя в реальной жизни вероятность совпадения стремится к 0. Но раз "может" такое быть - значит нельзя
|
|||
167
Serg_1960
30.11.12
✎
16:31
|
Я в курсе. Всё дело в вероятности. Точнее - насколько она низкая :)
Между прочим: если новый ключ обменом будет распространяться, скажем, за пять-десять секунд - то можно, имхо, обойтись без прочих костылей. А такая скорость обмена - вполне реальна. |
|||
168
Serg_1960
30.11.12
✎
16:36
|
А по поводу генерации "неуникального" идентификатора - надуманная проблема (имхо) Перед выдачей нового идентификатора его можно проверить на предмет существования в базе и сгенерировать ещё раз (другой).
|
|||
169
Maxus43
30.11.12
✎
16:37
|
делают костыли чтоб была гарантия 100%. хз чо у них получится
|
|||
170
Maxus43
30.11.12
✎
16:37
|
(168) если генерить другой - то по какому алгоритму? и другая база должна знать что ты в узле1 сменил алгоритм
|
|||
171
Bober
30.11.12
✎
16:41
|
(170) посмотри, сколько сейчас ключей в базе
|
|||
172
Maxus43
30.11.12
✎
16:41
|
(171) каких именно? затрат?
|
|||
173
Bober
30.11.12
✎
16:46
|
Всех различных
|
|||
174
Maxus43
30.11.12
✎
16:47
|
Ключи аналитики вида учета 10 136
Ключи аналитики распределения затрат 4 705 Ключи аналитики учета затрат 170 868 Ключи аналитики учета партий 71 211 Ключи аналитики учета прочих затрат 2 541 такая петрушка |
|||
175
Maxus43
30.11.12
✎
16:48
|
Группа риска как раз "Ключи аналитики учета затрат"
|
|||
176
Serg_1960
30.11.12
✎
16:49
|
(170) Если есть один, общий для всех, генератор - почему бы у него не может быть другого, запасного алгоритма - тоже общего для всех? :)
Не нужно второй базе "знать" об этом. Предположим в первой базе уникальное наименования порождает неуникальный ключ - будет генерится другой ключ. Во второй базе, в аналогичной ситуации - тоже будет гериться ключ по запосному алгоритму. |
|||
177
Maxus43
30.11.12
✎
16:51
|
(176) Это если обмен уже прошёл. А если между обменами создадим элемент1 и при попытке создать 2-й - токая же ссылка - то вернёмся к (0) :)
|
|||
178
Maxus43
30.11.12
✎
16:52
|
это всё на самом деле ОЧЕНЬ маловероятно. и легче сделать один из вариантов, чем пытаться делать АБОСЛЮТНО гарантированную систему
|
|||
179
Serg_1960
30.11.12
✎
16:59
|
(177) Не согласен. Вероятность повторной генерации - очень низкая(но есть). А повторной генерации номеров в период между обменами - стремится к 0.000(0)
|
|||
180
Maxus43
30.11.12
✎
17:00
|
(179) дак и по MD5 - стремится к 0 вероятность... но возможно :(
|
|||
181
Serg_1960
30.11.12
✎
17:09
|
Возможно? "Будь мужиком"(с) - сделай так и докажи обратное :)
|
|||
182
Serg_1960
30.11.12
✎
17:10
|
я - афк, бб.
|
|||
183
Maxus43
30.11.12
✎
17:12
|
(181) теоретически возможно. опровергать логику я не научился
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |