Подскажите если вставить версионирование объектов в существующую базу сильно ли растет ее объем от использования механизма?
Вид для печати
Подскажите если вставить версионирование объектов в существующую базу сильно ли растет ее объем от использования механизма?
во-первых все зависит от того какие объекты будете версионировать, а во вторых - смотря по какому принципу: при записи или при проведении. Какая конфа и что хотите версионировать?
Для затравки - в Семерке была Эпичнейшая весчь - "Блокировка".
Мона было проверить, кто занят объектом, к которому хочешь прикоснутся.
В восьмерке такого НЕТ.
Но, тем не менее, ты всегда можешь проверить, что объект изменен.
В этом и заключается (отчасти) версионирование.
А теперь Лулзы.
Просто поэкспериментируй.
1. У тебя пользователь открыл объект.
2. Другой пользователь открыл этот же объект.
3. Первый пользователь изменил объект и ЗАПИСАЛ.
4. Ждем комментариев от Радомира.
...
Н. ПРОФИТ!!!
Впрочем, версиониорувай, не версиониорувай.
Все равно получишь сам знаешь чито.
Как вариант - абсолютное логирование, но не торт, который предлагает 1С.
Об этом - отдельная песня и отдельная тема (ибо под семерку отработо, под восьмерку - частично).
С этим вопросом не сталкивался. В крайнем случае, Вы можете почистить регистр до определенной даты.
[QUOTE=yarosha;23412098]
Просто поэкспериментируй.
1. У тебя пользователь открыл объект.
2. Другой пользователь открыл этот же объект.
3. Первый пользователь изменил объект и ЗАПИСАЛ.
[/QUOTE]
Второму пользователю записать не получиться
версионирование попробывал... работает классно.. но боюсь что база будет стремительно расти... работает около 20 пользователей с огромными массивами документов... у нас логи 1с растут в размерах как грибы..
Как вариант, в момент закрытия периода очищать регистр сведений.
[QUOTE=vitasw;23416429]Второму пользователю записать не получиться[/QUOTE]
Разберись, а потом пиши.
Не обижайся.
По хорошему - разберись с блокировками просто в Реляционных Базах Данных.
Кури Доктора Кодда.
При одновременном доступе к одному и тому же объекту базы данных второму пользователю(если первый внес изменения) вообще ничего нельзя, только посмотреть.
Или изъясняйся яснее.
[QUOTE=vitasw;23479461]При одновременном доступе к одному и тому же объекту базы данных второму пользователю(если первый внес изменения) вообще ничего нельзя, только посмотреть.
Или изъясняйся яснее.[/QUOTE]
Изъясняюсь яснее.
А семерке есть такая функция "Блокировка".
В восьмерке отсутствует.
Эта функция позволяет выяснить (в семерке), работает кто-то с данным объектом или нет ( в режиме редактирования).
В восьмерке возможности выяснить, кто в данный момент работает с объектом (или вообще работает) - не нашел.
Как это выглядит на практике (независимо от БеДэ - будь то Пост, Ора, Мускул, Мелкий и прочее и прочее).
1. Кто-то начал просматривать с возможностью редактирования кортеж записей (набор строк в плоских таблицах - кому непонятно - курим д-р Кодда).
2. Кто-то туда ломица, чтобы сделать нечто аналогичное.
3. Второму пункту говорица - "Звіняйитє - бананів нє ма".
ЗЫ На практике.
На примере кошек. К сожалению я не умею их готовить. Я их просто обожаю. ЙА КОШАТНИК!!!!
Открываете два объекта (например справочник "Номенклатура" - "Холодильник такой-то".
Пускаете туда двух кошаков.
Если один кошак полез в холодильник - другой туда не лезет - и вот это - правильно.
ЗЫ Для справки:
[URL="http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4%D0%B4,_%D0%AD%D0%B4%D0%B3%D0%B0%D1%80"]Кодд, Эдгар[/URL] - как ни странно, [URL="http://lurkmore.ru/%D0%91%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B5_%D1%83%D1%87%D0%B5%D0%BD%D1%8B%D0%B5"]британский учёный[/URL], работы которого заложили основы теории реляционных баз данных. [URL="http://lurkmore.ru/%D0%98%D0%BD%D0%B4%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4"]
Предлагаю отложить д-р Кодда и покурить 1С. Все происходит именно так как написал vitasw. А также курим встроенную справку методы справочников и документов Заблокировать() и Заблокирован().
[QUOTE=yarosha;23498147]Изъясняюсь яснее.
А семерке есть такая функция "Блокировка".
В восьмерке отсутствует.
Эта функция позволяет выяснить (в семерке), работает кто-то с данным объектом или нет ( в режиме редактирования).
В восьмерке возможности выяснить, кто в данный момент работает с объектом (или вообще работает) - не нашел.
Как это выглядит на практике (независимо от БеДэ - будь то Пост, Ора, Мускул, Мелкий и прочее и прочее).
1. Кто-то начал просматривать с возможностью редактирования кортеж записей (набор строк в плоских таблицах - кому непонятно - курим д-р Кодда).
2. Кто-то туда ломица, чтобы сделать нечто аналогичное.
3. Второму пункту говорица - "Звіняйитє - бананів нє ма".
ЗЫ На практике.
[/QUOTE]
Разве я не то же самое сказал?
А программные методы блокировки перечислил Radomir.
yarosha в следующий раз попробуй сам сначала разобраться, а потом давать советы.
Программное определение блокировки чаще необходимо при работе с регистрами, чем со справочниками и документами.
В справочниках момент неопределенности может возникать при одновременном создании элементов справочника, причем подчиненного. При одновременном создании элементов справочника верхнего уровня все проходит нормально, а у подчиненного могут возникать ошибки записи нового объекта. Но это уже не относится к теме. (И признаюсь честно я еще до конца не отловил при каких условиях происходит конфликт)
[QUOTE=vitasw;23504469]Разве я не то же самое сказал?
А программные методы блокировки перечислил Radomir.
yarosha в следующий раз попробуй сам сначала разобраться, а потом давать советы.
Программное определение блокировки чаще необходимо при работе с регистрами, чем со справочниками и документами.
В справочниках момент неопределенности может возникать при одновременном создании элементов справочника, причем подчиненного. При одновременном создании элементов справочника верхнего уровня все проходит нормально, а у подчиненного могут возникать ошибки записи нового объекта. Но это уже не относится к теме. (И признаюсь честно я еще до конца не отловил при каких условиях происходит конфликт)[/QUOTE]
А методы блокировки блокировки в залоченной конфигурации [I]Radomir [/I]курил? Или может [I]vitasw [/I]может что-то подсказать?
Вот Вам, Уважаемые, пример справки:
"Следует учитывать, что этот метод используется для проверки блокировки объекта базы данных конкретным объектом встроенного языка. [U][I][B][SIZE=4]Он не может быть[/SIZE] использован для проверки, заблокирован ли вообще объект базы данных, например, [SIZE=4]другими пользователями[/SIZE].[/B][/I][/U]"
Не в обиду.
ЗЫ. То же для документа:
Следует учитывать, что этот метод используется для проверки блокировки объекта базы данных конкретным объектом встроенного языка. Он не может быть использован, чтобы проверить, заблокирован ли вообще объект базы данных.
Давайте проверим. Кто курит матчасть.
Может, как всегда - мысли, но тем не менее.
Не поленюсь, сам проверю.
Жду ответов...
Заблокировать (Lock)
Синтаксис:
Заблокировать()
Описание:
Выполняет блокировку объекта от изменения другими режимами или пользователями.
Будем и дальше копировать синтаксис?
Вообще-то речь шла о версионировании объектов, которое в первую очередь касается справочников и документов, а не, как следствие, регистров.
Как я уже говорил, есть смысл программно блокировать регистры в момент выполнения сложных расчетов.
Для справочников/документов - это очень специфические случаи. В подавляющем большинстве случаев хватает того что есть, и версионирование объектов проходит очень даже замечательно.
Яроша, а что значит заблокирован другим пользователем? Типа кто первый встал того и тапки? Какой смысл? Вопрос начался с чего:
Цитата Сообщение от yarosha Посмотреть сообщение
Просто поэкспериментируй.
1. У тебя пользователь открыл объект.
2. Другой пользователь открыл этот же объект.
3. Первый пользователь изменил объект и ЗАПИСАЛ.
vitasw ответил: Второму пользователю записать не получиться
И он прав. А Вы почему-то послали его учить мат.часть.
Вы же обсуждали не сферического коня в вакууме, а конкретный пример. На него vitasw дал абсолютно правильный ответ. Наверное стоит признать это.
Отвечаю на ваши вопросы.
Ситуация.
Работает Робот.
1. Не Бендер.
2. Управленческая база писана на Оракле плюс интерфейсные весчи на КодеГиар - кто знает - поймет.
3. С помощью "Конвертации данных" организован обмен в "Бухгалтерский Учет для Украины".
4. При этом конфигурация находится [B]целиком [/B]на поддержке.
А теперь - мякоть:
Первое (как вариант):
1. Робот лезет обновлять документ (ну так ему захотелось - есть причины).
2. При этом пользователь открыл документ (просто открыл).
3. При этом возможно будет редактировать документ.
4. Таким образом задача - роботу необходимо определить, что документ кем-то занят.
Второе - проведите эксперимент (кто раньше встал - того и тапки - как сержант запаса гарантирую - девять месяцев и пять дней топтал армейский асфальт после универа в 98-99 годах).
1. Сами проведите [URL="http://lurkmore.ru/%D0%91%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B5_%D1%83%D1%87%D0%B5%D0%BD%D1%8B%D0%B5"]эксперимент[/URL] (Лурк Море, куда жжж без него).
2. Запускаете базу под Пупкин Вася и второй Экземпляр под Васей Пупкиным.
3. Начинаете редактировать под Пупкиным Васей
...................
Джаст фор Лулз......
Речь идет о том, что ни Вася, ни Пупкин, ни Робот не знают, кто на данный момет работает с объектом.
[URL="http://lurkmore.ru/%D0%A2%D0%B0%D0%BA%D0%B8%D0%B5_%D0%B4%D0%B5%D0%BB%D0%B0"]Такие дела[/URL].
[LEFT]В семерке это выглядело примерно следующим образом:
Док=[COLOR=orange]СоздатьОбъект[/COLOR]("Документ");
Док.НайтиПоНомеру("00000000000",Дата("01.01.11"));
Если Док.Блокировка(1)=1 Тогда
[COLOR=orange]Предупреждение[/COLOR]("Свободен");
Иначе
[COLOR=orange]Предупреждение[/COLOR]("Заблокирован");
КонецЕсли
И это была проверка на то, что объект кто-то пользует.
[/LEFT]
И вообще.
Насчет версионирования - приведу в пример ЭПИЧНЕЙШИЙ пример.
Ток соберусь с силами - чтобы кратко и по-существу (как говорят прокуроры).
[QUOTE=yarosha;23550369]
Первое (как вариант):
1. Робот лезет обновлять документ (ну так ему захотелось - есть причины).
2. При этом пользователь открыл документ (просто открыл).
3. При этом возможно будет редактировать документ.
4. Таким образом задача - роботу необходимо определить, что документ кем-то занят.
[/QUOTE]
Зачем роботу определять что документ кем-то занят? никто ж не знает зачем пользователь открыл документ. Продолжая аналогию с тапками, пока пользователь потягивался и зевал, робот по шустрому уволок его тапки. Если же пользователь в итоге решит поменять и записать документ - ему скажут что тапок уже нет. В чем проблема? Или будем второго робота придумывать?
yarosha с роботами ты явно перемудрил.
Яроше: версонифицирование и блокировки отстоят друг от друга так же далеко, как твои рОботы от твоих же кошек. Это разные оперы.
После ответа Радомира ветку следовало бы закрыть и поставить в архив. Потом - одна вода.
Как в восьмерке узнать, кто открыл объект (неважно, будет он его редактировать или нет). В залоченной конфигурации.
Восьмерка действительно отличается в этом вопросе от семерки. Объект в ней могут открыть десятки пользователей одновременно. И это хорошо!
В семерке какой-то дурак откроет док и в носу ковыряется, а все остальные к этому объекту ну никак не подрубятся. Ну конечно, писали модули определения, кто конкретно этот баран.
В восьмерке все по уму: открыл - смотри, хоть повылазит тебе. А кто делом занимается - запишет. Я действительно не вижу объективной необходимости знать кто блокировал. Так как блокировка идет только на время записи.
Только при чем здесь версонифицирование, хотелось бы узнать?
[QUOTE=rusy_od;23403473]Подскажите если вставить версионирование объектов в существующую базу сильно ли растет ее объем от использования механизма?[/QUOTE]
Тут уже говорили, добавлю и я свои пять копеек: на моей предыдущей работе (СП "Украинская восточная рыбная компания", внедрюки - "А4" из города-героя Киева) в УПП было настроено версионирование при проведении. Но проблема в том, что менеджеры дописывают накладную и т.к. она уже была проведена, то срабатывало версионирование.
Менеджер корректирует накладную, а программа-дура пишет, а база-дура пухнет. Сколько документов, столько и версий, в среднем, помноженных на три минимум.
Периодически чистили реестр с версиями да и всё. Оставляли версии за последние пару месяцев для интересу.
По поводу "кто первый того и тапки". Есть N человек, нет, N мало, возьмем K. K человек открыло один и тот же документ и кто-то один взял его да и записал, при этом форма документа осталась открыта, и всем остальным система пишет "документ заблокирован пользователем Пупкой Васиным". И всё. Остальные только могут перечитать данные документа, а изменить его смогут только после того, как Пупка Васин закроет форму этого документа и освободит блокировки. В том числе и РОБОТ.
А если все K открывших документ человек ничего, кроме лурканья с документом не делали, то и роботу останутся тапочки - данные БД не изменялись ведь.
В 8.0 и был подобный механизм, как в 7.7 - открыд открытый документ и тебя система предупредила. В 8.1 это уже должен нарисовать разработчик (если мне не изменяет склероз).
На истинность не претендую.
[QUOTE=Vladal.Od;23659770]
Менеджер корректирует накладную, а программа-дура пишет, а база-дура пухнет. Сколько документов, столько и версий, в среднем, помноженных на три минимум.[/QUOTE]
Программа не дура, смысл версионирования объектов как раз и заключается в этом, чтобы знать что, кто и когда поменял.
Да всё хорошо. Я же это всё с иронией написал )))
[QUOTE=yarosha;23577599]Как в восьмерке узнать, кто открыл объект (неважно, будет он его редактировать или нет). В залоченной конфигурации.[/QUOTE]
Может кто-то ответит на этот вопрос
[QUOTE=yarosha;23694001]Может кто-то ответит на этот вопрос[/QUOTE]
Так я вроде уже отвечал. Ответ был: "никак, но это и не нужно"
[QUOTE=yarosha;23694001]Может кто-то ответит на этот вопрос[/QUOTE]
В залоченной = закрытой для изменения.
Т.е. нельзя будет написать код РаботаСДиалогами.УстановитьДоступностьФормыДляРедактирования?
[QUOTE=Vladal.Od;23715279]В залоченной = закрытой для изменения.
Т.е. нельзя будет написать код РаботаСДиалогами.УстановитьДоступностьФормыДляРедактирования?[/QUOTE]
О как!!!
Корректно!!!
[QUOTE=yarosha;23694001]Может кто-то ответит на этот вопрос[/QUOTE]
Только при чем здесь версонифицирование, хотелось бы узнать еще раз?