- •Лабораторная работа № (продолжение) Построение простейшей конфигурации по учету складских операций
- •2.7 Справочник складов
- •2.8 Справочник контрагентов
- •2.9 Справочник договоров с контрагентами
- •2.10 Работа со справочниками контрагентов и договоров
- •2.11 Справочник сортов
- •2.12 Хранение данных по взаиморасчетам с контрагентами
- •2.13 Первый документ. Приход денег
- •2.14 Работа с документом.
- •2.15 Отчет по долгам.
- •2.16 Документ "Выплата денег".
- •2.17 Документ "Изменение цен".
- •2.18 Регистры по товарам.
- •2.19 Приходная накладная.
- •2.20 Отчет по остаткам на складе.
- •2.21 Fifo/lifo/По-среднему.
- •2.22 Расходная накладная.
- •2.23 Расходная накладная. Продолжение.
- •2.24 Накладная на перемещение
- •2.25 Оборотные ведомости
- •2.26 Отчет по прибыли с товара
- •2.27 Отчет по обороту товара
- •2.28 Новые наборы прав
- •2.29 Новые интерфейсы
2.16 Документ "Выплата денег".
Документ "Выплата денег" будет практически аналогичен документу "Приход денег". Поэтому мы его создадим простым копированием. И потом внесем в него ряд небольших изменений.
В дереве метаданных скопируем документ "ПриходДенег" в буфер обмена Windows;
Вставим из буфера обмена в раздел "Документы" копию;
Изменим Идентификатор на "ВыплатаДенег", аналогично изменим Синоним и комментарий;
Внесем соответствующие косметические изменения в форму документа;
В модуле проведения документа вместо строки: Регистр.Взаиморасчеты.ДвижениеПриходВыполнить(); напишем Регистр.Взаиморасчеты.ДвижениеРасходВыполнить();
В модуле проведения документа вместо строки: Регистр.Взаиморасчеты.ФлагДвижения = 4; напишем Регистр.Взаиморасчеты.ФлагДвижения = 3;
В журнале "ДвижениеДенег" изменим реквизит "Сумма";
В выбранные значения добавим реквизит "Сумма" из нового документа;
Перейдем на закладку "Интерфейсы" и добавим в меню в раздел "Документы" наш документ "ВыплатаДенег";
Команду укажем – Документы.ВыплатаДенег.Ввести;
Закроем лишние окна;
Сохраним конфигурацию;
Откроем 1С:Предприятие;
Создадим новый документ типа "Выплата денег". Заполним его. Сохраним. Проведем. И полюбуемся на движения которые сформировал документ и результат, который выдаст нам отчет.
2.17 Документ "Изменение цен".
Мы уже упоминали, что документы при проведении могут изменять значения периодических реквизитов справочников. Разумеется, документы могут изменять значения и непериодических реквизитов, но это мало интересно. При изменении периодических, программа будет запоминать, когда и с помощью чего меняли значения.
В справочнике "Номенклатура" мы имеем два реквизита интересующего нас типа: "ЦенаП" и "ЦенаР". В их свойствах мы указали, что они могут изменяться документами. Спроектируем такой документ.
Пусть наш документ будет иметь возможность изменять цену не одного товара, а любого количества. Значит наш документ будет содержать многострочную часть. Документ должен иметь возможность изменять сразу и цену поступления, и цену реализации. При работе с ценами товара мы хотим видеть, какие цены были до изменения. Эти поля должны быть не редактируемые. Для документа будет заведен отдельный журнал. Создадим этот документ. Все данные по документу сведем в таблицу:
Идентификатор: ИзменениеЦен Журнал: ИзменениеЦен Нумератор: Нет Периодичность: Год Длина: 5 Тип: число Уникальность: да Автонумерация: да Оперативный учет: нет Может являться основанием для документа любого вида?: нет | |||
Является основанием для |
Вводится на основании | ||
Шапка | |||
Реквизит |
Описание |
ТипЗначения |
Доп. |
Таблица | |||
Реквизит |
Описание |
ТипЗначения |
Доп. |
Товар |
Товар |
С.Номенклатура |
|
СтЦенаП |
Старая цена прихода |
Число 7.2 |
|
ЦенаП |
Новая цена прихода |
Число 7.2 |
|
СтЦенаР |
Старая цена расхода |
Число 7.2 |
|
ЦенаР |
Новая цена расхода |
Число 7.2 |
|
Новый документ;
Идентификатор – "ИзменениеЦен", Синоним – "Изменение цен", Комментарий – "изменение цен товара";
Документ будет проводиться и перепроводиться;
Новый журнал – "ИзменениеЦен";
В окне свойств документа заполним позиции согласно таблицы;
Создадим форму документа;
Графы "СтЦенаП" и "СтЦенаР" – сделаем недоступными;
На поле ввода "Товар" повесим формулу ВыбТовар();
На поле ввода "ЦенаП" повесим формулу ЦенаП();
В модуль формы добавим две процедуры: Процедура ВыбТовар() СтЦенаП=Товар.ЦенаП.Получить(ДатаДок); ЦенаП=Товар.ЦенаП.Получить(ДатаДок); СтЦенаР=Товар.ЦенаР.Получить(ДатаДок); ЦенаР=Товар.ЦенаР.Получить(ДатаДок); // Получаем значения периодических реквизитов справочника на дату документа КонецПроцедуры //----------------------------------------------- Процедура ЦенаП() ЦенаР=Окр(ЦенаП*(1+(Константа.ПроцентНаценки/100)),2,1); КонецПроцедуры
Перейдем к модулю документа;
Напишем процедуру обработки проведения документа: Процедура ОбработкаПроведения() ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл УстановитьРеквизитСправочника(Товар,"ЦенаП",ЦенаП); УстановитьРеквизитСправочника(Товар,"ЦенаР",ЦенаР); // Мы указываем периодические реквизиты элемента справочника, // указанного в поле Товар и значения, которые они будут теперь иметь КонецЦикла; КонецПроцедуры
Сохраним конфигурацию;
Загрузим 1С:Предприятие;
Введем новый документ "Изменение цен" №1 от 04.10.2005;
В многострочную часть занесем товар "МПР-0342" (Кефир);
Укажем ему новую цену поступления – 6.50;
Цена реализации изменилась, и составила теперь – 8.78;
Подтвердим, что это нас устраивает нажатием на Enter, если нет, то можно отредактировать эту цену;
Заведем еще один товар – "ФРЯ-908" (Яблоки);
Новая цена поступления – 18, цена реализации – 25;
[ОК]. Проведем документ;
Откроем журнал ИзменениеЦен. Мы журнал не редактировали, таким он выглядит в 1С по умолчанию. Если будет желание, можете поэкспериментировать с изменением внешнего вида этого журнала в Конфигураторе;
Документ с галочкой. Галочка сиреневого цвета – документ проведен, но он не документ оперативного учета;
Посмотрим какие движения вызвал наш документ;
Он не изменял регистров, а внес изменения в реквизиты справочников;
Мы видим четыре строки. Пиктограммки показывают, что это изменение периодического реквизита. Указано в каком справочнике, какой реквизит, у какого элемента, когда принял новое значение;
Откроем теперь справочник "Номенклатура";
Найдем позицию "Кефир";
Меню Действия команда "История значения". Выберем "ЦенаП";
Мы видим, когда как менялась цена поступления этого товара;
Первая строчка с изображением руки – мы ввели цену вручную, при создании этого товара;
Вторая строка – листик с галочкой – мы изменили цену документом; Ручное изменение цены никогда не имеет времени. Оно всегда располагается в самом начале дня. Изменение цены документом отслеживает время документа. Оно может располагаться в начале, середине либо конце дня, как было указано при сохранении документа. Если в течении дня было несколько таких документов, они расположатся в зависимости от указанного в них времени.
Закроем 1С:Предприятие;