|
апдейт таблицы на стороне SQL не меняет информацию в документе 1С | ☑ | ||
---|---|---|---|---|
0
gls
02.07.15
✎
17:47
|
1с 8.3.5 + SQL 2008
самописный документ с табличной частью тч апдейтится на стороне SQL-сервера после апдейта изменения в 1С не видны, но помогает выход-вход. хотелось бы видеть изменения сразу. помогите, плз. |
|||
1
ДенисЧ
02.07.15
✎
17:48
|
Нарушаем-сЪ?
|
|||
2
Господин ПЖ
02.07.15
✎
17:48
|
перечитай документ
|
|||
3
Господин ПЖ
02.07.15
✎
17:49
|
>после апдейта изменения в 1С не видны
она про них не в курсе |
|||
4
gls
02.07.15
✎
17:50
|
(3) я это понимаю.
но как бы попроще оповестить 1С, что надо бы перечитать данные с SQL-сервера |
|||
5
ДенисЧ
02.07.15
✎
17:50
|
Никак
|
|||
6
gls
02.07.15
✎
17:52
|
(2) перечитываю: ЭтотОбъект.Прочитать();
безрезультатно |
|||
7
Господин ПЖ
02.07.15
✎
17:53
|
(4) повесить тригер на действие в таблице
|
|||
8
gls
02.07.15
✎
17:54
|
(7) что триггер должен делать и что это даст?
|
|||
9
Господин ПЖ
02.07.15
✎
17:55
|
(6) а форма как перерисуется на клиенте? уличной магией?
|
|||
10
Господин ПЖ
02.07.15
✎
17:56
|
(8) я сказал как поймать событие - накой хер это тебе надо - твоя головная боль
|
|||
11
fisher
02.07.15
✎
17:57
|
(0) Это опасная игра высокоподнятой клюшкой. 1С это не тупая читалка SQL. Там как бы сервер приложений есть, с кэшированием и другими механизмами, которые ни сном ни духом про твои опыты. Так что не гневи бога 1С и пиши через COM. Или через веб-сервисы. Или через REST-интерфейс.
|
|||
12
gls
02.07.15
✎
17:58
|
(7) + (10) ))))
триггер - SQL-ный механиззм как он поможет 1С понять необходимость обновления? триггер - отдельно, 1С - отдельно |
|||
13
fisher
02.07.15
✎
18:01
|
(11) + Или через промежуточные таблицы. А 1С будет периодически анализировать наличие новых данных в них (тем же регламентным заданием) и засасывать штатно.
|
|||
14
gls
02.07.15
✎
18:01
|
(11) хм... надо знать технику безопасности.
без подготовки - да, лучше не соваться. |
|||
15
Господин ПЖ
02.07.15
✎
18:02
|
дернет сервис, запишет строку в таблицу которую увидит ожидание - ну откуда мне знать что тебе надо
|
|||
16
gls
02.07.15
✎
18:04
|
(15) сервис (к которому меня отсылаете) хранится в SQL-таблицах? если не сложно напишите префикс таблицы.
|
|||
17
Господин ПЖ
02.07.15
✎
18:05
|
да что за день сегодня...
|
|||
18
rs_trade
02.07.15
✎
18:08
|
вход-выход куда? должно все видится. это в открытой форме не перерисуется само.
|
|||
19
gls
02.07.15
✎
18:08
|
(13) можно ли принудительно заставить 1С проанализировать наличие новых данных/перечитать данные из SQL-таблиц?
|
|||
20
gls
02.07.15
✎
18:10
|
(18) выход из 1С, вход в 1С.
простое закрытие-открытие формы документа не помогает. предполагаю, что 1С не знает, что необходимо перечитать данные с SQL. только как заставить ее это сделеть? |
|||
21
rs_trade
02.07.15
✎
18:10
|
(19) изменения где не видны? в свежеоткрытом документе?
|
|||
22
rs_trade
02.07.15
✎
18:12
|
(20) да ну нафиг. быть не может. в открытой форме это понятно. но если открываешь документ она его читает из базы.
|
|||
23
rs_trade
02.07.15
✎
18:14
|
глянь профайлером момент открытия документа из списка
|
|||
24
gls
02.07.15
✎
18:14
|
(21) да
(22) если бы могло быть - не писала бы здесь, а работу работала) |
|||
25
Garikk
02.07.15
✎
18:14
|
кеш она читает... не знаю конечно архитектуры, но вполне возможно что кудато пишется ещё признак изменености...и смысл перечитывать базу если этот признак и в кеше и в базе одинаков
поэтому открывай-закрывай, не будет ничего перечитыватся |
|||
26
gls
02.07.15
✎
18:14
|
(23) на предмет перечитывания данных из SQL-таблицы?
|
|||
27
gls
02.07.15
✎
18:15
|
(25) согласно, что кэш читает.
хотелось бы заставить прочитать свежие данные |
|||
28
Garikk
02.07.15
✎
18:15
|
вообще очень плохой подход к работе с 1С, таким способом данные ей подсовывать... чёнить изменится в архитектуре и навернутся эти костыли
|
|||
29
18_plus
02.07.15
✎
18:16
|
у меня перечитывание документа изменённый реквизит обновляло. (25) если кэш, то как 1с узнаёт об изменении документа другим пользователем?
|
|||
30
rs_trade
02.07.15
✎
18:16
|
(26) хотя бы для начала. не может кэш так работать.
|
|||
31
gls
02.07.15
✎
18:17
|
(25) >кудато пишется ещё признак изменености
еще понять бы куда пишет... |
|||
32
Дык ё
02.07.15
✎
18:17
|
(22) так он небось версию документа не апдейтит
|
|||
33
18_plus
02.07.15
✎
18:18
|
а если менять не только ТЧ, но и какой-нибудь реквизит самого документа?
|
|||
34
gls
02.07.15
✎
18:18
|
(32) щас попробую проапдейтить
|
|||
35
Garikk
02.07.15
✎
18:19
|
(29) при изменении реквизита только 1 запись в sql меняется?
сдаётся мне что и версия документа как говорят в (32) апдейтится |
|||
36
18_plus
02.07.15
✎
18:21
|
(35) я менял одно поле - одну ссылку на другую, больше ничего не трогал.
|
|||
37
rs_trade
02.07.15
✎
18:23
|
932) это поле ридонли. само апдейтится при записи.
|
|||
38
rs_trade
02.07.15
✎
18:23
|
(36) что менял?
|
|||
39
gls
02.07.15
✎
18:24
|
(34) в лоб timestamp не апдейтится
|
|||
40
bolobol
02.07.15
✎
18:27
|
(37) Значит надо шапку прозаписать документа
|
|||
41
rs_trade
02.07.15
✎
18:28
|
и правда так. чето намутили 1с-ники. щас разберемся.
|
|||
42
18_plus
02.07.15
✎
18:28
|
(38) в самописном документе нужно было поменять реквизит - ссылка на справочник. при загрузке указали неправильное значение. документов что-то около 100 тыс.
прямым запросом махнул за 3 минуты где-то. ну и сам запрос полчаса рисовал. |
|||
43
bolobol
02.07.15
✎
18:30
|
(42) Круто! А старая ссылка в проводках так и осталась старой?
|
|||
44
rs_trade
02.07.15
✎
18:30
|
запросом естественно все норм читает.
|
|||
45
gls
02.07.15
✎
18:31
|
(30) вы правы: профайлер говорит, что есть перечитывание данных.
спотыкается на версии. видимо, версия без изменений - перечитывания нет. |
|||
46
18_plus
02.07.15
✎
18:32
|
(43) реквизит в проводках не участвовал, я бы тогда не рискнул.
|
|||
47
bolobol
02.07.15
✎
18:32
|
(44) Смотря что именно вы запросом читаете. 1С читает документ, а не то, что в табличных частях у него. Нет изменений - ненужны и чтения.
|
|||
48
rs_trade
02.07.15
✎
18:33
|
(45) у табличной части нету поля версия. надо шапку перезаписывать.
|
|||
49
rs_trade
02.07.15
✎
18:33
|
(47) а табличные части документа не имеют отношения к объекту документ?
|
|||
50
18_plus
02.07.15
✎
18:34
|
предлагаю ещё раз менять заодно (можно создать для этих целей служебный) реквизит шапки
|
|||
51
gls
02.07.15
✎
18:34
|
(48) я про шапку и писала (у тч, действительно, нет версии).
ак бы еще изменить поле типа timestamp... |
|||
52
gls
02.07.15
✎
18:35
|
(50) есть речь про SQL-изменение - ничего не даст:
там 1С перечитывает только при изменении версии |
|||
53
rs_trade
02.07.15
✎
18:35
|
(51) перезаписать в шапке любое поле тем же значением
|
|||
54
18_plus
02.07.15
✎
18:36
|
(52) и всё-таки. у меня же отработало.
|
|||
55
gls
02.07.15
✎
18:38
|
(53) да, уже провелила, все так и есть
|
|||
56
gls
02.07.15
✎
18:39
|
версия изменилась, но перечитывания не произошло.
|
|||
57
rs_trade
02.07.15
✎
18:39
|
(53) так работает, но не сразу. частоту опроса базы увеличить еще видимо надо. помниться раньше была настройка, с какой периодичностью обновлять списки.
|
|||
58
18_plus
02.07.15
✎
18:40
|
а клиент тонкий?
|
|||
59
rs_trade
02.07.15
✎
18:40
|
и нахрен весь этот гемор. не надо писать в базу 1с через скуль. читай сколько хочешь, а писать лучше не надо. всегда есть другие способы добиться нужного результата.
|
|||
60
gls
02.07.15
✎
18:40
|
(57) мне бы сразу...
не подскажете. где меняется частота опроса? |
|||
61
rs_trade
02.07.15
✎
18:41
|
откуда данные пишутся в таблицы? где источник находится и в каком виде?
|
|||
62
gls
02.07.15
✎
18:42
|
(59) есть сложный алгоритм расчета, реализован на SQL с помощью хп.
переписать на 1с не реально - требования по производимости не выполнятся. апдейт - тольк овершина айсберга) |
|||
63
rs_trade
02.07.15
✎
18:44
|
(62) пиши результат расчета в таблицу. таблицу прицепи к базе 1С как внешний источник. и оттуда штатным образом фигач в документы.
|
|||
64
gls
02.07.15
✎
18:44
|
(61) источник - таблица 1С (SQL)
на нее натравливается хп по расчету расчет выполнен - данные апдейтятся |
|||
65
gls
02.07.15
✎
18:45
|
(63) долго.
бысрее работает Записать запустить хп Обновить в этом случае данные формы обновляются но у меня есть еще требования по скорости |
|||
66
rs_trade
02.07.15
✎
18:49
|
с апдейтом шапки через секунд 10 примерно данные перечитываются.
|
|||
67
rs_trade
02.07.15
✎
18:52
|
может этого и хватит. постоянно базу принудительно перечитывать по делу и без не есть хорошо. 1С снижает обращения к базе, а вы их увеличиваете.
|
|||
68
gls
02.07.15
✎
18:56
|
(66) у меня примерно также.
для моей задачи многовато. буду дальше ковыряться. |
|||
69
vde69
02.07.15
✎
18:56
|
(0) при записи табличной части необходимо инкремировать поле версии основной таблицы документа...
но вообще как уже говорили - нефиг лезть в 1с "прямыми" руками, 1с восьмерка можно сказать "идеальна", даже на объемах в лям записей в день я-бы не стал переходить на прямую запись скуля... |
|||
70
vde69
02.07.15
✎
18:57
|
(66)кеш сервера живет 15 сек...
|
|||
71
gls
02.07.15
✎
19:00
|
(69) пишу напрямую, полгода работаем. полет нормальный.
|
|||
72
gls
02.07.15
✎
19:02
|
всем спасибо.
изменение версии документа решило проблему: теперь запуск хп (с апдейтом) + ЭтотОбъект.Прочитать() обновляет инфу на форме документа с приемлемой скоростью. |
|||
73
ILM
гуру
02.07.15
✎
21:25
|
Что пишите то? Данные с колайдера или с АЗС? Ну интересно мне)))
|
|||
74
Господин ПЖ
02.07.15
✎
22:15
|
>ЭтотОбъект.Прочитать()
туда зашита перерисовка формы? |
|||
75
Лефмихалыч
02.07.15
✎
22:21
|
ветку не читал. Я правильно понимаю, что автор делает какие-то мутные апдэйты объектов, не меняя поле Версия и по этому платформа ему показывает закэшированные данные?
|
|||
76
rs_trade
02.07.15
✎
22:23
|
(75) автор уже делает апдейты версий
|
|||
77
Господин ПЖ
02.07.15
✎
22:24
|
(75) это уже починили
|
|||
78
Лефмихалыч
02.07.15
✎
22:24
|
чорт! я телепат просто
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |