Оглавление
1Компилятор16
1.1Назначение16
1.2Принцип работы16
1.3Начальная настройка компилятора19
2Редакторы программы Инфо-Бухгалтер22
2.1Редактор бланков23
2.1.1Добавление, редактирование и удаление бланков26
2.1.2Добавление нового элемента бланка29
2.1.3Копирование, вставка и удаление элементов бланка30
2.1.4Изменение положения и размеров элементов бланка31
2.1.5Выделение группы элементов бланка32
2.1.6Графы ввода и вывода информации33
2.1.7Редактирование графы34
2.1.8Параметры графы34
2.1.9Рамки38
2.1.10Рисунок41
2.1.11Разрыв страницы42
2.1.12Графики42
2.1.13Формульный раздел47
2.1.14Импортирование бланков47
2.1.15Компиляция бланков48
2.1.16Компиляция текста49
2.2Редактор типовых операций50
2.2.1Структура файла описания типовых операций52
2.2.2Компиляция типовых операций52
2.2.3Примеры типовых операций53
2.2.4Чтение и запись типовых операций55
2.3Редактор графиков57
2.3.1Параметры графика59
2.3.2Список элементов графика60
2.3.3Окно редактирования графиков62
2.4Типы графиков63
2.5Редактор журнально-ордерных форм64
3Файл настройки Ib.ini70
3.1Вставка колонтитулов с логотипом и реквизитами предприятия при печати70
3.2Подключение пользовательских систем правовой поддержки71
3.3Вызов функций при старте и завершении программы72
3.4Вызов функций при редактировании ЖХО73
4Описание встроенного языка75
4.1Типы данных75
4.1.1Числовой тип75
4.1.2Строковый тип76
4.1.3Логический тип76
4.1.4Тип дата77
4.1.5Тип время77
4.1.6Объектные типы78
4.2Переменные78
4.2.1Индексные переменные79
4.2.2Общие переменные80
4.2.3Общие индексные переменные82
4.3Константы83
4.4Выражения83
4.5Логические выражения84
4.5.1Условие84
4.5.2Логические константы84
4.5.3Логические действия85
4.6Операторы увеличения и уменьшения значения85
4.7Формулы86
4.8Форматы ввода/вывода86
4.8.1Признаки поля88
4.8.2Примеры использования полей ввода/вывода88
4.8.3Графа с использованием вызова функции90
4.8.4Графа с выбором из базы данных91
4.9Шаблоны92
4.10Ключевые слова93
4.10.1Ключевое слово БЫСТР95
4.10.2Ключевое слово ВВЕСТИ95
4.10.3Ключевое слово ВЫХОД97
4.10.4Ключевое слово ВЫЧИСЛИТЬ97
4.10.5Ключевое слово ДА98
4.10.6Ключевое слово ДЛЯ98
4.10.7Ключевое слово ЕСЛИ98
4.10.8Ключевое слово И99
4.10.9Ключевое слово ИЛИ99
4.10.10Ключевое слово ИНАЧЕ99
4.10.11Ключевое слово ИСПОЛЬЗОВАТЬ99
4.10.12Ключевое слово КОНЕЦ100
4.10.13Ключевое слово КОНЕЦ_ЕСЛИ100
4.10.14Ключевое слово КОНЕЦ_ФУНКЦИИ100
4.10.15Ключевое слово КОНЕЦ_ЦИКЛА101
4.10.16Ключевое слово НЕ101
4.10.17Ключевое слово НЕТ101
4.10.18Ключевое слово ОПЕРАЦИЯ101
4.10.19Ключевое слово ПЕРЕМ102
4.10.20Ключевое слово ПОКА102
4.10.21Ключевое слово СТОП102
4.10.22Ключевое слово СТОП_ВСЕ103
4.10.23Ключевое слово СЧЕТА103
4.10.24Ключевое слово ТИП_SQL103
4.10.25Ключевое слово ТИП_БД103
4.10.26Ключевое слово ТИП_ВРЕМЯ104
4.10.27Ключевое слово ТИП_ДАТА104
4.10.28Ключевое слово ТИП_ЛОГИКА104
4.10.29Ключевое слово ТИП_ОПЕРАЦИЯ104
4.10.30Ключевое слово ТИП_ПРОВОДКА104
4.10.31Ключевое слово ТИП_СПИСОК104
4.10.32Ключевое слово ТИП_СТРОКА104
4.10.33Ключевое слово ТИП_СЧЕТ105
4.10.34Ключевое слово ТИП_ФАЙЛ105
4.10.35Ключевое слово ТИП_ФИЛЬТР105
4.10.36Ключевое слово ТИП_ЧИСЛО105
4.10.37Ключевое слово ТИП_ШРИФТ105
4.10.38Ключевое слово ТО105
4.10.39Ключевое слово ФУНКЦИЯ105
4.10.40Ключевое слово ЦИКЛ106
ЦИКЛ ДЛЯ107
ЦИКЛ ПОКА108
ЦИКЛ СЧЕТА108
4.11Обзор встроенных функций109
4.11.1Функции для работы с базами данных109
4.11.2Функции ввода/вывода информации и работы с файлами110
4.11.3Математические функции112
4.11.4Функции доступа к журналу хозяйственных операций и работа с фильтром112
4.11.5Функции доступа к оборотам и остаткам113
4.11.6Функции доступа к плану счетов114
4.11.7Функции преобразования данных115
4.11.8Функции доступа к календарю и часам116
4.11.9Прочие функции116
4.12Подробное описание встроенных функций117
4.12.1Функция ? (вопросительный знак)118
4.12.2Функция АБС118
4.12.3Функция БД_ВСЕГО119
4.12.4Функция БД_ВЫБОР119
4.12.5Функция БД_ЗАКРЫТЬ122
4.12.6Функция БД_ЗАМЕНИТЬ123
4.12.7Функция БД_ЗАПИСАТЬ124
4.12.8Функция БД_ОТКРЫТЬ125
4.12.9Функция БД_ПЕРЕЙТИ126
4.12.10Функция БД_ПОЛЕ127
4.12.11Функция БД_РЕДАКТОР128
4.12.12Функция БД_СОЗДАТЬ137
4.12.13Функция БД_СОРТ138
4.12.14Функция БД_СЧИТАТЬ138
4.12.15Функция БД_ТЕКУЩАЯ139
4.12.16Функция БЛАНК140
4.12.17Функция ВВЕСТИ_ЗНАЧЕНИЕ140
4.12.18Функция ВВОД_ЗНАЧЕНИЯ143
4.12.19Функция ВЕРСИЯ145
4.12.20Функция ВКЛ_ФИЛЬТР145
4.12.21Функция ВОПРОС146
4.12.22Функция ВРЕМЯ147
4.12.23Функция ВРЕМЯ_ТЕК147
4.12.24Функция ВСТАВИТЬ_РАМКУ148
4.12.25Функция ВСТАВИТЬ_СТРОКУ149
4.12.26Функция ВЫБОР_ДИР149
4.12.27Функция ВЫБОР_СЧЕТА150
4.12.28Функция ВЫБОР_ФАЙЛА151
4.12.29Функция ВЫВЕСТИ151
4.12.30Функция ВЫЗОВ153
4.12.31Функция ВЫКЛ_ФИЛЬТР154
4.12.32Функция ВЫПОЛНИТЬ155
4.12.33Функция ВЫРАЖЕНИЕ156
4.12.34Функция ГОД156
4.12.35Функция ДАТА157
4.12.36Функция ДАТА_КОН157
4.12.37Функция ДАТА_НАЧ158
4.12.38Функция ДАТА_ТЕК158
4.12.39Функция ДАТАП159
4.12.40Функция ДАТАП0159
4.12.41Функция ДЕНЬ160
4.12.42Функция ДЕНЬП160
4.12.43Функция ДИР_DBF161
4.12.44Функция ДИР_WIN161
4.12.45Функция ДИР_АРХИВОВ161
4.12.46Функция ДИР_БАЗЫ162
4.12.47Функция ДИР_БИБЛ162
4.12.48Функция ДИР_БЛАНКОВ163
4.12.49Функция ДИР_ВЫВОДА163
4.12.50Функция ДИР_ИСХТЕКСТОВ164
4.12.51Функция ДИР_ФИЛЬТРОВ164
4.12.52Функция ДЛИНА165
4.12.53Функция ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ165
4.12.54Функция ДОБАВИТЬ_РЕКВИЗИТ166
4.12.55Функция ДОБАВИТЬ_СЧЕТ166
4.12.56Функция ДОБАВИТЬ_СЧЕТ!168
4.12.57Функция ДРОБ169
4.12.58Функция ЕДИН169
4.12.59Функция ЕСТЬ_BDE170
4.12.60Функция ЕСТЬ_СУБСЧ170
4.12.61Функция ЗАГЛ171
4.12.62Функция ЗАП_ОПЕР171
4.12.63Функция ЗАП_ОПЕР!172
4.12.64Функция ЗАМ172
4.12.65Функция ЗВУК172
4.12.66Функция ЗНАЧ173
4.12.67Функция ЗНАЧ_ТЕСТ173
4.12.68Функция ИСХ_ОСТ174
4.12.69Функция ИСХ_ОСТ_K174
4.12.70Функция ИСХ_ОСТ_ЦЕНА175
4.12.71Функция КОД_СИМВ175
4.12.72Функция КОНЕЦ_СТРАНИЦЫ176
4.12.73Функция КОП176
4.12.74Функция КОПП177
4.12.75Функция ЛОГ177
4.12.76Функция МАКС178
4.12.77Функция МЕС178
4.12.78Функция МЕСП179
4.12.79Функция МИН179
4.12.80Функция МИНУТЫ180
4.12.81Функция НАЗВ180
4.12.82Функция ОБД180
4.12.83Функция ОБД_К182
4.12.84Функция ОБК182
4.12.85Функция ОБК_К183
4.12.86Функция ОКРУГЛЕНИЕ184
4.12.87Функция ОПЕР_ВСЕГО186
4.12.88Функция ОПЕР_ДАТА187
4.12.89Функция ОПЕР_ДОК187
4.12.90Функция ОПЕР_ОТ188
4.12.91Функция ОПЕР_ПРОВ189
4.12.92Функция ОПЕР_РМ189
4.12.93Функция ОПЕР_СОД190
4.12.94Функция ОПРЕДЕЛИТЬ190
4.12.95Функция ОСД191
4.12.96Функция ОСД_К191
4.12.97Функция ОСДН192
4.12.98Функция ОСДН_К193
4.12.99Функция ОСК193
4.12.100Функция ОСК_К194
4.12.101Функция ОСКН195
4.12.102Функция ОСКН_К195
4.12.103Функция ПОДСТР196
4.12.104Функция ПОДСЧ196
4.12.105Функция ПОЗ197
4.12.106Функция ПОЛЬЗОВАТЕЛЬ198
4.12.107Функция ПРАЗДНИК198
4.12.108Функция ПРОВ_ДЕБ198
4.12.109Функция ПРОВ_КОЛ199
4.12.110Функция ПРОВ_КРЕД200
4.12.111Функция ПРОВ_СУМ200
4.12.112Функция ПРОВОДКА201
4.12.113Функция ПРОВОДКАГР203
4.12.114Функция ПРОП204
4.12.115Функция РЕД_ПОЛЕ204
4.12.116Функция РУБ205
4.12.117Функция РУБП205
4.12.118Функция SQL_ДАТА205
4.12.119Функция СБРОС206
4.12.120Функция СЕКУНДЫ207
4.12.121Функция СИМВ207
4.12.122Функция СЛУЧ_ЧИСЛО208
4.12.123Функция СОЗДАТЬ_ДИР208
4.12.124Функция СООБЩЕНИЕ209
4.12.125Функция СТАРТ_ПРОГ209
4.12.126Функция СТР210
4.12.127Функция СТР0211
4.12.128Функция СТР_ЗНАЧ212
4.12.129Функция СТРОКА_СТАТУСА212
4.12.130Функция СУММАП213
4.12.131Функция СУММАП_АНГЛ214
4.12.132Функция СУЩ_ОПРЕДЕЛЕНИЕ214
4.12.133Функция СУЩ_ПЕРЕМ215
4.12.134Функция СУЩ_РЕКВИЗИТ216
4.12.135Функция СУЩ_ФАЙЛ216
4.12.136Функция СУЩ_ФУНК217
4.12.137Функция СЧЕТ_АКТ217
4.12.138Функция СЧЕТ_АНАЛИТ218
4.12.139Функция СЧЕТ_КОЛ218
4.12.140Функция СЧЕТ_ПАС219
4.12.141Функция СЧЕТ_СУЩ219
4.12.142Функция СЧЕТ_ФИКСЦ220
4.12.143Функция ТЕК_ДИР220
4.12.144Функция ТИП_ОПЕР221
4.12.145Функция ТИП_ПЕРЕМ221
4.12.146Функция УДАЛ_ОПЕР222
4.12.147Функция УДАЛ_СЧЕТ223
4.12.148Функция УДАЛИТЬ_СТРОКУ223
4.12.149Функция УРОВЕНЬ224
4.12.150Функция УСТ_РЕД_ПОЛЕ224
4.12.151Функция ФАЙЛ_КОПИРОВАТЬ225
4.12.152Функция ФАЙЛ_ПЕРЕИМЕНОВАТЬ225
4.12.153Функция ФАЙЛ_ТИПОП226
4.12.154Функция ФАЙЛ_УДАЛИТЬ226
4.12.155Функция ФИЛЬТР_ВКЛ227
4.12.156Функция ФОКУС228
4.12.157Функция ЦЕНА228
4.12.158Функция ЧАС229
4.12.159Функция ЧИСЛО229
4.12.160Функция ШАБЛОН230
4.12.161Функция ЭКСП231
4.13Библиотечные функции231
4.13.1Параметры функций234
4.13.2Примеры описаний параметров236
4.13.3Замечания по использованию функций237
5Элементы объектно-ориентированного программирования239
5.1Общие сведения239
5.2Написание собственных методов объектов242
5.3Объект «База данных»244
5.3.1Описание244
5.3.2Поля244
5.3.3Конструкторы244
5.3.4Встроенные методы245
Метод ВСЕГО245
Метод ЗАКРЫТЬ245
Метод ЗАМЕНИТЬ246
Метод ЗАП_ПОЛЕ246
Метод ЗАПИСАТЬ247
Метод ИЗМЕНЕНА248
Метод НОВАЯ248
Метод ОТКРЫТЬ249
Метод ПЕРЕЙТИ249
Метод ПОЛЕ250
Метод СОРТИРОВКА251
Метод СЧИТАТЬ252
Метод ТЕКУЩАЯ252
Метод УДАЛИТЬ252
Метод ФАЙЛ253
5.4Объект «База данных с поддержкой SQL»254
5.4.1Описание254
5.4.2Поля254
5.4.3Конструкторы254
5.4.4Встроенные методы256
Метод В_НАЧАЛО256
Метод В_КОНЕЦ256
Метод ВРЕМЕННАЯ257
Метод ВСЕГО258
Метод ДОБ_ПОЛЕ258
Метод ДОБАВИТЬ259
Метод ДЛИНА_ПОЛЯ259
Метод ЗАКРЫТЬ260
Метод ЗАМЕНИТЬ260
Метод ЗАП_ПОЛЕ261
Метод ЗАПИСАТЬ262
Метод ЗАПРОС262
Метод ИЗМЕНЕНА263
Метод КОЛ_ПОЛЕЙ264
Метод НАЗВ_ПОЛЯ264
Метод НАЙТИ264
Метод НОВАЯ265
Метод ОТКРЫТЬ266
Метод ПЕРЕЙТИ266
Метод ПЕРЕКЛЮЧИТЬ_ИНДЕКС267
Метод ПОЛЕ268
Метод ПРЕДЫДУЩАЯ269
Метод СЛЕДУЮЩАЯ269
Метод СОРТИРОВКА270
Метод СЧИТАТЬ270
Метод ТИП_ПОЛЯ271
Метод УДАЛ_ПОЛЕ272
Метод УДАЛИТЬ272
Метод УПАКОВАТЬ273
Метод ФАЙЛ273
5.4.5Замечания274
5.4.6Примеры275
5.5Объект «Операция»276
5.5.1Описание276
5.5.2Поля276
5.5.3Конструкторы276
5.5.4Встроенные методы277
Метод ДОБАВИТЬ277
Метод ЗАП_ПРОВ277
Метод ЗАПИСАТЬ278
Метод КОЛ_ПРОВ279
Методы НАЗВ1, НАЗВ2 и НАЗВ3279
Метод ОПЕР_ВЫКЛ280
Метод ПРОВ280
Метод РЕДАКТИРОВАТЬ281
Метод СЧИТАТЬ282
Метод УДАЛИТЬ282
5.6Объект «Проводка»283
5.6.1Описание283
5.6.2Поля283
5.6.3Конструкторы283
5.6.4Встроенные методы284
Метод СЧИТАТЬ284
Метод РЕДАКТИРОВАТЬ284
5.7Объект «Список»285
5.7.1Описание285
5.7.2Поля285
5.7.3Конструктор285
5.7.4Встроенные методы286
Метод ВСЕГО286
Метод ВЫБОР286
Метод ДОБАВИТЬ287
Метод ЗАМЕНИТЬ288
Метод ЗАПИСАТЬ289
Метод ОЧИСТИТЬ289
Метод СТРОКА290
Метод СЧИТАТЬ290
Метод УДАЛИТЬ291
5.8Объект «Счет»291
5.8.1Общие сведения291
5.8.2Конструкторы292
5.8.3Поля292
5.8.4Встроенные методы292
Метод ЗАПИСАТЬ292
Метод РЕДАКТИРОВАТЬ293
Метод СУБСЧ294
Метод СУЩ295
Метод СЧИТАТЬ295
Метод УРОВ296
5.9Объект «Файл»296
5.9.1Описание296
5.9.2Поля296
5.9.3Конструкторы296
5.9.4Встроенные методы297
Метод ЗАКРЫТЬ297
Метод ЗАПИСАТЬ297
Метод КОНЕЦ_ФАЙЛА298
Метод НОВАЯ298
Метод ОТКРЫТЬ299
Метод СЧИТАТЬ300
Метод ФАЙЛ300
5.10Объект «Фильтр»301
5.10.1Общие сведения301
5.10.2Конструкторы301
5.10.3Поля301
5.10.4Встроенные методы302
Метод ЗАПИСАТЬ302
Метод ПРИМЕНИТЬ303
Метод РЕДАКТИРОВАТЬ303
Метод СЧИТАТЬ304
5.11Объект «Шрифт»304
5.11.1Общие сведения304
5.11.2Конструкторы304
5.11.3Поля305
5.11.4Встроенные методы305
Приложение А. Описание формата SHP306
Приложение Б. Описание формата DBF310
План счетов и исходные остатки в формате DBF310
Журнал хозяйственных операций в формате DBF311
Приложение В. Сообщения компилятора об ошибках312
Сообщения о первичных ошибках312
Локализующие сообщения об ошибках315
Сообщения о фатальных ошибках316
Предупреждающие сообщения317
Предисловие
Данное руководство программиста описывает возможности внутреннего языка программы Инфо-Бухгалтер для Windows-версий программы.
Компилятор
Назначение
Компилятор внутреннего языка программы Инфо-Бухгалтер вносит много новых возможностей в программу.
В первую очередь, он призван значительно ускорить работу настраиваемых документов. Это позволяет реализовывать на внутреннем языке довольно сложные алгоритмы, необходимые для автоматизации бухгалтерии, складского учета, расчета зарплаты и тому подобное без существенного замедления работы программы. По испытаниям на различных документах скорость расчета при использовании компилятора возрастает от 4 до 30 раз.
Во вторых, компилятор производит формальную проверку всего написанного текста программы, что исключает досадные опечатки и ошибки, которые могли встречаться в программах для интерпретатора. Поэтому, большинство ошибок удается устранить на этапе разработки документа и конечному пользователю не приходится с ними сталкиваться.
В текущей реализации компилятора можно компилировать бланки, типовые операции и просто фрагменты текста. В последнем случае создаются программы, которые можно вызвать из меню или внутреннего языка. Такие программы могут поставляться без исходного текста, т.е. разработчик с их помощью может защитить свои авторские права. В дальнейшем планируется сделать возможность поставки бланков и типовых операций без исходных текстов.
Принцип работы
Компилятор преобразует текст внутреннего языка в бинарный код, который может исполняться Инфо-Бухгалтером. В отличие от компиляторов в машинный код, компилятор Инфо-Бухгалтера создает специальный набор инструкций, которые понимает исполняющий модуль. Иными словами, интерпретация текста программы заменяется на интерпретацию бинарного кода, которая выполняется в десятки раз быстрее.
Компилятор производит разыменование данных – переменных и функций. Для отладки программы предусмотрена возможность хранить в коде имена переменных и функций, а также ссылки на исходный текст. Разыменование данных существенно ускоряет доступ к переменным и функциям. Доступ осуществляется по внутреннему номеру (адресу) переменной или функции, который назначает компилятор. Упаковка данных в линейную структуру позволяет избежать перебора при поиске по номеру. Интерпретатор же производил поиск переменных и функций по имени методом деления пополам.
Разыменование данных не могло не сказаться на индексных переменных, т.к. сама идея их действия была основана на именах. Отныне под именем индексной переменной будем понимать ее префикс. В связи с этим а!001 и а0!01 не одно и то же, как это было раньше, а две разные индексные переменные а и а0. В рамках одной индексной переменной поиск осуществляется по строке индекса методом деления пополам. Поэтому с увеличением количества элементов индексной переменной возрастает время доступа к элементу.
Каждая используемая функция компилируется и хранится отдельным фрагментом в коде. При загрузке кода в память создается шаблон функции, который представляет собой непосредственно откомпилированный код, информацию о локальных переменных функции и ее результате. При исполнении функции структура локальных переменных строится на основании информации из шаблона. Аналогично создается переменная результата функции. Код функции не копируется из шаблона, – исполняемый экземпляр функции имеет ссылку на этот код и свою текущую позицию в коде. Механизм шаблонов функций был создан для того, чтобы была возможность иметь одновременно в памяти несколько экземпляров одной функции. Такая ситуация возникает при вложенных вызовах и рекурсии. Созданные по шаблону экземпляры функций имеют разные локальные данные и текущую позицию в коде, но один код.
Теперь нарисуем примерную схему откомпилированной программы на языке Инфо-Бухгалтера.
Во-первых, имеется основной код программы. С первой команды этого кода начинается выполнение. Компилятор записывает самыми первыми в основной код команды инициализации общих переменных с заданием начального значения (если таковые имеются в подключенных библиотеках). Далее следует код формульной части.
Во-вторых, имеются структуры общих переменных и общих индексных переменных и шаблонов функций. Доступ к этим структурам имеется в любой точке программы.
В третьих, структуры локальных и локальных индексных переменных, доступные только из основного кода и существующие на протяжении всего времени расчета.
И, наконец, структуры обычных локальных и локальных индексных переменных функций, которые динамически создаются при входе в функцию (по шаблону) и уничтожаются при выходе из функции.
Определения и реквизиты рассматриваются компилятором как внешние данные. В код записывается название определения или реквизита. Если на момент исполнения программы в Инфо-Бухгалтере не задано определения или реквизита с таким названием, то вызывается ошибка времени выполнения.
Определения и реквизиты не являются взаимозаменяемыми, т.е. если на момент компиляции Адрес был реквизитом, а при выполнении Адрес является определением, то так же вызывается ошибка.
В сетевой версии на время расчета все изменения определений и реквизитов производятся в буфере на рабочем месте и лишь после окончания расчета заносятся в базу данных. Таким образом, если с двух рабочих мест запущены программы изменяющие определения и реквизиты, то в результате в базе останутся данные, измененные программой, которая закончила работу последней. Вообще говоря, не рекомендуется изменять значения определений и реквизитов средствами внутреннего языка.
Начальная настройка компилятора
Начальная настройка компилятора осуществляется в закладке Каталоги и в закладке Документы пункта меню Установка/ Настройка:
Рис. 1. Настройка каталогов компилятора.
Здесь Вы можете указать директории для исходных текстов (*.src) и продуктов компиляции – программ .ibx и .vfx.
Рис. 2. Настройка опций компилятора.
Три флажка в группе «Опции компилятора» задают значения по умолчанию. Они могут быть заданы индивидуально для каждого бланка. При компиляции типовых операций и текста эти установки используются глобально.
Признак «Записывать в код отладочную информацию» позволяет сохранить в коде названия переменных и функций, а также ссылки на исходный текст для каждого оператора. Программа с отладочной информацией работает на несколько процентов медленнее, но позволяет при возникновении ошибки времени выполнения узнать ее позицию и перейти в исходный текст на эту позицию.
Признак «Выводить предупреждения компилятора» служит для того, чтобы обратить внимание разработчика бланков на ситуации формально не являющиеся ошибками, но допустимыми только в том случае, если разработчик создает их умышленно. То есть – это дополнительная степень защиты от случайных недоразумений при разработке бланков. Предупреждения выдаются в окно ошибок, но не останавливают процесса компиляции. Иными словами они являются лишь информацией к размышлению.
Признак «Автоматическое распознание индексных переменных» позволяет автоматически распознать индексные переменные. Однако компилятор не всегда может правильно распознать индексные переменные. Например, если в формульном разделе бланка встречается переменная сумма1, то компилятор определит ее как сумма!1. Но если далее в тексте встретится обычная переменная сумма, то компилятор выдаст сообщение об ошибке. Поэтому желательно явно указывать индексные переменные с помощью ! или [ ].
Редакторы программы Инфо-Бухгалтер
В пункте Установка главного меню выполняется настройка программы Инфо-Бухгалтер на особенности Вашей бухгалтерии.
Этот меню содержит следующие подпункты:
Установка | |
План счетов |
редактирование плана счетов |
Исходные остатки |
редактирование исходных остатков |
Типовые операции |
редактирование типовых операций |
Бланки |
редактирование бланков документов |
Библиотеки функций |
редактирование библиотек функций пользователя, используемых при заполнении бланков (существует только в 32-разрядных версиях ИБ) |
Определения |
редактирование переменных величин – ставок налогов, размера минимальной зарплаты и т.п. |
Реквизиты |
редактирование реквизитов предприятия |
Журнально-ордерные формы |
редактирование списка журнально-ордерных форм |
Графики |
редактирование параметров графиков и диаграмм |
Компилятор (существует с версии Инфо-Бухгалтера 8.0) | |
Компиляция текста |
компиляция исходного текста (*.src) |
Компиляция всех бланков |
компиляция всех бланков в подкаталоге BLANKS |
Компиляция всех типовых операций |
компиляция всех типовых операций из текущего файла .top |
Компиляция всех исходных текстов |
компиляция всех исходных текстов в подкаталоге IBX\SOURCE |
Установка/Настройки | |
Подсветка |
настройка цветового выделения встроенных функций и ключевых слов в формульном разделе бланков документов и типовых операций |
Хозяйственные операции |
настройка вида журнала хозяйственных операций |
Вид |
настройка параметров редактирования данных в таблицах, работы с диалоговыми окнами и внешнего вида панели инструментов |
Шрифты |
настройка шрифтов для отображения бланков, диалогов и т.д. |
Меню |
настройка дополнительных пунктов в разделах Операции и Документы главного меню (существует только в 32-х разрядных версиях) |
События |
настройка функций-обработчиков для определенных в программе событий |
Разное |
настройка дополнительных параметров функционирования системы |
Форматы |
настройка форматов вывода данных в документах и отчетах |
Документы |
настройка параметров первичных и отчетных документов |
Отчеты |
настройка форм получаемых отчетных документов, а также режимов их создания |
Каталоги |
настройка расположения файлов данных (бланков, архивов, библиотек и т.д.) |
Сеть |
настройка параметров сети (только в сетевой версии ИБ) |
Пользователи |
настройка параметров разграничения доступа пользователей (только в сетевой версии ИБ 8.х) |
Таблица 1. Подпункты пункта Установка главного меню.
Редактор бланков
Редактор бланков представляет собой инструмент, позволяющий редактировать существующие бланки, создавать новые, а также импортировать бланки, подготовленные в DOS-версиях программы Инфо-Бухгалтер.
Для вызова редактора бланков необходимо выбрать пункт Установка/Бланки главного меню. После этого появится список, из которого требуется выбрать нужный Вам раздел. Затем, из списка бланков данного раздела, выберите конкретный бланк. Для этого установите курсор на строку с требуемым бланком и нажмите клавишу или дважды щелкните клавишей мыши по этой строке.
Если Вам требуется создать новый бланк, то необходимо добавить его описание к списку бланков, а затем выбрать и отредактировать вновь созданный бланк.
Любой бланк первичного или отчетного документа состоит из двух частей: формы бланка и формульного раздела. При переходе к редактированию Вы увидите форму бланка. Она представляет собой шаблон, на основе которого будут формироваться документы.
При входе в редактор бланков к пункту меню Правка добавляются новые подпункты:
Параметры бланка |
Редактирование названия бланка и раздела, к которому он относится |
Формульный раздел |
Редактирование формульного раздела бланка |
Разметка страницы |
Установка параметров страницы бланка – отступов и масштаба |
Шрифт бланка |
Установка шрифта бланка (обычно используются моноширийные шрифты типа Courier, Courier New и подобные им) |
Параметры компилятора |
Установка параметров компиляции для конкретного бланка |
Компилировать |
Компиляция формульного раздела бланка |
Работая с формой бланка, Вы можете вводить и редактировать любую текстовую информацию, при этом работа с текстом в редакторе бланков осуществляется аналогично работе с текстом, во встроенном редакторе текстов. Кроме текстовой информации, форма бланка может содержать следующие элементы:
-
рамка;
-
графа;
-
разрыв страницы;
-
рисунок;
-
график.
Вы можете добавлять, копировать, перемещать и удалять, перечисленные выше элементы, а также изменять их размеры и параметры.
В нижней строке (строке состояния) окна редактора бланков находится информация о режимах работы редактора.
Если Вы внесли в бланк какие-нибудь изменения, то в строке состояния появляется надпись «Изменен».
При выборе любого элемента бланка в строке состояния появляется информация об этом элементе: тип элемента и его координаты. В этой же строке содержится информация о текущем режиме выделения, установленного в редакторе:
-
СТР – строчное выделение;
-
БЛК – блочное выделение.
Переключиться между строчным и блочным выделением можно с помощью комбинации клавиш +[Б].
-
ПЛН – выбирать только полностью выделенный элемент;
-
ЧСТ – выбирать частично выделенный элемент.
Переключаться между режимом полного или частичного выбора можно с помощью комбинации клавиш++[Б].
Кроме того, в строке состояния отображается состояние клавиатуры:
-
NUM – включен режим Num Lock (дополнительные клавиши клавиатуры работают как цифровые);
-
ЗАБ – включен режим замещения, иначе – включен режим вставки;
-
CAP – включен режим Caps Lock
(клавиатура переведена в верхний регистр).
Добавление, редактирование и удаление бланков
Выбрав пункт меню Установка/Бланки, Вы перейдете к списку разделов бланков. Находясь в этом списке, Вы можете:
-
Добавить новый бланк к списку бланков.
При добавлении нового бланка, появится окно редактирования параметров бланка. В графе «Название раздела» этого окна будет стоять строка «Временный раздел». Вы можете изменить название раздела.
Если имя раздела совпадает с именем существующего в списке раздела, то бланк будет добавлен к этому разделу.
Если раздел с таким именем не существует, то к списку разделов будет добавлен новый раздел.
-
Изменить название любого раздела с помощью пункта Правка/Изменить главного меню или кнопки
на панели инструментов.
-
Удалить раздел вместе со списком, принадлежащих ему бланков. Перед удалением раздела программа попросит Вас подтвердить операцию удаления.
Перед каждой строкой списка, содержащей название раздела, расположена кнопка со значком
. Щелкнув клавишей мыши по этой кнопке или дважды щелкнув клавишей мыши по строке названия раздела, Вы можете перейти к списку бланков соответствующего раздела. То же самое можно сделать с помощью клавиатуры. Для этого необходимо клавишами управления курсором (клавишами со стрелками), установить курсор на строку нужного раздела и нажать клавишу .
Чтобы вернуться к списку разделов, нажмите клавишу или кнопку
, расположенную в левом верхнем углу списка.
Список бланков содержит название формы документа, имя файла, содержащего бланк (точнее, прототип бланка), имя файла, содержащего архив бланков данного типа, а также имя поля ввода бланка, по которому будут идентифицироваться записи в архиве:
Рис. 3. Список бланков для установки.
Как и при работе с другими списками программы, Вы можете добавлять новые элементы списка, редактировать существующие и удалять ненужные. Однако в процессе работы со списком бланков Вы можете редактировать как параметры бланка, так и его форму.
Для редактирования параметров бланка установите курсор на строку, содержащую название необходимого бланка и выберите пункт Правка/Изменить главного меню или с помощью мыши нажмите кнопку
на панели инструментов.
Редактирование параметров бланка осуществляется в диалоговом окне «Параметры бланка». В этом окне можно задавать или изменять следующие параметры:
-
название бланка;
-
название раздела, к которому относится бланк;
-
имя файла с описанием бланка;
-
имя файла, содержащего архив бланка;
-
имя ibx-программы настройки бланка;
-
способ выполнения бланка (интерпретация или компиляция);
-
перечень полей, по которым производится идентификация заполненных бланков в архиве документов.
Рис. 4. Параметры бланка.
Рис. 5. Идентификаторы архива.
Все перечисленные поля, кроме поля-идентификатора, доступны для редактирования. Чтобы изменить значение поля-идентификатора, необходимо с помощью мыши нажать кнопку «Идент», расположенную на диалоговой панели.
Название полей-идентификаторов вводятся в отдельные графы диалогового окна «Идентификаторы архива» (см. Рис. 5). Для идентификации документа можно задать пять различных полей. Кроме того, для идентификации документов можно использовать время и дату записи документа, которые автоматически фиксируются программой. Для использования в качестве идентификаторов системного времени и даты следует с помощью мыши установить флажки признаков «Системное время» и «Системная дата» соответственно. Установленным признакам соответствуют значки .
Закончив редактирование необходимых параметров, нажмите кнопку «OK». С помощью клавиши или кнопки «Отмена» можно отказаться от введенных изменений.
Для редактирования формы бланка необходимо установить курсор на строку, содержащую название необходимого бланка и нажать клавишу . С помощью мыши перейти к редактированию формы бланка можно, дважды щелкнув клавишей мыши по строке соответствующей требуемому бланку. На экране появится форма бланка, которую можно редактировать.
Добавление нового элемента бланка
Элементы бланка (графы, рамки, разрывы страниц и графики) помещаются в текст бланка в том месте, где расположен текстовый курсор редактора.
Чтобы добавить новый элемент бланка, выполните следующие действия:
-
Установите текстовый курсор в то место бланка, где предполагаете добавить новый элемент.
Текстовый курсор можно перемещать с помощью клавиш управления курсором или при помощи мыши. Для перемещения текстового курсора с помощью мыши установите указатель в требуемое место бланка и щелкните левой клавишей мыши.
-
Далее выполните одно из следующих действий:
-
нажмите кнопку
на панели инструментов или дважды щелкните левой клавишей мыши по тому месту, где Вы хотите поместить новый элемент;
-
нажмите клавишу ;
-
выберите пункт Правка/Добавить главного меню
-
В появившемся диалоговом окне выберите тип элемента и нажмите кнопку «OK».
Копирование, вставка и удаление элементов бланка
Для копирования элементов бланка выполните следующие действия:
-
С помощью клавиатуры или мыши выберите копируемый элемент бланка.
Для выбора элемента с помощью клавиш управления курсором подведите к нему курсор, либо щелкните клавишей мыши по этому элементу. Выбранный элемент выделяется рамкой красного цвета. Для копирования можно выбрать сразу несколько элементов бланка.
-
Далее выполните одно из следующих действий:
-
нажмите кнопку
на панели инструментов;
-
нажмите комбинацию клавиш + ;
-
выберите пункт Правка/Копировать меню.
После чего выбранные элементы бланка будут помещены в буфер обмена.
Для вставки элементов бланка установите с помощью клавиш управления курсором и/или мыши текстовый курсор в требуемое место бланка, а затем выполните одно из следующих действий:
-
нажмите кнопку
на панели инструментов;
-
нажмите комбинацию клавиш + .
-
выберите пункт Правка/Вставить главного меню.
В результате этого действия, элементы из буфера обмена будут помещены в бланк.
Для удаления элементов бланка выполните следующие действия:
-
С помощью клавиатуры или мыши выберите удаляемый элемент бланка.
Для выбора элемента подведите к нему курсор с помощью клавиш , либо щелкните левой клавишей мыши по этому элементу. Выбранный элемент бланка будет выделен рамкой красного цвета. Имеется возможность выбрать для удаления группу элементов бланка.
-
Затем выполните одно из следующих действий:
-
нажмите кнопку
на панели инструментов;
-
нажмите клавишу или ;
-
выберите пункт Правка/Удалить главного меню.
Изменение положения и размеров элементов бланка
Для изменения положения элементов бланка выполните следующие действия:
-
Выберите требуемый элемент бланка.
Для этого подведите к нему курсор с помощью клавиш управления курсором, либо щелкните клавишей мыши по этому полю. Выбранный элемент бланка выделяется рамкой красного цвета с квадратиками по углам и сторонам рамки.
-
Установите указатель мыши примерно на середину выбранного Вами элемента. При этом указатель мыши будет отображаться значком жирного крестика.
-
Нажмите левую клавишу мыши. При этом указатель мыши превратится в значок руки. Удерживая клавишу мыши, переместите поле ввода/вывода в требуемое место бланка.
Для изменения размеров графы или рамки в бланке с помощью мыши выполните следующие действия:
-
Установите указатель мыши на один из квадратиков рамки поля, находящегося в режиме редактирования. При этом указатель мыши превратится в двунаправленную стрелку.
-
Нажмите левую кнопку мыши и, удерживая кнопку, раздвиньте границу поля до требуемых размеров.
Для изменения положения и размеров поля, с помощью клавиатуры, переведите поле в режим редактирования и нажмите +. Рамка поля станет пунктирной. Теперь Вы можете перемещать поле с помощью клавиш управления курсором и изменять размеры поля, используя комбинацию клавиш +, +, +, +.
Закончив перемещение и установку размеров поля, нажмите клавишу , чтобы вернуться в обычный режим редактирования.
Выделение группы элементов бланка
При выполнении с элементами бланка таких операций, как копирование, перемещение и удаление, Вы имеете возможность работать сразу с группой элементов. Для этого необходимо выделить требуемые элементы. Выделение элементов можно производить с помощью клавиатуры или мыши.
Для выделения группы элементов с помощи клавиатуры, установите текстовый курсор в начало выделяемого фрагмента. Затем, удерживая нажатой клавишу , растяните выделение с помощью клавиш управления курсором до требуемых размеров.
Если Вы используете мышь, то установите указатель мыши в начало выделяемого фрагмента, а затем, удерживая нажатой левую клавишу мыши, растяните выделение.
Вы можете выделять как строчные, так и прямоугольные (блочные) области бланка. Текущий режим выделения указан в строке состояния программы («СТР» – строчное или «БЛК» – блочное). Переключить режим выделения можно с помощью комбинации клавиш +[Б].
Если элемент бланка не попал целиком в выделенную область, то он будет выбран только в случае включенного режима частичного выделения. При отключенном режиме частичного выделения (режим полого выделения), элемент бланка будет выбран только в том случае, если он целиком находится в выделенной области.
Режим выделения с частичного на полный и обратно можно переключить, используя комбинацию клавиш ++[Б].
Текущий режим указан в строке состояния программы («ЧСТ» – частичный или «ПЛН» – полный).
Графы ввода и вывода информации
Графы ввода
Графы ввода предназначены для ввода значений при заполнении бланка. Графа ввода может быть расположена в любом месте бланка, и определяется соответствующим форматом ввода. Размер графы ввода может быть установлен произвольно. Каждой графе ввода соответствует уникальная переменная, тип которой определяется форматом графы. Содержимое граф ввода может быть сохранено в архиве и в дальнейшем считано из него.
Графа вывода
Графы вывода предназначены для вывода информации при автоматическом заполнении бланка. Графа вывода может быть расположена в любом месте бланка и иметь произвольные размеры. Тип информации определяется типом переменной или выражения, выводимого в данную графу. Заполнение граф вывода происходит по окончании обработки формульного раздела бланка. Содержимое граф вывода не может быть сохранено в архиве.
Редактирование графы
Графа может быть отредактирована с помощью клавиатуры и/или мыши. Для перехода в режим редактирования графы подведите к ней с помощью клавиш управления курсором текстовый курсор, либо щелкните левой клавишей мыши по этой графе. Редактируемая графа выделяется рамкой красного цвета с квадратиками по углам и сторонам рамки. Теперь Вы можете изменить положение и размеры графы, а также ее параметры.
Параметры графы
Для изменения параметров графы, находящейся в режиме редактирования, выполните одно из следующих действий:
-
щелкните левой клавишей мыши по графе;
-
нажмите клавишу ;
-
выберите пункт Правка/Изменить главного меню.
Изменение параметров графы производится в диалоговом окне «Параметры графы».
При работе с этим диалоговым окном Вы можете задать следующие параметры:
Рис. 6. Параметры графы.
-
Имя переменной – уникальное имя, по которому данная переменная доступна в формульном разделе.
-
Комментарий – сюда Вы можете ввести дополнительную информацию, поясняющую назначение данной графы.
-
Формат:
-
Ввод – графа для ввода информации различного типа (см. ниже).
-
Вывод – графа для вывода информации (только строкового типа).
-
Тип графы ввода:
Программа поддерживает следующие типы ввода:
-
Строка – произвольный набор символов.
Максимальное количество символов определяется, как произведение количества символов на количество строк.
-
Число – последовательность цифр от 0 до 9.
В дальнейшем, при заполнении бланка, Вы сможете воспользоваться калькулятором для ввода значения в эту графу, вызвав его клавишей .
-
Дата – число формата дд.мм.гг или дд.мм.гггг. При заполнении такой графы бланка можно воспользоваться календарем, вызвав его с помощью клавиши .
-
Счет – последовательность символов, удовлетворяющая требованиям, налагаемым на код счета. При заполнении бланков Вы сможете подставить в поле ввода типа счет код требуемого счета из плана счетов по клавише .
-
DBF – графа, предназначенная для выбора номера записи базы данных в формате DBF (справочник). Для данной графы дополнительно указывается имя открываемого DBF-файла и имя считываемого из него поля.
-
Функция – графа, позволяющая вызвать функцию, результат выполнения будет подставлен в качестве значения.
-
Тип графы вывода – строка.
4. Параметры графы:
-
Количество символов – ширина графы в символах (0-100);
-
Количество строк – высота графы в строках(1-100);
-
Десятичные знаки – количество знаков после запятой (любое, 0-6).
-
Дополнительные параметры:
-
Файл – имя файла базы данных (файл с расширением .dbf) или библиотеки (файл с расширением .ibl).
-
Имя – имя поля базы данных или имя функции, вызываемой для осуществления дополнительных действий наряду с подстановкой информации в графу из справочника DBF.
-
Параметр – тип параметра, который передается в функцию: строка, число или дата.
-
Опции:
- Отображение при печати
Если признак не установлен, то значение графы игнорируется при выводе на печать. Такая графа может понадобиться, если Вам требуется ввести необходимые для расчета бланка данные, которые после расчета не требуется выводить на печать.
- Счет только последнего уровня
Опция используется только для графы ввода типа счет. При заполнении бланка, в такую графу можно ввести код счета только последнего уровня.
- Жирный шрифт
Установка данной опции позволяет Вам изменить начертание шрифта с обычного на полужирное.
- Нули слева
Данная опция показывает, нужно ли выводить слева от числа нули. Это может быть необходимо, например, при выводе суммы, в которой существуют только копейки: 0.56 (ноль рублей пятьдесят шесть копеек).
- Обновление бланка
Опция используется только для графы ввода типа функция. Данная опция указывает на необходимость обновления граф ввода-вывода. В функции Вы указываете начальные значения необходимых граф. Для использования этой возможности также нужно установить опцию компилятора «Объявлять графы ввода общими переменными» на закладке Документы меню Установки/Настройки.
Установленному признаку соответствует флажок .
Начиная с версии 8.2, в программе появилась возможность задавать шрифт для каждой графы вывода. Для этого в диалоговое окно «Параметры графы» добавлена кнопка «Шрифт». При нажатии данной кнопки открывается стандартное диалоговое окно «Шрифт», в котором Вы можете указать гарнитуру, начертание и размер шрифта, используемого для отображения информации в графе вывода бланка, а также набор символов: кириллица, западноевропейский и т.д.
Рис. 7. Стандартное диалоговое окно «Шрифт».
Закончив изменение параметров, нажмите клавишу или с помощью мыши нажмите кнопку «OK».
Рамки
Для создания таблиц предусмотрен элемент Рамка, который представляет собой прямоугольную рамку. Вы можете произвольно изменять положение и размеры рамки, а также задавать дополнительные параметры, например, толщину линий, которыми рисуется рамка. Параметры рамки могут быть отредактированы с помощью клавиатуры и/или мыши.
Для перехода в режим редактирования параметров рамки, подведите к ней текстовый курсор, либо щелкните левой клавишей мыши по этой рамке.
Вокруг рамки, находящейся в режиме редактирования, появляется обрамление красного цвета с квадратиками по углам и сторонам рамки. Теперь Вы можете изменить положение и размеры рамки, а также ее параметры.
Параметры рамки
Для изменения параметров рамки, находящейся в режиме редактирования, выполните одно из следующих действий:
-
щелкните левой клавишей мыши по рамке;
-
нажмите клавишу ;
-
выберите пункт Правка/Изменить главного меню.
Изменение параметров производится в диалоговом окне с заголовком «Параметры рамки»:
Рис. 8. Параметры рамки.
В этом окне Вы можете задать следующие параметры:
-
Выбор курсором – этот признак оказывает действие только при работе в редакторе бланков. Если этот признак установлен, то рамка выделяется при установке на нее текстового курсора. Если признак сброшен, то рамку можно выбрать только с помощью мыши.
-
Авторазмеры – этот признак определяет свойство рамки изменять размеры при добавлении или удалении строк внутри рамки. Если при установленном признаке вставить в бланк новую строку, попадающую в поле рамки, то длина рамки увеличится на эту строку. В том случае, если признак сброшен, вставка новой строки не приведет к изменению размеров рамки. Признак оказывает действие как при редактировании бланков в редакторе бланков, так и во время заполнения бланка, при использовании в формульной части бланка ключевого слова ВСТАВИТЬ_СТРОКУ.
-
Автосдвиг – этот признак определяет свойство рамки изменять свое положение при добавлении или удалении строк в бланке. Если этот признак установлен, то при добавлении строк перед рамкой, сама рамка будет сдвигаться вниз. В том случае, если признак сброшен, положение рамки меняться не будет. Признак оказывает действие как при редактировании бланков в редакторе бланков, так и во время заполнения бланка (пункт Документы/Заполнение главного меню), при использовании в формульной части бланка ключевого слова ВСТАВИТЬ_СТРОКУ.
-
Ширина рамки – это значение определяет ширину линий, которыми отображается рамка. Это значение находится в диапазоне от 1 до 3. При изменении значения можно использовать мышь, нажимая с ее помощью кнопки, расположенные справа от поля ввода.
Рисунок
В бланки Вы можете вставлять рисунки в формате .bmp. Возможно изменение положения и размеров рисунка, а также задание некоторых дополнительных параметров.
Параметры рисунка
Для изменения параметров рисунка, находящегося в режиме редактирования, выполните одно из следующих действий:
-
щелкните левой клавишей мыши по рисунку;
-
нажмите клавишу или ;
-
выберите пункт Правка/Изменить главного меню.
Изменение параметров производится в диалоговом окне с заголовком «Параметры рисунка»:
Рис. 9. Параметры рисунка.
В графе «Файл рисунка» Вам необходимо указать имя файла, содержащего рисунок в формате .bmp. Для этого рекомендуется воспользоваться кнопкой «Обзор».
В параметрах рисунка предусмотрены следующие опции:
-
Обрамление – позволяет получить рамку вокруг рисунка;
-
Центрирование – располагает рисунок по центру относительно его границ;
-
Только печать – рисунок отображается только при печати;
-
Масштабирование – рисунок растягивается/сжимается до размеров его границ.
Разрыв страницы
Несмотря на то, что редактор бланков производит разбиение бланка по страницам автоматически, иногда бывает необходимо принудительно завершить страницу и начать печать с новой страницы. Именно для этих целей и предназначены разрывы страниц.
Разрывы страниц не видны при просмотре и печати документа, однако, при редактировании бланка они отображаются, как горизонтальные пунктирные линии. Для перемещения разрыва страницы вверх или вниз по тексту бланка, нужно перевести его в режим редактирования, подведя к нему курсор. Затем нужно переместить его, действуя так же, как и при перемещении рамок и полей.
Графики
Новые графические возможности в программе Инфо-Бухгалтер дают возможность строить различные виды графиков и диаграмм непосредственно в бланках, не прибегая к внешним отчетам.
Для создания графика в бланке Вам следует определить в бланке область, в которую будет выведен график. Это можно сделать, выбрав из пункта меню Правка/Добавить, тип нового элемента – «График».
Параметры графика
Для изменения параметров графика, находящегося в режиме редактирования, выполните одно из следующих действий:
-
щелкните левой клавишей мыши по графику;
-
нажмите клавишу или ;
-
выберите пункт Правка/Изменить главного меню.
Изменение параметров производится в диалоговом окне с заголовком «Параметры графика»:
Рис. 10. Параметры графика.
Каждый график имеет следующие параметры:
-
Имя переменной – имя графического объекта, используемого в формульной части бланка;
-
Название – название графика, которое отображается сверху, в качестве заголовка;
-
Заголовки – вызов меню, определяющего заголовки справа, слева и внизу графика;
-
Тип графика – вид графика при отображении:
-
линия – обычный график
-
полоса – гистограмма
-
сплайн – сглаживание графика сплайнами
-
отметина – точечный рисунок
-
каравай – пирожковая диаграмма
-
область – область под графиком выделяется цветом
-
Тип точки – форма точек для представления значений;
-
Дес. знаки – количество десятичных знаков после запятой, отображаемых во всех числовых надписях, за исключением горизонтальной оси координат;
-
Сетка – опции отображения вертикальной и горизонтальной сетки;
-
Стили – набор общих стилей отображения графиков:
-
3D – трехмерное представление графика
-
Точки – дополнительное представление значений в виде точек на графике
-
От нуля – всегда показывать нулевое значение на вертикальной оси
-
Кластер – раздельное представление нескольких графиков по глубине
-
Значение – цифровые подписи значений точек графика
-
Горизонт – развертка гистограмм по горизонтали
-
Вместе – последовательная развертка нескольких гистограмм по значениям аргумента
-
Легенда – условные обозначения
Графический объект
Именем графического объекта является графа «Имя переменной» в параметрах графика.
Поля объекта
название |
– |
название графика |
левый_заголовок правый_заголовок нижний_заголовок |
– |
подписи на графике |
Методы объекта
- сброс_значений
сбрасывает все значения, добавленные функцией добавить_значение, и приводит параметры графического поля к значениям, используемым по умолчанию.
Рекомендуется вызывать перед началом работы с объектом во избежание накапливания данных при последующих пересчетах.
-
добавить_значение ( ТИП_ЧИСЛО х, [ y ] )
последовательное добавление значения х в серию (график) под номером y. Значение по умолчанию для параметра y равно 0.
-
шаги_по_вертикали ( ТИП_ЧИСЛО х )
установка количества отображаемых значений по вертикальной оси. Допустимы значения в интервале от 5 до 100.
-
наложение ( ТИП_ЧИСЛО х )
тип соединения различных графиков в гистограмме.
Допустимые значения х:
-
– раздельное отображение (по умолчанию);
-
– отображение вместе;
-
– отображение вместе, в процентном отношении.
-
шкала ( ТИП_ЧИСЛО х )
устанавливает масштаб отображения значений.
Отображаемое значение считается по формуле:
отображаемое значение = реальное значение/х.
-
легендарное_значение ( ТИП_СТРОКА s )
последовательное добавление текста s условных обозначений.
-
иксовое_значение ( ТИП_СТРОКА s )
последовательное добавление текста s в качестве подписи на горизонтальной оси, а в пирожковой диаграмме – на сегментах.
Пример построения графика
Ниже приведен пример построения графика.
График появляется только после пересчета бланка.
Рис. 11. Пример построения графика.
Формульный раздел бланка содержит следующую программу:
graph.название = title;
graph.сброс_значений;
graph.шаги_по_вертикали (5);
graph.наложение (1);
graph.шкала (10);
graph.легендарное_значение ("кривая");
graph.легендарное_значение ("парабола");
graph.легендарное_значение ("логарифм");
graph.добавить_значение (-20);
graph.добавить_значение (-50);
graph.добавить_значение (-40);
graph.добавить_значение (10);
graph.иксовое_значение ("01.04.97");
graph.иксовое_значение ("02.04.97");
graph.иксовое_значение ("03.04.97");
graph.иксовое_значение ("04.04.97");
graph.иксовое_значение ("05.04.97");
ЦИКЛ ДЛЯ ( i=1, 20 )
r = i^2
graph.добавить_значение ( r, 1 );
graph.добавить_значение ( i*10, 2 );
КОНЕЦ_ЦИКЛА
Формульный раздел
Формульный раздел бланка предназначен для расчета значений, которые затем будут выведены в поля вывода бланка, а также для формирования необходимых проводок.
При обработке формульного раздела бланка могут быть использованы данные из определений, реквизитов, журнала хозяйственных операций, а также данные, внесенные в поля ввода.
Формульный раздел описывается с помощью встроенного языка программы Инфо-Бухгалтер и выполняется при заполнении бланка документа в пункте меню Документы/Заполнение. Этот раздел бланка содержит формулы расчета и ключевые слова, а также комментарии. Комментарием считается правая часть строки, записанная после символов //.
Формульный раздел бланка можно просмотреть и отредактировать в пункте Правка/Формульный раздел главного меню. Этот пункт меню появляется только при редактировании бланка.
Импортирование бланков
Версии программы Инфо-Бухгалтер для Windows позволяют импортировать бланки, подготовленные для DOS-версий программы, а также конвертировать текстовые файлы в бланки.
Для того чтобы импортировать бланк DOS-версии или текст в бланк Windows-версии, выполните следующие действия:
-
Войдите в режим редактирования списка бланков, выбрав пункт меню Установка/Бланки;
-
Добавьте новый бланк с именем и параметрами, аналогичными бланку DOS;
-
Вызовите редактор бланков, нажав клавишу ;
-
Находясь в редакторе бланков, выберите пункт меню Файлы/Открыть. В появившемся окне установите требуемый тип файла (бланки под DOS или текстовые файлы), и нажмите клавишу .
Будет создан новый файл бланка с расширением *.blw и именем DOS-бланка. Если файл бланка с таким именем уже существует, то программа запросит у Вас разрешение на перезапись этого файла.
В окне редактора бланков появится текст из импортируемого DOS-бланка.
-
При необходимости отредактируйте бланк;
-
Сохраните бланк, выбрав пункт меню Файлы/Сохранить.
Компиляция бланков
Компиляция бланков осуществляется либо в редакторе бланков, либо автоматически при заполнении.
Для каждого бланка в отдельности Вы можете указать способ выполнения – интерпретация или компиляция. Переключение осуществляется в диалоговом окне «Параметры бланка» (см. раздел 2.1.1).
При выборе исполнения бланка с помощью откомпилированного кода во время первого выбора бланка на заполнение компиляция будет произведена автоматически. При удачном завершении компиляции в дальнейшей работе с этим бланком компиляция не потребуется, а будет выполняться ранее созданный код. В случае же изменения исходного текста бланка, его визуальной формы (файл *.blw) или удаления файла кода (*.ibx), компиляция будет произведена автоматически.
При работе в редакторе бланков компиляция осуществляется с помощью комбинации клавиш +, а компиляция и запуск – с помощью клавиши .
В пункте Установка/Настройка/Документы меню Вы можете индивидуально для данного бланка указать признаки записи отладочной информации и выдачи предупреждений. Состояние этих переключателей сохраняется в файле бланка (*.blw). Настройка директорий остается глобальной.
Все перечисленные действия можно осуществлять как в окне визуальной формы бланка, так и в окне формульного раздела.
Сообщения об ошибках, возникающие при компиляции бланка, могут относиться как к формульной части, так и к графам ввода-вывода. В первом случае приводятся позиция и строка в формульном разделе со ссылкой на blw-файл, а во втором – позиция в содержании графы и содержание графы.
Для работы откомпилированного кода бланка необходим blw-файл, так как в нем хранится информация о визуальной форме, имени архива и другие параметры.
Компиляция текста
Компиляция текста предназначена для создания программ Инфо-Бухгалтера без визуальных форм. Такие программы могут вызываться из настраиваемого меню и с помощью функции СТАРТ_ПРОГ в языке.
Компилятор вызывается с помощью пункта Установка/ Компилятор/Компиляция текста главного меню. В появившемся текстовом редакторе Вы можете набирать произвольную программу на языке Инфо-Бухгалтера. Все функции работы с визуальной формой (ВЫВЕСТИ, ВСТАВИТЬ_РАМКУ и подобные) здесь игнорируются. Откомпилировать набранный текст Вы можете с помощью клавиш + или пункта Компилировать во всплывающем меню. Откомпилировать и запустить программу Вы можете с помощью клавиши или кнопки
на панели инструментов.
Выбрав из всплывающего меню пункт Параметры компилятора, Вы можете изменить глобальные параметры компилятора.
Для открытия нового файла исходного текста выберите пункт Файлы/Открыть главного меню или нажмите кнопку
на панели инструментов.
Для открытия второго окна компилятора повторно выберите пункт Установка/Компилятор/Компиляция текста.
Редактор типовых операций
Типовые операции предназначены для автоматизации ввода часто используемых хозяйственных операций. С программой поставляется большое количество стандартных типовых операций, однако, у Вас может возникнуть необходимость изменить какую-либо существующую или ввести новую типовую операцию.
Описание типовых операций содержится в текстовом файле с расширением .top (по умолчанию файл имеет имя ib.top). Типовые операции в этом файле описываются с помощью встроенного языка программы Инфо-Бухгалтер.
Выбрав пункт Установка/Типовые операции главного меню, Вы можете отредактировать содержимое файла типовых операций либо с помощью встроенного редактора, либо с помощью любого другого внешнего текстового редактора.
Описание каждой операции начинается с ключевого слова ОПЕРАЦИЯ:
ОПЕРАЦИЯ < Название раздела > : < Название операции >
[ < Имя файла > ]
…
КОНЕЦ
Название операции состоит из двух частей: названия раздела и названия самой операции (для интерпретатора). Для компилятора добавляется третий параметр – имя файла (в угловых скобках!). Части названия разделяются двоеточием.
Список типовых операций, вызываемый при работе с журналом хозяйственных операций, разбит на разделы. Операции, имеющие одинаковые названия разделов, будут находиться в одном разделе списка. Окончанием описания типовой операции считается конец соответствующего формульного раздела, отмеченный ключевым словом КОНЕЦ. Во всем остальном же, описание типовой операции аналогично описанию формульной части бланка документа (без полей вывода).
Работая с файлом описания типовых операций, Вы можете распечатать его содержимое. Для этого выполните следующие действия:
-
нажмите кнопку
на панели инструментов;
-
нажмите клавишу ;
-
выберите пункт меню Файлы/Печать.
В программе предусмотрена возможность выбрать другой, заранее созданный Вами, файл описания типовых операций. Для этого, находясь в режиме редактирования текущего файла типовых операций (пункт Установка/Типовые операции главного меню), выберите пункт Файлы/Открыть главного меню или нажмите кнопку
на панели инструментов. После этого, новый выбранный файл станет текущим файлом описания типовых операций.
Описания типовых операций располагаются в файле типовых операций в произвольном порядке. Вы можете вставить описание новой операции, как в начало, так и в конец файла. При этом в списке, предлагаемом Вам при вводе новой типовой операции, названия всех операций будут упорядочены по алфавиту.
Ниже приведено описание структуры этого файла. Строки, записанные после символов // является комментарием.
Структура файла описания типовых операций
// Типовая операция № 1
ОПЕРАЦИЯ < Раздел >:< Операция 1 > [ < Имя файла 1 > ]
// Описание полей ввода
ВЫЧИСЛИТЬ
// Последовательность расчета
// и формирования хозяйственных операций.
КОНЕЦ// Конец типовой операции № 1
// Типовая операция № 2
ОПЕРАЦИЯ < Раздел >:< Операция 2> [ < Имя файла 2 > ]
…
ВЫЧИСЛИТЬ
…
КОНЕЦ// Конец типовой операции № 2
// Типовая операция № n
ОПЕРАЦИЯ < Раздел >:< Операция n> [ < Имя файла n > ]
…ВЫЧИСЛИТЬ
…
КОНЕЦ// Конец типовой операции № n
Компиляция типовых операций
Все типовые операции в Инфо-Бухгалтере хранятся в одном файле. В связи с этим требуется, по крайней мере, указать для каждой операции имя файла кода. Указание имени файла кода является признаком того, что для данной операции необходимо использовать компилятор. Если имя файла не указано, то типовая операция будет выполняться в режиме интерпретатора. Имя файла кода указывается в заголовке операции после названия в угловых скобках.
Например:
ОПЕРАЦИЯ Зарплата : Начисление <zpnach>
В данном случае для типовой операции по начислению зарплаты будет использоваться компилятор. Для кода и визуальной формы будут созданы два файла zpnach.ibx и zpnach.vfx соответственно.
Компиляция типовой операции осуществляется при ее первом запуске и не требуется в дальнейшем. При изменении файла типовых операций все операции будут перекомпилироваться, так как нет возможности проследить изменения для каждой типовой операции в отдельности.
Для выполнения откомпилированной типовой операции не требуются обращения к файлу типовых операций.
Компиляция и запуск из редактора типовых операций не предусмотрены.
Примеры типовых операций
Пример 1:
ОПЕРАЦИЯ Товары : оплата за ранее оприходованные
Оплата с: ^опл
Поставщик: ^пост
Сумма: &Сумма&&&&&&&&
Ставка НДС, %: &ндс:5
Дата: ~дата
ВЫЧИСЛИТЬ
опл="51"
пост="60/"
дата=ДАТА_ТЕК
ндс=20
ВВЕСТИ
сндс=Сумма*ндс / (100+ндс)
ПРОВОДКА (пост, опл, Сумма, дата, "Оплач.тов. / "+НАЗВ (пост))
ПРОВОДКА ("68/НДС", "19/10", сндс)
КОНЕЦ
Пример 2:
ОПЕРАЦИЯ Зарплата : начисление < zpnach >
Кому (счет): ^корр
Сумма: &сумма&&&&&
Подоход. налог: &поднал&&&&
Дата: ~дата
Кол-во ижд.: &ж
ВЫЧИСЛИТЬ
корр="70/";дата=ДАТА_ТЕК
ВВЕСТИ
ПРОВОДКА ("20", корр, сумма, дата,
"Начислена зарплата / " + НАЗВ (корр))
ПРОВОДКА ("20", "69/ПЕНС/ВЗ", сумма*СТ_ПЕНСФОТ)
ПРОВОДКА ("20", "69/СОЦ", сумма*СТ_СОЦСТР)
ПРОВОДКА ("20", "69/ФЗАН", сумма*СТ_ФЗАН)
ПРОВОДКА ("20", "69/МЕД/ФЕД", сумма*СТ_МЕД_ФЕД)
ПРОВОДКА ("20", "69/МЕД/ТЕР", сумма*СТ_МЕД_ТЕР)
ПРОВОДКА ("80/НЕРЕ", "68/ОБР", сумма*СТ_ОБРАЗ)
ПРОВОДКА (корр, "69/ПЕНС/ВЗ", сумма*СТ_ПЕНСУД)
ПРОВОДКА (корр, "68/ПОДН", поднал)
мгс=ПОДСТР ( СТР (ГОД (дата) ),3,2+ СТР0 ( МЕС (дата),2)
ЕСЛИ ПОДСТР (корр,1,5)="70/ШТ" И сумма>минзп_!мгс ТО
П=ПОДСЧ (корр, 3)
ЦИКЛ ДЛЯ (и=4, УРОВЕНЬ (корр))
П=П+"/"+ПОДСЧ (корр, и)
КОНЕЦ_ЦИКЛА
ПРОВОДКА ("006/"+П, "006/0", минзп_!мгс*(1+ж))
КОНЕЦ_ЕСЛИ
При вызове данной типовой операции Вам будет предложено ввести данные в поля ввода. Ввод данных осуществляется в диалоговом окне представленном на рисунке 12.
Константы, необходимые для расчета (СТ_ПЕНСФОТ, СТ_СОЦСТР, СТ_ПОДОХОД и т.д.), задаются в пункте меню Установка/Определения.
Рис. 12. Типовая операция «Начисление зарплаты».
После ввода данных будет автоматически сформирована хозяйственная операция со следующими проводками:
Дебет | Кредит | Сумма |
20 |
70/ШТ/БВВ |
3500.00 |
20 |
69/ПЕНС/ВЗ |
980.00 |
20 |
69/СОЦ |
189.00 |
20 |
69/ФЗАН |
52.50 |
20 |
69/МЕД/ФЕД |
7.00 |
20 |
69/МЕД/ТЕР |
119.00 |
80/НЕРЕ |
68/ОБР |
35.00 |
70/ШТ/БВВ |
69/ПЕНС/ВЗ |
35.00 |
70/ШТ/БВВ |
68/ПОДН |
420.00 |
006/БВВ |
006/0 |
83.50 |
Чтение и запись типовых операций
При запуске программы автоматически загружается тот файл типовых операций, с которым Вы работали в предыдущий раз (по умолчанию – файл ib.top).
Для того, чтобы открыть другой файл типовых операций, выберите, находясь в редакторе типовых операций (Установка/Типовые операции), пункт меню Файлы/Открыть или нажмите кнопку
панели инструментов.
Чтобы сохранить файл типовых операций под текущем именем, выберите пункт меню Файлы/Сохранить или нажмите кнопку
панели инструментов.
Чтобы сохранить файл типовых операций под другим именем, выберите пункт меню Файлы/Сохранить как….
Начиная с версий 7.123 для 16-разрядных версий и 7.514 для 32-разрядных версий программы Инфо-Бухгалтер, введена возможность работы с типовыми операциями в кодировке Windows ANSI. Раньше типовые операции хранились только в кодировке DOS.
Рис. 13. Загрузка файла типовых операций.
Выбрать кодировку Вы можете в функциях Открыть или Сохранить как…. При открытии или сохранении файла типовых операций в графе «Тип файлов» Вы можете выбрать один из трех вариантов:
-
Файлы типовых операций – чтение/запись в текущей (ранее выбранной) кодировке;
-
Текстовые файлы Windows – выбирается и становится текущей кодовая страница Windows ANSI;
-
Текстовые файлы DOS – выбирается и становится текущей 866 кодовая страница DOS.
Информацию о текущей кодировке типовых операций можно узнать в пункте Справка/Информация главного меню.
Редактор графиков
Программа Инфо-Бухгалтер дает возможность задавать произвольный список графиков. В дальнейшем, при построении графиков (пункт Отчеты/Графики главного меню), Вы сможете выбрать из списка необходимый Вам график.
Рис. 14. Список графиков для редактирования.
Список графиков задается и редактируется в пунктеУстановка/Графики главного меню. После выбора данного пункта меню перед Вами появится список, каждая строка которого содержит название графика и его тип.
При работе с этим списком Вы можете:
-
задавать новые графики;
-
редактировать существующие графики;
-
удалять ненужные графики.
Рис. 15. Окно редактирования параметров графика.
Задание, редактирование и удаление графиков осуществляется добавлением, редактированием и удалением элементов списка.
Для того чтобы добавить новый элемент списка, нажмите клавишу или кнопку
на панели инструментов. На экране появится окно диалога «Новый график», все поля которого будут пустыми.
В данном окне Вы можете установить необходимые параметры графика, а также ввести элементы графика. Для этого нажмите либо левой клавишей мыши на
, либо перейдите с помощью клавиши или + к списку «Элементы» и выполните одно из следующих действий:
-
нажмите клавишу
-
нажмите левой клавишей мыши на кнопку
.
На экране появится окно «Новый элемент графика» (см. Рис. 16):
Рис. 16. Окно редактирования параметров элемента.
Параметры графика
Находясь в окне редактирования графика, Вы можете задать следующие параметры:
- Название графика
Символьная строка определяет название графика, по которому он идентифицируется в списке.
- Тип
С помощью этого параметра устанавливается тип графика.
Параметр может принимать два значения:
-
график;
-
диаграмма.
- Для графика: тип
С помощью параметра можно определить, в каком интервале будет формироваться график. Параметр может принимать два значения:
-
За отчетный период;
-
График в интервале.
Если параметр имеет значение «График в интервале», то дополнительно требуется задать интервал построения графика.
- Детализация
Для графиков необходимо задать период детализации. Период детализации может принимать значения:
-
Хозяйственная операция;
-
День;
-
Неделя;
-
Декада;
-
Месяц;
-
Квартал;
-
Год;
-
Интервал.
- Интервал графика
Интервал графика задается только в том случае, если параметр «Тип графика» имеет значение «График в интервале». Интервал задается начальным и конечным значением. В зависимости от формул, заданных в элементах графиков, интервал может быть определен значениями типа даты или числа.
Список элементов графика
Помимо параметров, в окне редактирования графиков содержится список, определяющий элементы графика. Каждая строка этого списка содержит описание одного элемента.
Элементы графиков и диаграмм задаются по одинаковым правилам. Для любого элемента можно задать:
- Название
Позволяет идентифицировать элемент на построенном графическом изображении.
- Включение
Позволяет комбинировать различные элементы на одном изображении без удаления элементов из списка.
Признак включения может принимать следующие значения:
-
Выкл.– элемент не включается;
-
Вкл.– элемент включается;
-
Авто– элемент включается автоматически (если не ноль).
- Формула
Это выражение числового типа, по которому рассчитывается данный элемент. В выражении могут использоваться функции встроенного языка программы Инфо-Бухгалтер, а также значения других (выше рассчитанных) элементов. Для этого используются переменные, состоящие из букв ЭЛ и порядкового номера элемента. Если элемент отключен, то соответствующее ему значение равно нулю.
Пример: Редактирование списка элементов графика
«Структура затрат»
Название | Вкл. | Формула |
Зарплата |
Авто |
ОБД("20","70") |
Налоги |
Авто |
ОБД("20","67")+ОБД("20","68")+ОБД("20","69") |
Материалы |
Авто |
ОБД("20","10") |
Амортизация |
Авто |
ОБД("20","02") |
Процент банка |
Авто |
ОБД("20","51") |
Подотчет |
Авто |
ОБД("20","71") |
Услуги |
Авто |
ОБД("20","76") |
Прочие |
Авто |
ОБД("20")-ЭЛ1-ЭЛ2-ЭЛ3-ЭЛ4-ЭЛ5-ЭЛ6-ЭЛ7 |
Если задан тип «График», то каждая строка описывает отдельный график. Если же задан тип «Диаграмма», то каждая строка описывает отдельный элемент одной диаграммы.
Работая со списком элементов графика, Вы можете добавлять новые, редактировать существующие и удалять ненужные элементы. При добавлении или редактировании элемента Вам будет предложено диалоговое окно «Редактирование элемента графика». Находясь в этом окне, Вы можете задать название элемента, формулу, по которой вычисляется значение данного элемента, а также выбрать признак включения.
Закончив редактирование параметров элемента графика, нажмите клавишу или с помощью мыши выберите кнопку «OK». С помощью кнопки «Отмена» можно отказаться от внесенных изменений.
Окно редактирования графиков
Рис. 17. Редактирование графика «Реализация».
В окне редактирования графиков находятся поля ввода параметров графика и список элементов графика. Все поля этого окна доступны для редактирования.
С помощью кнопок перемещения по списку
можно переходить к редактированию соответственно первого, предыдущего, последующего и последнего графика в списке. Закончив редактирование графика, нажмите клавишу или выберите с помощью мыши кнопку «OK». Выбрав кнопку «Отмена», можно отказаться от сохранения введенных изменений.
Типы графиков
Графики подразделяются на два типа:
- График за отчетный период
Для данного типа графиков дополнительно выбирается детализация от дня до года. Количество точек графика определяется в соответствии с установленным в календаре отчетным периодом и выбранной детализацией.
При задании формул расчета элементов графика можно использовать функциями доступа к остаткам и оборотам счетов без указания дат – в этом случае эти функции рассчитываются за подпериоды, соответствующие каждой точке графика. Например, если отчетный период равен году, а детализация – месяцу, то при задании двух элементов:
Название | Вкл. | Формула |
Оборот расчетного счета |
Вкл. |
ОБД ("51") |
Оборот кассы |
Вкл. |
ОБД ("50") |
будут построены две линии, показывающие обороты расчетного счета и кассы за каждый месяц года.
- График в интервале
Для данного типа графиков дополнительно задается интервал «от … до …». Границы интервала можно указать либо в виде констант, либо в виде выражений числового типа или типа дата, например:
График в интервале от 1 до 3*4 |
График в интервале от 01.01.99 до ДАТА_ТЕК + 1 |
В формулы расчета элементов графика в интервале можно включать переменную X (в латинском регистре), значение которой изменяется с шагом 1 в пределах заданного интервала. Тип переменной X соответствует типу границ интервала (числовой тип или тип дата). Например, если задан график:
График в интервале от 1 до 6 |
с элементами
Оборот расч. cчета |
Вкл. |
ОБД ("51", ДАТА (1, X ,99), ДАТА (1, X+1, 99)) |
Парабола |
Вкл. |
X^2 |
то первая линия отразит оборот расчетного счета за каждый из 6 первых месяцев 1999 года, а вторая линия – функцию X 2 в диапазоне от 1 до 6.
Диаграммы подразделяются на 2 типа:
- Столбчатая диаграмма
Для столбчатой диаграммы дополнительно задается признак, по которому вычисляются проценты для каждого элемента диаграммы. Процент может вычисляться от максимального элемента в диаграмме или от суммы всех элементов. Кроме процентов, по вертикальной оси диаграммы откладывается абсолютное значение элементов.
- Секторная диаграмма
Секторная диаграмма отражает процент каждого элемента диаграммы по отношению к сумме всех элементов. Если элемент составляет менее одного процента от суммы, то он не изображается на диаграмме, однако значение каждого элемента включается в общую сумму.
Редактор журнально-ордерных форм
В пункте Установка/Журнально-ордерные формы главного меню можно определить список стандартных журнально-ордерных форм для последующего автоматического составления журналов-ордеров и ведомостей в пункте Отчеты/Журналы-ордера главного меню.
Список журнально-ордерных форм разбит по типам документов. В зависимости от типа, документ будет находиться в одном из подсписков. Вы можете определить документы, относящиеся к следующим группам:
-
Журналы-ордера;
-
Ведомости к ж.о.;
-
Главные книги;
-
Материальные отчеты;
-
Шахматки;
-
Разное.
Если группа не содержит ни одной журнально-ордерной формы, то она не отображается в списке.
При выборе пункта Установка/Журнально-ордерные формы главного меню появляется окно «Журнально-ордерные формы», в котором отображается список групп журнально-ордерных форм:
Рис. 18. Список журнально-ордерных форм.
Для того чтобы посмотреть список форм, относящихся к какой-либо группе, нажмите левой кнопкой мыши кнопку
или выберите с помощью клавиш управления курсором строку с названием нужной группы и нажмите клавишу .
Для возврата к просмотру списка групп нажмите левой кнопкой мыши кнопку
или нажмите клавишу .
Рис. 19. Список стандартных журналов-ордеров.
Ввод и редактирование параметров журнально-ордерных форм производится в диалоговом окне «Форма» (см. рис. 20).
Для каждой журнально-ордерной формы можно задать следующие параметры:
-
Название – строка для идентификации формы.
-
Группа – параметр устанавливает принадлежность формы к одной из перечисленных групп:
-
Журналы-ордера;
-
Ведомости к ж.о.;
-
Главные книги;
-
Материальные отчеты;
-
Шахматки;
-
Разное.
-
Счета – счет может быть задан шаблоном или набором счетов, перечисленных через запятую.
Например:
51– счет 51;
70/*– все субсчета счета 70;
50, 76– счет 50 и 76.
-
По вертикали – с помощью этого параметра можно указать, какие значения будут откладываться по вертикали. Параметр может принимать два значения:
-
календарные периоды (журнально-ордерная форма);
-
счета (шахматная форма).
-
Детализация – определяет интервал детализации журнально-ордерной формы. Параметр оказывает влияние только в случае, если параметр «По вертикали» имеет значение «календарные периоды». Период детализации может принимать следующие значения:
-
Хозяйственная операция;
-
День;
-
Неделя;
-
Декада;
-
Месяц;
-
Квартал;
-
Год.
-
Максимальный порядок корр. счетов – ограничивает максимальный порядок корреспондирующих счетов. Этот параметр может принимать значения от 1 до 10. Если значение этого параметра равно 1, то для корреспондирующих счетов, имеющих свои субсчета, отображается только по одной графе с кодом счета первого уровня, где показан суммарный по всем субсчетам этого счета оборот.
Значения максимального порядка корреспондирующих счетов можно задать с помощью клавиатуры или изменить с использованием мыши. Для изменения этих полей ввода с помощью мыши воспользуйтесь кнопками, расположенными справа от соответствующего поля ввода.
-
Максимальный порядок субсчетов – оказывает действие только на счета, имеющие субсчета. Данный параметр определяет, до какого порядка субсчета разворачивать отчетную форму. Вы можете изменять значение этого параметра от 1 до 10.
- Показывать
- Итоговый оборот по дебету
При установке данного признака в отчетные формы включается графа «Итого по дебету», в которой отображается суммарный оборот выбранного счета по дебету за отчетный период.
- Развернутый оборот по дебету
При установке данного признака в отчетные формы включаются графы, соответствующие счетам, корреспондирующим по дебету с выбранным счетом. Данный признак можно установить только совместно с признаком «Итоговый оборот по дебету».
- Итоговый оборот по кредиту
При установке данного признака в отчетные формы включается графа «Итого по кредиту», в которой отображается суммарный оборот выбранного счета по кредиту.
- Развернутый оборот по кредиту
При установке данного признака в отчетные формы включаются графы, соответствующие счетам, корреспондирующим по кредиту с выбранным счетом. Данный признак можно установить только совместно с признаком «Итоговый оборот по кредиту».
- Показывать пустые периоды
При установке этого признака во встроенные отчеты включаются календарные периоды, за которые не было оборотов по соответствующим счетам. Признак имеет действие, если отчеты генерируются с детализацией от недели до года.
- Только суммовая форма
Признак оказывает действие только на счета, по которым ведется количественно-суммовой учет. В зависимости от установки этого признака отчет может формироваться в суммовой или в количественно-суммовой форме. В последнем случае в каждую графу, содержащую оборот, вносится следующая информация: оборот в суммовом выражении, оборот в единицах измерения, цена за единицу.
Рис. 20. Окно параметров журнала-ордера № 2.
Работая со списком журнально-ордерных форм, Вы можете добавлять новые, редактировать существующие и удалять ненужные журнально-ордерные формы. Списки журнально-ордерных форм хранятся в файле ib.zof. Кроме того, Вы можете задать дополнительные параметры формирования журнально-ордерной формы. Список и назначение данных параметров аналогичны списку и назначению параметров, задаваемых при формировании материального отчета в пункте Отчеты/Материальный отчет главного меню. Списки стандартных журнально-ордерных форм хранятся в файле ib.zof.
Файл настройки Ib.ini
Вставка колонтитулов с логотипом и реквизитами предприятия при печати
В соответствии с существующими стандартами документов в таблицы при печати сделана возможность вставки колонтитулов с логотипом и реквизитами предприятия при печати ЖХО, плана счетов и встроенных отчетов.
Вид колонтитулов определяется в секции [Titles] файла ib.ini, расположенного в каталоге Инфо-Бухгалтера:
; Данная секция описывает заголовки (колонтитулы)
; при печати
; TopLineNN– верхний заголовок
; BottomLineNN– верхний заголовок
; То, что внутри диезов #ИМЯ_РЕКВИЗИТА#
; заменяется на значение реквизита, или если его нет,
; на 10 пробелов (чтобы можно было вписать от руки)
;
; ЕслиTopLogo=1, то логотип располагается в верхней части
; страницы
;LogoHeight – максимальная высота логотипа
;(единица – высота строки)
; ЕслиTopLogo=0, то логотип располагается в верхней левой
; части страницы
;LogoHeight – минимальная высота логотипа
;(единица - высота строки)
;
[Titles]
Logo = #Логотип#
TopAlign = 0
LogoHeight = 3
TopLine0 = Предприятие:#Предприят#
TopLine1 = Адрес:#Адрес#
TopLine2 = ИНН:#ГосНом#
BottomLine0 = Директор:_____________________ (#Руковод#)
BottomLine1 = Главный бухгалтер:____________ (#ГлавБух#)
Выбрав пункт меню Установка/Реквизиты, добавьте новый реквизит с именем Логотип:
Файл с логотипом фирмы должен быть записан в формате Windows BMP. Лучше использовать черно-белые или полутоновые (16 цветные) изображения логотипа.
Вид колонтитулов, получаемых при использовании указанного выше фрагмента файла ib.ini, показан на рисунке:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Подключение пользовательских систем правовой поддержки
Данная возможность доступна, начиная с версии ИБ 8.102.
При желании использовать систему правовой поддержки отличную от СПС «Гарант», Вам необходимо в файле ib.ini в корневой директории Инфо-Бухгалтера создать секцию [LawSupportSystem]. В этой секции нужно задать следующие параметры:
Use |
– признак использования данной системы |
Name |
– название системы для меню |
ContextName |
– текст меню для контекстного вызова |
Executable |
– имя запускаемого модуля правовой системы |
Пример:
Пусть файл, запускающий вымышленную правовую систему «Закон 2.2» называется Laws.exe. Тогда для подключения этой СПС к Инфо-Бухгалтеру необходимо добавить в файл ib.ini следующие строки:
[LawSupportSystem]
Use=ON
Name=Закон 2.2
ContextName=Закон-Контекст
Executable=LAWS.EXE
Строка запроса при контекстном вызове передается в фигурных скобках для отделения строки запроса от других параметров. Например:
laws.exe -NoMaximize {План счетов}
Вызов функций при старте и завершении программы
Данная возможность доступна, начиная с версии ИБ 8.2.
Чтобы использовать вызов функций при старте и завершении программы, Вам необходимо в файле ib.ini в корневой директории Инфо-Бухгалтера создать секцию [AppFunctions]. В этой секции нужно задать следующие параметры:
InitFunc | – |
имя функции, выполняемой при старте программы |
DoneFunc | – |
имя функции, выполняемой при завершении программы |
Функции указываются в следующем формате:
["<имя библиотеки>"].<имя функции>
Пример:
Пусть функции, выполняемые при старте и завершении программы, находятся в библиотеке App.ibl. Тогда для вызова этих функций необходимо добавить в файл ib.ini следующие строки:
[AppFunctions]
InitFunc = ["app.ibl"].Init
DoneFunc = ["app.ibl"].Done
В библиотеке App.ibl эти функции описываются так:
ФУНКЦИЯ Init
// ...
КОНЕЦ_ФУНКЦИИ
ФУНКЦИЯ Done
// ...
КОНЕЦ_ФУНКЦИИ
Вызов функций при редактировании ЖХО
Данная возможность доступна, начиная с версии ИБ 8.2.
Чтобы использовать вызов функций при редактировании журнала хозяйственных операций, Вам необходимо в файле ib.ini в корневой директории Инфо-Бухгалтера создать секцию [HozOpExtActions]. В этой секции нужно задать следующие параметры:
MaxCount | – |
максимальное количество пунктов меню |
MenuTextn |
– |
текст n-го пункта меню |
Commandn |
– |
имя функции при выборе n-го пункта меню |
Функции указываются в следующем формате:
["<имя библиотеки>"].<имя функции>
При редактировании журнала в функцию передается номер выделенной хозяйственной операции. Дополнительные команды содержатся во всплывающем меню и пункте меню Правка.
Пример:
Пусть функции, выполняемые при редактировании ЖХО, находятся в библиотеке HozOp.ibl. Тогда для вызова этих функций необходимо добавить в файл ib.ini следующие строки:
[HozOpExtActions]
MaxCount=5
MenuText1=Вывод содержания
Command1=["HozOp.ibl"].меню_ОперСод
MenuText2=Установить сегодняшнюю дату
Command2=["HozOp.ibl"].меню_ОперНаСегодня
В библиотеке HozOp.ibl эти функции описываются так:
ФУНКЦИЯ меню_ОперСод( ТИП_ЧИСЛО: номер )
оп = ОПЕР_СЧИТАТЬ (номер)
СООБЩЕНИЕ (оп.название)
КОНЕЦ_ФУНКЦИИ
ФУНКЦИЯ меню_ОперНаСегодня( ТИП_ЧИСЛО: номер )
оп = ОПЕР_СЧИТАТЬ (номер)
оп.дата = ДАТА_ТЕК
оп.ЗАПИСАТЬ
КОНЕЦ_ФУНКЦИИ
После этого во всплывающем меню и пункте меню Правка появятся дополнительные пункты меню:
Описание встроенного языка
В программе Инфо-Бухгалтер имеются мощные средства, позволяющие создавать произвольные бланки и типовые операции. Для описания последовательности действий, которые должны автоматически выполняться при формировании документа или типовой операции, предусмотрен встроенный язык.
С помощью встроенного языка можно описать любой необходимый Вам расчет, сформировать хозяйственные операции, записать и считать информацию из базы данных. В его библиотеке имеется большое количество функций, которые позволяют получить доступ к данным, хранящимся в программе (например, можно получить остатки и обороты по любому счету или субсчету). Кроме того, в языке имеются средства, обеспечивающие ветвление расчета и организацию циклов.
Встроенный язык можно применять при описании формульной части бланков и типовых операций. Многие функции языка доступны при работе со встроенным калькулятором.
Типы данных
В программе Инфо-Бухгалтер используются данные следующих типов:
-
числовой тип;
-
строковый тип;
-
логический тип;
-
тип дата;
-
тип время;
-
объектные типы.
Числовой тип
С помощью числового типа представляются целые и дробные числа в диапазоне -3.4e-4932…1.1e+4932. Точность представления – 18 десятичных цифр.
Пример:
5 |
// константа целого типа |
1000.0 |
// константа вещественного типа // с фиксированной запятой |
1e4 |
// константа вещественного типа // в экспоненциальной форме |
К числовому типу применимы все арифметические действия.
Строковый тип
Строка – последовательность символов, заключенная в двойные кавычки "…". Максимальная длина строки – 255 символов.
Пример:
"Петров И. А."// константа строкового типа
К строковому типу применима операция конкатенации (соединения) +: "Гл. бухгалтер: "+"Петров И.А.".
При сравнении строковых данных возможно использование шаблонов.
Логический тип
Переменные или константы логического типа могут принимать два значения:
-
ДА– истина;
-
НЕТ– ложь.
С логическим типом допустимы следующие действия:
-
НЕ– отрицание;
-
И– логическое И;
-
ИЛИ– логическое ИЛИ.
Тип дата
С помощью данного типа представляются календарные даты в диапазоне от 01.01.1900 года до 01.01.2078 года. Начиная с версии ИБ 8.112, константы типа дата можно вводить как с двухзначным, так и с четырехзначным годом.
Дата записывается в формате типа:
дд.мм.гг или дд.мм.гггг, где
дд– день (от 01 до 31);
мм– месяц (от 01 до 12);
гг или гггг– год (от 00 до 99 или от 1900 до 2078).
Замечание.При задании года от 50 до 99 подразумевается XX век (с 1950 по 1999 год), при задании года с 00 до 49 – XXI век (с 2000 по 2049 год).
Пример:
// константы типа дата:
01.09.60// 1 сентября 1960 года
30.12.20// 30 декабря 2020 года
17.07.2012// 17 июля 2012 года
С типом дата допустимы следующие операции:
-
Сложение с числом. Результат – дата.
-
Вычитание числа. Результат – дата.
-
Вычитание даты. Результат – число.
Тип время
С помощью данного типа представляется время, записываемое в следующем формате:
чч.мм.сс, где:чч– часы (от 00 до 23);
мм– минуты (от 00 до 59);
сс– секунды (от 00 до 59).
С типом время допустимы операции сложения и вычитания.
Объектные типы
Имеются следующие объектные типы:
- База данных
- База данных с поддержкой SQL
- Операция
- Проводка
- Список
- Счет
- Файл
- Фильтр
- Шрифт
Переменные объектных типов (кроме базы данных и файла) можно приравнивать один другому. Арифметические операции к объектам неприменимы.
Переменные объектных типов можно сравнивать на равенство или неравенство (=,<>).
Переменные
Переменные предназначены для хранения информации различных типов – результатов вычисления выражений и данных, введенных в поля ввода – под некоторым именем.
Имя переменной может иметь длину до 31 символа. Первый символ – буква латинского или русского алфавита или символ подчеркивания «_», остальные символы – буквы, цифры или символы подчеркивания.
Тип переменной определяется типом впервые присваиваемого значения или типом соответствующего поля ввода.В дальнейшем переменной должны присваиваться значения того же типа.
Пример:
а=25/5// а – переменная числового типа
б="Инфо"// б – переменная строкового типа
д_1=01.01.98// д_1 – переменная типа дата
Индексные переменные
Индексные переменные – это переменные, названия которых состоят из 2-х частей: собственно названия переменной и индекса. Эти переменные используются, как правило, при обработке таблиц при помощи циклов.
Общий вид индексной переменной:
<название>!<переменная-индекс>
Переменной-индексом может быть любая переменная числового или строкового типа, например:
и = 3
ст = "_всего"
п!и// аналог переменной "п3"
п!ст// аналог переменной "п_всего"
ВЫЧИСЛИТЬ// В результате выполнения цикла
ЦИКЛ ДЛЯ (и=1, 10)// задаются значения 10 переменных:
стр!и = и// стр1=1, стр2=2 и т.д.
КОНЕЦ_ЦИКЛАКОНЕЦ
Новый формат обращения к индексным переменным:
Сделаны два взаимно совместимых синтаксиса обращения к индексным переменным.
-
<название>!<идентификатор или константа>
[!<идентификатор или константа> [ … ] ]
-
<название> [<выражение числового или строкового типа>]
Пример:
x = 2 y = 2 элем!x!y = 3 // или инд = СТР ( x ) + СТР ( y ) элем!инд = 3 // или элем!22 = 3 // или элем!2!2 = 3 // или элем!"22" = 3 // или элем!"2"!"2" = 3 элем [ "22" ] = 3 // или элем [ "2" + "2" ] = 3 // или x = 2 y = 2 элем [ СТР ( x ) + СТР ( y ) ] = 3 |
все это – допустимые обращения к одной и той же переменной |
Замечание.К одним и тем же индексным переменным допускается обращение как по первой схеме, так и по второй. Синтаксис выбирает программист из соображений удобства в конкретной ситуации.
Общие переменные
Общие переменные используются для обмена данными между библиотеками функций и формульной частью бланка. Определения общих переменных располагаются в библиотеках и начинаются с ключевого слова ПЕРЕМ.
Общая переменная создается при подключении библиотеки и существует до конца работы с бланком. После создания к общей переменной можно обращаться из формульной части и из любой функции любой подключенной библиотеки. Поэтому не допускается одновременно использовать библиотеки, содержащие определения общих переменных с одинаковыми именами.
Определения общих переменных бывают двух видов:
-
С принудительным заданием начального значения при каждом пересчете бланка.
-
Сохраняющие значение вне зависимости от пересчета бланка.
Соответствующие строки определений в библиотеке будут выглядеть следующим образом:
ПЕРЕМ <имя переменной> = <начальное значение>
ПЕРЕМ <тип переменной> : <имя переменной>
где
<начальное значение> |
– |
выражение, задающее тип общей переменной; |
<тип переменной> |
– |
ключевое слово описания типов. |
Пример:
----------------------- Библиотека MyLIB -----------------------------
// Общие переменные 1-го типа
ПЕРЕМ Номер = 1
ПЕРЕМ Дата = 20.04.98
ПЕРЕМ База = БД_ОТКРЫТЬ ("TEST")
ПЕРЕМ Номер_2 = Номер + 1
// Общие переменные 2-го типа
ПЕРЕМ ТИП_ЛОГИКА : Признак
ПЕРЕМ ТИП_ЧИСЛО : КоличПересч
ПЕРЕМ ТИП_ОПЕРАЦИЯ : Оп
----------------------- Формульная часть бланка ---------------------
ВЫЧИСЛИТЬ
ИСПОЛЬЗОВАТЬ ("MyLIB")// подключаем библиотеку и
// создаем общие переменные
Кол = База.ВСЕГО// обращаемся к общей базе
// данных
Номер = Номер + 1
КоличПересч = КоличПересч + 1
КОНЕЦ
Отличие общих переменных 1-го и 2-го типа в том, что переменная Номер по окончании каждого пересчета бланка будет равна 2, а значение переменной КоличПересч будет возрастать на единицу с каждым пересчетом. Заметим, что хотя значение переменной Номер в конце пересчета становится равным 2, но значение переменной Номер_2 не становится равным 3, т.к. на момент задания ее начального значения Номер=1.
Замечания.
- В библиотеке после ключевого слова ПЕРЕМ можно делать определение только одной общей переменной.
- Определение общей переменной должно занимать только одну строку.
Общие индексные переменные
Для организации обширных списков, индексов и тому подобного с глобальным доступом имеется возможность объявления глобальной индексной переменной. В отличие от обычной общей переменной, при объявлении индексной общей переменной никакая переменная не создается, а объявленный префикс запоминается, и все дальнейшие обращения к индексным переменным с таким префиксом будут относиться к общим переменным, т.е. их значения будут доступны из формульной части и из всех библиотечных функций.
Синтаксис объявления в библиотеке:
ПЕРЕМ <префикс>!
или
ПЕРЕМ <префикс>[ ]
Реальные переменные будут создаваться при присвоении значений индексным переменным с объявленным префиксом, что и определяет их тип.
<префикс>!<индекс> = <выражение>
или
<префикс>[<индекс>] = <выражение>
В случае интерпретатора выполняется аналогия имен, как и с обычными индексными переменными. То есть, если объявлен префикс сумма и переменной сумма!1 присвоено значение, то имя сумма1 будет известно, как общая переменная. Однако, компилятор не способен разбирать расчеты построенные на аналогии имен, так как откомпилированный код не содержит информации об именах переменных. Поэтому разработчикам на языке Инфо-Бухгалтера не рекомендуется использовать это свойство.
Константы
Константы предназначены для подстановки в выражения определенных неизменных значений. Константы могут быть числового, строкового и логического типов, а также типа дата.
Пример:
25 "руб." 01.01.00 ДА |
– константа числового типа – константа строкового типа – константа типа дата – константа логического типа |
Выражения
Выражения предназначены для расчета значений выходных параметров.
Выражения могут включать в себя переменные, константы и функции, между которыми допустимы следующие действия:
+– сложение;
–– вычитание;
*– умножение;
/– деление;
%– процент;
^– возведение в степень;
( )– порядок вычисления.
Пример:
Выражение | Результат вычислений |
2+2 (3+5)/8 200*5% 9^2 "Инфо"+"-"+"Бухгалтер" 01.02.99+3 КОП (115.67) / 100 |
4 1 10 81 "Инфо-Бухгалтер" 04.02.99 0.67 |
Логические выражения
Выражения логического типа могут состоять из условий, логических констант и логических действий.
Условие
Условие – это отношение между двумя выражениями:
<выражение 1> <символ отношения> <выражение 2>,
где <символ отношения>:
>– больше;
<– меньше;
>=– больше или равно (не меньше);
<=– меньше или равно (не больше);
=– равно;
<>– не равно.
Логические константы
ДА– истина;
НЕТ– ложь.
Логические действия
Логические действия имеют следующий приоритет:
НЕ– отрицание (инверсия);
И– логическое И;
ИЛИ– логическое ИЛИ.
Пример:
Выражение | Результат вычислений |
5 > 3 8 <= 3 01.02.98 < 01.03.98 10+5 = 5*3 5 < 3 ИЛИ 8 <> 3 5 < 3 И 8 <> 3 ДА ИЛИ 8 = 3 5 > 3 ИЛИ 3 = 2 И 8 < 3 НЕ 5 < 3 (5 > 3) = (8 = 3) (5 > 3) <> (8 = 3) |
ДАНЕТДАДАДАНЕТДАДАДАНЕТДА |
Операторы увеличения и уменьшения значения
Начиная с версии ИБ 8.0, для переменных типов число и дата введены операторы увеличения и уменьшения, которые изменяют значение переменной на единицу. Применение операторов увеличения и уменьшения позволяет избежать повторного поиска изменяемой переменной при использовании обычного выражения.
Синтаксис:
Увеличение на 1:<имя переменной>++
Уменьшение на 1:<имя переменной>– –
Пример:
и = и + 1// в обычной записи переменная и
// ищется два раза
и++// выполняется аналогичное действие, но
// переменная и ищется только один раз
Замечание:Изменяемая переменная должна быть определена выше путем присвоения значения или объявлена как общая.
Формулы
Формулы используются в формульном разделе бланка или в типовой операции для присвоения переменной значения некоторого выражения.
Общий вид формулы:
<имя переменной>=<выражение>
Если переменной уже присваивались какие-либо значения, то тип выражения должен соответствовать типу переменной.
Пример:
а=10// переменной а присваивается значение 10
графа=(а+4) /5// переменной графа присваивается
// значение (10+4)/5=2.8
дата_1=31.07.98-30// переменной дата_1 присваивается
// значение даты 01.07.98
сум_пр=СУММАП(а)+" руб."// переменной сум_пр
// присваивается строка
// "Десять руб."
Форматы ввода/вывода
Форматы ввода используются в типовых операциях (для всех версий) и бланках (только для DOS-версий) и позволяют задавать вид вводимых в поля ввода и выводимых в поля вывода бланка значений.
Форматы вывода используются только в DOS-версиях.
Можно использовать два варианта описания форматов полей ввода/вывода:
-
С числовым заданием длины полей ввода/вывода,
например:
#сумма:10 :3 :2 |
||||||
для вывода строки в несколько строк: максимальное количество строк |
||||||
для числа: количество знаков после запятой (по умолчанию – сколько необходимо); для строки: шаг по вертикали для вывода в несколько строк |
||||||
общая ширина поля |
||||||
переменная или выражение (для поля ввода – только переменная) |
||||||
признак поля |
-
С заданием формата ввода/вывода по маске,
например:
#налог## . ## |
|||||
символ разделителя ( . или , ) (только для вывода); |
|||||
заполнитель маски (то же, что и признак поля) |
|||||
переменная или выражение (для ввода – только переменная) |
|||||
признак поля (см. п.1); |
Примечание.При вводе числовой переменной по маске количество знаков после запятой зависит от признака «Копейки» в пункте Установка/ Настройки/Отчеты главного меню.
Признаки поля
1. Для ввода – тип переменной:
&–число
*–строка
~–дата (длина – 8 позиций)
^–строка – код счета (длина по умолчанию – 20 позиций), при заполнении такого поля можно пользоваться клавишей для подстановки кода счета из плана счетов;
*^–строка с возможностью подстановки значения из DBF-файла с помощью клавиши . Подробнее о графе такого типа смотрите «Графа с использованием вызова функций»);
*~–строка с возможностью вызова библиотечной функции с помощью клавиши . Подробнее о графе такого типа смотрите «Графа с выбором из базы данных»);
-
Для вывода – спецификация:
$ |
– |
слева выводится плавающий знак $ |
@ |
– |
неиспользованные позиции заполняются нулями |
# |
– |
неиспользованные позиции заполняются пробелами |
Примеры использования полей ввода/вывода
Поля ввода с числовым заданием длины полей: |
||
&сумма:9:2 |
– |
ввод числовой переменной сумма (9 позиций, 2 знака после запятой) |
*коммент:20 |
– |
ввод строковой переменной коммент (длина поля – 20 символов) |
^корр_сч |
– |
ввод строковой переменной кода счета корр_сч (длина – 20 символов) |
~дата_1 |
– |
ввод переменной типа дата дата_1 (длина всегда 8 позиций: дд.мм.гг) |
Поля ввода с заданием формата ввода по маске: |
||
&сумма&&& |
– |
ввод числовой переменной сумма (9 позиций, 2 знака после запятой); |
*коммент************ |
– |
ввод строковой переменной коммент (длина поля – 20 символов) |
Поля вывода с заданием формата вывода по маске: |
||
налог=768.76 |
||
#налог#.## #налог# #налог #налог#,## @налог@.@@ $налог#.## #500*3#,###.## #ДАТА (1,5,98) |
// Результат: // Результат: // Результат: // Результат: // Результат: // Результат: // Результат: // Результат: |
768.76 769 769.76 768,76 0000768.76 $ 768.76 1,500.00 01.05.98 |
Поля вывода с числовым заданием длины полей: |
||
налог=768.76 сп="Четыреста сорок пять тысяч двести два" |
||
#налог #налог:8 #налог:8:2 #налог:8:1 @налог:8:2 $налог:8:2 #3/4:8:2 #сп:37:1 |
// Результат: // Результат: // Результат: // Результат: // Результат: // Результат: // Результат: // Результат: |
768.76 768.76 768.76 768.8 00768.76 $768.76 0.75 Четыреста сорок пять тысяч двести два |
Выражения типа дата выводятся в виде дд.мм.гг, независимо от заданного формата.
При выводе строки без задания длины поля и маски строка выводится полностью, начиная с признака поля #. При задании длины поля цифрами строка выравнивается по правому краю заданного поля. При задании маски строка выравнивается по левому краю поля, лишние символы строки отбрасываются.
Пример:
с="Двадцать пять" |
||
#с #с:20 |
Результат: Результат: |
Двадцать пять Двадцать пять |
20 позиций |
||
#с######## |
Двадцать п |
|
10 позиций |
Графа с использованием вызова функции
Для подстановки различных строковых значений в поля ввода бланка или типовой операции был создан специальный тип графы.
Этот тип графы существует в Windows-версиях Инфо-Бухгалтера, начиная с версии 7.5, и в DOS-версиях, начиная с 3.5.
При нажатии на клавишу или мышью на кнопку со стрелкой, происходит вызов указанной функции из указанной библиотеки.
Поле ввода с вызовом функции из библиотеки определяется следующей строкой:
*~<имя переменной>( <имя файла библиотеки>,
<имя функции> ),
за которой могут следовать символы * или описатель формата.
Заголовок функции для вызова из графы должен быть строго определенного вида:
ФУНКЦИЯ ТИП_ЛОГИКА : <имя>
(ПЕРЕМ ТИП_СТРОКА : <Строка>)
В качестве параметра-переменной <Строка> передается текущее значение поля ввода. Действие после выхода из функции определяется возвращенным ей результатом.
Если функция возвратила ДА, то в поле ввода подставляется значение параметра-переменной <Строка>, а если функция возвратила НЕТ, то значение поля ввода остается без изменений.
Пример:
*~Назв("MYLIB", "ПроцНазв")*************** |
||||||
символы, определяющие длину поля |
||||||
имя функции |
||||||
имя библиотеки функций |
||||||
имя строковой переменной |
||||||
описатель типа входного поля |
а в библиотеке MyLib.ibl функция ПроцНазв описана, к примеру, так:
ФУНКЦИЯ ТИП_ЛОГИКА :
ПроцНазв(ПЕРЕМ ТИП_СТРОКА : Стр)
ПроцНазв=НЕТ
БД_ОТКРЫТЬ ("TEST")// открываем базу данных
N=БД_ВЫБОР// выбираем из нее запись
ЕСЛИ N > 0 ТО// если выбрана, то
ПроцНазв=ДА// возвращаемое значение ДА
БД_ПЕРЕЙТИ (N)// переходим на выбранную запись
Стр=БД_ПОЛЕ ("NAME")// изменяем параметр Стр
КОНЕЦ_ЕСЛИКОНЕЦ_ФУНКЦИИ
Графа с выбором из базы данных
Для использования окна выбора из базы данных при заполнении входных полей бланка был введен новый тип входного поля. Фактически это поле ввода является обычным полем ввода строки, но с возможностью подстановки этой строки в соответствии со значением какого-либо поля в базе данных. Вне зависимости от типа поля, результат выбора подставляется в строковом виде.
Этот тип графы существует в Windows-версиях Инфо-Бухгалтера, начиная с версии 7.5, и в DOS-версиях, начиная с 3.5.
В бланках и типовых операциях поле ввода с подстановкой из базы данных определяется следующей строкой:
*^<имя переменной> ( <имя файла>, <имя поля> ),
за которой могут следовать символы * или описатель формата.
Пример:
Для иллюстрации воспользуемся базой данных сотрудников. Тогда для подстановки фамилий и имен сотрудников в строковую переменную Сотр надо описать поле:
*^Сотр("PEOPLE","FIO")*************** |
||||||
символы, определяющие длину поля |
||||||
название поля, значение которого будет подставляться |
||||||
имя DBF-файла |
||||||
имя строковой переменной |
||||||
описатель типа входного поля |
В заголовке окна выбора из базы данных при подстановке во входное поле будет находиться имя строковой переменной, а столбцы таблицы будут содержать все поля DBF-файла и называться в соответствии с именами полей.
Шаблоны
Шаблоны позволяют выделить группу сходных по написанию строк. Как правило, шаблоны содержат один или несколько символов *, обозначающих переменную часть строк.
В одном шаблоне может содержаться несколько вариантов шаблонов, разделяемых точкой с запятой.
Примеры шаблонов:
Шаблон | Значение |
*Иванов* |
Все строки, содержащие подстроку Иванов: «Выдано Иванову на …» «Получено от Иванова …» и т.д. |
68/*; 69/* |
Все субсчета к счетам 68 и 69: 68/01 68/02 69/01 69/02 и т.д. |
Ключевые слова
Ключевые слова используются для обозначения границ формульного раздела бланка или типовой операции и для выполнения определенных действий при обработке формульного раздела.
Ключевое слово | Краткое описание |
БЫСТР |
Модификатор загрузки функции |
ВВЕСТИ |
Редактирование полей ввода (только в типовых операциях) |
ВЫХОД |
Немедленное прекращение работы функции из библиотеки |
ВЫЧИСЛИТЬ |
Начало формульного раздела (в типовых операциях и бланках DOS) |
КОНЕЦ |
Конец формульного раздела (в типовых операциях и бланках DOS) |
ДА, НЕТ |
Логические константы |
ЕСЛИ … ТО | |
ИНАЧЕ |
Обработка условия |
КОНЕЦ_ЕСЛИ | |
И, ИЛИ, НЕ |
Логические операции |
ИСПОЛЬЗОВАТЬ |
Подключение библиотеки функций |
ОПЕРАЦИЯ |
Начало описания типовой операции |
ПЕРЕМ |
Задание общей переменной и указание способа передачи параметров функции в библиотеке |
СТОП |
Досрочное прекращение выполнения цикла |
СТОП_ВСЕ |
Прекращение расчета бланка вне зависимости от того, на каком уровне вложенности цикла или функции находятся вычисления |
ФУНКЦИЯ |
Начало определения функции |
КОНЕЦ_ФУНКЦИИ |
Конец определения функции |
ЦИКЛ … |
Организация циклических вычислений (обработка таблиц, журнала хозяйственных операций и т.п.) |
ДЛЯ |
цикл с перебором всех значений в заданном диапазоне |
ПОКА |
цикл, продолжающийся до тех пор, пока выполняется некоторое условие |
СЧЕТА |
цикл с перебором всех счетов, подходящих к заданному шаблону |
КОНЕЦ_ЦИКЛА |
Обозначение окончания цикла |
ТИП_… | ключевые слова описания типов |
ТИП_ВРЕМЯ |
временной тип |
ТИП_ДАТА |
календарный тип |
ТИП_ЛОГИКА |
логический тип |
ТИП_СТРОКА |
строковый тип |
ТИП_ЧИСЛО |
числовой тип |
ТИП_БД |
тип объекта База данных |
ТИП_SQL |
тип объекта База данных с SQL |
ТИП_ОПЕРАЦИЯ |
тип объекта Операция |
ТИП_ПРОВОДКА |
тип объекта Проводка |
ТИП_СПИСОК |
тип объекта Список |
ТИП_СЧЕТ |
тип объекта Счет |
ТИП_ФАЙЛ |
тип объекта Файл |
ТИП_ФИЛЬТР |
тип объекта Фильтр |
ТИП_ШРИФТ |
тип объекта Шрифт |
Описание типов применяется в заголовках библиотечных функций для указания типа результата и типов параметров функции.
При использовании конструктора СОЗДАТЬ, применяются ключевые слова объектных типов для указания типа создаваемого объекта.
Также эти ключевые слова используются для указания типа общей переменной, которая должна сохранять значение при пересчете бланка.
Ключевое слово БЫСТР
Для библиотечных функций используется директива БЫСТР, которая повышает скорость исполнения функций в режиме интерпретатора примерно на 60%.
При использовании директивы БЫСТР текст функции хранится в оперативной памяти, т.е. не считывается из библиотеки при втором, третьем и т.д. вызовах.
Введено с версий ИБ 7.5х для Windows и 3.52 для DOS.
Использование:
ФУНКЦИЯ [ БЫСТР ][<тип объекта>] [<тип результата>:]
[ (<параметры>) ]
Пример:
ФУНКЦИЯ БЫСТР Скобки ( ПЕРЕМ ТИП_СТРОКА : Ст)
Ст = "(" + Ст + ")"// изменение переменной Ст
КОНЕЦ_ФУНКЦИИ
Ключевое слово ВВЕСТИ
Использование ключевого слова ВВЕСТИ предоставляет возможность редактировать значения полей ввода во время расчета типовой операции (например, для придания входным полям значений по умолчанию).
Использование:
ВВЕСТИ[ ([<поле ввода 1> [, <поле ввода 2> [ … ] ] ]
[, <редактирование>] ) ],
где
<поле ввода n> |
– |
имя поля ввода; (список полей ввода должен быть в квадратных скобках, например, [корр_сч, сумма] ) |
<редактирование> |
– |
флаг логического типа, запрещающий редактировать указанные поля ввода (по умолчанию – ДА, т.е. все поля доступны для редактирования). |
Если имя поля ввода не указано, то редактируются все поля ввода типовой операции.
При указании списка полей ввода все остальные поля становятся недоступными для редактирования. При задании признака <редактирование> = НЕТ поля, указанные в списке становятся недоступными для редактирования, а все остальные активными.
Пример:
ОПЕРАЦИЯ Реализация : оплачена задолженность
Оплата на (счет): ^корр
Покупатель: ^пок
Сумма (с НДС): &сумма&&&&&&&&
НДС %: &нд:5
Дата: ~дата
Документ: *докум:15
Оплачено: *реал1:60
: *реал2:60
ВЫЧИСЛИТЬ
р=МЕТОД_РЕАЛ // значение МЕТОД_РЕАЛ из определений
пок="62/"
корр="51"
дата=ДАТА_ТЕК
реал=" продукция"
нд=НДС*100// значение НДС из определений
ВВЕСТИ ([дата], НЕТ)// изменяются все поля, кроме дата
нНДС=сумма*нд/(100+нд)
ПРОВОДКА (корр, пок, сумма, докум, дата,
"Оплачено: "+реал1+" "+реал2)
ЕСЛИ р=1 ТО
ПРОВОДКА ("76/НДС", "68/НДС", нНДС)
КОНЕЦ_ЕСЛИКОНЕЦ
Ключевое слово ВЫХОД
Ключевое слово ВЫХОД используется для осуществления немедленного прекращения работы функции из библиотеки.
Введено с версий ИБ 7.5 для Windows и 3.5 для DOS.
Использование:
ВЫХОД
Пример:
ФУНКЦИЯ ТИП_ЧИСЛО : ДелПр ( ТИП_ЧИСЛО : a, b )
ДелПр = 0// начальное значение результата
ЕСЛИ b = 0 ТО
ВЫХОД// в особой ситуации – выход из функции
КОНЕЦ_ЕСЛИ
ДелПр = a / b// нормальное действие
КОНЕЦ_ФУНКЦИИ
Ключевое слово ВЫЧИСЛИТЬ
Ключевое слово ВЫЧИСЛИТЬ указывает на начало типовой операции. Действия типовой операции могут начинаться непосредственно со следующей строки. Это слово должно быть первым в строке (не обязательно с первой позиции).
Использование:
ВЫЧИСЛИТЬ
Пример:
ВЫЧИСЛИТЬ
СуммаНДС = сумма*НДС / (100 + НДС)
Ключевое слово ДА
См. «Логические константы» 87.
Ключевое слово ДЛЯ
См. «ЦИКЛ ДЛЯ» 112.
Ключевое слово ЕСЛИ
При необходимости выполнить различные действия, в зависимости от некоторого условия, можно использовать ключевое слово ЕСЛИ.
Использование:
ЕСЛИ <условие> ТО// Полная альтернатива
<действие 1>;
[<действие 2>;
[…]
ИНАЧЕ
<действие 1>;
[<действие 2>;
[…]
КОНЕЦ_ЕСЛИ
ЕСЛИ <условие> ТО// Неполная альтернатива
<действие 1>;
[<действие 2> …]
КОНЕЦ_ЕСЛИ
где <условие> – выражение логического типа.
Пример:
ЕСЛИ а>2 ТО
б=8
КОНЕЦ_ЕСЛИ
ЕСЛИ стр1<>"" ТО
ЕСЛИ стр2<>"" ТО
ПРОВОДКА("26", "50", а, ДАТА_ТЕК, стр1, стр2)
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЕСЛИ
Ключевое слово И
См. «Логические действия» 88.
Ключевое слово ИЛИ
См. «Логические действия» 88.
Ключевое слово ИНАЧЕ
Ключевое слово ИНАЧЕ используется для обозначения окончания одной ветви условного оператора ЕСЛИ.
Использование:
ИНАЧЕ
См. «Ключевое слово ЕСЛИ» 103.
Ключевое слово ИСПОЛЬЗОВАТЬ
Ключевое слово ИСПОЛЬЗОВАТЬ применяется для подключения библиотеки функций.
Введено с версий ИБ 7.5 для Windows и 3.5 для DOS.
Использование:
ИСПОЛЬЗОВАТЬ (<библиотека 1> [,<библиотека 2> [, …] ] )
где <библиотека n> – строковые выражения, представляющие собой имена библиотек.
Примеры:
// подключается библиотека Methods.ibl
ИСПОЛЬЗОВАТЬ ("Methods")
// подключаются библиотеки Func1.ibl и Methods.ibl
ИСПОЛЬЗОВАТЬ ("Func1", "Methods")
Ключевое слово КОНЕЦ
Ключевое слово КОНЕЦ указывает на завершение формульного раздела типовой операции. Содержащиеся в формульном разделе действия должны заканчиваться на предшествующей строке. Это слово должно быть первым в строке (не обязательно с первой позиции).
Использование:
КОНЕЦ
Пример:
ВЫЧИСЛИТЬ
СуммаНДС = сумма*НДС / ( 100+НДС )
КОНЕЦ
Ключевое слово КОНЕЦ_ЕСЛИ
Ключевое слово КОНЕЦ_ЕСЛИ используется для обозначения окончания условного оператора ЕСЛИ.
Использование:
КОНЕЦ_ЕСЛИ
Ключевое слово КОНЕЦ_ФУНКЦИИ
Ключевое слово КОНЕЦ_ФУНКЦИИ используется для обозначения окончания описания функции в библиотеке.
Введено с версий ИБ 7.5 для Windows и 3.5 для DOS.
Использование:
КОНЕЦ_ФУНКЦИИ
Ключевое слово КОНЕЦ_ЦИКЛА
Ключевое слово КОНЕЦ_ЦИКЛА используется для обозначения окончания цикла.
Использование:
КОНЕЦ_ЦИКЛА
Ключевое слово НЕ
См. «Логические действия» 88.
Ключевое слово НЕТ
См. «Логические константы» 87.
Ключевое слово ОПЕРАЦИЯ
Ключевое слово ОПЕРАЦИЯ указывает на начало описания типовой операции. Это слово должно быть первым в строке (не обязательно с первой позиции).
Использование:
ОПЕРАЦИЯ <название раздела> : <название операции>
Пример:
ОПЕРАЦИЯ Пример : вычисление
Сумма: &сумма&&&&&
ВЫЧИСЛИТЬВВЕСТИ
СуммаНДС = сумма*НДС / (100+НДС )
СООБЩЕНИЕ ("Сумма НДС="+СТР (СуммаНДС) )
КОНЕЦ
Ключевое слово ПЕРЕМ
Ключевое слово ПЕРЕМ используется в двух случаях:
-
Для задания общей переменной в библиотеке.
-
Для обозначения группы параметров-переменных в описании параметров функции в библиотеке.
Введено с версий ИБ 7.5 для Windows и 3.5 для DOS.
Использование:
ПЕРЕМ
Подробнее см. «Параметры функции» 247.
Ключевое слово ПОКА
См. «ЦИКЛ ПОКА» 113.
Ключевое слово СТОП
Ключевое слово СТОП применяется для досрочного прекращения выполнения цикла. Если слово применено вне цикла, то происходит завершение обработки формульной части.
Использование:
СТОП
Пример:
ВЫЧИСЛИТЬ
и=1
ЦИКЛ СЧЕТА (сч=”70/*”)// Обрабатываются первые 20
// …// счетов заданного шаблона
ЕСЛИ и=>20 ТО
СТОПКОНЕЦ_ЕСЛИ
и=и+1
КОНЕЦ_ЦИКЛАКОНЕЦ
Ключевое слово СТОП_ВСЕ
Ключевое слово СТОП_ВСЕ позволяет прекратить расчет бланка вне зависимости от того, на каком уровне вложенности цикла или функции находятся вычисления.
Введено с версий ИБ 7.5 для Windows и 3.5 для DOS.
Использование:
СТОП_ВСЕ
Ключевое слово СЧЕТА
См. «ЦИКЛ СЧЕТА» 113.
Ключевое слово ТИП_SQL
Тип объекта База данных с поддержкой SQL (см. «Библиотечные функции» 244).
Введено с версии ИБ 8.0 для Windows.
Ключевое слово ТИП_БД
Тип объекта База данных (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_ВРЕМЯ
Временной тип (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_ДАТА
Календарный тип (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_ЛОГИКА
Логический тип (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_ОПЕРАЦИЯ
Тип объекта Операция (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_ПРОВОДКА
Тип объекта Проводка (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_СПИСОК
Тип объекта Список (см. «Библиотечные функции» 244).
Введено с версий ИБ 8.0 для Windows.
Ключевое слово ТИП_СТРОКА
Символьный тип (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_СЧЕТ
Тип объекта Счет (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_ФАЙЛ
Тип объекта Файл (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_ФИЛЬТР
Тип объекта Фильтр (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_ЧИСЛО
Числовой тип (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Ключевое слово ТИП_ШРИФТ
Тип объекта Шрифт (см. «Библиотечные функции» 244).
Введено с версии ИБ 8.2 для Windows.
Ключевое слово ТО
См. «Ключевое слово ЕСЛИ» 103.
Ключевое слово ФУНКЦИЯ
Ключевое слово ФУНКЦИЯ указывает на начало описания функции (см. «Библиотечные функции» 244).
Введено с версии ИБ 7.5 для Windows и 3.5 для DOS.
Использование:
ФУНКЦИЯ
Пример:
ФУНКЦИЯ Скобки ( ПЕРЕМ ТИП_СТРОКА : Ст )
Ст = "(" + Ст + ")"// изменение переменной Ст
КОНЕЦ_ФУНКЦИИ
Ключевое слово ЦИКЛ
Ключевое слово ЦИКЛ применяется для организации циклических вычислений (обработка таблиц, журнала хозяйственных операций и т.п.) и используется в следующих сочетаниях, определяющих тип цикла:
ЦИКЛ ДЛЯ |
– |
цикл с перебором всех значений в заданном диапазоне; |
ЦИКЛ ПОКА |
– |
цикл, продолжающийся до тех пор, пока выполняется некоторое условие; |
ЦИКЛ СЧЕТА |
– |
цикл с перебором всех счетов, подходящих к заданному шаблону. |
Общий вид циклического блока:
ЦИКЛ <тип цикла> (<параметры цикла>)
//…
// <действия>
//…
КОНЕЦ_ЦИКЛА
Циклы могут иметь неограниченную вложенность и применяться как в формульной части бланка, так и в самом тексте бланка (только для бланков DOS-версий). Для прекращения цикла до наступления основного условия прекращения цикла, можно использовать ключевое слово СТОП.
ЦИКЛ ДЛЯ
ЦИКЛ ДЛЯ применяется для организации цикла с перебором всех значений в заданном диапазоне.
Использование:
ЦИКЛ ДЛЯ (<перем>=<нач. значение>, <кон. значение>
[,<шаг цикла>] [,<комментарий>] ),
где
<перем> |
– |
управляющая переменная числового типа или типа дата, изменяющая свое значение при каждом проходе цикла; |
<нач. значение>, <кон. значение> |
– |
выражения числового типа или типа дата, определяющие соответственно начальное и конечное значения цикла; |
<шаг цикла> |
– |
необязательный параметр числового типа, определяющий приращение значения переменной. По умолчанию шаг цикла равен 1. Шаг цикла может быть и отрицательным. В этом случае подразумевается, что конечное значение меньше начального значения. |
<комментарий> |
– |
необязательный параметр строкового типа, определяющий текст, который будет выводиться в строке статуса во время расчета бланка. Например, "Индексация БД …". |
Пример:
// вычисляется суммарный оборот по всему журналу
оборот=0
ЦИКЛ ДЛЯ (опер=1, ОПЕР_ВСЕГО) // цикл по операциям
ЦИКЛ ДЛЯ (пр=1, ОПЕР_ПРОВ (опер) )
оборот=оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЦИКЛАКОНЕЦ_ЦИКЛА
ЦИКЛ ПОКА
ЦИКЛ ПОКА применяется для организации цикла, продолжающегося, пока выполняется заданное условие.
Использование:
ЦИКЛ ПОКА (<условие>),
где <условие> – выражение логического типа.
Пример:
// вычисляется суммарный оборот по всему журналу
оборот=0
опер=1// цикл по всем операциям
ЦИКЛ ПОКА (опер <= ОПЕР_ВСЕГО)
пр=1// цикл по всем проводкам в операции
ЦИКЛ ПОКА (пр <= ОПЕР_ПРОВ (опер))
оборот=оборот + ПРОВ_СУМ (опер, пр)
пр=пр+1
КОНЕЦ_ЦИКЛА
опер=опер+1
КОНЕЦ_ЦИКЛА
ЦИКЛ СЧЕТА
ЦИКЛ СЧЕТА применяется для организации цикла с перебором всех счетов, удовлетворяющих заданному шаблону.
Использование:
ЦИКЛ СЧЕТА (<номер счета> = <шаблон>),
где
<номер счета> |
– |
переменная строкового типа, принимающая значение номеров счетов, удовлетворяющих шаблону. |
Пример:
// подсчет количества субсчетов последнего уровня к счету 70
кол_суб=0
ЦИКЛ СЧЕТА (счет = "70/*" )// цикл по всем субсчетам
ЕСЛИ НЕ ЕСТЬ_СУБСЧ (счет) ТО
кол_суб = кол_суб + 1
КОНЕЦ_ЕСЛИКОНЕЦ_ЦИКЛА
Обзор встроенных функций
Функции предназначены для доступа к различным данным в программе, для выполнения некоторых преобразований данных и для обработки условий, необходимых при заполнении первичных и отчетных документов.
Функции могут применяться в выражениях, а также в полях вывода бланка. В настоящее время, программа Инфо-Бухгалтер поддерживает более 160 встроенных функций, которые могут быть разбиты на несколько групп.
Функции для работы с базами данных
Функция | Краткое описание |
БД_ВСЕГО |
количество записей в открытой базе данных |
БД_ВЫБОР |
просмотр и выбор записи из базы данных в диалоговом окне |
БД_ЗАКРЫТЬ |
закрытие ранее открытой базы данных с сохранением сделанных в ней изменений |
БД_ЗАМЕНИТЬ |
обновление текущей записи в базе данных |
БД_ЗАПИСАТЬ |
добавление текущей записи в базу данных (в конец БД) |
БД_ОТКРЫТЬ |
открытие для чтения или дополнения базы данных в формате DBF |
БД_ПЕРЕЙТИ |
переход к записи с нужным номером в базе данных (по номеру) |
БД_ПОЛЕ |
получение значения из определенного поля в текущей записи базы данных; занесение нового значения в поле текущей записи базы данных |
БД_РЕДАКТОР |
редактирование, добавление и удаление записи в диалоговом окне |
БД_СОЗДАТЬ |
создание новой базы данных в формате DBF |
БД_СОРТ |
сортировка базы данных по указанным полям |
БД_СЧИТАТЬ |
считывание следующей записи из базы данных |
БД_ТЕКУЩАЯ |
определение номера текущей записи БД |
ЕСТЬ_BDE |
позволяет определить, установлен ли на компьютере BDE |
ПОЛЬЗОВАТЕЛЬ |
позволяет получить имя текущего пользователя в сетевой версии |
РЕД_ПОЛЕ |
позволяет получить значения полей в отредактированной пользователем записи до ее сохранения в БД или удаляемой записи перед ее удалением |
УСТ_РЕД_ПОЛЕ |
позволяет записать значения полей в буфер редактируемой в функции БД_РЕДАКТОР записи |
SQL_ДАТА |
возвращает представление даты, установленное в BDE |
Функции ввода/вывода информации и работы с файлами
Функция | Краткое описание |
ВВЕСТИ_ЗНАЧЕНИЕ |
ввод значения (строка, дата, число, значение из списка) |
ВВОД_ЗНАЧЕНИЯ |
ввод значения без возможности прервать расчет |
ВОПРОС |
ввод логического значения |
ВСТАВИТЬ_РАМКУ |
добавление рамки в форме бланка |
ВСТАВИТЬ_СТРОКУ |
добавление строки в заданную позицию бланка |
ВЫБОР_ДИР |
выбор каталога |
ВЫБОР_ФАЙЛА |
выбор файла на диске |
ВЫВЕСТИ |
вывод значения переменной в указанную позицию бланка |
ВЫПОЛНИТЬ |
выполнение исполняемого файла (.exe, .com, .bat) |
ДИР_DBF |
возвращает путь к директории баз данных dBase (.dbf) |
ДИР_WIN |
возвращает полный путь к директории Microsoft® Windows |
ДИР_АРХИВОВ |
возвращает путь к директории архивов (.bar) |
ДИР_БАЗЫ |
возвращает путь к директории баз данных Paradox (.db) |
ДИР_БИБЛ |
возвращает путь к директории библиотек (.ibl) |
ДИР_БЛАНКОВ |
возвращает путь к директории бланков (.blw) |
ДИР_ВЫВОДА |
возвращает путь к директории программ (.ibx) |
ДИР_ИСХТЕКСТОВ |
возвращает путь к директории исходных текстов (.src) |
ДИР_ФИЛЬТРОВ |
возвращает путь к директории фильтров (.flt) |
ЗВУК |
позволяет проигрывать звуковые файлы (.wav) |
КОНЕЦ_СТРАНИЦЫ |
добавление разрыва страницы после указанной строки бланка |
СОЗДАТЬ_ДИР |
создание подкаталогов с несколькими уровнями вложенности |
СООБЩЕНИЕ |
вывод сообщения в диалоговом окне |
СТАРТ_ПРОГ |
запуск откомпилированного текста |
СТРОКА_СТАТУСА |
позволяет выводить текст в строку статуса (состояния) в процессе расчета |
СУЩ_ФАЙЛ |
проверка существования файла с указанным именем |
ТЕК_ДИР |
возвращает полный путь к текущей директории |
УДАЛИТЬ_СТРОКУ |
удаление указанной строки из бланка |
ФАЙЛ_КОПИРОВАТЬ |
копирование файла |
ФАЙЛ_ПЕРЕИМЕНОВАТЬ |
переименование файла |
ФАЙЛ_ТИПОП |
возвращает имя используемого файла типовых операций |
ФАЙЛ_УДАЛИТЬ |
удаление файла |
Математические функции
Функция | Краткое описание |
АБС |
абсолютное значение (модуль) числа |
ЛОГ |
натуральный логарифм ln(x) |
МАКС |
максимальное из двух значений |
МИН |
минимальное из двух значений |
СЛУЧ_ЧИСЛО |
генерация случайного числа |
ЭКСП |
экспонента числа exp(x)=e^x |
Функции доступа к журналу хозяйственных операций и работа с фильтром
Функция | Краткое описание |
Операции | |
ЗАП_ОПЕР |
позволяет записать хозяйственную операцию |
ЗАП_ОПЕР! |
аналогична ЗАП_ОПЕР, но в этом случае диалог редактирования хозяйственной операции не выводится, и операция добавляется без дополнительных запросов |
ОПЕР_ВСЕГО |
возвращает количество хозяйственных операций в журнале |
ОПЕР_ДАТА |
возвращает дату хозяйственной операции |
ОПЕР_ДОК |
возвращает номер документа хозяйственной операции |
ОПЕР_ОТ |
возвращает номер первой хозяйственной операции за некоторую дату |
ОПЕР_ПРОВ |
возвращает количество проводок в хозяйственной операции |
ОПЕР_РМ |
возвращает номер рабочего места хозяйственной операции |
ОПЕР_СОД |
возвращает содержание хозяйственной операции |
УДАЛ_ОПЕР |
удаляет указанную хозяйственную операцию |
Проводки | |
ПРОВ_ДЕБ |
возвращает счет дебета в проводке |
ПРОВ_КОЛ |
возвращает количество в проводке |
ПРОВ_КРЕД |
возвращает счет кредита в проводке |
ПРОВ_СУМ |
возвращает сумму в проводке |
ПРОВОДКА |
позволяет создавать новые проводки |
ПРОВОДКАГР |
позволяет создавать группу проводок |
Фильтр | |
ВКЛ_ФИЛЬТР |
позволяет включить фильтр |
ВЫКЛ_ФИЛЬТР |
позволяет выключить фильтр |
ФИЛЬТР_ВКЛ |
позволяет проверить, происходит ли расчет в режиме отфильтрованного журнала хозяйственных операций |
Функции доступа к оборотам и остаткам
Функция | Краткое описание |
Обороты | |
ОБД |
оборот по дебету счета |
ОБД_К |
оборот по дебету счета за определенный период времени |
ОБК |
оборот по кредиту счета |
ОБК_К |
оборот по кредиту счета за определенный период времени |
Остатки | |
ОСД |
остаток дебета счета |
ОСДН |
входящий остаток дебета счета |
ОСД_К |
величина дебетового остатка счета на определенный момент времени в количественном измерении |
ОСДН_К |
величина дебетового остатка счета на начало отчетного периода в количественном измерении |
ОСК |
остаток кредита счета |
ОСКН |
входящий остаток кредита счета |
ОСК_К |
величина кредитового остатка счета на определенный момент времени в количественном измерении |
ОСКН_К |
величина кредитового остатка счета на начало отчетного периода |
Исходные остатки | |
ИСХ_ОСТ |
исходный остаток счета в суммовом выражении |
ИСХ_ОСТ_К |
исходный остаток счета в количественно-суммовом выражении |
ИСХ_ОСТ_ЦЕНА |
средняя или фиксированная цена по исходным остаткам счета |
Функции доступа к плану счетов
Функция | Краткое описание |
ВЫБОР_СЧЕТА |
позволяет выбрать код счета из плана счетов |
ДОБАВИТЬ_СЧЕТДОБАВИТЬ_СЧЕТ! |
добавляют счет в план счетов |
ЕДИН |
возвращает единицу измерения счета |
ЕСТЬ_СУБСЧ |
позволяет проверить наличие субсчетов у конкретного счета |
НАЗВ |
возвращает название счета |
ПОДСЧ |
позволяет выделить субсчета из кода счета |
СЧЕТ_АКТ |
позволяет проверить активность счета |
СЧЕТ_ПАС |
позволяет проверить пассивность счета |
СЧЕТ_КОЛ |
позволяет проверить, ведется ли по счету количественно-суммовой учет |
СЧЕТ_СУЩ |
проверяет наличие счета в плане счетов |
СЧЕТ_ФИКСЦ |
проверяет использование фиксированной цены у количественно-суммового счета |
УРОВЕНЬ |
позволяет узнать уровень (порядок) счета |
УДАЛ_СЧЕТ |
позволяет удалить счет последнего уровня |
ЦЕНА |
возвращает цену единицы измерения счета |
Функции преобразования данных
Функция | Краткое описание |
Преобразование чисел | |
ДРОБ |
выделение дробной части числа |
ОКРУГЛЕНИЕ |
округлить число с заданием количества знаков |
КОП |
копейки от суммы (два десятичных знака) |
РУБ |
рубли от суммы (целую часть) |
СТР |
преобразование числа в строку |
СТР0 |
преобразование числа в строку (с заполнением ведущих пробелов нулями) |
СТР_ЗНАЧ |
преобразование числа в строку без разделителей разрядов |
СИМВ |
получение символа с ASCII-кодом равным указанному числу |
Преобразования строк | |
ДЛИНА |
возвращает длину строки в символах |
ЗАГЛ |
преобразовывает прописные буквы в заглавные |
ЗАМ |
позволяет заменить все подстроки в строке |
ЗНАЧ |
преобразовывает значение строки в число |
ЗНАЧ_ТЕСТ |
проверяет возможность преобразования значения строки в число |
КОД_СИМВ |
возвращает ASCII-код первого символа строки |
ПОЗ |
возвращает позицию подстроки в строке |
ПОДСТР |
позволяет выделить подстроку из строки |
ПРОП |
преобразовывает заглавные буквы в прописные |
ШАБЛОН |
преобразование задания множества в строку |
Данные прописью | |
КОПП |
слово «копейка» с зависящим от суммы окончанием |
РУБП |
слово «рубль» с зависящим от суммы окончанием |
СУММАП |
сумма прописью |
СУММАП_АНГЛ |
сумма прописью на английском языке |
Функции доступа к календарю и часам
Функция | Краткое описание |
ВРЕМЯ |
преобразование часов, минут и секунд во время |
ВРЕМЯ_ТЕК |
текущее время |
ГОД |
выделение года из даты |
ДАТА |
преобразование дня, месяца и года в дату |
ДАТА_КОН |
дата окончания отчетного периода |
ДАТА_НАЧ |
дата начала отчетного периода |
ДАТА_ТЕК |
текущая дата |
ДАТАП |
дата прописью |
ДАТАП0 |
дата прописью (с первым 0) |
ДЕНЬ |
выделение дня недели из даты |
ДЕНЬП |
день недели прописью |
МЕС |
выделение месяца из даты |
МЕСП |
название месяца прописью |
МИНУТЫ |
выделение минут из времени |
СЕКУНДЫ |
выделение секунд из времени |
ЧАС |
выделение часов из времени |
ЧИСЛО |
выделение дня из даты |
Прочие функции
Функция | Краткое описание |
? (вопросительный знак) |
выполняет вычисления в зависимости от некоторого условия |
БЛАНК |
выполняет один бланк из другого бланка |
ВЕРСИЯ |
возвращает номер версии программы в виде текстовой строки |
ВЫЗОВ |
позволяет вызывать функции из внешних DLL |
ВЫРАЖЕНИЕ |
вычисляет значение выражения заданного строковой переменной или константой |
ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ |
позволяет добавить новое определение к списку определений |
ДОБАВИТЬ_РЕКВИЗИТ |
позволяет добавить новый реквизит к списку реквизитов |
ОПРЕДЕЛИТЬ |
позволяет определить переменные и функции, используемые в функции ВЫРАЖЕНИЕ |
ПРАЗДНИК |
позволяет узнать, является ли заданный день праздничным |
СБРОС |
позволяет осуществить сброс всех элементов индексной переменной |
СУЩ_ОПРЕДЕЛЕНИЕ |
проверяет существование определения с указанным именем |
СУЩ_ПЕРЕМ |
проверяет существование переменной с указанным именем |
СУЩ_РЕКВИЗИТ |
проверяет существование реквизита с указанным именем |
СУЩ_ФУНК |
проверяет существование функции с указанным именем |
ТИП_ОПЕР |
выполняет типовую операцию из бланка |
ТИП_ПЕРЕМ |
позволяет определить тип переменной |
ФОКУС |
позволяет устанавливать фокус ввода в бланке на одну из граф ввода |
Подробное описание встроенных функций
Ниже дано подробное описание функций, приведенных в алфавитном порядке.
Функция ? (вопросительный знак)
При необходимости проведения различных вычислений, в зависимости от некоторого условия, можно использовать функцию ? (вопросительный знак).
Синтаксис:
? ( <условие>, <выражение 1>, <выражение 2> ),
где
<условие> |
– |
выражение логического типа; |
<выражение 1> |
– |
выражение, результат которого функция возвращает, если условие истинно; |
<выражение 2> |
– |
выражение, результат которого функция возвращает, если условие ложно. |
Пример:
б= ? (а>2, 8, 0)// если а больше 2, то б=8, иначе б=0
с= ? (а>=б, а, б)// эквивалентно с = МАКС (а, б)
Функция АБС
Функция АБС позволяет получить абсолютное значение (модуль) числа.
Синтаксис:
АБС (<выражение>),
где
<выражение> |
– |
константа или выражение числового типа. |
Результат – число.
Пример:
а=АБС (-2)// переменной а присваивается значение 2
Функция БД_ВСЕГО
Функция БД_ВСЕГО позволяет узнать количество имеющихся записей в открытой базе данных.
Синтаксис:
БД_ВСЕГО
Результат – число.
Пример:
БД_ОТКРЫТЬ// открывается DBF-файл с именем бланка
ЕСЛИ БД_ВСЕГО > 0 ТО// Если в базе есть записи
Н360=БД_ПОЛЕ ("ACTIV")
// переменной Н360 присваивается
// значение из поля ACTIV 1-й записи
Н780=БД_ПОЛЕ ("PASSIV")
// переменной Н780 присваивается
// значение из поля PASSIV 1-й записи
КОНЕЦ_ЕСЛИ
БД_ЗАКРЫТЬ// закрывается DBF-файл
Функция БД_ВЫБОР
Чтобы организовать с помощью внутреннего языка Инфо-Бухгалтера возможность работы со всевозможными справочниками и просмотра DBF-файлов, с версий ИБ 7.5 для Windows и 3.5 для DOS были добавлены встроенная функция БД_ВЫБОР и новый тип графы ввода – графа DBF. В версии ИБ 8.0 возможности данный функции были расширены.
В базовой и минимальной версиях данная функция отсутствует.
Функция БД_ВЫБОР позволяет просматривать и выбирать записи DBF-файла с помощью таблицы в диалоговом окне. При нажатии на кнопку «ОК» функция возвращает номер выбранной записи, а при нажатии на «Отмена» возвращает ноль.
Обращение к функции может осуществляться как для безымянной базы данных, определенной в Инфо-Бухгалтере по умолчанию, так и по имени объекта База данных или База данных с поддержкой SQL.
Вы можете задать свой заголовок окна выбора. Если он отсутствует, то используется заголовок «Выбор из базы данных». Может использоваться список полей, которые будут показаны. При его отсутствии показываются все поля. Для каждого поля можно указать название, под которым оно будет выводиться в таблице выбора.
Синтаксис:
БД_ВЫБОР[ ([<имя объекта>] [, <заголовок>]
[ [,<имя поля 1> [:<название 1>[:<длина 1>] ] ]
[, …] ] ] [,<номер>] )] ,
где
<имя объекта> |
– |
идентификатор объекта База данных или База данных с поддержкой SQL; |
<заголовок> |
– |
заголовок окна выбора; |
<имя поля n> |
– |
имя n-го DBF-поля; |
<название n> |
– |
длина n-го поля в таблице; |
<длина n> |
– |
название n-го поля в таблице; |
<номер> |
– |
номер записи, на которую устанавливается курсор в таблице при запуске функции (по умолчанию 1). |
Результат – номер выбранной записи в базе данных.
Пример:
Пусть имеется файл People.dbf, в котором содержатся фамилии, адреса, телефоны сотрудников. Соответствующие поля пусть называются FIO, ADDR, TEL.
Сначала покажем, как можно воспользоваться функцией БД_ВЫБОР простейшим образом:
БД_ОТКРЫТЬ ("People")// открываем БД People.dbf
ном = БД_ВЫБОР// в переменную ном заносится
ЕСЛИ ном > 0 ТО// номер выбранной записи
БД_ПЕРЕЙТИ (ном)// теперь эту запись можно
БД_СЧИТАТЬ// считать и т.д.
//...
КОНЕЦ_ЕСЛИБД_ЗАКРЫТЬ
Сделаем то же самое, но с применением объекта База данных с поддержкой SQL:
База = SQL_ОТКРЫТЬ ("People.dbf")// открываем People.dbf
ном = БД_ВЫБОР (База)// выбираем из БД запись
ЕСЛИ ном > 0 ТО
База.ПЕРЕЙТИ (ном)
База.СЧИТАТЬ
//...
КОНЕЦ_ЕСЛИ
База.ЗАКРЫТЬ
Окно выбора будет выглядеть так:
Назовем теперь окно «Выбор сотрудника» и спрячем столбцы ADDR и TEL, а столбец FIO назовем «ФИО».
БД_ВЫБОР ( База, "Выбор сотрудника", [ "FIO":"ФИО" ] )
В результате на экране появится такое окно:
Если в списке полей указать TEL, то станет видимым еще один столбец:
БД_ВЫБОР (База, "Выбор сотрудника", ["FIO":"ФИО", "TEL"])
Для использования окна выбора из базы данных при заполнении входных полей бланка был введен новый тип входного поля (см. раздел «Графа с выбором из базы данных» 96). Фактически это поле ввода является обычным полем ввода строки, но с возможностью подстановки этой строки в соответствии со значением какого-либо поля в базе данных. Вне зависимости от типа поля, результат выбора подставляется в строковом виде.
В заголовке окна выбора из базы данных при подстановке во входное поле будет находиться имя строковой переменной, а столбцы таблицы будут содержать все поля DBF-файла и называться в соответствии с именами полей.
Функция БД_ЗАКРЫТЬ
Функция БД_ЗАКРЫТЬ применяется для закрытия ранее открытой базы данных в формате DBF с сохранением сделанных в базе дополнений.
Эта функция используется, если необходимо закрыть одну базу данных и перейти к работе с другой. Последняя измененная, но не сохраненная, запись будет добавлена к закрываемой базе данных. При завершении формульного раздела бланка, открытая в нем база данных закрывается автоматически.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БД_ЗАКРЫТЬ
Пример:
БД_СОЗДАТЬ ("TEST1")// создается DBF-файл с именем
// Test1.dbf
…
БД_ЗАКРЫТЬ// закрывается файл Test1.dbf
БД_СОЗДАТЬ ("TEST2")// создается DBF-файл с именем
// Test2.dbf
…
БД_ЗАКРЫТЬ// закрывается файл Test2.dbf
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БД_ЗАМЕНИТЬ
Функция БД_ЗАМЕНИТЬ применяется для обновления текущей записи в базе данных после ее изменения.
Эта функция используется после открытия существующей базы данных или после функции БД_СЧИТАТЬ и заменяет текущую запись в базе данных на обновленную.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БД_ЗАМЕНИТЬ
Пример:
БД_ОТКРЫТЬ ("TEST")// открывается база данных Test.dbf
// и считывается первая запись
БД_ПОЛЕ ("NAME", "Иван")// в поле NAME заносится
// значение "Иван"
БД_ПОЛЕ ("AGE", 50)// в поле AGE заносится 50
БД_ЗАМЕНИТЬ// измененная запись записывается
// в базу данных вместо старой
БД_СЧИТАТЬ// считывается следующая запись
БД_ПОЛЕ ("NAME", "Петр")// изменяются поля во второй записи
БД_ПОЛЕ ("AGE", 45)
БД_ЗАМЕНИТЬ// измененная запись записывается
// в базу данных вместо старой
БД_ЗАКРЫТЬ// закрывается DBF-файл
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БД_ЗАПИСАТЬ
Функция БД_ЗАПИСАТЬ применяется для добавления текущей записи в базу данных.
Эта функция сохраняет текущую запись, добавляя ее в конец базы данных. Содержимое полей записи не изменяется.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БД_ЗАПИСАТЬ
Пример:
БД_СОЗДАТЬ// создается DBF-файл с именем бланка,
// например, Balans.dbf
БД_ПОЛЕ("ACTIV", Н360)// в поле ACTIV заносится
// значение строки Н360 бланка
БД_ПОЛЕ("PASSIV", Н780)// в поле PASSIV заносится
// значение строки Н780 бланка
БД_ЗАПИСАТЬ// следующая запись
БД_ПОЛЕ("ACTIV", К360)// в поле ACTIV заносится
// значение строки К360 бланка
БД_ПОЛЕ("PASSIV", К780)// в поле PASSIV заносится
// значение строки К780 бланка
БД_ЗАКРЫТЬ// закрывается DBF-файл
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БД_ОТКРЫТЬ
Функция БД_ОТКРЫТЬ применяется для открытия на чтение или дополнение базы данных в формате DBF.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БД_ОТКРЫТЬ [ (<имя файла>) ]
где <имя файла> – имя открываемого DBF-файла.
Если имя файла не указано, открывается файла тем же именем, что и файл бланка, но с расширением .dbf.
При открытии существующей базы данных автоматически считывается первая запись.
Пример:
БД_ОТКРЫТЬ ("TEST")// открывается файл базы данных
// с именем Test.dbf
БД_ПОЛЕ ("ACTIV", К360)// в поле ACTIV заносится
// значение переменной К360
БД_ПОЛЕ ("PASSIV", К370)// в поле PASSIV заносится
// значение переменной К370
БД_ЗАКРЫТЬ// закрывается DBF-файл
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БД_ПЕРЕЙТИ
Функция БД_ПЕРЕЙТИ применяется для перехода к записи с указанным номером в базе данных.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БД_ПЕРЕЙТИ (<номер записи>),
где <номер записи> – выражение числового типа.
Переход к нужной записи не вызывает автоматического чтения данной записи. Следовательно, перед использованием функции БД_ПОЛЕ, для получения значений полей этой записи, необходимо вызвать БД_СЧИТАТЬ.
Пример:
БД_ОТКРЫТЬ// открывается DBF-файл с именем бланка
БД_ПЕРЕЙТИ (10)// переход к 10-й записи
БД_СЧИТАТЬ// чтение 10-й записи
знач=БД_ПОЛЕ("VALUE") // переменной знач присваивается
// значение из поля VALUE
БД_ЗАКРЫТЬ// закрывается DBF-файл
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БД_ПОЛЕ
Функция БД_ПОЛЕ применяется как для получения значения из определенного поля текущей записи базы данных, так и для занесения новых значений в поля текущей записи.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
для получения значения из определенного поля текущей записи базы данных
БД_ПОЛЕ (<имя поля>)
где
<имя поля> |
– |
имя поля в записи (до 10 букв или цифр латинского алфавита). |
Тип результата зависит от типа поля.
для занесения нового значения в поле текущей записи базы данных
БД_ПОЛЕ (<имя поля>,<знач.> [,<длина> [,<дес. знаков>] ] )
где
<имя поля> |
– |
выражение строкового типа – имя поля в записи до 10 букв или цифр латинского алфавита; |
<знач.> |
– |
выражение соответствующего типа. Если это первое обращение к полю во вновь создаваемой базе данных, то тип поля будет определяться типом этого выражения; |
<длина> |
– |
длина поля. Имеет значение только для полей типа строка и число при первом обращении к полю. По умолчанию числовое поле имеет длину 15, а строковое поле – длину строки <знач.>; |
<дес. знаков> |
– |
количество десятичных знаков после запятой. Имеет смысл только для полей числового типа. |
Примеры:
БД_ОТКРЫТЬ// открывается DBF-файл с именем бланка
Н360 = БД_ПОЛЕ ("ACTIV")// переменной Н360
// присваивается значение из
// поля ACTIV 1-ой записи
Н780 = БД_ПОЛЕ ("PASSIV")// переменной Н780
// присваивается
// значение из поля PASSIV
// первой записи
БД_ЗАКРЫТЬ// закрывается DBF-файл
БД_СОЗДАТЬ// создается DBF-файл с именем
// файла-бланка и расширением DBF,
БД_ПОЛЕ ("ACTIV", К360, 10, 2) // в поле ACTIV заносится
// значение строки К360
// длина поля – 10 знаков,
// 2 знака после запятой
БД_ПОЛЕ ("PASSIV", К780,10,2)// в поле PASSIV заносится
// значение строки К780
БД_ЗАКРЫТЬ// закрывается DBF-файл
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БД_РЕДАКТОР
Функция БД_РЕДАКТОР используется для организации возможности работы со справочниками и редактирования DBF-файлов.
Введена с версий ИБ 7.5 для Windows и 3.5 для DOS.
В версии ИБ 8.x синтаксис функции был расширен.
В базовой и минимальной версиях данная функция отсутствует.
Обращение к функции БД_РЕДАКТОР может осуществляться как для безымянной базы данных, определенной в Инфо-Бухгалтере по умолчанию, так и по имени объекта База данных или База данных с поддержкой SQL.
Вы можете задать свой заголовок окна просмотра. Если же он не указан, то используется заголовок «Редактирование данных».
Вы также можете указать список полей, которые будут показаны. При его отсутствии показываются все поля. Для каждого поля можно указать название, под которым оно будет приводится в таблице выбора.
Синтаксис:
БД_РЕДАКТОР[ ( [<имя объекта>,] [<заголовок>,]
[ [*][%][<имя поля 1> [:<название 1>
[:<длина 1>] ] ] [, ... ] ] ] [,<номер>]
[,<редактирование> [,<добавление>
[,<удаление> [,<выбор записи>] ] ] ]
[ <обработчики событий> ] ) ]
где
<имя объекта> |
– |
идентификатор объекта База данных или База данных с поддержкой SQL; |
<заголовок> |
– |
заголовок окна выбора; |
* |
– |
поле, по которому осуществляется поиск; (может присутствовать только у одного поля, иначе – ошибка!) |
% |
– |
указанное поле имеет атрибут «Только для чтения»; |
<имя поля n> |
– |
имя n-го DBF-поля; |
<название n> |
– |
название n-го поля в таблице; |
<длина n> |
– |
длина n-го поля в таблице; |
<номер> |
– |
номер записи, на которую устанавливается курсор таблицы при запуске функции (по умолчанию 1); |
<редактирование> |
– |
выражение логического типа, разрешающее редактировать значения полей записей базы данных по клавише F4 (по умолчанию ДА); |
<добавление> |
– |
выражение логического типа, разрешающее добавлять новые записи в базу данных (по умолчанию ДА); |
<удаление> |
– |
выражение логического типа, разрешающее удалять записи из базы данных (по умолчанию ДА). |
<выбор записи> |
– |
выражение логического типа, указывающее на необходимость открытия окна редактирования при выборе записи (по умолчанию НЕТ). |
<обработчики событий> |
– |
функции-обработчики событий, вызываемые при добавлении, редактировании и удалении записи. |
Результат – номер выбранной записи.
При выходе из функции осуществляется сброс текущей записи.
Внимание!Список отображаемых полей указывается в квадратных скобках.
Функция БД_РЕДАКТОР по сути является расширенной версией функции БД_ВЫБОР. Добавлена возможность редактирования базы данных, разрешаемая (запрещаемая) тремя последними параметрами. Поэтому примеры вызова можно посмотреть в функции БД_ВЫБОР.
Пример 1:
Пусть имеется файл City.dbf. Вызовем окно редактирования, где можно будет добавить новые записи и изменить существующие, а функция удаления будет заблокирована.
База = БД_ОТКРЫТЬ ("city")// открываем базу City.dbf
// в базе можно добавлять и редактировать записи,
// но нельзя удалять их
н = БД_РЕДАКТОР (База, ДА, ДА, НЕТ)
СООБЩЕНИЕ ("Номер записи: " + СТР (н))
База.ЗАКРЫТЬ// закрываем базу данных
Кроме того, начиная с версии ИБ 8.0, существует возможность вызова библиотечных функций при редактировании поля базы данных с помощью БД_РЕДАКТОР. Функция должна иметь такой же интерфейс, как и для графы с вызовом функции, т.е.
ФУНКЦИЯ ТИП_ЛОГИКА :
<имя> ( ПЕРЕМ ТИП_СТРОКА : <имя переменной> )
Описание вызова может производиться для каждого редактируемого поля.
Синтаксис:
В описании поля для БД_РЕДАКТОР после названия поля могут указываться его наименование в таблице и длина отображения. Вызов функции описывается в круглых скобках сразу после названия поля, наименования в таблице или отображаемой длины:
[ … , <название поля> [ :<наименование>] [ :<длина>]
[ (<библиотека>, <функция>) ], …]
Пример 2:
Б = БД_ОТКРЫТЬ ( "TEST.DBF" )
н = БД_РЕДАКТОР ( Б, "Тестовая база данных",
["NAME": "Название"
("MYLIB", "Выбор_Названия"),
"COMMENT": "Комментарий": 40
"LIB", "Выбор_Комм")
"PRICE": "Цена" ], ДА, ДА, ДА, ДА)
Функции Выбор_Названия и Выбор_Комм должны быть описаны в библиотеке MyLib.ibl и иметь оговоренный выше интерфейс.
Начиная с версии ИБ 8.2, расширена возможность вызова функций при редактирования поля в БД_РЕДАКТОР:
<описание поля> (<имя библиотеки>, <имя функции>
[, <запрет ручного ввода>] )
Параметр <запрет ручного ввода> логического типа, по умолчанию имеет значение НЕТ. Когда же этот параметр имеет значение ДА, то пользователь может подставить значение путем вызова функции. В этом случае функция вызывается при любой попытке редактирования пустого поля.
Пример 3:
// Формульный раздел бланка
гр = SQL_ОТКРЫТЬ (ФАЙЛГР)
гр.ЗАПРОС("SELECT * FROM '"+ФАЙЛГР+"' WHERE
(kodpost='"+СЧПОСТ+"' OR kodpost='') AND
(nomnak='"+ном+"' OR nomnak='')")
номгр = БД_РЕДАКТОР (гр, "Введите список отгружаемых товаров",
["kodsch":"Код счета товара":20 ("prnak","ТОВАР_СЧ", ДА),
"naimsch":"Наименование товара":50 ("prnak","Н_ТОВ",ДА),
"edsch":"Ед.Изм.":3 ("prnak.ibl", "ЕД_ТОВ", ДА),
"st_nds":"Ст.НДС":5,
"ostkol":"Остаток":8 ("prnak.ibl", "ОСТ_ТОВ",ДА),
"kol":"Количество", "pric":"Цена"], ДА, ДА, ДА)
ЕСЛИ номгр>0 ТО
гр.ЗАПРОС ("UPDATE '"+ФАЙЛГР+"' SET
datnak='"+SQL_ДАТА(датан)+"' WHERE kodpost=''")
гр.ЗАПРОС ("UPDATE '"+ФАЙЛГР+"' SET
kodpost='"+СЧПОСТ+"' WHERE kodpost=''")
гр.ЗАПРОС ("UPDATE '"+ФАЙЛГР+"' SET
nomnak='"+ном+"' WHERE nomnak=''")
КОНЕЦ_ЕСЛИ
гр.ЗАКРЫТЬ
//Формульный раздел библиотеки Prnak.ibl
ФУНКЦИЯ ТИП_ЛОГИКА: ТОВАР_СЧ
( ПЕРЕМ ТИП_СТРОКА: сч )
КОД_ТОВ=""
// Если счет не указан, то предложить по умолчанию 10 счет
ЕСЛИ сч="" ТО
сч="10"
КОНЕЦ_ЕСЛИ
сч = ВЫБОР_СЧЕТА (сч, ДА)
ЕСЛИ СЧЕТ_СУЩ (сч) ТО
КОД_ТОВ = сч
ТОВАР_СЧ = ДА
ИНАЧЕ
ТОВАР_СЧ = НЕТ
КОНЕЦ_ЕСЛИ
Замечание:
Подстановка значения с использованием функции доступна только для полей строкового и числового типа, а также для даты. Для полей других типов описание вызова функции не является ошибкой, но при исполнении игнорируется.
Начиная с версии ИБ 8.21, появилась возможность запрета ручного ввода в функции БД_РЕДАКТОР. Для этого в описателе поля внутри круглых скобок после указания имени библиотеки и имени функции (возможно, с типом аргумента) следует строка дополнительных параметров. Ранее там мог находиться логический признак автоподстановки при пустом значении. Эта возможность сохранена для совместимости.
В строке дополнительных параметров:
"п" (подстановка) |
– |
разрешает автоподстановку при пустом значении, |
"з" (запрет) |
– |
запрещает ручной ввод. |
Пример 4:
бд = SQL_ОТКРЫТЬ (имя_файла)
// поле CODE можно заполнять только с помощью вызова
// функции МойВыбор,
// при пустом значении поля функция вызывается автоматически
// (без нажатия на кнопку)
н = БД_РЕДАКТОР ( бд, "Мой редактор", ["CODE":"Код"
("my.ibl", "МойВыбор"(ТИП_СТРОКА), "ПЗ"),
%"COMMENT":"Название", "PRICE":"Цена"],
ДА, ДА, ДА, ДА )
бд.ЗАКРЫТЬ
Также в версии ИБ 8.21 сделан механизм пользовательской проверки данных при добавлении, сохранении и удалении записей в функции БД_РЕДАКТОР. Для этой цели могут задаваться функции-обработчики добавления, изменения и удаления.
Функция-обработчик возвращает логическое значение. При возврате обработчиком значения НЕТ, сохранение данных не производится, а закрытие/переход к другой записи диалога предотвращаются.
Также обработчик принимает параметр-переменную строкового типа, которая в текущей реализации никак не используется.
Обработчики задаются после всех параметров БД_РЕДАКТОР, то есть в самом конце, но перед закрывающей скобкой. Их список заключен в квадратные скобки. Обработчики в списке разделяются запятыми.
Синтаксис обработчика:
<тип обработчика>: (<имя библиотеки>, <имя функции>)
<тип обработчика> |
– |
идентификатор:И – изменение Д – добавление У – удаление |
<имя библиотеки> <имя функции> |
– |
строковые константные выражения. |
Замечание:
В идентификаторе типа обработчика могут присутствовать другие буквы, но значение имеет только первая, то есть вместо И, Д и У можно использовать, например: Изм, Доб, Уд.
Пример 5:
бд = SQL_ОТКРЫТЬ (имя_файла)
н = БД_РЕДАКТОР (бд, "Мой редактор",
["CODE":"Код" ("my.ibl","МойВыбор"(ТИП_СТРОКА), "ПЗ"),
%"COMMENT":"Название",
"PRICE":"Цена"],
ДА, ДА, ДА, ДА,
[
Изм: ("my.ibl", "МояПроверка"),
Доб: ("my.ibl", "МояПроверкаНовой"),
Уд: ("my.ibl", "МойВопросОбУдалении")
] )
бд.ЗАКРЫТЬ
Функции МояПроверка, МояПроверкаНовой и МойВопросОбУдалении должны иметь следующий вид:
ФУНКЦИЯ ТИП_ЛОГИКА:
<Имя функции> ( ПЕРЕМ ТИП_СТРОКА: стр )
В версии 8.21 события замены диалогов не возвращали значения, теперь в версии ИБ 8.3 они возвращают логическое значение:
ДА |
– |
действие обработано самостоятельно, показывать диалог нет необходимости; |
НЕТ |
– |
следует показать стандартный диалог. |
Замечание:
Для доступа к полям сохраняемой или удаляемой записи используется функция РЕД_ПОЛЕ.
Начиная с версии ИБ 8.3, в функции БД_РЕДАКТОР сделано, чтобы инкрементальный поиск работал по столбцу, выбранному для поиска (с вдавленным заголовком). Начальный столбец для поиска задается символом *, как это было и раньше.
Замечание:
Инкрементальный поиск нормально работает только по столбцам, где нет повторяющихся значений.
В версии ИБ 8.301 для функции БД_РЕДАКТОР добавлены два новых события: ПередДобалением и ПередИзменением.
События позволяют проанализировать данные новой или изменяемой записи до их модификации пользователем (с помощью функции РЕД_ПОЛЕ), а также самостоятельно модифицировать данные в буфере редактируемой записи (с помощью функции УСТ_РЕД_ПОЛЕ).
Если обработчик события возвращает значение НЕТ, то модификации буфера записи отменяются, а пользователь увидит запись в режиме «только чтение». При этом все равно при нажатии «ОК» или переходе к следующей записи будет вызван обработчик Изменение.
В качестве обработчика должна использоваться функция следующего вида:
ФУНКЦИЯ ТИП_ЛОГИКА: <имя> (ПЕРЕМ ТИП_СТРОКА: стр),
где параметр <стр> игнорируется.
Синтаксис задания обработчиков ПередДобавлением и ПередИзменением такой же как и для других обработчиков.
Соответствующие обозначения:
"Н", "Нач" и т.п. с буквы Н |
– |
ПередДобавлением(Начальное состояние) |
"П", "Перед" и т.п. с буквы П |
– |
ПередИзменением |
Замечание:
Обработчик Удаление вызывается перед удалением записи, т.е. необходимости в специальном обработчике ПередУдалением нет.
Функция БД_СОЗДАТЬ
Функция БД_СОЗДАТЬ применяется для создания новой базы данных в формате DBF.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БД_СОЗДАТЬ [ (<имя файла>) ],
где <имя файла> – имя создаваемого DBF-файла.
Если имя файла не указано, создается файл с тем же именем, что и файл бланка, но с расширением .dbf.
Пример:
БД_СОЗДАТЬ// создается DBF-файл с именем бланка
БД_ПОЛЕ ("ACTIV", К360)// в поле ACTIV заносится
// значение переменной К360
БД_ПОЛЕ ("PASSIV", К780)// в поле PASSIV заносится
// значение переменной К780
БД_ЗАКРЫТЬ// закрывается DBF-файл
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БД_СОРТ
Функция БД_СОРТ сортирует базу данных по указанным полям.
Введена с версий ИБ 7.1 для Windows и 3.0 для DOS.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БД_СОРТ ( <поле 1> [, <поле 2>, <поле 3>, … ] ),
где <поле n> – название n-го поля в базе данных.
Для осуществления сортировки база данных должна быть открыта.
Пример:
БД_ОТКРЫТЬ ("TEST")// открывается файл базы данных
…// с именем Test.dbf
БД_СОРТ ("DATE")// сортируем по дате
…
БД_ЗАКРЫТЬ// закрывается DBF-файл
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БД_СЧИТАТЬ
Функция БД_СЧИТАТЬ применяется для считывания следующей записи из базы данных.
Эта функция считывает следующую запись из базы данных в текущую запись. При открытии существующей базы данных, первая запись считывается автоматически.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БД_СЧИТАТЬ
Пример:
БД_ОТКРЫТЬ// открывается DBF-файл с именем бланка
Н360=БД_ПОЛЕ ("ACTIV")// переменной Н360
// присваивается значение из
// поля ACTIV 1-й записи
Н780=БД_ПОЛЕ ("PASSIV")// переменной Н780
// присваивается значение из
// поля PASSIV 1-й записи
БД_СЧИТАТЬ// считывается следующая запись
К360=БД_ПОЛЕ ("ACTIV")// переменной К360
// присваивается значение из
// поля ACTIV 2-й записи
К780=БД_ПОЛЕ ("PASSIV")// переменной К780
// присваивается значение из
// поля PASSIV 2-й записи
БД_ЗАКРЫТЬ// закрывается DBF-файл
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БД_ТЕКУЩАЯ
Функция БД_ТЕКУЩАЯ позволяет узнать номер текущей записи в открытой базе данных.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БД_ТЕКУЩАЯ
Результат – номер текущей записи в базе данных.
Пример:
БД_ОТКРЫТЬ// открывается DBF-файл с именем бланка
тек=БД_ТЕКУЩАЯ// переменной тек присваивается номер
// текущей записи
БД_ПЕРЕЙТИ (тек-1)// переход к предыдущей записи
БД_ЗАКРЫТЬ// закрывается DBF-файл
Внимание!
Данная функция является устаревшей. В новых разработках следует пользоваться объектом «База данных с поддержкой SQL».
Функция БЛАНК
Функция БЛАНК позволяет выполнить один бланк из другого бланка.
Введена с версии ИБ 8.2 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
БЛАНК ( <имя файла бланка> )
где
<имя файла бланка> |
– |
строковое выражение, указывающее имя файла вызываемого бланка. |
Результат не возвращается.
Пример:
// Формульный раздел бланка "Счет"
// . . .
ЕСЛИ ВОПРОС ("Выписать счет-фактуру") ТО
БЛАНК ("SF_OTG1.BLW")
КОНЕЦ_ЕСЛИ
Функция ВВЕСТИ_ЗНАЧЕНИЕ
С помощью функции ВВЕСТИ_ЗНАЧЕНИЕ во время выполнения расчета формульной части бланка можно вводить дополнительные данные, необходимые для расчета. Ввод значения производится в диалоговом окне, которое появляется при выполнении формульной части бланка.
Данная функция позволяет вводить значения следующих типов:
-
дата;
-
логическое значение (ДА, НЕТ);
-
выбор из перечисленных значений.
При вводе числа или даты можно воспользоваться соответственно встроенным калькулятором или календарем, вызвав их клавишей или нажав кнопку, расположенную справа от поля ввода.
Если в функции задан набор вариантов, то диалоговая панель будет содержать кнопки с зависимой фиксацией, соответствующие каждому из вариантов.
При вводе логического значения диалоговая панель будет содержать кнопки «ДА» и «НЕТ».
Функция позволяет задать для вводимого поля значение по умолчанию.
Тип вводимого значения определяется заданным в параметрах функции исходным значением.
При вводе значений типа числа можно задать диапазон значений.
Введена с версии ИБ 7.х для Windows и 3.0 для DOS.
Синтаксис:
ВВЕСТИ_ЗНАЧЕНИЕ ( <запрос> [,<исходное значение>
[,<макс ширина> или <мин> [, <макс> ] ] ] )
где
<запрос> |
– |
строка, содержащая вопрос; |
<исходное значение> |
– |
значение, которое будет предложено по умолчанию; |
<макс. Ширина> |
– |
значение ширины поля для ввода строки; |
<мин>, <макс> |
– |
соответственно минимальное и максимальное значение для ввода числа. Если задан только один параметр, то он считается максимальным, а минимальное значение соответствует нулю. |
Исходное значение может быть задано как:
-
строка (например, "Введите значение НДС");
-
число (например, 120596);
-
дата (например, 26.01.98);
-
набор вариантов ( ["Вариант1", "Вариант2", Вариант3"] ).
В последнем случае номер исходного значения вводится через запятую после перечисленных вариантов.
Результат – введенное значение, тип которого соответствует типу исходного значения, заданного в параметрах функции. В случае перечисления вариантов результатом является номер выбранного варианта.
Пример 1:
Ниже приведен пример, в котором с помощью функции ВВЕСТИ_ЗНАЧЕНИЕ вводится номер записи в базе данных, а затем осуществляется переход на эту запись.
номер=ВВЕСТИ_ЗНАЧЕНИЕ ("Введите номер:", 1,1,100)
БД_ПЕРЕЙТИ (номер)
При выполнении функции на экране появится диалоговое окно, содержащее графу для ввода номера записи:
По умолчанию в графе будет установлено значение, заданное вторым аргументом функции (в данном случае 1). Третий и четвертый параметры ограничивают соответственно минимальный и максимальный номер записи (в данном случае 1 и 100). В переменную номер будет записано введенное в диалоговом окне значение.
Пример 2:
Ниже приведен пример, в котором при помощи функции ВВЕСТИ_ЗНАЧЕНИЕ предлагается выбрать один из предложенных вариантов. При выполнении функции на экране появится диалоговое окно, в котором будут перечислены варианты, заданные вторым параметром функции. С левой стороны от каждого варианта располагается флажок переключателя. Для выбора варианта щелкните клавишей мыши по флажку переключателя перед требуемым пунктом, а затем нажмите клавишу или щелкните клавишей мыши по кнопке «OK».
Выбранным по умолчанию является пункт, заданный третьим параметром функции.
ндс_вар=ВВЕСТИ_ЗНАЧЕНИЕ ("Выберите значение НДС",
["20","10", "Не облаг."], 1)
ЕСЛИ ндс_вар= 1 ТО ндс= 20КОНЕЦ_ЕСЛИ
ЕСЛИ ндс_вар= 2 ТО ндс= 10КОНЕЦ_ЕСЛИ
ЕСЛИ ндс_вар= 3 ТО ндс= 0КОНЕЦ_ЕСЛИ
Функция ВВОД_ЗНАЧЕНИЯ
Функция ВВОД_ЗНАЧЕНИЯ полностью эквивалентна функции ВВЕСТИ_ЗНАЧЕНИЕ за исключением того, что не дает пользователю возможности прервать расчет. То есть вместо кнопки «Стоп» содержит кнопку «Отмена».
При нажатии кнопки «Отмена» функция возвращает:
-
для чисел и радиокнопок: 0
-
для строк: ""
-
для дат: 01.01.1980
Введена с версии ИБ 8.3 для Windows.
Синтаксис:
ВВОД_ЗНАЧЕНИЯ ( <запрос> [,<исходное значение>
[,<макс ширина> или <мин> [, <макс> ] ] ] )
где
<запрос> |
– |
строка, содержащая вопрос; |
<исходное значение> |
– |
значение, которое будет предложено по умолчанию; |
<макс ширина> |
– |
значение ширины поля для ввода строки; |
<мин>, <макс> |
– |
соответственно минимальное и максимальное значение для ввода числа. Если задан только один параметр, то он считается максимальным, а минимальное значение соответствует нулю. |
Исходное значение может быть задано как:
-
строка (например, "Введите значение НДС");
-
число (например, 120596);
-
дата (например, 26.01.1998);
-
набор вариантов ( ["Вариант1", "Вариант2", Вариант3"] ).
В последнем случае номер исходного значения вводится через запятую после перечисленных вариантов.
Результат – введенное значение, тип которого соответствует типу исходного значения, заданного в параметрах функции. В случае перечисления вариантов результатом является номер выбранного варианта.
Функция ВЕРСИЯ
Функция ВЕРСИЯ возвращает номер версии программы Инфо-Бухгалтера.
Введена с версии ИБ 8.0 для Windows и 3.55 для DOS.
Синтаксис:
ВЕРСИЯ
Результат – строка.
Пример:
ЕСЛИ ВЕРСИЯ < "8.0" ТО
инд = a1 + a2 + a3 + a4
стр!инд = "–"
ИНАЧЕ
стр [ a1 + a2 + a3 + a4 ] = "–"
КОНЕЦ_ЕСЛИ
Функция ВКЛ_ФИЛЬТР
Функция ВКЛ_ФИЛЬТР позволяет включить фильтр хозяйственных операций.
Введена с версии ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
ВКЛ_ФИЛЬТР
Пример:
СОЗДАТЬ ( фст, ТИП_ФИЛЬТР )
фст.СЧИТАТЬ
СОЗДАТЬ ( фн, ТИП_ФИЛЬТР )
фн.дебет = наим// устанавливаем параметры фильтра
фн.исключать = НЕТ
фн.дата1 = ДАТА_НАЧ
фн.дата2 = ДАТА_КОН
фн.действ_отч = ДА
фн.исп_период = ДА// включаем использование периода
фн.ПРИМЕНИТЬ// применяем
ВКЛ_ФИЛЬТР
// обработка отфильтрованного ЖХО
// ...
фст.ПРИМЕНИТЬ// восстанавливаем параметры фильтра
ВЫКЛ_ФИЛЬТР
Функция ВОПРОС
С помощью функции ВОПРОС можно организовать интерфейс с пользователем во время заполнения бланка. При выполнении функции на экран будет выдано диалоговое окно, содержащее строку вопроса и две кнопки «Да» и «Нет». При выборе кнопки «Да» функция вернет логическое значение ДА, при выборе кнопки «Нет» – логическое значение НЕТ. При нажатии клавиши будет выбрано значение, установленное по умолчанию вторым параметром функции.
Введена с версии ИБ 7.х для Windows и 3.0 для DOS.
Синтаксис:
ВОПРОС ( <вопрос> [,<ответ по умолчанию>] ),
где
<вопрос> |
– |
строка содержащая вопрос(к концу строки автоматически будет добавлен знак вопроса); |
<ответ по умолчанию> |
– |
логическое значение, определяющее какое значение будет выбрано при нажатии клавиши . Если ответ не задан, то по умолчанию будет выбран ответ «Да». |
Результат – логическое значение ДА или НЕТ.
Пример:
В качестве примера приведен фрагмент формульной части бланка платежного поручения. При заполнении бланка появится диалоговое окно с вопросом «Провести проводку?». Если Вы выберите кнопку «Да» или нажмете клавишу , то проводка будет сформирована. В случае выбора кнопки «Нет» бланк будет заполнен без формирования проводки.
ЕСЛИ ВОПРОС ("Провести проводку") ТО
ПРОВОДКА (корр,"51",СуммаД,"пп"+номер,дата,назнач)
КОНЕЦ_ЕСЛИ
Функция ВРЕМЯ
Функция ВРЕМЯ позволяет преобразовать в переменную типа время раздельно введенные в числовой форме часы, минуты и секунды.
Введена с версии ИБ 8.110 для Windows.
Синтаксис:
ВРЕМЯ ( <час>,<минута> [, <секунда> ] ),
где
<час>,<минута>, <секунда> |
– |
числовые выражения, определяющие соответствующие параметры времени. |
Результат – выражение типа время.
Пример:
час=15
вр1=ВРЕМЯ (час, 30)// переменной вр1 присваивается
СООБЩЕНИЕ ( СТР (вр1) ) // время, равное 15:30:00
минута=40
вр2=ВРЕМЯ (час, минута, 30)// переменной вр2 присваивается
СООБЩЕНИЕ ( СТР (вр2) ) // время, равное 15:40:30
Функция ВРЕМЯ_ТЕК
Функция ВРЕМЯ_ТЕК возвращает текущее время, установленное в компьютере.
Введена с версии ИБ 7.06 для Windows и 3.0 для DOS.
Синтаксис:
ВРЕМЯ_ТЕК
Пример:
Вр = ВРЕМЯ_ТЕК// Вр – переменная типа время
стр = СТР ( Вр )// строка типа "10:45:15"
стр = СТР ( Вр, 5, 5 )// строка типа "10:45"
Функция ВСТАВИТЬ_РАМКУ
Функция ВСТАВИТЬ_РАМКУ предоставляет Вам возможность создавать бланки документов с таблицами произвольной длины. Данная функция осуществляет вставку рамки в указанное место бланка. Это происходит в процессе обработки формульной части бланка.
Существует только в Windows-версиях.
Синтаксис:
ВСТАВИТЬ_РАМКУ (<кол>,<стр>,<ширина>,<высота>
[,<шир_лин>]),
где
<стр>,<кол> |
– |
номер строки и колонки, определяющие верхний левый угол рамки; |
<ширина> |
– |
ширина рамки в символах; |
<высота> |
– |
высота рамки в строках; |
<шир_лин> |
– |
необязательный параметр, определяющий толщину рамки (от 1 до 3). |
Для вывода данных в созданную рамку используйте функцию ВЫВЕСТИ.
Пример:
ЦИКЛ ДЛЯ (и=1,5)// цикл от 1 до 5
ВСТАВИТЬ_РАМКУ (1, и, 11, 1)// вставляем рамку
ВЫВЕСТИ (2, и, "Инфо-Бухгалтер", 10)// выводим строку
КОНЕЦ_ЦИКЛА// конец цикла
Функция ВСТАВИТЬ_СТРОКУ
Функция ВСТАВИТЬ_СТРОКУ предоставляет Вам возможность создавать бланки отчетных документов произвольной длины. Данное ключевое слово осуществляет вставку новых строк в указанном месте бланка.
Используется только в Windows-версиях.
Синтаксис:
ВСТАВИТЬ_СТРОКУ (<номер строки> [,<кол-во строк>] )
где
<номер строки> |
– |
порядковый номер строки, считая от первой строки документа, перед которой будет вставлена новая пустая строка; |
<кол-во строк> |
– |
необязательный параметр, определяющий количество вставляемых строк. Если параметр отсутствует, то в указанное место будет вставлена одна строка. |
Для вывода данных в созданную строку можно использовать функцию ВЫВЕСТИ.
Пример:
s = "Инфо-Бухгалтер"// переменной s присваиваем строку
// "Инфо-Бухгалтер"
ЦИКЛ ДЛЯ (и=1, 5)// цикл от 1 до 5
ВСТАВИТЬ_СТРОКУ (и)// вставляем новую строку
ВЫВЕСТИ (2, и, s, 10)// выводим строку
КОНЕЦ_ЦИКЛА
Функция ВЫБОР_ДИР
Функция ВЫБОР_ДИР позволяет Вам с помощью диалогового окна выбрать каталог от текущего. Возвращает путь относительно текущего каталога или пустую строку в случае отмены.
Введена с версии ИБ 8.110 для Windows.
Синтаксис:
ВЫБОР_ДИР (<заголовок окна>)
где
<заголовок окна> – строка заголовка окна выбора.
Результат – строка.
Пример:
// Текущий каталог D:\Exhibit\Ibw8
Каталог1 = ВЫБОР_ДИР ("Укажите каталог с файлами данных")// Каталог1 = "C:\PERSONAL DOCUMENTS"
Каталог2 = ВЫБОР_ДИР ("Укажите каталог с файлами данных")// Каталог2 = "DATA\OBPIT"
Функция ВЫБОР_СЧЕТА
Функция ВЫБОР_СЧЕТА позволяет Вам выбрать счет из плана счетов и получить его код. При нажатии на кнопку «Отмена» в окне выбора счета функция возвращает пустую строку.
Введена с версии ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
ВЫБОР_СЧЕТА [ (<код счета>, [<посл. уровень>] ) ]
где
<код счета> |
– |
начальное значение кода счета; |
<посл. уровень> |
– |
параметр логического типа, указывающий на то, что требуется выбирать только счета последнего уровня. |
Результат – строка.
Пример:
КодСч=ВЫБОР_СЧЕТА ("41/С")
Функция ВЫБОР_ФАЙЛА
Функция ВЫБОР_ФАЙЛА позволяет вызвать диалоговое окно выбора файла.
Введена с версии ИБ 8.0 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ВЫБОР_ФАЙЛА (<нач. каталог> ,<заголовок окна>,
<тип файлов>, <расширение> )
где
<нач. каталог> |
– |
каталог, с которого начинается выбор файлов; |
<заголовок окна> |
– |
заголовок окна диалога; |
<тип файлов> |
– |
строка в графе «Тип файлов»; |
<расширение> |
– |
расширение файлов. |
Результат – строка.
При нажатии в диалоговом окне кнопки «Отмена» возвращает пустую строку.
Пример:
файл = ВЫБОР_ФАЙЛА ( "DATA\*.BAK",
"Выбор файла для удаления",
"Резервные копии файлов",
"BAK" )
ЕСЛИ файл <> "" ТО
успех = ФАЙЛ_УДАЛИТЬ ( файл )
КОНЕЦ_ЕСЛИ
Функция ВЫВЕСТИ
Функция ВЫВЕСТИ позволяет Вам вывести значение любой переменной или функции в указанные позицию и строку документа.
Введена с версий ИБ 7.х для Windows и 3.0 для DOS.
Синтаксис:
ВЫВЕСТИ (<позиция в строке>, <номер строки>,
<имя переменной / имя функции>,
[<длина поля>,
<длина дробной части / количество строк>,
<жирный шрифт>] ),
где
<позиция в строке> |
– |
определяет позицию в строке, с какой будет выведено значение; |
<номер строки> |
– |
определяет номер строки, начиная с первой строки документа, в которую будет выведено значение; |
<имя переменной/ имя функции> |
– |
определяет имя переменной или функции, значение которой будет выведено; |
<длина поля> |
– |
определяет количество знакомест, отводимых для вывода значения; |
<длина дроб. части/ количество строк> |
– |
параметр, определяющий количество знаков после запятой для числовых значений или количество строк отводимых для вывода символьных значений; |
<жирный шрифт> |
– |
параметр логического типа, позволяющий выводить текст полужирным шрифтом. |
Пример:
// Присваиваем переменным необходимые значения:
Строка=" Инфо-Бухгалтер"
Число=100.23456
// Выводим, начиная с 10-позиции, в 5 строку содержимое
// переменной Строка, при этом, поле вывода ограничивается
// 20 знаками
ВЫВЕСТИ (10, 5, Строка, 20)
// В 40-ую позицию 5-ой строки выводим значение переменной Число, при этом под поле вывода будет выделено 6 знаков, а количество знаков после запятой будет ограничено двумя знаками.
ВЫВЕСТИ (40, 5, Число, 6, 2)
В функции ВЫВЕСТИ добавлен параметр логического типа, позволяющий устанавливать полужирное начертание выводимого текста (если параметр имеет значение ДА). Данный параметр может следовать как за выводимым значением, так и после спецификации формата, но должен быть всегда последним:
ВЫВЕСТИ (2, 2, "Пример текста", ДА)
ВЫВЕСТИ (2, 2, Итого, 10, 2, ДА)
Функция ВЫЗОВ
Функция ВЫЗОВ позволяет вызывать функции из внешних динамически загружаемых библиотек (DLL).
Введена с версии ИБ 8.108 для Windows.
Синтаксис:
ВЫЗОВ ( <имя библиотеки>, <имя функции>, <строка>)
где
<имя библиотеки> |
– |
строковый параметр, определяющий имя DLL; |
<имя функции> |
– |
строковый параметр, определяющий имя функции в указанной библиотеке; |
<строка> |
– |
строка, через которую осуществляется обмен с внешней функцией. |
Результат – логическое выражение: ДА, если найдены указанные библиотека и функция и НЕТ – в противном случае.
Вызываемая функция должна иметь следующий интерфейс:
в C++:
char* WINAPI <имя функции> (HWND hWindow, char* InputStr)
в Паскале:
function <имя функции>(hWindow: HWND; InputStr: PChar): PChar; stdcall;
Значение переменной <строка> передается в функцию в качестве параметра InputStr, а после выполнения функции этой переменной присваивается возвращенное функцией значение.
Дополнительно в функцию передается дескриптор окна Инфо-Бухгалтера (главного или верхнего диалога).
Пример:
// В Инфо-Бухгалтере:
стр = "Строка на вход"
ЕСЛИ ВЫЗОВ ("calltest.dll", "TestMsgBox", стр) ТО
СООБЩЕНИЕ (стр)
ИНАЧЕ
СООБЩЕНИЕ ("Ошибка: библиотека или функция
не найдена!")
КОНЕЦ_ЕСЛИ
// В DLL
-------- calltest.h
extern "C"
{
char* WINAPI TestMsgBox (HWND handle, char* message);
}
-------- calltest.cpp
char* WINAPI TestMsgBox(HWND handle, char* message)
{
::MessageBox (handle, message, "Привет от DLL",
MB_OK | MB_ICONINFORMATION);
return "Строка на выход";
}
Функция ВЫКЛ_ФИЛЬТР
Функция ВЫКЛ_ФИЛЬТР позволяет выключить фильтр хозяйственных операций.
Введена с версий ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
ВЫКЛ_ФИЛЬТР
Пример:
СОЗДАТЬ ( фст, ТИП_ФИЛЬТР )
фст.СЧИТАТЬ
СОЗДАТЬ ( фн, ТИП_ФИЛЬТР )
фн.дебет = наим// устанавливаем параметры фильтра
фн.ПРИМЕНИТЬ// применяем
ВКЛ_ФИЛЬТР
// обработка отфильтрованного ЖХО
// ...
фст.ПРИМЕНИТЬ// восстанавливаем параметры фильтра
ВЫКЛ_ФИЛЬТР
Функция ВЫПОЛНИТЬ
Функция ВЫПОЛНИТЬ позволяет запустить исполняемый файл в формате EXE, COM, BAT с параметрами.
Введена с версии ИБ 8.0 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ВЫПОЛНИТЬ (<имя файла>),
где <имя файла> – имя исполняемого файла в формате
EXE, COM или BAT.
Результат не возвращается.
Пример:
ВЫПОЛНИТЬ ("Scandisk.exe C:")
Функция ВЫРАЖЕНИЕ
Функция ВЫРАЖЕНИЕ позволяет вычислить выражение с использованием переменных бланка или типовой операции.
Введена с версий ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
ВЫРАЖЕНИЕ ( <строка выражения> [, <результат> ] )
где
<выражение> |
– |
формула или выражение строкового типа; |
<результат> |
– |
идентификатор переменной, куда будет помещен результат вычисления формулы. |
Результат – логическое выражение (ДА или НЕТ).
Функция возвращает значение ДА при успешном выполнении расчета и НЕТ, если выражение содержит ошибку.
Переменная <результат> должна быть того же типа, что и вычисляемое выражение.
Пример:
X=5
лог1=ВЫРАЖЕНИЕ ("2*X+1",Y)// Y=11, лог1=ДА
лог2=ВЫРАЖЕНИЕ ("2X+1",Y)//лог2=НЕТ
Функция ГОД
Функция ГОД позволяет выделить год из даты.
Синтаксис:
ГОД (<дата>),
где <дата> – выражение типа дата.
Результат – число от 1950 до 2049.
Пример:
нач_кв = 01.04.99
год1 = ГОД (нач_кв)// переменной год1 присваивается
// значение 1999
год2 = ГОД (01.01.49)// переменной год2 присваивается
// значение 2049
год3 = ГОД (01.01.50)// переменной год3 присваивается
// значение 1950
Функция ДАТА
Функция ДАТА позволяет преобразовать в переменную типа дата раздельно введенные в числовой или строковой форме день, месяц и год.
Синтаксис:
ДАТА (<день>,<месяц>,<год>),
где
<день>, <месяц>, <год> |
– |
числовые или строковые выражения, определяющие соответствующие параметры даты. |
Результат – дата.
Пример:
день=15
д1=ДАТА (день, 3, 99)// переменной д1 присваивается
// дата, равная 15.03.99
Функция ДАТА_КОН
Функция ДАТА_КОН позволяет получить дату окончания отчетного периода, установленную в календаре.
Синтаксис:
ДАТА_КОН
Результат – дата.
Пример:
д1=ДАТА_КОН –7// переменной д1 присваивается дата,
// меньшая на 7 дней, чем дата
// окончания отчетного периода
// переменной об присваивается значение, равное обороту
// дебета счета 50 за последние 7 дней отчетного периода
об = ОБД ( "50", д1, ДАТА_КОН )
Функция ДАТА_НАЧ
Функция ДАТА_НАЧ позволяет получить дату начала отчетного периода, установленную в календаре.
Синтаксис:
ДАТА_НАЧ
Результат – дата.
Пример:
д1=ДАТА_НАЧ+7// переменной д1 присваивается дата,
// большая на 7 дней, чем дата
// начала отчетного периода
// переменной об присваивается значение, равное обороту
// дебета счета 50 за первые 7 дней отчетного периода
об = ОБД ("50", ДАТА_НАЧ, д1)
// переменной о1 присваивается значение, равное дебетовому
// остатку счета 51 на начало отчетного периода
// (эквивалентно о1 = ОСДН ("51") )
о1 = ОСД ("51", ДАТА_НАЧ)
Функция ДАТА_ТЕК
Функция ДАТА_ТЕК позволяет получить текущую дату, установленную в календаре.
Синтаксис:
ДАТА_ТЕК
Результат – дата.
Пример:
// переменной д1 присваивается вчерашняя дата
д1 = ДАТА_ТЕК – 1
// переменной об присваивается значение, равное обороту
// дебета счета 50 за текущий день
об = ОБД ("50", ДАТА_ТЕК, ДАТА_ТЕК+1)
Функция ДАТАП
Функция ДАТАП позволяет получить дату прописью.
Синтаксис:
ДАТАП ( <дата> ),
где <дата> – выражение типа дата.
Результат – строка.
Пример:
дата=01.04.99
дп=ДАТАП (дата)// переменной дп присваивается
// строка "1 апреля 1999 г."
Функция ДАТАП0
Функция ДАТАП0 позволяет получить дату прописью.
В отличие от функции ДАТАП, числа с 1 по 9 выводятся с нулем впереди.
Синтаксис:
ДАТАП0 (<дата>),
где <дата> – выражение типа дата.
Результат – строка.
Пример:
дата=01.04.99
дп=ДАТАП0 (дата)// переменной дп присваивается
// строка "01 апреля 1999 г."
Функция ДЕНЬ
Функция ДЕНЬ позволяет выделить день недели из даты.
Синтаксис:
ДЕНЬ (<дата>)
где <дата> – выражение типа дата.
Результат – число от 1 до 7.
Пример:
нач = 08.09.99
д = ДЕНЬ (нач)// переменной д присваивается
// значение 3 (среда)
Функция ДЕНЬП
Функция ДЕНЬП позволяет получить день недели прописью.
Синтаксис:
ДЕНЬП (<день недели>)
где <день недели> – выражение числового типа, имеющее значения от 1 до 7.
Результат – строка.
Пример:
нач = 08.09.99
д=ДЕНЬ (нач)// переменной д присваивается
// значение 3 (среда)
день_пр = ДЕНЬП (д)// переменной день_пр присваивается
// строка "Среда"
Функция ДИР_DBF
Функция ДИР_DBF возвращает полный путь к директории DBF-файлов.
Введена с версии ИБ 8.0x для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДИР_DBF
Результат – строка.
Пример:
путь = ДИР_DBF// путь = "D:\IBW8NET\DATA"
Функция ДИР_WIN
Функция ДИР_WIN возвращает полный путь к директории Microsoft® Windows.
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДИР_WIN
Результат – строка.
Пример:
путь = ДИР_WIN// путь = "C:\WINDOWS"
Функция ДИР_АРХИВОВ
Функция ДИР_АРХИВОВ возвращает полный путь к директории архивов.
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДИР_АРХИВОВ
Результат – строка.
Пример:
дир_арх = ДИР_АРХИВОВ
// дир_арх = "D:\EXHIBIT\IBW8\BLANKS"
Функция ДИР_БАЗЫ
Функция ДИР_БАЗЫ возвращает полный путь к директории баз данных.
Введена с версии ИБ 8.0x для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДИР_БАЗЫ
Результат – строка.
Пример:
путь = ДИР_БАЗЫ// путь = "L:\TEST-DB"
Функция ДИР_БИБЛ
Функция ДИР_БИБЛ возвращает полный путь к директории библиотек.
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДИР_БИБЛ
Результат – строка.
Пример:
дир_библ = ДИР_БИБЛ
// дир_библ = "D:\EXHIBIT\IBW8\BLANKS"
Функция ДИР_БЛАНКОВ
Функция ДИР_БЛАНКОВ возвращает полный путь к директориям бланков.
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДИР_БЛАНКОВ [ ( <номер> ) ],
где
<номер> |
– |
номер директории из списка директорий бланков (по умолчанию – первая). |
Результат – строка.
При ошибочном номере функция возвращает пустую строку.
Пример:
дир_бл1 = ДИР_БЛАНКОВ
// дир_бл1 = "D:\EXHIBIT\IBW8\BLANKS"
дир_бл2 = ДИР_БЛАНКОВ (2)
// дир_бл2 = "D:\EXHIBIT\IBW8\BLANKS\OBPIT"
дир_бл3 = ДИР_БЛАНКОВ (3)
// дир_бл3 = ""
Функция ДИР_ВЫВОДА
Функция ДИР_ВЫВОДА возвращает полный путь к директории программ IBX.
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДИР_ВЫВОДА
Результат – строка.
Пример:
дир_ibx = ДИР_ВЫВОДА
// дир_ibx = "D:\EXHIBIT\IBW8\IBX"
Функция ДИР_ИСХТЕКСТОВ
Функция ДИР_ИСХТЕКСТОВ возвращает полный путь к директории исходных текстов (.src).
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДИР_ИСХТЕКСТОВ
Результат – строка.
Пример:
дир_исх = ДИР_ИСХТЕКСТОВ
// дир_исх = "D:\EXHIBIT\IBW8\IBX\SOURCE"
Функция ДИР_ФИЛЬТРОВ
Функция ДИР_ФИЛЬТРОВ возвращает полный путь к директории фильтров.
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДИР_ФИЛЬТРОВ
Результат – строка.
Пример:
дир_флт = ДИР_ФИЛЬТРОВ
// дир_флт = "D:\EXHIBIT\IBW8\FILTERS"
Функция ДЛИНА
Функция ДЛИНА позволяет получить длину строки.
Введена с версии ИБ 7.x для Windows и 3.0 для DOS.
Синтаксис:
ДЛИНА (<строка>)
где <строка> – строковое выражение.
Результат – число.
Пример:
Дл = ДЛИНА ("ABCD")// Дл=4
Функция ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ
Функция ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ позволяет добавить новое определение к списку определений (пункт меню Установка/ Определения).
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ (<код>, <комментарий>, <значение>),
где
<код> |
– |
это идентификатор, по которому можно обращаться к определению; |
<комментарий> |
– |
пояснительный текст к определению; |
<значение> |
– |
константа или выражение любого допустимого в программе типа, кроме объектных типов. |
Пример:
вр = ВРЕМЯ_ТЕК
ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ ("ВРЕМЯ_ЗАП", "Время запуска бланка", вр)
ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ ("минзп_0001", "Минимальная зарплата по месяцам", 83.49)
СООБЩЕНИЕ ("Определение добавлено")
Функция ДОБАВИТЬ_РЕКВИЗИТ
Функция ДОБАВИТЬ_РЕКВИЗИТ позволяет добавить новый реквизит к списку реквизитов (пункт меню Установка/ Реквизиты).
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ДОБАВИТЬ_РЕКВИЗИТ (<код>, <комментарий>, <значение>),
где
<код> |
– |
это идентификатор, по которому можно обращаться к реквизиту; |
<комментарий> |
– |
пояснительный текст к реквизиту; |
<значение> |
– |
константа или выражение строкового типа. |
Пример:
ДОБАВИТЬ_РЕКВИЗИТ ("Факс", "Номер факса организации",
"261-21-21")
СООБЩЕНИЕ ("Реквизит добавлен")
Функция ДОБАВИТЬ_СЧЕТ
Функция ДОБАВИТЬ_СЧЕТ позволяет Вам динамически, во время выполнения формульного раздела, добавлять новые счета и субсчета в план счетов.
Введена с версий ИБ 7.06 для Windows и 3.x для DOS.
Синтаксис:
ДОБАВИТЬ_СЧЕТ ( <код счета> [,<название счета>,
<раздел баланса>,<сумма остатка>
[,<единицы>,<количество>
[,<фикс. цена>] ] ] )
где
<код счета> |
– |
строка, определяющая код вводимого счета или субсчета (например, 10/БАЛКИ); |
<название счета> |
– |
строка, определяющая название вводимого счета или субсчета (например, "Балки ж/б ГОСТ 76443-3456"); |
<раздел баланса> |
– |
может принимать следующие значения:
(можно сократить до А);
(можно сократить до П);
|
<сумма остатка> |
– |
число, определяющие начальный (исходный) остаток; |
<единицы> |
– |
строка, задающая единицы измерения для счетов, по которым ведется количественно-суммовой учет; |
<количество> |
– |
число, задающее начальное количество для счетов, по которым ведется количественно-суммовой учет; |
<фикс. цена> |
– |
число, определяющее фиксированную цену для счетов, по которым ведется количественно-суммовой учет. Если цена не указана, то для счета будет использоваться средняя цена, определяемая суммой и количеством. |
Если Вы задали единицы и количество, то создается счет, по которому будет вестись количественно-суммовой учет. Параметры <код счета>, <название счета> и <раздел баланса> можно задавать пустыми строками (""), а также допустимо задавать только один параметр - <код счета>. В этом случае параметры, создаваемого счета или субсчета будут запрошены программой во время формирования документа.
Начиная с версии ИБ 8.3, в функциях ДОБАВИТЬ_СЧЕТ и ДОБАВИТЬ_СЧЕТ! сделана возможность задавать признак счета «Аналитика», для чего в строке раздела баланса через запятую или точку с запятой следует указать ключевое слово АН.
Пример:
// Добавить в план счетов новый субсчет 10/БАЛКИ к счету 10
ДОБАВИТЬ_СЧЕТ ( "10/БАЛКИ",
"Балки ж/б ГОСТ 76443-3456",
"АКТ", 5 000 000.00)
// Запросить все параметры вводимого счета
ДОБАВИТЬ_СЧЕТ ("")
// Добавить счет с аналитикой
//правильно
ДОБАВИТЬ_СЧЕТ ("А/Б/В", "Счет с аналитикой", "А/П, АН", 0)
ДОБАВИТЬ_СЧЕТ ("А/Б/В", "Счет с аналитикой", "А/П; АН", 0)
ДОБАВИТЬ_СЧЕТ ("А/Б/В", "Счет с аналитикой", "А/П"+", АН", 0)
//неправильно
ДОБАВИТЬ_СЧЕТ ("А/Б/В", "Счет с аналитикой", "А/П"+"АН", 0)
ДОБАВИТЬ_СЧЕТ ("А/Б/В", "Счет с аналитикой", "А/П","АН", 0)
Функция ДОБАВИТЬ_СЧЕТ!
Функция ДОБАВИТЬ_СЧЕТ! аналогична функции ДОБАВИТЬ_СЧЕТ, но в этом случае счет добавляется без дополнительных запросов.
Введена с версий ИБ 7.06 для Windows и 3.x для DOS.
Синтаксис:
ДОБАВИТЬ_СЧЕТ! ( <код счета> ,<название счета>
[,<раздел баланса>,<сумма остатка>
[,<единицы>,<количество>
[,<фикс. цена>] ] ] )
Замечание!В данной функции обязательно нужно указывать параметры код счета и название счета. В противном случае, появится окно запроса дополнительный параметров.
Функция ДРОБ
Функция ДРОБ позволяет выделить дробную часть числа.
Введена с версий ИБ 8.21 для Windows.
Синтаксис:
ДРОБ (<числовое выражение>)
Результат – число.
Пример:
ч1=ДРОБ (5.678)// ч1=0.678
Функция ЕДИН
Функция ЕДИН позволяет получить единицу измерения количественно-суммового счета.
Синтаксис:
ЕДИН (<код счета>)
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – строка.
Пример:
Пусть на счете 10/Тара ведется количественно-суммовой учет в штуках (шт.). Тогда,
ед_изм=ЕДИН ("10/Тара")// ед_изм="шт."
Функция ЕСТЬ_BDE
Функция ЕСТЬ_BDE позволяет определить, установлен ли на компьютере BDE (Borland Database Engine).
Введена с версии ИБ 8.0 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ЕСТЬ_BDE
Результат – логическое выражение ( ДА или НЕТ ).
Пример:
ЕCЛИ ЕСТЬ_BDE ТО
Б = SQL_СОЗДАТЬ ("Newtabl.dbf",
["ItemName": ТИП_СТРОКА: 40,
"iPrice": ТИП_ЧИСЛО: 12; 2,
"iCount": ТИП_ЧИСЛО: 10; 0,
"iDate": ТИП_ДАТА ] )
ИНАЧЕ
Б = БД_СОЗДАТЬ ( "Newtabl.dbf" )
КОНЕЦ_ЕСЛИ
Функция ЕСТЬ_СУБСЧ
Функция ЕСТЬ_СУБСЧ позволяет проверить наличие субсчетов у конкретного счета.
Синтаксис:
ЕСТЬ_СУБСЧ(<код счета>)
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – логическое выражение (ДА или НЕТ).
Пример:
ЕСЛИ ЕСТЬ_СУБСЧ ("04") ТО
стр = "Субсчета есть"
ИНАЧЕ
стр = "Субсчетов нет"
КОНЕЦ_ЕСЛИ
Функция ЗАГЛ
Функция ЗАГЛ позволяет преобразовать прописные буквы строки в заглавные.
Введена с версии ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
ЗАГЛ (<строка>)
где <строка> – выражение строкового типа.
Результат – строка.
Пример:
ЗАГЛ ("Иванов")// Результат: "ИВАНОВ"
Функция ЗАП_ОПЕР
Функция ЗАП_ОПЕР применяется для разделения хозяйственных операций при их формировании с использованием функции ПРОВОДКА.
По умолчанию, последовательно вводимые проводки добавляются к одной хозяйственной операции. Функцию ЗАП_ОПЕР можно использовать при необходимости закончить формирование текущей хозяйственной операции, а следующие проводки отнести к следующей хозяйственной операции.
Синтаксис:
ЗАП_ОПЕР
Пример:
ПРОВОДКА ("46", "20", ОСД ("20")) // Эти проводки попадут
ПРОВОДКА ("46", "26", ОСД ("26")) // в 1-ю хоз. операцию
ЗАП_ОПЕР
ПРОВОДКА ("80", "46", ОСД ("46")) // Эти проводки попадут
ПРОВОДКА ("46", "80", ОСК ("46")) // во 2-ю хоз. операцию
Функция ЗАП_ОПЕР!
Функция ЗАП_ОПЕР! аналогична ЗАП_ОПЕР, но в этом случае диалог редактирования хозяйственной операции не выводится, и операция добавляется без дополнительных запросов.
Функция ЗАМ
Функция ЗАМ позволяет заменить все подстроки в строке.
Введена с версии ИБ 8.21 для Windows.
Синтаксис:
ЗАМ ( <искомая подстрока>, <исходная строка>, <подстановка>)
Результат – строка.
Пример:
стр= ЗАМ ("45", "8 768 458 745", "671")// стр="8 768 6718 7671"
Функция ЗВУК
Функция ЗВУК позволяет проигрывать WAV-файлы (на компьютерах, оборудованных звуковой картой).
Введена с версии ИБ 8.21 для Windows.
Синтаксис:
ЗВУК ( <имя файла >)
где <имя файла> – имя звукового файла ( .wav).
Пример:
имя_файла = ВЫБОР_ФАЙЛА ("C:\WinNT\Media\*.wav")
ЗВУК ( имя_файла )
Функция ЗНАЧ
Функция ЗНАЧ позволяет преобразовать строку в число (если это возможно).
Синтаксис:
ЗНАЧ (<строка>),
где <строка> – выражение строкового типа.
Результат – число.
Пример:
ЗНАЧ ("34") // Результат: 34
ЗНАЧ ("100.25")// Результат: 100.25
ЗНАЧ ("-10") // Результат: -10
Функция ЗНАЧ_ТЕСТ
Функция позволяет проверить возможность преобразования строки в число с помощью функции ЗНАЧ.
Синтаксис:
ЗНАЧ_ТЕСТ (<строка>),
где <строка> – выражение строкового типа.
Результат – логическое выражение:
ДА– если преобразование возможно;
НЕТ– если преобразование невозможно.
Пример:
В данном примере производится преобразование переменной стр в число. Полученное число записывается в переменную число. С помощью функции ЗНАЧ_ТЕСТ осуществляется проверка строки, содержащейся в переменной стр.
ЕСЛИ ЗНАЧ_ТЕСТ (стр) ТО// Проверка строки
число=ЗНАЧ (стр) // Преобразование строки в число
ИНАЧЕ// Вывод сообщения
СООБЩЕНИЕ ("Ошибка! Будет взято нулевое значение")
число=0// Переменная число равна нулю
КОНЕЦ_ЕСЛИ
Если строку невозможно преобразовать в число, то на экран будет выведено сообщение, заданное параметром функции СООБЩЕНИЕ, а переменной число присвоится значение 0.
Функция ИСХ_ОСТ
Функция ИСХ_ОСТ позволяет получить суммовой остаток по счету.
Введена с версий ИБ 7.1 для Windows и 3.0 для DOS.
Синтаксис:
ИСХ_ОСТ (<код счета>)
где <код счета> – код счета последнего уровня.
Результат – число.
Пример:
остаток=ИСХ_ОСТ ("10/БАЛКИ")// Результат: 50000.00
Функция ИСХ_ОСТ_K
Функция ИСХ_ОСТ_К позволяет получить количественный остаток по счету, где ведется количественно-суммовой учет.
Введена с версии ИБ 7.1 для Windows и 3.0 для DOS.
В минимальной версии данная функция отсутствует.
Синтаксис:
ИСХ_ОСТ_К (<код счета>)
где <код счета> – код счета последнего уровня.
Результат – число.
Пример:
Кол_во = ИСХ_ОСТ_К ("10/БАЛКИ")// Результат: 10
Функция ИСХ_ОСТ_ЦЕНА
Функция ИСХ_ОСТ_ЦЕНА позволяет получить среднюю или фиксированную цену по счету.
Введена с версий ИБ 7.1 для Windows и 3.0 для DOS.
Синтаксис:
ИСХ_ОСТ_ЦЕНА (<код счета>)
где <код счета> – код счета последнего уровня.
Результат – число.
Пример:
цена=ИСХ_ОСТ_ЦЕНА ("10/БАЛКИ") // Результат: 50000.00
Функция КОД_СИМВ
Функция КОД_СИМВ позволяет получить ASCII-код символа.
Введена с версий ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
КОД_СИМВ (<символ>)
где <символ> – выражение строкового типа.
Результат – число.
Пример:
КОД_СИМВ (" ")// Результат: 32 (код пробела)
КОД_СИМВ ("PRICE")// Результат: 80 (код буквы "P")
Функция КОНЕЦ_СТРАНИЦЫ
Функция КОНЕЦ_СТРАНИЦЫ позволяет вставить разрыв страницы в произвольное место бланка. Данная функция может быть использована, если размер документа заранее не определен, например, при использовании функций ВСТАВИТЬ_СТРОКУ или ВСТАВИТЬ_РАМКУ.
Применяется в Windows-версиях.
Синтаксис:
КОНЕЦ_СТРАНИЦЫ (<номер строки>),
где
<номер строки> |
– |
номер строки, перед которой будет вставлен разрыв страницы |
Пример:
// Девятая строка документа будет последней строкой на
// странице
КОНЕЦ_СТРАНИЦЫ (10)
// с 10-ой строки документа начнется новая страница
Функция КОП
Функция КОП позволяет получить копейки от суммы.
Синтаксис:
КОП (<сумма>),
где <сумма> – числовое выражение.
Результат – число.
Пример:
к1=КОП (73.85)// переменной к1 присваивается значение 85
Функция КОПП
Функция КОПП позволяет получить слово «копейка» с правильным окончанием, зависящим от суммы.
Синтаксис:
КОПП (<сумма>),
где <сумма> – числовое выражение.
Результат – строка.
Пример:
с1=КОПП (25)// переменной с1 присваивается "копеек"
с2=КОПП (1)// переменной с2 присваивается "копейка"
Функция ЛОГ
Функция ЛОГ позволяет получить натуральный логарифм числа.
Синтаксис:
ЛОГ (<выражение>),
где
<выражение> |
– |
константа или выражение числового типа. Значение этого выражения должно быть больше нуля. |
Результат – число.
Пример:
а=ЛОГ (1)// переменной а присваивается значение 0
Функция МАКС
Функция МАКС позволяет выбрать большее значение из двух чисел, более позднюю дату из двух дат или более длинную строку из двух строк.
Синтаксис:
МАКС(<выражение 1>,<выражение 2>),
где
<выражение 1> <выражение 2> |
– |
константы или выражения числового типа, типа дата или строкового типа. Тип <выражение 1> должен совпадать с типом <выражение 2>. |
Результат |
– |
число, дата или строка, в зависимости от типа выражений. |
Пример:
а_макс=МАКС (2, 5–1)// переменной а_макс присваивается
// значение 4
дм=МАКС (01.05.99,31.04.99)// переменной дм присваивается
// значение даты 01.05.99
м=МАКС (1, МАКС (2,3) )// переменной м присваивается
// значение 3
Функция МЕС
Функция МЕС позволяет выделить номер месяца из даты.
Синтаксис:
МЕС (<дата>),
где <дата> – выражение типа дата.
Результат – число от 1 до 12.
Пример:
нач_кв = 01.04.99// переменной мес присваивается
мес = МЕС (нач_кв)// значение 4 (апрель)
Функция МЕСП
Функция МЕСП позволяет получить название месяца прописью.
Синтаксис:
МЕСП (<месяц>)
где <месяц> – выражение числового типа от 1 до 12.
Результат – строка.
Пример:
нач_кв = 01.10.99
м = МЕС (нач_кв)// переменной м присваивается
// значение 10
мес_пр = МЕСП (м)// переменной мес_пр присваивается
// строка "Октябрь"
Функция МИН
Функция МИН позволяет выбрать меньшее значение из двух чисел, более раннюю дату из двух дат или более короткую строку из двух строк.
Синтаксис:
МИН (<выражение 1>,<выражение 2>)
где
<выражение 1> <выражение 2> |
– |
константы или выражения числового типа, типа дата или строкового типа. Тип <выражение 1> должен совпадать с типом <выражение 2>. |
Результат |
– |
число, дата или строка, в зависимости от типа выражений. |
Пример:
а_мин = МИН(2, 5-1)// переменной а_мин присваивается
// значение 2
дм = МИН(01.01.99,01.04.99)// переменной дм присваивается
// дата 01.01.99
Функция МИНУТЫ
Функция МИНУТЫ позволяет выделить минуты из времени.
Синтаксис:
МИНУТЫ (<время>),
где <время> – выражение типа время.
Результат – число от 0 до 59.
Пример:
время1 = 00:05
мин1 = МИНУТЫ (время1)// переменной мин1 присваивается
СООБЩЕНИЕ (СТР (мин1))// значение 5
время2 = 19:35:50
мин2 = МИНУТЫ (время2)// переменной мин2 присваивается
СООБЩЕНИЕ (СТР (мин2))// значение 35
Функция НАЗВ
Функция НАЗВ позволяет получить название счета.
Синтаксис:
НАЗВ (<код счета>)
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – строка.
Пример:
назв_счет = НАЗВ ("50")// назв_счет="Касса"
Функция ОБД
Функция ОБД позволяет получить величину оборота по дебету счета за определенный период времени.
Синтаксис:
ОБД ( [<код счета>] [,<код корр. счета>] [,<дата1>, <дата2>] )
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов; |
<код корр. счета> |
– |
строка, соответствующая коду корреспондирующего счета. Если корр. счет не указан, то оборот рассчитывается в корреспонденции со всеми счетами; |
<дата 1>,<дата 2> |
– |
даты, определяющие границы периода, за который рассчитывается оборот. Если даты не указаны, то оборот рассчитывается за отчетный период. |
Результат – число.
Если код счета пропущен, выдается сумма дебетовых оборотов всех балансовых счетов.
Примеры:
// переменной об51 присваивается значение, равное обороту
// дебета счета 51 за отчетный период
об51 = ОБД ("51")
// переменной об51_26 присваивается значение, равное обороту
// дебета счета 51 в корреспонденции со счетом 26
// за отчетный период
об51_26=ОБД ("51","26")
// переменной а1_10 присваивается значение, равное обороту
// дебета счета 51 за 1-ю декаду апреля 1999
а1_10 = ОБД ("51", 01.04.99, 11.04.99)
// переменной б1_10 присваивается значение, равное обороту
// дебета счета 51 в корреспонденции со счетом 26
// за 1-ю декаду апреля 1999 года
б1_10 = ОБД ("51", "26", 01.04.99, 11.04.99)
Функция ОБД_К
Функция ОБД_К позволяет получить величину оборота по дебету счета за определенный период времени в количественном выражении.
В минимальной версии данная функция отсутствует.
Синтаксис:
ОБД_К (<код счета> [,<код корр. счета>] [,<дата 1>, <дата 2>]),
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов; |
<код корр. счета> |
– |
строка, соответствующая коду корреспондирующего счета. Если корреспондирующий счет не указан, оборот рассчитывается в корреспонденции со всеми счетами; |
<дата 1>,<дата 2> |
– |
даты, определяющие границы периода, за который рассчитывается оборот. Если даты не указаны, оборот рассчитывается за отчетный период. |
Результат – число.
Пример:
приход=ОБД_К (“10/БАЛКИ”)
Функция ОБК
Функция ОБК позволяет получить величину оборота по кредиту счета за определенный период времени.
Синтаксис:
ОБК ( [<код счета>] [,<код корр. счета>] [,<дата1>, <дата2>] ),
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов; |
<код корр. счета> |
– |
строка, соответствующая коду корреспондирующего счета. Если корр. счет не указан, оборот рассчитывается в корреспонденции со всеми счетами); |
<дата 1>,<дата 2> |
– |
даты, определяющие границы периода, за который рассчитывается оборот. Если даты не указаны, оборот рассчитывается за отчетный период. |
Результат – число.
Если код счета пропущен, выдается сумма кредитовых оборотов всех балансовых счетов.
Пример:
// переменной об51 присваивается значение, равное обороту
// кредита счета 51 за отчетный период
об51 = ОБК ("51")
// переменной об51_26 присваивается значение, равное обороту
// в корреспонденции со счетом 26 кредита счета 51
// за отчетный период
об51_26 = ОБК ("51", "26")
// переменной а1_10 присваивается значение, равное обороту
// кредита счета 51 за 1-ю декаду апреля 1999 года
а1_10 = ОБК ("51", 01.04.99, 11.04.99)
// переменной б1_10 присваивается значение, равное обороту
// кредита счета 51 в корреспонденции со счетом 26
// за 1-ю декаду апреля 1998 года
б1_10 = ОБК ("51", "26", 01.04.99, 11.04.99)
Функция ОБК_К
Функция ОБК_К позволяет получить величину оборота по кредиту счета за определенный период времени в количественном выражении.
Синтаксис:
ОБК_К(<код счета>[,<код корр. счета>] [,<дата1>,<дата2>] )
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов; |
<код корр. счета> |
– |
строка, соответствующая коду корреспондирующего счета. Если корр. счет не указан, оборот рассчитывается в корреспонденции со всеми счетами; |
<дата 1>,<дата 2> |
– |
даты, определяющие границы периода, за который рассчитывается оборот. Если даты не указаны, оборот рассчитывается за отчетный период. |
Результат – число.
Пример:
расход = ОБК_К ("10/БАЛКИ")
Функция ОКРУГЛЕНИЕ
Функция ОКРУГЛЕНИЕ применяется для автоматического округления значений, присваиваемых переменным числового типа в формульной части бланка или типовой операции.
Округление действует с момента появления данной функции до окончания формульной части (или до задания другого округления).
Функция ОКРУГЛЕНИЕ также возвращает округленное число.
Введена с версии ИБ 7.11 для Windows и 3.5 для DOS.
Синтаксис:
ОКРУГЛЕНИЕ (<кол-во знаков>),
где
<кол-во знаков> |
– |
выражение числового типа, определяющее количество десятичных знаков после запятой (0…18). |
ОКРУГЛЕНИЕ (<значение> [, <дес. знаков>]),
где
<значение> |
– |
исходное число; |
<дес. знаков> |
– |
количество десятичных знаков при округлении. |
Если второго параметра нет, то выполняется округление по умолчанию, т.е.
– до 2-х десятичных знаков, если не использовалась функция ОКРУГЛЕНИЕ;
– до параметра, заданного в последнем вызове функции ОКРУГЛЕНИЕ.
Пример 1:
а = 12375/1000// а=12.375
б = 12%// б=0.12
ОКРУГЛЕНИЕ (1)
а = 12375/1000// а=12.4
б = 12%// б=0.1
Пример 2:
Режим автоматического округления позволяет избежать несоответствия выведенных в поля вывода бланка значений, округляемых в соответствии с форматом поля. Например, в случае, если какая-либо графа является суммой некоторых других.
Пусть графы вывода сумма1, сумма2 и итого имеют по два десятичных знака после запятой.
Тогда, при обработке бланка:
сумма1=3809.72*1%// сумма1=38.0972
сумма2=1234.56*1%// сумма2=12.3456
итого=сумма1+сумма2// итого=50.4428
будет выведено:
Сумма 1 : 38.10
Сумма 2 : 12.35
_________________
Итого : 50.44( ! ).
Чтобы избежать несоответствия, можно добавить в начало формульной части функцию ОКРУГЛЕНИЕ:
ОКРУГЛЕНИЕ (2)// Теперь:
сумма1=3809.72*1%// сумма1=38.10
сумма2=1234.56*1%// сумма2=12.35
итого=сумма1+сумма2// итого=50.45
В выходные поля будет выведено:
Сумма 1 : 38.10
Сумма 2 : 12.35
_________________
Итого : 50.45
Пример3:
ОКРУГЛЕНИЕ (2)
а=ОКРУГЛЕНИЕ (Итого)// округление до 2-х знаков
а=ОКРУГЛЕНИЕ (Итого, 2)// после запятой
а=ОКРУГЛЕНИЕ (Итого, -3)// округление до целых тысяч
Функция ОПЕР_ВСЕГО
Функция ОПЕР_ВСЕГО позволяет узнать количество хозяйственных операций в журнале.
Синтаксис:
ОПЕР_ВСЕГО
Результат – число.
Пример:
оборот = 0// вычисляется суммарный оборот
// цикл по всем операциям
ЦИКЛ ДЛЯ (опер=1, ОПЕР_ВСЕГО)
// цикл по всем проводкам в операции
ЦИКЛ ДЛЯ (пр=1, ОПЕР_ПРОВ (опер) )
оборот = оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЦИКЛА
Функция ОПЕР_ДАТА
Функция ОПЕР_ДАТА позволяет узнать дату хозяйственной операции по ее номеру в журнале хозяйственных операций.
Синтаксис:
ОПЕР_ДАТА (<номер операции>),
Результат – дата.
Пример:
оборот = 0// вычисляется оборот за указанную дату
// цикл по операциям
ЦИКЛ ДЛЯ (опер=ОПЕР_ОТ (дата), ОПЕР_ВСЕГО)
ЕСЛИ ОПЕР_ДАТА (опер) > дата ТО
СТОП
КОНЕЦ_ЕСЛИ
// цикл по всем проводкам в операции
ЦИКЛ ДЛЯ (пр=1, ОПЕР_ПРОВ (опер) )
оборот = оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЦИКЛА
Функция ОПЕР_ДОК
Функция ОПЕР_ДОК позволяет узнать номер документа хозяйственной операции.
Синтаксис:
ОПЕР_ДОК (<номер операции>)
Результат – строка.
Пример:
оборот = 0// вычисляется суммарный оборот
// всех платежных поручений
// цикл по всем операциям
ЦИКЛ ДЛЯ (опер=1, ОПЕР_ВСЕГО)
док=ОПЕР_ДОК (опер)
ЕСЛИ ПОДСТР (док,1,2)="пп" ТО
// цикл по всем проводкам в операции
ЦИКЛ ДЛЯ (пр=1, ОПЕР_ПРОВ (опер) )
оборот = оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
Функция ОПЕР_ОТ
Функция ОПЕР_ОТ позволяет узнать номер первой хозяйственной операции за некоторую дату.
Введена с версий ИБ 7.1 для Windows и 3.5 для DOS.
Синтаксис:
ОПЕР_ОТ (<дата>)
Результат – число.
Если за указанный день не было хозяйственных операций, то возвращается номер первой операции после заданной даты.
Пример:
оборот = 0// вычисляется оборот за определенную дату
// цикл по всем операциям за день
ЦИКЛ ДЛЯ (опер=ОПЕР_ОТ (дата), ОПЕР_ОТ (дата+1) -1)
// цикл по всем проводкам в операции
ЦИКЛ ДЛЯ (пр=1, ОПЕР_ПРОВ (опер))
оборот = оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЦИКЛА
Функция ОПЕР_ПРОВ
Функция ОПЕР_ПРОВ позволяет узнать количество проводок в хозяйственной операции.
Синтаксис:
ОПЕР_ПРОВ (<номер операции>)
Результат – число.
Пример:
оборот = 0// вычисляется суммарный оборот
// цикл по всем операциям
ЦИКЛ ДЛЯ (опер=1, ОПЕР_ВСЕГО)
// цикл по всем проводкам в операции
ЦИКЛ ДЛЯ (пр=1, ОПЕР_ПРОВ (опер) )
оборот = оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЦИКЛА
Функция ОПЕР_РМ
Функция ОПЕР_РМ позволяет узнать номер рабочего места хозяйственной операции.
Синтаксис:
ОПЕР_РМ (<номер операции>)
Результат – число.
Пример:
оборот = 0// вычисляется оборот на рабочем месте раб_м
// цикл по всем операциям
ЦИКЛ ДЛЯ (опер=1, ОПЕР_ВСЕГО)
ЕСЛИ ОПЕР_РМ (опер) = раб_м ТО
// цикл по всем проводкам в операции
ЦИКЛ ДЛЯ ( пр=1, ОПЕР_ПРОВ (опер) )
оборот = оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
Функция ОПЕР_СОД
Функция ОПЕР_СОД позволяет узнать содержание хозяйственной операции.
Синтаксис:
ОПЕР_СОД (<номер операции> [,<номер строки>] ),
где
<номер строки> |
– |
необязательный параметр, определяющий номер строки содержания (1 или 2). Если этот параметр не указан, то обе строки содержания возвращаются как одна суммарная строка. |
Результат – строка.
Пример:
Пусть операция № 3 в журнале хозяйственных операций имеет содержание: "Выдано в подотчет Иванову А.Г.".
стр=ОПЕР_СОД (3)// стр="Выдано в подотчет Иванову А.Г."
стр=ОПЕР_СОД (3,1)// стр="Выдано в подотчет"
стр=ОПЕР_СОД (3,2)// стр="Иванову А.Г."
Функция ОПРЕДЕЛИТЬ
Функция ОПРЕДЕЛИТЬ, позволяет задать строку-идентификатор, по которой переменная будет известна функции ВЫРАЖЕНИЕ.
Введено с версии ИБ 8.0 для Windows.
Синтаксис:
ОПРЕДЕЛИТЬ ( <строковое выражение>, <переменная> )
Пример:
А = 4
Б = 5
ОПРЕДЕЛИТЬ ("СТА", A)
ОПРЕДЕЛИТЬ ("СТБ", Б )
успех = ВЫРАЖЕНИЕ ( "СТА+СТБ", результат )
// успех = ДА, результат = 9
Функция ОСД
Функция ОСД позволяет получить величину дебетового остатка счета на определенный момент времени.
Синтаксис:
ОСД ( [<код счета>] [,<дата>] )
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов; |
<дата> |
– |
дата, определяющая день, на начало которого рассчитывается остаток счета. Если дата не указана, остаток рассчитывается на конец отчетного периода. |
Результат – число.
Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.
Пример:
// переменной ост51 присваивается значение, равное дебетовому
// остатку счета 51 на конец отчетного периода
ост51 = ОСД ("51")
// переменной а15 присваивается значение, равное дебетовому
// остатку счета 51 на 1 апреля 1999 года
а15 = ОСД ("51", 01.04.99)
Функция ОСД_К
Функция ОСД_К позволяет получить величину дебетового остатка счета на определенный момент времени, в количественном измерении.
В минимальной версии данная функция отсутствует.
Синтаксис:
ОСД_К ( [<код счета>] [,<дата>] ),
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов; |
<дата> |
– |
дата, определяющая день, на начало которого рассчитывается остаток счета. Если дата не указана, остаток рассчитывается на конец отчетного периода. |
Результат – число.
Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.
Пример:
колич1 = ОСД_К ("10/БАЛКИ")
колич2 = ОСД_К ("10/БАЛКИ", 15.04.99)
Функция ОСДН
Функция ОСДН позволяет получить величину дебетового остатка счета на начало отчетного периода.
Синтаксис:
ОСДН ([<код счета>] ),
где <код счета> – строка, соответствующая коду счета в плане счетов.
Результат – число.
Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.
Замечание:
Для счетов с суммовым учетом результат выдается в денежном выражении, а для счетов с количественно-суммовым учетом – в количественном выражении. В этом случае, для получения денежного значения, необходимо умножить результат на цену единицы измерения (функция ЦЕНА).
Пример:
// переменной ост51 присваивается значение, равное
// дебетовому остатку счета 51 на начало отчетного периода
ост51 = ОСДН ("51")
Функция ОСДН_К
Функция ОСДН_К позволяет получить величину дебетового остатка счета на начало отчетного периода в количественном измерении.
В минимальной версии данная функция отсутствует.
Синтаксис:
ОСДН_К ( [<код счета>] )
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – число.
Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.
Пример:
колич = ОСДН_К ("10/БАЛКИ")
Функция ОСК
Функция ОСК позволяет получить величину кредитового остатка счета на определенный момент времени.
Синтаксис:
ОСК ( [<код счета>] [,<дата>] )
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов; |
<дата> |
– |
дата, определяющая день, на начало которого рассчитывается остаток счета. Если дата не указана, остаток рассчитывается на конец отчетного периода. |
Результат – число.
Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.
Пример:
// переменной ост85 присваивается значение, равное
// кредитовому остатку счета 85 на конец отчетного периода
ост85 = ОСК ("85")
// переменной а15 присваивается значение, равное
// кредитовому остатку счета 85 на 05 апреля 1999
а15 = ОСК ("85", 05.04.99)
Функция ОСК_К
Функция ОСК_К позволяет получить величину кредитового остатка счета на определенный момент времени в количественном измерении.
В минимальной версии данная функция отсутствует.
Синтаксис:
ОСК_К ( [<код счета>] [,<дата>] )
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов; |
<дата> |
– |
дата, определяющая день, на начало которого рассчитывается остаток счета. Если дата не указана, остаток рассчитывается на конец отчетного периода. |
Результат – число.
Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.
Пример:
колич1 = ОСК_К ("02/1/25/02")
колич2 = ОСК_К ("02/1/25/02", 15.04.99)
Функция ОСКН
Функция ОСКН позволяет получить величину кредитового остатка счета на начало отчетного периода.
Синтаксис:
ОСКН ( [<код счета>] )
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – число.
Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.
Пример:
// переменной ост85 присваивается значение, равное
// кредитовому остатку счета 85 на начало отчетного периода
ост85 = ОСКН ("85")
Функция ОСКН_К
Функция ОСКН_К позволяет получить величину кредитового остатка счета на начало отчетного периода.
В минимальной версии данная функция отсутствует.
Синтаксис:
ОСКН_К ( [<код счета>] )
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – число.
Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.
Пример:
колич = ОСДН_К ("02/1/25/02")
Функция ПОДСТР
Функция ПОДСТР позволяет выделить подстроку из строки.
Синтаксис:
ПОДСТР (<строка>, <нач. позиция> [,<длина>] ),
где
<строка> |
– |
исходная строка; |
<нач. позиция> |
– |
начальная позиция подстроки в исходной строке; |
<длина> |
– |
длина выделяемой подстроки. |
Результат – строка.
Замечание:Если не задан параметр длина, то выделяется подстрока от начальной позиции до конца исходной строки.
Пример:
ПОДСТР ("12345678", 5)// Результат: "5678"
ПОДСТР ("12345678", 5, 2)// Результат: "56"
Функция ПОДСЧ
Функция ПОДСЧ позволяет выделить подсчет заданного уровня из полного кода субсчета.
Синтаксис:
ПОДСЧ (<код счета>, <уровень> ),
где
<код счета> |
– |
полный код субсчета, в котором коды субсчетов отделяются символами “/”; |
<уровень> |
– |
выражение числового типа, задающее уровень. |
Результат – строка.
Пример:
суб_сч = "10/01/03"
сч_1 = ПОДСЧ (суб_сч, 1)// переменной сч_1 присваивается
// строка "10"
сч_2 = ПОДСЧ (суб_сч, 2)// переменной сч_2 – "01"
сч_3 = ПОДСЧ (суб_сч, 3)// переменной сч_3 – "03"
Функция ПОЗ
Функция ПОЗ позволяет получить позицию в строке подстроки. Если подстрока в строке не найдена, то функция возвращает нуль.
Введена с версий ИБ 7.1х для Windows и 3.5 для DOS.
Синтаксис:
ПОЗ (<подстрока>, <строка>),
где
<подстрока> <строка> |
– |
выражения строкового типа. |
Результат – число.
Пример:
ПОЗ ("ГОСТ", "Балки ГОСТ 76443-3456")//Результат: 7
Функция ПОЛЬЗОВАТЕЛЬ
Функция ПОЛЬЗОВАТЕЛЬ позволяет получить имя текущего пользователя в сетевой версии. В локальной версии функция возвращает пустую строку.
Синтаксис:
ПОЛЬЗОВАТЕЛЬ,
Результат – строка.
Пример:
пл = ПОЛЬЗОВАТЕЛЬ
// в сетевой версии:пл = "Администратор"
пл = ПОЛЬЗОВАТЕЛЬ
// в локальной версии:пл = ""
Функция ПРАЗДНИК
Функция ПРАЗДНИК позволяет узнать, является ли заданный день праздничным. Функция пользуется данными, содержащимися в файле Holiday.ini, которыми также пользуется встроенный календарь.
Синтаксис:
ПРАЗДНИК (<дата>)
Результат – логическое выражение (ДА или НЕТ).
Пример:
рез = ПРАЗДНИК (01.01.2001)// рез = ДА
Функция ПРОВ_ДЕБ
Функция ПРОВ_ДЕБ позволяет узнать счет дебета в проводке.
Синтаксис:
ПРОВ_ДЕБ (<номер операции>,<номер проводки>)
Результат – строка.
Пример:
оборот=0// вычисляется оборот по дебету счета "50"
// цикл по всем операциям
ЦИКЛ ДЛЯ (опер=1, ОПЕР_ВСЕГО )
// цикл по всем проводкам в операции
ЦИКЛ ДЛЯ (пр=1, ОПЕР_ПРОВ (опер) )
ЕСЛИ ПРОВ_ДЕБ (опер, пр)="50" ТО
оборот = оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЦИКЛА
Функция ПРОВ_КОЛ
Функция ПРОВ_КОЛ позволяет узнать количество в проводке.
В минимальной версии данная функция отсутствует.
Синтаксис:
ПРОВ_КОЛ (<номер операции>, <номер проводки>)
Результат – число.
Пример:
оборот=0// вычисляется количественный оборот
// по всему журналу
// цикл по всем операциям
ЦИКЛ ДЛЯ (опер=1, ОПЕР_ВСЕГО )
// цикл по всем проводкам в операции
ЦИКЛ ДЛЯ (пр=1, ОПЕР_ПРОВ (опер))
ЕСЛИ СЧЕТ_КОЛ (ПРОВДЕБ (опер, пр)) ИЛИ
СЧЕТ_КОЛ (ПРОВ_КРЕД (опер, пр)) ТО
оборот = оборот + ПРОВ_КОЛ (опер, пр)
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЦИКЛА
Функция ПРОВ_КРЕД
Функция ПРОВ_КРЕД позволяет узнать счет кредита в проводке.
Синтаксис:
ПРОВ_КРЕД (<номер операции>,<номер проводки>)
Результат – строка.
Пример:
оборот=0// вычисляется оборот по кредиту счета "60"
// цикл по всем операциям
ЦИКЛ ДЛЯ (опер=1, ОПЕР_ВСЕГО)
ЦИКЛ ДЛЯ ( пр=1, ОПЕР_ПРОВ(опер))
ЕСЛИ ПРОВ_КРЕД (опер, пр)="60" ТО
оборот = оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЕСЛИКОНЕЦ_ЦИКЛАКОНЕЦ_ЦИКЛА
Функция ПРОВ_СУМ
Функция ПРОВ_СУМ позволяет узнать сумму в проводке.
Синтаксис:
ПРОВ_СУМ (<номер операции>, <номер проводки>)
Результат – число.
Пример:
оборот=0// вычисляется суммарный оборот
// по всему журналу
// цикл по всем операциям
ЦИКЛ ДЛЯ (опер=1, ОПЕР_ВСЕГО)
// цикл по всем проводкам в операции
ЦИКЛ ДЛЯ (пр=1, ОПЕР_ПРОВ (опер))
оборот = оборот + ПРОВ_СУМ (опер, пр)
КОНЕЦ_ЦИКЛАКОНЕЦ_ЦИКЛА
Функция ПРОВОДКА
Функция ПРОВОДКА применяется для записи в базу данных программы новой хозяйственной операции при заполнении бланков (например, первичных документов) или при занесении типовых операций.
Синтаксис:
ПРОВОДКА ( <счет дебета>, <счет кредита>, <сумма>
[,<количество>] [,<номер документа>] [,<дата>]
[,<номер раб. места>] [,<содержание 1>
[,<содержание 2>] ] )
где
<счет дебета>, <счет кредита> |
– |
строка, соответствующая коду счета в плане счетов; |
<сумма>, <количество> |
– |
выражения числового типа; |
<номер документа> |
– |
выражение строкового типа; |
<дата> |
– |
выражение типа дата; |
<номер раб. места> |
– |
выражение числового типа (1…99); |
<содержание 1>, <содержание 2> |
– |
выражения строкового типа, определяющие содержание операции. |
Если не указан номер документа, то в графу «Документ» заносится сокращенное наименование бланка (первые буквы слов) и значение поля НОМЕР бланка. По умолчанию для типовой операции графа остается пустой.
Если дата не указана, принимается текущая дата.
Если опущено содержание, то в графу «Содержание операции» заносится наименование бланка или типовой операции.
Если не указан номер рабочего места, то используется номер рабочего места, установленный в графе «Рабочее место» на закладке Разное меню Установка/Настройки.
Последующие (в рамках одного формульного раздела) проводки добавляются к хозяйственной операции, сформированной вместе с первой проводкой. Новая хозяйственная операция формируется, если у очередной проводки дата, номер рабочего места или номер документа отличается от предыдущей проводки, а также при использовании функции ЗАП_ОПЕР.
Для округления суммы или количества можно использовать функцию ОКРУГЛЕНИЕ. Если округление не было предварительно задано, то сумма округляется до целого или до двух знаков после запятой, в зависимости от признака «Копейки» на закладке Форматы меню Установка/Настройки.
Существует возможность ведения количественно-суммового учета с фиксированной ценой (так как было в «Инфо-Бухгалтере» до версии 1.5). При редактировании счета или исходных остатков можно выбрать между средней и фиксированной ценой. Фиксированная цена вводится в поле «Цена» в диалоге редактирования исходных остатков. Если по счету нет исходных остатков, то количество и сумма вводятся равными нулю, а фиксированная цена принимается равной параметру «Цена». Если по счету есть ненулевые исходные остатки, то фиксированная цена будет рассчитана исходя из суммы и количества исходного остатка.
При изменении цены счета с фиксированной ценой изменяются по выбору пользователя либо суммы, либо количества в соответствующих проводках. Функция ПРОВОДКА проверяет фиксированные цены дебета и кредита. В случае неравенства цен выдается ошибка.
При создании проводки с фиксированной ценой пересчитывается количество по сумме.
Пример:
ПРОВОДКА ("51", "50", 1000)
субсч = ВЫБОР_СЧЕТА ("71")
сумма=2000
ЕСЛИ субсч="01" ТО
ФИО="Иванову И.И."
ИНАЧЕ
ФИО="Петрову П.П."
КОНЕЦ_ЕСЛИ
ПРОВОДКА ("71/"+субсч, "50", сумма, ДАТА_ТЕК,
"В подотчет " + ФИО)
Функция ПРОВОДКАГР
Функция ПРОВОДКАГР аналогична функции ПРОВОДКА, но позволяет занести в журнал хозяйственных операций одновременно несколько проводок. Например, по всем субсчетам какого-либо счета.
Синтаксис:
ПРОВОДКАГР (<счет дебета>,<счет кредита>, <сумма>
[,<количество>], [<номер документа>]
[,<дата>] [,<номер раб. места>]
[,<содержание 1> [,<содержание 2>] ] )
где
<шаблон счета дебета>, <шаблон счета кредита> |
– |
строки, соответствующие шаблону кода счета в плане счетов; |
<сумма>, <количество> |
– |
выражения числового типа; |
<номер документа> |
– |
выражение строкового типа; |
<дата> |
– |
выражение типа дата; |
<номер раб. места> |
– |
выражение числового типа (1..99); |
<содержание 1>, <содержание 2> |
– |
выражения строкового типа. |
Шаблон записывается по правилам задания шаблона счета дебета или счета кредита в фильтре.
Допустим, в рамках функции ПРОВОДКАГР используются функции, где в качестве параметра задается код счета, например, ОСД или ОСК. Тогда, при формировании проводки по каждому счету, соответствующему шаблону, сам шаблон в параметре функции будет заменен кодом текущего обрабатываемого счета.
Пример:
ПРОВОДКАГР ("46*", "80/РЕАЛ", ОСК ("46*"), дата,
"Расчет прибыли")
Функция ПРОП
Функция ПРОП позволяет преобразовать заглавные буквы строки в прописные.
Синтаксис:
ПРОП (<строка>)
где <строка> – выражение строкового типа.
Результат – строка.
Пример:
ПРОП ("АРМАТУРА №15")// Результат: "арматура №15"
Функция РЕД_ПОЛЕ
Функция РЕД_ПОЛЕ позволяет получить значения полей в отредактированной пользователем записи до ее сохранения в базу данных или удаляемой записи перед ее удалением.
Данная функция может применяться в функциях-обработчиках событий в БД_РЕДАКТОР.
Введена с версий ИБ 8.21 для Windows.
В базовой и минимальной версии данная функция отсутствует.
Синтаксис:
РЕД_ПОЛЕ (<имя поля>),
где <имя поля> – название поля базы данных.
Результат зависит от типа поля.
Пример:
ФУНКЦИЯ ТИП_ЛОГИКА: Проверка (ПЕРЕМ ТИП_СТРОКА: стр)
код = РЕД_ПОЛЕ ("iCode")
цена = РЕД_ПОЛЕ ("iPrice")
Проверка = ( ДЛИНА (код) > 0 ) И ( цена > 0 )
КОНЕЦ_ФУНКЦИИ
Функция РУБ
Функция РУБ позволяет получить значение суммы в рублях.
Синтаксис:
РУБ (<сумма>),
где <сумма> – числовое выражение.
Результат – число.
Пример:
р1=РУБ (73.85)// переменной р1 присваивается значение 73
Функция РУБП
Функция РУБП позволяет получить слово «рубль» с правильным окончанием, зависящим от суммы.
Синтаксис:
РУБП (<сумма>),
где <сумма> – числовое выражение.
Результат – строка.
Пример:
с1 = РУБП (75)// переменной с1 присваивается "рублей"
с2 = РУБП (2)// переменной с2 присваивается "рубля"
с3 = РУБП (1)// переменной с3 присваивается "рубль"
Функция SQL_ДАТА
Функция SQL_ДАТА возвращает строковое представление даты для использования в SQL-запросах. Формат даты берется из настроек BDE.
Введена с версии ИБ 8.1x для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
SQL_ДАТА (<дата>)
Результат – строка.
Пример:
// получить строку даты начала отчетного периода
дн = SQL_ДАТА ( ДАТА_НАЧ )
// получить строку даты окончания отчетного периода
дк = SQL_ДАТА ( ДАТА_КОН )
// Открываем DBF-таблицу с помощью объекта БД-SQL
бд = SQL_ЗАПРОС ( "SELECT * FROM 'scet_f.dbf' WHERE
iDate BETWEEN "+дн+" AND "+дк)
// => Используем полученную таблицу
бд.ЗАКРЫТЬ// Закрываем таблицу
Функция СБРОС
Функция СБРОС позволяет в режиме компилятора осуществить сброс всех элементов индексной переменной.
В режиме интерпретатора не поддерживается.
Введена с версии ИБ 8.21 для Windows.
Синтаксис:
СБРОС ( <индекс1> [,<индекс2> [, …] ] ),
где < индексn> – имя индексной переменной.
Пример:
x [1] = 1;x [2] = 2
y [1] = 11;y [2] = 22
СООБЩЕНИЕ (СТР (СУЩ_ПЕРЕМ ( x [1] )) + " " +
СТР (СУЩ_ПЕРЕМ ( y [2] )))// ДА ДА
СБРОС ( x, y )
СООБЩЕНИЕ (СТР (СУЩ_ПЕРЕМ ( x [1] )) + " " +
СТР (СУЩ_ПЕРЕМ ( y [2] )))// НЕТ НЕТ
Функция СЕКУНДЫ
Функция СЕКУНДЫ позволяет выделить секунды из времени.
Введена с версии ИБ 8.1 для Windows.
Синтаксис:
СЕКУНДЫ (<время>),
где <время> – выражение типа время.
Результат – число от 0 до 59.
Пример:
время1 = 00:05
сек1 = СЕКУНДЫ (время1)// переменной сек1 присваивается
СООБЩЕНИЕ (СТР (сек1))// значение 0
время2 = 19:35:50
сек2 = СЕКУНДЫ (время2)// переменной сек2 присваивается
СООБЩЕНИЕ (СТР (сек2))// значение 50
Функция СИМВ
Функция СИМВ позволяет получить строку из одного символа по его ASCII-коду.
Введена с версий ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
СИМВ (<код>)
где <код> – выражение числового типа.
Результат – строка.
Пример:
СИМВ (42)// Результат: "*" (ASCII 42)
Функция СЛУЧ_ЧИСЛО
Функция СЛУЧ_ЧИСЛО позволяет получить псевдослучайное число в диапазоне от 0 до N-1, где N – значение аргумента функции.
Введена с версии ИБ 8.0 для Windows.
Синтаксис:
СЛУЧ_ЧИСЛО ( <аргумент функции> ),
где < аргумент функции > – выражение числового типа.
Результат – число.
Пример:
а = СЛУЧ_ЧИСЛО ( 2 )// переменная а получает
// значение 0 или 1
Функция СОЗДАТЬ_ДИР
Функция СОЗДАТЬ_ДИР позволяет создать подкаталоги с несколькими уровнями вложенности.
Введена с версии ИБ 8.109 для Windows.
Синтаксис:
СОЗДАТЬ_ДИР ( <каталог> ),
где
<каталог> |
– |
относительный путь к создаваемому каталогу. |
Пример:
// создает вложенные подкаталоги MYDATA и SUBDATA
// от каталога DATA
СОЗДАТЬ_ДИР ("DATA\MYDATA\SUBDATA")
Функция СООБЩЕНИЕ
С помощью функции СООБЩЕНИЕ, во время обработки формульной части бланка или типовой операции, можно вывести произвольное сообщение. Сообщение будет появляться в небольшом диалоговом окне, в нижней части которого расположена кнопка «OK». При появлении сообщения, расчет бланка приостанавливается до нажатия клавиши или выбора с помощью мыши кнопки «OK».
Введена с версий ИБ 7.1 для Windows и 3.х для DOS.
Синтаксис:
СООБЩЕНИЕ (<сообщение>),
где
<сообщение> |
– |
произвольная строка текста в двойных кавычках. |
Пример:
СООБЩЕНИЕ ("Внимание!")
При выполнении данной строки формульного раздела бланка, на экране появится диалоговое окно, заголовок которого будет содержать название бланка, а поле окна строку «Внимание!»:
Функция СТАРТ_ПРОГ
Функция СТАРТ_ПРОГ позволяет запустить откомпилированную программу Инфо-Бухгалтера (файл .ibx).
Введена с версии ИБ 8.0 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
СТАРТ_ПРОГ ( <имя откомпилированного ibx-модуля> ),
Результат – логическое выражение.
При успешном выполнении программы возвращает ДА.
Пример:
успех = СТАРТ_ПРОГ ( "OPTIBASE.IBX " )
Замечание:Запускаемый ibx-файл не должен быть связан с какой-либо визуальной формой (бланком или типовой операцией). Такой файл можно получить, выбрав пункт меню Установка/Компилятор/ Компиляция текста.Эта же разновидность выполняемых ibx-файлов используется для запуска программ из пользовательского меню.
Функция СТР
Функция СТР позволяет преобразовать число в строку в заданном формате (неиспользуемые позиции перед числом заполняются пробелами).
Синтаксис:
СТР ( <число> [,<длина поля> [,<знаков после запятой>] ] ),
где
<число> |
– |
выражение числового типа; |
<длина поля> |
– |
общая длина поля, включая десятичную точку; |
<знаков после запятой> |
– |
количество десятичных знаков после запятой. |
Результат – строка.
Пример:
СТР (3/4)// Результат: "0.75"
СТР (100*100)// Результат: "10000"
СТР (5,3)// Результат: " 5"
СТР (5,5)// Результат: " 5.00"
СТР (3/4, 5, 1)// Результат: " 0.8"
Замечание:
Если длина поля не задана, то выводится столько цифр, сколько нужно для отображения всего числа.
Если же длина поля задана, но не задано количество знаков после запятой, то количество знаков после запятой принимается равным двум при общей длине поля больше трех.
При общей длине поля меньше или равной трем знаки после запятой вообще не выводятся.
Функция СТР0
Функция СТР0 позволяет преобразовать число в строку в заданном формате (неиспользуемые позиции перед числом заполняются нулями).
Синтаксис:
СТР0 ( <число> [,<длина поля> [,<знаков после запятой>] ] ),
где
<число> |
– |
выражение числового типа; |
<длина поля> |
– |
общая длина поля, включая десятичную точку; |
<знаков после запятой> |
– |
количество десятичных знаков после запятой. |
Результат – строка.
Пример:
СТР0 (3/4)// Результат: "0.75"
СТР0 (100*100)// Результат: "10000.00"
Замечание:
Если длина поля не задана, то выводится столько цифр, сколько нужно для отображения всего числа. Если же длина поля задана, но не задано количество знаков после запятой, то количество знаков после запятой принимается равным двум при общей длине поля больше трех. При общей длине поля меньше или равной трем знаки после запятой вообще не выводятся.
Функция СТР_ЗНАЧ
Функция СТР_ЗНАЧ позволяет преобразовать число в строку без разделителей разрядов.
Введена с версии ИБ 8.21 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
СТР_ЗНАЧ ( <числовое выражение> )
Результат – строка.
Пример:
стр1 = СТР (12500)// стр1 = "12 500"
стр2 = СТР_ЗНАЧ (12500)// стр2 = "12500"
Функция СТРОКА_СТАТУСА
Функция СТРОКА_СТАТУСА позволяет вывести текст в строку статуса (состояния) программы в процессе расчета документа.
Введена с версии ИБ 8.21 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
СТРОКА_СТАТУСА ( <строковое выражение> )
Замечания:
-
Вызов функции с пустой строкой СТРОКА_СТАТУСА ("") восстанавливает стандартное сообщение в строке состояния.
-
Каждый последующий вызов функции СТРОКА_СТАТУСА отменяет предыдущий текст в строке состояния.
-
Вывод текста в строку состояния из цикла ДЛЯ отменяет предыдущий текст в строке состояния, установленный с помощью функции СТРОКА_СТАТУСА.
Пример:
СТРОКА_СТАТУСА ("Выполняются вычисления, подождите...")
Функция СУММАП
Функция СУММАП позволяет получить сумму прописью.
Синтаксис:
СУММАП (<сумма>)
где <сумма> – числовое выражение.
Результат – строка.
Внимание!
Функция СУММАП округляет сумму до целого числа. При необходимости получить прописью только рубли, используйте функцию РУБ.
Пример:
с1=СУММАП (75)// переменной с1 присваивается
// строка "Семьдесят пять"
с2=СУММАП (105.90)// переменной с2 присваивается
// строка "Сто шесть"
с3=СУММАП (РУБ (105.90))// переменной с3 присваивается
// строка "Сто пять"
Функция СУММАП_АНГЛ
Функция СУММАП_АНГЛ позволяет получить сумму прописью на английском языке.
Синтаксис:
СУММАП_АНГЛ (<сумма>)
где <сумма> – числовое выражение.
Результат – строка.
Внимание!
Функция СУММАП_АНГЛ округляет сумму до целого числа. При необходимости получить прописью только рубли, используйте функцию РУБ.
Пример:
// переменной с1 присваивается строка "Seventy five"
с1 = СУММАП_АНГЛ (75)
// переменной с2 присваивается строка "One hundred and five"
с2 = СУММАП_АНГЛ (105.20)
// переменной с3 присваивается строка "One hundred and six"
с3 = СУММАП_АНГЛ (РУБ (106.40) )
Функция СУЩ_ОПРЕДЕЛЕНИЕ
Функция СУЩ_ОПРЕДЕЛЕНИЕ позволяет узнать имеется ли определение с указанным именем.
Введена с версии ИБ 8.110 для Windows.
Синтаксис:
СУЩ_ОПРЕДЕЛЕНИЕ (<код>)
где <код> – имя определения.
Результат – логическое выражение.
Пример:
ЕСЛИ СУЩ_ОПРЕДЕЛЕНИЕ ("МЕТОД_РЕАЛ") ТО
СООБЩЕНИЕ ("Определение МЕТОД_РЕАЛ = "+
СТР (МЕТОД_РЕАЛ))
ИНАЧЕ
СООБЩЕНИЕ ("Определение МЕТОД_РЕАЛ
не существует")
КОНЕЦ_ЕСЛИ
Функция СУЩ_ПЕРЕМ
Функция СУЩ_ПЕРЕМ позволяет узнать имеется ли переменная с указанным именем. При использовании в формульном разделе бланка проверяются только переменные, определенные в этом бланке.
Определения и реквизиты не проверяются.
При использовании в библиотечной функции проверяются только локальные переменные, определенные в этой функции, и переданные ей параметры под их локальными именами.
Введена с версий ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
СУЩ_ПЕРЕМ (<имя>)
где <имя> – имя переменной.
Результат – логическое выражение.
Пример:
a1 = 1// определяем переменную а1
С = СУЩ_ПЕРЕМ (а1)// С = ДА
С = СУЩ_ПЕРЕМ (а2)// С = НЕТ
Замечание:Так как объекты являются переменными, то к ним также применима функция СУЩ_ПЕРЕМ, но применение ее к полям объекта ошибочно.
Функция СУЩ_РЕКВИЗИТ
Функция СУЩ_РЕКВИЗИТ позволяет узнать имеется ли реквизит с указанным именем.
Введена с версии ИБ 8.110 для Windows.
Синтаксис:
СУЩ_РЕКВИЗИТ (<код>)
где <код> – имя реквизита.
Результат – логическое выражение.
Пример:
ЕСЛИ СУЩ_РЕКВИЗИТ ("НашБанкБИК") ТО
СООБЩЕНИЕ ( "БИК "+СТР (НашБанкБИК) )
ИНАЧЕ
СООБЩЕНИЕ ( "Реквизит 'НашБанкБИК' не существует")
КОНЕЦ_ЕСЛИ
Функция СУЩ_ФАЙЛ
Функция СУЩ_ФАЙЛ проверяет наличие на диске указанного файла.
Введена с версии ИБ 8.0 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
СУЩ_ФАЙЛ (<имя файла>),
где <имя файла> – имя проверяемого файла.
Результат – логическое выражение.
Пример:
ЕСЛИ СУЩ_ФАЙЛ ( "MyText.txt" ) ТО
ф = ФАЙЛ_ОТКРЫТЬ ("MyText.txt" )
…
ИНАЧЕ
СООБЩЕНИЕ ( "Не найден текстовый файл" )
КОНЕЦ_ЕСЛИ
Функция СУЩ_ФУНК
Функция СУЩ_ФУНК позволяет узнать доступность библиотечной функции по ее имени.
Введена с версий ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
СУЩ_ФУНК (<имя функции>),
где <имя функции> – идентификатор функции.
Результат – логическое выражение.
Пример:
ИСПОЛЬЗОВАТЬ ("MYLIB")
ЕСЛИ НЕ СУЩ_ФУНК (Расчет1) ТО
СООБЩЕНИЕ ("Функция 'Расчет1' не найдена")
КОНЕЦ_ЕСЛИ
Функция СЧЕТ_АКТ
Функция СЧЕТ_АКТ позволяет проверить активность счета.
Синтаксис:
СЧЕТ_АКТ (<код счета>)
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – логическое выражение.
Пример:
а1=СЧЕТ_АКТ ("50")// а1=ДА (50 – активный счет)
а2=СЧЕТ_АКТ ("02")// а2=НЕТ (02 – пассивный счет)
а3=СЧЕТ_АКТ ("76")// а3=ДА (76 – активно-пассивный счет)
Функция СЧЕТ_АНАЛИТ
Функция СЧЕТ_АНАЛИТ позволяет определить, установлен ли признак "Аналитика" для заданного счета.
Введена с версий ИБ 8.3 для Windows.
Синтаксис:
СЧЕТ_АНАЛИТ ( <код_счета> [;<уровень>] )
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
<уровень> |
– |
номер уровня, для которого производить проверку признака. |
Результат – логическое выражение.
Пример:
Пусть есть счет "А/Б/В", где счета "А/Б" и "А/Б/В" имеют признак "Аналитика", а счет "А" – не имеет.
Тогда функция СЧЕТ_АНАЛИТ вернет следующие результаты:
СЧЕТ_АНАЛИТ ("А/Б/В")// для счета "А/Б/В" – ДА
СЧЕТ_АНАЛИТ ("А/Б/В",1)// для счета "А" – НЕТ
СЧЕТ_АНАЛИТ ("А/Б/В",2)// для счета "А/Б" – ДА
СЧЕТ_АНАЛИТ ("А/Б/В",3)// для счета "А/Б/В" – ДА
Функция СЧЕТ_КОЛ
Функция СЧЕТ_КОЛ позволяет проверить, ведется ли по счету количественно-суммовой учет.
Синтаксис:
СЧЕТ_КОЛ (<код счета>)
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – логическое выражение.
Пример:
ЕСЛИ СЧЕТ_КОЛ ("10/БАЛКИ") ТО
колич = ОСД_К ("10/БАЛКИ")
ИНАЧЕ
колич = 0
КОНЕЦ_ЕСЛИ
Функция СЧЕТ_ПАС
[
Функция СЧЕТ_ПАС позволяет узнать, является ли указанный счет пассивным.
Синтаксис:
СЧЕТ_ПАС (<код счета>),
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – логическое выражение.
Пример:
а1=СЧЕТ_ПАС ("50") // а1=НЕТ (50 – активный счет)
а2=СЧЕТ_ПАС ("02") // а2=ДА (02 – пассивный счет)
а3=СЧЕТ_ПАС ("76") // а3=ДА (76 – активно-пассивный счет)
Функция СЧЕТ_СУЩ
Функция СЧЕТ_СУЩ позволяет проверить наличие счета в плане счетов.
Синтаксис:
СЧЕТ_СУЩ (<код счета>)
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов. |
Результат – логическое выражение.
Пример:
ЕСЛИ СЧЕТ_СУЩ ("04") ТО
а = ОСД ("04")
ИНАЧЕ
а = 0
КОНЕЦ_ЕСЛИ
Функция СЧЕТ_ФИКСЦ
Функция СЧЕТ_ФИКСЦ позволяет проверить, установлена ли у количественно-суммового счета фиксированная цена.
Введена с версий ИБ 7.1 для Windows и 3.0 для DOS.
Синтаксис:
СЧЕТ_ФИКСЦ (<код>)
Результат – логическое выражение.
Пример:
рез = СЧЕТ_ФИКСЦ ("04")
Функция ТЕК_ДИР
Функция ТЕК_ДИР возвращает полный путь к текущей директории.
Введена с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях функция отсутствует.
Синтаксис:
ТЕК_ДИР
Результат – строка.
Пример:
тек_дир = ТЕК_ДИР// тек_дир = "D:\EXHIBIT\IBW8"
Функция ТИП_ОПЕР
Функция ТИП_ОПЕР позволяет выполнить типовую операцию из бланка.
Введена с версии ИБ 8.2 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ТИП_ОПЕР ( <название тип.операции> ) ,
где
<название тип.операции> |
– |
строковое выражение, указывающее типовую операцию. |
Название типовой операции задается в формате:
< Название раздела > : < Название операции >
Результат не возвращается.
Пример:
// Запуск типовой операции
// Реализация с авансом : с НДС 20% получение аванса
ТИП_ОПЕР ("Реализация с авансом : с НДС 20% получение аванса")
Функция ТИП_ПЕРЕМ
Функция ТИП_ПЕРЕМ позволяет определить тип переменной.
Введена с версии ИБ 8.21 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ТИП_ПЕРЕМ ( <имя переменной> ) ,
Результат – строка, которая может принимать следующие значения:
"–" |
– |
неизвестный (неопределенный) тип; |
"Ч" |
– |
числовой тип; |
"С" |
– |
строковый тип; |
"Л |
– |
логический тип; |
"Д" |
– |
тип дата; |
"В" |
– |
тип время; |
"ТИП_SQL" |
– |
объектный тип ТИП_SQL; |
"ТИП_БД" |
– |
объектный тип ТИП_БД; |
"ТИП_ОПЕРАЦИЯ" |
– |
объектный тип ТИП_ОПЕРАЦИЯ; |
"ТИП_ПРОВОДКА" |
– |
объектный тип ТИП_ПРОВОДКА; |
"ТИП_СПИСОК" |
– |
объектный тип ТИП_СПИСОК; |
"ТИП_СЧЕТ" |
– |
объектный тип ТИП_СЧЕТ; |
"ТИП_ФАЙЛ" |
– |
объектный тип ТИП_ФАЙЛ; |
"ТИП_ФИЛЬТР" |
– |
объектный тип ТИП_ФИЛЬТР; |
"ТИП_ШРИФТ" |
– |
объектный тип ТИП_ШРИФТ. |
Пример:
x = 34
y[2] = "ABCD"
т1 = ТИП_ПЕРЕМ ( x )// т1 = "Ч"
т2 = ТИП_ПЕРЕМ ( y[2] )// т2 = "С"
Функция УДАЛ_ОПЕР
Функция УДАЛ_ОПЕР осуществляет удаление указанной операции из журнала хозяйственных операций.
Введена с версии ИБ 8.0 для Windows.
Синтаксис:
УДАЛ_ОПЕР (<номер операции>),
где
<номер операции> – порядковый номер удаляемой операции.
Результат – логическое выражение ( ДА или НЕТ ).
Пример:
Предположим, что в журнале хозяйственных операций содержится 5 операций. Тогда
рез1 = УДАЛ_ОПЕР (5)// рез1 = ДА
рез2 = УДАЛ_ОПЕР (5)// рез2 = НЕТ
Функция УДАЛ_СЧЕТ
Функция УДАЛ_СЧЕТ позволяет удалить указанный счет из плана счетов.
Введена с версии ИБ 8.0 для Windows.
Синтаксис:
УДАЛ_СЧЕТ (<код счета>, [<запрос>] ),
где
<код счета> |
– |
номер удаляемого счета последнего уровня. |
<запрос> |
– |
Выражение логического типа, указывающее на необходимость выдачи подтверждения удаления счета. |
Результат – логическое выражение ( ДА или НЕТ ).
Пример:
// Удалить счет 10/БАЛКИ без запроса подтверждения
// на удаление
результат = УДАЛ_СЧЕТ ( "10/БАЛКИ", НЕТ )
СООБЩЕНИЕ ("Счет 10/БАЛКИ удален: "+СТР(результат))
Функция УДАЛИТЬ_СТРОКУ
Функция УДАЛИТЬ_СТРОКУ осуществляет, в процессе обработки формульной части бланка, удаление строк из указанного места бланка.
Используется только в Windows-версиях.
Синтаксис:
УДАЛИТЬ_СТРОКУ (<номер строки> [,<кол-во строк>] ),
где
<номер строки> |
– |
порядковый номер удаляемой строки; |
<кол-во строк> |
– |
необязательный параметр, определяющий количество удаляемых строк. Если параметр отсутствует, то в указанном месте будет удалена одна строка. |
Для вставки новой строки в бланк, можно использовать ключевое слово ВСТАВИТЬ_СТРОКУ.
Пример:
ЕСЛИ СН=0 ТО
УДАЛИТЬ_СТРОКУ (CurLine);
ИНАЧЕ
ВЫВЕСТИ (2+Col, CurLine, СН, Col-1, 2);
CurLine = CurLine+1
КОНЕЦ_ЕСЛИ
Функция УРОВЕНЬ
Функция УРОВЕНЬ позволяет узнать уровень (порядок) счета.
Синтаксис:
УРОВЕНЬ (<код счета>),
где
<код счета> |
– |
полный код субсчета, в котором коды субсчетов отделяются символами "/". |
Результат – число.
Пример:
у_1 = УРОВЕНЬ ("70")// у_1=1
у_2 = УРОВЕНЬ ("70/ШТ")// у_2=2
у_3 = УРОВЕНЬ ("70/ШТ/ИАГ")// у_3=3
Функция УСТ_РЕД_ПОЛЕ
Функция УСТ_РЕД_ПОЛЕ позволяет записать значения полей в буфер редактируемой в функции БД_РЕДАКТОР записи.
Аналогично функции РЕД_ПОЛЕ предназначена для использования в обработчиках событий функции БД_РЕДАКТОР.
Введена с версии ИБ 8.3 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
УСТ_РЕД_ПОЛЕ ( <имя поля>, <значение> ),
где
<имя поля> |
– |
имя поля базы данных; |
<значение> |
– |
записываемое значение, тип которого зависит от типа поля. |
Пример:
УСТ_РЕД_ПОЛЕ ( "Account", "70")
Функция ФАЙЛ_КОПИРОВАТЬ
Функция ФАЙЛ_КОПИРОВАТЬ позволяет копировать один файл в другой с проверкой на существование исходного файла.
Введена с версии ИБ 8.0 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ФАЙЛ_КОПИРОВАТЬ ( <источник>, <приемник> ),
где
<источник> |
– |
имя файла-источника; |
<приемник> |
– |
имя файла-приемника. |
Результат – логическое выражение.
При успешном копировании возвращает ДА.
Пример:
успех = ФАЙЛ_КОПИРОВАТЬ ("Data\MyData.dbf",
"Data\MyData.bak")
Функция ФАЙЛ_ПЕРЕИМЕНОВАТЬ
Функция ФАЙЛ_ПЕРЕИМЕНОВАТЬ позволяет дать новое имя файлу с проверкой на существование исходного файла.
Введена с версии ИБ 8.0 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ФАЙЛ_ПЕРЕИМЕНОВАТЬ ( <источник>, <приемник> ),
где
<источник> |
– |
имя файла-источника; |
<приемник> |
– |
имя файла-приемника. |
Результат – логическое выражение.
При успешном переименовании возвращает ДА.
Пример:
успех = ФАЙЛ_ПЕРЕИМЕНОВАТЬ ( "Data\Old.dbf",
"Data\New.dbf" )
Функция ФАЙЛ_ТИПОП
Функция ФАЙЛ_ТИПОП возвращает имя файла типовых операций, использующегося в программе в текущий момент времени.
Введена, начиная с версии ИБ 8.110 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ФАЙЛ_ТИПОП
Результат – строка.
Пример:
файл_типоп = ФАЙЛ_ТИПОП// файл_типоп = "IB.TOP"
Функция ФАЙЛ_УДАЛИТЬ
Функция ФАЙЛ_УДАЛИТЬ позволяет удалить файл с проверкой на существование.
Введена с версии ИБ 8.0 для Windows.
В базовой и минимальной версиях данная функция отсутствует.
Синтаксис:
ФАЙЛ_УДАЛИТЬ ( <имя файла> )
где <имя файла> – имя удаляемого файла.
Результат – логическое выражение.
При успешном удалении возвращает ДА.
Пример:
успех = ФАЙЛ_УДАЛИТЬ ( "Temp.txt" )
Функция ФИЛЬТР_ВКЛ
Функция ФИЛЬТР_ВКЛ позволяет проверить, происходит ли расчет в режиме отфильтрованного журнала хозяйственных операций. Функция возвращает значение ДА, если фильтр хозяйственных операций включен и в фильтре установлен признак «Фильтр действует на отчеты».
Введена с версий ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
ФИЛЬТР_ВКЛ
Результат – логическое выражение ( ДА или НЕТ ).
Пример:
ЕСЛИ ФИЛЬТР_ВКЛ ТО
Стр = "Внимание! Включен фильтр хоз. операций!"
ИНАЧЕ
Стр = ""
КОНЕЦ_ЕСЛИ
Функция ФОКУС
Функция ФОКУС позволяет устанавливать фокус ввода в бланке на одну из граф ввода.
Введена с версии ИБ 8.2 для Windows.
В версии ИБ 8.3 расширено действие функции ФОКУС на типовые операции. Установку фокуса допускается производить как до вызова функции ВВЕСТИ, так и в процессе работы функций, вызываемых графами.
Синтаксис:
ФОКУС ("<имя графы ввода>")
Результат не возвращается.
Пример:
// Если требуется учитывать НСП,
// то перейти на графу, в которой указывается ставка НСП
ЕСЛИ ВОПРОС ("Учитывать НСП") ТО
ФОКУС ( "ст_НСП" )
КОНЕЦ_ЕСЛИ
Функция ЦЕНА
Функция ЦЕНА позволяет получить цену единицы измерения количественно-суммового счета. Цена рассчитывается по формуле
цена = сумма/количество
Для счетов с фиксированной ценой данная функция возвращает фиксированную цену.
Синтаксис:
ЦЕНА (<код счета> [,<дата>] ),
где
<код счета> |
– |
строка, соответствующая коду счета в плане счетов; |
<дата> |
– |
строка, соответствующая дате, на начало которой производится расчет цены. |
Если значение даты не задано, то цена рассчитывается на дату окончания отчетного периода.
Результат – число.
Пример:
Пусть на счете 10/Тара ведется количественно-суммовой учет в штуках (шт.), и на 10.09.99 года остатки по данному счету составляют в суммовом выражении – 5000.00, в количественном выражении – 100 шт. Тогда
цена = ЦЕНА ("10/Тара", 10.09.99)// цена= 50.00
Функция ЧАС
Функция ЧАС позволяет выделить часы из времени.
Синтаксис:
ЧАС (<время>),
где <время> – выражение типа время.
Результат – число от 0 до 23.
Пример:
время1 = 00:05
час1 = ЧАС (время1)// переменной час1 присваивается
СООБЩЕНИЕ (СТР (час1))// значение 0
время2 = 19:35:50
час2 = ЧАС (время2)// переменной час2 присваивается
СООБЩЕНИЕ (СТР (час1))// значение 19
Функция ЧИСЛО
Функция ЧИСЛО позволяет выделить число из даты.
Синтаксис:
ЧИСЛО (<дата>)
где <дата> – выражение типа дата.
Результат – число от 1 до 31.
Пример:
нач_кв=01.04.99
ч=ЧИСЛО (нач_кв) // переменной ч присваивается значение 1
Функция ШАБЛОН
Функция ШАБЛОН позволяет преобразовать строку, содержащую определение множества, в строку с полным перечислением всех элементов этого множества.
Множество может быть задано различными способами:
-
Перечислением элементов (например, "1,2,3,7" или "1;2;3;7");
-
Заданием диапазона (например, "3-6").
-
Комбинацией первого и второго способа (например, "1,2,5-10,12").
Если при описании множества встречаются одинаковые элементы, то повторы игнорируются. Функция возвращает строку с перечислением всех элементов множества. Последним символом возвращаемой строки всегда является символ $. Например, если в качестве параметра функции была задана строка "1,2,3,9-12,20", то функция ШАБЛОН вернет строку "1,2,3,9,10,11,12,20$".
Введена с версий ИБ 7.5 для Windows и 3.5 для DOS.
Синтаксис:
ШАБЛОН (<шаблон>),
где <шаблон> – строка, задающая шаблон.
Результат – строка
Замечание:
Максимальное значение диапазона не должно превышать 256.
Пример:
стр_шаб = "1,5-10;1"
стр = ШАБЛОН (стр_шаб)
В результате выполнения функции в переменную стр будет записана строка "1,5,6,7,8,9,10$".
Функция ЭКСП
Функция ЭКСП позволяет получить экспоненту числа.
Синтаксис:
ЭКСП (<выражение>)
где
<выражение> |
– |
константа или выражение числового типа. |
Результат – число.
Пример:
а=ЭКСП (1)// переменной а присваивается
// значение 2.71828…
Библиотечные функции
Начиная с версий ИБ 7.5 для Windows и 3.5 для DOS, во внутренний язык Инфо-Бухгалтера были введены функции пользователя. Они позволяют избавиться от повторения часто встречающихся фрагментов формульной части бланков и типовых операций. Также они полезны для построения сложных графиков и вызова сложных расчетов из калькулятора.
Описания функций размещаются в специальных файлах, которые называются библиотеками. Библиотеки функций представляют собой текстовые файлы с расширением .ibl, содержащие описания библиотечных функций и общих переменных. Вы можете иметь и использовать неограниченное количество библиотек.
Установка директории, где располагаются библиотеки, осуществляется в диалоговом окне Установка/Настройки/Каталоги главного меню. Для редактирования библиотек выберите пункт Установка/Библиотеки функций главного меню.
Внутри каждой библиотеки может содержаться любое количество функций. При использовании одной функции из библиотеки в память загружаются заголовки всех функций этой библиотеки. Описание функции начинается ключевым словом ФУНКЦИЯ и заканчивается ключевым словом КОНЕЦ_ФУНКЦИИ.
Вложенные функции (описание функция внутри функции) не поддерживаются. Вложенный вызов функций поддерживается, в том числе и рекурсия. Внутри функции видны все функции из этой же библиотеки.
Заголовок функции состоит из ключевого слова ФУНКЦИЯ, названия (идентификатора) функции и типа возвращаемого результата. Тип результата указывается перед названием функции и отделяется от него двоеточием. Ниже приводится список допустимых типов результатов функций и соответствующих им ключевых слов:
-
временной типТИП_ВРЕМЯ
-
календарный типТИП_ДАТА
-
логический типТИП_ЛОГИКА
-
строковый типТИП_СТРОКА
-
числовой типТИП_ЧИСЛО
-
тип объекта База данныхТИП_БД
-
тип объекта База данных с SQLТИП_SQL
-
тип объекта ОперацияТИП_ОПЕРАЦИЯ
-
тип объекта ПроводкаТИП_ПРОВОДКА
-
тип объекта СписокТИП_СПИСОК
-
тип объекта СчетТИП_СЧЕТ
-
тип объекта ФайлТИП_ФАЙЛ
-
тип объекта ФильтрТИП_ФИЛЬТР
-
тип объекта ШрифтТИП_ШРИФТ
При использовании конструктора СОЗДАТЬ, применяются ключевые слова объектных типов для указания типа создаваемого объекта.
Также эти ключевые слова используются для указания типа общей переменной, которая должна сохранять значение при пересчете бланка.
После ключевого слова ФУНКЦИЯ может находиться модификатор БЫСТР, указывает на необходимость загрузки всей функции в память для ускорения вычислений (имеет действие только при выполнении бланка в режиме интерпретации).
ФУНКЦИЯ [ БЫСТР ][<тип объекта>] [<тип результата>:]
[ (<параметры>) ]
Примеры заголовков функций:
ФУНКЦИЯ ТИП_СТРОКА : ИзмСтроку
ФУНКЦИЯ ТИП_ДАТА : Вчера
ФУНКЦИЯ ТИП_ЧИСЛО : ЗначНалог
Тип функции может быть опущен. В этом случае функция может возвращать значение любого из перечисленных типов. Контроль соответствия типов при этом отдается на усмотрение пользователя. Например, заголовок функции без указания типа результата будет выглядеть так:
ФУНКЦИЯ КонечИнфо
Внимание!Заголовок функции должен находиться на одной строке!
Объясняется это тем, что при загрузке данных о функциях библиотеки механизм чтения предельно прост, что обеспечивает скорое выполнение этого процесса. То же касается слова КОНЕЦ_ФУНКЦИИ.
Заголовки функций загружаются в одну таблицу в рамках расчета одного бланка. Поэтому, в библиотеках, используемых этим бланком, не должно быть функций с одинаковыми именами.
Параметры функций
Описание параметров функции следует за ее названием и заключается в круглые скобки. Функции можно не передавать ни одного параметра, тогда описание может быть опущено. Под описанием параметра подразумевается указание его типа и способа передачи в функцию.
Способ передачи параметра в функцию бывает 2 видов:
- параметр-значение
передается значение константы, переменной или выражения, которое принимается локальной переменной внутри функции. Обращение к этой переменной происходит по имени, заданному в описании параметров.
Пример:
ФУНКЦИЯ ТИП_ЧИСЛО: Куб(ТИП_ЧИСЛО: X ) |
||||
// |
||||
// // // |
имя локальной переменной |
|||
// |
тип параметра-значения |
|||
// |
имя функции |
|||
// |
тип результата |
Куб = X * X * X
// Указание имени Куб слева от знака равенства приводит к
// передаче значения выражения в правой части результату
// функции. В процессе обработки функции такие
// присвоения могут производиться более одного раза.
КОНЕЦ_ФУНКЦИИ
Обращение к этой функции будет следующим:
Y1 = Куб(3) // Y1 = 27
Y2 = Куб(1+1)// Y2 = 8
A = 2
Y3 = Куб(2*A)// Y3 = 64
- параметр-переменная
передается значение переменной в функцию и при выходе из функции исходное значение переменной изменяется в соответствии с действиями внутри функции. В функции переменная доступна по локальному имени. Указание того, что параметр или группа параметров является параметрами-переменными, производится написанием ключевого слова ПЕРЕМ перед названием типа.
Пример:
ФУНКЦИЯ Скобки ( ПЕРЕМ ТИП_СТРОКА: Строка ) |
|||||
// |
|||||
//// |
локальное имя |
||||
// |
тип параметра |
||||
// |
признак параметра-переменной |
||||
// |
название функции |
||||
// |
тип результата не определен |
Строка = "(" + Строка + ")"// изменение переменной Строка
КОНЕЦ_ФУНКЦИИ
Обращение к этой функции будет следующим:
С = "АБВ"
Скобки (С )// С = "(АБВ)"
В случае, когда необходимо передать несколько значений одного типа, они перечисляются через запятую. Группы параметров разного типа разделяются точкой запятой. Ограничений на количество групп и параметров в группе не наложено. Отдельные параметры и группы параметров могут располагаться в описании в любом порядке. Может быть указано несколько групп с одинаковым типом.
Примеры описаний параметров
-
группа параметров-значений одного типа:
(ТИП_ЧИСЛО: X, Y, Z)
-
группы параметров-значений разных типов:
(ТИП_СТРОКА: Ст1, Ст2; ТИП_ЧИСЛО: МаксДл;
TИП_ЛОГИКА: Проверка)
-
группы параметров-значений с совпадающими типами:
(ТИП_ДАТА: д1; ТИП_ЧИСЛО: Период; ТИП_ДАТА: д2)
-
группа параметров-переменных:
(ПЕРЕМ ТИП_СТРОКА: С1, С2)
-
группы параметров-переменных числового типа и параметров-значений логического типа:
(ПЕРЕМ ТИП_ЧИСЛО: а1, а2, а3; ТИП_ЛОГИКА: Флаг)
-
группы параметров-переменных календарного и числового типов:
(ПЕРЕМ ТИП_ДАТА: д1, д2; ПЕРЕМ ТИП_ЧИСЛО: ч1)
Кроме стандартных типов, которые были перечислены выше, в описании могут использоваться типы объектов. Подробнее эта тема раскрывается в описании работы с объектами.
Функции Инфо-Бухгалтера позволяют осуществить немедленное прекращение своего выполнения путем использования ключевого слова ВЫХОД. При громоздких расчетах его использование может значительно упростить текст функции.
Пример:
ФУНКЦИЯ ТИП_ЧИСЛО : ДелПр( ТИП_ЧИСЛО : А, Б)
ДелПр = 0// начальное значение результата
ЕСЛИ Б = 0 ТО
ВЫХОД// в особой ситуации – выход из функции
КОНЕЦ_ЕСЛИ
ДелПр = А/ Б// нормальное действие
КОНЕЦ_ФУНКЦИИ
Для подключения к бланку библиотеки функций применяется ключевое слово ИСПОЛЬЗОВАТЬ. Имя файла библиотеки (или нескольких библиотек) передается в виде строковых выражений.
Пример:
// подключаются библиотеки Func1.ibl и MyLib.ibl
ИСПОЛЬЗОВАТЬ ("FUNC1","MYLIB")
// Lib – переменная строкового типа, содержащая имя
// библиотеки. Она может быть задана, к примеру,
// в определениях.
ИСПОЛЬЗОВАТЬ (Lib)
Другой способ вызвать функцию из библиотеки представляет собой запись в одну строчку. Это позволяет использовать такие вызовы из описаний графиков и калькулятора. Имя библиотеки в этом случае указывается в квадратных скобках в виде строкового выражения, а имя вызываемой функции отделяется от него точкой.
Пример:
Пусть в библиотеке MyLib.ibl имеется функция Завтра:
ФУНКЦИЯ ТИП_ДАТА : Завтра
Завтра = ДАТА_ТЕК + 1
КОНЕЦ_ФУНКЦИИ
Тогда ее можно вызвать следующим образом:
// переменная д получает завтрашнюю дату
д = ["MYLIB"].Завтра
Замечания по использованию функций
-
При расчете бланка хранится единая таблица функций всех используемых библиотек. При употреблении ключевого слова ИСПОЛЬЗОВАТЬ или второго способа вызова, информация о функциях загружается в эту таблицу. Попытки вторичной загрузки библиотеки не вызывают ошибки и не дублируют информацию в таблице.
-
Внутри библиотеки видны (т.е. доступны для использования без употребления ИСПОЛЬЗОВАТЬ) все функции этой библиотеки. Остальные функции из таблицы функций бланка не видны.
-
При каждом вызове функции по информации из таблицы функций быстро загружается необходимый текст из библиотеки и осуществляется выполнение. Текст функций постоянно в памяти не хранится.
-
Так как вложенный вызов функций вызывает заполнение стека, то не следует злоупотреблять этой вложенностью. Требования для вложенности циклов примерно идентичны. Гарантировано использование вложенности до 5 уровней. Наиболее показательный пример вложенности – это рекурсия – вызов функции внутри себя самой.
Пример:
ФУНКЦИЯ ТИП_ЧИСЛО: Факториал (ТИП_ЧИСЛО:N)
ЕСЛИ N = 0 ТО
Факториал=1// 0! = 1
ИНАЧЕ
Факториал=N * Факториал (N-1)// рекурсивный вызов
КОНЕЦ_ЕСЛИКОНЕЦ_ФУНКЦИИ
Используя этот пример рекурсивного вычисления факториала, Вы можете оценить максимальный уровень вложенности функций. По нашим оценкам он составляет 7-8.
Элементы объектно-ориентированного программирования
Общие сведения
Для более удобной работы с хозяйственными операциями, проводками, счетами и базами данных в язык Инфо-Бухгалтера было введено понятие объекта. С помощью объектов легче управлять структурированными данными. Объем формульной части бланков и типовых операций при использовании объектов сокращается.
Для совместимости с предыдущими версиями программы сохранены все ключевые слова и функции, предназначенные для работы с журналом хозяйственных операций, планом счетов и базой данных. Однако большинство из них имеют теперь аналоги в методах соответствующих объектов.
В языке используются следующие объекты:
- База данных
- База данных с поддержкой SQL
- Операция
- Проводка
- Список
- Счет
- Файл
- Фильтр
- Шрифт
Договоримся о смысле некоторых традиционных для объектного программирования терминах. Сам объект является переменной, одного из перечисленных типов, которые описываются следующими ключевыми словами:
ТИП_БДТИП_SQLТИП_ОПЕРАЦИЯТИП_ПРОВОДКАТИП_СПИСОКТИП_СЧЕТТИП_ФАЙЛТИП_ФИЛЬТРТИП_ШРИФТ
Объект идентифицируется, как и переменная, по имени.
Полями объекта называются его специфические признаки. Например, для проводки это будут коды дебета и кредита, сумма и количество.
Каждое поле является в свою очередь переменной одного из стандартных типов. Обращение к полям происходит по их именам, которые определены для каждого объекта. Так для объекта Проводка поля имеют следующие имена и типы:
дебетТИП_СТРОКА
кредитТИП_СТРОКА
суммаТИП_ЧИСЛО
количествоТИП_ЧИСЛО
Полям объектов можно задавать и получать из них значения соответствующих типов. Следует заметить, что у объектов могут быть некоторые признаки, которые не являются полями из-за своего типа или возможности изменения. Например, у операции может быть любое количество проводок и, поэтому эта структура не может быть представлена как поле.
Другой пример – это имя DBF-файла у базы данных. Он должен быть доступен только для чтения и поэтому не может быть полем. В этих случаях доступ к таким признакам осуществляется с помощью методов объекта. Методом называется функция, относящаяся к объекту определенного типа. С помощью методов информацию объектов можно изменять и получать. Методы бывают как встроенные, так и внешние. Внешние методы подобны функциям и содержатся в библиотеках. Для обращения к полям и методам объекта используется точка:
<имя объекта>.<имя поля или метода>
Чтобы создать объект необходимо выполнить специальную функцию, которая называется конструктором. При создании переменной в языке Инфо-Бухгалтера не требуется предварительного описания, а лишь присвоение ей значения, которое и определяет в дальнейшем ее тип. Для объекта такой механизм неприменим, т.к. у него нет значения. Поэтому при создании объекта, необходимо явно указать, какого типа объект мы хотим получить. Указание типа объекта осуществляется путем задания ключевых слов ТИП_ПРОВОДКА и т.п. в универсальном конструкторе СОЗДАТЬ. Или при использовании специальных конструкторов, присущих конкретному типу.
Пример:
Для создания переменной А числового типа надо написать:
А = 1// значение может быть любое
Для создания переменной Оп типа Операция надо написать:
// При использовании универсального конструктора
// СОЗДАТЬ поля объекта обнуляются.
// Дата становится равной текущей.
СОЗДАТЬ ( Оп, ТИП_ОПЕРАЦИЯ )
или
// При использовании специального конструктора
// хозяйственной операции ОПЕР_СЧИТАТЬ происходит
// загрузка полей объекта Оп в соответствии со 2-ой
// операцией в журнале.
Оп = ОПЕР_СЧИТАТЬ (2)
Последняя запись тождественна следующей записи:
// Создаем и обнуляем Оп
СОЗДАТЬ ( Оп, ТИП_ОПЕРАЦИЯ )
Оп.СЧИТАТЬ (2)
Если вторично встречается конструктор какого-либо объекта, то это не вызывает ошибки, новый объект не создается, а поля обнуляются. Объекты Инфо-Бухгалтера, как и другие переменные, существуют до окончания работы с бланком.
Определение собственных типов объектов в языке Инфо-Бухгалтера не поддерживается.
Все объекты, кроме баз данных и файлов, можно присваивать друг другу.
При этом копируются все поля объекта и необходимые невидимые признаки (например, ряд проводок у хозяйственной операции). Если существует объект тип счет Сч1, то запись
Сч2 = Сч1
создаст новый объект Сч2, все поля которого будут равны полям Сч1.
Если объект Сч2 уже существовал, то его поля изменяются и становятся равными полям Сч1. Повторю, что присвоение файлов и баз данных
База2 = База1
является недопустимым и приводит к ошибке.
Объекты можно сравнивать на равенство и неравенство. При этом сравниваются значения всех их полей. Для объекта Операция, кроме полей сравниваются все проводки. Для баз данных сравниваются только имена DBF-файлов, а для объекта Файл сравниваются имена текстовых файлов.
Пример:
ЕСЛИ Сч1 <> Сч2 ТО// Если счета неравны,
Сч1 = Сч2// то выполняем действия
…
КОНЕЦ_ЕСЛИ
Написание собственных методов объектов
Для определения необходимых действий с объектом удобно воспользоваться возможностью самостоятельного написания его метода. Надо заметить, что замена (перекрытие) встроенных методов не поддерживается, т.е. Вы должны дать методу имя отличное от других имен методов объектов. Свой метод Вы размещаете в библиотеке функций, и сам он представляет функцию особого вида. Заголовок метода выглядит следующим образом:
ФУНКЦИЯ <тип объекта>[<тип результата>:]<имя метода>
[ ( <описание параметров> ) ]
Внутри метода видны, т.е. доступны без указания имени объекта, все поля и методы объекта, чей метод был вызван.
Пример:
ФУНКЦИЯ ТИП_ПРОВОДКА ТИП_ЧИСЛО: ЦенаПров |
|||
// |
|||
// |
|||
// // |
имя метода |
||
// // |
тип возвращаемого результата |
||
// |
тип объекта, которому принадлежит метод |
СчД = СЧЕТ_СЧИТАТЬ (дебет)// создаем счет дебета
СчК = СЧЕТ_СЧИТАТЬ (кредит)// создаем счет кредита
ЕСЛИ НЕ (СчД.кол ИЛИ СчК.кол) ТО
ЦенаПров = 0// если оба счета не
ВЫХОД// количественно-суммовые, то
КОНЕЦ_ЕСЛИ// цена равна нулю
ЕСЛИ СчД.исп_фц И СчК.исп_фц ТО
ЦенаПров = -1// ошибочная ситуация – по
ВЫХОД// обоим счетам используется
КОНЕЦ_ЕСЛИ// фиксированная цена
ЕСЛИ СчД.исп_фц ТО
ЦенаПров = СчД.фикс_цена // фикс. цена из счета дебета
ИНАЧЕ
ЕСЛИ СчК.исп_фц ТО
ЦенаПров = СчК.фикс_цена // фикс. цена из счета кредита
ИНАЧЕ
ЕСЛИ (количество = 0) ТО
ЦенаПров = 0// расчет цены по количеству
ИНАЧЕ// и сумме
ЦенаПров = сумма / количество
КОНЕЦ_ЕСЛИКОНЕЦ_ЕСЛИКОНЕЦ_ЕСЛИКОНЕЦ_ФУНКЦИИ
Обращение к полям дебет, кредит, сумма, количество происходит без указания имени объекта. Под ними будут пониматься поля того объекта, для которого будет вызван этот метод. Объекты типа Счет СчД и СчК являются локальными переменными и будут уничтожены при завершении работы метода.
Пусть текст метода содержится в библиотеке Methods.ibl, тогда обращение к этой функции может выглядеть следующим образом:
Оп = ОПЕР_СЧИТАТЬ (8)// считываем в объект Оп
// 8-ую операцию из журнала
Пр = Оп.ПРОВ (2)// считываем в объект Пр
// 2-ую проводку из объекта Оп
// подключение библиотеки Methods.ibl
ИСПОЛЬЗОВАТЬ ("METHODS")
Ц = Пр.ЦенаПров// Получаем цену по проводке Пр
Объект «База данных»
Описание
Объект База данных предназначен для обеспечения работы с таблицами в формате dBase (.dbf).
Данный объект является устаревшим и в новых разработках предпочтительно использовать объект База данных с поддержкой SQL.
Поля
Данный объект не имеет полей.
Конструкторы
Для создания объекта База данных можно использовать следующие конструкторы:
-
СОЗДАТЬ ( <имя>, ТИП_БД )
-
<имя> = БД_ОТКРЫТЬ (<файл>)
-
<имя> = БД_СОЗДАТЬ (<файл>)
где
<имя> |
– имя создаваемого объекта. |
<файл> |
– имя DBF-файла. |
Встроенные методы
Метод ВСЕГО
Тип результата | Имя метода | Параметры |
ТИП_ЧИСЛО | ВСЕГО |
– |
Метод ВСЕГО возвращает количество записей в базе данных.
Пример:
файл = ДИР_DBF+"\Jrn_pp.dbf"
СОЗДАТЬ ( бд, ТИП_БД )
бд.ОТКРЫТЬ (файл)
ЕСЛИ бд.ВСЕГО=0 ТО
СООБЩЕНИЕ ("В файле "+файл+" отсутствуют записи
или файл не найден!")
СТОП_ВСЕ
КОНЕЦ_ЕСЛИ
бд.ЗАКРЫТЬ
Метод ЗАКРЫТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАКРЫТЬ |
– |
Метод ЗАКРЫТЬ закрывает открытый DBF-файл.
Пример:
файл = ДИР_DBF+"\Temp.dbf"
СОЗДАТЬ ( бд, ТИП_БД )
бд.ОТКРЫТЬ (файл)
// => Работа с базой данных
бд.ЗАКРЫТЬ
Метод ЗАМЕНИТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАМЕНИТЬ |
– |
Метод ЗАМЕНИТЬ заменяет в базе текущую запись.
Пример:
строк=16
ЦИКЛ ДЛЯ (и=1, строк)
наим!и = НАЗВ (сч!и)
бд.ЗАП_ПОЛЕ ("x_Date", тек_дата)
бд.ЗАП_ПОЛЕ ("x_Name", наим!и)
бд.ЗАП_ПОЛЕ ("x_Num", кол!и)
ЕСЛИ замена = ДА ТО
бд.ЗАМЕНИТЬ
бд.ПЕРЕЙТИ (ном+и)
ИНАЧЕ
бд.ДОБАВИТЬ
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод ЗАП_ПОЛЕ
Тип результата | Имя метода | Параметры |
– |
ЗАП_ПОЛЕ |
(поле, значение) |
Метод ЗАП_ПОЛЕ позволяет изменить значение поля с указанным именем в текущей записи.
Пример:
дата_выд=ВВЕСТИ_ЗНАЧЕНИЕ("Введите дату выдачи:", ДАТА_ТЕК)
файл = ДИР_DBF + "\Jrn_pp.dbf"
СОЗДАТЬ ( бд, ТИП_БД )
бд.ОТКРЫТЬ (файл)
ном_зап = БД_РЕДАКТОР ( бд, "Журнал учета платежных
поручений на "+фирма,
["DateNum":"Дата и номер п/п":10,
"ppSum":"Сумма по п/п":10,
"Name":"Плательщик":46,
"Outf":"Отгр":3,
"DateOut":"Дата":8], бд.ВСЕГО)
бд.ПЕРЕЙТИ (ном_зап)
бд.СЧИТАТЬ
бд.ЗАП_ПОЛЕ ("outf", ДА)
бд.ЗАП_ПОЛЕ ("dataout", дата_выд)
бд.ЗАМЕНИТЬ
бд.ЗАКРЫТЬ
Метод ЗАПИСАТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАПИСАТЬ |
– |
Метод ЗАПИСАТЬ позволяет записать текущую запись в открытую базу данных.
Пример:
файл = ДИР_DBF + "\OBPIT\Polit.dbf"
у = БД_ОТКРЫТЬ (файл)
ЕСЛИ у.ВСЕГО=0 ТО
уч_полит = ВВЕСТИ_ЗНАЧЕНИЕ ("Учетная политика на Вашем
предприятии:",
["Облагать НДС по максимальной ставке и без НСП",
"Разделять НДС по ставкам (16.67 и 9.09) и без НСП",
"Облагать НДС по максимальной ставке и с НСП",
"Разделять НДС по ставкам (16.67 и 9.09) и с НСП"], 1)
у.ЗАП_ПОЛЕ ("polit", уч_полит)
у.ЗАП_ПОЛЕ ("politSP", 0, 2)
у.ЗАП_ПОЛЕ ("ZAP", "", 55)
у.ЗАП_ПОЛЕ ("ZAP1", 0, 15, 5)
у.ЗАПИСАТЬ
у.ЗАКРЫТЬ
уч_полит_сч = уч_полит
ИНАЧЕ
уч_полит_сч = у.ПОЛЕ ("polit")
КОНЕЦ_ЕСЛИ
Метод ИЗМЕНЕНА
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | ИЗМЕНЕНА |
– |
Метод ИЗМЕНЕНА позволяет узнать, были ли внесены изменения в базу данных с момента ее открытия (в том числе с помощью функции БД_РЕДАКТОР).
Пример:
файл = ДИР_DBF+"\Test.dbf"
ЕСЛИ НЕ СУЩ_ФАЙЛ (файл) ТО
СООБЩЕНИЕ ("Не найден файл "+файл)
СТОП
КОНЕЦ_ЕСЛИ
СОЗДАТЬ ( бд, ТИП_БД )
бд.ОТКРЫТЬ (файл)
// в базе можно только редактировать записи
ном = БД_РЕДАКТОР ( бд, НЕТ, ДА, НЕТ )
ЕСЛИ бд.ИЗМЕНЕНА ТО
СООБЩЕНИЕ ("База данных изменена!")
ИНАЧЕ
СООБЩЕНИЕ ("База данных осталась без изменений!")
КОНЕЦ_ЕСЛИ
бд.ЗАКРЫТЬ
Метод НОВАЯ
Тип результата | Имя метода | Параметры |
– |
НОВАЯ |
(имя файла) |
Метод НОВАЯ создает новую базу данных и связывает с ней объект. Если файл с указанным именем уже существует, то он заменяется.
Пример:
СОЗДАТЬ ( бд, ТИП_БД )
файл = ДИР_DBF+"\Test.dbf"
ЕСЛИ НЕ СУЩ_ФАЙЛ (файл) ТО
ЕСЛИ ВОПРОС ( "Файл "+файл+" не найден!"+
СИМВ (13)+"Создать его", НЕТ ) = НЕТ ТО
СТОП
КОНЕЦ_ЕСЛИ
бд.НОВАЯ (файл)
КОНЕЦ_ЕСЛИ
// => работа с базой данных
бд.ЗАКРЫТЬ
Метод ОТКРЫТЬ
Тип результата | Имя метода | Параметры |
– |
ОТКРЫТЬ |
(имя файла) |
Метод ОТКРЫТЬ связывает объект с указанным DBF-файлом, открывая его для чтения и записи.
Пример:
СОЗДАТЬ ( бд, ТИП_БД )
файл = ДИР_DBF+"\Test.dbf"
ЕСЛИ НЕ СУЩ_ФАЙЛ (файл) ТО
СООБЩЕНИЕ ( "Файл "+файл+" не найден!" )
СТОП
КОНЕЦ_ЕСЛИ
бд.ОТКРЫТЬ (файл)
// => работа с базой данных
бд.ЗАКРЫТЬ
Метод ПЕРЕЙТИ
Тип результата | Имя метода | Параметры |
– |
ПЕРЕЙТИ |
(номер записи) |
Метод ПЕРЕЙТИ перемещает указатель на запись с указанным номером от начала таблицы.
Пример:
строк = 16
файл = ДИР_DBF+"\T_Dolg.dbf"
СОЗДАТЬ ( бд, ТИП_БД )
бд.ОТКРЫТЬ (файл)
ном = БД_РЕДАКТОР ( бд, НЕТ, НЕТ, НЕТ )
ВЫВЕСТИ ( 25, 4, "Таблица задолженностей", ДА )
ВСТАВИТЬ_РАМКУ ( 1, нач_табл, 51, 1, 2)
ВЫВЕСТИ (16, нач_табл, "Наименование товара")
ВСТАВИТЬ_РАМКУ (52, нач_табл, 11, 1, 2)
ВЫВЕСТИ (53, нач_табл, "Количество")
ЦИКЛ ДЛЯ (и=1, строк)
бд.ПЕРЕЙТИ (ном + и – 1)
бд.СЧИТАТЬ
наим!и = бд.ПОЛЕ ("x_Name")
кол!и = бд.ПОЛЕ ("x_Num")
ВСТАВИТЬ_РАМКУ ( 1, и+нач_табл, 51, 1, 2)
ВЫВЕСТИ ( 2, и+нач_табл, наим!и, 50)
ВСТАВИТЬ_РАМКУ (52, и+нач_табл, 11, 1, 2)
ВЫВЕСТИ (53, и+нач_табл, кол!и, 10, 0)
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод ПОЛЕ
Тип результата | Имя метода | Параметры |
различный |
ПОЛЕ |
(имя поля) |
Метод ПОЛЕ возвращает значение указанного поля в текущей записи. Тип результата зависит от типа поля.
Пример:
СОЗДАТЬ ( бд, ТИП_БД )
файл = ДИР_DBF+"\Test.dbf"
ЕСЛИ НЕ СУЩ_ФАЙЛ (файл) ТО
СООБЩЕНИЕ ( "Файл "+файл+" не найден!" )
СТОП
КОНЕЦ_ЕСЛИ
бд.ОТКРЫТЬ (файл)
всего_зап = бд.ВСЕГО
ЦИКЛ ДЛЯ (и=1, всего_зап)
бд.ПЕРЕЙТИ (и)
бд.СЧИТАТЬ
наим = бд.ПОЛЕ ("Naim")
кол = бд.ПОЛЕ ("Col")
цена = бд.ПОЛЕ ("Price")
сумма = кол*цена
ВЫВЕСТИ (1, и, и, 3)
ВЫВЕСТИ (5, и, наим, 50)
ВЫВЕСТИ (57, и, кол, 3)
ВЫВЕСТИ (62, и, цена, 8, 2)
ВЫВЕСТИ (72, и, сумма, 9, 2, ДА)
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод СОРТИРОВКА
Тип результата | Имя метода | Параметры |
– |
СОРТИРОВКА |
( поле 1 [,поле 2 [, ...] ] ) |
Метод СОРТИРОВКА физически сортирует таблицу по указанным полям.
Пример:
СОЗДАТЬ ( бд, ТИП_БД )
бд.ОТКРЫТЬ ( ДИР_DBF+"\mmt.dbf" )
бд.СОРТИРОВКА ("Рlace", "Code_place")
ном_зап = БД_РЕДАКТОР ( бд, "Редактирование базы данных",
[*"Place":"Название нас.пункта",
"Code_place":"Код нас.пункта"],
ДА, ДА, ДА )
бд.ЗАКРЫТЬ
Метод СЧИТАТЬ
Тип результата | Имя метода | Параметры |
– |
СЧИТАТЬ |
– |
Метод СЧИТАТЬ считывает текущую запись.
Пример:
бд.ОТКРЫТЬ (файл)
всего_зап = бд.ВСЕГО
ЦИКЛ ДЛЯ (и=1, всего_зап)
бд.ПЕРЕЙТИ (и)
бд.СЧИТАТЬ
наим = бд.ПОЛЕ ("Naim")
кол = бд.ПОЛЕ ("Col")
цена = бд.ПОЛЕ ("Price")
сумма = кол*цена
ВЫВЕСТИ (1, и, и, 3)
ВЫВЕСТИ (5, и, наим, 50)
ВЫВЕСТИ (57, и, кол, 3)
ВЫВЕСТИ (62, и, цена, 8, 2)
ВЫВЕСТИ (72, и, сумма, 9, 2, ДА)
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод ТЕКУЩАЯ
Тип результата | Имя метода | Параметры |
ТИП_ЧИСЛО | ТЕКУЩАЯ |
– |
Метод ТЕКУЩАЯ возвращает номер текущей записи.
Метод УДАЛИТЬ
Тип результата | Имя метода | Параметры |
– |
УДАЛИТЬ |
(номер записи) |
Метод УДАЛИТЬ позволяет удалить запись из базы данных. Данный метод физически переписывает базу данных, то есть работает медленно.
Пример:
кп = БД_ОТКРЫТЬ (Book)
всего = кп.ВСЕГО
и=1
ЦИКЛ ПОКА (и <= всего)
кп.ПЕРЕЙТИ (и)
кп.СЧИТАТЬ
ЕСЛИ кп.ПОЛЕ ("Number") = НОМЕР ТО
кп.УДАЛИТЬ (и)
всего = всего – 1
и = и – 1
КОНЕЦ_ЕСЛИ
и = и+1
КОНЕЦ_ЦИКЛА
кп.ЗАКРЫТЬ
Метод ФАЙЛ
Тип результата | Имя метода | Параметры |
ТИП_СТРОКА | ФАЙЛ |
– |
Метод ФАЙЛ позволяет получить имя DBF-файла с которым связан объект База данных. Если DBF-файл не открыт, то метод возвращает пустую строку.
Пример:
бд = БД_ОТКРЫТЬ
всего = бд.ВСЕГО
СООБЩЕНИЕ ( "В файле "+бд.ФАЙЛ+" содержится записей:"
+СТР (всего) )
бд.ЗАКРЫТЬ
Объект «База данных с поддержкой SQL»
Описание
Данный объект создан для обеспечения эффективной работы с таблицами в форматах dBase (.dbf) и Paradox (.db). Функционально он полностью заменяет старый объект База данных, однако, имеет свои особенности использования. В связи с этим для поддержки существующих наработок старый объект База данных оставлен без изменений.
Для работы с новым объектом необходимо установить на компьютере BDE (Borland Database Engine), настроенный как при работе с сетевой версией Инфо-Бухгалтера. Директорией базы считается директория, указанная в графе «Директория DBF» на закладке Каталоги пункта меню Установка/Настройки.
При разработке объекта База данных с поддержкой SQL (далее БД-SQL) по возможности избегалось использование функций специфических для dBase или Paradox. Это позволит в перспективе использовать БД-SQL для доступа к другим базам данных (Oracle, Sybase и т.п.).
Объект БД-SQL доступен, начиная с версии 8.0.
В базовой и минимальной версиях данный объект отсутствует.
Поля
Данный объект не имеет полей.
Конструкторы
Для создания объекта БД-SQL можно использовать следующие конструкторы:
-
Универсальный конструктор СОЗДАТЬ:
СОЗДАТЬ (<объект>, ТИП_SQL )
-
Конструктор SQL_ОТКРЫТЬ, позволяющий открыть существующую таблицу:
<объект> = SQL_ОТКРЫТЬ(<таблица>[,<тип>[,<индекс>] ])
-
Конструктор SQL_СОЗДАТЬ, позволяющий создать новую таблицу с заданными полями:
<объект> = SQL_СОЗДАТЬ(<таблица>[,<поле1>[,<поле2> [...] ] ])
-
Конструктор SQL_ЗАПРОС, связывающий объект БД-SQL с результатом запроса.
<объект> = SQL_ЗАПРОС (<запрос>)
где
<объект> |
– |
переменная типа ТИП_SQL |
<таблица> |
– |
имя файла таблицы с расширением или без него; по умолчанию – .dbf (строковое выражение) |
<тип> |
– |
тип таблицы, определяемый ключевыми словами DBASE или PARADOX. Тип необходимо указать, если имя таблицы указано без расширения или расширение отличается от .dbf или .db. |
<индекс> |
– |
имя файла индекса (строковое выражение) |
<поле n> |
– |
описатель поля, состоящий из имени поля, типа и, при необходимости, формата (подробнее см. ниже). |
<запрос> |
– |
SQL-запрос (строковое выражение). |
Структура описателя поля:
<имя> : <тип> [ : <длина> [; <знаки> ] ]
где
<имя> |
– |
выражение строкового типа, значение которого является допустимым названием поля. |
<тип> |
– |
ключевое слово, задающее тип поля. Допустимы следующие типы:
|
<длина> |
– |
выражение числового типа, определяющее длину поля (только для типов ТИП_СТРОКА и ТИП_ЧИСЛО). |
<знаки> |
– |
количество десятичных знаков после запятой. (только для типа ТИП_ЧИСЛО). |
Встроенные методы
Метод В_НАЧАЛО
Тип результата | Имя метода | Параметры |
– |
В_НАЧАЛО |
– |
Метод В_НАЧАЛО позволяет осуществить переход в начало таблицы.
Пример:
файл = ДИР_DBF+"\Jrn_pp.dbf"
СОЗДАТЬ ( бд, ТИП_SQL )
бд.ОТКРЫТЬ (файл)
ном = БД_РЕДАКТОР ( бд, ДА, НЕТ, НЕТ )
бд.ПЕРЕЙТИ (ном)
// => Работа с базой данных
бд.В_НАЧАЛО
ЦИКЛ ДЛЯ ( и=1, бд.ВСЕГО )
бд.СЛЕДУЮЩАЯ
бд.СЧИТАТЬ
// => Работа с базой данных
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод В_КОНЕЦ
Тип результата | Имя метода | Параметры |
– |
В_КОНЕЦ |
– |
Метод В_КОНЕЦ позволяет осуществить переход в конец таблицы.
Пример:
файл = ДИР_DBF+"\Journal.dbf"
СОЗДАТЬ ( бд, ТИП_SQL )
бд.ОТКРЫТЬ (файл)
бд.В_КОНЕЦ
ЦИКЛ ПОКА ( бд.ПРЕДЫДУЩАЯ )
бд.СЧИТАТЬ
ЕСЛИ бд.ПОЛЕ ("xNumber") = НОМЕР ТО
наим = бд.ПОЛЕ ("xName")
кол = бд.ПОЛЕ ("xNum")
цена = бд.ПОЛЕ ("xPrice")
сумма = кол!и*цена!и
СТОП
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод ВРЕМЕННАЯ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | ВРЕМЕННАЯ |
– |
Метод ВРЕМЕННАЯ позволяет определить, является ли связанная с объектом таблица временной. Временные таблицы могут получаться в результате некоторых SQL-запросов.
Временная таблица удаляется после закрытия. Вносимые во временную таблицу изменения теряются.
Пример:
// Выбираем записи из NewTab.dbf в порядке возрастания ItemName
бд.ЗАПРОС("SELECT * FROM 'newtab.dbf' ORDER BY ItemName")
ЕСЛИ бд.ВРЕМЕННАЯ ТО// Если таблица временная, то
бд.ЗАПИСАТЬ("Query.dbf")// сохраняем ее в Query.dbf
КОНЕЦ_ЕСЛИ
бд.ЗАКРЫТЬ// Закрываем таблицу
Метод ВСЕГО
Тип результата | Имя метода | Параметры |
ТИП_ЧИСЛО | ВСЕГО |
– |
Метод ВСЕГО возвращает количество записей в таблице.
Пример:
файл = ДИР_DBF+"\Jrn_pp.dbf"
ЕСЛИ НЕ СУЩ_ФАЙЛ (файл) ТО
СООБЩЕНИЕ ("Файл "+файл+" отсутствует!"
+СИМВ(13)+"Расчет остановлен.")
СТОП
КОНЕЦ_ЕСЛИ
СОЗДАТЬ ( бд, ТИП_SQL )
бд.ОТКРЫТЬ (файл)
ЕСЛИ бд.ВСЕГО=0 ТО
СООБЩЕНИЕ ("Файл "+файл+" пустой!")
СТОП
КОНЕЦ_ЕСЛИ
// => Работа с базой данных
бд.ЗАКРЫТЬ
Метод ДОБ_ПОЛЕ
Тип результата | Имя метода | Параметры |
– |
ДОБ_ПОЛЕ |
( имя поля, тип поля [, длина поля [,кол-во знаков] ] ) |
Метод ДОБ_ПОЛЕ позволяет добавить поле указанного типа в базу данных. В базе не должно быть поля с таким названием.
Параметр <длина поля> используется только для строкового и числового типов. Для числового типа может дополнительно задаваться количество десятичных знаков (по умолчанию 0).
Пример:
файл = ДИР_DBF+"\Opit_db.dbf"
бд = SQL_ОТКРЫТЬ ( файл , DBASE )
ЕСЛИ ВЕР_ОБЩПИТ <= 1.3 ТО
бд.ДОБ_ПОЛЕ ( "xReserve", ТИП_СТРОКА, 50 )
бд.ДОБ_ПОЛЕ ( "xSumNSP", ТИП_ЧИСЛО, 10, 2 )
бд.ДОБ_ПОЛЕ ( "xDateOut", ТИП_ДАТА )
ВЕР_ОБЩПИТ = 1.4
КОНЕЦ_ЕСЛИ
бд.ЗАКРЫТЬ
Метод ДОБАВИТЬ
Тип результата | Имя метода | Параметры |
– |
ДОБАВИТЬ |
– |
Метод ДОБАВИТЬ добавляет запись в открытую таблицу.
Пример:
файл = ДИР_DBF + "\Post.dbf"
бд = SQL_ОТКРЫТЬ ( файл , DBASE )
ЦИКЛ ДЛЯ (и=1, строк)
бд.ЗАП_ПОЛЕ ( "xDate", ДАТА_ТЕК )
бд.ЗАП_ПОЛЕ ( "xName", наим!и)
бд.ЗАП_ПОЛЕ ( "xNum", кол!и )
бд.ЗАП_ПОЛЕ ( "xPrice", цена!и )
бд.ДОБАВИТЬ
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод ДЛИНА_ПОЛЯ
Тип результата | Имя метода | Параметры |
ТИП_ЧИСЛО | ДЛИНА_ПОЛЯ |
(название поля) |
Метод ДЛИНА_ПОЛЯ для полей строкового и числового типов возвращает длину поля. Для полей других типов возвращает значение 0.
Пример:
файл = ДИР_DBF+"\Db_Price.dbf"
бд = SQL_ОТКРЫТЬ ( файл , DBASE )
ЦИКЛ ДЛЯ (и=1, строк)
ВЫВЕСТИ (1, и, и, 3)
наим = бд.ПОЛЕ ( "xName" );
ВЫВЕСТИ ( 5, и, наим, бд.ДЛИНА_ПОЛЯ ("xName") )
кол = бд.ПОЛЕ ( "xNum" );
ВЫВЕСТИ ( 5, и, кол, бд.ДЛИНА_ПОЛЯ ("xNum") )
цена = бд.ПОЛЕ ( "xPrice" );
ВЫВЕСТИ ( 5, и, цена, бд.ДЛИНА_ПОЛЯ ("xPrice") )
КОНЕЦ_ЕСЛИ
бд.ЗАКРЫТЬ
Метод ЗАКРЫТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАКРЫТЬ |
– |
Метод ЗАКРЫТЬ закрывает связанную с объектом таблицу.
Пример:
файл = ДИР_DBF+"\Temp.dbf"
СОЗДАТЬ ( бд, ТИП_SQL )
бд.ОТКРЫТЬ (файл)
//
// => Работа с базой данных
//
бд.ЗАКРЫТЬ
Метод ЗАМЕНИТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАМЕНИТЬ |
– |
Метод ЗАМЕНИТЬ заменяет текущую запись.
Пример:
строк=16
бд = SQL_ОТКРЫТЬ ( файл , DBASE )
ЦИКЛ ДЛЯ (и=1, строк)
наим!и = НАЗВ (сч!и)
бд.ЗАП_ПОЛЕ ("x_Date", тек_дата)
бд.ЗАП_ПОЛЕ ("x_Name", наим!и)
бд.ЗАП_ПОЛЕ ("x_Num", кол!и)
ЕСЛИ замена = ДА ТО
бд.ЗАМЕНИТЬ
бд.СЛЕДУЮЩАЯ
ИНАЧЕ
бд.ДОБАВИТЬ
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод ЗАП_ПОЛЕ
Тип результата | Имя метода | Параметры |
– |
ЗАП_ПОЛЕ |
(имя поля, значение) |
Метод ЗАП_ПОЛЕ устанавливает значение указанного поля в текущей записи.
Пример:
дата_выд = ВВЕСТИ_ЗНАЧЕНИЕ ("Введите дату выдачи:",
ДАТА_ТЕК)
файл = ДИР_DBF + "\Jrn_pp.dbf"
бд = SQL_ОТКРЫТЬ (файл, DBASE)
ном_зап = БД_РЕДАКТОР ( бд, "Журнал учета п/п на "+фирма,
["DateNum":"Дата и номер п/п":10,
"ppSum":"Сумма по п/п":10,
"Name":"Плательщик":46,
"Outf":"Отгр":3,
"DateOut":"Дата":8], бд.ВСЕГО)
бд.ПЕРЕЙТИ (ном_зап)
бд.СЧИТАТЬ
бд.ЗАП_ПОЛЕ ("outf", ДА)
бд.ЗАП_ПОЛЕ ("dataout", дата_выд)
бд.ЗАМЕНИТЬ
бд.ЗАКРЫТЬ
Метод ЗАПИСАТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАПИСАТЬ |
(имя таблицы) |
Метод ЗАПИСАТЬ позволяет записать таблицу (в том числе временную) на диск с заданным именем.
Пример:
СОЗДАТЬ ( бд, ТИП_SQL )
бд.ЗАПРОС ( "SELECT * FROM 'mmt.dbf' WHERE Place
LIKE '"+город+"'")
бд.ЗАПИСАТЬ ( ДИР_DBF + "\MMT\City.dbf")
бд.ЗАКРЫТЬ
Метод ЗАПРОС
Тип результата | Имя метода | Параметры |
– |
ЗАПРОС |
(строка запроса) |
Метод ЗАПРОС выполняет строку SQL-запроса. В случае, когда в результате запроса была сформирована таблица, ранее открытая таблица закрывается, а объект связывается с новой сформированной таблицей.
Пример:
СОЗДАТЬ ( бд, ТИП_SQL )
бд.ОТКРЫТЬ ("mmt.dbf")
бд.СОРТИРОВКА ("Place")
бд.ЗАПРОС ( "SELECT * FROM 'mmt.dbf' WHERE Place
LIKE '"+город+"'")
сообщ = "Населенных пунктов с таким названием в базе
не обнаружено!"
ЕСЛИ бд.ВСЕГО >0 ТО
ЦИКЛ ПОКА ( бд.СЛЕДУЮЩАЯ )
ВСТАВИТЬ_РАМКУ ( 1, и, 4, 1);
ВЫВЕСТИ ( 2, и, и-5)
ВСТАВИТЬ_РАМКУ ( 5, и, 55, 1);
ВЫВЕСТИ ( 6, и, бд.ПОЛЕ ("Place"), ДА)
ВСТАВИТЬ_РАМКУ (60, и, 11, 1);
ВЫВЕСТИ ( 61,и, бд.ПОЛЕ ("Code_place"), ДА)
и++
КОНЕЦ_ЦИКЛА
ИНАЧЕ
ВЫВЕСТИ (3, и, сообщ, ДА)
КОНЕЦ_ЕСЛИ
бд.ЗАКРЫТЬ
Метод ИЗМЕНЕНА
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | ИЗМЕНЕНА |
– |
Метод ИЗМЕНЕНА позволяет узнать, были ли внесены изменения в базу данных с момента ее открытия (в том числе с помощью функции БД_РЕДАКТОР).
Пример:
файл = ДИР_DBF+"\Test.dbf"
ЕСЛИ НЕ СУЩ_ФАЙЛ (файл) ТО
СООБЩЕНИЕ ("Не найден файл "+файл)
СТОП
КОНЕЦ_ЕСЛИ
СОЗДАТЬ ( бд, ТИП_SQL )
бд.ОТКРЫТЬ (файл)
// в базе можно только редактировать записи
ном = БД_РЕДАКТОР (бд, НЕТ, ДА, НЕТ)
ЕСЛИ бд.ИЗМЕНЕНА ТО
СООБЩЕНИЕ ("База данных изменена!")
ИНАЧЕ
СООБЩЕНИЕ ("База данных осталась без изменений!")
КОНЕЦ_ЕСЛИ
бд.ЗАКРЫТЬ
Метод КОЛ_ПОЛЕЙ
Тип результата | Имя метода | Параметры |
ТИП_ЧИСЛО | КОЛ_ПОЛЕЙ |
– |
Метод КОЛ_ПОЛЕЙ позволяет получить количество полей в записи таблицы.
Пример:
бд = SQL_ОТКРЫТЬ ( "NewTab.dbf" )// открываем таблицу
ЦИКЛ ДЛЯ ( и = 1, бд.КОЛ_ПОЛЕЙ )// цикл по полям
// вывод названий полей
СООБЩЕНИЕ ( бд.НАЗВ_ПОЛЯ ( и ) )
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ// закрываем таблицу
Метод НАЗВ_ПОЛЯ
Тип результата | Имя метода | Параметры |
ТИП_СТРОКА | НАЗВ_ПОЛЯ |
(порядковый номер поля) |
Метод НАЗВ_ПОЛЯ возвращает название указанного поля.
Замечание:
Нумерация полей начинается с единицы.
Метод НАЙТИ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | НАЙТИ |
(имя поля, значение) |
Метод НАЙТИ позволяет осуществить поиск по индексированным полям. Возвращает ДА в случае, когда запись с заданным значением ключевого поля найдена, и НЕТ в противном случае.
В случае успеха найденная запись становится текущей. При отсутствии поля, отсутствии или устаревании индекса выдается сообщение об ошибке.
Пример:
СОЗДАТЬ ( бд, ТИП_SQL )// создаем объект БД-SQL
// создаем индекс NameX по полю iNAIM
бд.ЗАПРОС ("CREATE INDEX NameX ON 'produkt.dbf' (iNAIM)")
// открываем таблицу с индексом NameX
бд.ОТКРЫТЬ ("produkt.dbf", "NameX")
// ищем по полю iNAIM запись со значением переменной поиск
ЕСЛИ бд.НАЙТИ ("iNAIM", поиск) ТО
СООБЩЕНИЕ ("Запись найдена:"+СИМВ (13)+
СТР (бд.ПОЛЕ ("iNAIM") )+" "+
СТР (бд.ПОЛЕ ("iCODE") ) )
ИНАЧЕ
СООБЩЕНИЕ ("Запись не найдена!")
КОНЕЦ_ЕСЛИ
Метод НОВАЯ
Тип результата | Имя метода | Параметры |
– |
НОВАЯ |
(таблица, [ поле1 [,поле2 [...]]]) |
Метод НОВАЯ создает новую таблицу и связывает с ней объект. Ранее открытая таблица закрывается.
Пример:
СОЗДАТЬ ( бд, ТИП_SQL )
файл = ДИР_DBF+"\Test.dbf"
ЕСЛИ НЕ СУЩ_ФАЙЛ (файл) ТО
ЕСЛИ ВОПРОС ( "Файл "+файл+" не найден!"+
СИМВ (13)+"Создать его", НЕТ ) = НЕТ ТО
СТОП
КОНЕЦ_ЕСЛИ
бд.НОВАЯ ( файл, ["xName":ТИП_СТРОКА:50,
"xSumNSP":ТИП_ЧИСЛО:10;2,
"xDateOut", ТИП_ДАТА ] )
КОНЕЦ_ЕСЛИ
// => работа с базой данных
бд.ДОБ_ПОЛЕ ("xReserve", ТИП_СТРОКА, 254)
бд.ЗАКРЫТЬ
Метод ОТКРЫТЬ
Тип результата | Имя метода | Параметры |
– |
ОТКРЫТЬ |
(таблица [, индекс] ]) |
Метод ОТКРЫТЬ открывает существующую таблицу. Ранее открытая таблица закрывается.
Пример:
СОЗДАТЬ ( бд, ТИП_SQL )
файл = ДИР_DBF+"\Prihod.dbf"
ЕСЛИ НЕ СУЩ_ФАЙЛ (файл) ТО
СООБЩЕНИЕ ( "Файл "+файл+" не найден!" )
СТОП
КОНЕЦ_ЕСЛИ
// создаем индекс xName по полю Name
бд.ЗАПРОС ("CREATE INDEX xName ON 'Prihod.dbf' (Name)")
бд.ОТКРЫТЬ (файл, "xName")
//
// => работа с базой данных
//
бд.ЗАКРЫТЬ
Метод ПЕРЕЙТИ
Тип результата | Имя метода | Параметры |
– |
ПЕРЕЙТИ |
(номер записи) |
Метод ПЕРЕЙТИ перемещает указатель на запись с указанным номером от начала таблицы.
Пример:
строк = 16
файл = ДИР_DBF+"\T_Dolg.dbf"
СОЗДАТЬ ( бд, ТИП_SQL )
бд.ОТКРЫТЬ (файл)
ном = БД_РЕДАКТОР ( бд, НЕТ, НЕТ, НЕТ )
ЦИКЛ ДЛЯ (и=1, строк)
бд.ПЕРЕЙТИ (ном+и-1)
бд.СЧИТАТЬ
наим!и = бд.ПОЛЕ ("x_Name")
кол!и = бд.ПОЛЕ ("x_Num")
ВСТАВИТЬ_РАМКУ ( 1, и+нач_табл, 51, 1, 2);
ВЫВЕСТИ ( 2, и+нач_табл, наим!и, 50)
ВСТАВИТЬ_РАМКУ (52, и+нач_табл, 11, 1, 2);
ВЫВЕСТИ (53, и+нач_табл, кол!и, 10, 0)
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод ПЕРЕКЛЮЧИТЬ_ИНДЕКС
Тип результата | Имя метода | Параметры |
– |
ПЕРЕКЛЮЧИТЬ_ИНДЕКС |
(имя индекса) |
Метод ПЕРЕКЛЮЧИТЬ_ИНДЕКС осуществляет переключение между индексными файлами.
Пример:
СОЗДАТЬ ( бд, ТИП_SQL )// создаем объект БД-SQL
// создаем индекс NameX по полю iNAIM
бд.ЗАПРОС ("CREATE INDEX NameX ON 'produkt.dbf' (iNAIM)")
// создаем индекс CodeX по полю iCODE
бд.ЗАПРОС ("CREATE INDEX CodeX ON 'produkt.dbf' (iCODE)")
// открываем таблицу с индексом NameX
бд.ОТКРЫТЬ ("produkt.dbf", "NameX")
// ищем по полю iNAIM запись со значением переменной поиск
ЕСЛИ бд.НАЙТИ ("iNAIM", поиск) ТО
СООБЩЕНИЕ ("Запись найдена:"+СИМВ (13)+
СТР (бд.ПОЛЕ ("iNAIM") )+" "+
СТР (бд.ПОЛЕ ("iCODE")) )
ИНАЧЕ
СООБЩЕНИЕ ("Запись не найдена!")
КОНЕЦ_ЕСЛИ
// переключаемся на индекс CodeX
бд.ПЕРЕКЛЮЧИТЬ_ИНДЕКС ("CodeX")
// ищем по полю iCODE запись со значением переменной код
ЕСЛИ бд.НАЙТИ ("iCODE", код) ТО
СООБЩЕНИЕ ("Запись найдена:"+СИМВ (13)+
СТР ( бд.ПОЛЕ ("iNAIM") )+" "+
СТР ( бд.ПОЛЕ ("iCODE")) )
ИНАЧЕ
СООБЩЕНИЕ ("Запись не найдена!")
КОНЕЦ_ЕСЛИ
Метод ПОЛЕ
Тип результата | Имя метода | Параметры |
различный |
ПОЛЕ |
(имя поля) |
Метод ПОЛЕ возвращает значение указанного поля в текущей записи.
Пример:
файл = ДИР_DBF+"\salebook.dbf"
СОЗДАТЬ ( к, ТИП_SQL )
к.ОТКРЫТЬ (файл)
сч=0
ЦИКЛ ДЛЯ ( и=1, к.ВСЕГО )
к.ПЕРЕЙТИ (и)
к.СЧИТАТЬ
е1!и = к.ПОЛЕ ("Date");
е2!и = к.ПОЛЕ ("Number");
е3!и = к.ПОЛЕ ("Group");
е4!и = к.ПОЛЕ ("Customer");
е5!и = к.ПОЛЕ ("INN");
е6!и = к.ПОЛЕ ("Summa");
е7!и = к.ПОЛЕ ("SummaNDS20");
е8!и = к.ПОЛЕ ("NDS20");
сч++
КОНЕЦ_ЦИКЛА
к.ЗАКРЫТЬ
Метод ПРЕДЫДУЩАЯ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | ПРЕДЫДУЩАЯ |
– |
Метод ПРЕДЫДУЩАЯ переходит на предыдущую запись и возвращает в случае успеха значение ДА. Если текущая запись первая в таблице, то возвращает значение НЕТ.
Пример:
файл = ДИР_DBF+"\Journal.dbf"
СОЗДАТЬ ( бд, ТИП_SQL )
бд.ОТКРЫТЬ (файл)
бд.В_КОНЕЦ
ЦИКЛ ПОКА ( бд.ПРЕДЫДУЩАЯ )
бд.СЧИТАТЬ
//
// => Работа с базой данных
//
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод СЛЕДУЮЩАЯ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | СЛЕДУЮЩАЯ |
– |
Метод СЛЕДУЮЩАЯ переходит на следующую запись и возвращает в случае успеха значение ДА. Если текущая запись последняя в таблице, то возвращает значение НЕТ.
Пример:
// Открываем таблицу, выбирая записи со значением iCount>10
бд = SQL_ЗАПРОС ( "SELECT * FROM 'newtab.dbf' WHERE
iCount>10" )
// Цикл по всем выбранным записям
ЦИКЛ ПОКА ( бд.СЛЕДУЮЩАЯ )
// Увеличиваем значение поля iPrice на значение add
бд.ЗАП_ПОЛЕ ( "iPrice", бд.ПОЛЕ ("iPrice") + add )
бд.ЗАМЕНИТЬ// Заменяем текущую запись
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ// Закрываем таблицу
Метод СОРТИРОВКА
Тип результата | Имя метода | Параметры |
– |
СОРТИРОВКА |
(поле 1 [,поле 2 [, ...]] ) |
Метод СОРТИРОВКА физически сортирует таблицу по указанным полям.
Пример:
бд = SQL_ОТКРЫТЬ ( "mmt.dbf", DBASE )
бд.СОРТИРОВКА ( "Place", "Code_place" )
ном_зап=БД_РЕДАКТОР( бд,"Редактирование базы данных",
[*"Place":"Название нас.пункта",
"Code_place":"Код нас.пункта"],
ДА, ДА, ДА )
бд.ЗАКРЫТЬ
Метод СЧИТАТЬ
Тип результата | Имя метода | Параметры |
– |
CЧИТАТЬ |
– |
Метод СЧИТАТЬ считывает текущую запись.
Пример:
бд = SQL_ОТКРЫТЬ (файл)
всего_зап = бд.ВСЕГО
ЦИКЛ ДЛЯ (и=1, всего_зап)
бд.ПЕРЕЙТИ (и)
бд.СЧИТАТЬ
наим = бд.ПОЛЕ ("Naim");кол = бд.ПОЛЕ ("Col")
цена = бд.ПОЛЕ ("Price")
сумма = кол*цена
ВЫВЕСТИ (1, и, и, 3);ВЫВЕСТИ (5, и, наим, 50)
ВЫВЕСТИ (57, и, кол, 3);ВЫВЕСТИ (62, и, цена, 8, 2)
ВЫВЕСТИ (72, и, сумма, 9, 2, ДА)
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод ТИП_ПОЛЯ
Тип результата | Имя метода | Параметры |
ТИП_СТРОКА | ТИП_ПОЛЯ |
(название поля) |
Метод ТИП_ПОЛЯ возвращает букву, характеризующую тип поля:
С– ТИП_СТРОКА
Ч– ТИП_ЧИСЛО
Л– ТИП_ЛОГИКА
Д– ТИП_ДАТА
Пример:
СОЗДАТЬ ( бд, ТИП_SQL )
файл = ДИР_DBF+"\Test.dbf"
ЕСЛИ НЕ СУЩ_ФАЙЛ (файл) ТО
СООБЩЕНИЕ ( "Файл "+файл+" не найден!" )
СТОП
КОНЕЦ_ЕСЛИ
бд.ОТКРЫТЬ (файл)
ЕСЛИ бд.ВСЕГО >0 ТО
ЦИКЛ ПОКА ( бд.СЛЕДУЮЩАЯ )
ВЫВЕСТИ ( 2, и, и-5)
ЕСЛИ бд.ТИП_ПОЛЯ ("Place") ="С" ТО
ВЫВЕСТИ ( 6,и, бд.ПОЛЕ ("Place"), 50, ДА)
КОНЕЦ_ЕСЛИ
ЕСЛИ бд.ТИП_ПОЛЯ ("Code_place") ="Ч" ТО
ВЫВЕСТИ ( 61,и, бд.ПОЛЕ ("Code_place"), 10, 0, ДА)
КОНЕЦ_ЕСЛИ
и++
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЕСЛИ
бд.ЗАКРЫТЬ
Метод УДАЛ_ПОЛЕ
Тип результата | Имя метода | Параметры |
– |
УДАЛ_ПОЛЕ |
(название поля) |
Метод УДАЛ_ПОЛЕ позволяет удалить указанное поле из базы данных.
Пример:
файл = ДИР_DBF+"\Opit_db.dbf"
бд = SQL_ОТКРЫТЬ ( файл , DBASE )
бд.УДАЛ_ПОЛЕ ( "xReserve" )
СООБЩЕНИЕ ("Поле 'xReserve' удалено из базы "+файл)
бд.ЗАКРЫТЬ
Метод УДАЛИТЬ
Тип результата | Имя метода | Параметры |
– |
УДАЛИТЬ |
– |
Метод УДАЛИТЬ удаляет текущую запись.
Пример:
бд = SQL_ОТКРЫТЬ (Book)
всего = бд.ВСЕГО
и=1
ЦИКЛ ПОКА (и <= всего)
бд.ПЕРЕЙТИ (и)
бд.СЧИТАТЬ
ЕСЛИ бд.ПОЛЕ ("Number") = НОМЕР ТО
бд.УДАЛИТЬ
всего--;и--
КОНЕЦ_ЕСЛИ
и++
КОНЕЦ_ЦИКЛА
бд.ЗАКРЫТЬ
Метод УПАКОВАТЬ
Тип результата | Имя метода | Параметры |
– |
УПАКОВАТЬ |
– |
Метод УПАКОВАТЬ производит упаковку базы данных, т.е. физически уничтожает удаленные записи и освобождает место на диске.
Пример:
бд = SQL_ОТКРЫТЬ ( "mmt.dbf", DBASE )
бд.СОРТИРОВКА ("Place")
ном_зап = БД_РЕДАКТОР ( бд, "Редактирование базы данных",
[*"Place":"Название нас.пункта",
"Code_place":"Код нас.пункта"],
ДА, ДА, ДА )
бд.УПАКОВАТЬ
бд.ЗАКРЫТЬ
Метод ФАЙЛ
Тип результата | Имя метода | Параметры |
ТИП_СТРОКА | ФАЙЛ |
– |
Метод ФАЙЛ возвращает полное имя таблицы в верхнем регистре.
Пример:
бд = SQL_ОТКРЫТЬ (файл)
всего = бд.ВСЕГО
СООБЩЕНИЕ ( "В файле "+бд.ФАЙЛ+" содержится записей:"
+СТР (всего) )
бд.ЗАКРЫТЬ
Замечания
При открытии таблицы с помощью конструкторов SQL_ОТКРЫТЬ, SQL_СОЗДАТЬ, SQL_ЗАПРОС или методов ОТКРЫТЬ, НОВАЯ, ЗАПРОС, а также после использования метода СОРТИРОВКА, текущей позицией является начало таблицы, т.е. позиция перед первой записью.
Применение в этом случае метода СЛЕДУЮЩАЯ позволяет считать первую запись.
Метод ПРЕДЫДУЩАЯ, когда текущей позицией является первая запись возвращает НЕТ и устанавливает текущую позицию в начало таблицы.
Метод В_НАЧАЛО позволяет перейти на начало таблицы из любой позиции. Аналогичная ситуация с концом таблицы – позицией после последней записи. Для перехода в эту позицию используется метод В_КОНЕЦ.
В результате применения метода УДАЛИТЬ удаляется текущая запись и текущей позицией становится позиция между предшествующей и следующей за удаленной. После удаления применение методов СЛЕДУЮЩАЯ и ПРЕДЫДУЩАЯ позволяет считать соответственно следующую или предыдущую запись по отношению к удаленной.
Если текущей позицией является начало, конец таблицы или положение между записями, то ошибочным является использование метод СЧИТАТЬ, ЗАМЕНИТЬ и ПОЛЕ.
При использовании метода ЗАП_ПОЛЕ создается новая запись, которая заносится в базу при вызове метода ДОБАВИТЬ.
Наличие установленного BDE на компьютере можно проверить с помощью встроенной функции ЕСТЬ_BDE.
В версии Инфо-Бухгалтера 8.106 добавлены два метода, расширяющие возможности объекта по индексированию таблиц и переходам по ключу.
Построение индексов осуществляется стандартными средствами языка SQL:
CREATE INDEX <имя индекса> ON <имя таблицы>
(<имя поля 1> [,<имя поля 2> [, ... ] ] )
Указание имени индекса производится либо при открытии таблицы с помощью метода ОТКРЫТЬ (или конструктора SQL_ОТКРЫТЬ), либо при переключении между индексами с помощью метода ПЕРЕКЛЮЧИТЬ_ИНДЕКС.
При использовании индексов становится возможным позиционирование по значениям полей, для которых индексы были построены. Функцию перехода на запись с заданным значением ключевого поля выполняет метод НАЙТИ.
Примеры
Создание таблицы:
// Создаем новую таблицу
Б = SQL_СОЗДАТЬ ("NEWTAB.DBF",
["ITEMNAME": ТИП_СТРОКА: 40,
"IPRICE": ТИП_ЧИСЛО: 12; 2,
"ICOUNT": ТИП_ЧИСЛО: 10; 0,
"IDATE": ТИП_ДАТА ] )
н = 20// Количество записей
ЦИКЛ ДЛЯ ( и = 1, н )
// Записываем данные
Б.ЗАП_ПОЛЕ ( "ITEMNAME", "Название" + СТР ( и ))
Б.ЗАП_ПОЛЕ ( "IPRICE", и )
Б.ЗАП_ПОЛЕ ( "ICOUNT", и )
Б.ЗАП_ПОЛЕ ( "IDATE", ДАТА_ТЕК )
Б.ДОБАВИТЬ// Добавляем запись в таблицу
КОНЕЦ_ЦИКЛА
Б.ЗАКРЫТЬ// Закрываем таблицу
Открытие таблицы:
-
С помощью конструктора SQL_ОТКРЫТЬ
// Открываем таблицу Paradox
Б1 = SQL_ОТКРЫТЬ ( "TEST.DB" )
// Выводим количество записей
СООБЩЕНИЕ ( СТР ( Б1.ВСЕГО ) )
Б1.ЗАКРЫТЬ// Закрываем таблицу
-
С помощью конструктора СОЗДАТЬ или метода ОТКРЫТЬ
СОЗДАТЬ ( Б1, ТИП_SQL )// Создаем объект БД-SQL
// Открываем таблицу Test1.dbf
Б2.ОТКРЫТЬ ( "Test1", DBASE )
// Сортировка по полю ITEMNAME
Б2.СОРТИРОВКА ( "ITEMNAME" )
Б2.ЗАКРЫТЬ// Закрываем таблицу
-
С помощью конструктора SQL_ЗАПРОС
// Выбираем все записи из БД Test1.dbf
Б3 = SQL_ЗАПРОС ( "SELECT * FROM TEST1.DBF" )
// Выводим количество записей
СООБЩЕНИЕ ( "Всего записей: " + СТР ( Б3.ВСЕГО ) )
Б3.ЗАКРЫТЬ// Закрываем таблицу
Объект «Операция»
Описание
Объект Операция предназначен для доступа к хозяйственным операциям в ЖХО.
Поля
Имя | Тип |
дата |
ТИП_ДАТА |
документ |
ТИП_СТРОКА |
место |
ТИП_ЧИСЛО |
название |
ТИП_СТРОКА |
Конструкторы
СОЗДАТЬ (<имя>, ТИП_ОПЕРАЦИЯ )
<имя> = ОПЕР_СЧИТАТЬ (<номер>)
где
<имя> |
– имя создаваемого объекта. |
<номер> |
– номер операции в журнале. |
Встроенные методы
Метод ДОБАВИТЬ
Тип результата | Имя метода | Параметры |
– |
ДОБАВИТЬ |
– |
Метод ДОБАВИТЬ делает то же самое, что и ЗАПИСАТЬ, только даже если операция была считана из журнала, то все равно в журнал добавляется новая операция.
Пример:
// Создаем объект Операция
СОЗДАТЬ (оп, ТИП_ОПЕРАЦИЯ )
оп.дата = дата
оп.документ = "пп "+НОМЕР
оп.название = назнач_пл
СОЗДАТЬ (пр1, ТИП_ПРОВОДКА)
пр1.выкл = НЕТ
пр1.дебет = корр
пр1.кредит = "51"
пр1.сумма = Сумма
оп.ЗАП_ПРОВ (пр1)
оп.ДОБАВИТЬ
Метод ЗАП_ПРОВ
Тип результата | Имя метода | Параметры |
– |
ЗАП_ПРОВ |
(проводка [, номер] ) |
Метод ЗАП_ПРОВ позволяет Вам поместить измененную проводку назад в операцию. При указании номера проводка заменяет проводку с этим номером. Если номер опущен, то проводка добавляется в операцию последней по счету.
Пример:
// Создаем объект Операция
СОЗДАТЬ (оп, ТИП_ОПЕРАЦИЯ )
оп.дата = дата
оп.документ = "пп "+НОМЕР
оп.название = назнач_пл
СОЗДАТЬ (пр1, ТИП_ПРОВОДКА )
пр1.выкл = НЕТ
пр1.дебет = корр
пр1.кредит = "51"
пр1.сумма = Сумма
оп.ЗАП_ПРОВ (пр1)
оп.ЗАПИСАТЬ
Метод ЗАПИСАТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАПИСАТЬ |
– |
Метод ЗАПИСАТЬ позволяет записать операцию в журнал.
Если перед этим операция была считана конструктором ОПЕР_СЧИТАТЬ или методом СЧИТАТЬ, то она записывается вместо старой.
Если же Вы создали объект Операция с помощью конструктора СОЗДАТЬ, заполнили его данными и применили метод ЗАПИСАТЬ, то в журнал добавится новая операция с номером, соответствующим ее дате (последней среди операций с этой датой).
Пример:
// Создаем объект Операция
СОЗДАТЬ (оп, ТИП_ОПЕРАЦИЯ )
// цикл по всем операциям
ЦИКЛ ДЛЯ ( опер=1, ОПЕР_ВСЕГО )
док = ОПЕР_ДОК (опер)
ЕСЛИ ПОДСТР (док,1,2) = "пп" ТО
оп.СЧИТАТЬ (опер)
// Редактируем операцию
ЕСЛИ оп.РЕДАКТИРОВАТЬ ТО// Если операция
оп.ЗАПИСАТЬ// была изменена,
КОНЕЦ_ЕСЛИ// то записываем ее
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
Метод КОЛ_ПРОВ
Тип результата | Имя метода | Параметры |
ТИП_ЧИСЛО | КОЛ_ПРОВ |
– |
Метод КОЛ_ПРОВ возвращает количество проводок в операции.
Пример:
// Создаем объект Операция
СОЗДАТЬ (оп, ТИП_ОПЕРАЦИЯ )
// цикл по всем операциям за день
ЦИКЛ ДЛЯ ( и = ОПЕР_ОТ (дата), ОПЕР_ОТ (дата+1) – 1)
оп.СЧИТАТЬ (и)// Считываем операцию из ЖХО
кол_пров = оп.КОЛ_ПРОВ
ЦИКЛ ПОКА (кол_пров > 0)
пр = оп.ПРОВ (кол_пров)
пр.выкл = ДА
оп.ЗАП_ПРОВ (пр, кол_пров)
оп.ЗАПИСАТЬ
кол_пров--
КОНЕЦ_ЦИКЛА
КОНЕЦ_ЦИКЛА
Методы НАЗВ1, НАЗВ2 и НАЗВ3
Тип результата | Имя метода | Параметры |
ТИП_СТРОКА |
НАЗВ1, НАЗВ2, НАЗВ3 |
– |
В поле название хранится полное название хозяйственной операции, где первая, вторая и третья строки разделяются символом ASCII 13. Чтобы получить по отдельности эти строки используются методы НАЗВ1, НАЗВ2 и НАЗВ3.
Пример:
// Создаем объект Операция
СОЗДАТЬ (оп, ТИП_ОПЕРАЦИЯ )
оп.СЧИТАТЬ (1)// Считываем из ЖХО первую операцию
СООБЩЕНИЕ ("Первая строка содержания операции: "+
оп.НАЗВ1)
СООБЩЕНИЕ ("Вторая строка содержания операции: "+
оп.НАЗВ2)
СООБЩЕНИЕ ("Третья строка содержания операции: "+
оп.НАЗВ3)
Метод ОПЕР_ВЫКЛ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | ОПЕР_ВЫКЛ |
– |
Метод ОПЕР_ВЫКЛ позволяет узнать, есть ли в операции выключенные проводки. Данный метод возвращает ДА, если все проводки выключены, и НЕТ – если хотя бы одна проводка включена.
Для выключения проводки надо присвоить полю выкл объекта Проводка значение ДА. Можно также написать библиотечный метод для объекта Операция, выключающий все ее проводки.
Пример:
// Создаем объект Операция
СОЗДАТЬ (оп, ТИП_ОПЕРАЦИЯ )
ЦИКЛ ДЛЯ ( и=1, ОПЕР_ВСЕГО )
оп.СЧИТАТЬ (и)// Считываем из ЖХО операцию
ЕСЛИ оп.ОПЕР_ВЫКЛ ТО
СООБЩЕНИЕ("В ЖХО имеются выключенные операции!"
+СИМВ (13)+"Расчет остановлен!")
СТОП
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
Метод ПРОВ
Тип результата | Имя метода | Параметры |
ТИП_ПРОВОДКА | ПРОВ |
(номер проводки) |
Метод ПРОВ является конструктором объекта Проводка.
При его использовании создается новый объект типа ТИП_ПРОВОДКА, поля которого заполняются информацией из проводки <номер проводки> объекта Операция.
Изменяя полученную проводку, Вы не меняете данных операции!
Пример:
ФУНКЦИЯ ТИП_ЛОГИКА: ВЫКЛ_ОПЕРАЦИЮ
( ТИП_ЧИСЛО: номер_оп )
ВЫКЛ_ОПЕРАЦИЮ = НЕТ
// Создаем объект Операция
СОЗДАТЬ (оп, ТИП_ОПЕРАЦИЯ )
// Считываем операцию из ЖХО
оп.СЧИТАТЬ (номер_оп)
// Количество проводок в операции
кол_пров = оп.КОЛ_ПРОВ
// Если в операции имеются проводки, то
ЕСЛИ кол_пров > 0 ТО
// функция выполнена успешно
ВЫКЛ_ОПЕРАЦИЮ = ДА
КОНЕЦ_ЕСЛИ
// Цикл по всем проводкам в операции
ЦИКЛ ПОКА (кол_пров > 0)
пр = оп.ПРОВ (кол_пров)// Считываем проводку
пр.выкл = ДА// Выключаем проводку
оп.ЗАП_ПРОВ (пр, кол_пров)
оп.ЗАПИСАТЬ
кол_пров--// Переходим на предыдущую проводку
КОНЕЦ_ЦИКЛА
КОНЕЦ_ФУНКЦИИ
Метод РЕДАКТИРОВАТЬ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | РЕДАКТИРОВАТЬ |
– |
Метод РЕДАКТИРОВАТЬ позволяет изменить поля операции с помощью диалогового окна.
Этот метод возвращает ДА, если была нажата кнопка «OK», и НЕТ, если была нажата кнопка «Отмена».
Смотрите также одноименный метод объекта Проводка.
Пример:
// цикл по всем операциям за день
ЦИКЛ ДЛЯ ( и = ОПЕР_ОТ (дата), ОПЕР_ОТ (дата+1) – 1)
// Считываем указанную операцию
оп = ОПЕР_СЧИТАТЬ (и)
// Редактируем операцию
ЕСЛИ оп.РЕДАКТИРОВАТЬ ТО
// Если операция была изменена, то записываем ее
оп.ЗАПИСАТЬ
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
Метод СЧИТАТЬ
Тип результата | Имя метода | Параметры |
– |
СЧИТАТЬ |
(номер операции) |
Метод СЧИТАТЬ позволяет считать операцию из журнала.
Для доступа к проводкам имеются методы ПРОВ, ЗАП_ПРОВ и КОЛ_ПРОВ.
Пример:
// Создаем объект Операция
СОЗДАТЬ (оп, ТИП_ОПЕРАЦИЯ )
оп.СЧИТАТЬ (1)// Считываем из ЖХО операцию
ЕСЛИ оп.ОПЕР_ВЫКЛ ТО// если все проводки выключены
СООБЩЕНИЕ ("В первой операции ВСЕ проводки выключены!")
КОНЕЦ_ЕСЛИ
Метод УДАЛИТЬ
Тип результата | Имя метода | Параметры |
– |
УДАЛИТЬ |
(номер проводки) |
Метод УДАЛИТЬ осуществляет удаление проводки по ее номеру в операции.
Пример:
оп = ОПЕР_СЧИТАТЬ ( 5 )
// удаляем первую проводку в пятой операции
оп.УДАЛИТЬ ( 1 )
// записываем измененную операцию в журнал
оп.ЗАПИСАТЬ
Объект «Проводка»
Описание
Объект Проводка предназначен для доступа отдельным проводкам в хозяйственных операциях.
Поля
Имя | Тип |
выкл |
ТИП_ЛОГИКА |
дебет |
ТИП_СТРОКА |
кредит |
ТИП_СТРОКА |
количество |
ТИП_ЧИСЛО |
сумма |
ТИП_ЧИСЛО |
Конструкторы
СОЗДАТЬ (<имя>, ТИП_ПРОВОДКА)
<имя> = <имя операции>.ПРОВ (<номер>)
где
<имя> |
– |
имя создаваемого объекта. |
<имя операции> |
– |
имя объекта типа Операция, из которого берется проводка. Фактически конструктор ПРОВ является методом объекта Операция, с типом возвращаемого результата ТИП_ПРОВОДКА. |
<номер> |
– |
номер проводки в операции. |
Встроенные методы
Метод СЧИТАТЬ
Тип результата | Имя метода | Параметры |
– |
СЧИТАТЬ |
(объект Операция, номер) |
Метод СЧИТАТЬ позволяет заполнить поля информацией проводки с указанным номером в объекте Операция. В отличии от конструктора ПРОВ, метод СЧИТАТЬ не создает нового объекта Проводка, а лишь изменяет значения полей уже существующего.
Пример:
// Создаем объект Операция
СОЗДАТЬ ( оп, ТИП_ОПЕРАЦИЯ )
оп.СЧИТАТЬ ( 1 )// Считываем первую операцию
ЦИКЛ ДЛЯ ( и=1, оп.КОЛ_ПРОВ )
// Создаем объект Проводка
СОЗДАТЬ ( пр, ТИП_ПРОВОДКА )
пр.СЧИТАТЬ (оп, и)
// . . .
КОНЕЦ_ЦИКЛА
Метод РЕДАКТИРОВАТЬ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | РЕДАКТИРОВАТЬ |
– |
Метод РЕДАКТИРОВАТЬ позволяет изменить поля проводки с помощью диалогового окна.
Этот метод возвращает ДА, если была нажата кнопка «OK», и НЕТ, если была нажата кнопка «Отмена».
Пример:
// Создаем объект Операция
СОЗДАТЬ ( оп, ТИП_ОПЕРАЦИЯ )
оп.СЧИТАТЬ ( к )// Считываем к-ую операцию
ЦИКЛ ДЛЯ ( и=1, оп.КОЛ_ПРОВ )
// Считываем указанную проводку операции
пр = оп.ПРОВ (и)
// Редактируем проводку
ЕСЛИ пр.РЕДАКТИРОВАТЬ ТО
// Если проводка была изменена, записываем операцию
оп.ЗАПИСАТЬ
СООБЩЕНИЕ ( СТР(и)+" проводка изменена" )
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
Объект «Список»
Описание
Объект Список позволяет добавлять, удалять и заменять строки в списке. Его использование может сделать более удобной работу с небольшими последовательностями данных (например, названиями месяцев), чем при работе с DBF-файлами.
Объект доступен, начиная с версии 8.0.
В базовой и минимальной версиях данный объект отсутствует.
Поля
Данный объект не имеет полей.
Конструктор
СОЗДАТЬ (<имя >, ТИП_СПИСОК )
где <имя > – имя создаваемого объекта.
Встроенные методы
Метод ВСЕГО
Тип результата | Имя метода | Параметры |
ТИП_ЧИСЛО | ВСЕГО |
– |
Метод ВСЕГО возвращает количество строк в списке.
Пример:
СОЗДАТЬ ( С, ТИП_СПИСОК )// Создать объект Список
ЦИКЛ ДЛЯ ( и=1, 100 )
// Добавить в список строки
С.ДОБАВИТЬ ( "Строка № " + СТР(и) )
КОНЕЦ_ЦИКЛА
//
// => Работа со списком
ЕСЛИ С.ВСЕГО=0 ТО
СООБЩЕНИЕ ("Список пуст!")
КОНЕЦ_ЕСЛИ
Метод ВЫБОР
Тип результата | Имя метода | Параметры |
ТИП_ЧИСЛО | ВЫБОР |
( объект Список [, заголовок окна [, заголовок колонки [, ширина [, номер [, редактирование [, добавление [, удаление [, выбор записи ] ] ] ] ] ] ] ] ) |
Метод ВЫБОР позволяет выбрать строку из указанного списка и возвращает номер выбранной строки.
Если заголовок окна не указан, то отображается заголовок по умолчанию – «Выбор из списка».
Если заголовок колонки не указан, то отображается пустой заголовок.
<ширина> |
– |
ширина строки списка в символах (не менее 30; при указании меньшего значения = 30) |
<номер> |
– |
номер записи, на которую устанавливается курсор таблицы при вызове метода (по умолчанию 1); |
<редактирование> |
– |
параметр логического типа, разрешающий редактировать значения записей списка по клавише ( по умолчанию НЕТ ); |
<добавление> |
– |
параметр логического типа, разрешающий добавлять новые записи в список по клавише ( по умолчанию НЕТ ); |
<удаление> |
– |
параметр логического типа, разрешающий удалять записи из списка по клавише ( по умолчанию НЕТ ). |
<выбор записи> |
– |
параметр логического типа, указывающий на необходимость открытия окна редактирования при выборе записи по клавише ( по умолчанию НЕТ ). |
Пример:
// Создать объект Список
СОЗДАТЬ ( с , ТИП_СПИСОК )
ЦИКЛ ДЛЯ ( и=1, 100 )
// Добавить в список строки
с.ДОБАВИТЬ ("Строка № " + СТР (и) )
КОНЕЦ_ЦИКЛА
номер = ВЫБОР ( с , "Выберите значение", "Список строк" ,
50, 100, ДА, ДА, ДА, НЕТ )
Метод ДОБАВИТЬ
Тип результата | Имя метода | Параметры |
– |
ДОБАВИТЬ |
(строка) |
Метод ДОБАВИТЬ добавляет строку в конец списка.
Пример:
П1=""; П2=""; П3=""
ЦИКЛ ДЛЯ (и=1,255)// заполнить строки значениями
П1 = П1+СТР (1)
П2 = П2+СТР (2)
П3 = П3+СТР (3)
КОНЕЦ_ЦИКЛА
СОЗДАТЬ (С, ТИП_СПИСОК)// Создать объект Список
С.ДОБАВИТЬ (П1)// Добавить в список строки
С.ДОБАВИТЬ (П2)
С.ДОБАВИТЬ (П3)
ф=ФАЙЛ_СОЗДАТЬ("AAA.TXT")// Создать объект Файл
С.ЗАПИСАТЬ (ф, ДА)// Записать список в файл
ф.ЗАКРЫТЬ// (длина строк более 255 символов)
// Просмотреть полученный файл
ВЫПОЛНИТЬ ("Notepad.exe aaa.txt")
Метод ЗАМЕНИТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАМЕНИТЬ |
(номер строки, новое значение) |
Метод ЗАМЕНИТЬ заменяет в списке строку с указанным номером.
Пример:
СОЗДАТЬ ( с, ТИП_СПИСОК )// Создать объект Список
строк = 16
ЦИКЛ ДЛЯ (и=1, строк)
наим!и = НАЗВ (сч!и)
ЕСЛИ замена = ДА ТО
с.ЗАМЕНИТЬ (и, наим!и)
ИНАЧЕ
с.ДОБАВИТЬ (наим!и)
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
Метод ЗАПИСАТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАПИСАТЬ |
( объект Файл, [длинная строка] ) |
Метод ЗАПИСАТЬ записывает список в текстовый файл.
Необязательный параметр логического типа, указывает на необходимость использовать строки списка длиной более 255 символов ( по умолчанию – НЕТ ).
Пример:
СОЗДАТЬ ( С, ТИП_СПИСОК )// Создать объект Список
ЦИКЛ ДЛЯ ( и=1, 100 )
// Добавить в список строки
С.ДОБАВИТЬ ("Строка № " + СТР(и) )
КОНЕЦ_ЦИКЛА
ф = ФАЙЛ_СОЗДАТЬ ("short.txt")// Создать объект Файл
С.ЗАПИСАТЬ (ф)// Записать список в файл
ф.ЗАКРЫТЬ// (длина строк до 255 символов)
ф = ФАЙЛ_СОЗДАТЬ ("long.txt")// Создать объект Файл
С.ЗАПИСАТЬ ( ф, ДА ) // Записать список в файл
ф.ЗАКРЫТЬ// (длина строк более 255 символов)
Метод ОЧИСТИТЬ
Тип результата | Имя метода | Параметры |
– |
ОЧИСТИТЬ |
– |
Метод ОЧИСТИТЬ удаляет все строки из списка.
Пример:
СОЗДАТЬ ( сп, ТИП_СПИСОК )
сп.ДОБАВИТЬ ("CREATE TABLE ' "+файл+
" '(Code CHAR(7), Name CHAR(50), ")
сп.ДОБАВИТЬ ("PRIMARY KEY(Code))")
зап = SQL_ЗАПРОС (сп)
сп.ОЧИСТИТЬ
сп.ДОБАВИТЬ ("CREATE INDEX Code ON '"+файл+"' (Code)")
зап = SQL_ЗАПРОС (сп)
сп.ОЧИСТИТЬ
Метод СТРОКА
Тип результата | Имя метода | Параметры |
ТИП_СТРОКА | СТРОКА |
(номер строки) |
Метод СТРОКА возвращает строку списка с указанным номером.
Пример:
СОЗДАТЬ ( С, ТИП_СПИСОК )// Создать объект Список
// => Заполнение строк списка
номер = ВЫБОР (С)
СООБЩЕНИЕ ("Выбрана строка №"+СТР (номер)+": "
+С.СТРОКА (номер)+СИМВ(13)+
"Всего строк в списке: " + СТР (С.ВСЕГО))
Метод СЧИТАТЬ
Тип результата | Имя метода | Параметры |
– |
СЧИТАТЬ |
( объект Файл, [длинная строка] ) |
Метод СЧИТАТЬ считывает список из текстового файла.
Необязательный параметр логического типа, указывает на необходимость использовать строки списка длиной более 255 символов (по умолчанию – НЕТ).
Пример:
// Создать два объекта Список
СОЗДАТЬ ( С1, ТИП_СПИСОК )
СОЗДАТЬ ( С2, ТИП_СПИСОК )
СООБЩЕНИЕ ("Файл 'short.txt'")
// Открыть файл short.txt и заполнить его содержимым список С1
ф = ФАЙЛ_ОТКРЫТЬ ("short.txt")
С1.СЧИТАТЬ (ф)
ф.ЗАКРЫТЬ
н = ВЫБОР (С1)// Просмотреть полученный список
СООБЩЕНИЕ ("Файл 'long.txt'")
// Открыть файл long.txt и заполнить его содержимым список С2
ф = ФАЙЛ_ОТКРЫТЬ ("long.txt")
С2.СЧИТАТЬ ( ф, ДА )
ф.ЗАКРЫТЬ
н = ВЫБОР (С2)// Просмотреть полученный список
Метод УДАЛИТЬ
Тип результата | Имя метода | Параметры |
– |
УДАЛИТЬ |
(номер строки) |
Метод УДАЛИТЬ удаляет из списка строку с указанным номером.
Пример:
СОЗДАТЬ ( С, ТИП_СПИСОК )// Создать объект Список
ЦИКЛ ДЛЯ ( и=1, 100 )
// Добавить в список строки
С.ДОБАВИТЬ ("Строка № " + СТР(и) )
КОНЕЦ_ЦИКЛА
номер = ВЫБОР (С)
С.УДАЛИТЬ (номер)
СООБЩЕНИЕ ("Выбранная запись удалена из списка!")
Примечание:
Методы ВЫБОР, ЗАПИСАТЬ и СЧИТАТЬ были добавлены, начиная с версии Инфо-Бухгалтера 8.1.
Объект «Счет»
Общие сведения
Объект Счет предназначен для доступа к плану счетов.
Конструкторы
СОЗДАТЬ (<имя>, ТИП_СЧЕТ)
<имя> = СЧЕТ_СЧИТАТЬ (<код счета>)
где
<имя> |
– |
имя создаваемого объекта. |
<код счета> |
– |
код существующего счета в плане счетов. |
Поля
Имя | Тип |
акт |
ТИП_ЛОГИКА |
аналит |
ТИП_ЛОГИКА |
единицы |
ТИП_СТРОКА |
исп_фц |
ТИП_ЛОГИКА |
код |
ТИП_СТРОКА |
кол |
ТИП_ЛОГИКА |
название |
ТИП_СТРОКА |
ост_кол |
ТИП_ЧИСЛО |
ост_сум |
ТИП_ЧИСЛО |
пас |
ТИП_ЛОГИКА |
св_сальдо |
ТИП_ЛОГИКА |
фикс_цена |
ТИП_ЧИСЛО |
Встроенные методы
Метод ЗАПИСАТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАПИСАТЬ |
[вопрос] |
Метод ЗАПИСАТЬ помещает счет в план счетов по значению поля код.
Если указан необязательный параметр ДА и счет с таким кодом уже существует, то будет выдан запрос на замену. При обращении к этому методу без параметров или с параметром НЕТ, то замена счета производится без вопроса.
Пример:
СОЗДАТЬ (счет, ТИП_СЧЕТ)// Создаем объект Счет
счет.код = "68/НПР/ОБЛ"
// Если счет с указанным кодом не существует, то
ЕСЛИ НЕ счет.СУЩ ТО
счет.акт = ДА
счет.пас = ДА
счет.название = "С областным бюджетом"
счет.ЗАПИСАТЬ// записываем счет в план счетов
КОНЕЦ_ЕСЛИ
счет.код = "68/НПР/РАЙ"
// Если счет с указанным кодом не существует, то
ЕСЛИ НЕ счет.СУЩ ТО
счет.акт = ДА
счет.пас = ДА
счет.название = "С районным бюджетом"
счет.ЗАПИСАТЬ// записываем счет в план счетов
КОНЕЦ_ЕСЛИ
Метод РЕДАКТИРОВАТЬ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | РЕДАКТИРОВАТЬ |
– |
Метод РЕДАКТИРОВАТЬ позволяет изменить поля счета с помощью диалогового окна.
Этот метод возвращает ДА, если была нажата кнопка «OK», и НЕТ, если была нажата кнопка «Отмена».
Начиная с версии ИБ 8.3, в диалоге редактирования счета, вызываемом данным методом, запрещен ввод разделителей ("/") и сделана возможность изменять код только данного счета.
Пример:
СОЗДАТЬ (счет, ТИП_СЧЕТ)// Создаем объект Счет
// Цикл по всем счетам, кроме забалансовых
ЦИКЛ ДЛЯ (и=1, 96)
счет.код = СТР0 (и, 2)// Указываем код счета
// Если счет с указанным кодом существует, то
ЕСЛИ счет.СУЩ ТО
// считываем его и определяем, есть ли субсчета
счет.СЧИТАТЬ
СООБЩЕНИЕ ( "Субсчета: " + СТР(счет.СУБСЧ))
// Редактируем счет с указанным кодом
ЕСЛИ счет.РЕДАКТИРОВАТЬ ТО
// Если параметры счета изменены,
счет.ЗАПИСАТЬ// то записать изменения
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
Метод СУБСЧ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | СУБСЧ |
– |
Метод СУБСЧ проверяет наличие субсчетов по полю код.
Если у счета с таким кодом существуют субсчета, то метод возвращает значение ДА, в противном случае – НЕТ.
Пример:
СОЗДАТЬ (счет, ТИП_СЧЕТ)// Создаем объект Счет
// счет 69 "Расчеты по медицинскому страхованию"
счет.код = "69/МЕД"
// Если у указанного счета не существует субсчетов, то
ЕСЛИ НЕ счет.СУБСЧ ТО
счет.код = "69/МЕД/ТЕР"
счет.акт = ДА
счет.пас = ДА
счет.название = "С территориальным фондом"
счет.ЗАПИСАТЬ// записываем счет в план счетов
счет.код = "69/МЕД/ФЕД"
счет.название = "С федеральным фондом"
счет.ЗАПИСАТЬ// записываем счет в план счетов
КОНЕЦ_ЕСЛИ
Метод СУЩ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | СУЩ |
– |
Метод СУЩ позволяет проверить наличие в плане счетов счета с кодом равным полю код.
Если счет с таким кодом существует, то метод возвращает значение ДА, в противном случае – НЕТ.
Пример:
СОЗДАТЬ (счет, ТИП_СЧЕТ)// Создаем объект Счет
// счет 68 "Налог на прибыль (областной бюджет)"
счет.код = "68/НПР/ОБЛ"
// Если счет с указанным кодом не существует, то
ЕСЛИ НЕ счет.СУЩ ТО
счет.ЗАПИСАТЬ// записываем счет в план счетов
КОНЕЦ_ЕСЛИ
Метод СЧИТАТЬ
Тип результата | Имя метода | Параметры |
– |
СЧИТАТЬ |
(код счета) |
Метод СЧИТАТЬ и конструктор СЧЕТ_СЧИТАТЬ заполняют поля объекта в соответствии с информацией из плана счетов по указанному коду счета.
Пример:
// Если счет с указанным кодом существует, то
ЕСЛИ СЧЕТ_СУЩ (код_счета) ТО
СОЗДАТЬ (счет, ТИП_СЧЕТ)// Создаем объект Счет
счет.СЧИТАТЬ (код_счета)// считываем его
счет.акт = НЕТ// Изменяем нужные поля
счет.пас = НЕТ
счет.кол = НЕТ
счет.ЗАПИСАТЬ// Записываем изменения в план счетов
КОНЕЦ_ЕСЛИ
Метод УРОВ
Тип результата | Имя метода | Параметры |
ТИП_ЧИСЛО | УРОВ |
– |
Метод УРОВ возвращает уровень счета по полю код.
Пример:
СОЗДАТЬ (счет, ТИП_СЧЕТ)// Создаем объект Счет
счет.код = код_счета
// Если уровень счета не равен 3, то ошибка
ЕСЛИ счет.УРОВ <> 3 ТО
СООБЩЕНИЕ ("Неправильно указан счет!")
СТОП
КОНЕЦ_ЕСЛИ
Объект «Файл»
Описание
Объект Файл позволяет считывать (записывать) строки из текстового файла.
Поля
Данный объект не имеет полей.
Конструкторы
СОЗДАТЬ ( <имя>, ТИП_ФАЙЛ )
<имя> = ФАЙЛ_ОТКРЫТЬ (<файл> [, <кодировка>] )
<имя> = ФАЙЛ_СОЗДАТЬ (<файл>)
где
<имя> |
– |
имя создаваемого объекта; |
<файл> |
– |
имя текстового файла; |
<кодировка> |
– |
параметр логического типа, определяющий необходимость перекодировки символов ( по умолчанию ДА – СР 866 ). |
Встроенные методы
Метод ЗАКРЫТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАКРЫТЬ |
– |
Метод ЗАКРЫТЬ закрывает текстовый файл.
Пример:
// Создать текстовый файл TestRW.txt для записи
файлRW = ФАЙЛ_СОЗДАТЬ ( "TestRW.txt" )
ЦИКЛ ДЛЯ (и=1, 10)
// Записать указанную строку
файлRW.ЗАПИСАТЬ ("Это строка №" + СТР (и) )
КОНЕЦ_ЦИКЛА
файлRW.ЗАКРЫТЬ
Метод ЗАПИСАТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАПИСАТЬ |
[ (строка) ] |
Метод ЗАПИСАТЬ записывает в файл строку в кодировке DOS (CP 866).
Если параметр опущен, то функция возвращает пустую строку.
Пример:
тек_дата = ДАТА_ТЕК
тек_дата_стр = СТР (ГОД(тек_дата))+СТР0 (МЕС(тек_дата), 2)+
СТР0 ( ЧИСЛО (тек_дата), 2)
бдГНИ = ФАЙЛ_СОЗДАТЬ (путь+имя_файла)
бдГНИ.ЗАПИСАТЬ ("ИдФайл:"+
ПОДСТР ( ГосНом, 1, 10 )+"**"+
ПричинаУплатыНалогов+
тек_дата_стр+час_тек+мин_тек+сек_тек)
бдГНИ.ЗАПИСАТЬ ("ТипИнф:ДОХОД99")
бдГНИ.ЗАПИСАТЬ ("НаимОтпр:"+перем_1)
бдГНИ.ЗАПИСАТЬ ("ТелОтпр:"+перем_2)
бдГНИ.ЗАПИСАТЬ ("ДолжнОтпр:"+перем_3)
бдГНИ.ЗАПИСАТЬ ("ФИООтпр:"+перем_4)
бдГНИ.ЗАПИСАТЬ ("КолДок:"+СТР (сотрВС))
// данные по сотрудникам
ЦИКЛ ДЛЯ (и=1, сотрВС)
// . . .
КОНЕЦ_ЦИКЛА
бдГНИ.ЗАПИСАТЬ ("===")
бдГНИ.ЗАКРЫТЬ
Метод КОНЕЦ_ФАЙЛА
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | КОНЕЦ_ФАЙЛА |
– |
Метод КОНЕЦ_ФАЙЛА возвращает значение ДА, если обнаружен конец файла или файл не открыт, и значение НЕТ в других случаях.
Пример:
// Открыть файл TestRW.txt для чтения в кодировке DOS (CP 866)
файлR = ФАЙЛ_ОТКРЫТЬ ("TestRW.txt" , ДА )
и=0
ЦИКЛ ПОКА ( НЕ файлR.КОНЕЦ_ФАЙЛА )
// считать и вывести очередную строку
ВЫВЕСТИ (3, и, файлR.СЧИТАТЬ)
и++
КОНЕЦ_ЦИКЛА
файлR.ЗАКРЫТЬ
Метод НОВАЯ
Тип результата | Имя метода | Параметры |
– |
НОВАЯ |
[ (имя файла) ] |
Конструктор ФАЙЛ_СОЗДАТЬ и метод НОВАЯ создают новый текстовый файл. Если имя файла опущено, то создается файл с именем бланка (или библиотеки) и расширением .txt.
Конструктор ФАЙЛ_ОТКРЫТЬ и метод ОТКРЫТЬ открывают файл только на чтение и применить метод ЗАПИСАТЬ в этом случае нельзя. Чтобы открыть файл на запись, используйте либо конструктор ФАЙЛ_СОЗДАТЬ, либо метод НОВАЯ.
Пример:
имя_файла = "Test.txt"
СОЗДАТЬ ( файл, ТИП_ФАЙЛ )// Создать объект Файл
файл.НОВАЯ (имя_файла)
файл.ЗАПИСАТЬ ("Тест метода 'НОВАЯ' объекта 'Файл'")
файл.ЗАПИСАТЬ ("Текущая дата: "+ДАТАП ( ДАТА_ТЕК ))
файл.ЗАПИСАТЬ ("Текущее время: "+СТР (ВРЕМЯ_ТЕК))
файл.ЗАКРЫТЬ
Метод ОТКРЫТЬ
Тип результата | Имя метода | Параметры |
– |
ОТКРЫТЬ |
( имя файла [,кодировка] ) |
Метод ОТКРЫТЬ и конструктор ФАЙЛ_ОТКРЫТЬ открывают файл на чтение. Если указанный файл не найден, то расчет останавливается по ошибке.
Необязательный параметр <кодировка> логического типа, определяет необходимость перекодировки символов. Если он имеет значение ДА или опущен, то перекодировка в кодовую таблицу DOS 866 включена. Если же этот параметр имеет значение НЕТ, то перекодировка не производится.
Так как конструктор ФАЙЛ_ОТКРЫТЬ и метод ОТКРЫТЬ открывают файл только на чтение, то применить метод ЗАПИСАТЬ в этом случае нельзя. Чтобы открыть файл на запись, используйте либо конструктор ФАЙЛ_СОЗДАТЬ, либо метод НОВАЯ.
Пример:
имя_файла = "Test.txt"
// Если файл не существует, то остановить расчет
ЕСЛИ НЕ СУЩ_ФАЙЛ (имя_файла) ТО
СТОП
КОНЕЦ_ЕСЛИ
СОЗДАТЬ ( файл, ТИП_ФАЙЛ )// Создать объект Файл
// Открыть файл Test.txt для чтения
файл.ОТКРЫТЬ (имя_файла)
и=0
ЦИКЛ ПОКА ( НЕ файлR.КОНЕЦ_ФАЙЛА )
// считать и вывести очередную строку
ВЫВЕСТИ (3, и, файлR.СЧИТАТЬ)
и++
КОНЕЦ_ЦИКЛА
файл.ЗАКРЫТЬ
Метод СЧИТАТЬ
Тип результата | Имя метода | Параметры |
ТИП_СТРОКА | СЧИТАТЬ |
– |
Метод СЧИТАТЬ возвращает очередную строку из текстового файла.
Пример:
// Открыть файл TestRW.txt для чтения в кодировке DOS (CP 866)
файлR = ФАЙЛ_ОТКРЫТЬ ("TestRW.txt" , ДА )
СООБЩЕНИЕ ( "Открыт файл "+файлR.ФАЙЛ+" для чтения" )
ЦИКЛ ДЛЯ (и=1, 10)
// считать и вывести очередную строку
СООБЩЕНИЕ (файлR.СЧИТАТЬ)
КОНЕЦ_ЦИКЛА
файлR.ЗАКРЫТЬ
Метод ФАЙЛ
Тип результата | Имя метода | Параметры |
ТИП_СТРОКА | ФАЙЛ |
– |
Метод ФАЙЛ возвращает имя открытого файла.
Пример:
// Открыть файл TestRW.txt для чтения в кодировке DOS (CP 866)
файлR = ФАЙЛ_ОТКРЫТЬ ("TestRW.txt" , ДА )
СООБЩЕНИЕ ( "Открыт файл "+файлR.ФАЙЛ+" для чтения" )
ЦИКЛ ДЛЯ (и=1, 10)
// считать очередную строку и вывести ее на экран
СООБЩЕНИЕ (файлR.СЧИТАТЬ)
КОНЕЦ_ЦИКЛА
файлR.ЗАКРЫТЬ
Объект «Фильтр»
Общие сведения
Объект Фильтр позволяет устанавливать параметры фильтрации в ЖХО при обработке документов.
Конструкторы
СОЗДАТЬ ( <имя>, ТИП_ФИЛЬТР)
<имя> = ФИЛЬТР [ (<файл>) ]
где
<имя> |
– имя создаваемого объекта. |
<файл> |
– имя FLT-файла. |
Поля
Имя | Тип |
дата |
ТИП_СТРОКА |
дата1 |
ТИП_ДАТА |
дата2 |
ТИП_ДАТА |
дебет |
ТИП_СТРОКА |
действ_отч |
ТИП_ЛОГИКА |
документ |
ТИП_СТРОКА |
исключать |
ТИП_ЛОГИКА |
исп_период |
ТИП_ЛОГИКА |
корр |
ТИП_СТРОКА |
кредит |
ТИП_СТРОКА |
место |
ТИП_СТРОКА |
номер1 |
ТИП_ЧИСЛО |
номер2 |
ТИП_ЧИСЛО |
разл_регистр |
ТИП_ЛОГИКА |
реж_выкл |
ТИП_ЧИСЛО |
содержание |
ТИП_СТРОКА |
сумма1 |
ТИП_ЧИСЛО |
сумма2 |
ТИП_ЧИСЛО |
Встроенные методы
Метод ЗАПИСАТЬ
Тип результата | Имя метода | Параметры |
– |
ЗАПИСАТЬ |
(имя FLT-файла) |
Метод ЗАПИСАТЬ сохраняет текущие значения объекта в указанном файле.
Пример:
СОЗДАТЬ ( ф, ТИП_ФИЛЬТР )
// сохраняем предыдущие параметры фильтра в файле old_flt.flt
ф.ЗАПИСАТЬ ( "old_flt.flt" )
// устанавливаем новые параметры фильтра
ф.корр = Сч_курс_разн+"*;В/*"
ф.исключать = НЕТ;ф.действ_отч = ДА
ф.дата1 = дата_нач;ф.дата2 = дата_кон
ф.исп_период = ДА
ф.ПРИМЕНИТЬ// применяем
ВКЛ_ФИЛЬТР// включаем фильтрацию
Метод ПРИМЕНИТЬ
Тип результата | Имя метода | Параметры |
– |
ПРИМЕНИТЬ |
– |
Метод ПРИМЕНИТЬ позволяет установить параметры фильтра хозяйственных операций.
Пример:
СОЗДАТЬ ( ф, ТИП_ФИЛЬТР )
// устанавливаем новые параметры фильтра
ф.корр = Сч_курс_разн+"*;В/*"
ф.исключать = НЕТ;ф.действ_отч = ДА
ф.дата1 = дата_нач;ф.дата2 = дата_кон
ф.исп_период = ДА
ф.ПРИМЕНИТЬ// применяем
ВКЛ_ФИЛЬТР// включаем фильтрацию
Метод РЕДАКТИРОВАТЬ
Тип результата | Имя метода | Параметры |
ТИП_ЛОГИКА | РЕДАКТИРОВАТЬ |
– |
Метод РЕДАКТИРОВАТЬ позволяет изменить поля фильтра с помощью диалогового окна.
Этот метод возвращает ДА, если была нажата кнопка «OK», и НЕТ, если была нажата кнопка «Отмена».
Пример:
ф = ФИЛЬТР ( "kassa.flt" )
ЕСЛИ ВОПРОС ("Хотите установить параметры фильтра,
отличные от значений по умолчанию") ТО
ф.РЕДАКТИРОВАТЬ
КОНЕЦ_ЕСЛИ
ф.ПРИМЕНИТЬ
Метод СЧИТАТЬ
Тип результата | Имя метода | Параметры |
– |
СЧИТАТЬ |
[ (имя FLT-файла) ] |
Метод СЧИТАТЬ и конструктор ФИЛЬТР заполняют поля объекта Фильтр в соответствии с информацией из файла с настройками фильтра.
При обращении к методу СЧИТАТЬ и конструктору ФИЛЬТР без имени файла происходит считывание полей из текущего фильтра программы.
Пример:
// сохраняем предыдущие параметры фильтра
СОЗДАТЬ ( ф, ТИП_ФИЛЬТР )
ВКЛ_ФИЛЬТР// включаем фильтрацию
// ********* обработка хозяйственных операций *********
//
СООБЩЕНИЕ ("Идет обработка хозяйственных операций
с учетом фильтра...")
// **************************************************
ВЫКЛ_ФИЛЬТР// выключаем фильтрацию
// восстанавливаем старое состояние фильтра
ф.СЧИТАТЬ ( "old_flt.flt" )
ф.ПРИМЕНИТЬ// применяем
Объект «Шрифт»
Общие сведения
Объект Шрифт позволяет устанавливать параметры шрифта для вывода текста на экран с помощью функции ВЫВЕСТИ.
Конструкторы
СОЗДАТЬ ( <имя>, ТИП_ШРИФТ)
где
<имя> |
– имя создаваемого объекта. |
Поля
Имя | Тип |
жирн |
ТИП_ЛОГИКА |
название |
ТИП_СТРОКА |
накл |
ТИП_ЛОГИКА |
размер |
ТИП_ЧИСЛО |
Встроенные методы
Данный объект не имеет методов.
Пример:
// Создаем объект ТИП_ШРИФТ
СОЗДАТЬ (ф, ТИП_ШРИФТ)
ф.название = "Times New Roman"
ф.жирн = НЕТ
ф.накл = ДА
y = 5
ЦИКЛ ДЛЯ ( р=2, 72 )
ф.размер = р
y = y + ОКРУГЛЕНИЕ (р/12)+1
ВЫВЕСТИ (2, y, "Пример текста", ф)
КОНЕЦ_ЦИКЛА
ВСТАВИТЬ_СТРОКУ ( y+10, 5 )
Приложение А. Описание формата SHP
Структура файла SHP 2.0
SHP-файлы данного формата, содержащие журнал хозяйственных операций вместе с планом счетов, используются только в версии Инфо-Бухгалтера 2.x и имеют следующую структуру:
Заголовок-идентификатор
< 1 байт > <54 байта> < 2 байта > < 2 байта > < 2 байта > |
длина строки заголовка строка заголовка 0D0Ah Дата первой операции в журнале Дата последней операции в журнале |
План счетов
< 2 байта > |
Количество счетов первого порядка (N0) |
Счет
< 1 байт > |
Длина названия счета |
|
… |
Строка – название счета |
|
< 1 байт > |
Длина кода счета |
|
… |
Строка – код счета |
|
< 1 байт > |
Байт признаков: and 03h (бит 0..1) – Раздел баланса: 00 – Забалансовый 01 – Активный 10 – Пассивный 11 – Активно-пассивный and 04h (бит 2) – Учет: 000 – Суммовой 100 – Количественно-суммовой |
|
< 4 байта > |
Строка – единица измерения (первый символ – длина) |
|
< 8 байт > |
Цена единицы измерения |
|
< 8 байт > |
Исходный остаток: для суммового учета – Сумма для количественно-суммового учета– Количество |
|
< 2 байта > |
Количество субсчетов (N1) |
|
N0 |
||
…… |
||
N1 |
||
…… |
Хозяйственные операции
< 2 байта > |
Количество хозяйственных операций (NO) |
Хозяйственная операция | ||
<1 байт> |
Длина строки Содержание |
|
…… |
Строка Содержание (1-я и 2-я строка отделяются 0Dh) |
|
<2 байта> |
Дата |
|
<1 байт> |
Длина строки Документ |
|
<5 байт> |
Строка Документ |
|
<1 байт> |
Номер рабочего места |
|
<2 байта> |
Количество проводок в операции |
Проводка | ||
NO |
<2 байта> |
Порядковый номер в файле счета дебета |
<2 байта> |
Порядковый номер в файле счета кредита |
|
NP |
<8 байт> |
Сумма |
NP |
<8 байт> |
Количество (для количественно-суммовой проводки) |
Структура файла SHP 3.0
SHP-файлы данного формата, содержащие журнал хозяйственных операций вместе с планом счетов, используются, начиная с версий Инфо-Бухгалтера 3.0 для DOS и 7.0 для Windows:
Заголовок-идентификатор
<1 байт> |
Длина заголовка = (N1) |
<N1 байт> |
Заголовок (строка) |
Запись
<2 байта> |
Длина записи = (N2) |
<12 байт> |
Резерв |
<4 байта> |
Флаги: xx xx xx 01 (1-ый бит в младшем байте) – кодировка DOS 866 хх хх хх 02 (2-ой бит в младшем байте) – записан блок хх хх хх 04 (3-ий бит в младшем байте) – служебная информация |
Если включен флаг «служебная информация»: |
|
<1 байт> |
Длина служебной информации = (N7) |
<N7 байт> |
Служебная информация |
План счетов
<4 байта> |
Количество счетов = (P1) |
P1 - записей вида Cчет:
<1 байт> |
Длина названия счета = (N3) |
<N3 байт> |
Название счета (строка) |
<1 байт> |
Длина кода счета = (N4) |
<N4 байт> |
Код счета (строка) |
Запись: |
|
<2 байта> |
Длина записи |
<2 байта> |
Флаги: Младший байт: бит 0 – Счет активный бит 1 – Счет пассивный бит 2 – Счет количественно-суммовой |
<8 байт> |
Сумма исходного остатка (comp) |
Запись: |
|
<2 байта> |
Длина записи |
Если счет количественно-суммовой (установлен бит 2 в (младшем) байте флагов - AND 04h), то |
|
<1 байт> |
Длина названия единицы измерения |
<3 байта> |
Название единицы измерения счета (строка) |
<8 байт> |
Исходный остаток в количественном выражении (double) |
<8 байт> |
Фиксированная цена (double) |
Хозяйственные операции
<4 байта> |
Количество хозяйственных операций (P2) |
P2 записей вида Хозяйственная операция:
<1 байт> |
Длина названия хозяйственной операции = (N5) |
<N5 байт> |
Название хозяйственной операции (строка) |
<2 байта> |
Дата |
<1 байт> |
Длина названия документа (N6) |
<N6 байт> |
Название документа (строка) |
Запись: |
|
<2 байта> |
Длина записи |
<1 байт> |
Номер рабочего места |
<2 байта> |
Количество проводок (P3) |
P3 записей вида Проводка:
<4 байта> |
Порядковый номер счета дебета в файле |
<4 байта> |
Порядковый номер счета кредита |
<8 байт> |
Сумма (comp) |
Запись |
|
<2 байта> |
Длина записи |
<8 байт> |
Количество – для количественно-суммовой проводки (double) |
Приложение Б. Описание формата DBF
План счетов и исходные остатки в формате DBF
Запись счета из плана счетов:
Поля записи |
||||
Имя |
Тип |
Длина |
Дес. знаки |
Значение поля |
COD |
Character |
20 |
– |
Код счета |
NAME |
Character |
50 |
– |
Название счета |
IN_ACTIV |
Logical |
1 |
– |
Присутствие в активе |
IN_PASSIV |
Logical |
1 |
– |
Присутствие в пассиве |
VALUE_FLAG |
Logical |
1 |
– |
Тип учета: суммовой – T колич.-суммовой – F |
ISFIXCENA |
Logical |
1 |
– |
Тип цены: фиксированная – T средняя – F |
INIT_SUM |
Numeric |
15 |
2 |
Исх. остаток (сумма) |
ITEM_NAME |
Character |
3 |
нет |
Единица измерения |
PRICE |
Numeric |
15 |
2 |
Цена единицы |
VALUE |
Numeric |
15 |
3 |
Исходное количество |
Таблица 2. Формат полей записи плана счетов и исходных остатков в формате DBF.
Содержимое полей IN_ACTIV и IN_PASSIV определяет раздел баланса, к которому относится счет:
IN_ACTIV | IN_PASSIV |
Раздел баланса |
F | F |
Забалансовый счет |
T | F |
Активный счет |
F | Т |
Пассивный счет |
T | T |
Активно-пассивный счет |
Журнал хозяйственных операций в формате DBF
Запись проводки:
Поля записи |
||||
Имя |
Тип |
Длина |
Дес. знаки |
Значение поля |
OPER_NUMB |
Numeric |
6 |
0 |
Номер операции |
WORK_PLACE |
Numeric |
2 |
0 |
Номер раб. места |
DATE |
Date |
8 |
– |
Дата |
DOCUMENT |
Character |
15 |
– |
Номер документа |
COMMENT |
Character |
250 |
– |
Содержание хозяйственной операции |
DEBIT |
Character |
20 |
– |
Код счета дебета |
CREDIT |
Character |
20 |
– |
Код счета кредита |
SUM |
Numeric |
15 |
2 |
Сумма проводки |
VALUE |
Numeric |
15 |
3 |
Количество (для количественно-суммового учета) |
Таблица 3. Формат полей записи журнала хозяйственных операций в формате DBF.
Проводки, относящиеся к одной хозяйственной операции, имеют одинаковое значение поля OPER_NUMB. Если хозяйственная операция содержит несколько проводок, поля DATE и COMMENT имеют значение только в записи первой проводки. Если проводка суммовая, то содержимое поля VALUE игнорируется.
Приложение В. Сообщения компилятора об ошибках
Сообщения о первичных ошибках
Недостаточно памяти для размещения буфера компиляции
Возникает при нехватке оперативной памяти для размещения временных данных в процессе компиляции. Для устранения данной ошибки освободите память от других приложений или увеличите количество виртуальной памяти.
Переполнение буфера компиляции
Максимальный размер буфера компиляции равен 64 Кбайтам. Данная ошибка может возникнуть при компиляции большого фрагмента программы написанного одним блоком (например, внутри цикла). Избежать больших блоков можно выносом части действий в библиотечные функции. Текст функций компилируются отдельно, а вызов функции занимает гораздо меньше места в коде компилятора.
Ожидался идентификатор
Ошибка возникает, когда компилятор не может выполнить разбор имени переменной или функции. В данном случае ожидается простое имя, вызов функции с указанием библиотеки, обращение к полю или методу объекта с указанием имени объекта или обращение к индексной переменной:
-
<имя>
-
[<библиотека>].<функция>
-
<объект>.<поле или метод>
-
<префикс>!<индекс> или <префикс>[<индекс>]
Ожидался простой идентификатор
Возникает, когда компилятор не может выполнить выделение простого имени. Имя должно начинаться с буквы (латинской или русской) или знака подчеркивания. Во второй позиции и далее в имени допустимы еще и цифры.
Неизвестный идентификатор «…»
Данный идентификатор не найден в таблице идентификаторов компилятора формульной части, функции или общих переменных. Возникает только в тех местах, где не может быть произведено определение нового идентификатора.
Идентификатор «…» не является …
Указанный идентификатор найден, но не входит в ожидаемое в данном месте программы множество понятий языка (переменные, функции, поля и т.д.). Указываются ожидаемые понятия.
Повторяющийся идентификатор «…»Идентификатор «…» уже известен как …
Возникает при встрече компилятором повторного определения идентификатора. В сообщении указывается, с чем уже связан данный идентификатор. В формульной части зарезервированными являются все ключевые слова и встроенные функции, определенные выше по тексту локальные переменные, общие переменные и функции всех подключенных библиотек. В теле функции дополнительно являются зарезервированными имена параметров данной функции, а в библиотечном методе объекта еще и все имена полей и методов для объекта данного типа. Для индексных переменных идентификатором является префикс.
Ошибочная строковая константа
Возникает, когда компилятор не может выполнить выделение строковой константы. Строковые константы заключаются в двойные кавычки и должны быть расположены на одной строке.
Ошибочная операция для типа …
Данная ошибка возникает при попытке осуществить арифметическую операцию с операндами типа, для которого она не определена. Например, к этой ошибке приведет попытка умножения значений типа дата. Во многих случаях на момент компиляции типы операндов неизвестны и ошибки могут возникнуть при выполнении кода программы.
Несовместимые типы … и …
Вызывается при обнаружении компилятором несоответствия типов при присвоении значений, арифметических действиях, передачи параметров функциям и т.п. Данная ошибка возникает только тогда, когда компилятору точно известен ожидаемый тип и тип заданного выражения. Во многих случаях на момент компиляции типы выражений неизвестны и ошибки могут возникнуть при выполнении кода программы.
Ожидалась ранее определенная переменная
Данная ошибка возникает при попытке модификации переменной с использованием ее значения, если ранее такая переменная не была определена.
Вызывается операторами ++ и – –.
Ожидалось выражение индекса начинающееся с "!" или "["
Данная ошибка возникает в том случае, когда после имени, известного как префикс индексной переменной, не обнаружен символ « ! » или « [ », предшествующий выражению индекса.
Недопустимый тип индекса
Тип выражения индекса для индексной переменной отличается от строкового или числового типа.
Объект не является локальной или общей переменной
Идентификатор перед точкой не является локальной или общей объектной переменной.
Ожидалась переменная объектного типа
Идентификатор перед точкой является переменной, но не объектного типа.
Для переменной типа … не определен метод …
Для объектной переменной указанного типа не найдено встроенного или библиотечного метода с указанным именем.
Неверно заданы параметры функции
Параметры, передаваемые библиотечной функции или методу, не соответствуют описанию функции в библиотеке.
Ожидалась библиотечная функция логического типа
Функция, предназначенная для подстановки значения в поле ввода, имеет тип результата отличный от логического.
Ожидалась функция с одним параметром
Функция, предназначенная для подстановки значения в поле ввода, имеет количество параметров отличное от одного.
Ожидался параметр вида:ПЕРЕМ ТИП_СТРОКА:<параметр>
Функция, предназначенная для подстановки значения в поле ввода, имеет параметр с описанием отличным от указанного.
Определение общей переменной внутри функции
Вызывается при встрече компилятором слова ПЕРЕМ в теле функции.
Определение функции внутри функции
Вызывается при встрече компилятором слова ФУНКЦИЯ в теле функции.
Локализующие сообщения об ошибках
Ошибка компиляции конструкции …
Данное сообщение помогает локализовать первичные ошибки компиляции (например, переполнение буфера) и посмотреть стек компиляции. Выдается при завершении компиляции конструкции ЦИКЛ, ЕСЛИ и т.п. по ошибке.
Ошибка компиляции функции …
Данное сообщение помогает локализовать первичные ошибки компиляции и узнать имя функции, в которой произошла ошибка. Выдается при завершении компиляции функции по ошибке.
Сообщения о фатальных ошибках
Ошибка компиляции формульной части
Выдается при завершении компиляции формульной части по ошибке.
Ошибка подключения библиотеки …
Выдается в случае, когда библиотека не найдена, произошла ошибка создания общих переменных или чтения заголовков функций.
Ошибка создания кода используемых библиотечных функций
Выдается в случае, когда компиляция текста функций завершилась по ошибке. Компиляция текста функций производится после компиляции формульной части.
Ошибка инициализации компилятора
Данная ошибка возникает при неудачной активизации компилятора вследствие нехватки памяти или нестабильности работы программного обеспечения. В случае, если эта ошибка возникает систематически, обратитесь к разработчику.
Плохой буфер компиляции
Данная ошибка возникает вследствие нестабильности работы программного обеспечения или наличия внутренних ошибок компилятора. В случае, если эта ошибка возникает систематически, обратитесь к разработчику.
Предупреждающие сообщения
Пустая секция в конструкции …
В секции конструкции ЦИКЛ или ЕСЛИ не задано ни одного оператора.
Изменение переменной счетчика цикла (…)
Переменная счетчика цикла ДЛЯ или СЧЕТА изменяется внутри цикла, что может привести к сбою вычислений, но не является ошибкой. Избегайте изменения переменной счетчика, т.к. это может привести к зацикливанию программы.
Возможное изменение переменной счетчика цикла (…)
Переменная счетчика цикла ДЛЯ или СЧЕТА может быть изменена внутри цикла, что может привести к сбою вычислений, но не является ошибкой.
Ключевые слова, функции и объектывстроенного языка
?
? (вопросительный знак)118
S
SQL_ДАТА205
А
АБС118
Б
БД_ВСЕГО119
БД_ВЫБОР119
БД_ЗАКРЫТЬ122
БД_ЗАМЕНИТЬ123
БД_ЗАПИСАТЬ124
БД_ОТКРЫТЬ125
БД_ПЕРЕЙТИ126
БД_ПОЛЕ127
БД_РЕДАКТОР128
БД_СОЗДАТЬ137
БД_СОРТ138
БД_СЧИТАТЬ138
БД_ТЕКУЩАЯ139
БЛАНК140
БЫСТР95
В
ВВЕСТИ95
ВВЕСТИ_ЗНАЧЕНИЕ140
ВВОД_ЗНАЧЕНИЯ143
ВЕРСИЯ145
ВКЛ_ФИЛЬТР145
ВОПРОС146
ВРЕМЯ147
ВРЕМЯ_ТЕК147
ВСТАВИТЬ_РАМКУ148
ВСТАВИТЬ_СТРОКУ149
ВЫБОР_ДИР149
ВЫБОР_СЧЕТА150
ВЫБОР_ФАЙЛА151
ВЫВЕСТИ151
ВЫЗОВ153
ВЫКЛ_ФИЛЬТР154
ВЫПОЛНИТЬ155
ВЫРАЖЕНИЕ156
ВЫХОД97
ВЫЧИСЛИТЬ97
Г
ГОД156
Д
ДА84, 98
ДАТА157
ДАТА_КОН157
ДАТА_НАЧ158
ДАТА_ТЕК158
ДАТАП159
ДАТАП0159
ДЕНЬ160
ДЕНЬП160
ДИР_DBF161
ДИР_WIN161
ДИР_АРХИВОВ161
ДИР_БАЗЫ162
ДИР_БИБЛ162
ДИР_БЛАНКОВ163
ДИР_ВЫВОДА163
ДИР_ИСХТЕКСТОВ164
ДИР_ФИЛЬТРОВ164
ДЛИНА165
ДЛЯ98, 107
ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ165
ДОБАВИТЬ_РЕКВИЗИТ166
ДОБАВИТЬ_СЧЕТ166
ДОБАВИТЬ_СЧЕТ!168
ДРОБ169
Е
ЕДИН169
ЕСЛИ98
ЕСТЬ_BDE170
ЕСТЬ_СУБСЧ170
З
ЗАГЛ171
ЗАМ172
ЗАП_ОПЕР171
ЗАП_ОПЕР!172
ЗВУК172
ЗНАЧ173
ЗНАЧ_ТЕСТ173
И
И85, 99
ИЛИ85, 99
ИНАЧЕ99
ИСПОЛЬЗОВАТЬ99
ИСХ_ОСТ174
ИСХ_ОСТ_К174
ИСХ_ОСТ_ЦЕНА175
К
КОД_СИМВ175
КОНЕЦ100
КОНЕЦ_ЕСЛИ100
КОНЕЦ_СТРАНИЦЫ176
КОНЕЦ_ФУНКЦИИ100
КОНЕЦ_ЦИКЛА101
КОП176
КОПП177
Л
ЛОГ177
М
МАКС178
МЕС178
МЕСП179
МИН179
МИНУТЫ180
Н
НАЗВ180
НЕ85, 101
НЕТ84, 101
О
ОБД180
ОБД_К182
ОБК182
ОБК_К183
Объект База данных244
Объект База данных с поддержкой SQL254
Объект Операция276
Объект Проводка283
Объект Список285
Объект Счет291
Объект Файл296
Объект Фильтр301
Объект Шрифт304
ОКРУГЛЕНИЕ184
ОПЕР_ВСЕГО186
ОПЕР_ДАТА187
ОПЕР_ДОК187
ОПЕР_ОТ188
ОПЕР_ПРОВ189
ОПЕР_РМ189
ОПЕР_СОД190
ОПЕРАЦИЯ50, 101
ОПРЕДЕЛИТЬ190
ОСД191
ОСД_К191
ОСДН192
ОСДН_К193
ОСК193
ОСК_К194
ОСКН195
ОСКН_К195
П
ПЕРЕМ80, 82, 102
ПОДСТР196
ПОДСЧ196
ПОЗ197
ПОКА102, 108
ПОЛЬЗОВАТЕЛЬ198
ПРАЗДНИК198
ПРОВ_ДЕБ198
ПРОВ_КОЛ199
ПРОВ_КРЕД200
ПРОВ_СУМ200
ПРОВОДКА201
ПРОВОДКАГР203
ПРОП204
Р
РЕД_ПОЛЕ204
РУБ205
РУБП205
С
СБРОС206
СЕКУНДЫ207
СИМВ207
СЛУЧ_ЧИСЛО208
СОЗДАТЬ_ДИР208
СООБЩЕНИЕ209
СТАРТ_ПРОГ209
СТОП102
СТОП_ВСЕ103
СТР210
СТР_ЗНАЧ212
СТР0211
СТРОКА_СТАТУСА212
СУММАП213
СУММАП_АНГЛ214
СУЩ_ОПРЕДЕЛЕНИЕ214
СУЩ_ПЕРЕМ215
СУЩ_РЕКВИЗИТ216
СУЩ_ФАЙЛ216
СУЩ_ФУНК217
СЧЕТ_АКТ217
СЧЕТ_АНАЛИТ218
СЧЕТ_КОЛ218
СЧЕТ_ПАС219
СЧЕТ_СУЩ219
СЧЕТ_ФИКСЦ220
СЧЕТА103, 108
Т
ТЕК_ДИР220
ТИП_SQL103
ТИП_БД103
ТИП_ВРЕМЯ104
ТИП_ДАТА104
ТИП_ЛОГИКА104
ТИП_ОПЕР221
ТИП_ОПЕРАЦИЯ104
ТИП_ПЕРЕМ221
ТИП_ПРОВОДКА104
ТИП_СПИСОК104
ТИП_СТРОКА104
ТИП_СЧЕТ105
ТИП_ФАЙЛ105
ТИП_ФИЛЬТР105
ТИП_ЧИСЛО105
ТИП_ШРИФТ105
ТО105
У
УДАЛ_ОПЕР222
УДАЛ_СЧЕТ223
УДАЛИТЬ_СТРОКУ223
УРОВЕНЬ224
УСТ_РЕД_ПОЛЕ224
Ф
ФАЙЛ_КОПИРОВАТЬ225
ФАЙЛ_ПЕРЕИМЕНОВАТЬ225
ФАЙЛ_ТИПОП226
ФАЙЛ_УДАЛИТЬ226
ФИЛЬТР_ВКЛ227
ФОКУС228
ФУНКЦИЯ105
Ц
ЦЕНА228
ЦИКЛ106
Ч
ЧАС229
ЧИСЛО229
Ш
ШАБЛОН230
Э
ЭКСП231
Станьте нашим дилером!
Условия работы с дилерами:
-
Первоначальная скидка на программу – 40%
-
Максимальная скидка – 75%
-
Дилер самостоятельно устанавливает цены на программу
-
Обеспечение дилеров Инфо-Бухгалтер рекламными материалами фирмы
-
Регулярная информационная поддержка дилеров: рассылка новостей фирмы, обновлений программы, отчетных форм
-
Бесплатная оперативная консультационная поддержка по работе с программой по телефону, электронной почте, на сайте в сети Интернет, в офисе фирмы
-
Регулярное проведение дилерских семинаров по вопросам обучения работе с программой, технике продаж, новинок программы и т.д.
-
Реализация через дилерскую сеть Инфо-Бухгалтер самостоятельных разработок дилеров
-
Доставка программ методом «экспресс-доставка»
-
Обучение работе с программой у ведущих программистов фирмы
-
Бесплатная сертификация дилеров по программе на дилерских семинарах
-
Помощь в индивидуальной настройке программ
-
Создание для дилеров и их клиентов специфического набора типовых операций
-
Передача клиентов на платное сервисное обслуживание дилерам
-
Предоставление бесплатной возможности дилерам работать на выставках на стенде Инфо-Бухгалтер
-
Возможность создания своей дилерской/агентской сети с последующим увеличением размера предоставляемой скидки
-
Бесплатные учебные программы для дилеров и учебных учреждений
-
Предоставление существенных скидок при покупке программной продукции партнерских фирм
-
Что бы заключить дилерский договор достаточно приобрести всего 2 программы
-
Мы не запрещаем Вам распространять программы фирм-конкурентов
-
Публикация в центральной печати телефонов дилеров
- 3422 просмотра