Регистр сведений «Цены поставщиков» Регистр сведений «Валюты» Создайте справочник «Валюты», определите реквизит «ПолноеНаименование», настройте форму списка. Справочник без иерархии, не подчиненный, принадлежит подсистеме «Торговля». После этого создадайте регистр сведений «Валюты». У него определите одно измерение «Валюта» («ведущее»), ресурс «Курс», настройте форму списка, форму записи регистра. Далее в свойствах (для флажка по валюте и соответствующего поля ввода) необходимо указать: | Теперь модифицируем форму списка, добавим на форму два флажка и три поля ввода (как показано на рисунке).  При настройке отбора по периоду: в свойство «Данные» флажка необходимо выбрать «Отбор.Период.Использование», в одно поле ввода «Отбор.Период.ВидСравнения», во второе поле ввода «Отбор.Период.Значение». Запустите «1С:Предприятие» в пользовательском режиме и посмотрите на работу регистра сведений «Валюты». Чтение значения курса валют Модифицируем документ «Приходная». В данный документ необходимо добавить реквизит «Валюта» (тип «СправочникСсылка.Валюты»), в форму документа добавим реквизит формы «Курс» (тип «Число»). В диалог формы добавим две надписи и одно поле ввода. Одну из надписей через свойство «Данные» свяжем с реквизитом формы «Курс», вторую определим как гиперссылку и в свойстве «Нажатие» пропишем имя процедуры «ИсторияЫажатие». Поле ввода через свойство «Данные» свяжем с реквизитом документа «Валюта». Диалог документа будет выглядеть следующим образом:  Текст процедуры, которая будет выполняться при нажатии на гиперссылку приведен ниже: Процедура ИсторияНажатие(Элемент) ФормаСР=РегистрыСведений.Валюты.ПолучитьФормуСписка(,ЭтаФорма,"Док"+Номер); ФормаСР,РегистрСведенийСписок.Отбор.Валюта.Значение=Валюта; ФормаСР.РегистрСведенийСписок.Отбор.Валюта.Использование= Истина; ФормаСпискаРегистра,ЗакрыватьПриЗакрытииВладельца=Истина; ФормаСпискаРегистра.РазрешитьСостояниеПрячущееся=Истина; ФормаСпискаРегистра.РазрешитьСостояниеПрикрепленное=Истина; ФормаСпискаРегистра.РазрешитьСоединятьОкно=Истина; ФормаСР. Открыть(); КонецПроцедуры Процедуру «ВалютаПриИзменении()» необходимо определить как обработчик события «ПриИзменении» для элемента диалога, связанного с реквизитом документа «Валюта». Процедура ВалютаПриИзменении(Элемент) Отбор=Новый Структура("Валюта",Валюта); Запись= РегистрыСведений.Валюты.ПолучитьПоследнее(Дата,Отбор); Курс=3апись. Ку рс; КонецПроцедуры Следует отметить, что курс будет показываться только после выбора валюты, при открытии уже заполненного документа этого происходить не будет. Но подобный результат определяется событием, которое выбрали для заполнения реквизита формы «Курс», в случае необходимости подобный недостаток можно довольно просто устранить. Регистр сведений «Цены поставщиков» В предыдущем примере мы рассмотрели основы работы с регистром сведений, у которого был ручной способ записи. Теперь рассмотрим пример, когда запись ведется регистратором. Поставим перед собой задачу создать механизм, позволяющий отслеживать приходные цены номенклатуры в разрезе поставщиков. Создадим регистр сведений «ЦеныПоставщиков». Регистр сведений периодический (по позиции регистратора), режим записи «Подчинение регистратору». У него два измерения «Поставщик», «Номенклатура» и один ресурс «Цена». Настройте форму списка и форму набора записей. 
Так как запись ведется регистратором (по смыслу документом «Приходная»), необходимо модифицировать данный документ. А именно: разрешить проведение и вставить в модуль документа (объекта) процедуру проведения, текст которой приводится ниже.  Процедура ОбработкаПроведения(Отказ, Режим) Для Каждого ТекСтрокаТовары Из Товары Цикл Движение=Движения.ЦеныПоставщиков.Добавить(); Движение .Период=Дата; Движение.Поставщик=Контрагент; Движение.Номенклатура=ТекСтрокаТовары.Номенклатура; Движение.Цена=ТекСтрокаТовары.Цена; КонецЦикла; Движения.ЦеныПоставщиков.ЗаписатьО; КонецПроцедуры Текст процедуры можно ввести вручную, а можно воспользоваться конструктором. Для его вызова на закладке «Движения» необходимо нажать кнопку «Конструктор движений». Проверьте работоспособность созданного вами механизма. Практикум № 6-------------------------------------------------------------- Определите регистр сведений, который будет содержать данные о штатном расписании организации (в каком подразделении, на каких должностях какое количество ставок). Данные в регистр должны записываться из документа «ИзменениеШтатногоРасписания». Регистры накопления Регистры накопления используются в системе для накопления информации о наличии и движении средств - товарных, денежных и других величин. Можно сказать, что регистр накопления представляет из себя п-мерную систему координат, в узлах которой располагаются наборы числовых характеристик. Так же как и с регистром сведений, работа с регистром накопления заключается в работе с записями (движениями регистра) Различают два вида регистров накопления: • Регистры остатков • Регистры оборотов Начнем знакомство с регистрами накопления с регистров остатков. Регистр «Остатки номенклатуры» Создайте регистр «ОстаткиНоменклатуры» (регистр остатков), определите у него одно измерение «Номенклатура», два ресурса «Количество», «Сумма», настройте формы списка.  Остается модифицировать документ «Приходная». Необходимо разрешить ему «двигать» данный регистр и, используя конструктор движений, переопределить обработку проведения. Если вести речь о регистрах остатков, то нельзя закончить разговор о данном объекте, не ответив на вопрос: «На какую дату система хранит рассчитанные остатки». Ответ: «Соответствующая граница выставляется в пользовательском режиме». Регистр накопления «Продажи» Создадим регистр оборотов «Продажи». Определите у него два измерения: «Номенклатура», «Контрагент», два ресурса: «Количество», «Сумма». Настроим формы.  После этого необходимо внести необходимые изменения в документ «Расходная». Требуется разрешить документу «двигать» данный регистр, определить с помощью конструктора процедуру проведения документа. Практикум № 7------------------------- .--------------------- :---------- — Создайте механизм, который позволит учитывать кто и какие ставки (из штатного расписания) занимает, |