|
УРБД: Регистрация изменений | ☑ | ||
---|---|---|---|---|
0
Злопчинский
04.09.10
✎
20:09
|
Подскажите неграмотному: есть документ ПеремещениеТМЦ с основного склада центральной базы (фирма=центр, склад=Центр) на розничную точку (периферийная база, фирма=Периферия1, склад=периферия1). Возможно и обратное перемещение. Перемещение между точками, минуя ЦБ - нет такого. Перифериек несколько.
Как (в конфигураторе/программно) сказать, что миграция документа ПеремещениеТМЦ должна осуществляться по такой схеме: - документы из всех ПБ должны попадать в ЦБ. - документы из ЦБ должны попадать только в ту ПБ, на которую осуществляется перемещение. - в ЦБ возможно выполнение перемещения из периферийки в ЦБ - этот документ также должен мигрировать в свою ПБ. .. ???? |
|||
1
ДенисЧ
04.09.10
✎
20:12
|
никак, как ты понимаешь.
Только ручной чисткой файла обмена |
|||
2
Злопчинский
04.09.10
✎
20:27
|
хорошо, фиг с ним... пусть доки из ЦБ мигрируют во все базы.
. а как сделать чтобы при проведении дока в ЦБ по регистру было и списание с ЦБ и поступление на ПБ, а при выгрузке в ПБ чтобы мигрировали только движения поступления на ПБ? |
|||
3
ДенисЧ
04.09.10
✎
20:28
|
(2) опять же - чистить файл обмена...
|
|||
4
Злопчинский
04.09.10
✎
20:43
|
итого получается что:
(если все делать штатными методами) . 1) если есть документ по которому при проведении идут движения по регистрам и в регистре есть списание с ЦБ и оприходование на ПБ - то никак списание не вычеркнуть из миграции на ПБ? - так? ???? |
|||
5
Злопчинский
04.09.10
✎
20:45
|
2) если есть документ: то никак не зарегистрировать например миграцию на ПБ1 если складприемник=ПБ1, а на другие ПБ - миграцию не проводить? - так???
|
|||
6
Злопчинский
04.09.10
✎
20:45
|
тогда общий вопрос: как настроит миграцию документов из ЦБ в ПБ, чтобы в ПБ приходили только предназначенные для ПБ доки?
|
|||
7
KRV
04.09.10
✎
20:52
|
"Место создания и центр"
|
|||
8
vcv
04.09.10
✎
20:52
|
По моему, единственный штатный вариант, без чистки файла обмена, создавать на ПБ заготовки документов, на ЦБ вместо создания нового документа брать заготовку.
|
|||
9
ДенисЧ
04.09.10
✎
20:53
|
я повторяю в третий раз - чистить файлы обмена. Или покупать МОД
|
|||
10
KRV
04.09.10
✎
20:54
|
+(7) только придется иметь "заготовки" документов в перефирийках...
|
|||
11
Злопчинский
04.09.10
✎
20:55
|
(10) не подходит.
|
|||
12
KRV
04.09.10
✎
20:58
|
Тогда свое писать...
|
|||
13
Злопчинский
04.09.10
✎
21:01
|
Тогда такой вопрос:
В центральной базе есть пара документов: одна сторона пары: Реализация с центральной фирмы на точку клиента или Реализация с перфиерийной фирмы на точку-центральный клиент - эти доки никуда не мигрируют, т.е. место создания. . вторая сторона пары: Поступление с клиента-центр на фирмуПериферийнаяТочка или Поступление с клиента-точки на фирмуЦентральнаяБаза - эти доки должны мигрировать только из центра на СВОЮ ПБ или из ПБ в ЦЕНТР (при этом исправления в центре периферийных доков должны мигрировать в свои ПБ) . я так понимаю, что такую схему реализовать штатной УРБД - нельзя? в чем тогда ценность УРБД - сорри но я не понял.... ????? |
|||
14
Ork
04.09.10
✎
21:07
|
Все просто. Средствами платформы определить куда передавать документ из ЦБ нельзя.
Студенты пользуют 2 варианта. 1. Область миграции все ПБ. В ПБ ограничивают видимость "чужих" документов. 2. Используя внешние флаги создают документы с нужными реквизитами в ПБ с областью миграции "Место создания и центр". |
|||
15
Злопчинский
04.09.10
✎
21:11
|
(14)
п.1 понятно, не подходит. п.2 - не понял... какие внешние флаги? в пб я ничего создать не могу - я сижу в ЦБ. я могу сделать документ ВМЕСТО оператора ПБ в центральной базе - он должен уйти в свою ПБ. . ??? |
|||
16
Ork
04.09.10
✎
21:11
|
Все в (14) реализуется штатными возможностями платформы.
|
|||
17
Злопчинский
04.09.10
✎
21:12
|
(16) непонятно.
как из п(13) сделать "вторую сторону пары".? |
|||
18
Ork
04.09.10
✎
21:20
|
(17) Без "извратов" не обойтись.
Сценарий примерно такой : 1. В ЦБ создается документ например "Запрос на перемещение" с областью миграции "Место создания". В ПБ используя метод ТекущаяИБЦентральная() ввод таких документов запрещаем (если нужно). 2. На ПБ отправляется файлик (TXT, DBF, XML ...) с описанием создаваемого документа. 3. НА ПБ в соответствии с описанием создается документ нужного вида и указанием реквизитов запроса. 4. В ЦБ после обмена с ПБ имеем нужный документ. Все его изменения будут ездить только ЦБ<->ПБ (Место создания). Если нужно исходный запрос можем удалить или отметить его выполнение. |
|||
19
Злопчинский
04.09.10
✎
21:26
|
918) хреново, п.2 - вне схемы типовой УРБД. получается до обмена/после обмена придется делать допдвижения туловищем...
|
|||
20
Ork
04.09.10
✎
21:27
|
+(18) Сценарий №2.
1. Опытным путем определяем количество документов нужного вида, которые вводятся между сеансами обмена. 2. В ПБ (например при старте) определяем количество непроведенных документов нужного нам вида. Если недостатачно - создаем. 3. В ЦБ ищем непроведенный документ с реквизитом, где записан ИБСозданияОбъекта() переставляем даты, время, заполняем реквизиты. Все. Имеем документ который будет ездить ЦБ<->ИБСозданияОбъекта(). Соответственно заполнение заготовок в ПБ должно быть запрещено. |
|||
21
Ork
04.09.10
✎
21:29
|
(19) Насчет допдвижений эт-та да. А кому сейчас легко?
|
|||
22
Ork
04.09.10
✎
21:30
|
+(20) Вместо фишки проведен-непроведен можно пользовать (например) реквизит "ЗаполненВЦентре".
|
|||
23
KRV
04.09.10
✎
21:35
|
А Ви знаете.. что-то таки не то с форумом, позвольте заметить, в последнее вгемя.. таки уже ветка ушла за 20 постов и обгатите внимание: таки еще никто не сказал, что Ви обязательно переходите на восьмерку! что там это уже сделано! :)))
|
|||
24
AeDen
04.09.10
✎
21:52
|
(19) откажитесь от УРБД.
|
|||
25
Злопчинский
04.09.10
✎
23:21
|
(24) а что юзать?
|
|||
26
KRV
04.09.10
✎
23:28
|
(24)Весь смысл УРБД в том, что платформа отслеживает измененные документы... ну а так свое написать между идентичными конфигами можно..
|
|||
27
Aleksey_3
04.09.10
✎
23:34
|
(25) Мод, например
|
|||
28
Андрей_Андреич
naïve
05.09.10
✎
06:25
|
У меня УРБД регистрирует изменения, а обмен с помощью МОДа
|
|||
29
AeDen
05.09.10
✎
08:56
|
(28) А у меня и МОД регистрирует изменения
(25) Свои наработки. Если все на скулях - ваще проставить spdisigner на все базы, понавешать джобов, и пусть обмен фигачит сам собой. |
|||
30
Андрей_Андреич
naïve
05.09.10
✎
10:16
|
(29) У меня тоже регистрировал. Но с увеличением объемов стал пропускать объекты время от времени. УРБД надежнее.
|
|||
31
Aleksey_3
05.09.10
✎
10:18
|
(30) И кроме пропуска он через одно место работает с подчинеными справочниками. Даже такая элементарная задача как группы - для него тоже проблемотично
|
|||
32
Aleksey_3
05.09.10
✎
10:20
|
А для УРБД. Там вопрос только как чистить таблицу изменений, если база на ДБФ?
|
|||
33
Cthulhu
05.09.10
✎
12:49
|
я бы мутил в сторону разделения на расход-перемещение и приход-перемещение (миграция МСиЦ), "болванок" приход-перемещений из перифериек в ЦБ, которые между приемом обменов из перифериек и выгрузкой обменов для перифериек обработкой пакетно заполнять-проводить. методологичекски корректнее (склад "товары в пути" или даже несколько складов таких - перевозчиков укрупненно или своих ТС или ответственных за доставку - по ним остатки бывают немаловажны и факт перевозок, ну и логистику накрутить моно, или ещё чево)
|
|||
34
Cthulhu
05.09.10
✎
12:50
|
(32): любой вопрос имеет ответ )))
|
|||
35
Aleksey_3
05.09.10
✎
12:51
|
(34) Пока что не находил ответа, кроме перехода на скуль. Вся надежда была на запись средствами 1Sqlite, но автор решил на 8-ку податься.
|
|||
36
Aleksey_3
05.09.10
✎
12:52
|
Писать, апдейтить не вопрос, вопрос в том, что индексы после этого сбиваются %(
|
|||
37
Mikeware
05.09.10
✎
12:55
|
1. У документов делается общий реквизит - "ИндексМиграции"
2. Делается справочник ИБ, в котором перечислены ИБ с индексами баз 3. делается справочник правил миграции 4. в глобальнике делается процедура, заполняющщая Индекс по Правилам 5. ДТС-пакет, или триггер на 1сдаундоадс, чистящий апдейтс. собственно, все.... |
|||
38
Cthulhu
05.09.10
✎
13:01
|
(35): я в dbf Xbase-ом обхожусь.
|
|||
39
toypaul
гуру
05.09.10
✎
13:15
|
на sql легко. на dbf - хз
|
|||
40
Aleksey_3
05.09.10
✎
13:16
|
(38) Мы сейчас говорим о модификации таблицы 1С (1supdts.dbf)? Просто можно добавить запись, но 1С не видет ее пока не проиндексирует эту таблицу
|
|||
41
Aleksey_3
05.09.10
✎
13:17
|
(39) На скуле и тригеры можно повесить, и тогда задача из (0) легко решается с помощью самого скуля
|
|||
42
Aleksey_3
05.09.10
✎
13:19
|
В случае монопольного режима можно и копировать эту таблицу, модифицировать ее, переиндексировать и вернуть ее обратно. Но когда толпа юзверей работает в 1С... это уже проблематично
|
|||
43
Mikeware
05.09.10
✎
13:19
|
(40) Не задавался целью. Но легко решается внешней приблудой с нужным драйвером БД. Где-то видел указание на конкретный используемый 1с драйвер.
|
|||
44
Aleksey_3
05.09.10
✎
13:25
|
(43) Если писать через FoxPro-шный драйвер, то летят индексы, так как немного отличается сортировка.
|
|||
45
Mikeware
05.09.10
✎
13:27
|
Ну я и говорю, найти используемый. ИМХО, это какой-то старый фоксовый.
|
|||
46
Aleksey_3
05.09.10
✎
13:31
|
(45) Самый последний
|
|||
47
Злопчинский
05.09.10
✎
13:32
|
итого: плохо все... с извратами...
|
|||
48
Mikeware
05.09.10
✎
13:33
|
(47) Увы. Но работает
|
|||
49
toypaul
гуру
05.09.10
✎
13:33
|
на sql никаких триггеров не над. делано уже и не раз.
кстате на dbf можно табличку изменений просто чистить перед обменом. наверное... |
|||
50
Aleksey_3
05.09.10
✎
13:33
|
(47) Ну минимальное телодвижение это делать через промежуточный склад и с "балванками"
|
|||
51
Cthulhu
05.09.10
✎
13:40
|
(40): см.(38).
(42): регламенты, расписание, стартер ромикса. никто и не говорит, что бардак автоматизировать возможно. |
|||
52
Aleksey_3
05.09.10
✎
13:41
|
(49) Еще раз. Средствами 1С нельзя чистить табличку (нет технической возможности, т.е. нет команды. УРБД.УдалитьЗаписи()). Через XBASE тоже облом (иначе зачем 1С++, если 1С сама может свои таблицы читать). Через внешнего провайдера ... у 1С свой особый механизм сортировки и работы с индексами, поэтому тоже засада.
|
|||
53
Cthulhu
05.09.10
✎
13:42
|
(50): промежуточныЕ складЫ и в каждой базе свой экземпляр - это весьма удобно (плюс контроль перевозчиков, плюс логистика).
|
|||
54
Cthulhu
05.09.10
✎
13:42
|
(52): странно, а у меня не облом. наверно что-то не так делаю.
|
|||
55
Aleksey_3
05.09.10
✎
13:52
|
(54) Код в студию
Например Процедура Сформировать() База = СоздатьОбъект("XBASE"); Путь=КаталогИБ()+"1SJOURN.DBF"; База.ОткрытьФайл(Путь); База.Первая(); Для й = 1 По База.КоличествоЗаписей() Цикл Сообщить(""+База.Date); База.Следующая(); КонецЦикла; КонецПроцедуры Выводит ошибку База.Первая(); Перед выполнением операции нужно открыть базу! Хотя если обратиться к журналу другой базы, то все нормально |
|||
56
Cthulhu
05.09.10
✎
14:27
|
//(55): странно. самопальная универсалка натравленная на 1sjourn тек.базы:
тТабОбъект.ТекущийИндекс(СокрЛП(фТекИндексНаим)); тЗап=0; кЗап=тТабОбъект.КоличествоЗаписей(); тТабОбъект.Первая(); тНачМСек=_GetPerformanceCounter(); Пока тТабОбъект.НомерЗаписи()>0 Цикл тЗап=тЗап+1; Состояние("Заполнение: #"+тЗап+"/"+кЗап+" ..."); фТЗ.НоваяСтрока(); фТЗ.ПолучитьСтрокуПоНомеру(тЗап); Если тВыб=1 Тогда фТЗ.ТекущаяСтрока(тЗап) КонецЕсли; фТЗ.НомерЗаписи=тТабОбъект.НомерЗаписи(); фТЗ.НеУдалена=1-тТабОбъект.ЗаписьУдалена(); Для тСтр=1 По тТабОбъект.КоличествоПолей() Цикл тТабОбъект.ОписаниеПоля(тСтр,тНаим,тТип,тДлина,тТочн); фТЗ.УстановитьЗначение(фТЗ.НомерСтроки,тНаим,тТабОбъект.ПолучитьЗначениеПоля(тНаим)); КонецЦикла; Если тТабОбъект.Следующая()=0 Тогда Прервать КонецЕсли; КонецЦикла; тКонМСек=_GetPerformanceCounter(); // http://s40.radikal.ru/i089/1009/f5/110345f4a37b.png - читается нормально. // про 1супдтс: список удаляемых сохраняется нормально. // и - да, "снаружи" (конфига унив.обработчик висит, мониторит и выполняет // задания) по списку всё удаляется тоже нормально. |
|||
57
Aleksey_3
05.09.10
✎
14:30
|
Кто провайдер?
1Сpp (ADO, OLE) читает без проблем 1Sqlite - тоже читает без проблем |
|||
58
Mikeware
05.09.10
✎
14:31
|
(56) гыгыгы© додуматься до "внешнего обработчика" как отдельной, другой конфигурации на 1с я не смог :-)) Хотя это самое очевидное.
Где взять пепла посыпать голову? |
|||
59
Cthulhu
05.09.10
✎
14:38
|
(57): см.(51), первая строка.
(обрати внимание на использование "родного" индекса - сюрпрайс?)) |
|||
60
Cthulhu
05.09.10
✎
14:39
|
(58): не комплексуй, я нечаянно. :))
|
|||
61
Mikeware
05.09.10
✎
14:40
|
(60) Да пофиг. Привык к сиквелу... застоялся...
|
|||
62
Cthulhu
05.09.10
✎
14:43
|
(61): тогда представь себе охрененный такой большой триггер на все таблицы всех баз... )))
|
|||
63
Aleksey_3
05.09.10
✎
14:47
|
(59) Т.е. выгоняешь всех и работаешь с базой один?
|
|||
64
Cthulhu
05.09.10
✎
14:51
|
(63): "ты так об этом сказал как будто это что-то плохое" (с).
да. у меня везде есть регламенты, содержащие (если это нужно) короткие технологические перерывы. и я имею дурную привычку иное называть "бардаком". простишь?.. ))) |
|||
65
Cthulhu
05.09.10
✎
14:54
|
(64)+: а, да! если ты про (56) а - то без выгоняний работает. выгоняю только для обработчика "снаружи" да и то не всегда - лочу 1супдтс в попытке и юзверя ждут просто сколько надо (сколько надо - им сообщение выходит про перекур).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |