Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1c.docx
Скачиваний:
11
Добавлен:
25.09.2019
Размер:
232.61 Кб
Скачать

25 Процедуры работы с транзакциями

Понятие транзакций соответствует общепринятому пониманию транзакций баз данных. В системе 1С:Предприятие транзакции активно используются са­мой системой при записи различной информации. Транзакция гарантирует неизменность информации в базе данных для других пользователей до ее за­вершения и целостное сохранение информации.

Возможность использования транзакций в языке должна применяться только в тех программных модулях, которые выполняют запись изменений в информационной базе (в справочниках, константах, документах). Их не следует использовать в алгоритмах формирования движений документов. Транзакции также не стоит использовать при одиночных записях. Типичный пример когда следует использовать транзакции — это процедура, которая будет во всех эле­ментах справочника менять некоторый параметр.

Для начала транзакции используется процедура НачатьТранзацию. Для фиксации сделанных в процессе выполнения изменений применяется процеду­ра ЗафиксироватьТранзакцию. Для отмены изменений, сделанных в процес­се выполнения транзакции — процедура ОтменитьТранзакцию. Таким обра­зом, все действия с базой данных, выполняемые внутри скобок: НачатьТранзакцию — ЗафиксироватьТранзацию собственно и являются транзакцией.

Действия, заключенные в транзакцию, выполняются быстрее. Особенно су­щественно разница проявляется в многопользовательском режиме и особенно существенна разница для операций, связанных с изменением содержимого базы данных, хотя и для операций только чтения разница может быть в разы.

Замечание. В Модуле документа (при проведении документов) в предопреде­ленных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система сама по умолчанию выполня­ет все действия через транзакцию, поэтому никаких специальных дейст­вий в этих предопределенных процедурах предпринимать не нужно.

Транзакция, выполняемая одним пользователем может мешать выполнению транзакций другими пользователями. Таким образом, важно соизмерять полу­чающееся ускорение от применения транзакций с возможными побочными эффектами. Другими словами, возможно, что ускорение таково, что операция начинает выполняться столь быстро, что можно пренебречь влиянием на дру­гих пользователей (например, ожидание секунду – другую), а может это будет приводить к конфликтам — все зависит от конкретного алгоритма конфигура­ции.

При обработке транзакции (в том числе в Модуле документа) не следует использовать элементы интерактивного управления (например, операторы Предупреждение, Вопрос, ВвестиЧисло и т. п.), т. к. в этом случае при от­крытой транзакции система ожидает отклика пользователя, а это может препятствовать нормальной работе других пользователей (в результате документы у всех остальных пользователей в этот момент могут не проводиться). Если в конфигурации необходимо при проведении документа выдавать пользователю некоторые сообщения, то следует использовать операторы Сообщить или Состояние.

.

35 Создание запросов. Переменные и функции в запросе. Группировка и сортировка. Условия отбора.

Для формирования и выполнения запросов к документам, справочникам, регистрам, журналам расчетов, планам счетов, бухгалтерским операциям и про­водкам в системе используется специальный агрегатный тип данных — «За­прос». Возможности работы со справочниками, документами и журналами расчетов предоставляют достаточно мощные средства получения различной информации об этих объектах. Однако, существует также необходимость в по­лучении информации, сгруппированной определенным образом, которую не­возможно или очень сложно получить непосредственно работая с документами, справочниками, регистрами или журналами расчетов. Для получения такой информации и существует механизм запросов.

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

Кроме того, механизм запросов позволяет легко получать информацию в различных временных разрезах.