Знакомство с платформой 1С:Предприятие 8.1

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 04.03.2011
Размер файла 8,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную

// изменения будут утеряны!!!

Для Каждого ТекСтрокаПереченьТоваров Из ПереченьТоваров Цикл

// регистр КоличествоТоваров Приход

Движение = Движения.КоличествоТоваров.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Товар = ТекСтрокаПереченьТоваров.Товар;

Движение.Филиал = Филиал;

Движение.Количество = ТекСтрокаПереченьТоваров.Количество;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры

Обратим внимание еще на одну важную деталь в окне конструктора движений регистров на рис. 1.70. Так, в качестве значения параметра Тип движения регистра по умолчанию с помощью переключателя установлен вариант Приход. Это соответствует добавлению ресурсов регистра при проведении документа (наиболее вероятный вариант, поэтому он и установлен по умолчанию). Альтернативный вариант Расход связан с уменьшением ресурсов (далее мы разработаем другой документ, который реализует подобное движение по регистру).

Основное содержание процедуры ОбработкаПроведения() составляет цикл, в котором перебираются строки табличной части ПереченьТоваров рассматриваемого документа: Для Каждого ТекСтрокаПереченьТоваров Из

ПереченьТоваров Цикл При каждом проходе цикла с помощью метода Добавить()создается очередная новая запись в регистре. В последующих строках процедуры устанавливаются значения полей регистра в соответствии с данными из очередной строки табличной части документа.

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

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

Рис. 1.71. Заполнение формы документа Поступление товаров

После внесения данных щелчок по кнопке ОК приводит к записи созданного документа в информационную базу. Кроме того, осуществляется и его проведение (формируются движения по регистру). На рис. 1.72 показана форма списка регистра накопления с внесенными записями, связанными с данным документом.

Рис. 1.72. Формирование записей в регистре Количество товаров

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

Рис. 1.73. Закладка Движения окна редактирования документа Продажа товаров

Дальнейшие действия аналогичны ранее рассмотренным в процессе работы с документом ПоступлениеТоваров. Новых технических моментов здесь нет, за исключением того, что для типа движения регистра следует установить вариант Расход (рис. 1.74).

Рис. 1.74. Заполнение выражений в окне конструктора движения регистров

После выполнения уже знакомых действий осталось перейти в режим 1С:Предприятие и ввести документ Продажа товаров (один вариантов документа показан на рис. 1.75). После проведения этого документа в регистре Количество товаров появится новая запись (рис. 1.76).

Рис. 1.75. Заполнение документа Продажа товаров

Рис. 1.76. Изменения в регистре Количество товаров

Отчет о наличии товаров

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

Начнем практические действия по разработке нового отчета в режиме конфигуратора. В окне Конфигурация щелкнем правой кнопкой на разделе Отчеты, а затем на закладке Основные установим имя создаваемого отчета -- ИнформацияОТоварах (рис. 1.77).

Рис. 1.77. Окно редактирования отчета Информация о товарах

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

Рис. 1.78. Окно для выбора названия формы отчета

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

В разделе База данных на рис. 1.79 представлены объекты, имеющиеся в информационной базе. Так, если открыть ветку РегистрыНакопления, то мы увидим несколько таблиц. Воспользуемся одной из них -- КоличествоТоваров.Остатки, в которой присутствует информация только об остатках по результатам движений (приходу и расходу).

Рис. 1.79. Окно конструктора выходной формы

Теперь с помощью верхней пиктограммы, расположенной на серой полосе, перенесем таблицу КоличествоТоваров.Остатки в раздел Таблицы (рис. 1.80). Таким образом, единственная таблица, которая нам понадобится, выбрана. Далее из нее необходимо отобрать поля для создаваемого отчета. Нам потребуются -- Товар, Филиал и КоличествоОстаток, которые мы и перенесем в раздел Поля.

Рис. 1.80. Выбор полей из таблицы для запроса

Следует обратить внимание, что одновременно с полем Товар добавляется и ПРЕДСТАВЛЕНИЕ(…). Это связано с тем, что поле Товар имеет ссылочный тип данных, и для получения информации по товару в любом случае требуется извлекать данные по указанной ссылке. Такая ситуация возникает очень часто и конструктор автоматически вместе со ссылкой добавляет еще и ПРЕДСТАВЛЕНИЕ(…) -- непосредственную информацию.

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

Листинг 1.10. Текст запроса к базе данных

ВЫБРАТЬ

КоличествоТоваровОстатки.Товар,

ПРЕДСТАВЛЕНИЕ(КоличествоТоваровОстатки.Товар),

КоличествоТоваровОстатки.Филиал,

ПРЕДСТАВЛЕНИЕ(КоличествоТоваровОстатки.Филиал),

КоличествоТоваровОстатки.КоличествоОстаток

ИЗ

РегистрНакопления.КоличествоТоваров.Остатки КАК

КоличествоТоваровОстатки

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

