Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ABO_6_2012

.pdf
Скачиваний:
6
Добавлен:
23.02.2016
Размер:
583.12 Кб
Скачать

Отбор.Вставить("ТипЦіни", ТЦ); // Получить актуальные значения ресурсов регистра сведений

ЗначенияЦеныЗакупки = РегистрыСведений.ЦіниНоменклатури.ПолучитьПоследнее(Дата, Отбор);

Цена=ЗначенияЦеныЗакупки.ціна; Сообщить("номенклатура "+ мояСтрока.НайменуванняТовару+" ціна з регістру відомостей "+цена) ;

Если Цена=0 Тогда Если Мойсклад.ТипСкладу=

Перечисления.ТипСкладу.Роздрібний тогда Цена= мояСтрока.НайменуванняТовару.Роздрібна;

Сообщить("номенклатура "+ мояСтрока.НайменуванняТовару+" Береться ціна за замовчуванням "+Цена);

Иначе Цена= мояСтрока.НайменуванняТовару.Гуртова;

Сообщить("номенклатура "+ мояСтрока.НайменуванняТовару+" Береться ціна за замовчуванням "+Цена);

КонецЕсли; КонецЕсли; МояСтрока.Ціна=Цена; КонецПроцедуры

//==================================

6. Перейдіть на гілку Журнали документів.

7. Створіть журнал документів РухТоварів (синонім Рух товарів), у якому відображатимуться документи по надходженню та продажу товарів:

7.1.Створіть журнал документів РухТоварів.

7.2.На вкладці Дані додайте Документи, що реєструються журналом два документи:

Надходження товарів і Продаж товарів.

7.3.На вкладці Дані додайте графу Контрагенти. Після зазначення ім'я графи додайте Посилання, яке міститиме реквізит Контрагенти для кожного з документів.

7.4.Додайте у журнал документів РухТоварів графу Сума та зв'яжіть її посиланням з реквізитом Сума документа НадходженняТоварів;

7.5.Виконайте те саме для документа Продаж товарів.

7.6.Запустіть конфігурацію у режимі «Підприємство», перевірте відображення документів

ужурналі Рух товарів.

8.Для форми документів НадходженняТоварів і ПродажТоварів напишіть обробку події ПриОткрытии(), щоб для нових документів у елемент форми Склад підставлялося значення за замовчуванням.

9.Додайте у документ НадходженняТоварів у обробку події ПередЗаписью() перевірку на заповненість у заголовку документа реквізитів Склад і Контрагент. Якщо хоча б один з цих реквізитів не заповнений треба виводити повідомлення і не дозволяти зберігати документ.

Завдання 6. Регістри накопичення. Проведення документів.

Створити регістри накопичення, які зберігатимуть залишки товарів з урахуванням місця зберігання та обсягу продажу товарів у розрізі контрагентів відповідно. Використовуючи дані регістру накопичення ЗалишкиТоварів контролювати Продаж таким чином, щоб на складі не залишалась від'ємна кількість товару.

1. Створіть регістр накопичення

ЗалишкиТоварів (синонім Залишки товарів). У регістрі додайте вимір

Номенклатура та Склад та ресурс Кількість.

11

Для регістру накопичення ЗалишкиТоварів встановіть на вкладці Реєстратори

навпроти документів Надходження товарів і Продаж товарів.

2. Перейдіть у конфігурації до документа НадходженняТоварів і заповніть конструктор рухів за типом руху Прибуток.

3. Завантажте конфігурацію у режимі «Підприємство». Відкрий-те регістр накопичення

ЗалишкиТоварів (він повинен бути порожнім). Відкрийте та заново проведіть документ

НадходженняТоварів. Зверніть увагу, що документ сформував записи регістра саме по надходженню товарів.

4. У документ ПродажТоварів

додайте рух регістру накопичення Залишки товарів за

типом руху Видаток.

5. Завантажте конфігурацію у режимі «Підприємство» та перевірте чи додає документ у регістр накопичення дані зі знаком мінус при проведенні документа Продаж товарів.

6. Створіть константу ДозволитиВідємніЗалишки (синонім Дозволити від’ємні залишки) (тип булево). Розмістіть її на формі констант. Константа буде вказувати чи треба дозволяти продавати той товар, якого немає на складі.

7. Відкрийте модуль об’єкта ПродажТоварів.

7.1. У дереві конфігурації у контекстному меню документа ПродажТоварів оберіть команду Відкрити модуль об’єкта. Змініть процедуру ОбработкаПроведения():

//===========================================

Процедура ОбработкаПроведения (Отказ, Режим)

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

//Цей фрагмент побудований конструктором.

