КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пересчитать сумму строки
Установить цену СтрокаТабличнойЧасти.Цена = РозничнаяЦенаДата, Элемент.Значение); РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры Прокомментируем содержимое обработчика. Первая строка обработчика вам уже знакома - мы получаем текущую строку табличной части документа, так как она нам понадобится в дальнейшем. Во второй мы устанавливаем полученную цену в документе, вызывая нашу процедуру «РозничнаяЦена». Первым параметром мы передаем дату документа, на которую необходимо получить цену, а вторым параметром мы передаем ссылку, которую отображает элемент управления формой, вызвавший это событие (Элемент.Значение), т.е. ссылку на элемент справочника «Номенклатура». В заключение мы вызываем нашу процедуру «РассчитатьСумму» из общего модуля «РаботаСДокументами» для того, чтобы она пересчитала итоговую сумму в строке нашего документа. Проверим, как теперь работает наш документ. Запустим 1С:Предприятие в режиме отладки и откроем регистр сведений «Цены». Для транзистора Philips добавим следующим числом новую цену: Теперь откроем документ ОказаниеУслуги №1. Как вы помните, этим документом мы как раз «израсходовали» один такой транзистор. Установим дату документа равной той дате, когда было задано первое значение цены транзистора, и повторим выбор транзистора в колонке «Номенклатура» табличной части документа. Автоматически установится первое значение цены:
126 Использование основных объектов конфигурации Периодический регистр сведений
Теперь изменим дату документа на следующий день и снова повторим выбор транзистора. Будет установлено новое значение цены: Что нового мы узнали
Таким образом, в документ подбирается актуальная, на момент создания документа, цена услуги. - для чего предназначен объект конфигурации Регистр сведений - какими особенностями обладает объект конфигурации Регистр сведений - в чем главные отличия регистра сведений от регистра накопления - какие поля определяют ключ уникальности регистра накопления - что такое периодический регистр сведений и что такое независимый регистр сведений - как создать периодический регистр сведений - что такое ведущее измерение регистра - как получить значения ресурсов наиболее поздних записей регистра средствами встроенного языка
128 Перечисление Глава 2. Перечисление До сих пор мы с вами не обращали внимания на то, что у нас нет никакого признака, по которому мы могли бы сказать, чем является конкретный элемент справочника «Номенклатура»: материалом или услугой. To, что все элементы справочника разложены у нас по некоторым группам, не может являться надежным критерием оценки: группы можно удалить, переименовать, сгруппировать элементы по другим принципам... Поэтому нам требуется некоторый признак, позволяющий однозначно определять принадлежность элемента справочника к материалам или услугам, независимо от изменения иерархической структуры справочника. В этой главе мы создадим у справочника «Номенклатура» Объект конфигурации Перечисление
бъект конфигурации Перечисление является прикладным объектом и предназначен для описания структуры хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации. На основе объекта конфигурации Перечисление платформа создает в базе данных информационную структуру, в которой может храниться набор некоторых постоянных значений. В реальной жизни этому объекту может соответствовать, например, перечисление вариантов указания цены («включая НДС», «без НДС»). Набор всех возможных значений, которые содержит перечисление, задается при конфигурировании системы, и пользователь не может изменять их, удалять или добавлять новые. Из этого следует важная особенность перечисления: значения перечисления не «обезличены» для конфигурации, на них могут опираться алгоритмы работы программы. тех, ктоработал с версией 7.7 Перечисления могут теперь иметь формы (в том числе основную форму списка и выбора), а также макеты. " Узнай больше! О структуре объектов встроенного языка, предназначенных для работы с перечислениями можно прочитать в главе «Перечисления» на странице 584. 130 Использование основных объектов конфигурации Перечисление
Реорганизация справочника Номенклатура
ткроем конфигуратор и создадим сначала новый объек «ВидыНоменклатуры». На закладке «Данные» добавим два значен» перечисления: «Материал» и «Услуга»: После этого запустим 1С:Предприятие в режиме отладки и зададим для каждого элемента справочника «Номенклатура» соответствующее значение реквизита «ВидНоменклатуры»: Теперь посмотрим, как можно использовать новые данные, «ВидыНоменклатуры». Затем добавим в справочник «Номенклатура» новый реквизит ПеречислениеСсылка.ВидыНоменклатуры:
132 Использование основных объектов конфигурации Перечисление
Изменение процедуры проведения документа ОказаниеУслуги
сли вы помните, в первой части книги, когда создавались движения документа «ОказаниеУслуги» по регистру накопления «ОстаткиМатериалов», мы сказали, что они не совсем правильные, поскольку в регистр будут попадать не только записи об израсходованных материалах, но и записи об оказанных услугах. Теперь мы займемся тем, что доработаем документ таким образом, чтобы в регистре появлялись только записи, относящиеся к расходу материалов. Эта доработка будет не совсем эффективна с точки зрения производительности, зато позволит нам получить нужные данные в регистре «ОстаткиМатериалов». Более эффективный вариант обработки проведения этого документа мы рассмотрим после изучения главы, рассказывающей о механизме запросов 1С:Предприятия 8.0. Скорректируем движения документа, исключив из обработки те строки табличной части, в которых находятся услуги. Для этого в обработчик события «ОбработкаПроведения», расположенный в модуле документа «ОказаниеУслуги», добавим следующий текст (добавленный текст выделен жирным шрифтом): Процедура ОбработкаПроведения(Отказ, Режим) //{{_КОНСТРУКТОРЛВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, // внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл Если ТекСтрокаПереченьНоменклатуры.Номеиклатура.ВидНоменклатуры<> Перечисления.ВидыНоменклатуры.Материал тогда Продолжить; КонецЕсли; // регистр ОстаткиМатериалов Расход Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаПереченъНоменклатуры.Номенклатура; Движение.Склад = Склад: Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество; КонецЦикла; // записываем движения регистров Движения.ОстаткиМатериалов.Записать()- //} }_КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Добавленный текст исключает из выполнения операторов цикла те (Перечисления.ВидыНоменклатуры), указывая в качестве его свойства имя нужного нам значения перечисления. Запустим 1С:Предприятие в режиме отладки и проверим работу процедуры проведения документа «ОказаниеУслуги». Откроем документ Оказание услуги №1 и внесем в него следующие изменения (обратите внимание, что изменен не только состав номенклатуры в табличной части, но и время документа): Перед тем, как провести документ, откроем список регистра «ОстаткиМатериалов», содержащий движения этого документа. Для этого выполним команду Перейти | Остатки материалов из командной панели документа.
134 Использование основных объектов конфигурации Перечисление
Проведем документ и убедимся, что в движения по регистру «ОстаткиМатериалов» включаются только строки, содержащие материалы:
Дата добавления: 2014-11-16; Просмотров: 736; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |