Имя: Пароль:
1C
1C 7.7
v7: Событие ПослеЗаписи - Перехватчик
0 Злопчинский
 
11.04.14
23:52
Как реализовать событие "ПослеЗаписи", допустим при редактировании карточки клиента/номенклатуры (при интерактивной работе юзверя) - в т.ч. и при записи нового элемента с передачей в "ПослеЗаписи" ИД-а этого элемента? Собственно стоит задача наладить интерактивный обмен со соронней системой - данные ХОЧЕТСЯ выгружать по факту изменения.
.
база дбф.
.
организовать УРБД и роботом мониторить таблицу обмена...? (как-то мне эта идея не нравится)
1 КонецЦикла
 
11.04.14
23:57
Нормально
Можно служебную базу УРБД только получатель
И смотреть содержимое порций измененных объектов
Не будет головняка с программным/интерактивным изменением, все штатно и надежно.
2 Voronve
 
11.04.14
23:59
(1) У снеговика, так же как у клюшек, проблема с регистрацией программного/интерактивного изменения данных ? О_О
3 Torquader
 
12.04.14
00:01
(2) У него как раз "хоккейный турнир".
4 Voronve
 
12.04.14
00:03
(3) Кес кё се "хоккейный турнир" ?
5 Torquader
 
12.04.14
00:11
(4) Вечер с клюшками ^_^
6 Злопчинский
 
12.04.14
00:59
(1) то есть типа организуем УРБД, реальных выгрузок не проводим.
все изменения пишут в табличку, роботом мониторим табличку, выцепляем данные, отправляем их на обмен с внешней системой, табличку принудительно удаляем отправленные записи - так?
7 Злопчинский
 
12.04.14
01:00
а если, например, с незначительным интервалом одна и та же карточка номенклатуры изменяется нескольо раз  в файле обмена будет одна запись..?
8 КонецЦикла
 
12.04.14
01:11
(6) Да. Формируется ответ и привет за новой порцией
http://1c911.by/stati_1s/statya-kak-ispolzovat-urbd-v-otlichayushchihsya-konfiguraciyah.htm

(7) Один раз. Это не имеет значения, т.к. ты все равно получишь актуальное состояние объекта, а не все его изменения.
9 Злопчинский
 
12.04.14
02:28
(8) >  Формируется ответ и привет за новой порцией
- немного не понял, расшифруй подробнее
10 КонецЦикла
 
12.04.14
04:55
(9) Сорри, смотрел фильм, заипло что-то все.
По ссылке краткое описание с кодом. Добавить что-то трудно.
Берешь измененные объекты засасываешь куда надо, далее формируешь ответ для базы-источника, что пакет получен. Ну и ждешь новых объектов в 1сапдтс.
11 Mikeware
 
12.04.14
07:43
(7)Будет всего одна запись. если изменения уже отправились - в записи будет ид пакета, в котором она ушла. если изменилась впервые, или после последней отправки - ид пакета будет пустым
12 Злопчинский
 
12.04.14
13:04
(10) а зачем формировать ответ? нельзя тупо прочитьать невыгружеенное, по нужным объектам сформировать например тз, и прочитанные записи в 1апдт тупо удалить/пометить на удаление?
13 Mikeware
 
12.04.14
13:07
(12) в файловой базе - будут проблемы с индексами. Но сиквельно - обмен, допустим, со снеговиком сейчас так и устроен
14 Злопчинский
 
12.04.14
13:08
(13) понятно, придется формировать ответ
15 дедушка Вах
 
12.04.14
13:09
(0) из СБ ещё не приходили?
16 Mikeware
 
12.04.14
13:10
(14) куле его формировать? 10 строк кода. Взять готовый, подставить подтверждаемые иды обмена, записать и заархивировать
17 КонецЦикла
 
12.04.14
16:53
(12) Объекты же будут появляться снова и снова. А пройдут годы - файл выгрузки будет содержать измененные объекты за все годы... и обмен будет долгим... оно надо?
18 Злопчинский
 
12.04.14
23:33
(17) да мне обмен нафиг не нужен. мне из "урбд" вытащить список измененных объектов (номенклатура и клиенты) и это список тупо подсунуть в обработку формирования иксемельного файла выгрузки. а список измененных обхектов "занулить" в урбд
19 NS
 
12.04.14
23:35
А в ПриЗаписи()  Записать(), и потом обрабатывать элемент - нельзя?
20 Злопчинский
 
12.04.14
23:36
(19) много мест, где номенклатура обрабатывается неинтерактивно
21 Злопчинский
 
12.04.14
23:39
(17) Короче, КЦ, готов на возмездной основе заиметь от тебя рабочий код для выполнения (18) и пошаговую инструкцию что как настроить в рабочей базе по сабжу. база дбф, 1Сpp есть, Sqlite есть
22 Torquader
 