//При повторному використанні конструктора, внесені вручну зміни будуть втрачені!!!

Для Каждого ТекСтрокаТовари Из Товари Цикл

//регістр 3алишкиТоварів Расход

Движение = Движения.ЗалишкиТоварів.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура =

ТекСтрокаТовари.НайменуванняТовару; Движение.Склад = Склад;

Если Константы.ДозволитиВідємніЗалишки.Получить()=Ложь

Тогда

Фильтр = Новый Структура; Фильтр.Вставить("Номенклатура",

ТекСтрокаТовари.НайменуванняТовару); Фильтр.Вставить("Склад", Склад);

ТабОстатков = РегистрыНакопления.ЗалишкиТоварів.Остатки(ТекущаяДата(),Фильтр)

;

Для Каждого СледСтр из ТабОстатков Цикл Если СледСтр.Кількість<ТекСтрокаТовари.Кількість Тогда

12

Сообщить("На складі "+Склад.Наименование+" не

вистачає " +ТекСтрокаТовари.НайменуванняТовару.Наименование + " у

наявності тільки " + СледСтр.Кількість, СтатусСообщения.Внимание);

Отказ=Истина; КонецЕсли;

КонецЦикла; Если ТабОстатков.Количество()<1 Тогда

Сообщить("На складі "+Склад.Наименование+" немає " +ТекСтрокаТовари.НайменуванняТовару.Наименование,

СтатусСообщения.Внимание); Отказ=Истина;

КонецЕсли; КонецЕсли;

Движение.Кількість = ТекСтрокаТовари.Кількість; КонецЦикла;

//}}_КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры

//===========================================

7.2. Завантажте конфігурацію у режимі «Підприємство», перевірте, чи видаються повідомлення, якщо для продажу обрана більша кількість товару ніж є на складі (зверніть увагу, що перевірка повинна відбуватися в залежності від встановленого значення константи

ДозволитиВідємніЗалишки).

8. Створіть документ Переміщення, за допомогою якого можна переміщувати товари з одного складу до іншого.

9. Сформуйте рух регістру накопичення ЗалишкиТоварів таким чином, щоб один документ одночасно формував видаток товарів з одного складу та надходження товарів на інший склад. Для цього:

-у документі Переміщення обрати регістр ЗалишкиТоварів, рух у якому він буде змінювати;

-викликати конструктор рухів (для виду рухів Видаток);

-відкрити модуль об'єкта, що містить код процедури ОбработкаПроведения() та скопіювати код проведення документа у буфер обміну;

-ще раз запустити конструктор рухів, але для виду руху Прибуток (зверніть увагу на те, який склад слід вказувати при кожному виду руху);

-змініть програмний код процедури ОбработкаПроведения() так, щоб він виглядав наступним чином:

//=================================

13

Процедура ОбработкаПроведения(Отказ, Режим)

//{{_КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

//Цей фрагмент побудований конструктором.

//При повторному використанні конструктора дані, внесені вручну будуть знищенні Для Каждого ТекСтрокаТовари Из Товари Цикл

//регістр ЗалишкиТоварів Приход Движение = Движения.ЗалишкиТоварів.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаТовари.Найменування; Движение.Склад = СкладКуди;

Движение.Кількість = ТекСтрокаТовари.Кількість;

//регістр ЗалишкиТоварів Расход

Движение = Движения.ЗалишкиТоварів.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаТовари.Найменування; Движение.Склад = СкладЗвідки;

Движение.Кількість = ТекСтрокаТовари.Кількість; КонецЦикла; // }}_КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры

//=================================

Запустіть програму на виконання та сформуйте документ Переміщення. Спробуйте скасувати проведення. Перевірте чи зникли рядки з регістру накопичення ЗалишкиТоварів.

14.Додайте у документ Переміщення контроль залишків (як у документі ПродажТоварів) таким чином, щоб не можна було перемістити більшу кількість товарів, ніж є на складі (в залежності від встановленого значення константи ДозволитиВідємніЗалишки).

15.Додайте документ Переміщення до журналу документів РухТоварів.

Завдання 7. Заповнення інформаційної бази.

1.Збережіть конфігурацію.

2.Створіть інтерфейс Повний, та роль Адміністратор (гілка конфігурації Загальні).

3.Створіть користувача та призначте йому створені інтерфейс та роль.

4.перейдіть у режим «Підприємство» та заповніть інформаційну базу.

5.За допомогою Синтаксис-Помічника ознайомитись із синтаксисом і призначенням функцій, процедур, методів, які використовувались.

Термін захисту роботи: 12-е заняття.

14

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