Имя: Пароль:
1C
1С v8
Смещение даты на 2000 лет на sql server
0 LenaAt
 
05.07.13
10:11
Здравствуйте!
Нужно для web сайта написать прямой запрос к базе 1С. Запрос написать не сложно, но пугает непонятная ситуация с датами в таблице регистра накопления: они смещены на 2000 лет вперёд.
http://hostingkartinok.com/show-image.php?id=912ed32adc7a4f3c499324e34bf9b824

Может кто знает для чего так сделано и чем чревато?
1 Cube
 
05.07.13
10:12
(0) Делать нечего, писать прямые запросы для v8? Чем COM или web-сервис не устраивает?
2 LenaAt
 
05.07.13
10:16
(1)COM -это сплошные PInvoke Брр...
3 МихаилМ
 
05.07.13
10:19
(0)
а в таблице итогов еще + ~2000 лет те 5999 год
4 rs_trade
 
05.07.13
10:24
(0) скл база 1с будет торчать в интернетах? используйте веб-сервисы.
5 Cube
 
05.07.13
10:24
(2) А прямые запросы - это танцы при изменении структуры и/или наименований таблиц...
6 LenaAt
 
05.07.13
10:27
(5) Конфигурация наша собственная. Могут добавиться новые поля, таблицы, но не будет изменений в названии таблиц регистров и уже существующих полей этих таблиц.
7 LenaAt
 
05.07.13
10:28
web сервисы тоже тот еще геморой.
8 МихаилМ
 
05.07.13
10:30
(6)
есть вероятность, что 1с82 любезно может преименовать таблицу и её поля по добавлении удулении полей и как следствии реструктуризации.
9 rs_trade
 
05.07.13
10:35
(7) хмл или текстовички?
10 rs_trade
 
05.07.13
10:35
Прямые запросы из 1С к сайту, это еще нормуль. Но обратно, это изврат. Если только они не в локалке, эти две базы.
11 Cube
 
05.07.13
10:36
(6) На почитай на досуге: v8: Изменение имен таблиц SQL
12 Cube
 
05.07.13
10:37
(7) Да вообще программирование - гемор... :)
13 LenaAt
 
05.07.13
10:38
(8) очень жаль...
Тогда придётся через внутрипроцессорный COM сервер работать.
14 LenaAt
 
05.07.13
10:40
или как вариант Link to sql использовать, правда я с этой технологией не знакома, но вроде бы она сама должна отслеживать изменения в названии таблиц?
15 rs_trade
 
07.07.13
16:12
(14) может и отслеживает, но с 1с это не прокатит. там таблицы пересоздаются.
16 H A D G E H O G s
 
07.07.13
16:14
(14) А вы точно девушка?
17 kiruha
 
07.07.13
16:34
(8)

Название таблиц получают динамически - через ПолучитьСтруктуруХраненияБазДанных

(0)
Смещение Дат
QueryString="Select * From _YearOffset WITH(NOLOCK)";
18 kiruha
 
07.07.13
16:37
Оно может либо быть 0 либо 2000, в зависимости от параметров установки
19 МихаилМ
 
07.07.13
17:02
(17)
ПолучитьСтруктуруХраненияБазДанных

для тех, кто не умеет читать и разбирать матаданные из config
и таблицу сопоставлений params.dbnames (+dbchema).

Хотя тоже решение для подключения в триггере после реструктуризиции и обновления (восстановления) view
20 rs_trade
 
08.07.13
12:51
(19) а уже кто-то умеет?
21 МихаилМ
 
08.07.13
13:07
22 kiruha
 
08.07.13
14:26
(21).1
Elisy платная
(21).2
Сообщалось об ошибках и планируемой заменой новой компоненты  Орефковым - как понимаю на данный момент не пригодная
23 МихаилМ
 
08.07.13
14:34
(22)
Enterprise Integrator - тоже платная

в (20) был вопрос кто умеет.
24 Lama12
 
08.07.13
14:36
(0) Сделано специально из-за ограничений на тип дата в SQL server.
В данных 1С часто хранятся пустые даты. Вопрос - как их обрабатывать так что б все работало?
Поэтому и сделали сдвиг в 2000 лет.
Напрямую работать с базой данных запрещает лицензия 1С.
Кроме моральных неудобств будет еще куча технических о которых уже озвучено выше.
Идеальный вариант - вэб сервисы.
Ну или на худой конец, промежуточная база данных.