Имя: Пароль:
1C
 
1С в SQL. Зачем 1С генерит имена таблиц\полей?
0 SeiOkami
 
17.08.16
09:15
Просто никак не могу понять. Зачем делать так? Выходит, что у меня есть три базы с одной и той же конфой. Но имена таблиц\имён разные. Не удобно же.
1 SeiOkami
 
17.08.16
09:17
(0) и скорее минус не в генерации имен, а в том, что они не вшиваются в конфу так, чтобы в рамках одной конфы имена совпадали
2 sash-ml
 
17.08.16
09:19
(1) имена совпадают
3 Lama12
 
17.08.16
09:22
(1) А зачем?
4 SeiOkami
 
17.08.16
09:23
(2), нет
5 SeiOkami
 
17.08.16
09:23
(3), приходится копаться в базах. Постоянно сопоставляю таблицы\поля
6 Mauser
 
17.08.16
09:24
Зачем ты лезешь в 1С в обход лицензии и обижаешся, что это неудобно?
7 ViSo76
 
17.08.16
09:24
(4) Напиши обработку которая бы подправляла запросы для MS SQL
8 Serg_1960
 
17.08.16
09:24
Призываю рассуждать не абстрактно :)
9 SeiOkami
 
17.08.16
09:25
(7), вопрос не в том, как с этим жить, а в том, зачем это было вообще так сделано
10 Lama12
 
17.08.16
09:25
(5) Так, нарушение лицензии... Или 1С сменила текст соглашения?
11 Lama12
 
17.08.16
09:26
(9) А зачем лишнюю информацию хранить в конфигурации?
12 butterbean
 
17.08.16
09:26
(9) а чтоб такие как ты не лазили в СУБД грязными руками
13 VladZ
 
17.08.16
09:27
(0) Режим "прямого доступа к данных" в 1С не приветствуется. Оно и понятно: умельцы быстро "наваяют механизЬму" работы с данными. И не будет смысла покупать лицензии.
14 ViSo76
 
17.08.16
09:28
Это для того чтобы унифицированно создавать объекты в базе данных. По идее код генератора наименований должен отрабатывать в зависимости от сортировки объектов в конфигурации и реквизитов в данном объекте, тогда номера таблиц и номера полей должны совпадать
15 SeiOkami
 
17.08.16
09:30
(14), не. у двух развернутых баз с одной и той же конфой разные имена таблиц и полей
16 Lama12
 
17.08.16
09:30
(15) На функциональность это не сказывается. Зачем эту информацию где-то хранить?
17 Serg_1960
 
17.08.16
09:31
(15) Поделись опытом как ты этого добился вопреки методологии 1С.
18 SeiOkami
 
17.08.16
09:32
(17), добиться чего?
19 Это_mike
 
17.08.16
09:32
(17) накатывал изменения в разном порядке.
20 Lama12
 
17.08.16
09:32
(17) Предполагаю что конфы не совсем одинаковые. Возможно просто в списке метаданных изменен порядок объектов. По функционалу они одинаковые, а по данным - разные.
21 ViSo76
 
17.08.16
09:34
Если одна база для разработки, то табличные части, созданные много позже могут серьёзно по цифре отстоять от головной таблицы, а вот в момент перегрузки они могут занять рядом стоящие номера
22 SeiOkami
 
17.08.16
09:38
если две базы подключены к хранилищу и всегда только получают изменения из него, то конфы в результате разные?
23 Lama12
 
17.08.16
09:41
(22) Если хранилище старое то могут. Был такой глюк. Не знаю исправили или нет.
24 ViSo76
 
17.08.16
09:42
может для ускорения создания объектов задействован параллелизм, тогда никогда не будет совпадать.
25 SeiOkami
 
17.08.16
09:43
(23), не, не старое. Но если такой глюк бывает... А как можно точно определить идентичность конфигурации? Обычное сравнение покажет или надо в файлики распаковывать?
26 ViSo76
 
17.08.16
09:44
Попробуй провести эксперимент. Выгрузи конфигурацию и загрузи эту конфигурацию в 2 базы с нуля, и проверь, скорее всего совпадать будут на 100%
27 b_ru
 
17.08.16
09:44
На вопрос зачем ответить просто: в стандартное оборудование ПК не входит программно управляемая линейка, чтобы бить по пальцам слишком ярых программистов. Поэтому приходится по всякому изгаляться, чтобы им жизнь медом не воняла.
28 MiniMuk
 
