Главная стр 1
скачать
Работа с отладчиком в процессе изучения процедуры формирования отчета в системе «1С:Предприятие 8» (составил А.Л. Гуревич (Москва))
Рассмотрим с помощью отладчика работу процедуры формирования отчета «РеестрДокументовОказаниеУслуги» из книги М.Г. Радченко «1С:Предприятие 8.0: Практическое пособие разработчика: Примеры и типовые приемы» (М.: 1С-Паблишинг, 2006. С. 167-172).

Важное предварительное замечание. Настоящие заметки предназначены для начинающих программистов в системе «1С:Предприятие 8» и являются своего рода дневником в процессе изучения программирования. Поэтому мы просим не судить их слишком строго и сообщить нам о наличии ошибок и неточностей по электронному адресу . В то же время мы надеемся, что наши заметки принесут некоторую пользу другим изучающим платформу «1С:Предприятие 8». Поэтому мы рискнули поместить данный текст в интернете, в открытом доступе.
Отладчик – это удобный инструмент, помогающий облегчить разработку программных модулей системы «1С:Предприятие 8». В настоящей заметке мы обратим особое внимание на использовании отладчика для изучения программ формирования отчетов. Тем из читателей, которые еще не знакомы с работой отладчика, мы можем рекомендовать наш предыдущий текст «Работа с отладчиком в процессе изучения встроенного языка «1С:Предприятие 8»» (см. http://buhgalteria2006.narod.ru/files/Ot­ladchik.doc).

Отладчик предоставляет программисту большие дополнительные возможности. Нас же, в первую очередь, будут интересовать а) пошаговое выполнение модуля; б) расстановка точек останова; в) просмотр динамики свойств объектов и значений переменных агрегатного типа в процессе отладки и др.

Для того, чтобы использовать отладчик необходимо, чтобы одновременно с конфигуратором была запущена отлаживаемая конфигурация в режиме "1С:Предприятие".

Для использования отладчика необходимо выполнить следующие действия:

1. Запускаем конфигуратор.

2. Открываем модуль, предназначенный для отладки.

В качестве исследуемого модуля в настоящем примере мы берем процедуру «РеестрДокументовОказаниеУслуги» (Отчеты - РеестрДокументовОказаниеУслуги - Формы – РеестрДокументовОказаниеУслуги - Модуль). Эта процедура активизируется при нажатии на кнопку «Сформировать» в окне Реестр документов оказание услуги (Операции – Отчет... - Реестр документов оказание услуги – Сформировать).
Процедура РеестрДокументовОказаниеУслуги(ТабДок) Экспорт

//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(РеестрДокументовОказаниеУслуги). Данный фрагмент построен конструктором. При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = ОтчетОбъект.ПолучитьМакет("РеестрДокументовОказаниеУслуги");
Запрос = Новый Запрос;

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

"ВЫБРАТЬ

| ОказаниеУслуги.Дата КАК Дата,

| ОказаниеУслуги.Номер,

| ОказаниеУслуги.Склад,

| ПРЕДСТАВЛЕНИЕ(ОказаниеУслуги.Склад),

| ОказаниеУслуги.Мастер,

| ПРЕДСТАВЛЕНИЕ(ОказаниеУслуги.Мастер),

| ОказаниеУслуги.Клиент,

| ПРЕДСТАВЛЕНИЕ(ОказаниеУслуги.Клиент)

|ИЗ

| Документ.ОказаниеУслуги КАК ОказаниеУслуги

|

|УПОРЯДОЧИТЬ ПО

| Дата,

| ОказаниеУслуги.Ссылка";
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаДетали = Результат.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл

ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);

ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());

КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.Вывести(ОбластьПодвалТаблицы);

ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ

КонецПроцедуры
3. Устанавливаем точку останова на первом операторе процедуры.

4. Запускаем режим «1С:Предприятие» для выбранной конфигурации, а если режим уже был запущен, то выполним команду "Отладка - Подключиться".

5. Выполним действия, которые вызовут исполнение отлаживаемого модуля (в данном случае, *****откроем один из документов «Оказание услуги» (Операции – Документы - Оказание услуги) и изменим одно из значений параметра «Номенклатура» в табличной части документа).

