Имя: Пароль:
1C
1С v8
Своя система версионирования, логирования изменений
,
0 Borislav
 
27.08.12
10:45
Привет всем!
Поставили задачу сделать свою систему версионирования.(логирования)
- чтобы записывалось в другую базу 1с (чистую).
- Записи типа -
Документ - ТоварнаяНакладная
Дата - 12.12.12
Изменено:
Цена с 12.00 на 12.80
Поставщик Оао "XXX" на ООО "XXX"
Изменил Иванов Иван Иваныч

или

Справочник - Контрагенты
Дата - 12.12.12
Изменено:
Наименование Оао "XXX" на ООО "XXX"
Изменил Иванов Иван Иванович

и т.п.

те по сути это будут логи изменений
стандартная система версионирования не подходит из за громоздкости

какие задумки -
соединение с пустой базой(база) через V82.COMConnector

в рабочей базе добавить подписку на событие призаписи

в базе логов создается документ в табличной части которого показываются измененные реквизиты типа ("До" "После")

В базе логов можно посмотреть отчет по этому документу

Сам я еще зеленый (два месяца с 1с8) и хочу услышать ваши мнения профессионалов. Первое сообщение на форуме не ругайте сильно если что не так.
1 Cube
 
27.08.12
10:47
(0) Забавно: "Сам я еще зеленый (два месяца с 1с8)", но "стандартная система версионирования не подходит из за громоздкости"...
:)
2 ILM
 
гуру
27.08.12
10:48
(1) В голову не влезает...
3 ILM
 
гуру
27.08.12
10:50
(0) Дежа-вю, видел и собственные системы распределения прав, и собственные системы печати, и даже версионирования. Всё проходит и это пройдет.
4 pumbaEO
 
27.08.12
10:56
Начинай лучше с малого "переписать УПП", вот это я думаю достойная задача, для 2-х месячного знакомства.

http://infostart.ru/public/63420/ - на затравку про версионирование.
5 acsent
 
27.08.12
10:57
смотри лучше разработку Бизнес-Плюс
6 Hipernate
 
27.08.12
11:03
Все уже написано до вас, продам готовую систему.
7 Borislav
 
27.08.12
11:04
(4) А что делать если говорят делать...
на инфостарте вроде что то похожее посмотреть бы.
только я ничего скачать не могу тк SM нету.
8 rs_trade
 
27.08.12
11:05
(0) блокировки, блокировки, блокировочки... не взлетит. хотя если там полтора юзера будет работать, то сойдет.
9 МишКа
 
27.08.12
11:05
(7) Если говорят делать, то... делать)))
А кто задачу поставил-то?
10 Hipernate
 
27.08.12
11:09
+(6) работает нормально 20 пользователей совершенно не замечают что логируются каждое изменение каждого документа.
11 Hipernate
 
27.08.12
11:10
+ (6) правда база должна быть сикульная и начинает быстро рости.
12 Азат
 
27.08.12
11:11
(0) а зачем в базу 1С писать? пиши лучше в SQL)) норм тепма
13 Borislav
 
27.08.12
11:14
(9) Как кто, начальник есно
(11) да база sql server 2005
(12) Я ж зеленый, регистры запросы скд еще изучил а чистый sql темный лес

точно - нужно сделать что нить типа журнала регистрации изменений
http://infostart.ru/public/19364/
но условие записи в отдельную базу
14 МишКа
 
27.08.12
11:16
(13) Здорово он от тебя отвязался.
Ну делай, делай... Из базы в базу писать не сложно. COM тебе поможет.
15 Fragster
 
гуру
27.08.12
11:16
стандартное версионирование я бы доделал лишь в том плане, чтобы все версии хранились в одном хранилище значения. в таком виде оно жмется намного эффективнее, чем по строке на версию
16 hohol
 
27.08.12
11:18
(0) Типовые конфигурации вообще громоздкие, тормозные, пиши свою с нуля.
17 Fragster
 
гуру
27.08.12
11:19
а как в (0) я видел... особенно эпичен алгоритм сравнения ТЧ документов при записи истории, занимало до 90% проведения документа
18 pessok
 
