Кому не дано
глубоко заблуждаться, Урок 23. |
||||||||||||
Предстоящие несколько выпусков будут посвящены рассаднику ошибок - работе с периодическими константами и реквизитами справочников. Ошибки допускают все - и программисты и пользователи. Кто из них больше - не известно. Видимо, пользователи, так как пользователей больше. Но если брать процентное отношение ошибок к численности пользователей и программистов, то я думаю, что последние победят (к своему стыду). Сегодня рассмотрим самый простой вариант: работу с периодическими константами. Я надеюсь, Вы знаете, что такое Константа. По этому сразу буду объяснять, что такое периодическая константа. В повседневной жизни вокруг нас существует много параметров, которые регулярно меняются. Примеров можно привести много: температура окружающего воздуха, атмосферное давление, Ваш рост, вес, IQ, сумма денег в кошельке, количество детей и т.д. От чего зависят эти параметры - нам не важно. Важно только одно. Все приведенные примеры имеют период изменения. Температура меняется каждую минуту, рост меняется не так заметно, количество детей изменяется вообще несколько раз в жизни. В бухгалтерском учете (управленческом, оперативном,...) так же присутствуют различные показатели, которые любят меняться. Одни меняются часто, другие не очень. Но на самом деле - очень часто меняться им и не надо. В бухгалтерии минимальная длина отрезка времени на протяжении которого какое-либо значение может измениться, составляет 1 сутки. 1С:Предприятие позволяет хранить каждый новый день - новое значение. Вы можете завести константу "СуммаДенегВКармане" и записывать в нее только одно значение в день. Если в какой-то день Вы записали 2 значения, то система запомнит только то, которое Вы запишете последним. При этом константа устроена так, что Вы можете получить ее значение на любой день. Например, Вы можете создать константу, которая отражает уровень атмосферных остатком и записывать каждый день новое значение. НО! В 1С важно помнить следующее - если Вы не записали сегодня новое значение, то будет действовать значение предыдущее (фактически, последнее записанное до этого). Таким образом, значение в константу заносится только при изменении значения. Если значение не менялось на дату, то действует последнее введенное до этой даты. Этот механизм удобно отобразить с помощью таблицы. Таблица не привязана к какой-то конкретной константе.
Периодическая константа имеет одну особенность: если Вы хотите узнать ее значение, то Вам обязательно надо произнести дату на которую Вы хотите узнать значение. Итак, рассмотрим таблицу. 1 января 1980 года - значение 56. Сразу на следующий день, 2 января 1980 значение изменилось и стало равно 78. Следующее изменение произошло только 1 сентября 1990 года -155. Какое значение было, например, 1 января 1985 года? Ответ: последнее введенное до 1 сентября 1990 года: то есть значение равно 78. 15 сентября 1999 года - значение нашей константы равно 155. Чему оно равно сегодня? Правильно, 23. И далее всегда оно будет равно 23 до тех пор, пока не изменится в какой-либо прекрасный день. Сложный вопрос: чему было равно значение константы 1 января 1950 года? Ответ: значение было не определено. Система вернет значение 0. (Почему-то 1С не считает нулевое значение значением!). Обращаем Ваше внимание на то, что в такой таблице не может быть двух строк с одинаковыми датами! Система не даст сделать так. Примечание: на самом деле тут я не прав: есть в 1С, один баг, когда возникает 2 значения на 1 дату. Этого можно добиться программно, но пользоваться этим лучше не надо, так как 1С это может вылечить. По этому я не буду останавливаться здесь подробнее. Но на сегодня (770018) - это не исправлено. Работа с константами. Создание. Все константы создаются в конфигураторе. Создать их можно очень много. Точно не сказать сколько, но, поверьте, ни разу не сталкивался с ограничениями. На закладке "Дополнительные" галка "Периодический" - отвечает за периодичность константы. Редактирование. Редактировать
значение константы можно двумя способами Программно. Есть еще способ работы программно с периодическими константами, но об этом позже. Задание для самостоятельной
работы:
2. Серьезно. В типовой конфигурации Бухгалтерии ( у меня 4.26) есть обработка, которая называется "Организация". Познакомьтесь с ней. В ней Вы найдете большое количество примеров использования констант (как периодических так и не периодических) |