Лабораторная работа № 10
Перечисления.
Ориентировочная продолжительность занятия - 30 минут.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Что такое перечисление
Объект конфигурации Перечисление предназначен для описания структуры хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации. На основе объекта конфигурации Перечисление платформа создает в базе данных таблицу, в которой может храниться набор некоторых постоянных значений.
В реальной жизни этому объекту может соответствовать, например, перечисление вариантов указания цены («включая НДС», «без НДС»). Набор всех возможных значений, которые содержит перечисление, задается при конфигурировании системы, и пользователь не может изменять их, удалять или добавлять новые.
Особенностьперечисления: значения перечисления не «обезличены» для конфигурации, на них могут опираться алгоритмы работы программы.
ПРАКТИЧЕСКАЯ ЧАСТЬ
Добавление перечисления
- В режиме Конфигуратор
Откроем конфигуратор и создадим сначала новый объект конфигурации Перечисление с именем ВидыНоменклатуры.
- На закладке Данные: нажмем на «+» и добавим два значения перечисления: Материал и Услуга.
Привязка номенклатуры к значениям перечисления «ВидНоменклатуры»
Чтобы привязать номенклатуру к значениям перечисления, мы сделаем следующее:
- В режиме Конфигуратор создадим у справочника Номенклатура реквизит, который будет хранить значение перечисления.
- В режиме 1С: Предприятие проставим нужные значения этого реквизита для всех элементов справочника Номенклатура.
- В режиме Конфигуратор
- На закладке Данные: добавим в справочник Номенклатура новый реквизит ВидНоменклатуры с типом ПеречислениеСсылка.ВидыНоменклатуры.
- В режиме 1С:Предприятие
После этого запустим 1С: Предприятие в режиме отладки.
Платформа выдаст предупреждающее сообщение о том, что наше перечисление не включено ни в одну подсистему. Проигнорируем его и примем изменения конфигурации.
В режиме 1С: Предприятие зададим для каждого элемента справочника Номенклатура соответствующее значение реквизита ВидНоменклатуры:
Рис. 10.1. Зададим значение реквизита ВидНоменклатуры
Регистрация расхода только той номенклатуры, которая является материалом
Сначала в режиме Конфигуратор изменим процедуру проведения документа так, чтобы в регистр попадали записи только о той номенклатуре, которая является материалом, а потом в режиме 1С:Предприятие заново проведем (перепроведем) все документы Оказаниеуслуги, чтобы данные в регистре изменились в соответствии с новым алгоритмом проведения документа.
Эта доработка будет не совсем эффективна с точки зрения производительности, зато позволит нам получить нужные данные в регистре ОстаткиМатериалов.
- В режиме Конфигуратор
Скорректируем движения документа, исключив из обработки те строки табличной части, в которых находятся услуги.
Для этого откроем в конфигураторе модуль документа ОказаниеУспуги (контекстное меню документа - Открыть модуль объекта) и добавим вобработчик события ОбработкаПроведения это условие.
Текст следует добавить в начало цикла обхода табличной части документа после строки ДляКаждогоТекСтрокаПереченьНоменклатурыИзПереченьНоменклатурыЦикл.
В результате процедура ОбработкаПроведения должна выглядеть следующим образом:
Листинг 10.1. Скорректируем движения документа
Добавленный текст исключает выполнение операторов цикла для тех строк табличной части документа, в которых номенклатура не является материалом.
- В режиме 1С:Предприятие
Запустим 1С:Предприятие в режиме отладки и проверим работу процедуры проведения документа Оказаниеуслуги.
Откроем список документов, выполнив команду Оказаниеуслуг в панели навигации раздела Оказаниеуслуг.
Откроем документ Оказание услуги № 1 и внесем в него изменения:
- удалим из табличной части строку какого-нибудь материала;
- добавим новую услугу;
- добавим материал для этой услуги.
Обратите внимание, что цены подставляются автоматически из регистра сведений Цены.
Нажмем кнопку Провести в командной панели формы документа.
Затем выполним команду Остаткиматериалов в панели навигации формы, чтобы перейти к записям регистра Остаткиматериалов, связанным с данным документом.
Как мы видим, в движения по регистру Остаткиматериалов включаются только строки, содержащие материалы. Запись про новую услугу в движения не попала.
Контрольные вопросы
- Для чего предназначен объект конфигурации Перечисление.
- Как создать новое перечисление.
- Как с помощью перечисления задать принадлежность элементов справочника к той или иной смысловой группе.
- Как обратиться к значению перечисления средствами встроенного языка.