Транзакция с прерыванием

13.11.07

Разработка - Механизмы платформы 1С

Упаковка метода от "уставания" транзакции

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
-
.1194968990 6,64Kb
356
356 Скачать бесплатно
Материалы данной разработки уже применялись в :
//infostart.ru/profile/8196/projects/1367/
//infostart.ru/profile/8196/projects/1340/

Ни для кого не секрет, что использование методов НачатьТранзакцию(); ЗафиксироватьТранзакцию();
позволяет не только записать / отменить в случае ошибки все проделанные программно изменения
с объектами ИБ, но и значительно ускорить выполнение модулей. Однако, при наращивании объемов
изменений скорость начинает падать, эффект ускорения сходит на нет. Способ борьбы с замедлением
давно известен: разбивать одну длинную транзакцию на несколько, фиксируя предыдущую и начиная новую
внутри первого из вложенных циклов, либо по достижении назначенного счетчика (например, количество
проведенных документов) определенных максимальных уровней, что-то вроде:
НачатьТранзакцию();
Для ... По ... Цикл
    ...
    КолОбъектов = КолОбъектов + 1;
    Если КолОбъектов%МаксКолОбъектов = 0 Тогда
        ЗафиксироватьТранзакцию();
        НачатьТранзакцию();
    КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();      

Вот еще вариант, завязанный на время выполнения транзакции - 1 минута
НачатьТранзакцию();
НачВремя = _getperformancecounter();                
Интервал = 60000; // милисекунд в минуте
Для ... По ... Цикл
    ...
    Если _getperformancecounter() > НачВремя + Интервал Тогда
        ЗафиксироватьТранзакцию();
        НачатьТранзакцию();
	НачВремя = _getperformancecounter(); 
    КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();      


Этими строчками кода вполне можно обойтись. Если все таки необходимо задавать частоту прерывания
транзакции в диалоге, то эта скачиваемая обработка имеет в своем составе и элементы диалога и
несколько процедур для этой задачи. В обработке присутствует функционал прерывания или разбития
транзакции по счетчику, и по времени, а также пример работы.

Успехов!

См. также

Механизмы платформы 1С Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

В статье расписаны примеры из жизни использования "Виртуального" работника. Разобраны вопросы, возникающие при работе с ним.

28.11.2021    1831    user707242_Gold_karas    18    

5

Механизмы платформы 1С Программист Платформа 1С v7.7 Абонемент ($m)

Пример построения программного кода для достижения функционала обратных вызовов (call back) во внешних обработках исключительно штатными средствами. Тестировалось на платформе 1с77 релиз 027. Конфигурация значения не имеет.

1 стартмани

06.10.2018    7783    Vortigaunt    5    

11

Механизмы платформы 1С Программист Оперативный учет 7.7 Абонемент ($m)

Когда занимаешься разработкой в среде 1С, редко задумываешься о том, что программным кодом ты работаешь с объектной моделью базы данных, а не с самой базой данных. И что это вообще разные вещи. Ты создаешь объекты: документы и справочники, записываешь их - и в базе данных появляются соответствующие записи. Это настолько привычно, что когда сталкиваешься с нетипичным поведением платформы, первым делом думаешь: надо протестировать базу, она битая. В этой статье я хочу разобрать одну интересную ситуацию, которая как раз демонстрирует такое поведение. Описанная ниже ситуация воспроизводится как в файловом, так и в клиент-серверном (SQL) варианте. Тестировалось на версии платформы 1с77 релиз 027.

1 стартмани

16.05.2018    10458    Vortigaunt    26    

5

Механизмы платформы 1С Программист Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    95876    Serginio    116    

188

Механизмы платформы 1С Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

В 1С 8 наличие картинок товаров предусмотрено изначально, а в 7.7 такого нет. Проблема существует и ее исправляют, но это, как правило, частные случаи, касающиеся, например, печати прайса http://infostart.ru/public/289876/ , показу картинок в справочнике номенклатура http://infostart.ru/public/17125/, файловый менеджер картинок товара http://infostart.ru/public/15239/ или просто конфигурации работы с картинками http://infostart.ru/public/21142/ (не стремился дать полный обзор, поэтому не попавшие не обижайтесь :). Что не устроило – информация разбросана по статьям, необходимость дополнительно напрягаться, чтобы это заработало. Здесь я попытался собрать все «до кучи», а так же дать необходимые ссылки для желающих «копнуть вглубь».

1 стартмани

18.11.2014    44809    95    kitminsk    18    

20

Механизмы платформы 1С Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Если вы используете в работе 1С:Предприятие 8.х, то наверняка знакомы и с замечательной системной процедурой, как ЗаполнитьЗначенияСвойств(). Ее использование помогает значительно упростить написание программного кода в ряде случае, делает его (код) более наглядным и простым. Но что же делать тем, кто до сих пор использует (постоянно или иногда) 1С:Предприятие 7.7?

24.07.2014    24219    tomvlad    5    

14

Механизмы платформы 1С Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Позволяет в открытой форме списка, выбора или подбора справочника производить динамическую фильтрацию по набранному наименованию.

02.07.2012    18942    maxpiter    62    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. v.l. 435 20.11.07 13:19 Сейчас в теме
В типовой обработке переноса справочников и документов так и делается.
3. Shaman100M 1151 21.11.07 11:00 Сейчас в теме
(1) Так и прелагается не содержимое, а упаковка, в наш век полимеров. ;)
2. Abadonna 3968 20.11.07 13:30 Сейчас в теме
А разве по другому можно додуматься? Всю жизнь так делаю, даже стандарт для себя установил - 250 интераций
4. DrZombi 301 30.09.14 09:20 Сейчас в теме
Я вот все время думаю... А разве Транзакция не подвешивает вообще всю БД?
Ведь если работают 30 пользователей, то пока один там натранзактится, то все остальные Курят?

Почему народ такие мелочи опускает и везде сует использование Транзакции, а потом удивляется, что пользователи висят и БД работает через ЖП :)
5. Shaman100M 1151 07.11.14 17:47 Сейчас в теме
Призываю народ подумать еще немного, в чем может быть смысл прерывания.
Думать в сторону всунуть в это прерывание задержку ..., чтобы было не ЖП.
;)
Оставьте свое сообщение