Афина. Программное сохранение и изменение информации в справочниках | К содержанию | |
В основном все записи справочников создаются и модифицируются пользователями. Но часто требуется и программное создание или изменение значений записей справочника. Здесь речь пойдет о том как это делается. Переменные типа справочник, которые мы объявляем в программах
предназначены для того чтобы "хранить" ссылки на записи справочника. В самом начале работы программы (или функции) справочника (где применяется эта переменная) значение ее не определено, т.е. в ней нет ссылки ни на какую запись. Это обстоятельство можно проверить функцией "ПустоеЗначение", которая вернет "Да", если переменная не содержит указатель на запись: ПустоеЗначение(спрОрг). "Зарядить" переменную нужной записью можно различными
путями (зависит от целей, для которых это делается). если организация с таким именем есть в записях, то после прерывания цикла (оператор "прервать") спрОрг будет указывать на запись с найденной организацией. Если организации с таким именем нет, то проверка через функцию ПустоеЗначение(спрОрг) вернет "Да", означающее что в спрОрг ссылки на организацию нет. Правда, это не самый эффективный путь
для того чтобы
найти запись в справочнике, одно или несколько значений которой известны. Можно получить нужную запись справочника в переменной через глобальные
константы, если есть константа (см. константы), содержащая запись этой организации простым
присвоением: Все справочники состоят из структуры (полей), в которой хранятся данные. Справочник Организации может хранить множество значений в различных полях (Наименование, ИНН, ОКПО, расчетный счет, наименование банка и т.д.) Если в нашем примере переменная спрОрг содержит указатель на организацию, то в программе мы можем получить значения полей именно этой организации. Эти значения могут применяться для чего угодно, но только для чтения
информации из полей. То есть для изменения значений полей переменная не
предназначена. Таким образом, для того чтобы сделать исправления значений полей любого
справочника необходимо: Эта функция может иметь переменное количество именованных параметров.
Первый параметр предопределен (должен присутствовать всегда) и называется
"Документ" и ему присваивается переменная типа справочника, которая уже
должна содержать ссылку на исправляемую запись.
Самый
простой пример. Исправим наименование организации, которая в справочнике
Организации называется "ООО Приемник". функция ХХХХХХ Несколько уточнений:
Для добавления новой записи в справочник: В примере рассмотрим добавление новой записи в справочник "Счета-фактуры" из справочника, который хранит расходные накладные. В справочнике "Счета-фактуры" помимо номера и покупателя есть таблица, в которой колонки содержать: наименование товара, количество, сумма без НДС, ставка НДС, сумма НДС и сумма с НДС (таблицу назовем "ТСФ"). Ниже приведена функция в справочнике Накладные, которая выполняется тогда когда пользователь (после формирования таблицы накладной) нажимает на форме ввода кнопку [Счет-фактура].
функция НажатаКнопкаСФ Примечания. - "Привязка". При создании новой записи, эта запись может быть связана с создающей ее записью другого справочника (как в нашем примере накладная создает счет-фактуру, а накладная находится совсем в другом справочник). Эта привязка позволяет в будущем автоматически удалить счет-фактуру, если будет удалена накладная. Если значение параметра "Привязка" в нашем случае установить в "Нет", то связи с создающей записью не будет и при удалении накладной счет-фактура, созданная программно останется в проекте. - совпадение имен параметров с именами переменных (как здесь: "Номер := Номер). И в справочнике Накладные, и в справочнике Счета-фактуры есть поля, наименования (и типы) которых совпадают, поэтому в такой конструкции нет ничего странного - это допустимо. В синтаксисе параметра первым именем всегда идет имя поля из структуры справочника, который указан в параметре "Документ", а наименование за оператором "присвоения" (:=) - это всегда значение (в данном случае берется значение номера из накладной уже введенном пользователем). - "_СтавкаНДС". Глобальная переменная, объявленная в проекте, которая содержит числовое значение ставки НДС в процентах.
- Рядом с параметром
Привязка может существовать параметр Зависимость (так же как и
Привязка - предопределенный параметр). |
||
К содержанию |