6. Проведем пошаговое выполнение модуля (опция «Отладка - Шагнуть через» или F10). Действие пошаговой отладки можно повторять.


Теперь попробуем рассмотреть текущие свойства используемых объектов и параметры переменных. Это поможет нам лучше понять их структуру и логику.

Вначале рассмотрим свойства переменной «Макет» (напомним, что нужно подвести курсор мыши к названию этой переменной в модуле, нажать на правую кнопку мыши, выбрать опцию «Вычислить выражение» и нажать на кнопку «Включить в табло» в правой части окна).


После исполнения оператора:

Макет = ОтчетОбъект.ПолучитьМакет("РеестрДокументовОказаниеУслуги");

переменная «Макет» будет иметь следующие ключевые параметры:




Выражение

Значение

Тип










Макет

ТабличныйДокумент

ТабличныйДокумент

Области

КоллекцияОбластейТаблич-
ногоДокумента

КоллекцияОбластейТаблич-
ногоДокумента

Детали

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТаблич-
ногоДокумента

Заголовок

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТаблич-
ногоДокумента

Подвал

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТаблич-
ногоДокумента

ПодвалТаблицы

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТаблич-
ногоДокумента

ШапкаТаблицы

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТаблич-
ногоДокумента

Параметры

ПараметрыМакетаТаблич-
ногоДокумента

ПараметрыМакетаТаблич-
ногоДокумента

Дата




Неопределено

Клиент




Неопределено

КлиентПредставление




Неопределено

Мастер




Неопределено

МастерПредставление




Неопределено

Номер




Неопределено

Склад




Неопределено

СкладПредставление




Неопределено

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


После исполнения оператора:

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

переменная «ОбластьЗаголовок» приобретает из переменной «Макет» следующие ключевые параметры, относящиеся к области заголовка (значения этих параметров также пока не определены):




Выражение

Значение

Тип










ОбластьЗаголовок

ТабличныйДокумент

ТабличныйДокумент

Области

КоллекцияОбластейТаблич-
ногоДокумента

КоллекцияОбластейТабличногоДо-
кумента

Заголовок

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТабличногоДоку-
мента

Имя

"Заголовок"

Строка

Параметр




Неопределено

Соответственно после исполнения операторов:



ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

переменные «ОбластьПодвал», «ОбластьШапкаТаблицы», «ОбластьПодвалТаблицы», «ОбластьДетальныхЗаписей» приобретают следующие ключевые параметры:




Выражение

Значение

Тип
















ОбластьДетальныхЗаписей

ТабличныйДокумент

ТабличныйДокумент

Области

КоллекцияОбластейТаблич-
ногоДокумента

КоллекцияОбластейТаб-
личногоДокумента

Детали

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТаб-
личногоДокумента

Имя

"Детали"

Строка

Параметр




Неопределено

Параметры

ПараметрыМакетаТаблич-
ногоДокумента

ПараметрыМаке-
таТабличногоДоку-
мента

Дата




Неопределено

Клиент




Неопределено

КлиентПредставление




Неопределено

Мастер




Неопределено

МастерПредставление




Неопределено

Номер




Неопределено

Склад




Неопределено

СкладПредставление




Неопределено

ОбластьПодвалТаблицы

ТабличныйДокумент

ТабличныйДокумент

Области

КоллекцияОбластейТаблич-
ногоДокумента

КоллекцияОблас-
тейТабличногоДо-
кумента

ПодвалТаблицы

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТаб-
личногоДокумента

Имя

"ПодвалТаблицы"

Строка

Параметр




Неопределено

ОбластьШапкаТаблицы

ТабличныйДокумент

ТабличныйДокумент

Области

КоллекцияОбластейТаблич-
ногоДокумента

КоллекцияОбластейТаб-
личногоДокумента

ШапкаТаблицы

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТаб-
личногоДокумента

Имя

"ШапкаТаблицы"

Строка

Параметр




Неопределено

ОбластьПодвал

ТабличныйДокумент

ТабличныйДокумент

Области

КоллекцияОбластейТаблич-
ногоДокумента

КоллекцияОбластейТаб-
личногоДокумента

Подвал

ОбластьЯчеекТаблич-
ногоДокумента

ОбластьЯчеекТаб-
личногоДокумента

Имя

"Подвал"

