Студопедия — МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ. 1. Создайте документ «ПриходнаяНакладная»
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ. 1. Создайте документ «ПриходнаяНакладная»






1. Создайте документ «ПриходнаяНакладная».

Создадим новый объект конфигурации Документ. Зададим имя документа ПриходнаяНакладная. Нажмем Далее.

Создадим реквизит документа с именем Склад и типом СправочникСсылка.Склады (рис. 10.1).

Рисунок 10.1 ― Создание реквизита документа

 

После этого добавим табличную часть с именем Материалы и создадим у нее четыре реквизита (рис. 10.2):

· Материал с типом СправочникСсылка.Номенклатура,

· Количество с типом Число, длиной 15, точностью 3, неотрицательное,

· Цена с типом Число, длиной 15, точностью 2, неотрицательное,

· Сумма с типом Число, длиной 15, точностью 2, неотрицательное.

 

Рисунок 10.2 ― Создадим табличную часть и опишем ее реквизиты

Перейдем на закладку Нумерация и зададим длину номера 9 и тип номера Строка.

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

Пока в нашей базе данных нет ни одного документа ПриходнаяНакладная, поэтому создадим новый документ (создать новый документ можно при помощи пункта меню Действия Добавить, соответствующей иконки или клавишей Insert) (рис. 10.3).

 

Рисунок 10.3 ― Добавим новый документ при помощи меню или иконки

 

Система автоматически присвоит номер новому документу, и нам останется только заполнить табличную часть. Заполним ее материалами для ремонта телевизоров так, как показано на рисунке (рис. 10.4).

 

Рисунок 10.4 ― Заполнение документа «ПриходнаяНакладная №1»

 

Нажмем OK.

Аналогичным образом мы создадим и заполним второй документ, который будет приходовать следующие материалы для установки стиральных машин (рис. 10.5).

 

Рисунок 10.5 ― Заполнение документа «ПриходнаяНакладная №2»

 

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

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

 

2. Создание формы документа

Вернемся в конфигуратор и откроем окно редактирования объекта конфигурации Документ ПриходнаяНакладная. В этом окне нас интересует закладка Формы. Как мы видим, ни одна из основных форм документа пока не задана.

Для того чтобы создать форму документа, нажмем на символ лупы в поле ввода (рис. 10.6).

Рисунок 10.6 ― Создадим форму документа

 

Система вызовет еще один полезный инструмент разработчика ― конструктор форм. Этот инструмент также построен по принципу «мастеров»: ввод данных в определенной последовательности и передвижение кнопками Далее и Назад (рис. 10.7).

Рисунок 10.7 ― Конструктор форм

 

Выберем тип формы ФормаДокумента и нажмем кнопку Готово, согласившись тем самым со всем, что нам предложила система.

Обратите внимание, что в дереве объектов конфигурации у объекта конфигурации Документ ПриходнаяНакладная появилась форма ФормаДокумента, а на экране открылось окно редактора форм, содержащее эту форму (рис. 10.8).

Рисунок 10.8 ― Новая форма документа и окно редактора форм

 

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

Сейчас мы обратим свое внимание только на те элементы управления, которые нас интересуют, это три поля ввода, расположенные в колонках Количество, Цена и Сумма (рис. 10.9).

Рисунок 10.9 ― Элементы управления

Необходимо сделать, чтобы когда меняется значение в поле Количество или в поле Цена, в поле Сумма автоматически устанавливалось значение, равное Количество * Цена. Очевидно, что для этого нужно написать на встроенном языке команду, похожую на Сумма = Количество * Цена, которая будет выполняться при изменении значения поля Количество или Цена.

 

3. Создайте процедуру обработки события в модуле формы

Щелкните правой кнопкой мыши на поле ввода в колонке Количество и откройте для него палитру свойств (пункт контекстного меню Свойства). Прокрутите список до конца, и вы обнаружите перечень событий, которые могут быть связаны с этим полем ввода.

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

Среди событий, связанных с полем ввода, найдите событие При изменении. Это событие возникает после изменения значения поля ввода.

Щелкните по кнопке с лупой в конце поля ввода, и система создаст заготовку процедуры обработчика этого события в модуле нашей формы (рис. 10.10).

Модуль ― это «хранилище» для текста программы на встроенном языке. В конфигурации существует большое количество модулей, которые расположены в различных ее точках. Они могут принадлежать некоторым объектам конфигурации (например, формам), а могут существовать сами по себе (принадлежать всей конфигурации в целом). Текст программы, содержащийся в модулях, будет использоваться платформой в заранее известные моменты работы системы 1С: Предприятие.

 

Рисунок 10.10 ― Выберем событие «При изменении», и система создаст заготовку процедуры в модуле формы

 

В модуль формы, в процедуру МатериалыКоличествоПриИзменении() добавим следующий текст (листинг 10.1).

 

Листинг 10.1. Процедура МатериалыКоличествоПриИзменении()