При разработке следует обратить внимание на закладку Отчет (рис. 1.81). Наверняка, если вы выполняете параллельно описанные действия на компьютере, почти все указанные установки уже сделаны по умолчанию.

Рис. 1.81. Закладка Отчет конструктора выходной формы

Подчеркнем только, что потребуется снять флажок -- Использовать построитель отчета. В этом случае мы отказываемся при создании отчета от использования объекта ПостроительОтчетов. Данный объект обеспечивает построение сложных отчетов, включающих в себя интерактивные действия со стороны пользователя. Однако и конструктор выходной формы позволяет создавать вполне профессиональные отчеты. Здесь мы воспользуемся конструктором выходной формы, а что касается средств максимальной автоматизации при построении отчетов, то об этом мы поговорим в третьей книге книги. Теперь нам осталось щелкнуть по кнопке ОК, и цель достигнута. Результатом диалога с конструктором выходной формы явились:

макет с именем ИнформацияОТоварах (рис. 1.82), который можно найти на закладке Макеты;

форма отчета, расположенная на закладке Формы;

программный код (листинг 1.11), присутствующий на закладке Модуль окна редактирования формы отчета.

Рис. 1.82. Макет отчета Информация о товарах

Листинг 1.11. Содержание закладки Модуль окна формы отчета

Процедура ДействияФормыИнформацияОТоварахСформировать(Кнопка)

//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(ИнформацияОТоварах)

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную

// изменения будут утеряны!!!

ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;

ИнформацияОТоварах(ТабДок);

//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА

КонецПроцедуры

Процедура ИнформацияОТоварах(ТабДок) Экспорт

//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ИнформацияОТоварах)

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную

// изменения будут утеряны!!!

Макет = ОтчетОбъект.ПолучитьМакет("ИнформацияОТоварах");

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

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

"ВЫБРАТЬ

| КоличествоТоваровОстатки.Товар,

| ПРЕДСТАВЛЕНИЕ(КоличествоТоваровОстатки.Товар),

| КоличествоТоваровОстатки.Филиал,

| ПРЕДСТАВЛЕНИЕ(КоличествоТоваровОстатки.Филиал),

| КоличествоТоваровОстатки.КоличествоОстаток

|ИЗ

| РегистрНакопления.КоличествоТоваров.Остатки КАК КоличествоТоваровОстатки";

Результат = Запрос.Выполнить();

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

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

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

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

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

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

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

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

ТабДок.НачатьАвтогруппировкуСтрок();

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

Пока ВыборкаДетали.Следующий() Цикл

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

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

КонецЦикла;

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

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

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

//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ

КонецПроцедуры

Теперь если в режиме 1С:Предприятие открыть раздел, соответствующий разработанному отчету, то с помощью кнопки Сформировать можно получить табличный документ с необходимой информацией (рис. 1.83).

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

Рис. 1.83. Отчет Информация о товарах

Документы перемещения товаров

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

ПеремещениеНаВыставку;

ПеремещениеСВыставки.

Начнем с документа ПеремещениеНаВыставку. Содержание закладки Данные (рис. 1.84) аналогично ранее выполненным разработкам по созданию документов и не требует комментария. Нас интересуют проводки документа, поэтому с помощью конструктора создадим необходимую процедуру для проведения документа, которая представлена на листинге 1.12.

Рис. 1.84. Закладка Данные окна редактирования документа ПеремещениеНаВыставку

Листинг 1.12. Процедура обработки проведения документа ПеремещениеНаВыставку

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

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные

// вручную изменения будут утеряны!!!

Для Каждого ТекСтрокаПереченьТоваров Из ПереченьТоваров Цикл

// регистр КоличествоТоваров Расход

Движение = Движения.КоличествоТоваров.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Товар = ТекСтрокаПереченьТоваров.Товар;

Движение.Филиал = Филиал;

Движение.Количество = ТекСтрокаПереченьТоваров.Количество;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры

Таким образом, документ ПеремещениеНаВыставку готов -- мы можем вводить электронные документы в режиме 1С:Предприятие на основании нашей разработки в конфигураторе, а система будет самостоятельно выполнять их проведение.

В этом разделе нам требуется создать еще один (аналогичный) документ ПеремещениеСВыставки. Закладка Данные окна редактирования данного документа в конфигураторе представлена на рис. 1.85, а реквизиты документа полностью аналогичны предыдущему.

Рис. 1.85. Закладка Данные окна редактирования документа Перемещение с выставки

Программная процедура обработки проведения документа, генерируемая конструктором, представлена на листинге 1.13.

Листинг 1.13. Процедура обработки проведения документа ПеремещениеСВыставки

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

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную

// изменения будут утеряны!!!

Для Каждого ТекСтрокаПереченьТоваров Из ПереченьТоваров Цикл

// регистр КоличествоТоваров Приход

Движение = Движения.КоличествоТоваров.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Товар = ТекСтрокаПереченьТоваров.Товар;

Движение.Филиал = Филиал;

