Имя: Пароль:
1C
1C 7.7
v7: НайтиПоНаименованию()
0 Franchiser
 
26.10.23
20:45
В справочнике есть дубли наименований. Есть предположение что найтипонаименованию() находит элемент с минимальным кодом а не случайный элемент. Это верное утверждение?
1 Franchiser
 
26.10.23
20:46
База sql
2 Злопчинский
 
26.10.23
20:47
мои наблюдения говорят что это утверждение неверное.
похоже, что определяется элемент, введенный хронологически первым. Даже если и так, то это необязательно всегда так ;-) Но я могу ошибаться
3 Злопчинский
 
26.10.23
20:48
надо глянуть как индекс построен
4 Franchiser
 
26.10.23
20:48
Profiler может отловить запрос генерируемый через найтипонаименованию()?
5 Смотрящий
 
26.10.23
21:09
По минимальному ИД ищется
6 Franchiser
 
26.10.23
21:11
Это точно? Проверили профайлером?
7 Franchiser
 
26.10.23
21:12
То есть если находится сейчас, то это так будет постоянно?
8 Злопчинский
 
26.10.23
21:29
(7) не факт.
9 Злопчинский
 
26.10.23
21:30
(7) не надо на этом принципе строить базу последующих алгоритмических выводов ;-)
10 Sserj
 
27.10.23
05:25
В SQL базе у справочников индекс DESCR состоит из двух полей DESCR,Row_id.
Так что вероятнее метод найдет первую добавленную в таблицу строку.
11 Bigbro
 
27.10.23
05:30
почему бы не избавиться от дублей вместо изобретения костылей которые могут в любой момент подвести.
12 DJ Anthon
 
27.10.23
05:45
(11) как вы это в семерке сможете сделать? когда я решал эту проблему лет 15 назад, пришлось написать целый механизм, разбирающий и собирающий конфигурацию заново, потому что семерка не умеет писать в регистры накоплений и регистры расчетов, а прямые запросы у нас были запрещены.
13 Kigo_Kigo
 
27.10.23
08:45
(12) Переимновать дубли, не?
14 DJ Anthon
 
27.10.23
09:16
(13) избавиться от дублей - это не переименование.
15 Kigo_Kigo
 
27.10.23
09:22
(14) да это если перелопачивать базу и передоставлять ссылки, а это ох как не просто, проще переименовать и похоронить, оставив только один
16 Bigbro
 
27.10.23
09:23
(12) когда я решал эту проблему лет 15 назад - мы делали отдельный механизм глобальных и локальных контрагентов и материалов для распределенной базы с порядка 80к контрагентов и 190к материалов. по итогу был отдельный человек который администрировал центральный глобальный справочник, устранял дубли. а мы сделали для него все инструменты с заменами, заявками на новые элементы, автоматической заменой ссылок новых элементов на глобальные после их добавления и так далее.
конструкция получилась шикарная.
в каждой из локальных баз хранилось примерно 10-15% от объема всего глобального справочника.
17 DJ Anthon
 
27.10.23
09:39
(16) если не секрет, как меняли дубли в регистрах? перепроводили документы?
18 vicof
 
27.10.23
09:40
Переходите на 8-ку
19 DJ Anthon
 
27.10.23
09:52
(18) как будто там эта проблема решена ))
20 Смотрящий
 
27.10.23
10:01
(17) В клюшках только перепроведением регистры меняются.
21 Андрей_Андреич
 
naïve
27.10.23
10:04
(20) А Update + пересчет итогов?
22 Смотрящий
 
27.10.23
10:12
(21) В свое время делал так - написал обработку которая пробежалась по всем документам базы и насоздавала файликов ТипДокументаДатаНомер.txt в отдельном каталоге выгрузив туда движения документов, в модули обработки проведения воткнул код который при нахождении файла читал движения с него и проводил документы с этими движениями, в случае ненахождения - проводил документ как обычно.
Вышел в выходные и типовым поиском и заменой дублей подменил все с перепроведением. Подправил ГП. Перевыгрузил все РИБы.
23 Смотрящий
 
27.10.23
10:15
Таблицу  подмены номенклатуры еще в файл загнал, с нее процедурка подменяла номенклатуру.
17к+ файлов насоздавала обработка, 7 видов документов.
Так что все реально
24 Андрей_Андреич
 
naïve
27.10.23
10:22
(23) Ну и закинул бы таблицу подмены номенклатуры в табличку в базе и сделал Update нужных регистров RA и табличных частей документов и затем пересчет итогов. Хотя сделал - работает - отлично.
25 Смотрящий
 
27.10.23
10:24
(24) На тот момен ТиС была файловая
26 DJ Anthon
 
27.10.23
11:45
(20) так я поэтому и спрашиваю. Потому что надо перепровести документ так, чтобы ни одно движение не изменилось, только ссылки на дубли изменились. Я выгружал конфигу в файлы, делал изменения модулей (подменял вызов проведения на свой, который читал все движения и подменял ссылки), собирал конфигу, перепроводил, потом возвращал бэкап конфигурации обратно.
27 Bigbro
 
27.10.23
12:12
(26) нет, такого колдовства точно не было, видимо перепроводились, точно уже не помню.
28 DJ Anthon
 
27.10.23
12:57
(27) а вот она https://infostart.ru/1c/tools/96745/
однако я там замахнулся на многие задачи, а оттестировать на большом количестве баз не удалось, как бета работает хорошо.
как замена дублей работает точно. плохо работает в случае переноса между разными конфигурациями.
29 Bigbro
 
27.10.23
13:16
(28) это прекрасно, но с опозданием лет на 8-9 от момента когда нам требовалось решать свои задачи))
30 AAA
 
27.10.23
13:23
(26)а зачем модули менять, можно было обработкой перебирать документы, выбирать их движения и менять в них ?
31 Bigbro
 
27.10.23
13:42
(30) а разве это не в 8ке только дали возможность движения документа пихать куда не попадя хоть к другому документу хоть вообще к удаленному?
32 AAA
 
27.10.23
13:55
(31)не понял ко мне вопроса ) в 8-ке дали )
33 Bigbro
 
27.10.23
14:24
(32) так тут про клюшки разговор)
34 AAA
 
27.10.23
14:41
(32)да, принимаю
я почему то подумал, что DJ в 8-ке делал. Каюсь ))
35 FN
 
27.10.23
14:42
36 DJ Anthon
 
27.10.23
18:11
(34) в восьмерке тоже не все гладко. допустим, удаление дублей работает, но конечный результат - просто сообщение в конце работы - у вас могут быть проблемы с дублями в связанных справочниках, и все. а то, что при этом теряется список всех объектов - пофиг, иди всю базу проверяй. Но это фигня, есть ведь ещё скрытые объекты, которые можно увидеть только специнструментом, например, в ерп после объединения номенклатуры надо объединять ключи аналитики, после объединений контрагентов - объекты расчетов, плюс куча дополнительных проблем в регистрах журналов, а если ещё навешано куча расширений типа битрикса, там вообще могут даже битые ссылки образоваться. не говоря уже про ситуации, которые программно вообще невозможно учесть - например, если вы объединили виды расчетов в зп, ошибок технически у вас не будет, пока, например, вы не решите уволить человека - ведь у него будут дубли в регистрах сведений типа Плановые начисления. Об этом объединение дублей вообще ничего не говорит. И руками править ничего нельзя...
37 AAA
 
27.10.23
19:41
(36)а кто с этим спорит?