В первой строке обращаемся к программному объекту ЭлементыФормы. Этот объект является коллекцией значений, содержащей все элементы управления, расположенные на нашей форме. Каждый элемент управления формы можно получить, указав его имя в качестве свойства объекта ЭлементыФормы. В данном случае мы обращаемся к элементу управления с именем Материалы (ЭлементыФормы.Материалы).

Этот элемент управления отображает строки табличной части нашего документа. Получить ту строку, в которой в настоящее время осуществляется редактирование, можно при помощи свойства программного объекта ТабличноеПоле ТекущиеДанные. Таким образом, в результате выполнения первой строки переменная СтрокаТабличнойЧасти будет содержать объект ДокументТабличнаяЧастьСтрока.ПриходнаяНакладная.Материалы, в котором находятся редактируемые данные.

Во второй строке вычисляется сумма как произведение количества и цены. Объект ДокументТабличнаяЧастьСтрока.< имя> позволяет обратиться к данным конкретной колонки, указав имя колонки в качестве свойства объекта (например, СтрокаТабличнойЧасти.Количество).

Теперь посмотрим, как это работает. В окне программы откроем список документов ПриходнаяНакладная и откроем любой из двух созданных нами документов. Если теперь вы поменяете количество в любой строке документа, то сумма в строке будет пересчитана автоматически.

Замечательно. Но теперь хотелось бы и для поля Цена сделать то же самое. А если заглянуть вперед, то мы увидим, что подобное автоматическое заполнение поля Сумма может нам понадобиться и в других документах. Поэтому лучше будет поместить расчет суммы в некотором «общедоступном» месте, чтобы разные документы, имеющие аналогичные реквизиты табличной части, могли использовать этот алгоритм.

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

 

4. Создайте процедуру обработки события в общем модуле

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

Создадим объект конфигурации Общий модуль и назовем его РаботаСДокументами. Он будет содержать следующий текст (листинг 10.2).

 

Листинг 10.2. Процедура РассчитатьСумму()

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

 

Затем в модуле формы изменим текст обработчика (листинг 10.3).

 

Листинг 10.3. Процедура МатериалыКоличествоПриИзменении()

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

Проверим, как это работает, и убедимся, что ничего не изменилось.

Теперь осталось и для поля Цена установить такой же обработчик. Так как однажды мы уже написали в модуле формы нужную нам процедуру, то мы просто могли бы сопоставить ее также и другому событию другого элемента управления, расположенного в форме. Однако стандарты разработки конфигураций фирмы «1С» не допускают такого решения.

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

- создается отдельная процедура (функция), выполняющая необходимые действия;

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

- из каждого обработчика вызывается требуемая процедура (функция).

 

Поэтому мы создадим обработчик события При изменении для поля ввода, которое расположено в колонке Цена, и повторим в нем вызов процедуры РассчитатьСумму из общего модуля (листинг 10.4).

 

 

Листинг 10.4. Процедура МатериалыЦенаПриИзменении()

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

 

 

СОДЕРЖАНИЕ РАБОТЫ:

1. Выполнить задания, приведенные в методических рекомендациях.

2. Создайте объект конфигурации Перечисление с именем ВидыНоменклатуры и на закладке Данные добавьте два значения перечисления: Материал и Услуга.

3. Создайте справочник Номенклатура с реквизитом ВидНоменклатуры с типом ПеречислениеСсылка.ВидыНоменклатуры

4. Создать новый объект конфигурации Документ ОказаниеУслуги с реквизитами:

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

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

§ Мастер, тип СправочникСсылка.Сотрудники,

5. Создать табличную часть этого документа ПереченьНоменклатуры с реквизитами:

§ Номенклатура, тип СправочникСсылка.Номенклатура,

§ Количество, тип Число, длина 15, точность 3, неотрицательное,

§ Цена, тип Число, длина 15, точность 2, неотрицательное,

§ Сумма, тип Число, длина 15, точность 2, неотрицательное,

6. Создать основную форму документа «ОказаниеУслуги».

7. Для полей ввода колонок Количество и Цена создать обработчик события ПриИзменении, в котором вызывать процедуру РассчитатьСумму() из общего модуля РаботаСДокументами.

ВОПРОСЫ ВЫХОДНОГО КОНТРОЛЯ:

1. Опишите принцип работы с документами.

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

 

ДОМАШНЕЕ ЗАДАНИЕ:

Выучить особенности работы с документами на встроенном языке.

 








Дата добавления: 2014-11-10; просмотров: 869. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Метод Фольгарда (роданометрия или тиоцианатометрия) Метод Фольгарда основан на применении в качестве осадителя титрованного раствора, содержащего роданид-ионы SCN...

Потенциометрия. Потенциометрическое определение рН растворов Потенциометрия - это электрохимический метод иссле­дования и анализа веществ, основанный на зависимости равновесного электродного потенциала Е от активности (концентрации) определяемого вещества в исследуемом рас­творе...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия