Имя: Пароль:
1C
 
RainBow : как получить ID поля даты документа?
0 Василий
 
23.04.04
14:54
Хочу сделить прямой SQL-запрос с использованием Rainbow.
не могу получить ID поля даты документа :(
Пробую так :

 ЗагрузитьВнешнююКомпоненту("Rainbow.dll");
 Мета=создатьОбъект("MetaDataWork");
 ИДДат="sp"+Мета.ИДРеквизитаШапки("ОказаниеУслугПациенту","ДатаДок")

а оно выдает ошибку. Кто работал с этой штукой? подскажите плз!!!
1 SnarkHunter
 
23.04.04
14:56
ДатаДок - это не реквизит шапки...
2 Василий
 
23.04.04
15:04
А тогда как же?
3 SnarkHunter
 
23.04.04
15:06
Ну начнем с того, что префикс SP используется для справочников...
4 Василий
 
23.04.04
15:09
ну.. не только для справочников. Вот так же :
  ИДП="sp"+Мета.ИДРеквизитаШапки("ОказаниеУслугПациенту","Фамилия") ;
работает без проблем...

здесь SP - это наименование поля в таблице DHхх
5 SnarkHunter
 
23.04.04
15:12
Согласен, протупил... Для справочников, конечно же SC...
6 SnarkHunter
 
23.04.04
15:12
А дата документа хранится в журнале...
7 Василий
 
23.04.04
15:13
Понимаешь, тут если через ЕМ в SQL базу ручками влезть, видно что требуется  поле SP138 таблицы DH27, но как это функциями Rainbow вытащить?
8 Василий
 
23.04.04
15:20
опс.. теперь я протупил...
т.е. надо дёргать _1CJOURN ?
насколько я понимаю... там хранятся записи о всех документах системы?
9 SnarkHunter
 
23.04.04
15:22
Так точно...
10 Василий
 
23.04.04
15:27
Тогда такой вопрос. Зачем дублируется информация в полях IDDOC и DATE_TIME_IDDOC?
11 SnarkHunter
 
23.04.04
15:28
По этим полям индексы имеются...
12 Валентин
 
29.05.04
21:59
И попутно вопрос, каким образом сохранено время в поле DATE_TIME_IDDOC? Подскажите кто знает
13 SnarkHunter
 
29.05.04
22:01
Тебя формат интересует?
14 Валентин
 
29.05.04
22:07
Да. И если можно то поподробнее про время в 1С вообще. Можно и про получение периодических реквезитов sql-запросом (мой запрос сравнивающий дату и идентификатор документа медленно шевелиться)
15 Волшебник
 
29.05.04
22:10
16 SnarkHunter
 
29.05.04
22:16
Поле DATE_TIME_IDDOC - 23 символа:
1. Дата    - 8 символов - ГГГГММДД
2. Время   - 6 символов - кол-во секунд с начала суток * 10000 (по основанию 36)
3. ИД дока - 9 символов
17 Валентин
 
29.05.04
22:19
Спасибо за формат.

А про запрос к периодическим реквизитам? Может какие идеи есть? Я слизал запрос указываемый 1С при работе с периодическими реквизитами, но как-то очень уж медленно все получается ...
18 SnarkHunter
 
29.05.04
22:25
Что именно про запрос?
19 Валентин
 
29.05.04
22:31
Есть периодический реквизит (его ид- 38, имя - ЦенаПриобретения) Есть репистр партии товаров и соответственно журнал документов (речь идет про ТиС)
select top 1 h.sp1131 as goodsId, h.idDoc as currentDoc, s.value from  ra1130 h, _1SConst s, _1SJournal t where s.objid=h.sp1131 and h.iddoc=t.iddoc and s.date<=convert(datetime,subdtring(DATE_TIME_IDDOC,1,4)+'-'+substring(DATE_TIME_IDDOC,5,2)+'-'+substring(DATE_TIME_IDDOC,7,2) and s.iddoc<=t.iddoc order by h.date
но вот это все очень медленно. Хотелось бы побыстрее
20 Валентин
 
29.05.04
22:38
В смысле order by s.date (ночь все таки и субота опять же... спать хочу)
21 SnarkHunter
 
29.05.04
22:49
Слушай... По-моему ты сам себя перехитрил... В таблице _1sJourn есть ведь поле DATE...
22 Валентин
 
29.05.04
22:58
Поле date усть в константах (_1SConst) в _1SJourn если специльно не вводить лбщий реквизит шапки МояДатаДок нет упоминния о дате. Сейчас посмотрел представление времени. Бред. Или просто ночь. Но добавил проверку на время и рычаги увеличелись на 31% согласно профайлера.
Да кстати. У меня попутно вопрос. Почему часть идентификаторов в 36-ричной, а часть в 10-ричной системе? И зачем нужен этот зверь - 36-ричная система?
23 SnarkHunter
 
29.05.04
23:21
(22)Согласен, прогнал... Глянул DD вместо DDS... :-)
По поводу систему счисления - считай, что так сложилось исторически...
Запросы, которые создает 1С при обращении к серверу нужно использовать в качестве пособия как НЕ нужно писАть запросы ИМХО...
Основные тормоза в твоем запросе дает convert скорее всего...
24 SnarkHunter
 
29.05.04
23:25
(+23)В версии 7.5 была 74-ричная система, если я не путаю...
25 Валентин
 
30.05.04
14:05
Всем спасибо за консультацию. Тормоза убираются очень эффективно если ввести дополнительную таблицу где уже разложено время, дата, ид. Довольно быстро и качественно. Всем спастбо еще раз
26 SnarkHunter
 
30.05.04
14:14
Вдогонку...
Сравнение поля DATE_TIME_IDDOC и строки в формате 'ГГГГММДД' прекрасно работает...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший