Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР6-Регистры-накопления.doc
Скачиваний:
0
Добавлен:
16.12.2018
Размер:
908.29 Кб
Скачать

Команда перехода к движениям в форме документа

При реальной работе записей в регистре ОстаткиМатериалов будет много, и будет трудно понять, какие записи относятся к определенному документу.

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

  1. В конфигураторе откроем форму документа ПриходнаяНакладная.

  2. В левом верхнем окне перейдем на закладку Командный интерфейс.

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

  4. Установим свойство Видимость для этой команды (рисунок 3.9).

Рисунок 3.9 – Настройка командного интерфейса формы документа

Запустим 1С:Предприятие в режиме отладки и откроем Приходную накладную № 2 (рисунок 3.10).

Рисунок 3.10 – Панель навигации документа «Приходная накладная»

В форме документа появилась панель навигации, в которой мы можем переходить к списку записей регистра Остатки Материалов, связанному с документом (рисунок 3.11), и обратно к содержимому документа.

Рисунок 3.11 – Переход к регистру накопления из формы документа

Обратите внимание, что до этого панель навигации в форме приходной накладной была не видна, так как в ней не было отображено ни одной команды.

Движения документа «ОказаниеУслуги»

Аналогичным образом создадим движения документа ОказаниеУслуги. Для этого потребуется выполнить уже знакомые нам действия:

  1. В режиме Конфигуратор откроем окно редактирования объекта конфигурации Документ ОказаниеУслуги.

  2. Перейдем на закладку Движения и в списке регистров конфигурации отметим регистр накопления ОстаткиМатериалов.

  3. Нажмем кнопку Конструктор движений.

  4. В открывшемся окне конструктора изменим тип движения регистра на Расход, так как документ ОказаниеУслуги должен расходовать материалы. Пиктограмма слева от названия регистра изменится на знак - .

  5. В поле выбора Табличная часть выберем табличную часть нашего документа - ПереченьНоменклатуры. Список реквизитов документа, который уже заполнен реквизитами шапки документа, автоматически дополнится реквизитами нашей табличной части.

  6. Нажмем кнопку Заполнить выражения. В нижнем окне сформируется соответствие полей (измерений и ресурсов) регистра и выражений для их расчета. Однако при автоматическом заполнении поле Материал не заполнится.

Так происходит потому, что имя поля табличной части - Номенклатура не совпадает с именем измерения регистра - Материал. Если оставим это так, как есть, то в регистре накопления в строках с типом Движение регистра - расход номенклатура фиксироваться не будет.

  1. Чтобы избежать этого, надо выделить поле регистра Материал и в окне Реквизиты документа дважды щелкнуть по строке ТекСтрокаПереченьНомеклатуры.Номенклатура.

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

Рисунок 3.12 – Выбор табличной части документа и заполнение выражений для расчета движений регистра

  1. Нажмем кнопку ОК. Конструктор создал обработчик события ОбработкаПроведения объекта конфигурации Документ ОказаниеУслуги и поместил его в модуль объекта.

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

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

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

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

// регистр ОстаткиМатериалов Расход

Движения.ОстаткиМатериалов.Записывать = Истина;

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

Движение = Движения.ОстаткиМатериалов.Добавить();

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

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

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

Движение.Склад = Склад;

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

КонецЦикла;

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

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

Обратите внимание, что строка Движение.ВидДвижения = ВидДвиженияНакопления.Расход определяет вид движения регистра накопления, производимый этим документом как Расход, а в остальном процедура обработчика документа ОказаниеУслуги идентична обработчику документа ПриходнаяНакладная.

  1. Отредактируем командный интерфейс формы документа, чтобы в панели навигации формы иметь возможность переходить к списку записей регистра Остатки Материалов, связанному с документом.

Для этого откроем форму документа ОказаниеУслуги.

  1. В левом верхнем окне перейдем на закладку Командный интерфейс.

В разделе Панель навигации раскроем группу Перейти и установим видимость для команды открытия регистра накопления Остатки материалов.

  1. Запустим 1 С:Предприятие в режиме отладки и в разделе Оказание услуг откроем документ Оказание услуги № 1 и нажмем Провести и

закрыть, то есть перепроведем его.

Рисунок 3.13 – Список регистра накопления «ОстаткиМатериалов»

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

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

Пиктограмма со знаком «минус» слева от записи указывает на тип движения - Расход (рисунок 3.13).

Сейчас виден весь список движений регистра. Открыв этот список из формы документа, можно отфильтровать движения по документу-регистратору:

  1. Откроем еще раз документ Оказание услуги № 1.

  2. В форме документа появилась панель навигации, в которой мы можем переходить к списку записей регистра Остатки материалов, связанному с документом, и обратно к содержимому документа (рисунок 3.14).

Рисунок 3.14 – Переход к регистру накопления из формы документа

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

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

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

Задания на исследование:

  1. Исследовать процесс создания регистра накопления «ОстаткиМатериалов».

  2. Ответить на вопросы и оформить отчет.

Вопросы для проверки подготовки студентов к занятию

  1. Для чего предназначен объект конфигурации Регистр накопления?

  2. Почему следует использовать регистры, хотя необходимая информация содержится в других объектах?

  3. Для чего нужны измерения регистра, ресурсы и реквизиты?

  4. Что такое движения регистра и что такое регистратор?

  5. Как создать новый регистр накопления и описать его структуру?

  6. Как создать движения документа с помощью конструктора движений?

  7. Как средствами встроенного языка обойти табличную часть документа и обратиться к ее данным?

  8. Как показать команды открытия списка регистра в интерфейсе?

ЛИТЕРАТУРА

  1. Введение в конфигурирование в системе «1С: Предприятие 8». Основные объекты. Версия 8.2. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2010.

  2. Использование запросов в системе «1С: Предприятие 8». Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.

  3. 1С: Предприятие 8.2. Руководство разработчика. Часть 1. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.

  4. 1С: Предприятие 8.2. Руководство разработчика. Часть 2. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.

  5. 1С: Предприятие 8.2. Руководство администратора. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.

“ ”.................20_ _г Методическая разработка составлена

ст. преподавателем кафедры АСУ Т.Авакян

22

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.