Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laby_1-3_po_informatsionnym_tehnologiam_i_siste....doc
Скачиваний:
40
Добавлен:
08.12.2018
Размер:
10.07 Mб
Скачать

3.4. Перечисления.

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

В конфигураторе создадим новый объект конфигурации Перечисление с именем ВидыНоменклатуры (рис. 3.50, 3.51).

Рис. 3.50. Добавление перечисления

Рис. 3.51. Основные свойства перечисления ВидыНоменклатуры

На вкладке Данные добавим два значения перечисления: Материал и Услуга (рис. 3.52).

Рис. 3.52. Данные перечисления ВидыНоменклатуры

«Привяжем» номенклатуру к значениям перечисления.

Задание 2. В режиме Конфигуратор добавьте в справочник Номенклатура новый реквизит ВидНоменклатуры с типом ПеречислениеСсылка.Виды Номенклатуры (рис. 3.53).

Рис. 3.53. Данные справочника Номенклатура

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

Откроем справочник Номенклатура (рис. 3.54).

Рис. 3.54. Справочник Номенклатура

Зададим для каждого элемента справочника Номенклатура соответствующее значение реквизита Вид номенклатуры (рис. 3.55).

Рис. 3.55. Данные справочника Номенклатура

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

Ранее при создании документа ОказаниеУслуги по регистру накопления ОстаткиМатериалов в регистр попадали не только записи о материалах, но и об оказанных услугах (листинг 3.4).

Листинг 3.4. Процедура «ОбработкаПроведения()» документа ОказаниеУслуги

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

Откроем в конфигураторе модуль документа ОказаниеУслуги (контекстное меню документа – Открыть модуль объекта (рис. 3.56)) и изменим обработчик события (листинг 3.5) так, чтобы исключить из обработки строки табличной части, в которых находятся услуги.

Рис. 3.56. Открытие модуля объекта

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

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

В переменной ТекСтрокаПереченьНоменклатуры содержаться на каждом шаге цикла данные текущей строки табличной части ПереченьНоменклатуры.

Указывая имя колонки Номенклатура (ТекСтрокаПерченьНоменклатуры.Номенклатура), обращаемся к реквизиту ВидНоменклатуры этого справочника Номенклатура.

Полученное значение с помощью оператора сравнения (=) сравниваем со значением Материал перечисления ВидНоменклатуры (Перечисления.ВидыНоменклатуры. Материал).

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

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

Откроем список документов, выполнив команду Оказание услуг в панели навигации раздела Оказание услуг (рис. 3.57).

Рис. 3.57. Список документов Оказание услуг

Откроем документ Оказание услуги №1 и внесем в него изменения:

  1. Удалить строку, содержащую транзистор Philips;

  2. Добавить услугу Подключение воды и материал Шланг резиновый (рис. 3.58). Нажмем кнопку Провести.

Рис. 3.58. Измененный документ ОказаниеУслуги

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

Рис. 3.59. Записи регистра ОстаткиМатериалов

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

3.5. Проведение документа по нескольким регистрам

Задание 3. Создать самостоятельно еще один регистр накопления СтоимостьМатериалов, который будет использоваться для хранения об общей стоимости тех или иных материалов.

  1. Задать Расширенное представление списка – Движения по регистру Стоимость материалов.

  2. Сделать так, чтобы регистр отображался в подсистемах Бухгалтерия, Учет материалов, Оказание услуг.

  3. Задать:

  • Измерение – Материал, тип СправочникСсылка. Номенклатура;

  • Ресурс – Стоимость, длина – 15, точность – 2.

Отредактируем командный интерфейс так, чтобы в подсистемах Бухгалтерия, Учет материалов, Оказание услуг была доступна ссылка для просмотра регистра накопления.

В дереве объектов конфигурации выделим ветвь Подсистемы, и в контекстном меню выберем пункт Все подсистемы (рис. 3.60).

Рис. 3.60.

В открывшемся окне в списке подсистемы выделим подсистему Бухгалтерия. Справа в списке Командный интерфейс отразятся все команды выбранной подсистемы.

В группе Панель навигации.Обычное включим видимость у команды Стоимость материалов и перетащим ее в группу Панель навигации.См. также (рис. 3.61).

Рис. 3.61. Настройка командного интерфейса подсистем

Аналогично в подсистемах Оказание услуг и Учет материалов включим видимость у команды Стоимость материалов и перенесем ее в группу См. также.

Изменим алгоритм проведения документа ОказаниеУслуги.

