Модераторы: stron
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где, в какой таблице 1С хранит Перечисления v 7.7, 1C 
:(
    Опции темы
Server
Дата 23.10.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 22.11.2005

Репутация: нет
Всего: нет



Доброго времени суток подскажите пожалуйста в каких таблицах 1С ( V 7.7 Sql) хранит перечисления или может в каких файлах?

Заранее благодарен
PM MAIL   Вверх
Naghual
Дата 24.10.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 5
Всего: 49



Через саму 1С и получи!
Какие проблемы?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Server
Дата 25.10.2006, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 22.11.2005

Репутация: нет
Всего: нет



Есть 20 000 клиентов нужно отобрать только тех которые делали покупки 2006,2005,2004,2003
Я когда запускаю 20 000 клиентов в запрос по регистру тут 1С и тухнит по полной программе на часов 15.
Куда годится 15 часов ждать отчёт.
Так вот я хочу написать отчет за пределами 1С в Query Analyzer
изучил 1cv7.dds там описано в каких таблица хранятся клиенты, регистры а для расчета мне нужно ещё отбирать клиентов по условию в котором учавствует перечисление, так вот я не нашёл описания в 1cv7.dds файле где хранится перечисление.
Если 1С нужно 30 минут для формирования отчета то Sql запрос работает секунд 10-15
PM MAIL   Вверх
Zero
Дата 29.10.2006, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 15
Всего: 24



Хех... Значения перечислений вооще находятся в дереве методанных.
Цитата(Server @  25.10.2006,  20:24 Найти цитируемый пост)
изучил 1cv7.dds там описано в каких таблица хранятся клиенты, регистры

Да клиенты и регистры это однозначно - однотипыне и однородные понятия... smile 
Цитата(Server @  25.10.2006,  20:24 Найти цитируемый пост)
Если 1С нужно 30 минут для формирования отчета то Sql запрос работает секунд 10-15

Цитата(Server @  25.10.2006,  20:24 Найти цитируемый пост)
Есть 20 000 клиентов

За 15 секунд просмотреть и обработать 20000 записей... Что то я в этом сомневаюсь.
PM MAIL ICQ   Вверх
stron
Дата 29.10.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Консультант
***


Профиль
Группа: Комодератор
Сообщений: 1654
Регистрация: 17.7.2003
Где: Питер

Репутация: 11
Всего: 36



Цитата(Zero @  29.10.2006,  21:06 Найти цитируемый пост)
За 15 секунд просмотреть и обработать 20000 записей... Что то я в этом сомневаюсь. 

А легко, Ms SQL Server сделает это даже быстрее


--------------------
подписи нет
PM ICQ   Вверх
Date
Дата 30.10.2006, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.3.2006
Где: Алматы

Репутация: 2
Всего: 3



Цитата(Server @  25.10.2006,  19:24 Найти цитируемый пост)
Так вот я хочу написать отчет за пределами 1С в Query Analyzer


ты думаешь что написанная программа будет быстрее работать... по любому придется SQL применять... так зачем напригаться и что-то думать когда все моно в 1С сделать...


Цитата(stron @  29.10.2006,  21:50 Найти цитируемый пост)
    
За 15 секунд просмотреть и обработать 20000 записей... Что то я в этом сомневаюсь.  

А легко, Ms SQL Server сделает это даже быстрее


подверждаю... это факт...

--------------------
Люди не будьте свиньями, Бросайте мусор в урны.
PM MAIL WWW   Вверх
Pelmen
Дата 30.10.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 21.11.2005

Репутация: 1
Всего: 1



их нет в таблицах, самый простой вариант - уточнить необходимое значение перечисления, точнее его идентификатор
другой вариант - 1cpp.ru
PM MAIL   Вверх
Server
Дата 1.11.2006, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 22.11.2005

Репутация: нет
Всего: нет



Я нашёл где хранятся перечисление в md файле
Создал в базе таблицу с идами и названиями перечислений подставляю эту таблицу в join
Написаный код на Sql работает быстрее чем аналогичный запрос на 1С.
Вы меня не переубедите в этом у меня есть часы по которым я и сравниваю время выполнения. smile 
PM MAIL   Вверх
Pelmen
Дата 3.11.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 21.11.2005

Репутация: 1
Всего: 1



Server, тут никто спорить и не будет ... это так
по ссылке сходи - много полезного найдешь
PM MAIL   Вверх
Zero
Дата 3.11.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 15
Всего: 24



Цитата(Pelmen @  3.11.2006,  18:43 Найти цитируемый пост)
Server, тут никто спорить и не будет ... это так

Pelmen, какаяже такая обработка может быть на 1С выполняемая 20 мин, и чтобы на SQL за 15 сек. сделалась?????
PM MAIL ICQ   Вверх
Server
Дата 8.11.2006, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 22.11.2005

Репутация: нет
Всего: нет



Этот запрос отбирает остатки 30 минут и больше
Код

"    
    |Период С д1 по Д2;
    |Склад = Регистр.Остатки.Склад.КатегорияЦены;
    |ТМЦ = Регистр.Остатки.ТМЦ;
    |Кво = Регистр.Остатки.Кво;  
    |Сум = Регистр.Остатки.Сумма;
    |Функция КвоКонОст = КонОст(Кво);    
    |Функция СумКонОст = КонОст(Сум);
    |Группировка ТМЦ;
    |Группировка Склад без групп все ВошедшиеВЗапрос;
    |"


Этот запрос отбирает остатки за 15 секунд
Использую 1С++

    
Код

текст = "select TMS.PARENTID [Родитель $Справочник.ТМЦ], TMS.id [Товар $Справочник.ТМЦ],KatSen.id [КатегорияЦен $Справочник.КатегорииЦен], Sum(Остатки_.КвоОстаток) as КвоОстаток, Sum(Остатки_.СуммаОстаток) as СуммаОстаток
    |from $РегистрОстатки.Остатки(:ДатаПо~,
    |inner join $Справочник.ТМЦ as ТМЦ_ on ТМЦ_.id = ТМЦ
    |inner join $Справочник.Склады as Ск on Ск.id = Склад,
    |,
                |(ТМЦ, Склад),
    |(Кво, Сумма)
    |) as Остатки_
    |left outer join $Справочник.ТМЦ as TMS on Остатки_.ТМЦ = TMS.id
    |left outer join $Справочник.Склады As sklad on sklad.id = Остатки_.Склад
    |left outer join $Справочник.КатегорииЦен As KatSen on KatSen.id = $Справочник.Склады.КатегорияЦены 
    |group by TMS.PARENTID, TMS.id, KatSen.id
    |/*order by TMS.DESCR, KatSen.DESCR*/
    |";

PM MAIL   Вверх
valex13
Дата 28.12.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

Репутация: нет
Всего: 1



Значение перечислений в базе данных не храняьтся. Сделай так. Открой Profiler, укажи в нем базу данных 1С. Затем в нем нажми паузу. Потом открой 1С и сделай запись в нужной таблицы с ЗАРАНЕЕ известным сначением твоего перечисление, перед этим не запудь в Profiler включить режим слежения. После чего из анализа запросов узнаешь имя таблицы. Это как правило SC***. В конфигураторе открой свой справочник и посчитай сверху в низ свое поле по порядку. Затем открой в SQL таблицу и после служебных полей отсчитай тоже количестко полей. Перечисление храняться в char(9). 

Цитата

Этот запрос отбирает остатки за 15 секунд
Использую 1С++


Если сделать этот запрос в виде хранимой процедуры на SQL и запустить потом процедуру, то будет еще быстрей!
PM MAIL ICQ   Вверх
pythonwin
Дата 10.2.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 2
Всего: 36



Цитата(valex13 @  28.12.2006,  14:05 Найти цитируемый пост)
Значение перечислений в базе данных не храняьтся. Сделай так. Открой Profiler, укажи в нем базу данных 1С. Затем в нем нажми паузу. Потом открой 1С и сделай запись в нужной таблицы с ЗАРАНЕЕ известным сначением твоего перечисление, перед этим не запудь в Profiler включить режим слежения. После чего из анализа запросов узнаешь имя таблицы. Это как правило SC***. В конфигураторе открой свой справочник и посчитай сверху в низ свое поле по порядку. Затем открой в SQL таблицу и после служебных полей отсчитай тоже количестко полей. Перечисление храняться в char(9). 

valex13, а для 1С 8.0 это тоже работает?
PM WWW GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "1C: Предприятие, SAP, ERP и учётные системы"
stron

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...)

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, stron, Pegas.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.