Имя: Пароль:
1C
1С v8
апдейт таблицы на стороне 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
чорт! я телепат просто