Самостоятельно добавьте новый реквизит табличной части документа:

Имя – Стоимость, тип – Число, точность – 2, длина – 15, неотрицательное.

После этого откроем форму документа ОказаниеУслуги (рис. 3.62).

Рис. 3.62. Форма документа Оказание услуги

Добавим в табличную часть ПереченьНоменклатуры поле, отображающее новый реквизит Стоимость.

Для этого в правом верхнем окне на закладке Реквизиты раскроем реквизит формы Объект (рис. 3.63).

Рис. 3.63. Изменение формы документа ОказаниеУслуги

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

Новый элемент расположим в структуре элементов формы после поля Номенклатура. Оставим свойства элемента формы, предложенные по умолчанию (рис. 3.64).

Рис. 3.64. Изменение формы документа ОказаниеУслуги

Создадим движения документа ОказаниеУслуги. В окне редактирования объекта конфигурации Документ ОказаниеУслуги (рис. 3.65) перейдем на закладку Движения.

Рис. 3.65.Окно редактирования документа Оказание услуги

В списке регистров отметим, что документ будет создавать движения и по регистру СтоимостьМатериалов (рис. 3.66).

Рис. 3.66. Создание движений документа ОказаниеУслуги в регистре Стоимость материалов

Необходимые изменения внесем прямо в обработчик события ОбработкаПроведения документа ОказаниеУслуги.

Перейдем на вкладку Прочее и откроем модуль объекта (кнопка Модуль объекта) (рис. 3.67).

Рис. 3.67. Открытие модуля объекта

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

В конце цикла перед строкой КонецЕсли добавим строки кода, создающие движения регистра СтоимостьМатериалов, производимые документом ОказаниеУслуги (листинг 3.6).

Листинг 3.6. Движения документа ОказаниеУслуг (фрагмент)

Перед началом цикла установим свойство Записывать набора записей движений по этому регистру в значение Истина.

В результате процедура ОбработкаПроведения будет выглядеть следующим образом (листинг 3.7).

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

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

Откроем форму документа.

Перейдем на закладку Командный интерфейс и в разделе Панель навигации в группе Перейти установим свойство Видимость для команды открытия регистра накопления Стоимость материалов (рис. 3.68).

Рис. 3.68. Настройка командного интерфейса формы документа Оказание Услуги

Запустим 1С: Предприятие в режиме отладки и откроем список документов, выполнив команду Оказание услуг в панели навигации раздела Оказание услуг (рис. 3.69).

Рис. 3.69. Список документов Оказание услуги

Откроем документ ОказаниеУслуги №1 и укажем в нем стоимость резинового шланга – 100 (рис. 3.70).

Рис. 3.70. Документ ОказаниеУслуги

Проведем документ Оказание услуги нажатием кнопки Провести (рис. 3.70) и посмотрим на движения этого документа по регистру Стоимость материалов, выполнив команду перехода Стоимость материалов (рис. 3.71, 3.72).

Рис. 3.71. Команда перехода к записям регистра

Рис. 3.72. Записи регистра Стоимость материалов

Задание 4. Создайте и проведите еще два документа Оказание услуги (рис. 3.73, 3.74) и покажите их движения по регистру Стоимость материалов. Эти документы понадобятся в дальнейшем и созданы с другими датами.

Рис. 3.73. Документ ОказаниеУслуги № 2

Рис. 3.74. Документа ОказаниеУслуги № 3

Задание 5. Аналогичным образом создайте движения документа ПриходнаяНакладная по двум регистрам ОстаткиМатериалов и СтоимостьМатериалов:

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

  2. Внести изменения в процедуру обработчика события ОбработкаПроведения (листинг 3.8, 3.9).

Листинг 3.8. Движения документа ПриходнаяНакладная (фрагмент)

Листинг 3.9. Движения документа ПриходнаяНакладная

  1. Отредактировать командный интерфейс: установить Видимость для команды открытия регистра накопления СтоимостьМатериалов.

  2. Открыть список документов с помощью команды Приходные накладные в панели навигации раздела Учет материалов. Перепровести все приходные накладные, выделив их и выполнив команду Все действия -> Провести.

  3. Проверить, что документы создают желаемые записи в обоих регистрах (команды перехода к регистрам Остатки материалов и Стоимость материалов).

На рис. 3.75 и рис. 3.76 показаны записи в регистрах, созданные документом Приходная накладная № 1.

Рис. 3.75. Записи регистра Остатки материалов

Рис. 3.76. Записи регистра Стоимость материалов

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]