27.08.12
11:20
(17) а шо там можно накосячить то? приоткрытии копируется все в тз, потом финальный результат в тз, и сравнивается построчно...
19 Liova
 
27.08.12
11:22
(12) А вот иметь историю объектов в отдельной базе - хорошая идея. А то родная система разрастается до половины размера базы, приходится делать архивирование, получается полу-стандартная система.
20 ptiz
 
27.08.12
11:24
(17) В таком случае (если сравнение долгое), я бы сохранил целиком данные "до" и "после", а потом в фоновом режиме можно сравнивать и сохранять лог.
21 pumbaEO
 
27.08.12
11:27
(20)+в фоновом можно и в другую базу сбрасывать.
22 Borislav
 
27.08.12
11:29
(16) Вы смеетесь надо мной? "грешно смеяться над больными людьми" (из кф "Кавказкая пленница").

Из этой темы для меня полезной инфой пока оказалось что:
1) Похожее кем-то уже было сделано
2) Записывать в отдельную базу это хорошо

Люди еще раз прошу помощи. У Кого есть  возможность скачать обработку с инфостарта (13) и выложить?
23 Shurjk
 
27.08.12
11:30
(0) Бэкапы в скуле легко решают эту задачу.
24 pumbaEO
 
27.08.12
11:32
(23) особенно при закрытии месяца по 5 раз на дню, по документу поднимать, как я же "Марья Ивановна" изменила статью затрат в этом документе.
25 pumbaEO
 
27.08.12
11:33
(22) ты учиться собрался или халявить? Пиши свою, потом сравним.
26 Liova
 
27.08.12
11:34
(22) Всё же логичнее переносить данные, полученные стандартным версионированием, в отдельную базу.
27 myk0lka
 
27.08.12
11:35
(22)А чем из БСП не устраивает?
28 hohol
 
27.08.12
11:35
(22) Нет это диа
29 hohol
 
27.08.12
11:36
гноз. За 3 года можно было уже тру одинэсником стать.
30 МишКа
 
27.08.12
11:37
(22) Вообще-то лучше самому. А то скачаешь - сдашь работу начальнику. Он тебе другую. Опять искать, скачивать... Тебе это надо? )))
31 Borislav
 
27.08.12
11:44
Ок , по обработками на инфостарте что я понял

в новой базе для логирования - использовать справочник, а не документ
в его реквизиты вывожу имя объекта , его код, и намиенование

в табличной части я записываю изменения реквизитов

.
попробуемс
32 pessok
 
27.08.12
11:46
(31) наверное всеже в РС лучше писать, не?
33 Cube
 
27.08.12
11:46
(31) Ничего ты не понял! Используй стандартное версионирование в УПП - немного допили, чтобы в другую базу сохранял и всё.
34 zladenuw
 
27.08.12
11:55
(31) лучше РС, делаешь его периодичным и получаешь по срезу последних. последние изменения объекта. а в реквизит писать версию.
35 Borislav
 
27.08.12
12:08
(33) Я думал насчет стандарного. Стандартное версионирование пишет объект в XML, переводит в двоичные и сует в РС в хранилище значений. Те мне нужно будет и документ сохранять и РС  в базе логов. тогда база логов полюбэ будет большой. и надо как то связать эти данные для отчета...незнаю

(34) Сейчас я ориентируюсь на http://infostart.ru/public/19364/ там вроде просто сделано.

основная сложность для меня это разделение на Рабочую базу и базу для логов. Попробую пока сделать механизм отслеживания изменений в одной базе.
36 Cube
 
27.08.12
12:17
(35) "Стандартное версионирование пишет объект в XML, переводит в двоичные и сует в РС в хранилище значений. Те мне нужно будет и документ сохранять и РС  в базе логов" - сам-то понял что сказал?
Стандартный механизм переводит объект в XML и сохраняет его (XML) в РС. Всё.
37 Азат
 
27.08.12
12:18
(0) автор, пиши в аську, за умеренные деньги покажу и расскажу, как сделать в SQL базу логи
38 zladenuw
 
