В начале процедуры ОбработкаПроведения допишем одну строчку




Севастопольский государственный университет

 

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

 

к лабораторной работе «Исследование алгоритма поведения

системы с помощью встроенного языка

в системе 1С: Предприятие 8»

по дисциплине «Платформа 1С»

для студентов дневной формы обучения специальности 09.03.02.

«Информационные управляющие системы

и технологии»

всех форм обучения

 

 

Севастополь

УДК

 

Исследование алгоритма поведения системы с помощью встроенного языка и языка запросов в системе 1С: Предприятие 8. Методические указания для выполнения лабораторной работы по дисциплине «Методы и средства компьютерных информационных систем» для студентов дневной и заочной формы обучения / Сост. В.Е.Шишкевич.- Севастополь: Изд. СевНТУ, 2015.-22 с.

 

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

 

Методические указания рассмотрены и утверждены на заседании кафедры Информационных систем (протокол №__ от ______2015года).

 

Рецензент

 

 

Допущено научно-методическим центром СевНТУ в качестве методических указаний.

 

 

 

 

СОДЕРЖАНИЕ

1. Цель работы.. 4

2. Пример выполнения. 4

3. Программа выполнения работы.. 7

4. Содержание отчета. 9

5. Контрольные вопросы.. 8

Библиографический список. 9

Приложение А 10

 

 


ЦЕЛЬ РАБОТЫ

 

Закрепить основы использования встроенного языком 1С:Предприятия. Научиться программировать основные алгоритмы поведения системы.

 

ПРИМЕР ВЫПОЛНЕНИЯ

 

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

Перед тем как начать дальнейшую работу удалите из модуля формы документа «ПриходнаяНакладная» обработчик «КонтрагентНачалоВыбора». Данный обработчик был написан исключительно в учебных целях и в данной ситуации является лишним.

Что же необходимо изменить в наших документах? Во-первых, при проведении расходной накладной необходимо учитывать остатки товаров по конкретному складу, чтобы нельзя было продать товар, которого на складе нет. Во-вторых, хотелось бы чтобы сумма в табличной части документа формировалась автоматически (при изменении цены номенклатуры или её количества сумма должна пересчитываться). В-третьих, при изменении номенклатуры в табличной части документа должна подставляться актуальная цена на эту номенклатуру. Это означает, что если этот товар уже покупался у этого поставщика или продавался этому покупателю, то автоматически подставляется цена покупки или продажи, которая хранится в регистре Цены. Может возникнуть ситуация, что этот товар мы не продавали этому конкретному покупателю и не закупали у этого конкретного поставщика, но при этом в регистре Цены есть запись цены на данный товар, но для другого контрагента - тогда мы можем подставить эту цену. Даже если цена, подставленная автоматически, не устраивает пользователя, он может легко её изменить.

 

Начнём с самого простого - с пересчёта суммы. Откроем форму документа «РасходнаяНакладная», выделим в табличной части поле ввода «Цена», откроем её свойства и создадим обработчик «ПриИзменении». Такой же обработчик создадим для поля ввода «Количество». В каждый из обработчиков поместим вызов функции РасчитатьСумму, текст которой представлен ниже.

 

 

Остался один нюанс - запретить редактировать сумму. Для этого в свойствах поля ввода нужно поставить галочку «ТолькоПросмотр».

 

Теперь реализуем механизм автоматической подстановки цен при изменении поля «Номенклатура». Обработчик представлен ниже.

 

 

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

 

Теперь попробуем переписать проведение расходной накладной с учётом остатков товара на складе компании. Для сбора данных будем использовать всё ту же объектную модель. Текст процедуры проведения представлен ниже.

 

 

Отметим тот факт, что кроме учёта остатков товара на складе было реализовано корректное списание суммы с регистра. Последняя проверка в проведении по регистру ОстаткиНоменклатуры нужна для учёта так называемой «Последней копеечки». При списывании товара мы пользуемся его средней закупочной ценой; в результате осреднения в числах могут появиться дополнительные разряды после запятой. Это может привести к ситуации, когда на количественных остатках регистра 0, а на суммовых 0,01 грн. Чтобы этого не произошло, мы проверяем, а не списывается ли всё количество оставшегося товара, и если это так, то списывается и вся сумма.

Также стоит обратить внимание на переменную Отказ. Если она установлена в значение Истина, то выполнение транзакции не будет. Т.о. мы могли не писать оператор Продолжить; все созданные движения всё равно не отразились бы в регистре, если Отказ = Истина.

 

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

В начале процедуры ОбработкаПроведения допишем одну строчку

Отказ = ПроверитьКорректность();



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: