- •Практическая работа №1
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №2 Разработка конфигурации для предприятия. Объект «Справочник».
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №3 Объект конфигурации «Документ».
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №4 Регистр накопления, движения в документах
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №5 Отчеты
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №6 Макеты, редактирование макетов, создание печатной формы макета.
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №7 Периодический регистр сведений
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №8 Перечисление
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №9
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №10 Работа с запросами на примере отчетов.
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
- •Практическая работа №11 Подсистема
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •Практическая работа № 12 Интерфейс, роль, список пользователей
- •1 Цель работы
- •2 Краткие теоретические сведения
- •3 Задание
- •4 Ход работы
- •5 Контрольные вопросы
- •6 Содержание отчета
- •6.2 Цель работы
- •7 Список литературы
3 Задание
С помощью проведения документа по нескольким регистрам вести учет материалов по средней их стоимости. Создать оборотный регистр накопления «Продажи» для учета суммы и количества услуг, которые были оказаны за определенный промежуток времени.
4 Ход работы
Создадим регистр накопления «СтоимостьМатериалов». Этот регистр будет иметь одно измерение – «Материал» с типом «СправочникСсылка.Номенклатура» и один ресурс – «Стоимость» с длиной 15 и точностью 2, неотрицательное. В древе конфигурации установим курсор на «Регистры накопления», выберем «Действия» - «Добавить»
Рисунок 1 – Созданный регистр накопления «СтоимостьМатериалов»
4.1 Изменение процедуры проведения документа «Приходная накладная»
Откроем в конфигураторе окно редактирования объекта конфигурации Документ «ПриходнаяНакладная» и перейдем на вкладку «Движения». В списке регистров отметим, что документ будет создавать теперь движения и по регистру «СтоимостьМатериалов».
Рисунок 2 – Добавляем движения по регистру «СтоимостьМатериалов»
Запустим конструктор движений. Нажмем кнопку «Конструктор движений» и согласимся с тем, что существующая процедура ОбработкаПроведения будет замещена.
Рисунок 3 – Запрос конфигуратора на подтверждение замещения процедуры
Откроется окно конструктора движений, которое будет содержать созданные ранее движения документа по регистру «ОстаткиМатериалов». Добавим в список регистров, по которым формируются движения, еще один – «СтоимостьМатериалов». Выберем для него ту же табличную часть «Материалы» и заполним выражения.
Для ресурса «Стоимость» выберем значения реквизита табличной части «Сумма».
Рисунок 4 – Движения по регистру «СтоимостьМатериалов»
Нажмем OK и проанализируем текст, который сформировал конструктор.
Конструктор создал два цикла обхода табличной части документа – отдельно для каждого регистра. Так происходит потому, что в общем случае документ может иметь несколько табличных частей, и информация, содержащаяся в каждой из них, может предназначаться для своего отдельного регистра.
Рисунок 5 – Обработка проведения по двум регистрам
Табличная часть всего одна, поэтому можно объединить эти два цикла в один, закомментировав следующие строки:
// КонецЦикла;
// Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
Для того, чтобы сделать из строчки комментарий необходимо добавить перед строчкой «//».
Запустим 1С Предприятие в режиме отладки и перепроведем документы «ПриходнаяНакладная» №1 и №2.
Затем откроем «ПриходнуюНакладную» №1 и убедимся, что документ создает желаемые записи в регистрах накопления.
Рисунок 6 – Проведение документа «ПриходнаяНакладная» №1
4.2 Изменение процедуры проведения документа «Оказание услуги»
Требуется, чтобы при списании материалов, израсходованных в процессе оказания услуги, должна быть возможность указывать различную стоимость для одного и того же материала, которая рассчитана руководством исходя из текущих конъюнктурных соображений.
Поскольку в документе «ОказаниеУслуги» отражена только цена номенклатуры, нам понадобится добавить в табличную часть документа еще одно поле, в котором будет указываться стоимость номенклатуры.
Откроем в конфигураторе окно редактирования объекта конфигурации «Документ» - «ОказаниеУслуги», перейдем на закладку «Данные» и создадим новый реквизит табличной части документа с именем «Стоимость», типом «Число», длиной 15 и точностью 2, неотрицательное.
Рисунок 7 – Добавление реквизита табличной части
После этого откроем форму «ФормаДокумента» документа «ОказаниеУслуги» и добавим в табличное поле колонку, отображающую новый реквизит «Стоимость»», расположив ее после колонки «Номенклатура». Для этого выделим табличное поле и выполним команду контекстного меню «Размещение данных». В окне «Размещение данных» отметим реквизит «Стоимость» и нажмем «ОK». После этого с помощью мыши перетащим колонку «Стоимость» после колонки «Номенклатура».
Рисунок 8 – Модифицированная форма документа «ОказаниеУслуги»
Теперь создадим движения документа «ОказаниеУслуги» таким же образом, как для документа «ПриходнаяНакладная».
Откроем в конфигураторе окно редактирования объекта конфигурации «Документ» «ОказаниеУслуги» и укажем, что он будет создавать движения по регистру накопления «СтоимостьМатериалов».
Запустим конструктор движений документа и добавим в список регистров регистр «СтоимостьМатериалов». Восстановим движения по регистру «ОстаткиМатериалов». Опишем движения документа по регистру «СтоимостьМатериалов» следующим образом (обратите внимание, что стоимость вычисляется как произведение стоимости и количества, указанных в табличной части):
Рисунок 9 – Движения по регистру «СтоимостьМатериалов» в документе «ОказаниеУслуги»
Нажмем OK и в тексте, сформированном конструктором, восстановим изменения, внесенные нами ранее (не записывать движения, если номенклатура – не материал). Вставим после строчки «Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл» следующий код:
Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Материал Тогда
Продолжить;
КонецЕсли;
Также объединим два цикла обхода табличной части документа в один, закомментировав строки, как в документе «ПриходнаяНакладная».
Запустим 1С Предприятие в режиме отладки. Теперь создадим и проведем еще два документа «ОказаниеУслуги». Эти документы понадобятся нам в дальнейшем, поэтому будьте внимательны и обратите внимание на то, что эти документы созданы другими датами
Рисунок 10 – Два новых документа «ОкзаниеУслуги»
Проверим движения по регистрам:
Рисунок 11 – Движения регистров обоих документов
Продолжим рассматривать работу нашего документа «ОказаниеУслуги». Ранее создавались в регистрах накопления движения только для строк документа, которые содержат материалы. Услуги, содержащиеся в документе, не учитывались.
Дело в том, что при учете услуг важны совершенно другие критерии, нежели при учете материалов. Прежде всего, бессмысленно говорить о том, сколько услуг было и сколько их осталось, важна только сумма и количество услуг, которые были оказаны за определенный промежуток времени. Кроме этого интересны следующие моменты:
- какие именно услуги были оказаны (чтобы составить рейтинг услуг);
- какому именно клиенту оказывались услуги (чтобы предоставить ему скидку от объема оплаченных ранее услуг, например);
- какой мастер предоставлял услуги (чтобы начислить ему заработную плату).
Очевидно, что существующие регистры накопления совершенно не подходят для решения таких задач. Поэтому создадим еще одно «хранилище» данных, которое будет использоваться в нашей программе, – оборотный регистр накопления «Продажи».
Откроем конфигуратор и создадим новый объект конфигурации «Регистр накопления». Назовем его «Продажи» и определим вид регистра – «Обороты».
Рисунок 12 – Установка имени и вида регистра
На вкладке «Данные» создадим измерения регистра:
- «Номенклатура», тип «СправочникСсылка.Номенклатура»,
- «Клиент», тип «СправочникСсылка.Клиенты»,
- «Мастер», тип «СправочникСсылка.Сотрудники».
У регистра будет три ресурса:
- «Количество», тип Число, длина 15, точность 3 (неотрицательное),
- «Выручка», тип Число, длина 15, точность 2,
- «Стоимость», тип Число, длина 15, точность 2 (неотрицательное).
Откроем окно редактирования объекта конфигурации «Документ» - «ОказаниеУслуги» и на закладке «Движения» укажем, что этот документ будет создавать движения по регистру «Продажи».
На этот раз не будем использовать конструктор движений документа, а внесем необходимые дополнения прямо в обработчик события «ОбработкаПроведения» документа «ОказаниеУслуги».
Откроем в конфигураторе модуль объекта конфигурации «Документ» - «ОказаниеУслуги» и найдем в нем процедуру обработчика события «ОбработкаПроведения».
Сразу после окончания первого цикла создадим еще один цикл обхода табличной части и команду записи движений регистра «Продажи». Цикл должен содержать следующий код:
Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
// Регистр Продажи
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Клиент = Клиент;
Движение.Мастер = Мастер;
Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
Движение.Выручка = ТекСтрокаПереченьНоменклатуры.Сумма;
Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость * ТекСтрокаПереченьНоменклатуры.Количество;
КонецЦикла;
Все добавленные конструкции уже хорошо известны. Обратите внимание на то, что у оборотного регистра отсутствует свойство «ВидДвижения», поскольку отражение вида движения (приход или расход) имеет смысл лишь при учете остатков. В случае регистра оборотов интересует только значение, которое должно быть записано в ресурс регистра.
Запустим 1С:Предприятие в режиме отладки и перепроведем два ранее созданных документа «ОказаниеУслуги». Движения этих документов по регистру «Продажи» должны иметь следующий вид:
Рисунок 13 – Движения документов по регистру «Продажи»