27.08.12
12:20
(37) а если нужно будет вытянуть определенную версию и изменить ее. с помощь ыйд можно так же ?
39 Sinus1984
 
27.08.12
12:40
Скорее всего логирование не ришит прблему, не верного изменения реквизитов. у нас, например, на фирме когда боролись с этим сначала тоже логированием, но всеравно приходилось потом менять в ручную. Помогло четкое разделение прав.
Если конечно цель наказать человека, то можно и по принципу "Кто последний тот отец", нефиг лишний раз записовать документ, как бонус уйдут лишние транзакции, если все научатся "Закрыть" нажимать, а не "ОК"
40 Азат
 
27.08.12
12:50
(38) да в принципе без особых проблем...
41 zladenuw
 
27.08.12
12:59
(40) на неделе постучусь в аську. обсудим :)
42 Азат
 
27.08.12
13:30
(41) ок
43 Borislav
 
27.08.12
16:58
Работа движется.

Создаю регистры сведений независимые, непериодические
измерения: объект , Прежнее, Новое

создаю методом
МенеджерЗаписиВерсииОбъектов = РегВерсииОбъектов.СоздатьМенеджерЗаписи();                
записываю                
МенеджерЗаписиВерсииОбъектов.Записать();


почему постоянно переписывает один и тот же регистр, в чем недочет?.
44 pumbaEO
 
27.08.12
17:10
А сколько чудных тебе откроет логи по зарплатным документам, когда 1С при банальном рассчете пишет, удаляет, пишет дохера движений и фиг поймешь, а где расчет, а где готовый документ.
45 Serg_1960
 
27.08.12
17:19
(44) +1 Как представил "свою систему версионирования"(тс) расчета себестоимости при включенном РАУЗ, так сразу... :))
46 Cube
 
28.08.12
04:28
(45) Да, на "версии" документа "Расчет себестоимости" в системе версионирования автора ветки я бы тоже глянул))))
47 Рэйв
 
28.08.12
06:42
48 Borislav
 
28.08.12
09:04
(44)(45)(46) Разобрался сам. сделал периодическим, переместил реквизит в измерение.

(47)Процедура отслеживания изменений у меня есть. все равно спасибо

В принципе теперь логи изменений пишутся в другую базу.
[Code]

//подключаемся к базе и записываем
COMConnector = Новый COMObject("V82.COMConnector");
// создается объект COM-соединение
СтрокаСоединение = "File=""C:\Documents and Settings\User\Мои документы\InfoBase3"";Usr="""";PWD=""""";
connection = COMConnector.Connect(СтрокаСоединение) ;

[\Code]

Нужно ли закрывать соединение COM с другой базой. если да то каким методом?
49 Web00001
 
28.08.12
09:34
Простите, что вмешиваюсь в ход ваших мыслей, вы считаете что у вас версионирование получится более элегантным чем у 1С? И еще один вопрос может купить это http://infostart.ru/public/18588/ ну дешевле же выйдет чем самому городить велосипед с нуля
50 МишКа
 
28.08.12
10:14
(48) Может имеет смысл открывать соединение 1 раз за сеанс.
(49) У человека - не коммерческий вопрос.
51 pumbaEO
 
28.08.12
10:47
Взять версионирование от 1С и регламентным заданием оставить последних 2 версии документа, а все остальное перенести в другую базу.
52 Borislav
 
28.08.12
13:17
(49) Версионирование не подходило из-за увеличения базы данных. Купить можно, но пойдет ли на это организация, имеющая в штате "программиста 1с".

(50) Все я уже сделал - COMConnector = Неопределено, такой метод работает

Работа сделана - логи изменений в справочниках и документах ведутся. Все состоит из функции и трех процедур в отслеживаемой базе и базы для логирования с одним регистром сведений и простым отчетом по нему. Если нужно то могу выложить, только подскажите какой тег использовать для листинга кода 1с?
53 pumbaEO
 
28.08.12
13:46
(52) выложи на инфиостат.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn