Частина друга «Документи»

Автор: admin · Рубрика Блог починаючого програміста · Пока нет комментариев

В цій частині ми ознайомимось з елементом конфігурації «Документ» від довідника документ відрізняється тим, що може мати один з двох станів «проведено – не проведено». Якщо документ «проведено» значить подія відбулась (товар відгружено, гроші від клієнта поступили, тощо) Якщо документ не проведено то відповідно подія ще не зафіксована і документ є чорновиком, заготовкою. Кожний документ прив’язаний до події яка відбулась в певний момент тому документи мають прив’язку до дати та часу, що дозволяє вистроїти хронологічну послідовність документів. Оскільки деякі документи можуть бути проведені заднім числом в системі є інструменти що дозволяють від слідкувати чи вплинуть ці зміни на наступні за хронологією і логічно пов’язані документи та перепровести їх.

Як правило документи мають багато інформації яка важлива для ведення правильного обліку така додаткова інформація в системі 1с Підприємство називається реквізитами документа. Більшість реквізитів розробник прописує сам проте два реквізити документу система додає автоматично і їх не можна видалити це дата документа ( з точністю до секунди) та номер документа (як правило унікальний на протязі року) .

Інформація яка є однаковою по структурі але різна по кількості виноситься в одну або кілька табличних частин документа (наприклад перелік товарів з ціною та кількістю які взяли по прихідній накладній).

З документом пов’язано і таке поняття як оперативне чи неоперативне проведення та перепроведення документу та оперативна відмітка часу. При оперативному проведенні система перевіряє чи співпадає дата документу з поточною датою і якщо співпадає тоді при проведенні документу встановлює поточний час або час на секунду більший за останній оперативно проведений сьогодні документ. Якщо ж дата не співпадає виводиться повідомлення про неможливість оперативного проведення документу.

Проте ми трохи помилились при створенні довідників ми забули створити довідник дисків. «Довідник дисків» це довідник в якому вказується перелік дисків а в табличній частині вказується перелік фільмів які є на дисках. Також потрібно створити додатковий реквізит Примітка де будемо вказувати додаткові дані.

clip_image002[1]

clip_image004[1]

Загальний вигляд довідника дисків.

Але ми відволіклись давайте створимо документ по якому ми отримаємо диски з фільмами, це звичайно буде «Прихідна накладна».

Відкриваємо відповідну гілку в конфігурації і по аналогії з довідниками створюємо новий документ «Прихідна накладна».

Створимо табличну частину «Товар» в якому вкажемо такі колонки: «Товар» –тип даних довідник дисків, кількість, ціна, сума. Доречі, бажано в всіх документах де фігурує ціна та сума писати однаково кількість – «Кть», ціна – «Ціна», Сума – «Сума». Оскільки це допоможе уніфікувати процес програмування. Для чого це потрібно трохи нижче.

Тепер створимо форму документу. Загальний вигляд не редагуємо.

Якщо ви запустите «1с:Підприємство 8.1» в режимі «Підприємство» то створивши новий документ (Операції_ Документи – Прихідна накладна) ви побачите що колонку «сума» потрібно заповнювати вручну, що не є добре оскільки автоматизація процесів полягає в тому щоб більшість рутинної роботи робив комп’ютер. Зрозуміло що в більшості систем автоматизації буде багато документів з колонками «Кількість», «Ціна», «Сума». Тому кожен раз писати підпрограмку розрахунку суми не є доцільно краще раз написавши таку програмку використовувати її багато раз.

Підпрограмки для спільного використання в «1с:Підприємство 8.1» створюються в конфігуратор в вітці «Загальні», нас в даному випадку цікавить елемент вітки «Спільні модулі» (зауважте спільних модулів може бути кілька).

Створимо новий спільний модуль «ЗФ» (скорочення від «загальні функції)».

clip_image006[1]

Створюємо спільний модуль.

Алгоритм роботи процедури буде такий: процедура отримує посилання на активну стрічку даних табличної частини. І встановлює в колонці «Сума» число рівне добутку кількості на ціну. Для роботи процедури потрібно щоб в табличній частині були колонки з відповідними назвами.

Сама процедура виглядає так:

Процедура ПерерахунокСуми(СтрокаТабличноїЧастини) экспорт

СтрокаТабличноїЧастини.сума=СтрокаТабличноїЧастини.кть*СтрокаТабличноїЧастини.ціна;

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

Слово експорт вказує на те що дана процедура доступна зі всіх частин конфігуратора.

Процедура перерахунку суми має викликатись в двох випадках коли змінилась кількість та коли змінилась ціна. Для прив’язки процедури до події зміни ціни в конфігуратор відкриваємо форму документу і клікаємо по відповідному полю табличної частини, після чого натискуємо на лупу на закладці Події коло назви «ПриИзменении» (див. мал.)

clip_image008[1]

Коли відкриється закладка «Модуль» з вже створеною заготовкою процедури що буде викликатись при зміні кількості ми прописуємо там наступне:

Процедура ТоварКтьПриИзменении(Элемент)

ЗФ.ПерерахунокСуми(Элементыформы.Товар.ТекущиеДанные);

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

Де ЗФ.ПерерахунокСуми() – виклик Спільного модуля ЗФ і процедури цього модуля «ПерерахунокСуми», а Элементыформы.Товар.ТекущиеДанные це передача посилання на дані стрічки табличного елементу форми «Товар».

Аналогічно робимо з колонкою «Сума», оскільки нажаль в «1с:Підприємство 8.1» не реалізовано призначення одного і того самого обробника події для кількох елементів.

Запустіть «1с:Підприємство 8.1» в режимі «Підприємство» та створіть кілька прихідних накладних.

Тепер створимо документ «ПозичивПодивитись» де будуть наступні реквізити:

- Кому (відповідний довідник «Друг»)

- Дата повернення (тип дата)

Та таблична частина Диски з колонками:

- диски

- кількість

- ціна

- сума

(останні три позиції щоб вибити гроші якщо не віддасть :-) )

Для колонок кількість та ціна прописуємо аналогічні процедури як і для прихідної накладної. Тільки не забуваємо що таблична частина називається не «Товар» а «Диски» (де замінити думайте самі :-)   ).

Ми вчимо програмування по принципу: «Ось басейн вчіться плавати а воду ми дамо пізніше».



Оставить комментарий или два