Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

В режиме «Конфигуратор». Выделение произвольных областей модуля. #Область НоменклатураДокумента




В режиме «Конфигуратор»

Как это сделать? Хороший вопрос. Давайте посмотрим на свойство Режим управления блокировкой данных нашей конфигурации. Оно установлено в значение Управляемый (рис. 14. 31).

 

Рис. 14. 31. Режим управления блокировкой данных в свойствах конфигурации

 

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


Необходимо заблокировать те данные, которые мы собираемся читать и впоследствии изменять. Для этого у наборов записей регистров есть свойство БлокироватьДляИзменения, которым мы и воспользуемся.

Вставим этот код перед записью пустых наборов записей (листинг 14. 41).

листинг 14. 41. Фрагмент процедуры «ОбработкаПроведения()»

 

Управляемая блокировка будет установлена в момент записи этих наборов записей, то есть как раз перед выполнением второго запроса. Что нам и требовалось.

 

Выделение произвольных областей модуля

Итак, мы закончили редактирование процедуры ОбработкаПрове- дения() в модуле документа ОказаниеУслуги. Хотя модуль содержит всего одну процедуру, эта процедура довольно объемная (особенно для неопытного разработчика), и ее нельзя «охватить одним взглядом». Это затрудняет процесс восприятия и понимания текста процедуры, поиск в ней ошибок и т. д.

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

Например, в нашей процедуре можно выделить три логические части: в первой части формируется временная таблица, содержащая


перечень номенклатуры документа; во второй части рассчитыва- ется стоимость номенклатуры и формируются движения в регистрах накопления; и в третьей части производится контроль остатков номенклатуры при оперативном проведении документа.

Выделим эти три области в тексте процедуры, используя инструкции препроцессору #Область < имя области> и #КонецОбласти (листинг 14. 42).

листинг 14. 42. Процедура «ОбработкаПроведения()»

Процедура ОбработкаПроведения(Отказ, Режим)

Движения. ОстаткиМатериалов. Записывать = Истина; Движения. СтоимостьМатериалов. Записывать = Истина; Движения. Продажи. Записывать = Истина;

// Создать менеджер временных таблиц МенеджерВТ = Новый МенеджерВременныхТаблиц;

#Область НоменклатураДокумента

Запрос = Новый Запрос;

// Укажем, какой менеджер временных таблиц использует этот запрос Запрос. МенеджерВременныхТаблиц = МенеджерВТ;

Запрос. Текст =

" ВЫБРАТЬ

|   ОказаниеУслугиПереченьНоменклатуры. Номенклатура,

|   ОказаниеУслугиПереченьНоменклатуры. Номенклатура. ВидНоменклатуры

|                                                                        КАК ВидНоменклатуры,

|   СУММА(ОказаниеУслугиПереченьНоменклатуры. Количество)

|                                                                        КАК КоличествоВДокументе,

|   СУММА(ОказаниеУслугиПереченьНоменклатуры. Сумма) КАК СуммаВДокументе

|ПОМЕСТИТЬ НоменклатураДокумента

|ИЗ

|   Документ. ОказаниеУслуги. ПереченьНоменклатуры

|                                              КАК ОказаниеУслугиПереченьНоменклатуры

|ГДЕ

|   ОказаниеУслугиПереченьНоменклатуры. Ссылка = & Ссылка

|

|СГРУППИРОВАТЬ ПО

|   ОказаниеУслугиПереченьНоменклатуры. Номенклатура,

|   ОказаниеУслугиПереченьНоменклатуры. Номенклатура. ВидНоменклатуры";

Запрос. УстановитьПараметр(" Ссылка", Ссылка); РезультатЗапроса = Запрос. Выполнить();

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...