МЕТОД И І приречення Е ПРОЦЕДУР И довідник В

Управління довідником здійснюється через його методи, які можна розділити на 4 групи:

1 Методи Отримати та Встановити періодичних реквізитів довідника

2 Загальні методи довідника вони можуть бути викликані як в модулях його форм, так і в модулях, де створено обєкт типу Довідник, наприкладсСотр_2У першому випадку методи викликаються без префікса, наприклад Записати (), у другому їм предваряются, наприклад сСотр_23апісать () Не всі методи цієї групи будуть, однак, працювати у формі елемента або списку довідника Так, метод ВибратьЕлементи, будучи вставленим в модуль форми елемента довідника і використаним для поточного довідника (записується без префікса), синтаксичний контроль пройде, але при виклику виникне помилка, супроводжувана повідомленням

ВибратьЕлементи ()

Обєкт не може бути перепозиціонувати

Але ми вже знаємо: для того, щоб цю помилку подолати, потрібно створити обєкт типу Довідник, наприкладсСотр_2,відповідного різновиду і вжити з ним цей метод:

сСотр_2ВибратьЕлементи ()

3 Методи, що використовуються тільки у формі елемента, групи або списку довідника, наприклад ПросмотрІсторіі Їх дія поширюється або на поточний елемент, якщо метод викликаний у формі елемента, або на поточний довідник

4 Методи, що використовуються тільки у формі списку довідника, наприклад Сортування Їх дія поширюється на поточний довідник

5121 МЕТОДИ ПЕРІОДИЧНИХ РЕКВІЗИТІВ

Метод Отримати має наступний синтаксис:

значення=  <СпрЕлем> <ПРекв> Отримати ([<датаПРекв>])

Повертає значення періодичного реквізиту пРеквдля елемента довідника спрЕлемна заданий параметром датаПРеквмомент часу Якщо параметрдатаПРеквопущений, то за замовчуванням замість нього використовується або точка актуальності (ТА), якщо використовується компонент Оперативний облік, або робоча дата в іншому випадку

Пояснення  Поняття ТА вводиться в 1С для обєктів типу Регістри Такі обєкти накопичують дані, наприклад залишки або обороти ресурсів Для першої мети застосовуються регістри залишків, для другоїоборотні регістри Так от,ТАце момент часу, на який зафіксовані значення всіх регістрів залишків

Метод Отримати може бути використаний як в модулях форм елемента і списку довідника, так і з обєктами типу Довідник, повертаними, наприклад, функцією СоздатьОбект або визначеними в як реквізити інших обєктів, наприклад документів

ПрикладМетодом Отримати повертаються на робочу дату оклади співробітників з довідника Сотруднікі_2

процедура Виконати () / / Повязана з кнопкою Пуск обробки Проба перем сСотр_2, рабДат, окл

ОчістітьОкноСообщеній ()

/ / Створюємо обєкт сСотр_1

сСотр_2 = СоздатьОбект (СправочнікСотруднікі_2) рабДат = РабочаяДата ()

сСотр_2ВибратьЕлементи ()

поки сСотр_2ПолучітьЕлемент () = 1 цикл якщо сСотр_2ЕтоГруппа () = 1 тоді

продовжити КонецЕсли

окл = сСотр_20кладПолучіть (рабДат)

/ / Або

/ / Окл = сСотр_2ТекущійЕлемент () ОкладПолучіть (рабДат) Повідомити (СокрП (сСотр_2Наіменованіе) + Символ Табуляції + окл)

конецЦікла / / Поки КонецПроцедури / / Виконати

Частковий можливого результату:

Горюнова Уляна Валеріївна

2700

Костіна Ольга Володимирівна

2900

Купрікова Людмила Сергіївна

2100

Зауваження   Метод Отримати (Установити) не можна одночасно вживати з методом ІспользоватьДату для одного і того ж обєкта типу Довідник

Метод Встановити має наступний синтаксис:

<СпрЕлем>. <ПРекв> Встановити (<датаПРекв>, <значПРекв>)

Встановлює значення періодичного реквізиту пРеквелемента довідника спрЕлем,рівне величині, що повертається виразомзначПРекв,на дату, задану параметромдатаПРеквВикористовується тільки з обєктами, створеними функцією СоздатьОбект

ПрикладСпівробітникам з довідника Сотруднікі_2, ставка яких менше 2900 руб, Починаючи з поточної дати підвищується оклад на 500 руб

процедура Виконати () / / Повязана з кнопкою Пуск обробки Проба перем сСотр_2, текДат, окл, новОкл

ОчістітьОкноСообщеній ()

сСотр_2 = СоздатьОбект (СправочнікСотруднікі_2) текДат = ТекущаяДата ()

сСотр_2ВибратьЕлементи ()

поки сСотр_2ПолучітьЕлемент () = 1 цикл

окл = сСотр_20кладПолучіть (текДат)

якщо (сСотр_2ЕтоГруппа () = 1) або (окл> = 2900) тоді

продовжити

//

Пропускаємо групи

КонецЕсли

//

і співробітників з великим окладом

/ / Підвищення окладу сСотр_20кладУстановіть (текДат, окл + 500) новОкл = сСотр_20кладПолучіть (текДат)

Повідомити (СокрП (сСотр_2 Найменування) + СімволТабуляціі + новОкл) конецЦікла / / Поки

КонецПроцедури / / Виконати

Фрагмент результату:

Горюнова Уляна Валеріївна 3200

Купрікова Людмила Сергіївна 2600

Зауваження:

1 Метод Встановити змінює значення періодичного реквізиту довідника без подальшого застосування методу Записати

2 Для методу Встановити неприпустимий виклик типу

сСотр_2ТекущійЕлемент () ОкладУстановіть (текДат, новОкл) / / Це помилка хоча подібний виклик цілком застосовний з методом Отримати: сСотр_2ТекущійЕлемент () ОкладПолучіть (рабДат)

3 Підвищення окладу виконано в обхід документа Наказ про зміну окладу

Це зафіксовано і в історії періодичного реквізиту Оклад, наприклад для Горюнової У В (рис 559)

Рис 559 Історія зміни періодичного реквізиту Оклад

Звернемо увагу, що факт відсутності документа фіксується в першому стовпці таблиці з історією іконкою На практиці, однак, такі неформальні маніпуляції з окладами (і багатьма іншими реквізитами) небажані і їх краще здійснювати на основі відповідних документів При цьому замість методу Встановити в модулі документа слід використовувати метод УстановитьРеквизитСправочника, записуючий значення періодичного реквізиту довідника з привязкою до документа

Джерело: Бартеньев О В 1С: Підприємство: програмування для всіх Базові обєкти та розрахунки на одній дискеті М: Діалог-МІФІ, 2005 464 с

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*