Строка

Параметр




Неопределено

После исполнения операторов:



ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

объект ТабДок пополняется свойствами «ТабДок.Области.Заголовок» и «ТабДок.Области.ШапкаТаблицы», параметры которых пока не определены.


Оператор:

ВыборкаДетали = Результат.Выбрать();

формирует переменную «ВыборкаДетали» на основе свойства «Результат», зарактеризующего результат выполнения запроса для формирования отчета:




Выражение

Значение

Тип










ВыборкаДетали




ВыборкаИзРезультатаЗапроса

Дата

Ошибка чтения значения




Клиент

Ошибка чтения значения




КлиентПредставление

Ошибка чтения значения




Мастер

Ошибка чтения значения




МастерПредставление

Ошибка чтения значения




Номер

Ошибка чтения значения




Склад

Ошибка чтения значения




СкладПредставление

Ошибка чтения значения



Далее форма начинает пополняться значениями. Например, после первого прохождения цикла переменная «ВыборкаДетали» включает в себя следующие значения параметров (из документа «ОказаниеУслуги» № 1):




Выражение

Значение

Тип










ВыборкаДетали




ВыборкаИзРезультатаЗапроса

Дата

06.07.2007 16:25:47

Дата

Клиент

Иванов Михаил Юрьевич

СправочникСсылка.Клиенты

КлиентПредставление

"Иванов Михаил Юрьевич"

Строка

Мастер

Деловой Иван Сергеевич

СправочникСсылка.Со-
трудники

МастерПредставление

"Деловой Иван Сергеевич"

Строка

Номер

1

Число

Склад

Основной

СправочникСсылка.Склады

СкладПредставление

"Основной"

Строка

Обратим внимание, что параметр «Представление» повторяет текст соответствующего ему параметра документа «ОказаниеУслуги».


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


Выражение

Значение

Тип










ОбластьДетальныхЗаписей

ТабличныйДокумент

ТабличныйДокумент

Параметры

ПараметрыМакетаТаб-
личногоДокумента

ПараметрыМакетаТаблич-
ногоДокумента

Дата

06.07.2007 16:25:47

Дата

Клиент

Иванов Михаил Юрьевич

СправочникСсылка.Клиен-
ты

КлиентПредставление

"Иванов Михаил Юрьевич"

Строка

Мастер

Деловой Иван Сергеевич

СправочникСсылка.Со-
трудники

МастерПредставление

"Деловой Иван Сергеевич"

Строка

Номер

1

Число

Склад

Основной

СправочникСсылка.Склады

СкладПредставление

"Основной"

Строка


В результате исполнения описанной процедуры успешно формируется отчет «Реестр документов оказание услуги».
скачать


Смотрите также:
Отчета «РеестрДокументовОказаниеУслуги» из книги М. Г. Радченко «1С: Предприятие 0: Практическое пособие разработчика: Примеры и типовые приемы»
158.59kb.
Методические рекомендации по изучению дисциплины для студентов. Вгипу, 2009. Учебное тестирование по платформе «1С: Предприятие 8»
27.67kb.
Методические указания, контрольные задания и типовые примеры по теоретической электротехнике Часть II
733.43kb.
Практическое пособие Печатается по решению редакционного совета гоу спо яо ярпк харавинина Л. Н
1364.97kb.
Р. А. Сакаев, Б. М. Перлов, Н. А. Хандурина начертательная геометрия практическое пособие к выполнению курсовой pаботы на персональных компьютерах Санкт-Петеpбуpг 2001
316.43kb.
Учебное пособие состоит из двух разделов и приложений, необходимых для выполнения расчетов по размещению и креплению грузов
700.59kb.
Руководство по составлению отчёта по производственной практике структура отчёта
97.06kb.
Руководство по прохождению производственной преддипломной практики и правила оформления дневника отчета Методическое пособие для студентов IV курса
263.94kb.
Роман Ронин. Своя разведка Практическое пособие
3898.53kb.
Тихомиров М. Ю. Увольнение с работы: учебно-практическое пособие
901.46kb.
Игры и сновидения. Практическое пособие А. В. Омкелонский А. В. Синин Предупреждение!
239.76kb.
Работа с текстом на уроке Практическое пособие по русскому языку
108.84kb.