Движение.Количество = ТекСтрокаПереченьТоваров.Количество;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры

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

Рис. 1.86. Форма списка регистра Количество товаров и отчет по товарам

Оборотный регистр накопления

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

Кроме того, есть еще один момент, отличающий оборотные регистры от регистров остатков. Если вернуться к предыдущим примерам главы, то мы увидим, что у регистра остатков присутствует параметр Вид движения. В этом случае в режиме 1С:Предприятие для каждой записи в регистр необходимо установить одно из двух значений -- Приход или Расход. Подобный параметр у оборотного регистра отсутствует.

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

Рис. 1.87. Закладка Основные окна редактирования регистра накопления Продажи по филиалам

Далее на закладке Данные (рис. 1.88) следует ввести два измерения:

Филиал (тип данных -- СправочникСсылка.Филиалы) ;

Менеджер (тип данных -- СправочникСсылка.Менеджеры) .

В качестве ресурса укажем -- Сумма (тип данных -- число).

Рис. 1.88. Закладка Данные окна редактирования регистра накопления Продажи по филиалам

Работа с регистром ПродажиПоФилиалам должна быть организована с помощью документа ПродажаТоваров. Сейчас мы должны скорректировать процедуру проведения этого документа. Здесь мы встретились с ситуацией, когда один и тот же документ осуществляет добавление информации в различные регистры.

Воспользуемся, как и раньше, конструктором движений (рис. 1.89), где следует указать, что документ будет осуществлять движения сразу по двум регистрам.

Рис. 1.89. Закладка Движения окна редактирования документа Продажи товаров

При запуске конструктора движений следует согласиться с тем, что процедура ОбработкаПроведения будет замещена. После этого перед нами откроется окно конструктора движений, которое будет содержать созданные ранее движения документа по регистру КоличествоТоваров. В список регистров следует добавить еще один -- ПродажиПоФилиалам. Из него следует выбрать табличную часть и заполнить выражения (рис. 1.90). Теперь щелкнем по кнопке ОК, и перед нами откроется текст новой программной процедуры, которую сформировал конструктор (листинг1.14).

Рис. 1.90. Окно конструктора движения регистров

Листинг 1.14. Процедура обработки проведения документа ПродажаТоваров

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

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную

// изменения будут утеряны!!!

Для Каждого ТекСтрокаПереченьТоваров Из ПереченьТоваров Цикл

// регистр КоличествоТоваров Расход

Движение = Движения.КоличествоТоваров.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Товар = ТекСтрокаПереченьТоваров.Товар;

Движение.Филиал = Филиал;

Движение.Количество = ТекСтрокаПереченьТоваров.Количество;

КонецЦикла;

Для Каждого ТекСтрокаПереченьТоваров Из ПереченьТоваров Цикл

// регистр ПродажиПоФилиалам

Движение = Движения.ПродажиПоФилиалам.Добавить();

Движение.Период = Дата;

Движение.Филиал = Филиал;

Движение.Менеджер = Менеджер;

Движение.Сумма = ТекСтрокаПереченьТоваров.Сумма;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры

Из данного текста видно, что конструктор создал два цикла обхода табличной части документа. При желании можно самостоятельно объединить эти два цикла в один (листинг1.15).

Листинг 1.15. Корректировка процедура обработки проведения документа ПродажаТоваров

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

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную

// изменения будут утеряны!!!

Для Каждого ТекСтрокаПереченьТоваров Из ПереченьТоваров Цикл

// регистр КоличествоТоваров Расход

Движение = Движения.КоличествоТоваров.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Товар = ТекСтрокаПереченьТоваров.Товар;

Движение.Филиал = Филиал;

Движение.Количество = ТекСтрокаПереченьТоваров.Количество;

// регистр ПродажиПоФилиалам

Движение = Движения.ПродажиПоФилиалам.Добавить();

Движение.Период = Дата;

Движение.Филиал = Филиал;

Движение.Менеджер = Менеджер;

Движение.Сумма = ТекСтрокаПереченьТоваров.Сумма;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры

Теперь все необходимые действия в конфигураторе выполнены и осталось перейти в режим 1C:Предприятие, сформировать несколько документов и посмотреть результат в созданных нами регистрах (рис. 1.91)

Рис. 1.91. Информация, содержащаяся в регистрах накопления

Итоги

Итак, первая глава завершена, и стоит оглянуться на выполненные разработки, а также подчеркнуть основные итоги. Наверное, главный результат заключается в том, что мы узнали -- как выглядит технология разработки конфигураций для 1С:Предприятие 8.1. Возможно, что до этого вы работали только с готовыми конфигурациями как пользователь. Теперь же можно взглянуть на эту сложную информационную систему и глазами разработчика (программиста) конфигураций.

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

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

В ходе выполнения примеров этой главы мы получили практические навыки работы с наиболее популярными прикладными объектами системы 1С:Предприятие 8.1 -- справочниками, документами, отчетами и т.д.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.