17.08.16
09:57
они наверно еще при реструктуризации таблиц имена меняют
29 hitodom
 
17.08.16
10:00
если базы с 0 поднимать из cf то имена не будут совпадать
30 hitodom
 
17.08.16
10:01
зачем 1с вообще гененрит имена? чтоб ренэйм не делать, когда переименуешь таблицу или поле.
Хотя конечно все идет с dbf 77 где на имя строго определенное количество символов
31 Serg_1960
 
17.08.16
10:02
"А как можно точно определить идентичность конфигурации" - это интересный вопрос между прочим.

(28) Нет.
(29) Нет.
32 hitodom
 
17.08.16
10:05
еще если через сравнение объединяешь, то даже гуиды у метаданных разные будут.
и если ты потом загрузишь конфу, то метаданные могут удалиться
33 Serg_1960
 
17.08.16
10:16
(ради прикола своеобразный опрос :)

ЗУП 2.5 у вас есть? Надеюсь есть. Тогда создайте внешнюю обработку с простеньким алгоритмом и запустите в своей базе.

    ЧтоИщу = "Документ.НачислениеЗарплатыРаботникамОрганизаций";
    СтруктураХранения = ПолучитьСтруктуруХраненияБазыДанных(,Истина);
    Состояние("Ищу...");
    Для Каждого Таблица Из СтруктураХранения Цикл
        Если Найти(Таблица.Метаданные, ЧтоИщу) Тогда
            Сообщить(Таблица.Метаданные + "(" + Таблица.Назначение + ") " + Таблица.ИмяТаблицыХранения);
        КонецЕсли;
    КонецЦикла;    
    Возврат;
34 Serg_1960
 
17.08.16
10:17
В моей базе ЗУПа вот так (первая строка может отсутствовать):

Документ.НачислениеЗарплатыРаботникамОрганизаций(РегистрацияИзменений) _DocumentChngR2545
Документ.НачислениеЗарплатыРаботникамОрганизаций(Основная) _Document147
Документ.НачислениеЗарплатыРаботникамОрганизаций.ТабличнаяЧасть.Начисления(ТабличнаяЧасть) _Document147_VT2413
Документ.НачислениеЗарплатыРаботникамОрганизаций.ТабличнаяЧасть.ДополнительныеНачисления(ТабличнаяЧасть) _Document147_VT2447
Документ.НачислениеЗарплатыРаботникамОрганизаций.ТабличнаяЧасть.ДоговорыНаВыполнениеРабот(ТабличнаяЧасть) _Document147_VT2474
Документ.НачислениеЗарплатыРаботникамОрганизаций.ТабличнаяЧасть.Удержания(ТабличнаяЧасть) _Document147_VT2492
Документ.НачислениеЗарплатыРаботникамОрганизаций.ТабличнаяЧасть.НДФЛ(ТабличнаяЧасть) _Document147_VT2513
Документ.НачислениеЗарплатыРаботникамОрганизаций.ТабличнаяЧасть.ПогашениеЗаймов(ТабличнаяЧасть) _Document147_VT2529
Документ.НачислениеЗарплатыРаботникамОрганизаций.ТабличнаяЧасть.ФизическиеЛица(ТабличнаяЧасть) _Document147_VT7076
Документ.НачислениеЗарплатыРаботникамОрганизаций.ТабличнаяЧасть.ДатыВыплаты(ТабличнаяЧасть) _Document147_VT11472
35 Serg_1960
 
17.08.16
10:20
Цель мини-опроса - выявить факт расхождения в именах таблиц SQL для типового документа типовой конфигурации. Что положит конец спорам (надеюсь).
36 МихаилМ
 
17.08.16
12:31
за более 10 летний срок существования 1с8 эта тема обсуждалась десятки раз. в поиск.
37 МихаилМ
 
17.08.16
12:40
(9) "..зачем это было вообще так сделано.." - просмотрите запись dbnames таблицы params. может станет понятнее
38 Oftan_Idy
 
17.08.16
12:48
(0) Нафига тебе лазить в sql напрямую?
Если уж совсем прижало то всегда можешь получить от платформы метаданные в SQL, с соответствием метаданных 1С и таблиц SQL. Есть же методы в платформе для этого.