13.04.14
00:04
Ну, если не хочется чистить файл, то придётся ходить по граблям, так как при изменении объекта он будет писаться в файл, но, если он уже там есть, то второй записи не появится.
То есть, отправлять пакеты нужно, так как после простановки ИД у отправки, запись считается отправленной, а после повторного изменения - ид обнуляется.
23 Злопчинский
 
13.04.14
00:52
хм.. попытка поставить урбд на серваке - закончилась неудачей.
компонента установилась, но старт программы стал существенно более долгий, и в итоге - компонента в списке установленных отсутсвует.
что может быть..?
.
нод32 - отключил. не помогло.
ядро родное 27 сетевое, чистое
стоит опенконф и патч для 1Гб
.
варианты???
24 Злопчинский
 
13.04.14
00:57
или под УРБД нужен отдельный ключ?
25 Злопчинский
 
13.04.14
01:18
версия урбд совпадаетс версией ядра
26 Злопчинский
 
13.04.14
01:21
хорошая идея использовать УРБД накрылась медным тазиком...
27 ildary
 
13.04.14
01:32
(24) под УРБД именно нужен отдельный ключ и он стоит 25 тыщ.
28 Злопчинский
 
13.04.14
01:43
(27) вот ...! так я и подумал что прога стала стартовать медленно - ищет ключ...
29 Злопчинский
 
13.04.14
01:44
(27) спсб. за пояснялку,
в прицнипе бюджет несмертельный - можно будет и напрячься если что..
30 Злопчинский
 
13.04.14
01:45
(27) а можно как-то хитро переопределить, чтобы
например СпрН.Записать() - вызывалась не втроенная процедура языка а своя...?
31 ildary
 
13.04.14
01:57
(30) я сам ненастоящий сварщик, но вроде существует такая штука как перехватчик, которая по идее должна такое делать.
32 Злопчинский
 
13.04.14
02:02
такс.. осталось найти настоящих сварщиков, которые хотя бы на пальцах более мененее разъяснили...
33 Злопчинский
 
13.04.14
02:04
Модератор! а можно ли поправить тему обозвать типа так:
"Событие ПослеЗаписи - перехватчик?"
34 Злопчинский
 
13.04.14
02:48
спсб, Модератор!
35 ildary
 
13.04.14
10:48
(34) надо гуглить Перехватчик на сайте http://www.1cpp.ru/forum
36 Злопчинский
 
13.04.14
13:37
(35) ага, там прям вопрос один в олдин мой http://www.1cpp.ru/forum/YaBB.pl?num=1387512025 - ответ Епрста не отсавляет шансов ;-)
37 Torquader
 
13.04.14
14:41
Так у вас SQL ?
А триггеры навесить ?
Только мне кажется, что sql умеет всё сам ?
38 Torquader
 
13.04.14
14:44
Просто УРБД - это, конечно, вещь хорошая, но в данном случае - по воробьям.
P.S. а ключ нужен только для центральной базы - если сделать периферийку, то она без ключа работает.
39 КонецЦикла
 
13.04.14
14:45
В общем что-то я сомневаюсь что взлетит
Посмотрел ночью я этот перехватчик...
Надо тупо заменить вызовом своей процедуры и впредь помнить об этом и не ипать моск если хочется жить честно, а УРБД покупать не планируется
40 КонецЦикла
 
13.04.14
14:47
(37) У него ДБФ
Да, согласен, возможно и из пушки. Но потом может пригодиться еще :)
41 Torquader
 
13.04.14
15:00
Ну, тогда можно dbeng.dll посмотеть в отладчике - там можно перехватить запись всего и вся.
42 Mikeware
 
14.04.14
08:42
(38) Опередил :-)
(29) Сделай свою базу как периферийку. Правда, будет некоторый гемор при обновлении (переделывать в цб и обратно). Но это можно даже скриптиком или обработкой делать.
43 Ёпрст
 
14.04.14
09:21
(0) не программную запись, легко
http://www.1cpp.ru/docum/icpp/html/extobjs.html#id102
44 Злопчинский
 
14.04.14
18:36
(42) добавление ссущностей не должно превращаться в гемор при работе. не буду я свою базу делать периферийкой
45 Злопчинский
 
14.04.14
18:41
Епрст, я в классах - как слон в институте, нихрена не понимаю. я ж девелопер. мне до этого ООП - как до луны пока не пришпилит совсем что без этого не обойтись.
.
можно пример на уровне кода, что куда подключать ч что куда писать..?
.
спсб!
46 Mikeware
 
15.04.14
07:11
(44) "увеличение функциональности при ограниченности ресурсов достигается повышением геморройности"©