Как пользоваться справкой

 Вернуться к началу раздела

Ее можно получить, либо нажав кнопку ? (вопросительный знак) и щелкнув элемент диалогового окна, либо щелкнув элемент правой кнопкой мыши и выбрав команду Что это такое. Для получения общих сведений о возможностях, а также справки выполнению конкретных задач нажмите кнопку <Пуск> и выберите команду Справка и поддержка.


Помощь

Стандартное меню

Вы можете в любой момент получить справку о работе с программой. Для этого Вам надо сделать одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Справка | Помощь» главного меню;

·нажать клавишу <F1>;

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

Справку по работе с файлом справки Вы можете узнать здесь.


Содержание помощи

Стандартное меню

Для того чтобы вызвать оглавление справки Вам надо сделать одно из следующих действий:

·выбрать пункт «Справка | Помощь» главного меню;

·нажать комбинацию клавиш <Shift>+<F1>;

В содержании Вы сможете выбрать необходимый раздел для получения информации.


Указатель

Стандартное меню

Для того чтобы получить справку о каком-то пункте меню, кнопке панели управления или другом элементе можно использовать указатель. После того, как Вы выполните одно из действий:

·выберите пункт «Справка | Указатель» главного меню;

У указателя мыши появится вопрoсительный знак. Наведите указатель на пункт меню, кнопку панели или другой элемент, по которому Вы хотите получить справку и нажмите левую кнопку мыши. Программа выдаст описание выбранного элемента.


Главное окно программы

Главное окно программы Инфо-Предприятие появляется после диалога входа в программу. Вид главного окна может быть произвольным образом настроен. Окно состоит из главного меню, с помощью которого происходит вызов функций программы. Для быстрого обращения к некоторым функциям предназначена панель инструментов:

Установка фильтра журнала

Настройка пользовательских параметров отчета или бланка

Сортировка таблицы по возрастанию значений колонки

Сортировка таблицы по убыванию значений колонки

Открыть файл документа

Сохранить редактируемый документ

Вырезать в буфер обмена

Копировать в буфер обмена

Вставить из буфера обмена

Изменить запись таблицы / элемент редактора

Добавить новую запись таблицы / элемент редактора

Удалить запись таблицы / элемент редактора

Открыть корзину

Поиск в документе

Обновить содержимое

Запуск бланка, операции или отчета

Остановка расчета

Вызов встроенного калькулятора

Печатать текущий документ

Выполнить предварительный просмотр перед печатью документа

В панели управления также расположен навигатор периода:

NAVIGATOR

С помощью навигатора указывается период, за который будут отображаться операции в текущем окне.

В зависимости от настроек период может быть день, месяц или квартал. По умолчанию используется месяц. Текущий выбранный период отображается в заголовке (Октябрь 2014). Для выбора другого месяца можно воспользоваться мышью или нажать клавишу <F2>. В появившемся списке выбора серым цветом отображаются месяца, в которых нет движения (Май). Желтым цветом показан текущий месяц (Ноябрь). Переключиться на другой год можно с помощью кнопок внизу списка.

Кнопка <Показать> все позволяет временно сбросить ограничения, накладываемые навигатором на список. Если используется навигатор периода по дате, сбросить ограничения можно, если очистить поле даты и нажать <Enter>.

Справа внизу главного окна располагается строка статуса:

В ней отображается название текущей базы данных (Комплекс), путь к файлу базы данных (c:\interbase_test\kompleks.gdb), название фирмы (ООО «Одуванчик»), система налогообложения — основная или упрощенная (ОСН), имя пользователя (Администратор) и версия исполняемого модуля (2.5 (сборка 22)). Для настройки отображения в строке статуса надо щелкнуть правой кнопкой мыши по надписи. На экране появится список того, что можно в ней отобразить. С помощью левой кнопки мыши выберем то, что нам надо.

См.также
Режимы главного окна
Настройка главного окна


Режимы главного окна

При щелчке правой кнопкой мыши на любой из панели инструментов или на свободной области рядом с панелями инструментов появится контекстное меню, состоящее из следующих пунктов:

Панель инструментов — позволяет скрыть или показать панель инструментов;

Панель окон — управляет отображением панели окон;

Закрепить панели — закрепляет панели инструментов (запрещает их перетаскивание с помощью мыши);

Настройка — вызывает диалог настройки главного окна.

См. также
Главное окно программы


Стандартное меню

Список пунктов стандартного меню

скрыть описание

 Вернуться к началу раздела

Меню программы отличается в зависимости от модуля, настройки меню или прав доступа пользователя. Однако, существуют стандартные предустановленные пункты меню. Все существующие в этом руководстве ссылки на меню указаны именно они.

«Операции | Журнал»
Заполнение журнала бухгалтерских операций — главного журнала программы.

«Операции | Первичные формы»
Заполнение бланков первичных документов.

«Операции | Отчетные формы»
Заполнение бланков отчетных документов.

«Операции | Отчеты»
Заполнение отчетов.

«Правка | Отменить»
Отмена последнего действия.

«Правка | Повторить»
Повтор последнего действия.

«Правка | Вырезать»
Вырезать в буфер обмена.

«Правка | Копировать»
Копировать в буфер обмена.

«Правка | Вставить»
Вставить из буфера обмена.

«Правка | Выделить все»
Выделить все записи в документе.

«Правка | Добавить»
Добавить новую запись таблицы/элемент редактора.

«Правка | Изменить»
Изменить запись таблицы/элемент редактора.

«Правка | Удалить»
Удалить запись таблицы/элемент редактора.

«Правка | Корзина»
Открывает корзину, где содержатся все удаленные записи.

«Правка | Вверх»
Переместить строку вверх.

«Правка | Вниз»
Переместить строку вниз.

«Правка | Найти»
Поиск в документе.

«Правка | Заменить»
Замена строки в документе.

«Сервис | Фильтр»
Вызов фильтра журнала (при открытой таблице редактора).

«Сервис | Сортировка по возрастанию»
Сортировка таблицы по возрастанию значений колонки.

«Сервис | Сортировка по убыванию»
Сортировка таблицы по убыванию значений колонки.

«Сервис | Перенос проводок»
Перенос проводок с одного счета на другой.

«Сервис | Проверить»
Проверка данных.

«Сервис | Калькулятор»
Вызов встроенного калькулятора.

«Сервис | Диаграмма»
Построение диаграммы или графика на основе данных таблицы.

«Сервис | Редактор»
Вызов встроенного текстового редактора.

«Сервис | Пересчитать»
Пересчитать/Обновить содержимое документа.

«Сервис | Стоп»
Остановить выполнение операции.

«Установка | План счетов»
Редактирование бухгалтерского плана счетов.

«Установка | Исходные остатки»
Заполнение исходных остатков счетов.

«Установка | Статьи учета»
Редактирование статей налогового учета.

«Установка | Корректные проводки»
Настройка списка корректных проводок и связей бухгалтерского и налогового учета.

«Установка | Определения»
Установка определений. Редактирование списка определений.

«Установка | Реквизиты»
Ввод реквизитов. Редактирование списка реквизитов.

«Установка | Оглавления»
Настройка оглавлений журналов, удаление и создание новых.

«Установка | Настройка меню»
Настройка пользовательского меню (главного).

«Установка | Контекстное меню»
Настройка пользовательского меню (контекстного).

«Установка | Список пользователей»
Редактирование списка пользователей, установка прав, паролей, рабочих мест.

«Установка | Установка/удаление модуля»
Установка дополнительного модуля к программе или его удаление, \ конфигурации вручную из файла.

«Установка | Настройки»
Основная настройка параметров программы.

«Разработка | Журналы аналитики»
Редактирование списка журналов аналитики, настройка и импорт из других форматов и т.д.

«Разработка | Функции журналов»
Настройка функций журналов, обработчиков, свойств журнала, видимых колонок и т.д.

«Разработка | Типовые операции»
Редактирование типовых операций.

«Разработка | Бланки»
Редактирование списка бланков, удаление и создание новых.

«Разработка | Отчеты»
Редактирование списка отчетов, удаление и создание новых.

«Разработка | Библиотеки функций»
Редактирование библиотек функций.

«Разработка | Множества»
Настройка множеств.

«Разработка | Типы документов»
Настройка типов документов, используемых в журнале бухгалтерских операций.

«Разработка | Дистрибутив конфигурации»
Средства разработчиков для создания дистрибутива конфигурации и пакетов обновления для нее.

«Разработка | Выгрузка модуля»
Средства разработчиков для выгрузки изменений конфигурации или отдельного модуля в виде пакета обновления.

«Разработка | Проверка конфигурации»
Проверка конфигурации на наличие синтаксических ошибок.

«Файлы | Открыть»
Открыть файл документа.

«Файлы | Сохранить»
Сохранить редактируемый документ.

«Файлы | Импорт из»
При открытом окне документа импорт данных из другого формата в этот документ.

«Файлы | Экспорт в»
При открытом окне документа экспорт данных в другие форматы.

«Файлы | Печатать»
Печатать текущий документ.

«Файлы | Просмотр»
Запустить предварительный просмотр перед печатью документа.

«Файлы | Настройка печати»
Настроить параметры печати. Выбрать принтер.

«Файлы | Параметры базы»
Настройка схемы резервного копирования и других глобальных параметров базы данных.

«Файлы | Обслуживание базы»
Обслуживание базы данных, обслуживание, архивирование и восстановление базы данных.

«Файлы | Создать базу»
Создание новой базы данных.

«Файлы | Другая база данных»
Подключение к другой базе данных.

«Файлы | Другая фирма»
Переключение на другую фирму, создание новых фирм.

«Файлы | Временная блокировка»
Временная блокировка работы (под паролем).

«Файлы | Выход»
Выйти из программы.

«Окна | Закрыть все»
Закрыть все открытые в программе окна.

«Окна | Новое окно»
Создать копию текущего окна.

«Справка | Помощь»
Контекстно-зависимый вызов этого справочного файла.

«Справка | Содержание»
Вызов содержания этого справочного файла.

«Справка | Указатель»
Вызов указателя помощи.

«Справка | Подсказки»
Настроить или просмотреть окно совет дня.

«Справка | Интернет-обновление»
Подключение к службе обновлений программы через Интернет

«Справка | Личный кабинет»
Доступ к личному кабинету пользователя программы.

«Справка | Сделать снимок с экрана»
Делает снимок с экрана для передачи его в техническую поддержку.

«Справка | О системе»
Получить информацию о системе, текущем каталоге, компьютерах, работающих с базой данных и др.

«Справка | О программе»
Версия программы. Сведения об установленных конфигурациях и их версиях. Координаты службы технической поддержки.


Список пунктов стандартного меню

показать описание

Меню программы отличается в зависимости от модуля, настройки меню или прав доступа пользователя. Однако, существуют стандартные предустановленные пункты меню. Все существующие в этом руководстве ссылки на меню указаны именно они.

«Операции | Журнал»

«Операции | Первичные формы»

«Операции | Отчетные формы»

«Операции | Отчеты»

«Правка | Отменить»

«Правка | Повторить»

«Правка | Вырезать»

«Правка | Копировать»

«Правка | Вставить»

«Правка | Выделить все»

«Правка | Добавить»

«Правка | Изменить»

«Правка | Удалить»

«Правка | Корзина»

«Правка | Вверх»

«Правка | Вниз»

«Правка | Найти»

«Правка | Заменить»

«Сервис | Фильтр»

«Сервис | Сортировка по возрастанию»

«Сервис | Сортировка по убыванию»

«Сервис | Перенос проводок»

«Сервис | Проверить»

«Сервис | Калькулятор»

«Сервис | Диаграмма»

«Сервис | Редактор»

«Сервис | Пересчитать»

«Сервис | Стоп»

«Установка | План счетов»

«Установка | Исходные остатки»

«Установка | Статьи учета»

«Установка | Корректные проводки»

«Установка | Определения»

«Установка | Реквизиты»

«Установка | Оглавления»

«Установка | Настройка меню»

«Установка | Контекстное меню»

«Установка | Список пользователей»

«Установка | Установка/удаление модуля»

«Установка | Настройки»

«Разработка | Журналы аналитики»

«Разработка | Функции журналов»

«Разработка | Типовые операции»

«Разработка | Бланки»

«Разработка | Отчеты»

«Разработка | Библиотеки функций»

«Разработка | Множества»

«Разработка | Типы документов»

«Разработка | Дистрибутив конфигурации»

«Разработка | Выгрузка модуля»

«Разработка | Проверка конфигурации»

«Файлы | Открыть»

«Файлы | Сохранить»

«Файлы | Импорт из»

«Файлы | Экспорт в»

«Файлы | Печатать»

«Файлы | Просмотр»

«Файлы | Настройка печати»

«Файлы | Параметры базы»

«Файлы | Обслуживание базы»

«Файлы | Создать новую базу»

«Файлы | Другая база данных»

«Файлы | Другая фирма»

«Файлы | Временная блокировка»

«Файлы | Выход»

«Окна | Закрыть все»

«Окна | Новое окно»

«Справка | Помощь»

Справка | Содержание

«Справка | Указатель»

«Справка | Подсказки»

«Справка | Интернет-обновление»

«Справка | Личный кабинет»

«Справка | Сделать снимок с экрана»

«Справка | О системе»

«Справка | О программе»


Вход в программу

Этот диалог позволяет войти в программу. Выберите себя из списка. Это можно сделать как с помощью мыши, так и с помощью клавиш управления курсором <б> и <в>.

Если для входа под Вашим именем требуется пароль, то введите его в графе Пароль. Не забудьте учесть раскладку клавиатуры! Строчные и прописные буквы различаются !

После этого можно нажать кнопку <OK> или клавишу <Enter> для входа в программу. Вы можете сделать это и двойным щелчком мыши по пользователю в списке.

Нажатие <Отмена> приведет к отказу от подключения к этой базе данных и завершению работы программы.


Выход из программы

Для того чтобы закончить работу с программой достаточно сделать одно из следующих действий:

·закрыть главное окно программы;

·выбрать пункт «Файлы | Выход» главного меню;

·нажать клавишу <Alt>+<X> или <Alt>+<F4>.

Если у Вас настроено подтверждение при выходе из программы, то программа спросит:

Вы хотите выйти из программы ?

Нажмите ДА для выхода и НЕТ для продолжения работы (вопрос будет задаваться только при закрытии главного окна, при использовании клавиши <Alt>+<X> или выборе пункта меню программа спрашивать не будет).

Если у Вас открыты окна с не сохраненными файлами, программа предложит сохранить их.


Базы данных

Базы данных — основной источник информации, с которым работает программа. В базе данных хранится, во-первых, прикладная конфигурация, которая реализует бизнес-логику (журналы, бланки, отчеты, типовые операции и т.д.), а во-вторых данные, с которыми оперирует пользователь и его предпочтения.

Программа Инфо-Предприятие основывается на клиент-серверной архитектуре. В качестве СУБД используется популярный SQL-сервер Firebird. Сам сервер уже входит в дистрибутив программы.

Программа Инфо-Предприятие построена по принципу тонкого клиента. 100% информации, включая основной исполняемый модуль, необходимой для работы с базой данных располагается в самой базе данных, в одном файле не сервере. На клиентах устанавливается только небольшая программа — загрузчик, выполняющая функции подключения к базе данных (файл iplauncher.exe). Такая схема работы дает ряд преимуществ:

·Более простая установка: для нормальной работы на клиентскую станцию надо скопировать только один небольшой файл загрузчика.

·Нет необходимости в обновлении программы на клиентских станциях, программа-загрузчик не меняется от версии к версии.

·Не возникает конфликта между исполняемым модулем и форматом базы данных: каждая база данных работает со своей версией основного исполняемого модуля. Самая старая резервная копия может быть в любой момент разархивирована, и с ней можно будет работать.

База данных представляет собой один единственный файл с расширением fdb (или gdb) и может находиться как на жестком диске, так и на любом носителе: флэш-карта, USB жесткий диск или что-либо еще, за исключением носителей подключаемых при помощи Ethernet. Если Вы используете флэш-карту, то чтобы не потерять все данные на ней, используйте Безопасное извлечение устройства.

При необходимости файл базы можно скопировать для того чтобы перенести на другой компьютер, сделать копию базы и т.п. Однако это не безопасно !!! Если в этот момент с базой данных работают или сервер выполняет фоновые операции, файл может оказаться поврежденным. Поэтому, лучше использовать операции архивирования и восстановления, которые могут выполняться в любой момент, в том числе и когда с базой данных работают другие пользователи.

Для доступа к базе данных с рабочих станций давать общий доступ на папку, содержащую файлы с базами данных, не нужно. Более того, это крайне нежелательно по соображениям безопасности данных.

Переключиться на нужную базу данных можно через диалог переключения. Он может появляться при входе в программу или быть отключенным. В последнем случае воспользуйтесь пунктом меню «Файлы | Другая база данных».

Внимание!

Вы не сможете подключиться к базе данных, если на сервер установлен брандмауэр (сетевой экран, фаервол, firewall) и он не настроен.

При удачном переключении на базу данных появится диалог входа в программу.

См.также
Создание базы данных
Смена имени базы данных
Параметры командной строки


Изменение имени базы данных

Имя базы данных играет роль краткого описания содержимого базы. Этим не следует пренебрегать во избежание путаницы при работе с несколькими базами. Например, если Вы не используете консолидированный учет, хорошим тоном будет определить имя базы данных бухгалтерии по названию предприятия и году: Солнышко 2001. Делайте названия баз данных уникальными — это поможет Вам в будущем.

При подключении к базе данных название базы появляется в списке доступных баз данных.

Название текущей базы данных можно поменять при помощи двойного щелчка мыши в строке статуса по имени базы в правом нижнем углу главного окна программы. В появившемся диалоге надо указать новое имя и нажать <OK>. После этого имя базы изменится.

Для изменения имени других баз данных необходимо переключиться на них.

См.также
Создание базы данных
Подключение к базе данных


Параметры базы данных

Стандартное меню

Настроить параметры базы данных можно в пункте меню «Файлы | Параметры базы». Данный пункт меню доступен только под Администратором. Диалог состоит из нескольких закладок:

Резервное копирование. Здесь указываются общие параметры резервного копирования:

Замечание!

В облачной версии программы закладка «Резервное копирование» отсутствует.

Каталог резервных копий на сервере — каталоги, в которых будут храниться резервные копии при автоматическом сохранении копии и при сохранении вручную через пункт меню «Файлы | Обслуживание базы» (если в имени файла резервной копии не указывается абсолютный путь). Если Вы выполняете настройку параметров базы на сервере, каталог можно выбрать при помощи кнопки [image], в противном случае путь вводится вручную. Обратите внимание, что указанный путь — это путь на сервере.

Если указан вариант <Каталог базы>, то резервные копии будут сохраняться в том же каталоге, что и база данных.

Автоматически сохранять резервную копию — включает автоматическое сохранение резервных копий. Возможные варианты: Ежемесяно, Еженедельно и Ежедневно. Вариант Никогда — отключает функцию автоматического сохранения резервных копий.

Внимание!

Отключайте функцию автоматического сохранения резервных копий, только если задействованы альтернативные инструменты резервного копирования!

Резервные копии будут иметь такое же имя файла, что и база данных, но с суффиксами _1, _2, _3, и т.д.

Максимальное кол-во копий для хранения — здесь указывается максимальное кол-во резервный копий данной базы данных, которые будут храниться на сервере. При превышении этого лимита, будут удаляться самые старые из них.

Внимание!

1)Для более надежной сохранности данных рекомендуется, чтобы резервная копия сохранялась на другом жестком диске, отличном от того, на котором расположена база данных. В этом случае, при выходе из строя одного из них, останутся, или резервная копия, или сама база данных.

2)Еще большую надежность обеспечивают специализированные процедуры резервного копирования, запускаемые на сервере баз данных. Встроенная в программу автоматическая архивация запускается с клиентских мест.

3)Также рекомендуется записывать резервные копии на сменные носитили (DVD, магнитную ленту и т.д.). Это защитит данные от действий вредoносных программ (вирусов), которые могут уничтожить как саму базу, так и ее копии.

4)Производите периодические проверки того, что функции автоархивирования действительно работают. Они могут оказаться отключенными (другими пользователями компьютера-сервера, при установке на сервере каких-либо других программ и т.п.).

Предлагать сохранять на флеш-карте — с заданной периодичностью будет предлагать сохранять копию на внешнем носителе (флеш-карте, внешнем жестком диске, на другом компьютере и т.п.). Функция работает только если база данных расположена на этом компьютере. Если база данных расположена на другом компьютере в сети, опция будет проигнорирована.

Скрывать полосу прокрутки. Для выяснения кол-ва записей программа делает дополнительный запрос к базе данных. При включении этой опции в строке статуса вместо кол-ва записей в таблице будет показываться ???, а прокрутка работать не будет. Как только журнал будет пролистан до конца и кол-во записей станет достоверно известным, окно перейдет в обычный режим.

Замечание!

Опция работает не всюду. Иногда прокрутка все равно не будет работать сразу.

Не определять пустые периоды навигатора. Месяц, квартал или число (в зависимости от настроек навигатора периода), в которых нет операций, помечаются в навигаторе серым цветом. Для этого программа делает дополнительный запрос к базе данных. Эта опция отключает выделение цветом периодов без операций.

Запретить показывать все и убирать навигатор. Пользователь не сможет отключить навигатор периода или использовать опцию Показать все в навигаторе.

Использовать сжатие исполняемых файлов. Сокращает сетевой трафик при работе. Однако некоторые старые версии программы-загрузчика не поддерживают работу со сжатыми исполняемыми файлами.

Другое. Здесь указываются специфические опции базы данных:

Разрешить печатать документ не сохраняя его — обычно программа требует сохранить документ в базе прежде чем его распечатать (с помощью кнопки <Выполнить> в окне редактирования записи). Включение этой опции отменяет это требование.

Разрешить добавление при консолидированном учете — программа запрещает добавлять записи в журналы при включении опции Показывать операции всех фирм в диалоге переключения между фирмами при консолидированном учете. Это делается для тех продуктов, для которых такой режим не является основным в работе и в которых добавление записей может привести к определенным проблемам. Включение этой опции отменяет действие этого запрета.

Вести учет, когда создана/изменена операция — помимо имени пользователя, который создал или изменил операцию, программа будет фиксировать дату создания или изменения. При включении опции Кто создал/изменил операцию в настройках программы дата и время создания и дата и время изменения будут показываться справа от имени пользователя, который это сделал. Добавляется возможность фильтрации по дате изменений. Также, в правах доступа, возможности, закладка Базовые, добавляется кнопка Ограничить время исправлений.

Включить протокол действий пользователей — опция включает протокол действий пользователей. Это позволяет отслеживать все действия пользователей с базой: добавление, удаление и изменение данных. Увидеть это можно в колонке «Создал/Изменил» журнала (если эта колонка включена в настройках). Фильтр в журналах использует протокол, появляется возможность фильтровать по пользователю и дате изменения. Администратору доступен подробный протокол изменений выделенной записи журнала в контекстном меню «Протокол» и общий протокол действий в пункте главного меню «Сервис | Общий протокол».

Разрешить делать недоступными некоторые записи — при включении опции в журналах аналитики и журнале бухгалтерских операций появляется флажок Недоступна. Также, в правах доступа, возможности, закладка Базовые, добавляется группа опций Операции с недоступными записями.

Запретить восстанавливать соединение при разрыве связи — при потере связи с сервером баз данных выводится окно о разрыве связи. По умолчанию в нем кнопки: Восстановить соединение и Выйти из программы. При включении данной опции останется только вторая кнопка.

Включить сбор статистики запросов к базе данных — используется в рамках технической поддержки для выявления «узких» мест при работе с базой данных.

См.также
Обслуживание базы


Создание базы данных

Создание базы

Создание базы данных требуется:

·для начала работы с новым предприятием или филиалом когда Вы не используете консолидированный учет

·когда требуется сформировать отдельную базу данных на другой отчетный период в бухгалтерии

·когда требуется удалить (отрезать) старые операции чтобы увеличить скорость работы программы.

Чтобы создать базу данных воспользуйтесь меню «Файлы | Создать базу...». При этом на экране появится пошаговый диалог. Далее следуйте по пунктам.

При откытии диалога создания базы данных программа предложит на выбор два варианта:

·Новую базу данных (новой организации) — выбирается для решения первой задачи.

·Перенести остатки в новую базу — выбирается для решения остальных задач.

·Создать базу данных магазина (только для программы «Торговый склад») — позволяет при работе с функционалом Распределенная база данных создать преднастроенную базу для переноса её в магазин.

Внимание!

Так как база данных представляет собой один единственный файл с расширением fdb (или gdb), можно создать новую базу путем копирования файла. Однако это не безопасно !!! Если в этот момент с базой данных работают, файл может оказаться поврежденным. Хуже того, его повреждение будет заметно не сразу, а обнаружится со временем. Перед копированием рекомендуется останавливать сервер базы данных чтобы быть уверенным в том, что с базой никто не работает.

См.также
Подключение к базе данных
Смена имени базы данных


Создание новой базы данных

Создание базы

Создание новой базы данных требуется для начала работы с новым предприятием или филиалом когда Вы не используете консолидированный учет. При этом программа создает чистую базу, в которой содержатся только системные данные. Если надо создать базу данных для этого же предприятия, но, скажем, на другой отчетный период, используйте операцию закрытия периода.

Для создания новой базы данных используется пункт главного меню «Файлы | Создать новую базу».

Следуйте указанием пошагового диалога.

1. Вначале надо указать имя файла базы данных и ее название. Обычно программа предлагает файл и название базы. Но можно и изменить предложенный вариант.

Файл базы данных. Если Вы выполняете создание базы данных на сервере, файл можно выбрать при помощи кнопки [image], в противном случае путь к файлу вводится вручную. Если путь не указан — файл создается в том же каталоге, где лежит база данных.

Название. Название новой базы поможет ориентироваться среди различных баз данных, расположенных у Вас на компьютере. Вы можете изменить ее в любое время двойным щелчком мыши по строке статуса в правом нижнем углу главного окна программы.

Создать ярлык на рабочем столе — отключите эту опцию если ярлык не нужен.

2. После настройки нажмите кнопку Далее > (она не доступна, пока не введены имя файла и название). Если имя файла и название базы введены корректно, появится итоговая информация о выбранных действиях. Подтвердите создание базы данных и нажмите Готово.

Создание базы данных займет какое-то время. Программа будет переносить системные данные из старой базы в новую. Подождите.

См.также
Подключение к базе данных
Смена имени базы данных


Перенести остатки в новую базу

Создание базы

Операция закрытия периода состоит из создания новой базы данных и переноса или пересчета данных на указанную дату. Операция необходима:

·В бухгалтерии — для перехода на новый отчетный год или квартал.

·В аналитическом учете — для уменьшения нагрузок на базу и архивирования старых, неиспользуемых данных.

То, когда производить операцию закрытия периода, решает сам пользователь. В принципе, в обоих случаях можно и не закрывать период вообще, а воспользоваться закрытием доступа к старому периоду.

Операция закрытия периода при переносе данных руководствуется двумя принципами:

·Все документы после указанной даты переносятся в новую базу данных в обязательном порядке.

·Документы до указанной даты по возможности сворачиваются, образуя исходный остаток на начало периода.

Так что выполняйте операцию закрытия, если уверены, что не будете вносить данные в период до указанной даты. Иначе это будет значить, что рассчитанные исходные остатки в новой базе данных неверны.

При выполнении операции закрытия периода все данные в старой базе сохраняются. Вы всегда сможете переключиться на эту базу данных, для того чтобы продолжить работу с ними.

Следуйте указанием пошагового диалога.

1. Вначале надо указать имя файла базы данных и ее название. Обычно программа предлагает файл и название базы. Но можно и изменить предложенный вариант.

Файл базы данных. Если Вы выполняете создание базы данных на сервере, файл можно выбрать при помощи кнопки [image], в противном случае путь к файлу вводится вручную. Если путь не указан — файл создается в том же каталоге, где лежит база данных.

Название. Название новой базы поможет ориентироваться среди различных баз данных, расположенных у Вас на компьютере. Вы можете изменить ее в любое время двойным щелчком мыши по строке статуса в правом нижнем углу главного окна программы.

Создать ярлык на рабочем столе — отключите эту опцию если ярлык не нужен.

2. Программа запрoсит дату, на которую следует закрыть период. Все операции, начиная с этой даты, будут перенесены в новую базу данных. Все операции до этой даты будут просуммированы, и на основе них получится исходный остаток в новой базе данных.

3. После настройки нажмите кнопку Далее > (она не доступна, пока не введены имя файла и название). Если имя файла и название базы введены корректно, появится итоговая информация о выбранных действиях. Подтвердите закрытие базы данных и нажмите Готово.

Создание базы данных и пересчет остатков займет какое-то время. Подождите.

Замечание!

Для записей Журнала начислений зарплаты до указанной даты будет изменен вид на "Исходные остатки". Проводки по этим документам формироваться не будут. Занесенные на закладку Выплаты документы выдачи, имеющие дату ранее даты переноса, будут сохранены без ссылки на документ. При удалении таких записей, повторное их занесение будет невозможно.

Рекомендуется архивировать базы данных за прошлые годы и сохранять их на отдельных носителях. Это позволит Вам избежать проблем с выходом из строя жесткого диска. Помните, что согласно Федеральному закону О бухгалтерском учете от 21.11.96 N 129-ФЗ (статья 17 пункты 1,2) организации обязаны хранить данные бухгалтерского учета не менее пяти лет.

См.также
Подключение к базе данных
Смена имени базы данных


Обслуживание базы данных

Стандартное меню

Все функции по обслуживанию базы данных выделены в отдельный пункт меню «Файлы | Обслуживание базы». Диалог состоит из нескольких закладок:

Архивировать — сохранение резервной копии

Восстановить — загрузка резервной копии

Сервис — сервисные операции с базой данных

Замечание!

В облачной версии программы закладки «Архивировать» и «Восстановить» отсутствует, вместо них будет закладка «Резервная копия», где можно скачать последнюю резервную копию базы данных.


Архивировать базу

Архивировать

Для предотвращения проблем, связанных с потерей данных в результате сбоя оборудования или программного обеспечения предназначено сохранение резервной копии. Для сохранения резервной копии не требуется монопольный доступ. Вы можете сохранять ее и в тот момент, когда с базой данных работают пользователи.

Внимание!

Никогда не копируйте файл базы данных, если с ней работают. Скопированный файл будет испорчен! Лучше использовать данную функцию архивирования. Если же файл базы все-таки надо скопировать, обязательно остановите сервер FireBird!

При выполнении этой процедуры происходит запись данных в архивный файл. В него поместятся абсолютно все данные, включая конфигурацию, всю пользовательскую информацию, а также основной исполняемый модуль на момент начала процесса архивации. Получается, что даже самая старая резервная копия может быть в любой момент разархивирована и с ней можно начать работу, как будто Вы ее и не прекращали.

Элементы диалога имеют следующее предназначение:

Файл резервной копии — укажите здесь файл резервной копии. Если Вы выполняете архивацию на сервере, файл можно выбрать при помощи кнопки [image], в противном случае путь вводится вручную. Если имя файла содержит указание пути — это путь на сервере. Если путь не указан — файл создается в том же каталоге, где лежит база данных. Вы можете воспользоваться списком для выбора файлов, уже когда-либо сохранявшихся Вами. Если файл резервной копии существует, программа заменит его.

Проверить копию — производит тестирование резервной копии. При включении этой опции архивирование будет работать медленнее, однако копия будет гарантировано правильной.

Протокол — здесь выводятся сообщения о ходе выполнения процесса архивирования. Сообщения из протокола можно сохранить в текстовом файле или скопировать в буфер обмена. Для этого надо воспользоваться соответствующими пунктами контекстного меню.

После того как необходимые параметры были установлены, нажмите Выполнить >>. Это запустит операцию сохранения резервной копии. Операция архивирования займет какое-то время. Подождите. Если Вам надо работать с программой, подключитесь к базе данных из другой копии программы или с другого компьютера — процесс сохранения резервной копии не блокирует работу других пользователей, и Вы можете спокойно работать.

При сохранении копии возможны следующие ошибки:

Невозможно открыть файл ... — программе не удается открыть файл резервной копии. Проверьте правильность указания пути.

Путь к базе данных содержит запрещенные символы (...), для сохранения резервной копии надо переименовать файл / каталог — выполните соответствующую рекомендацию.

Восстановить сохраненную копию из архива можно с помощью закладки Восстановить.

Закладка может быть недоступна, если отключена возможность Резервирования данных в правах доступа.

См. также
Параметры базы


Восстановить базу

Восстановить

Здесь Вы сможете восстановить данные из резервной копии, сохраненной на закладке архивировать.

Элементы диалога имеют следующее предназначение:

Файл резервной копии — укажите здесь файл резервной копии. Если Вы выполняете восстановление на сервере, файл можно выбрать при помощи кнопки [image] , в противном случае путь вводится вручную. Если имя файла содержит указание пути — это путь на сервере. Если путь не указан — файл создается в том же каталоге, где лежит текущая база данных. Вы можете воспользоваться списком для выбора файлов, уже когда-либо сохранявшихся Вами.

Файл базы данных — задает файл базы данных, в которую будет загружена резервная копия. Этот файл не должен существовать, в противном случае восстановление завершится по ошибке. Если Вы выполняете восстановление на сервере, файл можно выбрать при помощи кнопки [image] , в противном случае путь вводится вручную. Если имя файла содержит указание пути — это путь на сервере. Если путь не указан — файл создается в том же каталоге, где лежит текущая база данных.

Подключиться — установите эту опцию, и программа подключится к только что восстановленной базе данных.

Протокол — здесь выводятся сообщения о ходе выполнения процесса восстановления. Сообщения из протокола можно сохранить в текстовом файле или скопировать в буфер обмена. Для этого надо воспользоваться соответствующими пунктами контекстного меню.

После того как необходимые параметры были установлены, нажмите Выполнить >>. Это запустит операцию восстановления резервной копии. Операция восстановления займет какое-то время. Подождите.

При восстановлении копии возможны следующие ошибки:

Невозможно открыть файл ... — программе не удается открыть файл резервной копии. Проверьте правильность указания пути.

База данных ... уже существует — в графе Файл базы данных указан файл уже существующей базы данных. Указанный там файл не должен существовать.

Путь к базе данных содержит запрещенные символы (...), для сохранения резервной копии надо переименовать файл / каталог — выполните соответствующую рекомендацию.

См.также
Архивировать данные

Закладка может быть недоступна, если отключена возможность Восстановления данных в правах доступа.

См.также
Параметры базы


Сервис

Обслуживание базы данных

Здесь выполняются различные сервисные функции в базе данных.

Элементы диалога имеют следующее предназначение:

Задачи — выберите здесь задачи, которые необходимо выполнить.

Обновить статистику индексов — обновляет статистику индексов в базе данных. Индексы используются сервером для быстрого доступа к данным. Если статистика индекса устарела, он может не использоваться там где надо и это приводит к снижению скорости работы.

Выполнить сборку мусора — собирает мусор. Мусор может накапливаться в зависимости от используемых алгоритмов и решения некоторых задач. Его наличие увеличивает размер базы данных и снижает быстродействие.

После того как необходимые задачи установлены, нажмите Выполнить >>. Это запустит их на выполнение.

Закладка может быть недоступна, если отключена возможность Сервиса в правах доступа.


Консолидированный учет

Если стоит задача ведения учета нескольких предприятий ее можно вести по-разному. Например, Вы можете сделать на каждое предприятие свою базу данных, свой файл. Когда требуется работать с этим предприятием, Вы просто подключаетесь к этой базе данных.

Преимуществ такого способа ведения нескольких предприятий несколько: во-первых, т.к. данные хранятся в абсолютно разных файлах, очевидно, что данные одного предприятия никогда не попадут в базу другого — это просто невозможно; во-вторых, т.к. данные одного предприятия хранятся в одном файле Вы всегда можете легко скопировать этот файл, перенести на другой компьютер и т.п.. Т.е. такой способ хранения чрезвычайно мобилен.

Но есть и недостатки. Во-первых, в некоторых случаях хочется, чтобы часть данных была раздельной, а часть общей. Пример: ведение бухгалтерии двух юридических лиц, представляющих фактически одну компанию. В этом случае справочник клиентов лучше иметь общий, т.к. одни и те же клиенты могут покупать как от одного юридического лица, так и у другого. Во-вторых, если баз данных несколько, то и обновление конфигурации придется выполнять несколько раз для каждой базы данных.

Для решения этих проблем, в программе Инфо-Предприятие, начиная с версии 2.0, добавлен еще один способ ведения нескольких предприятий. В рамках физически одной базы данных создается несколько логических фирм. Далее, в настройках базы данных Вы указываете, какие журналы будут общими для этих фирм и какие будут у каждой фирмы свои. Вместо переключения между базами данных, идет переключение между логическими фирмами. Такой способ разделения по фирмам называется консолидированным учетом. Его преимущество тем выше, чем больше общего между двумя фирмами. Но даже когда эти фирмы никак не связаны, у них все равно есть общие справочники-классификаторы (например, Справочник банков, адресов и т.п.). И вдобавок такой способ разделения дает преимущество: не надо ставить несколько раз обновления.

Выбирая, каким способом лучше вести учет нескольких предприятий, взвесьте все за и против этих двух методов и выберите оптимальный для Вас. Вы можете комбинировать два способа работы с несколькими предприятиями. Например, в одной базе данных хранить данные нескольких предприятий, ведущих белую бухгалтерию, а в другой — фактические данные по этим или другим предприятиям.

Чтобы начать вести учет нескольких предприятий внутри одной базы данных, надо создать эти фирмы. Для этого надо вызвать диалог переключения на другую фирму при помощи пункта меню «Файлы | Другая фирма» и нажать там кнопку Создать новую...

Стандартные версии уже настроены на консолидированный учет. Тем не менее, если необходимо перенастроить логику работы консолидированного учета, например, указать, какие справочники и журналы будут общими для всех фирм, а какие будут в каждой фирме свои, надо воспользоваться настройкой общих данных в функциях журналов.


Переключиться на другую фирму

Выберите пункт меню «Файлы | Другая фирма», если Вам необходимо переключиться на другую фирму. Здесь Вы увидите список всех фирм, учет по которым ведется в этой базе данных. После того как Вы выбрали нужную фирму, нажмите <OK>. Нажатие <Отмена> приведет к отказу от перехода к другой фирме.

Если у Вас есть соответствующие права, Вы можете отредактировать здесь список фирм, присутствующих в базе данных. Для этого используйте следующие кнопки:

— для изменения информации о выделенной в списке фирме. Появится диалог изменения параметров фирмы, в котором можно изменить название фирмы, краткое имя (оно отображается в таблицах), систему налогообложения и дату блокировки операций.

— для удаления фирмы из базы данных. Программа спросит: Удалить фирму такую-то ?. Нажмите Да для удаления. Если в этой фирме введены какие-либо данные, программа дополнительно запросит подтверждение: Будут удалены все операции, сделанные в этой фирме. Продолжить ?. Нажмите Да, если Вы уверены.

Внимание!

Все операции, созданные в этой фирме будут уничтожены!

Создать новую... — для создания новой фирмы. После чего Вы перейдете к диалогу создания новой фирмы.

Показывать операции всех фирм — используйте эту опцию для того, чтобы видеть операции всех фирм вместе в одном журнале без переключения между фирмами. При включении этой опции справа будет доступна кнопка [image] . Она позволяет указать, какие конкретно фирмы надо видеть.

Внимание!

Данной опцией следует пользоваться осторожно, иначе данные нескольких фирм могут перепутаться!


Изменить параметры фирмы

Диалог параметров фирмы при использовании консолидированного учета появляется при выборе пункта меню «Файлы | Другая фирма», и далее нажатии кнопки [image]. Диалог содержит следующие поля:

Название — названии фирмы, например ООО "Одуванчик".

Кратко — сокращенное название (не более 10 символов). Сокращенное название появляется в таблицах при отображении фирмы.

Система налогообложения — выбирается из списка. Редактирование списка и создание новых систем налогообложения возможно программистами под пользователем Администратор.

При смене системы налогообложения фирмы программа автоматически запустит мастер постановки налогового учета.

Закрытый период до — программа не будет разрешать изменять и удалять операции до указанной здесь даты. Возможность работы конкретного пользователя с операциями из закрытого периода определяется правами пользователя, группа опций Операции с закрытым периодом. Чтобы потом отключить эту функцию очистите графу.

Замечание!

Кроме глобальной даты блокировки, единой для всех пользователей, каждый пользователь может для себя персонально установить свой закрытый период в настройках программы, закладка Таблицы, опция Закрытый период до. На персональную настройку периода права доступа (возможность видеть и править операции закрытого периода) не действуют.


Создать новую фирму

Для создания новой фирмы при использовании консолидированного учета выберите пункт меню «Файлы | Другая фирма» и в появившемся диалоге нажмите кнопку Создать новую.... Появится пошаговый диалог, где Вы можете создать новую фирму:

1. Вначале укажите название новой фирмы. Название должно быть уникально в рамках одной базы данных. Для фирмы можно указать систему налогообложения (система налогообложения может быть изменена позже). Затем нажмите Далее >. Вы перейдете либо к шагу 2 либо к шагу 3.

2. Укажите, какие данные дополнительно нужно перенести в новую фирму из текущей. В процессе создания новой фирмы, программа автоматически переносит из текущей фирмы в новую следующие данные:

Реквизиты

Определения

План счетов

Статьи учета

Корректные проводки

Но здесь можно указать и другие журналы, которые будут перенесены в новую фирму.

Этот шаг пропускается, если программа не видит каких-либо данных, которые можно было бы перенести.

Нажмите кнопку Далее > для продолжения или < Назад если хотите вернуться к заданию имени базы данных.

3. Программа в последний раз покажет выбранные опции. Подтвердите установку и нажмите Готово.

Если перенос данных был успешным, Вы вернетесь в диалог переключения на другую фирму. Для того чтобы приступить к работе в только что созданной фирме выберите ее в списке и нажмите <OK>.


Установка/удаление модуля

Установка / обновление / удаление

С помощью данной функции можно осуществить следующие действия:

·Установить дополнительный модуль к программе

·Удалить ранее установленный модуль

·Обновить конфигурацию программы вручную из файла обновления

Внимание!

Данные действия должны выполняться опытными пользователями или администраторами баз данных, а устанавливаемые модули должны быть получены из надежных источников.

Установить дополнительный модуль или обновить конфигурацию

Если нужно установить дополнительный модуль или обновить конфигурацию программы, следуйте следующим инструкциям:

0. Перед установкой проверьте, что у Вас запущен только один экземпляр программы и что все другие пользователи в сети вышли из программы.

Для установки подготовьте файлы обновления (это может быть флэш-карта, компакт-диск или скаченный из сети Интернет пакет обновления, расположенный на жестком диске компьютера). Запуск обновления осуществляется при помощи пункта меню «Установка | Установка/удаление модуля». При вызове этого пункта меню появится пошаговый диалог:

1. Вначале появится приглашение к установке. Вам следует вставить необходимый носитель информации, например, флэш-карту с обновлением. Нажмите кнопку <Установить модуль>. Программа просканирует устройства и выведет на экран список обновлений.

2. В списке выберите тот модуль или обновление, который хотите устанавливать (обычно в нем только одна строчка, которая уже выбрана). Выбранные пакеты отмечаются флажком [image].

Если список пуст или в нем нет требуемого пакета (а в списке окажутся только обновления, найденные на флэш-карте или компакт-диске) воспользуйтесь кнопкой Обзор... или Другое... соответственно для выбора нужного файла. При выборе файла следует отметить, что обновления хранятся в файлах с расширением pak.

Нажмите кнопку Далее > для продолжения или < Назад для повторного сканирования.

3. Программа покажет выбранные опции. Вы можете убрать опцию Перед установкой сделать резервную копию, однако в случае неудачи с установкой обновления Вы не сможете восстановиться из резервной копии. Нажмите Готово для начала установки.

Программа начнет установку обновления. После ее успешного завершения появится сообщение — Операция успешно завершена. Необходимо перезапустить программу.

Значит, все прошло успешно, и Вы подключаетесь к обновленной базе. Можно работать дальше. В некоторых случаях программа может выдать сообщение об ошибке.

Удалить ранее установленный модуль

Если удалить установленный ранее модуль из базы данных, следуйте следующим инструкциям:

0. Перед удалением проверьте, что у Вас запущен только один экземпляр программы и что все другие пользователи в сети вышли из программы.

Запустите удаление при помощи пункта меню «Установка | Установка/удаление модуля». При вызове этого пункта меню появится пошаговый диалог:

1. Вначале появится приглашение к установке. Нажмите кнопку <Удалить модуль>. Программа выведет на экран список установленных модулей, которые можно удалить.

2. В списке выберите тот модуль, которые хотите удалить. Нажмите кнопку Далее > для продолжения.

3. Программа покажет выбранные опции. Вы можете убрать опцию Перед установкой сделать резервную копию, однако в случае неудачи с удалением модуля Вы не сможете восстановиться из резервной копии. Нажмите Готово для начала удаления.

Программа начнет удаление модуля. После ее успешного завершения появится сообщение — Операция успешно завершена. Необходимо перезапустить программу.

Значит, все прошло успешно, и Вы подключаетесь к Вашей базе данных. Можно работать дальше. В некоторых случаях программа может выдать сообщение об ошибке.

См.также
Восстановление из резервной копии
Сохранение резервной копии
Ошибки при обновлении версии


Ошибки при установке

При выполнении установки обновления программа может вывести сообщение об ошибке. Ниже приводится перечень ошибок (в алфавитном порядке):

Для обновления и правильной работы конфигурации необходима более новая версия программы (исполняемого модуля). Необходима более свежая версия программы (исполняемого модуля). Попробуйте обратиться к Вашему поставщику за обновлением исполняемого модуля.

Ошибка выполнения конструкции <...>. Запомните это сообщение и обратитесь к поставщику за разъяснениями ошибки.

Ошибка изменения структуры базы данных. Запомните это сообщение и обратитесь к поставщику за разъяснениями ошибки.

Ошибка копирования файлов, необходимых для работы программы. Может быть несколько причин ошибки. Во-первых, обновляемые файлы (те, что в рабочей базе) заблокированы, к ним нет доступа на удаление и перезапись. Во-вторых, это может быть ошибка в устанавливаемом пакете или неизвестная ошибка. В последнем случае обратитесь к поставщику за разъяснениями.

Ошибка обновления версии. Программа не может считать информацию о дистрибутиве из inf-файла (файл поврежден или содержит неправильные данные). Обратитесь к поставщику пакета за разъяснениями.

Ошибка при создании резервной копии конфигурации или
Ошибка при тестировании созданной резервной копии конфигурации. Программа не может создать резервную копию перед обновлением. Выясните, почему это происходит, сделайте резервную копию вручную, а при установке уберите опцию Перед установкой сделать резервную копию.

Программа не может создать каталог для размещения временных файлов. Попробуйте очистить временный каталог (узнать, где находится временный каталог можно в сведениях о системе в пункте меню «Справка | О системе»). Если это не поможет, проверьте, есть ли у Вас права на запись файлов в этом каталоге.

Устанавливаемая конфигурация имеет более старую версию, чем та, что уже установлена у Вас. Вы устанавливаете более старую версию конфигурации. Проверьте носитель, содержит ли он то, что Вам требуется? Вы можете воспользоваться кнопкой Другое... в диалоге обновления, чтобы указать тот файл, который Вам нужен.

Этот дистрибутив является обновлением. Для работы требуется ранее установленная версия этого модуля. Это обновление должно ставиться на предыдущую полную версию конфигурации. Надо сначала поставить ее, а затем поставить это обновление.

См.также
Восстановление из резервной копии
Сохранение резервной копии
Установка / удаление модуля


Интернет-обновление

Стандартное меню

При помощи пункта меню «Справка | Интернет-обновление» можно воспользоваться сервисом обновления конфигурации через Интернет.

Обновление позволяет установить новую версию бланков, типовых операций, алгоритмов обработки данных. Не секрет, что, скажем, формы бланков в бухгалтерском учете меняются достаточно часто. Поэтому обновление конфигурации Вам пригодится и не раз.

Перед началом работы с данным сервисом необходимо убедиться, что сеть Интернет доступна и настроена. После того, как выбран пункт меню «Справка | Интернет-обновление», программа проверит наличие обновлений.

Если обновления отсутствуют, то программа выведет сообщение Нет новых обновлений.

Если обновления присутствуют, то будет выведен список доступных обновлений. Ниже под списком отображается информация о том, что нового есть в выделенного обновлении.

Выберите интересующее обновление и нажмите кнопку Скачать. Программа начнет скачивать это обновление с сайта технической поддержки.

Вы можете в любой момент прервать скачивание и продолжить в любое другое время. Если процесс загрузки был прерван в результате разрыва соединения, программа возобновит загрузку в следующий раз с того самого момента, на котором она остановилась.

Для того чтобы начать скачивание заново необходимо установить флажок Скачать заново в окне выбора обновления. При этом необходимо учесть, что при установке этой опции обновление будет получено заново, т.е. если была получена часть файла обновления и, в процессе получения, произошел разрыв связи, то она учитываться не будет.

Рассмотрим кнопки окна загрузки.

Кнопка Установить служит для начала установки полученного обновления на текущую базу данных (см. раздел Обновление конфигурации).

Кнопка Сохранить предназначена для сохранения скаченного обновления в файле. Используйте эту кнопку, в случае если надо будет устанавливать обновление на других базах данных или на другом компьютере.

Если выдается сообщение Не удалось получить список обновлений с сервера, то вероятнее всего компьютер не имеет подключения к Интернет в данный момент. Другой причиной может быть временная недоступность сервера обновлений, в этом случае попробуйте выполнить операцию позднее. Если вышеперечисленные действия не помогут, то обращайтесь в службу технической поддержки.

Если обновление не устанавливается и при установке выдается сообщение Неправильный заголовок архива, Ошибка целостности данных архива или Архив ... поврежден, попробуйте заново скачать обновление, установив опцию Скачать заново в диалоге выбора обновлений.

Возможные проблемы

Если выдается сообщение Не удалось получить список обновлений с сервера, то скорее всего компьютер не имеет подключения к Интернет в данный момент. Проверьте также Ваш серийный номер: если серийный номер не соответствует установленной конфигурации, получить обновление не удастся.

Другой причиной может быть временная недоступность сервера обновлений, в этом случае попробуйте выполнить операцию позднее. Не поможет — обращайтесь в службу технической поддержки.

Если обновление не ставится и при установке выдается сообщение Неправильный заголовок архива, Ошибка целостности данных архива или Архив ... поврежден попробуйте заново скачать обновление, установив опцию Скачать заново в диалоге выбора обновлений.


Работа с таблицами

Во многих частях программы для отображения и редактирования информации используются таблицы. И везде, где используются таблицы, действуют одни и те же функции. Единообразие интерфейса позволяет быстрее осваивать программу.

Далее приведены основные возможности при работе с таблицами. Однако не во всех таблицах могут использоваться те или иные действия. Если действие недоступно, то соответствующий пункт меню или кнопка управления будут неактивны.

Добавление записи

Редактирование записи

Удаление записи

Выделение записей

Выделить все

Создание копии

Копирование в буфер обмена

Вырезать в буфер обмена

Вставить из буфера обмена

Поиск строк

Замена строк

Контекстный поиск

Сортировка строк

Перейти к строке

Показать/Скрыть колонки

Изменить порядок следования колонок

Сохранение профилей настроек колонок

Склейка колонок

Поменять местами строки

Заполнить значением

Корзина

Печать

Предварительный просмотр

Обновить содержимое

Передать в другую программу

Внизу любой таблицы находится строка статуса, в которой отображается определенная информация о выбранной записи и состоянии таблицы. Вначале всегда идет указание на номер строки и на количество строк в таблице в виде строка/всего строк.


Добавление записи в таблицу

Работа с таблицами

Для добавления новой записи в таблицу необходимо выполнить одно из следующих действий

·нажать кнопку [image] на панели инструментов;

·перейти в самый низ таблицы и на строке, следующей за последней, нажать кнопку [image] слева;

·выбрать пункт «Правка | Добавить» главного или Добавить контекстного меню;

·нажать клавишу <F7>.

·нажать клавишу <Insert> (вставка записи между строками, где находится курсор, поддерживается не во всех таблицах).

В зависимости от таблицы будет выведен диалог добавления новой записи.

Пример:

При добавлении новой бухгалтерской операции, Вам будет предложено окно ввода параметров операции. В него необходимо ввести дату операции, содержание и проводки. Только после завершения редактирования диалога и нажатия <OK> запись реально добавляется.

Добавление записей возможно не во всех таблицах. Если в данной таблице добавление новой записи невозможно, то соответствующие пункты меню будут недоступны для выбора.


Изменение записи в таблице

Работа с таблицами

Для того, чтобы отредактировать запись в таблице сначала надо выбрать нужную запись в таблице и выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Изменить» главного или Изменить контекстного меню;

·щелкнуть левой кнопкой мыши по строке (не в диалогах выбора);

·нажать клавишу <Enter> или <F4>.

Обычно после этого появляется диалог изменения выбранной записи, где уже и происходит редактирование записи. И только после нажатия <OK> в этом диалоге запись действительно изменяется. Если надо отредактировать запись при выборе элемента (это значит, что на экране диалог и он имеет кнопку Выбрать), то использовать щелчок левой кнопкой мыши в этом случае нельзя — в этих случаях такое действие означает выбор элемента.

Изменять записи можно не во всех таблицах. Если в данной таблице редактирование записи невозможно, то соответствующие пункты меню будут недоступны для выбора.


Удаление записи из таблицы

Работа с таблицами

Для того, чтобы удалить запись(и) из таблицы сначала надо выбрать (выделить) удаляемую запись(и), а затем выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Удалить» главного или Удалить контекстного меню;

·нажать клавишу Del или <F8>.

Обычно, перед окончательным удалением появится подтверждение: Удалить запись?. Например при удалении бухгалтерской операции появится вопрос Удалить бухгалтерскую операцию такую-то ?. Нажмите Да для удаления. При удалении нескольких записей также появляется запрос об удалении. Например при удалении трех бухгалтерских операций появится вопрос Удалить 3 бух. операций(ии) ?.

Удаление записи возможно не во всех таблицах. Если в данной таблице удаление записей невозможно, то соответствующие пункты меню будут недоступны для выбора.


Выделение записей

Работа с таблицами

Чтобы выделить несколько подряд идущих строк или ячеек таблицы, выберите первый строку (ячейку) и, удерживая нажатой клавишу <Shift>, выберите последний объект. Выбор можно сделать как с помощью мыши, так и при помощи клавиатуры посредством стрелок.

Для выбора разрозненных строк (ячеек) таблицы щелкните поочередно каждую строку (ячейку), удерживая нажатой клавишу <Ctrl>.

После того как записи выделены, они могут быть скопированы, вырезаны в буфер обмена или удалены. В некоторых случаях для выделенных записей может быть выполнена какая-либо обработка.

Замечание!

Некоторые таблицы не поддерживают выделение нескольких записей.


Выделить все

Работа с таблицами

Для того чтобы удалить все записи в документе, перенести или скопировать все содержимое документа возникает задача выделить весь документ. Это и выполняет пункт меню «Правка | Выделить все». Его можно использовать как в таблицах, так и в редакторе.

После того как Вы выделите все записи в документе можно воспользоваться операциями копирования и переноса в буфер обмена или операцией удаления для того, чтобы удалить выбранные записи.


Создать копию

Работа с таблицами

Некоторые таблицы имеют функцию создания копий записей. Для этого надо выполнить одно из следующих действий:

·выбрать пункт «Правка | Создать копию» главного или Создать копию контекстного меню;

·нажать клавишу <Ctrl>+<F7>.

Создание копии похоже на добавление записи, однако в этом случае диалог добавления записи будет не пустой — программа заполнит поля диалога значениями из записи, на которой стоял курсор.

Создание копии возможно не во всех таблицах. Если в данной таблице добавление новой записи невозможно, то соответствующие пункты меню будут недоступны для выбора.

См.также
Работа с таблицами


Копировать в буфер обмена

Работа с таблицами

Для того, чтобы скопировать запись(и) в буфер обмена сначала надо выбрать (выделить) копируемые запись(и), а затем выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Копировать» главного или Копировать контекстного меню;

·нажать клавишу <Ctrl>+<Ins>.

После того как запись(и) скопирована, ее можно вставить в эту же таблицу, в другую таблицу, которая работает с такими же записями, в таблицу из другого экземпляра программы или в другую программу, например, в Excel или Open Office.

Работа с буфером обмена возможна не во всех таблицах. Если в данной таблице работа с буфером обмена не поддержана, то соответствующие пункты меню будут недоступны для выбора.


Вырезать в буфер обмена

Работа с таблицами

Для того, чтобы удалить запись(и) в буфер обмена сначала надо выбрать (выделить) вырезаемую запись(и), а затем выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Вырезать» главного или Вырезать контекстного меню;

·нажать клавишу <Shift>+<Del>.

Это действие равносильно последовательному выполнению копирования записи(ей) в буфер обмена и удалению выбранных записи(ей). После этого ее можно вставить в эту же таблицу, в другую таблицу, которая работает с такими же записями, в таблицу из другого экземпляра программы или в другую программу, например, в Excel или Open Office.

Работа с буфером обмена возможна не во всех таблицах. Если в данной таблице работа с буфером обмена не поддержана, то соответствующие пункты меню будут недоступны для выбора.


Вставить из буфера обмена

Работа с таблицами

Для вставки записей из буфера обмена, помещенных туда при копировании, надо выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Вставить» главного или Вставить контекстного меню;

·нажать клавишу <Shift>+<Ins>.

Программа хранит информацию о разных буферах обмена. Так что, скопировав в буфер записи одного формата их нельзя вставить в таблицу, содержащую записи иного формата. Скопировав однажды записи в буфер обмена, они останутся там до тех пор, пока пользователь не сделать снова операцию копирования записей этого же формата в буфер обмена и они не заменят хранящиеся в буфере старые данные. После завершения работы программы информация в буферах обмена теряется.

Работа с буфером обмена возможна не во всех таблицах. Если в данной таблице работа с буфером обмена не поддержана, то соответствующие пункты меню будут недоступны для выбора.


Поиск строк

Работа с таблицами

При работе с большими объемами данных, часто бывает трудно сразу найти нужную информацию. В этих случаях нужно воспользоваться системой поиска. Поиск поддерживается как в таблицах, так и в документах и осуществляется по введенной строке.

При поиске в таблице, которая может содержать несколько колонок, можно выбрать по какой из колонок вести поиск. Для этого достаточно нажать левой кнопкой мыши на заголовке колонки. После этого она станет вогнутой. То же самое можно сделать с помощью клавиатуры, нажав комбинацию клавиш <Ctrl>+Я или <Ctrl>+а.

Для включения режима поиска выполните одно из перечисленных ниже действий:

·нажмите кнопку [image] на панели инструментов;

·нажмите комбинацию клавиш <Ctrl>+<A> ( <Ctrl>+<F> );

·выберите пункт «Правка | Найти» главного или Найти контекстного меню.

·для поиска в таблице дважды щелкнуть левой кнопкой мыши на требуемую колонку.

После этого появится окно Поиска/Замены.

В нем надо ввести в поле Образец этого окна строку, по которой будет вестись поиск и нажать кнопку Найти далее. В случае, если поиск будет удачным, программа выделит найденную строчку в таблице или слово/графу в редакторе цветом.

Дополнительно возможно установить следующие параметры поиска:

С учетом регистра — будет при сравнении проверять регистр символов. Слова, у которых буквы отличаются регистром, в этом случае считаются разными.

Только слово целиком — поиск слова целиком. В таком случае слово, являющееся частью другого слова не будет проверяться.

Поиск внутри граф (только в редакторе бланков) означает, что поиск будет производиться и внутри граф ввода/вывода также.

По всем колонкам (только в таблицах) — поиск указанной строки будет осуществляться по всем колонкам таблицы, а не только по выбранной.

Поиск в подуровнях (только в многоуровневых таблицах) — задает режим поиска с заходом во все подуровни таблицы.

По всем закладкам (только в таблицах с закладками) — задает режим поиска с обходом всех закладок таблицы.

Направление — определяет направление поиска. Возможные варианты: сверху вниз и снизу вверх.

Чтобы закончить работу в режиме поиска нажмите кнопку <Отмена> в окне диалога.

См. также
Замена строк


Замена строк

Работа с таблицами

Замена строк позволяет найти заданную подстроку и заменить ее на другую. Замена поддерживается как в таблицах, так и в документах.

При замене строки в таблице, которая может содержать несколько колонок, можно выбрать по какой из колонок вести поиск и замену. Для этого достаточно нажать левой кнопкой мыши на заголовке колонки. После этого она станет вогнутой. То же самое можно сделать с помощью клавиатуры, нажав комбинацию клавиш <Ctrl>+Я или <Ctrl>+а.

Для включения режима замены выполните одно из перечисленных ниже действий:

·нажмите комбинацию клавиш <Ctrl>+<Р> ( <Ctrl>+<H> );

·выберите пункт «Правка | Заменить» главного или Заменить контекстного меню.

После этого появится окно Поиска/Замены.

В нем надо ввести в поле Образец этого окна строку, по которой будет вестись поиск и в поле Заменить на замещаемый вариант и нажать кнопку Найти далее для поиска первого совпадения. В случае, если поиск будет удачным, программа выделит найденную строчку в таблице или слово/графу в редакторе цветом. Если ее надо заменить, то достаточно нажать кнопку Заменить.

При нажатии Заменить все программа заменит все входящие в документ образцы строки на замещаемую строку.

Дополнительно возможно установить следующие параметры поиска:

С учетом регистра — будет при сравнении проверять регистр символов. Слова, у которых буквы отличаются регистром, в этом случае считаются разными.

Только слово целиком — поиск слова целиком. В таком случае слово, являющееся частью другого слова не будет проверяться.

Поиск внутри граф (только в редакторе бланков) означает, что поиск будет производиться и внутри граф ввода/вывода также.

Направление — определяет направление поиска. Возможные варианты: сверху вниз и снизу вверх.

Чтобы закончить работу в режиме замены нажмите кнопку <Отмена> в окне диалога.

См. также
Поиск строк


Контекстный поиск и фильтрация

Работа с таблицами

Для поиска записи в таблице достаточно выделить нужную колонку и начать набирать по буквам требуемое слово или фразу. При этом программа будет последовательно становиться на строчки, которые удовлетворяют искомому слову, и проверять буквы с начала фразы, если не указано иное (см.ниже).

Существует три режима контекстного поиска. Переключение между ними происходит при нажатии клавиши * (звездочка) или при выборе нужного режима в контекстном меню, появляющегося при нажатии правой кнопкой мыши на заголовке колонки (группа Действие на нажатие клавиш):

·Искать с начала строки — в этом режиме будут перебираться буквы с начала строки;

·Поиск с начала слов — перебираться будут не только первые буквы фразы, но и первые буквы слов, входящих в фразу. Когда этот режим включен в строке статуса таблице будет текст Слов;

·Частичный поиск — перебираться будут не только первые буквы, но и буквы внутри слов. Когда этот режим включен в строке статуса таблице будет текст Част;

Пример

Строка таблицы содержит фразу ЗАО «Английский Чайный Дом». Тогда:

·При контекстном поиске в обычном режиме чтобы перейти к указанной строке надо последовательно набирать буквы: З, А, О, (пробел), , А, Н, Г, и т.д.

·В режиме поиска по словам достаточно последовательно набирать А, Н, Г, Л, И и т.д. Также можно набирать и Ч, А, Й, Н и т.д.

·В режиме частичного поиска достаточно набирать Г, Л, И, Й, С, К и .д.

Если текст не найден, в строке статуса появится красная надпись НЕ НАЙДЕНА и будет выдан звуковой сигнал.

При контекстном поиске доступны клавиши <стрелка вверх> и <стрелка вниз> (выключение опции Перебор вхождений при поиске в настройках таблиц отключает эту возможность). Они позволяют перемещаться от одной строки таблицы, содержащей фрагмент, к другой. При достижении последней строки таблицы, содержащей фрагмент, появится надпись НЕ НАЙДЕНА и будет выдан звуковой сигнал.

Фильтровать — опция доступная из контекстного меню (см. выше). При ее включении вместо поиска строки происходит фильтрация содержимого таблицы. Опция доступна не во всех таблицах.

См. также
Поиск строк


Сортировка по возрастанию / убыванию

Сортировка записей

Работа с таблицами

 Вернуться к началу раздела

Для сортировки записей в таблице в порядке возрастания или убывания какой-нибудь колонки вначале необходимо выделить нужную колонку. Для этого достаточно нажать на ее заголовок левой кнопкой мыши либо, используя клавиши <Ctrl>+<Я> или <Ctrl>+<а>, переместиться к выбранной колонке. После выделения заголовок колонки станет вогнутым. Для сортировки надо сделать одно из следующих действий:

·нажать кнопки [image] (возрастание) или [image] (убывание) на панели инструментов;

·выбрать пункты Сортировка по возрастанию или Сортировка по убыванию в контекстном меню колонки (это меню показывается после нажатия правой кнопкой мыши на заголовок колонки или нажатия комбинации клавиш <Ctrl>+<Alt>+<F10>);

·выбрать пункт «Сервис | Сортировка по возрастанию» или «Сервис | Сортировка по убыванию» главного меню;

·нажать комбинацию клавиш <Ctrl>+<Alt>+<стрелка вниз> или <Ctrl>+<Alt>+<стрелка вверх>.

Если в колонке отображено не одно поле, то сортировка происходит сначала по первому. Если есть записи с совпадающими первыми полями, то они сортируются по второму полю и т.д.

Примечание

Возможна сортировка по нескольким колонкам. Для этого сначала таблица сортируется по первой колонке, а затем по второй (третьей и т.д.) при нажатой клавише <Ctrl>.

После того как таблица будет отсортирована по колонке, в заголовке колонки появится стрелка [image] (возрастание) или [image] .(убывание). Можно сбросить (отменить) сортировку. Для этого надо в контекстном меню колонки вызвать пункт меню Отменить сортировку.

Не во всех таблицах поддерживается сортировка. Например, в журналах аналитики сортировка работает для всех полей, в бухгалтерском журнале операций работает только для режима Проводки вместе с операциями и только для полей Содержание, Дебет, Кредит и Сумма, при выборе из журнала в режиме группового выбора сортировка работает только для не присоединенных полей. Если в данной таблице для выбранной колонки сортировка не поддерживается, то соответствующие пункты меню будут недоступны для выбора.

См. также
Работа с таблицами


Переход к строке

Переход к строке (странице)

Работа с таблицами

 Вернуться к началу раздела

Диалог перехода к строке можно вызвать при помощи двойного щелчка мышью по строке статуса таблицы или документа, там, где показывается текущая строка или позиция.

Диалог перехода к нужной странице появляется в предварительном просмотре также при двойном щелчке мыши по строке статуса.

После появления диалога надо ввести номер нужной строки/требуемой страницы и нажать <OK>. Для выбора варианта из предыдущих введенных значений можно воспользоваться списком с выбором.

См.также
Работа с таблицами


Показать/Скрыть колонки

Работа с таблицами

В некоторых таблицах (например, в журналах аналитики) можно настраивать отображаемые в таблице колонки. Для этого надо выполнить одно из следующих действий:

·щелкнуть левой кнопкой мыши на квадрате [image] в левом верхнем углу таблицы.

·нажать комбинацию клавиш <Ctrl>+<F10>.

Если таблица поддерживает настройку видимости колонок, то появится окно со списком всех колонок, доступных для показа. Если колонка показывается в таблице, то она отмечается флажком [image] . Для того чтобы показать или скрыть колонку достаточно выбрать ее в списке. Тогда скрытая колонка появится, а отображаемая колонка скроется. Если у таблицы много колонок, то у списка будет полоса прокрутки. Воспользуйтесь ей для перехода к нужной колонке.

Для того, чтобы показать/скрыть сразу несколько колонок, выделите их в списке. Это можно делать как с помощью мыши, так и с помощью клавиатуры, используя клавиши перемещения курсора и <Shift>. После этого надо включить/выключить одну из выбранных колонок, тогда это приведет к включению/выключению всех выбранных колонок.

При выборе Все все доступные колонки будут отображаться в таблице.

При выборе Видимые (если есть) программа покажет такое кол-во колонок, чтобы все они уместились на экране, то есть чтобы таблица была без горизонтальных полос прокрутки.

При выборе По умолчанию (если есть) программа установит видимость колонок по умолчанию.

Замечание!

Наличие или отсутствие кнопки По умолчанию определяется программистом в настройках журналов аналитики.

При нажатии на кнопку [image] программа предложит сохранить настройки колонок под определенным именем. В этот профиль будет входить: список видимых колонок и их порядок, ширины колонок, условия склейки колонок, колонка сортировки и текущая выделенная колонка, режим поиска/фильтрации.

При нажатии на заголовок колонки таблицы правой кнопкой мыши появляется контекстное меню колонки (также можно используя клавиши <Ctrl>+<Я> или <Ctrl>+<а> переместиться к выбранной колонке, а затем нажать <Ctrl>+<Alt>+<F10>). Здесь можно управлять некоторыми параметрами таблицы при помощи пунктов:

Скрыть — позволяет скрыть выбранную колонку.

Ширина автоматически — позволяет установить автоматическую ширину колонки. Если около этой опции стоит флажок [image] , то колонка уже выровнена по ширине. Это же можно сделать при помощи двойного щелчка мыши по вертикальной границе заголовка колонки.

Ширина автоматически для всех — выставляет автоматическую ширину для всех колонок.

В дополнение меню может содержать пункты сортировки.

Чтобы увеличить или уменьшить ширину колонки, необходимо установить курсор мыши на вертикальную границу заголовка колонки. При этом курсор мыши приобретет вид [image] . Теперь, удерживая нажатой левую кнопку мыши, можно изменять размер колонки, а двойным щелчком установить ширину по умолчанию.

См. также
Изменить порядок следования колонок


Изменить порядок следования колонок

Работа с таблицами

В некоторых таблицах (например в журналах аналитики ) можно изменять порядок следования колонок таблицы. Для этого надо выполнить одно из следующих действий:

·щелкнуть левой кнопкой мыши на квадрате [image] в левом верхнем углу таблицы.

·нажать комбинацию клавиш <Ctrl>+<F10>.

Если таблица поддерживает настройку колонок, то появится окно со списком всех колонок. Если у таблицы много колонок, то у списка будет полоса прокрутки. Воспользуйтесь ей для перехода к нужной колонке. Далее, нажмите одну из клавиш:

— для перемещения выбранной колонки вниз на одну строку.

— для перемещения выбранной колонки вверх на одну строку.

Для того, чтобы переместить сразу несколько колонок, выделите их в списке. Это можно делать как с помощью мыши, так и с помощью клавиатуры, используя клавиши перемещения курсора и <Shift>. Затем нажмите на соответствующую кнопку, тогда все выбранные колонки сместятся на одну строку вниз или вверх.

При нажатии на кнопку [image] программа предложит сохранить настройки колонок под определенным именем. В этот профиль будет входить: список видимых колонок и их порядок, ширины колонок, условия склейки колонок, колонка сортировки и текущая выделенная колонка, режим поиска/фильтрации.

См. также
Показать/Скрыть колонки


Сохранение профилей настроек колонок

Работа с таблицами

Порядок следования колонок, их видимость сохраняются при выходе из программы. Но иногда требуется сделать несколько разных настроек колонок для разных задач и позже иметь возможность переключаться между этими настройками. И программа позволяет это сделать.

При нажатии в окне настройки колонок на кнопку [image] программа предложит сохранить настройки под определенным именем. В этот профиль будет входить: список видимых колонок и их порядок, ширины колонок, условия склейки колонок, колонка сортировки и текущая выделенная колонка, режим поиска/фильтрации. Для переключения между сохраненными профилями предусмотрены вкладки, которые появляются в правом нижнем углу таблицы, например:

Выбирая разные вкладки будет происходить переключение настроек таблицы. Самая первая вкладка «...» соответствует безымянному профилю (настройкам колонок, не связанных ни с каким профилем).

Если выбрана вкладка, соответствующая какому-либо профилю настроек таблицы, то при попытке внести изменения во внешний вид таблицы будет выдаваться предупреждение Внести изменения (...) в профиль ... ? Если переключиться на вкладку с безымянным профилем, то предупреждение выдаваться не будет.

Если кликнуть правой кнопкой мыши на выбранную вкладку, появится контекстное меню:

Удалить профиль — позволяет удалить текущий выбранный профиль. После удаления всех профилей вкладки будут скрыты.

Изменить название профиля — позволяет изменить название текущего выбранного профиля.

Настроить порядок вкладок — позволяет изменить порядок следования вкладок.

См. также
Изменить порядок следования колонок
Показать/Скрыть колонки


Склейка колонок

Работа с таблицами

В некоторых таблицах (например, в журналах аналитики) можно склеивать и разъединять соседние колонки в таблицах. Для этого надо выбрать колонку, нажав левую кнопку мыши, и, не отпуская, перетащить на соседний. При этом курсор мыши измениться на plus или на minus в зависимости от того, что происходит склейка или расклейка колонок.

См. также
Изменить порядок следования колонок


Поменять местами строки

Работа с таблицами

В некоторых таблицах (например в журнале бухгалтерских операций или в редакторе множеств) можно менять местами строки таблицы. Для этого надо выполнить одно из следующих действий:

·выбрать пункт «Правка | Вверх» или «Правка | Вниз» главного или Вверх или Вниз контекстного меню;

·нажать клавишу <Ctrl>+<стрелка вверх> или <Ctrl>+<стрелка вниз>.

Если таблица поддерживает такую возможность, это вызовет перемещение строки, на которой стоит курсор, вверх или вниз соответственно.

Внимание!

Таблица может быть отсортирована по какой-либо колонке. В этом случае поменять местами колонки не удастся.

См. также
Сортировка записей
Работа с таблицами


Заполнить значением

Работа с таблицами

В некоторых таблицах (например, в журналах аналитики) есть функция заполнения записей данными. Она позволяет скопировать значение одного или нескольких полей из одной записи в одну или несколько других записей.

Чтобы ей воспользоваться выделите записи-приемники, которые надо заполнить данными. И в конце выделите запись-источник, из которой надо взять исходные значения. Это можно сделать с помощью мыши, удерживая нажатой клавишу <Ctrl>. После этого воспользуйтесь контекстным пунктом меню «Заполнить значением».

Появится пошаговый диалог, на первой странице которого надо выбрать поля и их значения из записи-источника. Именно эти поля будут заполняться. Для выбора поля кликните по флажку [image] слева от него.

После этого нажмите Далее >.

На следующем шаге появится таблица с информацией о том, что конкретно изменится в выделенных записях. Количество строк будет соответствовать количеству записей, в которые будут внесены изменения. В каждой строке будет информация вида <поле>: <старое значение> » <новое значение>. Если запись не претерпевает изменения, в строке будет стоять прочерк.

После нажатия Готово изменения будут внесены в таблицу.

См. также
Работа с таблицами


Корзина, восстановление удаленных записей

Работа с таблицами

Многие журналы и справочники имеют корзину. В нее помещаются записи после удаления. Позже их можно восстановить. Чтобы открыть корзину надо сделать одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Корзина» главного меню;

·нажать комбинацию клавиш <Ctrl>+<Z>.

Будет открыто окно корзины. Она содержит те же колонки, что и исходная таблица справочника или журнала. Плюс имеет колонку «Дата удаления», в которой показывается дата, когда была удалена эта запись.

Корзина у каждого пользователя своя. Записи, удаленные пользователем, видны только ему и администратору программу и только они могут их восстановить.

Записи в корзине можно просматривать, достаточно щелкнуть левой кнопкой мыши по строке таблицы.

Для восстановления одной или нескольких записей можно выделить их в таблице и выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт Восстановить контекстного меню;

·нажать клавишу <Alt>+<BkSp>.

Чтобы восстановить все записи корзины, необходимо выделить их всех, например, с помощью контекстного меню Выделить все, а затем воспользоваться восстановлением как написано выше.

Под Администратором программы возможно удаление записей из корзины. Для этого надо

1.Зайти в меню «Установка | Список пользователей»

2.Найти и выбрать пользователя в списке

3.В контекстном меню выбрать Корзина...

Откроется корзина с удаленными записями этого пользователя. В ней будет доступна возможность удаления записей.

См. также
Работа с таблицами


Печать

Печать документа

Работа с таблицами

 Вернуться к началу раздела

Есть два способа вывода на принтер документа: непосредственная печать документа и использование предварительного просмотра. В последнем случае можно наглядно увидеть, как будет выглядеть документ на листе и поменять какие-либо параметры печати, например, поля или масштаб.

Чтобы распечатать текущий документ, отчет, таблицу или текст, достаточно выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·нажать клавишу <F3>;

·выбрать пункт «Файлы | Печатать» главного меню.

Перед выводом на печать будет выведено диалоговое окно Печать, в котором можно задать параметры печатаемого документа, печатаемые страницы, кол-во копий и т.д., выбрать и настроить принтер.

См. также
Предварительный просмотр документа
Настройка печати


Предварительный просмотр

Работа с таблицами

Предварительный просмотр предназначен для того, чтобы увидеть документ таким, каким он будет выглядеть на бумаге, поменять какие-либо параметры печати, например, поля или масштаб, а затем распечатать весь документ или текущую страницу. Для этого нужно вызвать режим предварительного просмотра перед печатью одним из следующих способов:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Файлы | Просмотр» главного меню.

После вызова предварительного просмотра на экране появится уменьшенный лист бумаги с документом. Сверху и слева от него будут линейки разметки, по которым можно определять размеры элементов изображения после вывода их на печать. Светлая полоса на линейке означает печатаемую часть, темная — поля и непечатаемую часть. При наведении мыши на их границу указатель примет форму стрелки. Передвигая ее можно изменять ширину полей документа.

В процессе просмотра можно визуально оценить параметры настройки печати: размеры полей, масштаб, ориентацию бумаги и другие параметры печатаемой формы. Это позволит оптимально расположить печатаемую форму на листе бумаги.

Для форм с числом листов больше одного, есть возможность постраничного просмотра и нумерации листов. Программа оптимально выполнит постраничную разбивку.

В верхней части окна просмотра формы расположена дополнительная панель инструментов режима просмотра:

(Щелкните мышью по тем частям картинки, по которым хотите получить справку).

Для быстрого перехода на нужную страницу достаточно дважды щелкнуть левой кнопкой мыши на номер страницы в строке статуса. Появится диалог перехода на страницу.

Кроме того, в режиме предварительного просмотра можно произвести любые настройки печати. Вы можете установить масштаб, формат бумаги, выбрать печать части документа, задать ориентацию и колонтитулы к документу. При этом все настройки можно сохранить как настройки по умолчанию для этого бланка.

Для выхода из режима предварительного просмотра нажмите кнопку Закрыть.

См. также
Настройка печати
Печать


Обновить содержимое

Работа с таблицами

Таблица отображает статическую информацию. Ее содержимое может устареть, если информация, по которой строится таблица, изменилась. Большинство таблиц поддерживают операцию обновления содержимого. Для того чтобы обновить окно таблицы надо сделать одно из следующих действий:

·нажать кнопки [image] на панели инструментов;

·нажать клавишу <F9>.

Обновление информации работает в разных таблицах и позволяет получить изменения, сделанные другими пользователями на других компьютерах в сети.


Передать в другую программу

Работа с таблицами

Если возникает задача передать содержимое таблицы в другую программу, то это можно сделать разными способами. В большинстве таблиц можно выбрать контекстный пункт меню «Отправить в...». Программа сформирует файл во временной папке и затем запустит связанную с ним программу.

Но, вне зависимости от таблицы, всегда можно воспользоваться буфером обмена. После того, как Вы скопируете нужные записи таблицы в буфер обмена, их можно будет вставить в любую другую программу, например в Microsoft Excel или Microsoft Word. При вставке записей колонки отделяются символом табуляции, а строки — переносом каретки.


Бланки документов

Бланки документов программы Инфо-Предприятие предназначены для создания и печати первичных документов и отчетов произвольной формы. Для удобства, бланки разделены условно на три категории — отчетные бланки, первичные бланки и прочие бланки. Категория бланка указывается в параметрах бланка.

Исходя из категории бланка, он появляется при выборе разных пунктов меню. Список первичных бланков доступен на заполнение при выборе пункта «Операции | Первичные формы», а список отчетных бланков при выборе «Операции | Отчетные формы» стандартного меню. Бланки третьей группы не входят ни в один из списков, однако, могут быть выбраны из пункта главного или контекстного меню либо запускаться при выполнении алгоритма на внутреннем языке.

Сформированный отчетный бланк может быть сохранен в базе данных в виде документа. Впоследствии его можно вызвать на просмотр и редактирование.

После выбора этих пунктов меню появится список бланков, где необходимо выбрать тот бланк, с которым Вы хотите работать. После выбора бланка Вы перейдете к его заполнению.

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

Для того чтобы отредактировать нужный бланк, можно выбрать пункт «Разработка | Бланки» стандартного меню. Появится список всех бланков, присутствующих в программе и при выборе бланка Вы попадаете в редактор бланков. Отредактировать алгоритм расчета бланка, который в данный момент заполняется, можно выбрав пункт контекстного меню Разработка или нажав <Ctrl>+<F2>.

Для того чтобы добавить уже созданный бланк в программу, достаточно находясь в списке бланков выбрать пункт меню «Файлы | Импорт из» и выбрать соответствующий файл. После этого название бланка автоматически добавится в список бланков (если Вы его не увидели сразу, попробуйте воспользоваться поиском, возможно, он находится на другой закладке). Программа Инфо-Предприятие помимо бланков своего формата, имеющего расширение frm, поддерживает импорт бланков из других форматов.

См. также
Выбор бланка из списка
Заполнение бланка
Редактор бланков


Выбор бланка

Таблица выбора бланка появляется при заполнении первичного или отчетного документа.

Все бланки в программе Инфо-Предприятие разделены на разделы. Список бланков представляет собой таблицу с закладками, соответствующими разделам бланков. При выборе нужной закладки на экране появится список бланков из выбранного раздела. Если все разделы не помещаются на экране, то справа от закладок появятся кнопки [image] , с помощью которых можно перелистывать закладки. Перемещаться между закладками можно и при помощи клавиатуры, нажимая клавиши Я и а. Перемещаться между строками списка можно с помощью клавиш б и в.

При работе со списком бланков из меню «Операции | Первичные формы» или «Операции | Отчетные формы» после выбора бланка Вы перейдете к его заполнению.

Перед началом работы со списком отчетных форм (из меню «Операции | Отчетные формы»), необходимо выбрать период, за который будет предоставляться отчет. Период выбирается в левом верхнем углу панели управления. В зависимости от выбранного периода, какие-то формы будут скрыты. Это зависит от того, используется ли форма по-месячно или по-квартально, действует ли она или отменена и т.п.

Для смены периода можно воспользоваться мышью или нажать клавишу <F2>. В появившемся списке можно перемещаться с помощью клавиш б и в. Переключиться на другой год можно также с помощью кнопок внизу списка.

Все отчетные формы в программе Инфо-Предприятие разделены на разделы. Список отчетных форм представляет собой таблицу с закладками, соответствующими разделам отчетных форм. При выборе нужной закладки на экране появится список отчетных форм из выбранного раздела. Если все разделы не помещаются на экране, то справа от закладок появятся кнопки [image] , с помощью которых можно перелистывать закладки. Перемещаться между закладками можно и при помощи клавиатуры, нажимая клавиши Я и а. Перемещаться между строками списка можно с помощью клавиш б и в.

Список имеет следующие колонки (некоторые из них могут отсутствовать):

·Слева от формы может стоять флажок [image]. Он означает, что отчетный документ уже был сформирован. Чтобы открыть сформированный документ нужно щелкнуть по дате формирования (см. ниже).

·Форма — название отчетной формы.

·Срок — дата истечения срока сдачи отчетной формы. Если у формы нет определенного срока сдачи, здесь ничего не будет стоять. Если срок попадает на праздничный день (по календарю), то он переносится на следующий за ним рабочий день.

·Кор — номер корректировки. При первичной сдаче будет отображаться 0 или ничего не будет стоять.

·Сформирован — дата, когда был сформирован документ. Щелчком мыши по значку [image] можно открыть сформированный документ на редактирование. Щелчком мыши по значку [image] можно удалить сформированный ранее документ.

·Файл — сформированный файл формы в электронном виде. Щелчком мыши по значку [image] можно открыть диалог сохранения файла.

Щелкнув мышью по названию нужной формы или нажав клавишу <Enter> на выбранной форме Вы перейдете к его заполнению.

В верхнем левом углу находится кнопка [image], нажав на которую можно открыть настройку списка отображаемых отчетных форм и скрыть не используемые Вами.

Если Вы не можете отыскать бланк или не знаете в каком он разделе, то лучше воспользоваться поиском, не забыв указать в опциях поиска по всем закладкам. Но помните, что поиск в списке первичных документов будет искать бланк только среди бланков первичных документов. А поиск в списке отчетных только среди отчетных. Часть бланков может быть скрыта в данной конфигурации программы. Чтобы показать все бланки, включая и скрытые, воспользуйтесь пунктом контекстного меню Показать скрытые бланки.

При необходимости, можно отфильтровать список бланков, показав горящие — бланки, для которых подходит срок сдачи. Для этого используется контекстный пункт меню Только горящие бланки. Настроить эту функцию можно щелкнув по колонке Срок. В появившемся диалоговом окне указывается:

·Выделять бланк красным, если подходит срок сдачи — горящие бланки будут подсвечены красным цветом.

·За ... дней до окончания срока сдачи — указывается число дней.

При использовании функции Только горящие бланки бланки, по которым срок сдачи уже истек, отфильтрованы не будут. Однако при снятии фильтра они по- прежнему будут подсвечиваться красным.

См. также
Выбор бланка первичного документа
Работа с таблицами


Заполнение бланка

Заполнение бланка документа

Процесс заполнения бланка разделен на два этапа. Вначале надо ввести все необходимые данные в поля ввода бланка, а затем сформировать и распечатать готовый документ.

Переходить к следующей графе ввода можно при помощи <Enter>. Заполнив последнюю, Вы автоматически запустите бланк. Можно перемещаться между графами ввода посредством клавиш <Tab> для перехода к следующей и <Shift>+<Tab> для перехода к предыдущей. Перемещаться между графами ввода можно при помощи стрелок <Я> <а>. Если включена опция Переход между графами по стрелкам в настройках редактора, курсор переместится к ближайшей графе слева, сверху, снизу и справа соответственно. Если эта опция выключена, стрелки будут работать также как и клавиши <Tab> и <Shift>+<Tab>.

Вы можете прокручивать бланк на экране, нажав <Ctrl> и одну из стрелок <Я> <а>.

Бланк может выбираться из списка бланков, вызываться непосредственно из главного меню или вызываться контекстно на основе выбранной записи какого-либо журнала. Если бланк не имеет полей ввода, то сразу после открытия он автоматически запускается на перерасчет.

После расчета документа, но до его печати в графы ввода можно вносить изменения. Иногда бывает удобно откорректировать полученный программой результат.

Заполненный документ Вы можете сохранить в журнале. Для этого выполните одно из следующих действий:

·Нажмите с помощью мыши кнопку [image] на панели инструментов;

·Выберите пункт «Файлы | Сохранить» главного меню.

Если Вы не сохранили документ одним из описанных выше способов, но внесли изменения в него, то при закрытии окна документа программа сама предложит Вам сохранить документ в журнале.

Если есть необходимость внести изменения в документ непосредственно перед его печатью, то для этого надо выполнить одно из следующих действий:

·Нажать кнопку [image] на панели инструментов;

·Выбрать пункт «Правка | Изменить» главного или Изменить контекстного меню;

·Нажать клавишу <F4>;

Вы перейдете в режим редактирования документа, в котором можете сделать любые изменения.

Заполненный документ можно сохранить в одном из следующих форматов:

·Архивный документ — сохраняет для последующего просмотра и редактирования средствами программы;

·Документ Microsoft Word — сохраняет в формате Microsoft Word, также его можно открыть в Libre Office;

·Документ Microsoft Excel — сохраняет в формате Microsoft Excel, также его можно открыть в Libre Office;

·Документ PDF (рекомендуется) — сохраняется в формате Acrobat Reader. Это наиболее правильный формат для последующего хранения и печати документов;

·Web-страница — сохраняет в формате HTML с возможностью вложения документа в электронное письмо;

·Текст в формате RTF — сохраняет в формате WordPad;

·Рисунок в формате PNG — сохраняет в виде рисунка;

Для этого, находясь в бланке, выберите пункт меню «Файлы | Экспорт в...». Появится диалог сохранения файла. Выберите в нем файл нужного типа и нажмите Сохранить. Для сохранения в форматах Word, Excel, PDF и Html есть более быстрый способ — воспользовавшись пунктом контекстного меню Отправить в.

При помощи пункта Отправить в документ можно отправить по электронной почте. Отправка осуществляется согласно настройкам отправки почты с использованием шаблона, указанного в личных предпочтениях, в меню программы «Сервис | Персональные настройки» на закладке «Общие» кнопка <Личные предпочтения> (личные предпочтения в Бухгалтерии и личные предпочтения в Торговом складе различаются интерфейсом). При этом будет или вызвана почтовая программа по умолчанию, или документ будет отправлен напрямую на почтовый сервер. Если же в настройках указан режим отправки напрямую, откроется окно отправки бланка по почте.

Любой бланк может иметь дополнительные настройки, с помощью которых можно настраивать ход вычислений. Изменить их можно выполнив одно из следующих действий:

·Нажать кнопку [image] на панели инструментов;

·Кликнуть левой кнопкой мыши по надписи [image] справа в строке статуса;

·Выбрать пункт «Правка | Настроить» главного или Настроить контекстного меню;

·Нажать клавишу <Alt>+<Enter>.

При работе под Администратором бланк имеет дополнительные пункты меню:

·Настроить права доступа — позволяет настроить права доступа к бланку.

·Разработка — открывает бланк в режиме разработки

См. также
Журнал документов
Печать


Запуск бланка

Запуск бланка, операции или отчета

Если бланк содержит поля ввода, то после их заполнения его надо запустить на пересчет. Это можно сделать с помощью одного из следующих действий:

·нажав кнопку [image] на панели инструментов;

·нажав комбинацию клавиш <Ctrl>+<Enter> или клавишу <F9>;

·выбрав пункт контекстного меню Старт.

Перед тем как начать обработку расчетной части программа проверит правильность введенных данных. Если в каком-то вводном поле содержится ошибка, то программа сообщит об этом, процесс будет остановлен и курсор окажется в той графе ввода, в которой оказалось неверное значение. Также, в процессе расчета программа может затребовать ввода дополнительных данных.

Во время обработки расчетной части бланка в строке статуса программы (нижняя строка окна программы) появится синий бегунок, отображающий ход выполнения расчетов. Справа от него будет указываться, что в данный момент делает программа. В процессе обработки меню и все кнопки панели управления будут недоступны, за исключением кнопки стоп [image], нажав которую можно прервать расчет бланка. К этому же результату приводит нажатие <Esc>.


Сохранение бланка в формате Excel

Рассчитанный бланк документа можно сохранить в формате Microsoft Excel или Libre Office. Для этого надо выбрать контекстный пункт меню «Отправить в | Microsoft Excel». Программа сохранит документ во временной папке и затем запустит с ним Excel.

Альтернативный способ. Для этого надо выбрать пункт меню «Файлы | Экспорт в...» и в диалоге сохранения файла выбрать тип файла Документ Microsoft Excel. По умолчанию программа предложит сохранить таблицу в каталоге выходных документов и подставит в качестве имени файл бланка. Но путь можно указать свой.

См. также
Настройки экспорта


Сохранение бланка в формате Word

Рассчитанный бланк документа можно сохранить в формате Microsoft Word или Libre Office. Для этого надо выбрать контекстный пункт меню «Отправить в | Microsoft Word». Программа сохранит документ во временной папке и затем запустит с ним Word.

Альтернативный способ. Для этого надо выбрать пункт меню «Файлы | Экспорт в...» и в диалоге сохранения файла выбрать тип файла Документ Microsoft Word. По умолчанию программа предложит сохранить doc-файл в каталоге выходных документов и подставит в качестве имени файл бланка. Но путь можно указать свой.

См. также
Настройки экспорта


Сохранение бланка в формате PDF

Рассчитанный бланк документа можно сохранить в формате Acrobat Reader. Это наиболее правильный формат для последующего хранения и печати документов.

Чтобы сделать это надо выбрать контекстный пункт меню «Отправить в | Документ PDF». Программа сохранит документ во временной папке и затем откроет его.

Альтернативный способ. Для этого надо выбрать пункт меню «Файлы | Экспорт в...» и в диалоге сохранения файла выбрать тип файла Документ в формате PDF. По умолчанию программа предложит сохранить документ в каталоге выходных документов и подставит в качестве имени файл бланка. Но путь можно указать свой.

См. также
Настройки экспорта


Сохранение бланка в виде рисунка

Рассчитанный бланк документа можно сохранить в виде картинки. Для этого надо выбрать пункт меню «Файлы | Экспорт в...» и в диалоге сохранения файла выбрать тип файла Рисунок в формате PNG. По умолчанию программа предложит сохранить картинку в каталоге выходных документов и подставит в качестве имени файл бланка.

Многостраничные документы сохраняются в виде нескольких файлов картинок по числу страниц. Вторая, третья и т.д. страницы будут записаны в файлы, на конце которых число _1, _2, _3 и т.д.

Качество и размер файла рисунка зависят от опции Ширина (качество) рисунков в настройках экспорта.

См. также
Настройки экспорта


Отправка бланка по почте

Перед отправкой документа по почте необходимо заполнить параметры письма:

Кому — электронный адрес получателя письма.

Тема — тема письма. По умолчанию сюда подставляется название документа.

Ниже заносится текст письма. Текст письма сохраняется и может быть использован в дальнейшем для отправки писем.

После заполнения данных нажмите <OK>.

См.также
Настройки экспорта
Настройка отправки почты


Журнал документов

Входные поля сформированного документа могут быть сохранены в журнале для последующего использования. Для этого необходимо в параметрах бланка установить опцию Графы ввода сохранять в журнале документов.

Так как в журнале сохраняются только вводные графы, то в большинстве случаев для получения документа на основе журнала нужны еще и остальные данные программы. Когда журнал вызывается в течение текущего года работы и на одной и той же базе данных, то это всегда выполняется. Если же требуется сохранить в журнал документ, который потребуется использовать автономно, то надо использовать Архивные документы.

Вызвать журнал к определенному бланку можно также и во время заполнения бланка, нажав на панели инструментов кнопку [image], выбрав из главного меню пункт «Файлы | Открыть» или нажав <F5>.

При просмотре журнала документов к выбранному Вами бланку существует возможность удаления, добавления документа, работа с буфером обмена, сортировка, поиск записи, замена и другие действия.

Специальное поле Время показывает время, когда запись была добавлена в журнал.

Замечание!

Тем, кто настраивает бланки: при изменении в визуальной части бланка имен входных полей надо помнить, что в этом случае журнал может оказаться непригодным для использования с таким бланком, потому что в нем останется информация для старого имени поля. В новое имя поля информация из журнала загружаться не будет.

См. также
Редактирование журнала аналитики
Заполнение бланка документа
Работа с таблицами


Изменить бланк перед печатью

Для того, чтобы изменить бланк перед печатью надо выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Изменить» главного или Изменить контекстного меню;

·нажать клавишу <Enter> или <F4>.

Бланк перейдет в режим редактирования, где можно изменять содержимое любых граф. После правки его можно распечатать или сохранить в виде архивного документа. Архивные документы предназначены для сохранения рассчитанного бланка в файле для последующей печати.

Архивный документ может быть использован в следующих случаях:

·Когда надо сохранить документ или отчет для будущего использования. Бланк, который долго рассчитывался можно всегда сохранить в виде архивного документа и в последующем быстро посмотреть или распечатать. Архивный документ можно просмотреть, когда под рукой нет основной базы данных.

·Когда надо передать сформированный документ третьему лицу. Например, послать по почте.

·Когда надо откорректировать вид документа. Так как при редактировании архивного документа позволяется изменять содержимое и выводных граф, то это может оказаться удобным для изменения итоговых сумм в отчете, и т.д.

Кроме того, Вы можете сохранять документы в формате Microsoft Word, Microsoft Excel и других форматах.

Замечание!

Архивный документ не сохраняет диаграммы и рисунки. Используйте для этого экспорт в Excel, Word и другие форматы.


Настройки экспорта

Для разных вариантов экспорта существуют свои настройки:

Microsoft Word, Microsoft Excel, Документ PDF

Выводить диалог настроек печати при экспорте таблиц — перед формированием файла будет выведен диалог настроек, где можно будет задать масштаб, поля, ориентацию страницы и другие параметры.

Графический файл

Ширина (качество) рисунков — определяет ширину рисунка (в пикселях) при сохранении документов. Чем больше указанное здесь значение, тем качество рисунка выше, но и размер файла больше. Значение Авто означает, что ширина рисунка будет равна ширине рабочего стола (экрана) компьютера.

По почте

Отправка по почте доступна как для документов, так и для таблиц (табличных отчетов, журналов и справочников). Следующие опции определяют формат файлов, которые будут сформированы как вложения в письмо:

Формат файлов документов, Формат файлов таблиц.

Настройки почты — вызывает диалог настроек почты.

После заполнения данных нажмите <OK>.


Дополнительные сведения

Встроенные отчеты

Встроенные отчеты программы Инфо-Предприятие позволяют обработать данные и вывести результаты в табличной форме с активными ячейками.

Для вызова списка существующих отчетов можно воспользоваться пунктом меню «Отчеты | Отчеты». После выбора этого пункта меню появится список отчетов, где необходимо выбрать тот отчет, с которым Вы хотите работать.

Некоторые отчеты могут вызываться непосредственно из главного меню. Для этого в редакторе меню указывается тип пункта Отчет, а в действии задается имя файла отчета.

Для задания периода, за который формируется отчет, используется окно в левом верхнем углу панели управления:

Для смены периода можно воспользоваться мышью или нажать клавишу <F2> (или <Alt>+<F2> для указания точных дат). В появившемся списке можно перемещаться с помощью клавиш б и в. Переключение на другой год происходит автоматически, но можно и вручную с помощью клавиш Я и а.

Если отчет нужно сформировать за период отличный от предложенного в списке, выберите вариант «Указать даты вручную» или нажмите <Alt>+<F2> для указания точных дат. В этом случае дату начала период и дату окончания можно внести в отдельных графах:

При этом надо учитывать, что программа обрабатывает все операции на дату начала указанного периода и позже ( >= Начальная дата ), но раньше даты окончания периода ( < Конечная дата ). Например, чтобы выбрать все операции за I квартал 2009 года надо положить начальную дату 01.01.2009, а конечную дату 01.04.2009. Т.е. конечная дата периода должна быть на один день больше даты последней операции, которая будет обработана в отчете.

В графах ввода дат можно использовать клавишу <F2> для подстановки даты из календаря, клавишу <Enter> для того, чтобы применить изменения даты и пересчитать отчет и клавишу <Esc> для отмены изменений.

Период может быть единым на все отчеты или свой для каждого отчета. За это отвечает переключатель под графой выбора года. Для смены варианта достаточно щелкнуть мышью по надписи.

При старте отчета программа может запросить какие-либо входные параметры отчета. Если это не случилось, их можно изменить выполнив одно из следующих действий:

·Нажать кнопку [image] на панели инструментов;

·Выбрать пункт «Правка | Настроить» главного или Настроить контекстного меню;

·Нажать клавишу <Alt>+<Enter>;

Отчет может быть редактируемым. Вы можете редактировать, удалять записи из отчета, пользоваться буфером обмена. И все выполняемые в отчете действия будут отражаться на реальных данных. При выборе записи отчета, с помощью пункта Перейти в журнал контекстного меню можно переходить в редактор журнала к этой записи для продолжения ее редактирования. А с помощью пункта Выполнить открывается доступ к контекстному меню этого журнала. Возможность редактировать отчет задается при создании отчета.

Некоторые отчеты могут содержать дополнительные колонки. Они имеют в левом верхнем углу кнопку [image] нажав на которую откроется окно настроек колонок таблицы.

На основе данных отчета может быть построена диаграмма. Для этого выделите в таблице необходимые ячейки и выберите пункт главного меню «Сервис | Диаграмма» или контекстного меню Диаграмма.

Отчет можно сохранить в одном из следующих форматов:

·Документ Microsoft Word — сохраняет в формате Microsoft Word, также его можно открыть в Libre Office;

·Документ Microsoft Excel — сохраняет в формате Microsoft Excel, также его можно открыть в Libre Office;

·Документ PDF — сохраняется в формате Acrobat Reader;

·Web-страница — сохраняет в формате HTML;

·Текст в формате RTF — сохраняет в формате WordPad;

Для этого выберите пункт меню «Файлы | Экспорт в...». Появится диалог сохранения файла. Выберите в нем файл нужного типа и нажмите Сохранить. Также можно воспользоваться пунктом контекстного меню Отправить в, который передает содержимое отчета в соответствующую программу.

Для более комфортного анализа данных существует связь отчетов. Отчеты связаны по принципу: один отчет является детализацией (расшифровкой) другого. В этом случае, при выборе ячейки или строки основного отчета программа предложит расшифровать значение ячейки и вызывает другой отчет. Например, при выборе строки обороной ведомости, соответствующей какому-либо счету, программа предложит сделать карточку счета.

Разработка отчетов

В программе можно не только получать отчеты, но и изменять существующие, алгоритм их расчета, а также создавать совершенно новые отчеты. Для редактирования списка отчетов достаточно воспользоваться пунктом меню «Установка | Отчеты». Появится список отчетов, присутствующих в программе и при выборе нужного отчета Вы попадаете в редактор отчета. Изменить алгоритм работы отчета, с которым в данный момент происходит работа, можно выбрав пункт Разработка из контекстного меню или нажав <Ctrl>+<F2>.

При работе под Администратором в отчете также доступен пункт контекстного меню Настроить права доступа — позволяет настроить права доступа к отчету.

Отчет состоит из заданных атрибутов, определяющих вид таблицы, и алгоритма на внутреннем языке программы Инфо-Предприятие, который выполняет вычисления и выводит результат на экран. Для вызова диалога настройки атрибутов отчета можно воспользоваться пунктом Параметры отчета контекстного меню, если находиться в окне редактора текста отчета. Принцип работы алгоритма лучше рассмотреть на конкретном примере.

Алгоритм расчета может зависеть от каких-либо входных параметров. Например, при запуске движения средств по счету, программа должна запрoсить код счета. Поэтому отчеты могут иметь диалог входных параметров, который задается непосредственно в тексте алгоритма отчета.

Отчеты могут быть многоуровневыми. Они представляют собой сводную таблицу, в которой при необходимости получить более детальный анализ по строке (столбце) пользователь нажимает на заголовок строки (столбца) и входит в подуровень отчета.

Стоит отметить, что отчеты выполняются в транзaкциях, обеспечивающих заморозку данных на момент старта отчета. Вызываемый для расшифровки отчет работает в той же транзaкции, что и исходный и обрабатывает те же данные, даже если на данный момент они уже изменились. Редактирование данных в отчете происходит в той же транзaкции, в которой оно делается обычно.

См. также
Простейший отчет
Выбор отчета из списка
Редактор отчетов


Встроенные отчеты

Выбор отчета

Таблица выбора отчета появляется при заполнении отчета или при вызове списка отчетов на редактирование.

Все отчеты в программе Инфо-Предприятие разделены на разделы. Список отчетов представляет собой таблицу с закладками, соответствующими разделам отчетов. При выборе нужной закладки на экране появится список отчетов из выбранного раздела. Если все разделы не помещаются на экране, то справа от закладок появятся кнопки [image], с помощью которых можно перелистывать закладки. Перемещаться между закладками можно и при помощи клавиатуры, нажимая клавиши Я и а.

Если Вы не можете отыскать отчет или не знаете в каком он разделе, то лучше воспользоваться поиском, не забыв указать в опциях поиска по всем закладкам. Часть отчетов может быть скрыта в данной конфигурации программы. Чтобы показать все отчеты, включая и скрытые, воспользуйтесь пунктом контекстного меню Показать скрытые отчеты.

При работе со списком отчетов из меню «Операции | Отчеты» после выбора отчета Вы запустите отчет на выполнение.

При выборе пункта меню «Разработка | Отчеты» в списке отчетов можно выполнять следующие действия, используя клавиатуру, контекстное меню или панель управления:

Создание нового отчета — происходит при добавлении записи в таблицу. После чего появится диалог редактирования заголовка нового отчета. После задания заголовка и нажатия <OK> новый бланк будет добавлен к списку и можно будет приступить к его редактированию.

Также можно воспользоваться пунктом меню Создать копию для создания копии отчета, на котором находится курсор.

Удаление отчета — происходит при удалении записи из таблицы. Перед удалением появится подтверждение: Удалить отчет такой-то ?. Нажмите Да для удаления.

Редактирование заголовка отчета — происходит при редактировании записи таблицы. Появится диалог редактирования заголовка отчета. Там можно изменить название отчета, раздел, к которому он принадлежит и т.п.

Переместить отчет вверх или вниз в списке — можно при помощи перемещении строк таблицы. Порядок отчетов внутри раздела может быть произвольным.

Изменить название текущего раздела — можно при помощи пункта Название раздела контекстного меню. Появится диалог, в котором указывается новое имя раздела.

Удалить текущий раздел — можно при помощи пункта Удалить раздел контекстного меню. Программа спросит: Удалить раздел из списка ?. Нажмите Да для удаления.

Внимание!

Все отчеты из текущего раздела будут удалены.

Список отчетов при редактировании вдобавок к названию отчета содержит имя файла, содержащего отчет и дату последнего изменения.

Найти текст в отчетах — позволяет отыскать нужный текст среди всего списка отчетов.

Показать скрытые отчеты — включает отображение отчетов, не поддерживаемых лицензией на программу.

Настроить лицензии — для данного выбранного отчета позволяет указать, в каких модулях он должен показываться, а в каких нет. Опция доступна только под Администратором программы.

Можно воспользоваться импортом/экспортом файла отчета. Для этого, находясь в списке, выберите пункт меню «Файлы | Импорт из...» или «Файлы | Экспорт в...». Это бывает удобно для быстрой переброски файлов между базами данных.

См. также
Работа с таблицами


Журналы аналитики

Редактирование журнала аналитики

Вызвать окно редактирования журнала можно разными способами. Обычно оно вызывается через пункт главного меню.

В окне или диалоге редактирования журнала отображается его содержимое. Вид окна зависит от конкретного списка полей, настройки журнала и самого окна, а также того, является ли журнал одинарным или это связанный основной журнал — журнал детализации. В последнем случае окно редактора журнала операций разделено на две части:

·Верхняя часть окна журнала предназначена для отображения операций (записей) основного журнала;

·Нижняя часть окна предназначена для отображения списка деталей, относящихся к той операции (записи), которая в данный момент выделена в верхней части окна. Если запись имеет несколько списков деталей, то справа в строке статуса будет гореть надпись Детализация такая-то, щелкнув по которой можно выбрать отображаемую детализацию.

При редактировании журнала можно использовать все стандартные функции работы с таблицей, поиск и замену записей в нужной колонке, сортировку, фильтрацию, работать с буфером обмена и т.п. Можно создавать копии существующих записей с помощью контекстного меню Создать копию.

Записи могут быть отсортированы в порядке возрастания или убывания одной или нескольких колонок. Возможна сортировка и записей в дополнительной таблице и журнала детализации. Она делается аналогично и запоминается. Таким образом, при просмотре записей дополнительная таблица будет отсортирована по этим полям.

По любой колонке возможен контекстный поиск. Например, если выделить колонку Клиент журнале накладных и последовательно набирать первые буквы нужной фирмы, то курсор будет последовательно становиться на первого клиента, начинающуюся с первой введенной буквой, с первыми двумя буквами, с первыми тремя и т.д. При этом внизу таблицы появится надпись Поиск, где будут видны уже введенные начальные буквы фирмы. Если перед набором первой буквы нажать * (звездочку), то поиск будет по словам, о чем программа сообщит в строке статуса в виде строки Слов. В этом режиме перебираться будут не только первые буквы фразы, но и первые буквы слов, входящих в фразу. Если перед набором первой буквы нажать * (звездочку) еще раз, то поиск будет частичным, о чем программа сообщит в строке статуса в виде строки Част. В этом режиме перебираться будут не только первые буквы, но и буквы внутри слов.

Можно склеивать и разъединять соседние колонки в таблицах. Для этого надо выбрать колонку, нажав левую кнопку мыши, и, не отпуская, перетащить на соседний. При этом курсор мыши измениться на plus или на minus в зависимости от того, что происходит склейка или расклейка колонок.

Можно скрывать ненужные колонки и устанавливать порядок следования колонок. Для этого надо нажать на кнопку [image] в левом верхнем углу таблицы или клавишу <Ctrl>+<F10>. Появится окно со списком доступных для показа в таблице полей. Если поле отмечено флажком [image], то оно появляется в таблице редактирования журнала, если не отмечено, то оно будет скрыто. Аналогичное действие вызывает выбор пункта Скрыть в контекстном меню колонки. При помощи кнопок [image] и [image] в этом окне можно перемещать колонки в таблице.

Возможен обычный, не контекстный поиск, а также замена записи в журнале. Для этого необходимо выделить колонку для поиска при помощи мыши или клавиш <Ctrl>+<Я> или <Ctrl>+<а> и вызвать диалог поиска или замены записи. Если в выбранной колонке несколько полей, получившиеся после склейки колонок, то при поиске и замене будут просматриваться все поля, входящие в нее.

При редактировании журнала можно отфильтровать те записи, которые необходимо видеть. Для этого надо вызвать фильтр журнала. Фильтрация возможна для всех доступных к просмотру полей, вне зависимости, видно поле в таблице редактирования журнала или нет.

Для удобства работы можно создать два или более окна редактора журнала. Таким образом, можно просматривать и редактировать одновременно в нескольких местах журнала. Создать дополнительное окно редактора можно при помощи «Окна | Новое окно».

При щелчке левой кнопкой мыши по надписи oglavlenie внизу в строке статуса окна журнала появится диалог настройки вида журнала. То же самое можно сделать, нажав клавишу <Alt>+<Enter>.

Если у журнала есть оглавление в виде дерева, то слева от таблицы может быть размещено дерево групп, с помощью которого можно быстро перейти к требуемой группе справочника.

Если журнал связан с бухгалтерией, т.е. его записи отражаются в виде операций в журнале бухгалтерских операций, то у него появляется колонка связи (если связь журналов используется). Она — самая правая колонка в таблице. Если документ проведен в бухгалтерии, то у него в этой колонке стоит значок LINKPROV . Если щелкнуть левой кнопкой мыши по значку или нажать клавишу <Ctrl>+<Enter> — откроется бухгалтерская операция, связанная с этим документом. Если значка нет, то щелчком левой кнопкой мыши по этой колонке можно сформировать связанную с документом бухгалтерскую операцию (провести документ в бухгалтерии). Если нажать правой кнопкой мыши или нажать клавишу <Ctrl>+<Menu>, появится контекстное меню. С помощью него можно удалить бухгалтерскую операцию, после чего документ станет не проведенным.

В случае настройки выбора из типовой операции Вы сможете добавлять операции в журнал с использованием типовых операций. Тогда при добавлении операции появится вместо диалога редактирования новой записи появится диалог выбора из типовой операции, но при нажатии Вручную в этом диалоге Вы сможете добавлять записи и так.

См. также
Работа с таблицами
Редактирование записи журнала


Редактирование записи

Редактирование записи журнала

Диалог редактирования/добавления записи журнала разделен на две половины: слева показываются поля (колонки) журнала, справа вводятся значения этих полей. При помощи мыши или клавиш перемещения курсора можно перейти к редактированию нужного поля. Редактируемое поле выделяются цветом:

В процессе редактирования записи в диалоге могут появляться какие-то новые поля ввода или скрываться существующие.

У многих граф ввода справа есть кнопки (чтобы их не нажимать можно использовать клавишу <F2> или двойной клик левой кнопкой мыши по графе):

Кнопка | Действие
 | Позволяют выбрать и подставить значение графы из связанного с ней справочника, списка, подставить дату из календаря. Обычно в таких полях появляется текст «Введите для поиска» и для быстрого поиска элемента этого справочника можно ввести название связанной записи.
linkbutton | Кнопка связи появляется у графы, значение которой подставляется из справочника справа от кнопки [image] . По нажатию кнопки появляется или диалог редактирования связанной записи или меню функций. Если графа не содержит значения кнопка связи не показывается. Вместо нажатия кнопки связи можно использовать комбинацию <Ctrl>+<F2>
 | Появляется у полей ввода дат и целых чисел. Позволяет уменьшить (увеличить) значение поля.
 | Появляется только у поле ввода чисел. Вызывает встроенный калькулятор с возможностью подстановки значения в поле.
 | Появляется справа от полей, содержащих формулы расчета. Вызывает окно с макросами, которые могут использоваться в расчете.
 | Появляется справа от полей ввода электронного адреса. Вызывает почтовую программу для отправки электронного письма.
 | Появляется справа от полей ввода телефона. Вызывает функции телефонии.
 | Выводит информацию, связанную с данной графой.
 | Вызывают какие-либо расчеты или формы, связанные с графой.

Для перемещения между полями ввода используются следующие клавиши:

Клавиша | Функция
<вверх> | Перемещение между полями вверх без проверки значений полей
<вниз> | Перемещение между полями вниз с проверкой значений полей
<Ctrl>+<вправо> <влево> | Перемещение между столбцами, колонками полей (если более одного столбца)
<Tab> | Перемещение между полями вниз
<Shift>+<Tab> | Перемещение между полями вверх

Остальные клавиши используются внутри выделенных полей ввода.

Можно изменить ширину правой или левой части. Для этого надо навести курсор на разделительную линию между частями (он примет форму [image]), и перенести ее на нужное расстояние.

Диалог может содержать место для рисунка (справа от полей ввода). Чтобы загрузить рисунок нужно нажать правой кнопкой мыши по месту, где располагается рисунок, или нажать левой кнопкой мыши и использовать пункт контекстного меню Загрузить рисунок. Удаление рисунка осуществляется с помощью пункта контекстного меню Удалить рисунок. Ширина области рисунка также может быть изменена при наведении курсора на разделительную линию.

Если журнал имеет детализацию, то внизу диалога располагается таблица деталей, соответствующих редактируемой основной записи. В строке статуса таблицы может отображаться информация о записи. Если журнал отфильтрован по детализации, то слева в строке статуса появляется надпись Отфильтровано, что означает, что в окне детализации могут быть показаны не все детали, имеющиеся у этой записи. Для того чтобы показать все детали, надо дважды щелкнуть левой клавишей мыши по надписи.

С помощью флажка Выключена в левом нижнем углу диалога редактирования записи журнала можно выключить операцию (опция не отображается, если она отключена в настройках). Выключенная операция равносильна ее удалению, она не обрабатывается при формировании отчетов.

С помощью флажка Недоступна (флажок может быть скрыт, если отключена данная функция в параметрах базы) можно закрыть доступ к этой операции для изменения или просмотра пользователями с более низкими правами.

Внизу диалога левее кнопки <ОК> может отображаться кнопка <Выполнить>. С помощью нее можно вызвать контекстное меню по этому документу и выполнять какие-либо действия, например, печать документа. Левее этой кнопки будут располагаться кнопки частых действий (часто выбираемых пунктов контекстного меню), количество которых зависит от опции Макс.кол-во кнопок частых действий в настройках программы.

Если журнал поддерживает вложение ссылок, то справа от кнопки <Отмена> будет кнопка < attach >, с помощью которой можно добавить ссылку, настроить ссылки или перейти к ранее добавленным ссылкам.

После ввода всех необходимых данных нажмите <OK> для сохранения изменений. Кнопка <Отмена> позволяет отказаться от изменения записи. При этом если Вы что-то поменяли в диалоге и активна опция Спрашивать при отмене в диалогах в общих настройках в пункте меню «Установка | Настройки», то перед окончательным отказом программа спросит: В запись внесены изменения. Вы хотите выйти не сохраняясь ?.

Наличие кнопки <OK и след.> позволяет добавить запись в журнал и приступить к вводу следующей.

См. также
Редактирование журнала аналитики


Запись существует

Запись с таким кодом уже существует. Программа выдает предупреждение при добавлении записи в журнал. Возможные решения:

Заменить — существующая в журнале запись будет удалена, а ее место займет добавляемая запись.

Пропустить — не надо добавлять запись в журнал.

Изменить — вызовет диалог редактирования записи журнала. Там Вы сможете изменить добавляемую запись так, чтобы программа при добавлении не выдала бы такое сообщение.

Отмена — аналогична Пропустить, но отменяет все действия в случае, если добавляется не одна, а несколько записей.


При удалении записи

При удалении записи из справочника программа проверяет, выполнялись ли с этой записью какие-либо операции в журналах. Если это так, они должны быть соответствующим образом обработаны перед тем, как запись будет удалена. Это необходимо потому, что в журналах не могут быть операции с несуществующей записью. Программа выведет В журнале таком-то связанные с удаляемой записью операции и предложит варианты обработки связанных операций:

·Поменять на операции с другой записью.

·Удалить операции

·Убрать (обнулить) ссылки на удаляемую запись

Выберите нужный вариант и нажмите <OK>. Кнопка <Отмена> позволяет отказаться от удаления записи из справочника.

Если будет выбран вариант с заменой, появится диалог замены операций.

После выбора Удалить программа удалит спорные операции.

Вариант с обнулением ссылки на удаляемую запись появляется только в тех случаях, когда обнуление возможно.

См. также
Ссылочная целостность


Заменить операции

Диалог замены операций позволяет заменить в операциях всех существующих журналах ссылки на один объект ссылками на другой. Например, при удалении товара, по которому были отгрузки, программа предложит заменить в операциях этот товар другим товаром.

В появившемся диалоге в графе С записи указывается код объекта, операции с которым надо будет заменить, а в графе На запись указывается объект, на который надо заменить ссылки. Для выбора объекта можно воспользоваться кнопкой выбора [image] .

Значения полей С записи и На запись должны быть разными!

См. также
Удаление записи


Фильтр журнала

Фильтр журналов аналитики

Очевидно, что просмотр большого журнала операций будет крайне неудобен потому, что отнимает много времени. Вы можете выбрать из журнала группу операций, удовлетворяющих нужному Вам условию. Для этого нужно указать признаки отбора, т.е. задать фильтр журнала.

Для того чтобы вызвать фильтр, надо, находясь в окне редактирования журнала выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·нажать комбинацию клавиш <Ctrl>+<Ф> ( <Ctrl>+<A>);

·выбрать пункт «Сервис | Фильтр» главного меню.

На экране появится диалог установки фильтра.

В графе Запомнить настройки указывается список устанавливавшихся ранее фильтров. Вы можете выбрать нужный, использовать или отредактировать его. Кнопка [image] позволяет сохранить текущие условия фильтра. Если в момент сохранения в списке выбран какой-либо фильтр, то он будет переписан новыми условиями. Если нет, то новые условия добавятся. Вы можете ввести название для новых условий или положиться на программу — она сама придумает хорошее название. Выбрав сохраненное ранее условия фильтра и нажав кнопку [image] его можно удалить.

Вид диалога фильтра зависит от журнала, в котором он применяется. Например, в журнале Счета в окне настройки фильтра будут отображаться следующие закладки: Счета, Состав, Оплаты, где на закладке Счета задается шаблон полей шапки счета, а на закладках Состав и Оплаты — шаблоны полей одноименных детализаций. Фильтрация детализации означает, что надо показать те записи основного журнала, у которых есть записи детализации, удовлетворяющие этим условиям. Когда основной журнал отфильтрован по детализации, то в диалоге редактирования записи появляется надпись Отфильтровано, что означает, что в окне детализации могут быть показаны не все детали, имеющиеся у этой записи. Для того чтобы показать все детали, надо дважды щелкнуть левой клавишей мыши по надписи.

Шаблоны позволяют выделить группу сходных по написанию строк. Как правило, шаблоны содержат «*» (звездочку), обозначающую произвольное кол-во символов. В шаблоне может быть несколько символов «*». Также, в одном шаблоне может содержаться перечисление шаблонов, разделенных символом «;» (точка с запятой). Для выбора одного или нескольких шаблонов нужно нажать [image] (или дважды щелкнуть левой кнопкой мыши) в графе и отметить флажками необходимое. Шаблоны можно задавать и для не строковых полей. Тогда перед проверкой не строковое поле преобразуется к строке и проверяется по шаблону. У полей с подстановкой значения и у множеств можно воспользоваться выбором и подставить шаблон из списка.

Примеры

*2001* — означает, что строка должна содержать 2001.

2000;2001;2002 — означает, что строка должна равняться 2000, 2001 или 2001

Для всех закладок фильтра есть общие графы, такие как:

·Создал/Изменил позволяют указать условие на отображение операций созданных или отредактированных этим пользователем.

·Графа Дата изменений появляется при включении одной из опций — Показывать, когда создана/изменена операция или Включить протокол действий пользователей в параметрах базы данных. С помощью нее можно указать диапазон дат внесения изменений в данные.

·Ниже можно указать Цвет текста, Цвет фона отображаемых записей.

·Графа Проведен в бухгалтерии есть у тех журналов документов, которые могут быть проведены в бухгалтерии. С помощью неё можно наложить условие на то, проведена запись в бухгалтерии или нет.

·Графа Признак недоступности появляется при включении флажка Разрешить делать недоступными некоторые записи в параметрах базы данных. Она позволяет наложить условие на отображение доступных или не доступных записей.

·Признак выключения — используется для работы с выключенными операциями. Он может принимать три положения: * — фильтр никак не влияет на отображение, Только выкл.операции — отобразить только выключенные операции, Только вкл.операции — отобразить только включенные операции.

·Режим Игнорировать регистр — определяет игнорировать или нет различия между строчными и прописными буквами. Если режим отключен, то при фильтрации учитывается различие между строчными и прописными буквами. Например, если Вы задали для поля содержания: *иванов*, то строка содержащая Иванов найдена не будет. Если режим включен различие между строчными и прописными буквами при поиске не учитывается. Например, если для поиска задано *иВаНов*, то будут найдены строки содержащие Иванов, иванов, ИВанов и т.д.

·Режим Исключать выбранные — говорит фильтру исключать все операции, удовлетворяющие заданным условиям. Если же признак сброшен (по умолчанию), то в журнале операций показываются операции, которые удовлетворяют заданным условиям.

·Действие на отчеты. Если обычно фильтр влияет только на отображение информации, то после установки этого параметра программа просто не будет замечать те операции, которые не попали в условие фильтра, и все алгоритмы и отчеты будут формироваться только по отфильтрованным записям. По умолчанию признак не установлен, т.е. отчеты формируются без учета фильтра.

После того как будут заданы указанные параметры фильтра достаточно нажать <OK> чтобы условия фильтра были наложены на журнал. При этом внизу, в строке статуса редактируемого журнала, появится надпись Отфильтровано. Для того чтобы показать весь журнал достаточно дважды щелкнуть левой клавишей мыши по этой надписи, нажать кнопку <Сброс> и <ОК>.

Кнопка <Сброс> очищает поля диалога (убирает все условия фильтра).

Нажатие <Отмена> позволяет выйти из диалога редактирования фильтра без сохранения.

Кнопка <Фирмы> доступна только когда в базе ведется учет нескольких фирм и включена опция Показывать операции всех фирм в диалоге выбора фирмы.

Замечание!

При выходе из программы условия фильтрации сохраняются и в следующий раз, когда пользователь войдет в программу, условие фильтра останется таким, какое оно было перед выходом из нее.


Фильтр колонки

Кроме основного фильтра, в журналах есть фильтрация по значению выбранного столбца. Для этого щелкните правой кнопкой мыши по столбцу для вызова контекстного меню и выберите там «Фильтр колонки…». Откроется окно, содержащее все встречающиеся значения в этом столбце.

Для фильтрации надо выбрать один или несколько вариантов и нажать <ОК>. У некоторых полей добавляются варианты <пусто> и <не пусто>. Первый означает, что надо отобрать записи, у которых это поле не заполнено. А второй, наоборот, все записи, у которых в этом поле что-то занесено. Для числовых полей и полей типа дата вместо списка вариантов будет окно с заданием диапазона значений.

Для числовых полей или полей типа «дата» вместо окна со списком встречающихся значений откроется окно с указанием диапазона чисел или дат. В диапазоне можно указать только верхнюю границу или только нижнюю.

Чтобы отменить условие фильтрации надо в контекстном меню колонки выбрать «Сброс фильтра». Сбросится только ограничение, которое есть для выбранной колонки. Если есть еще колонки, для которых указывались условия фильтрации, журнал всё ещё будет отфильтрован. О наличии хотя бы одного условия фильтрации говорит надпись в строке статуса Отфильтровано. Для того чтобы гарантировано убрать все условия фильтрации надо дважды щелкнуть левой клавишей мыши по этой надписи для вызова диалога основного фильтра, и там нажать кнопку <Сброс> и <ОК>.

См. также
Фильтр журнала


Групповой выбор

Групповой выбор это способ ввода детализации (проводок), когда пользователь не вводит последовательно записи детализации, а работает с привязанным к детализации справочником. Такой режим выбора удобен тем, что не надо каждый раз при добавлении новой строчки в окно детализации лезть в связанный справочник, а можно непосредственно в этом связанном справочнике указывать выбираемые записи.

Например, есть журналы накладные, его детализация товары по накладным и привязанный к детализации журнал товары. То есть у товаров по накладной есть поле код, в которое подставляется код товара из журнала товары. При обычном вводе Вы последовательно добавляете товары в накладную. При добавлении товара Вы выбираете его код из справочника товаров и вводите другие параметры, например, количество этого товара в накладной. В режиме группового выбора работа строится иначе: при добавлении нового товара в накладную вместо диалога редактирования новой записи журнала товары по накладной появляется гибрид справочника товаров с журналом товаров по накладной. Слева идут присоединенные колонки из журнала товары по накладной, а справа — колонки из справочника товаров:

Здесь присоединенная колонка Кол (количество) и Сумма из журнала товары по накладной, остальные из справочника товаров. Присоединенная колонка отображает информацию о добавленных в накладную товарах. В примере товар Говядина в черносливе выбрали 3 кг (он подсвечен), а товар Окорочок запеченный в фольге не выбрали вовсе. Весь процесс редактирования детализации (списка товаров в накладной) проходит при указании выбираемого количества и суммы у товаров.

Редактирование привязанного к детализации справочника (в нашем примере справочника товаров) в режиме группового выбора отличается от просто редактирования справочника. Так, при выборе записи (по <Enter> или нажатии левой кнопки мыши) появляется не диалог редактирования записи (в нашем примере редактирования товара ), а диалог из связанной с ним детализации (в нашем примере диалог добавления товара в накладную). В нем пользователь указывает дополнительные параметры записи (в нашем примере это количество и сумма товара в накладной) и, после нажатия <OK> запись (товар) подсветится цветом. Это означает, что запись (товар) уже выбран в накладной.

Следующие комбинации клавиш действуют в таблице связанного журнала. Для удобства рассматриваются на конкретном примере:

Клавиша | Функция
<Enter> (или мышь) | Редактирование связанной записи детализации из товары по накладной
<F4> | Редактирование выделенной записи из справочника товары
<F8> или <Del> | Для подсвеченной записи — очистка количества (удаление товара из накладной)
 | Для не подсвеченной записи — удаление товара из справочника товаров
<F7> | Создание нового товара с справочнике товаров
<Shift>+<Enter> | Завершение работы с групповым выбором и возврат в окно редактирования (добавления) записи
<Ctrl>+<Ins> | Копирование выделенного товара из справочника товаров в буфер обмена
<Shift>+<Ins> | Вставка товара в справочник товаров
<Shift>+<Del> | Удаление выделенного товара из справочника товаров в буфер обмена

Также в таблице возможны все стандартные функции. Возможна и сортировка, но только по колонкам из связанного справочника (справочника товаров).


Добавить ссылку

Добавить (изменить) ссылку

Некоторые журналы и справочники позволяют прикреплять к записи ссылки на файлы или веб-страницы. Примерами таких ссылок могут быть: сканированные копии различных документов (договоров, коммерческих предложений, лицензий и сертификатов на товары и т.д), описания товаров, продуктов, услуг, дополнительные фото товаров и т.д.

С помощью этого окна можно добавить ссылку к текущей записи справочника или журнала. Заполните здесь:

Путь к файлу или адрес веб-страницы — ссылка на файл или на веб-страницу в сети интернет. С помощью кнопки [image] можно указать путь к файлу с помощью проводника Windows.

Замечание!

Если скопировать в буфер обмена адрес веб-страницы в адресной строке вашего Интернет-браузера, то при вызове этого диалога он сразу же подставится в графу Путь к файлу или адрес веб-страницы.

Описание — описание ссылки (например, «Договор», «Сертификат», «Ссылка», «Сертификат», «Описание», «Дополнительное фото» и т.п.). С помощью кнопки справа можно выбрать описание из предыдущих введенных значений.

После ввода данных нажмите <OK>.

Если ссылка уже добавлялась к этой записи, программа выдаст сообщение об ошибке: «Ссылка ... уже есть в списке».

Если указан путь к несуществующему файлу или веб-страница не открывается, программа выдаст предупреждение «Неверный адрес веб-страницы: ... Ошибка: .... Все равно добавить?».


Настроить ссылки

Некоторые журналы и справочники позволяют прикреплять к записи ссылки на файлы или веб-страницы. Примерами таких ссылок могут быть: сканированные копии различных документов (договоров, коммерческих предложений, лицензий и сертификатов на товары и т.д), описания товаров, продуктов, услуг, дополнительные фото товаров и т.д.

С помощью этого окна можно удалить или отредактировать ссылки текущей записи справочника или журнала.

Чтобы отредактировать ссылку надо выбрать (выделить) нужную запись в таблице и выполнить одно из следующих действий:

·выбрать пункт Изменить контекстного меню;

·выбрать кнопку <Изменить> внизу таблицы;

·нажать <F4>.

Появится диалог редактирования ссылки. С помощью него вносятся изменения.

Чтобы удалить ссылку сначала надо выбрать (выделить) нужную запись в таблице и выполнить одно из следующих действий:

·выбрать пункт Удалить контекстного меню;

·выбрать кнопку <Удалить> внизу таблицы;

·нажать <F8>.

Для закрытия таблицы нажмите <Закрыть>.


Журнал операций

Бухгалтерские операции

Журнал бухгалтерских операций — главный журнал программы. Операции этого журнала служат основным источником информации для бухгалтерских отчетов. Все документы при проведении их в бухгалтерии отражаются в виде операций этого журнала.

Для отражения хозяйственной деятельности используются записи в журнале, называемые бухгалтерскими операциями. Бухгалтерская операция может состоять как из одной, так и из нескольких бухгалтерских проводок. Она имеет дату, название и другие параметры.

Вызов журнала происходит при помощи пункта меню «Операции | Журнал». При вызове этого пункта появится окно из двух таблиц. Верхняя таблица содержит бухгалтерские операции, а нижняя — проводки, соответствующие операции, выделенной в верхней части. Переходить между верхней и нижней частью можно с помощью клавиши <Tab> или мыши. Вы можете изменять в этом окне, как сами операции, так и их проводки, в зависимости от того, в какой таблице находитесь.

Внешний вид журнала можно настроить нажав [image] Настроить вид в строке статуса или по кнопке [image] в левом верхнем углу таблицы. Следующие колонки отображаются в таблице операций:

·Дата — показывает дату операции

·Док — показывает краткое название и номер документа (или краткий комментарий).
Например пп 21 — платежное поручение N 21, ро 4 — расходный ордер N 4.

·Содержание — содержание или комментарий операции

·1-ая — показывает сумму первой проводки.

·Итого — показывает сумму всех проводок операции.

·Сумма — показывает сумму документа (появляется только для операций, сформированных от документа, т.е. имеющих флажок [image] справа).

·Выключена — показывает состояние операции. Выключенные операции не учитываются в отчетах.

·Недоступна — операция недоступна для изменения или просмотра пользователями с более низкими правами (флажок может быть скрыт, если отключена данная функция в параметрах базы).

·Ручн — показывает, были ли правки в автоматически сформированных проводках

а в таблице проводок:

·Дебет — код счета дебета проводки

·Кредит — код счета кредита проводки

·СУ — статья налогового учета проводки

·Количество/Цена — для количественно-суммовых проводок количество и цена

·Сумма — сумма проводки

·Выключена — показывает состояние проводки. Выключенные проводки не учитываются в отчетах.

·Ручн — показывает, были ли правки в автоматически сформированной проводке.

В зависимости от настроек некоторые колонки могут быть отключены, например колонки Выкл, Ручн, Док и Сумма в операциях.

При ведении налогового учета сумма налоговой проводки отображается только в том случае, если она отлична от суммы соответствующей бухгалтерской проводки. На экране это выглядит следующим образом:

21 700.25

НУ 2000.00

Здесь НУ означает сумму в налоговом учете.

Если справа от операции отображаются кнопки [image] или [image] , то нажав на них (с помощью мыши или с помощью комбинации клавиш <Ctrl>+<Menu> или <Ctrl>+<Enter>) можно вывести документ, по которому сформирована операция. Разница между ними в следующем:

Документы, появляющиеся по кнопке [image], регистрируются в списке типов документов. Список документов можно отредактировать, указав какие-то другие бланки документов, которые надо отображать при нажатии на эту кнопку. Многие документы получаются на основе бухгалтерской операции, поэтому, если изменить бухгалтерскую операцию, то изменится и документ. И наоборот, после редактирования бланка документа, его запуска и формирования бухгалтерской операции, произойдет замена операции исходной.

Документы, появляющиеся по кнопке [image], предопределены заранее разработчиками конфигурации (модуля). Они хранятся в отдельном журнале и связаны с бухгалтерскими операциями. При нажатии на кнопку появляется меню. В нем можно просмотреть, отредактировать (если есть соответствующие права доступа) и распечатать документ. Все связанные проводки будут изменяться при изменении связанного документа. В зависимости от прав доступа, проводки в операции, связанной с документом можно редактировать, удалять, можно добавлять новые проводки в операцию и менять все другие параметры операции.

Журнал может иметь сверху закладки, в которых указываются условия, по которым отображаются записи. На самой левой закладке Все, которая всегда присутствует, отражаются все операции журнала. Закладки получаются при фильтрации журнала.

При просмотре в строке статуса будет указатель на фильтрацию в журнале, например:

Отфильтровано Кредит 51

Программа отображает все отрицательные суммы в проводках или операциях красным, если иное не указано в настройках программы. Если проводка ошибочна (по тем или иным причинам) она также выделяется. Также выделяется и статья расхода.

В журнале бухгалтерских операций Вы сможете выполнять следующие действия:

Добавление новой операции — выполняется при добавлении записи в таблицу операций. После чего появится диалог выбора типовой операции. Вы сможете осуществлять ввод, как при помощи типовой операции, так и вручную.

Редактирование операции — происходит при редактировании записи таблицы операций. Появится диалог редактирования операции. После изменения данных и нажатия <OK> операция будет изменена.

Удаление операции — происходит при удалении записи из таблицы операций. Перед удалением операции появится подтверждение: Удалить бухгалтерскую операцию такую-то ?. Нажмите Да для удаления. При использовании связи удаление операции влечет за собой либо удаление документа, либо разрыв связи, в зависимости от параметров связи журналов.

Добавление новой проводки — выполняется при добавлении записи в таблицу проводок. Выберите операцию, в которую хотите добавить проводку и перейдите в таблицу проводок. В диалоге редактирования проводки укажите параметры новой проводки. После нажатия <OK> она добавиться к выбранной операции.

Редактирование проводки — происходит при редактировании записи таблицы проводок. Выберите операцию, в которой хотите изменить проводку, перейдите в таблицу проводок и выберите проводку. В диалоге редактирования проводки внесите изменения в проводку. После нажатия <OK> проводка будет изменена.

Удаление проводки — происходит при удалении проводки из таблицы проводок. Выберите операцию, в которой хотите удалить проводку, перейдите в таблицу проводок и выберите проводку. Перед удалением проводки появится подтверждение: Удалить проводку такую-то ?. Нажмите Да для удаления.

Фильтрация операций происходит при вызове фильтра [image], в контекстном меню доступна контекстная фильтрация. Если с заданным условием уже фильтровались операции, достаточно выбрать сохранившуюся закладку (для режима Закладки с фильтром журнала).

Переставлять местами операции — поддерживается как перестановка операций внутри даты, так и переход в следующую или предыдущую дату. В последнем случае будет выдан дополнительный запрос «Будет изменена дата бухгалтерской операции, продолжить?».

Кроме того, в контекстном меню доступные следующие пункты:

Связанные документы — если выделенная бухгалтерская операция связана с какими-то другими документами (например выделенная запись платежного поручения оплачивает какой-то счет), будет выведен список таких документов с возможностью перехода к ним.

Сторнировать операцию — создает новую операцию на основе выделенной бухгалтерской операции. Новая операция будет копией исходной, но все суммы будут иметь другой знак (с минусом).

Подсветка — позволяет задать цвет фона выделенной записи (или нескольких выделенных записей)

В настройках можно убрать разделение на таблицу операций и проводок и показывать все (и операции и их проводки) в одной таблице. Для этого надо переключить отображение на Проводки вместе с операциями в общих настройках программы. Тогда на экране будет только одна таблица с колонками:

·Дата — показывает дату операции

·Док — показывает краткое название и номер документа (или краткий комментарий), например пп 21 — платежное поручение N 21.

·Содержание — содержание или комментарий операции

·Дебет — код счета дебета проводки

·Кредит — код счета кредита проводки

·Сумма — сумма проводки, для количественно-суммовых проводок еще и количество и цена

·Доп — показывает состояние проводки ( Включена или Выключена )

В этом режиме возможна еще и сортировка колонок по возрастанию и убыванию для колонок Содержание, Дебет, Кредит и Сумма.

См.также
Работа с таблицами
Настройка отображения журнала бухгалтерских операций


Редактирование операции

Редактирование бухгалтерской операции

В диалоге редактирования бухгалтерской операции Вы сможете задать все необходимые параметры операции и отредактировать список проводок.

В диалоге отображаются следующие элементы:

Дата — здесь указывается дата операции. При вводе новой операции она добавится последней за указанную дату. При изменении даты существующей операции, операция перемещается в соответствующее место журнала также последней за указанную дату.

Документ — краткое название и номер документа, на основании которого была сформирована данная операция, или любая другая краткая информация. Например, пп 21 означает платежное поручение N 21, а ро 4 — расходный ордер N 4. Вы сможете потом использовать эту информацию для фильтрации и поиска нужной записи. Максимальная длина строки 15 символов.

Выкл — «выключатель» операции (может отсутствовать, если в настройках бухгалтерии в пункте меню «Установка | Настройки» включено Не использовать выключение записей). При включении этой опции операция становится «выключенной». Это значит, что все ее проводки не будут обрабатываться при формировании отчетов. Часто, вместо удаления операции ее лучше просто выключить — на случай, если она потом пригодится. Кроме того, специальный режим расчета оборотов позволяет учитывать выключенные проводки.

Содержание — здесь Вы пишете содержание операции, т.е. как идентифицируются проводки, которые она содержит. Например, такое: Оплата от ООО Одуванчик по сч 12 от 12.08.2001 за компьютер.

В нижней части окна бухгалтерской операции расположен список проводок. Бухгалтерская операция может состоять как из одной, так и из нескольких бухгалтерских проводок. Список имеет следующие колонки:

·Дебет — код счета дебета проводки

·Кредит — код счета кредита проводки

·СУ — статья налогового учета проводки (если есть налоговые проводки в операции)

·Количество/Цена — для количественно-суммовых проводок количество и цена

·Сумма — сумма проводки (налоговой проводки)

·Доп — показывает состояние проводки ( Включена или Выключена )

Замечание!

При ведении налогового учета сумма налоговой проводки отображается только в том случае, если она отлична от суммы соответствующей бухгалтерской проводки. На экране это выглядит следующим образом:

21 700.25

НУ 2000.00

Здесь НУ означает сумму в налоговом учете.

Колонка Доп присутствует только если включен режим выключения проводок. Здесь, в списке, Вы сможете выполнять следующие действия:

Замечание!

При использовании дополнительного учета в таблице проводок появляется дополнительны столбец. Название этого столбца зависит от используемых счетов дебета и кредита. Например, столбец может называться В валюте/Курс.

Добавление новой проводки — выполняется при добавлении записи в таблицу проводок. В появившемся диалоге редактирования проводки укажите параметры новой проводки. После нажатия <OK> она добавиться к списку.

Редактирование проводки — происходит при редактировании записи таблицы проводок. В появившемся диалоге редактирования проводки внесите изменения в проводку. После нажатия <OK> изменения будут внесены в список.

Удаление проводки — происходит при удалении проводки из таблицы проводок. Перед удалением проводки появится подтверждение: Удалить проводку такую-то ?. Нажмите Да для удаления.

и другие операции с таблицами

С помощью кнопки Другие можно отредактировать другие параметры бухгалтерской операции, созданной документом или типовой операцией. У операций, созданных вручную и операций, не имеющих других параметров, эта кнопка недоступна.

После ввода всех необходимых данных нажмите <OK> для сохранения изменений. Кнопка <Отмена> позволяет отказаться от изменения операции. При этом, если Вы что-то поменяли в диалоге и активна опция Спрашивать при отмене в диалогах в общих настройках в пункте меню «Установка | Настройки», то перед окончательным отказом программа cпрoсит: В запись внесены изменения. Вы хотите выйти не сохраняясь ?.

Наличие кнопки <OK и след.> позволяет добавить операцию и приступить к вводу следующей.

В этом диалоге поддерживается вложение ссылок. Справа от кнопки <Отмена> находится кнопка < attach >, с помощью которой можно добавить ссылку, настроить ссылки или перейти к ранее добавленным ссылкам.

См.также
Ввод типовой операции
Журнал бухгалтерских операций
Редактирование проводки


Редактирование проводки

Диалог редактирования проводки позволяет ввести все необходимые параметры проводки. В диалоге имеются следующие элементы:

Дебет, Кредит — здесь Вы указываете коды счета дебета и кредита проводки. Вы можете это сделать вручную или воспользоваться выбором из плана счетов при помощи кнопки [image] справа от поля ввода. При выборе внизу диалога в одноименных полях показываются названия выбираемых счетов.

Сумма — тут Вы указываете сумму проводки. При вводе Вы можете пользоваться встроенным калькулятором, если нажмете [image].

Количество — здесь задается количество для количественно-суммовых проводок. Количественно-суммовые проводки — это те проводки, у которых один из счетов (дебет или кредит) является количественно-суммовым. Вид учета счета настраивается в параметрах счета.

Цена — здесь задается цена для количественно-суммовых проводок. В процессе заполнения можно подставить текущую среднюю цену для количественно-суммовой проводки. Для этого нажмите кнопку [image] и средняя цена автоматически посчитается и подставится в соответствующую графу ввода. При расчете программа пробежит все операции до редактируемой и все проводки до редактируемой. При добавлении новой операции будет анализироваться дата операции.

Замечание!

При использовании дополнительного учета в проводке появляются две дополнительных графы. Названия этих граф зависят от выбранного счета дебета и кредита. Например, это могут быть Сумма в валюте и Курс.

Статья учета — определяет статью налогового учета. В списке показываются возможные статьи учета, соответствующие данной проводке на основе перечня корректных проводок. Для быстрого перехода к нужной статье достаточно набрать первую букву ее кода. Вы можете отредактировать этот список, если нажмете правой кнопкой мыши на поле ввода и выберете пункт меню Настроить.... Появится диалог редактирования корректной проводки.

Сумма учета — здесь указывается сумма налоговой проводки. Исходя из типа статьи, она увеличивает или уменьшает налоговую базу. По умолчанию, программа сама подставляет ее исходя из бухгалтерской суммы проводки и настроек этого типа проводки. Однако Вы можете изменить ее.

Выключена — «выключатель» проводки (может отсутствовать, если в настройках журналов в пункте меню «Установка | Настройки» отключена опция Выключение записей). При включении этой опции проводка становится «выключенной». Это значит, что не будет учитываться при формировании отчетов. Часто, вместо удаления проводки ее лучше просто выключить — на случай, если она потом пригодится.

В параметрах Дебет, Кредит показывается названия счетов дебета и кредита, а в параметре Ед отражается единица измерения проводки.

При редактировании следует иметь в виду:

·Проводка между балансным счетом и забалансовым невозможна.

·При попытке сделать проводку между двумя количественно-суммовыми счетами с разными единицами измерения программа выдаст предупреждение, однако это не является ошибкой.

Нажатие <OK> позволяет внести изменения или добавить новую проводку. <Отмена> — отказ от редактирования проводки.

См. также
Редактирование операции


Фильтр журнала бухгалтерских операций

Фильтр позволяет указать условия на отображение записей. Вы сможете работать не со всем журналом, а только с выбранными записями. Это значительно упрощает работу при работе с большим журналом. Для выборки записей нужно указать признаки отбора, т.е. задать фильтр журнала. При этом условия выборки Вы может сохранять под определенным именем и возвращаться к ним позже, а используя Закладки с фильтром журнала, быстро переходить от одного фильтра к другому и назад к полному журналу с помощью закладок.

Перед тем как использовать все возможности фильтрации, лучше попробовать контекстную фильтрацию, которая более удобна в использовании.

Для того чтобы вызвать фильтр, надо, находясь в окне редактирования бухгалтерского журнала операций выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·нажать комбинацию клавиш <Ctrl>+<Ф> ( <Ctrl>+<A> );

·выбрать пункт «Сервис | Фильтр» главного меню.

На экране появится диалог установки фильтра.

Фильтр начинает действовать, если включен переключатель Фильтр включен. Программа сама его включает при введении каких-либо условий фильтрации пользователем, но Вы можете его отключить.

В графе Название указывается список устанавливавшихся ранее фильтров. Вы можете выбрать нужный, использовать или отредактировать его. Кнопка [image] позволяет сохранить текущие условия фильтра. Если в момент сохранения в списке выбран какой-либо фильтр, то он будет переписан новыми условиями. Если нет, то новые условия добавятся. Вы можете ввести название для новых условий или положиться на программу — она сама придумает хорошее название. Выбрав сохраненное ранее условия фильтра и нажав кнопку [image] его можно удалить.

Сами условия фильтра состоят из трех групп: Шаблоны, Диапазоны, Параметры.

Шаблоны задает шаблоны фильтрации. С помощью шаблонов можно выделить группу сходных по написанию строк.

Закладка Шаблоны — задает шаблоны полей. Шаблоны позволяют выделить группу сходных по написанию строк. Шаблоны можно задавать для строковых и для не строковых полей. В последнем случае перед проверкой не строковое поле преобразуется к строке и проверяется по шаблону. У полей с подстановкой значения можно воспользоваться выбором и подставить шаблон из списка. При использовании перечислений (с «;») надо знать: когда шаблон подставляется, то он заменяет последний элемент перечисления и надо добавить ; в конец строки перед выбором, чтобы шаблон добавился к списку. Следующие шаблоны можно устанавливать:

Документа — шаблон документа. Например, *пп* — все платежные поручения.

Даты — шаблон даты. Например, *.01.2001 — все операции за январь 2001 года

Создал/Изменил — можно указать условие на отображение операций созданных или отредактированных этим пользователем.

Содержания — шаблон содержания. Например, *налог* — все операции, содержащие слово налог

Корр.счета — шаблон корр.счета. Например, 50 — все операции с кассой. Нажмите [image] для выбора счета.

Статьи — шаблон статьи налогового учета. Например, Д* — все доходы. Нажмите [image] для выбора статьи.

Дебета, Кредита — шаблоны счетов дебета или кредита проводок. Нажмите [image] для выбора счета.

В полях Корр.счета, Дебета, Кредита строка определяет как условие на код счета, так и условия на его аналитические признаки. Код счета может содержать маску или иметь субсчета — программа обработает это. Условия на аналитики идут после указания условия на код счета и отделяются от него чертой «/». Если на конце кода счета стоит «/» добавляется условие на отсутствие аналитик.

Пример.

Пусть есть счет 41 с двумя аналитиками: товар и склад. И пусть счет имеет субсчет последнего уровня 41/C, и есть склад Осн и товар Валенки. Тогда можно указать следующие шаблоны:

41 — выбираем проводки с дебетом счетов, являющимся субсчетами 41-ого

41/* — выбираем проводки с дебетом счетов, являющимся субсчетами 41-ого

41/С — выбираем проводки со счетом 41/С

41/С/ — выбираем проводки со счетом 41/С с неуказанной аналитикой склада

41/C/Осн — выбираем проводки со счетом 41/С по складу Осн

41/C/Осн/Валенки — выбираем проводки со счетом 41/С по складу Осн и товару Валенки

41/C/*/Валенки — выбираем проводки со счетом 41/С по товару Валенки

Вид аналитики — позволяет указать вид аналитики, например Сотрудники, Контрагенты, Основные средства и т.п.. Будут показаны только операции, содержащие проводки со счетами, имеющими данную аналитику.

Объект — если указан вид аналитики, то здесь задается шаблон кода аналитики. Нажмите [image] для выбора объекта аналитики из справочника.

Цвет фона — задает условие на цвет фона записи.

Диапазоны определяет некоторые диапазоны выборки записей. Диапазон может быть неполным, т.е. содержать только верхнюю или только нижнюю границу.

Операции с ... по ... — устанавливает диапазон дат операций. Нажмите Вкл для того чтобы задать и использовать этот диапазон. Конечная дата включается в условие отбора.

Графа Изменялось с ... по ... появляется при включении одной из опций — Показывать, когда создана/изменена операция или Включить протокол действий пользователей в параметрах базы данных. С помощью нее можно указать условия на дату внесения изменений в данные. Нажмите Вкл для того чтобы задать и использовать этот диапазон. Конечная дата включается в условие отбора.

Сумма от ... по ... — устанавливает диапазон сумм проводок. Будут отображаться только те операции, у которых есть проводки с указанными суммами.

Параметры — задает дополнительные параметры фильтрации:

Режим Не различать строчные и прописные буквы — определяет игнорировать или нет различия между строчными и прописными буквами. Если режим отключен, то при фильтрации учитывается различие между строчными и прописными буквами. Например, если Вы задали для поля содержания: *иванов*, то строка, содержащая Иванов, найдена не будет. Если режим включен различие между строчными и прописными буквами при поиске не учитывается. Например, если для поиска задано *иВаНов*, то будут найдены строки содержащие Иванов, иванов, ИВанов и т.д.

Режим Исключать отфильтрованные операции — говорит фильтру исключать все операции, удовлетворяющие заданным условиям. Если же признак сброшен (по умолчанию), то в журнале операций показываются операции, которые удовлетворяют заданным условиям.

Режим Фильтр действует на отчеты. Если обычно фильтр влияет только на отображение информации, то после установки этого параметра программа просто не будет замечать те операции, которые не попали в условие фильтра, и все алгоритмы и отчеты будут формироваться только по отфильтрованным записям. По умолчанию признак не установлен, т.е. отчеты формируются без учета фильтра.

Получено из документа — задает условия на отображение операций, полученных при расчете конкретного документа. В списке показывается список журналов, которые могут делать проводки. Выберите один из них или «*» для отображения всех операций.

Ручн — при включении покажет только операции, в которых были правки в автоматически сформированных проводках.

Графа Признак недоступности появляется при включении флажка Разрешить делать недоступными некоторые записи в параметрах базы данных. Она позволяет наложить условие на отображение доступных или не доступных записей.

Признак выключения — определяет условия на отображение выключенных бухгалтерских операций и проводок. Выберите одно из них или «*» для отображения всех операций.

После настройки условий нажмите <OK> — фильтр будет применен к записям журнала.

Нажатие кнопки <Отмена> позволяет отказаться от наложения фильтра.

Кнопка Фирмы доступна только когда в базе ведется учет нескольких фирм и включена опция Показывать операции всех фирм в диалоге выбора фирмы.

Кнопка Сброс очищает поля диалога (убирает все условия фильтра).

Для удобства работы Вы можете включить опцию Закладки с фильтром журнала в настройках журналов в пункте меню «Установка | Настройки». После этого в Вашем журнале бухгалтерских операций появятся закладки, соответствующие списку устанавливавшихся фильтров.

См.также
Контекстная фильтрация


Контекстная фильтрация

Фильтр позволяет указать условия на отображение записей. Вы сможете работать не со всем журналом, а только с выбранными записями. Это значительно упрощает работу при работе с большим журналом. Особенностью контекстной фильтрации является простота и наглядность работы.

Контекстная фильтрация вызывается непосредственно в журнале бухгалтерских операций при нажатии правой кнопкой мыши. Принцип действия достаточно прост. Программа анализирует то место, куда указывает курсор мыши, и на основе этого предлагает условия выборки.

При щелчке мыши на любые колонки, как в нижнем, так и в верхнем окне журнала, программа будет предлагать обдуманные варианты фильтрации. Например, при щелчке на документ или содержание выбранной операции программа предложит отобрать схожие по документу или содержанию операции. А при щелчке по сумме операции или проводки возможные диапазоны сумм.

Если записи уже отфильтрованы, контекстная фильтрация заменит существующие условия выборки новыми. Однако для контекстной фильтрации по датам условия выборки, наоборот, накладываются на записи. Это достаточно логично: Вы выбираете нужные записи, обнаруживаете, что их слишком много и, затем, оставляете только операции за определенный период. В случае, когда фильтр заменяет текущие условия фильтрации программа пишет в заголовке Выбрать по условию, а когда условия добавляются к существующим, то пишется Ограничить выборку.

Выбрав пункт Сброс, Вы можете сбрoсить (убрать, отменить) фильтр, а, выбрав пункт меню Без ограничений, убрать ранее поставленные ограничения выборки по датам операций.

Можно комбинировать работу с контекстной фильтрацией и использованием основного фильтра. Например, Вы можете, отфильтровав записи с помощью контекстной фильтрации, вызвать диалог фильтра, установить в нем флаг Фильтр действует на отчеты, и получать отчеты только по выбранным записям.

Очень удобно использовать контекстную фильтрацию вместе с закладками фильтра в журнале бухгалтерских операций.

См.также
Основной фильтр


Закладки фильтра

Журнал бухгалтерских операций может иметь сверху закладки, в которых указываются условия, по которым отображаются записи. Переключаясь между закладками можно быстро переходить от одного условия к другому. Закладки получаются при фильтрации журнала. Это может быть как контекстная фильтрация, так и фильтрация основным фильтром.

На самой левой закладке Все, которая всегда присутствует, отражаются все операции журнала. Остальные соответствуют названиям условий фильтрации, которые либо задаются программой, либо указываются пользователем в диалоге фильтра.

Переходить с закладки можно, выбирая ее мышью или с помощью клавиш Я а. Если все разделы не помещаются на экране, то справа от закладок появятся кнопки [image], с помощью которых можно перелистывать закладки.

Любую закладку, кроме закладки Все можно удалить. Для этого надо щелкнуть правой кнопкой мыши по закладке и в появившемся контекстном меню выбрать пункт Удалить закладку.

Поменять условия на выборку записей для закладки можно, если выбрать ее и вызвать диалог фильтра журнала. В нем можно изменить условия выборки. При вызове диалога фильтра журнала на закладке Все программа добавит новую закладку с новыми условиями фильтра. То же самое будет и для контекстной фильтрации.

См.также
Журнал бухгалтерских операций


Типы документов

Стандартное меню

Связь между бухгалтерскими операциями и бланками документов, хранящими свои данные в журнале бухгалтерских операций, осуществляется при помощи поля Документ журнала бухгалтерских операций, точнее при помощи префикса номера документа.

Пример:

Номер документа пп 5 определяет платежное поручение № 5. Зарегистрировав в типах документов префикс пп и сопоставив ему бланк платежного поручения, можно на основе бухгалтерской операции получать платежное поручение.

Для настройки типов документов используется пункт главного меню «Разработка | Типы документов».

Следующие колонки отображаются в таблице типов документов:

·Префикс — префикс зарегистрированного документа

·Файл — файл бланка документа

·Форма — название бланка документа

В таблице типов документов можно выполнять следующие операции:

Регистрацию нового типа документа — происходит при добавлении записи в таблицу. После чего появится диалог нового типа документа. После задания необходимых параметров и нажатия <OK> он будет зарегистрирован и добавлен в таблицу.

Удалить тип документа — происходит при удалении записи из таблицы. Перед удалением типа документа появится подтверждение: Удалить тип документа такой-то ?. Нажмите Да для удаления.

Изменение типа документа — происходит при редактировании записи таблицы. Появится диалог изменения типа документа, где можно изменить его параметры.

Замечание!

Префикс документа должен состоять только из букв.

После того как документ будет зарегистрирован, в журнале бухгалтерских операций, бухгалтерских отчетах, таких как движение средств, движение по аналитике и др., справа от операции появится кнопка [image], нажав на которую можно будет получить требуемый бланк.

См.также
Редактирование типа документа
Настройка параметров бланка
Ключевое слово ЗАГРУЗКА.
Свойство АРХИВ
Функция СТАРТ_БЛАНК


Изменение типа документа

В диалоге изменения типа документа указывается префикс документа, сопоставленный ему бланк и дополнительные условия, которые действуют на документ.

Префикс документа — префикс регистрируемого документа, например, префиксу пп сопоставляется бланк платежного поручения.

Бланк документа — сопоставляемый бланк. Для выбора из списка бланков воспользуйтесь кнопкой [image].

Выводить при условии — задает условия действия типа документа. Условия будут проверяться, когда пользователь захочет получить документ на основе бухгалтерской операции. Если бухгалтерская операция не удовлетворяет этому условию (не существует ни одной проводки в бухгалтерской операции, удовлетворяющей этому условию), документ не будет печататься.

Шаблон дебета — задает шаблон фильтрации дебета проводок. Нажмите [image] для выбора счета.

Аналитика дебета — задает условие на аналитику дебета проводок.

Шаблон кредита — задает шаблон фильтрации кредита проводок. Нажмите [image] для выбора счета.

Аналитика кредита — задает условие на аналитику кредита проводок.

Шаблоны позволяют выделить группу сходных по написанию строк. При использовании перечислений (с «;») надо знать: когда шаблон подставляется, то он заменяет последний элемент перечисления и надо добавить «;» в конец строки перед выбором, чтобы шаблон добавился к списку.

Действует с даты — устанавливает, с какой даты действует данный тип документа.

по дату — задает дату окончания действия типа документа (дата включается в диапазон).

Для снятия условия на дату удалите содержимое поля.

См. также
Типы документов


План счетов

В плане счетов Вы задаете счета, которые будете использовать в проводках журнала бухгалтерских операций. За счетами закреплены исходные остатки. В плане счетов также можно подключать и настраивать аналитики и указывать исходные остатки счетов (без аналитик).

Для вызова плана счетов воспользуйтесь пунктом меню «Установка | План счетов». Появится редактор плана счетов. Он представляет собой таблицу с закладками. Первая их них — Счет, на которой и расположен собственно сам план счетов. На других закладках располагаются аналитики выбранного счета. Таблица плана счетов имеет следующие колонки:

·Код — отражает код счета (уникальное имя счета, которое участвует в проводке)

·Название — отражает название счета.

·Р/Б — показывает раздел баланса счета. Возможные значения: Акт — активный счет, Пас — пассивный счет, А/П — активно-пассивный счет, З/Б — забалансовый счет

·Запрет — показывается только под администратором. Возможные значения: Изм — запрет изменения, Суб — запрет добавления субсчетов.

Для быстрого перехода к нужному счету Вы можете использовать контекстный поиск. Для перехода к счету достаточно просто набрать его код на клавиатуре.

План счетов имеет древовидную структуру. Счета могут состоять в свою очередь из других счетов, одного или нескольких, называемых субсчетами этого счета. Если счет имеет субсчета, то он выделяется синим цветом и слева от него изображается иконка [image]. Для счета, являющегося субсчетом другого счета, этот счет является счетом верхнего уровня. Если счет не имеет субсчетов, то для однозначности он называется счетом последнего уровня. Вы можете создавать не бесконечный, но достаточно большой уровень вложенности субсчетов. Этот уровень ограничен кодом счета (подуровень создается при помощи добавления / к коду счета), однако при разумном наименовании кодов можно добиться 5-6 уровневой вложенности и до 10 уровней вложенности максимум. Как правило, вложенность больше 4-х уровней приводит к резкому усложнению работы с таким планом счетов.

Войти в счет для редактирования субсчетов можно, выполнив одно из действий:

·нажать клавишу <Enter>;

·нажать кнопку [image] слева от счета.

Появятся список всех его субсчетов. Если субсчета этого счета в свою очередь имеют субсчета, то можно также войти в них и перейти к редактированию уже их субсчетов и т.д.

Выйти из просмотра субсчетов к счетам верхнего уровня можно, выполнив одно из действий:

·нажать клавишу <Esc>;

·нажать кнопку [image] слева в заголовке таблицы;

Для ввода субсчетов к счету последнего уровня необходимо выполнить одно из действий:

·нажать комбинацию клавиш <Ctrl>+<Enter>;

·нажать на место слева от кода счета, там, где обычно указывается папка субсчетов;

Программа спросит: Ввести субсчета к счету такому-то. Нажмите ДА для продолжения. После чего Вы перейдете к редактированию субсчетов этого счета, но их список, естественно, будет пуст. Только после ввода в него первого счета субсчет верхнего уровня станет иметь субсчета.

Если Вы дошли «до конца» вложенности, то программа выдаст сообщение об ошибке: Длина кода счета такого-то не позволяет ввести к нему субсчета. Это значит, что Вам надо просто сократить код какого-нибудь счета верхнего уровня.

Счет, имеющий одну или несколько аналитических признаков, будет иметь справа кнопку со значком LINKACC (если у Вас есть соответствующие права доступа). При нажатии на нее Вы перейдете в список аналитик этого счета, где сможете отредактировать их. Отключить использование аналитик для счета можно здесь же, если, нажав на кнопку, подержать ее немного и в появившемся контекстном меню выбрать Удалить. Чтобы добавить аналитику для счета, надо нажать на кнопку справа от него. После этого Вы попадете в диалог подключения аналитики.

Здесь, в редакторе плана счетов Вы сможете выполнять следующие функции:

Добавление счета — происходит при добавлении записи в таблицу. После чего появится диалог редактирования нового счета. После ввода данных и нажатия <OK> новый счет добавляется в список.

Удаление счета — происходит при удалении записи из таблицы. Перед удалением появится подтверждение: Удалить счет такой-то ?. Нажмите Да для удаления. Счет, имеющий субсчета удалить нельзя. Программа выдаст в этом случае сообщение об ошибке: Невозможно удалить счет такой-то т.к. он имеет субсчета. Вы должны удалить все его субсчета, а потом уже удалить сам счет. Если счет используется в проводках или в журналах аналитики, то необходимо перенести или удалить эти записи.

Изменить счет — происходит при редактировании записи таблицы. Появится диалог редактирования счета.

и другие операции с таблицами, в частности замена строки в названии счета.

Раздел баланса «наследуется» всеми субсчетами. Проще говоря, активный счет может иметь только активные субсчета, пассивный только пассивные, а активно-пассивный может иметь как активные, так и пассивные субсчета. Отдельно выделяются забалансовые счета. Они могут иметь только забалансовые субсчета, но зато сами могут быть субсчетами любого счета.

Программа позволяет изменять коды служебных счетов без каких-либо последствий для работоспособности. Если коды были изменены, то под администратором в плане счетов появляется еще одна колонка — Исходный, в которой показывается исходный код счета.

См. также
Аналитический учет
Редактирование журнала аналитики
Работа с таблицами


Редактирование счета

Диалог редактирования счета позволяет задать все необходимые параметры счета.

Диалог содержит следующие элементы:

Название — определяет название счета или комментарий. Название может быть каким угодно или просто отсутствовать. Какое название вводить зависит от Вас. Однако, отсутствие названия счета может привести к не читабельности плана счетов и проводок.

Код — код счета. Он определяет краткое имя счета. Код должен быть кратким, чтобы его было удобно вводить, и должен определять счет так, чтобы по коду можно было установить, о чем идет речь. Синтетические счета определяются законодательством. Длина кода не должна превышать 20 символов.

Идентификатор (необязательно) — используется разработчиками программы. По указанному здесь идентификатору можно получать доступ к коду из внутреннего языка программы. Использование идентификатора позволяет пользователю произвольно менять код счета исходя из своих предпочтений. При этом работоспособность программы не страдает.

Раздел баланса — определяет раздел баланса счета. В зависимости от активности опции Активный и Пассивный раздел баланса счета будет следующим:

Активный Пассивный
 | Забалансовый
 | Активный
 | Пассивный
 | Активно-Пассивный

Параметры — здесь указываются дополнительные параметры счета:

Развернуть сальдо субсчетов — для активно-пассивных и забалансовых счетов означает, что если счет имеет субсчета, то сальдо этого счета в оборотной ведомости и других отчетах будет разворачиваться.

Пример:

 | Дебет | Кредит
Развернутый | 14000 | 1340
Свернутый | 12660 | 0

Развернуть сальдо аналитик — аналогично предыдущей опции, но действует для счетов имеющих аналитики, но не имеющих субсчета.

Внимание!

Включение опции Развернуть сальдо аналитик приводит к замедлению расчета оборотов.

Субсчет по умолчанию — Субсчет данного счета будет субсчетом по умолчанию.

Группа опций Запретить отображается только у Администратора и позволяет закрыть доступ к счету обычным пользователям.

Изменять и удалять — такой счет нельзя удалить и изменить его код.

Менять субсчета — к такому счету нельзя добавить, удалить и изменить субсчета

Замечание!

В предыдущих версиях программы здесь можно было установить количественно-суммовой учет у счета. Теперь такой учет указывается в диалоге настройки аналитики.

Замечание!

В предыдущих версиях программы здесь можно было занести исходный остаток по счету. Теперь он заносится в таблице исходных остатков.

См. также
План счетов
Исходные остатки


Исходные остатки

В пункте меню «Установка | Исходные остатки». Вы можете задать исходные остатки по счетам и их аналитикам. При вызове этого пункта появляется таблица, состоящая из следующих колонок:

·Счет — показывает код счета и его аналитики

·Кол-во/Цена — остаток в количестве и его цена (если есть количественно-суммовые счета)

·НУ — исходный остаток по единице налогового учета. Если он равен исходному остатку по бухгалтерии, то здесь пишется = (равенство)

·Дебет — дебетовый остаток

·Кредит — кредитовый остаток

Вы можете задавать дебетовый остаток по активным счетам, кредитовый по пассивным счетам. Для активно-пассивных и забалансных счетов можно задавать остаток, как по дебету, так и по кредиту. Остаток можно задать только для счетов последнего уровня. Если счет имеет аналитику, она должна быть указана.

Здесь, в таблице исходных остатков, Вы сможете выполнять следующие функции:

Добавление исходного остатка — происходит при добавлении записи в таблицу. После чего появится диалог добавления исходного остатка. После ввода данных и нажатия <OK> новый счет добавляется в список.

Удаление исходного остатка — происходит при удалении записи из таблицы. Перед удалением появится подтверждение: Удалить исходный остаток по счету такому-то ?. Нажмите Да для удаления.

Изменить счет — происходит при редактировании записи таблицы. Появится диалог редактирования исходного остатка.

Очистить остатки — можно выбрав пункт контекстного меню Удалить все. Программа запрoсит подтверждение на удаление, после чего все остатки будут удалены.

Редактирование остатков счета происходит при редактировании записи таблицы. В появившемся диалоге укажите необходимые параметры. После нажатия <OK> изменения будут внесены.

Внимание!

При неравенстве суммы дебетовых и кредитовых остатков всех счетов, например, при превышении кредитового над дебетовым остатком, справа в строке статуса внизу окна появляется сумма различия, например Дебет больше на 226.00. Надо, чтобы в строке статуса выводилась надпись «Исходные остатки занесены верно».

См.также
Работа с таблицами
Редактирование исходного остатка счета


Исходный остаток счета

В диалоге редактирования исходного остатка можно задать исходный остаток счета. Вы можете вызывать этот диалог из окна исходных остатков.

Диалог содержит следующие элементы:

Счет — здесь указывается код счета, по которому заносится остаток и его аналитики. Для выбора счета из плана счетов воспользуйтесь кнопкой выбора [image].

Сумма — укажите здесь сумму исходного остатка

Сумма учета — укажите исходный остаток единицы налогового учета.

Остаток по — укажите по чему задается остаток (указывается только для активно-пассивных и забалансовых счетов)

Цена — введите здесь цену остатка счета.

Количество — введите здесь количественный остаток счета.

См.также
Редактирование счета
Исходные остатки


Реакция на удаление счета

При удалении счета

При удалении счета программа проверяет, есть ли по этому счету бухгалтерские проводки или записи в журналах аналитики с полем счет. Проводки не могут быть по счету, которого нет. Поэтому при удалении Вам надо произвести определенные действия, чтобы проводок по такому счету не стало. Программа выведет В журналах найдены проводки по счету такому-то и предложит два варианта решения этой проблемы:

·Перенести проводки на другой счет

·Удалить проводки

Выберите нужный вариант и нажмите <OK>. Кнопка <Отмена> позволяет отказаться от удаления счета. После выбора Удалить программа удалит спорные операции. Если же будет выбран вариант с переносом, появится диалог с переносом проводок.

Вместе с проводками будет перенесен или удален и исходный остаток счета.

См.также
План счетов


Вид плана счетов

При выборе счета из плана счетов у Вас имеется возможность указать вид таблицы счетов, которая отображается в диалоге. Возможны следующие опции таблицы выбора:

Опция Остатки на дату позволяет рассчитать и вывести на экран остатки на дату бухгалтерской операции. При этом в таблицу выбора счета будут добавлены колонки Дебет и/или Кредит в зависимости от раздела баланса счета верхнего уровня. Остатки будут подсчитаны не только для счетов но и для всех аналитик выбранного счета. Если по аналитике ведется количественно-суммовой учет, будут дополнительно выведены колонка Кол-во/Цена.

Замечание!

Если счет имеет две и более аналитик, то остатки и цена по выбранной аналитике отображаются без учета другой (других) аналитики. Например, если на счете подключены две аналитики — Склад и Товар, то на закладке Товар напротив выбранного товара будет показан остаток этого товара по всем складам, а на закладке Склад напротив выбранного склада будет отображаться общий суммой остаток всех товаров на этом складе.

Замечание!

При выборе счета не из операции, т.е. когда дата не определена, вместо опции Остатки на дату будет опция Текущие остатки. При ее включении будут показаны остатки с учетом всех введенных операций.

Опция Скрыть аналитики с нулевым остатком скрывает записи аналитик, по которым нет остатка. Опция не распространяется на синтетические счета плана счетов. Счета плана счетов показываются вне зависимости от значения этой опции.

Опция Только корректные счета говорит программе использовать список корректных проводок для фильтрации плана счетов. Так, при выборе счета кредита в проводке программа покажет только те счета, что могут корреспондироваться с введенным счетом дебета и наоборот. При выборе счета не из диалога редактирования проводки эта опция игнорируется.

Установите желаемые опции и нажмите клавишу <Enter> или кнопку ОК. Таблица выбора примет соответствующий вид.

Программа запоминает настройки и при следующем выборе счета диалог выбора примет ту форму, которая была установлена в последнем сеансе работы.

См. также
Работа с таблицами


Выберите счет

Работа с окном выбора счета полностью аналогична работе с окном плана счетов. Но здесь таблица плана счетов дополнительно может иметь следующие колонки:

·Кол/цена — показывает количественный остаток по счету и среднюю цену

·Дебет — отображает дебетовый остаток по счету.

·Кредит — отображает кредитовый остаток по счету.

Эти колонки появляются, если в диалоге вида отображения плана счетов отметить опцию Остатки на дату.

Вызвать диалог настройки вида плана счетов можно щелкнув по надписи Вид справочника в правом нижнем углу таблицы выбора счета. Если щелкнуть по ней внутри выбора аналитики, для которой доступно оглавление В виде дерева, то там же появятся опции диалога выбора оглавления.

Дополнительно, в нижней части окна находятся кнопки <Выбрать>, <Отмена> и <Найти>, которые выполняют следующие функции:

кнопка <Выбрать> позволяет вставить в графу ввода выбранный код счета;

кнопка <Отмена> позволяет отказаться от выбора счета из плана счетов;

кнопка <Найти> позволяет осуществить поиск строки в выделенном столбце;

См.также
Работа с таблицами


Корректные проводки

Список корректных проводок в программе решает две задачи.

Во-первых, он задает возможные проводки, которые Вы можете осуществлять, и контролирует их в процессе ввода. Этим снижается вероятность ошибки при вводе проводок вручную. При вводе некорректной проводки программа выводит предупреждающий диалог. Список корректных проводок можно использовать для фильтрации выбора счета дебета и кредита при вводе проводки. Для этого надо включить опцию показывать только корректные счета в настройках вида диалога выбора счета.

Во-вторых, при помощи списка корректных проводок производится автоматизация ведения налогового учета. Здесь Вы задаете проводки, которые влияют на налоговую базу, и указываете статью учета — тип, к которому относится доход (увеличение налоговой базы) или расход (уменьшение налоговой базы). В программе уже присутствует заполненный список корректных проводок. Однако он может быть изменен главным бухгалтером или лицом, ответственным за ведение налогового учета.

Внимание!

Правильно заполненный список корректных проводок позволяет избавиться от полу ручного ведения налогового учета. Вы сможете получить налоговый учет полностью автоматически в 98% случаев на основе бухгалтерских данных и заполненного списка корректных проводок. При настройке корректных проводок не забывайте о возможности введения дополнительных аналитических субсчетов к существующим счетам. Это позволяет указывать возможные статьи учета в зависимости от аналитики счета дебета или кредита проводки.

Для вызова списка корректных проводок воспользуйтесь пунктом меню «Установка | Корректные проводки». Появится редактор корректных проводок — таблица со следующими колонками:

·Дебет — дебет проводки (может быть счетом не последнего уровня)

·Кредит — кредит проводки (может быть счетом не последнего уровня)

·Возможные статьи учета — показывает перечень (через ;) статей учета, которые могут соответствовать этой проводке (статьи могут быть не последнего уровня).

·Статья по умолчанию — показывает статью по умолчанию (одну из списка возможных), которая будет предлагаться программой автоматически при введении указанной проводки. См. замечание.

Если дебет, кредит или статья в корректной проводке не существует, то они подсвечиваются красным.

Одна и та же проводка в журнале бухгалтерских операций может соответствовать нескольким корректным проводкам. В этом случае программа выбирает самую подходящую. Так, если в корректных проводках есть записи:

51 | 62
51 | 62/РЕАЛ

То для проводки Д 51/Сбербанк К 62/Солнышко программа будет использовать первую корректную проводку, а для Д 51/Сбербанк К 62/РЕАЛ вторую. Это используется для задания статей учета в зависимости от аналитики счета в проводке. Для удобства введения таких условий есть возможность раскрытия дебета или кредита корректной проводки.

Следующие действия можно производить в списке статей:

Добавление корректной проводки — происходит при добавлении записи в таблицу. После чего появится диалог редактирование новой корректной проводки. После ввода данных и нажатия <OK> новая корректная проводка добавляется в список.

Удаление корректной проводки — происходит при удалении записи из таблицы. Перед удалением появится подтверждение: Удалить проводку такую-то из списка корректных ?. Нажмите Да для удаления.

Редактирование корректной проводки — происходит при редактировании записи таблицы. Появится диалог редактирование корректной проводки.

Автозаполнение данных — позволяет заполнить список корректных проводок на основе существующих данных (проводок в журнале бухгалтерских операций). Для автоматического заполнения выберите контекстный пункт меню Заполнить.... Появится диалог параметров заполнения.

Постановка налогового учета — позволяет на основе корректных проводок и данных бухгалтерского учета сформировать операции по налоговому учету. Для выполнения этой операции выберите пункт Поставить учет... контекстного меню. Появится диалог постановки налогового учета.

Раскрыть дебет — позволяет развернуть дебет счета. Это используется для настройки налогового учета. Выберите корректную проводку, дебет которой надо раскрыть и выберите соответствующий пункт контекстного меню.

Раскрыть кредит — позволяет развернуть кредит счета. Это используется для настройки налогового учета. Выберите корректную проводку, кредит которой надо раскрыть и выберите соответствующий пункт контекстного меню.

В одной базе данных предусмотрено ведение нескольких списков корректных проводок для нескольких систем налогообложения. Название текущей системы отображается в строке статуса, например, Общая система налогообложения. При щелчке левой кнопкой мыши по надписи появится диалог выбора системы налогообложения. То же самое можно сделать, нажав клавишу <F2>. При работе используется та система, которая указана в фирме. Отредактировать список систем налогообложения можно в диалоге выбора фирмы.

Замечание!

Не всегда в проводку попадает статья по умолчанию, указанная в корректной проводке. Если в аналитике дебета или кредита есть поле со статьей налогового учета и эта статья входит в перечень возможных, то она будет использована вместо указанной в корректной проводке статьи по умолчанию. Например, в справочнике видов деятельности может быть поле с указанием статьи выручки от этой деятельности: выручки от собственного производства, реализации покупных товаров и т.д. Теперь, если в проводке, отражающей выручку от операции будет указана аналитика по виду деятельности, то будет использована статья из указанного вида. Также, если проводки добавляются в процессе выполнения какого-либо алгоритма, то алгоритм может изменить статью в проводке по своему разумению.

См. также
Работа с таблицами


Редактирование корректной проводки

В диалоге редактирования корректной проводки Вы можете задать следующие параметры:

Дебет — дебет корректной проводки. Для выбора можно воспользоваться кнопкой [image]. Счет может иметь субсчета, тогда к этой корректной проводке будут относиться все проводки, у которых счет дебета является субсчетом этого счета. Справа от поля ввода счета пишется название счета.

Кредит — кредит корректной проводки. Для выбора можно воспользоваться кнопкой [image]. Счет может иметь субсчета, тогда к этой корректной проводке будут относиться все проводки, у которых счет кредита является субсчетом этого счета. Справа от поля ввода счета пишется название счета.

Возможные статьи учета — здесь указываются статьи учета, которые могут соответствовать этой проводке. Для выбора можно воспользоваться кнопкой [image]. Статья может иметь подстатьи, это значит, что любая из подстатей этой статьи может участвовать в проводке. Для ввода нескольких статей они вводятся через точку с запятой.

Список возможных статей учета должен удовлетворять двум критериям: с одной стороны он должен быть исчерпывающим, с другой — не быть перегруженным — выбор из большого списка Вам покажется не очень удобным.

Статья по умолчанию — установите здесь статью, которую программа будет подставлять по умолчанию для всех проводок соответствующих этой корректной проводке. Выпадающий список содержит все статьи, удовлетворяющие шаблону. Также в него включаются все статьи, которые не являются ни расходом, ни доходом.

Сумма образуется как — задает правило формирования налоговой суммы. Возможные значения: Сумма по бухгалтерии — значит, сумма в налоговом учете будет соответствовать сумме в бухгалтерском. Сторно суммы — значит, сумма в налоговом учете будет соответствовать сторно суммы в бухгалтерии. Неизвестно — программа не будет предлагать сумму по умолчанию. В любом случае, Вы сможете изменить сумму, предложенную программой на требуемую Вам. Поэтому устанавливать вариант Неизвестно рекомендуется только тогда, когда сумма по налоговому учету никак не связана с бухгалтерской суммой.

При добавлении/изменении корректной проводки программа может выдать сообщение: Корректная проводка такая-то конфликтует с указанной. Измените или удалите ее для ввода этой корректной проводки. Это значит, что, если бы Вы ввели такую проводку, то программа не смогла бы однозначно распознать, к какой корректной проводке относится проводка журнала.

Если проводки добавляются не вручную, а при помощи типовых операций или в результате заполнения документа, то в некоторых случаях сумма и статья учета могут не соответствовать корректной проводке. Если так получается, то это заложено в алгоритме, который создает проводку.

См. также
Таблица корректных проводок


Автозаполнение корректных проводок

Эта возможность позволяет построить список корректных проводок на основе существующих данных. Используйте эту возможность для быстрого составления списка корректных проводок.

В диалоге можно указать следующие параметры:

Как заполнять — определяет варианты заполнения списка. Возможен вариант с перезаписью существующего списка и добавлением только новых проводок.

Макс. порядок корр.счетов — задает максимальный порядок вложенности субсчетов, которые будут добавлены в список. Рекомендуется указать здесь 1, а после воспользоваться раскрытием дебета и кредита.

После нажатия <OK> программа пробежится по Вашему журналу бухгалтерских операций и проанализирует его проводки. После добавления всех проводок будет выведено сообщение: Добавлено столько-то корректных проводок.

См.также
Таблица корректных проводок


Постановка налогового учета

Если на Вашем предприятии изменилась система налогообложения, или если Ваше предприятие вело бухгалтерский, но не вело налоговый учет, Вы можете воспользоваться мастером по постановке налогового учета. Он сформирует налоговые операции на основе данных бухгалтерского учета. Для вызова мастера Вам необходимо войти в список корректных проводок и выбрать пункт Поставить учет... контекстного меню.

1. Появится пошаговый диалог.

Если в базе данных ведется учет нескольких фирм, в диалоге предложат указать, в какой фирме делать постановку налогового учета.

Так как преобразование отражается на всем журнале, то программа автоматически предложит сохранить резервную копию Ваших данных. Рекомендуется не убирать флажок Перед установкой сделать резервную копию!!!

Нажав кнопку Параметры, можно установить дополнительные опции постановки учета:

Не изменять существующую статью в проводках — если в проводках уже указана какая-то статья, она не будет изменена на статью по умолчанию, указанную в списке корректных проводок.

Не изменять существующую сумму в проводках — не изменяет сумму налоговой проводки.

Нажмите Далее > для подготовки к формированию.

2. Подтвердите готовность к формированию налоговых данных и нажмите Готово.

Программа дополнит все операции в журнале налоговыми проводками. Преобразование можно выполнять неоднократно, однако все сделанные вручную изменения в журнале операций будут заменяться. Вы можете произвести преобразование, посмотреть его результаты, сформировать отчеты и, после, внести изменения в список корректных проводок и произвести формирование налоговых проводок повторно.

Тем не менее, в некоторых случаях, автоматическое формирование полностью не избавит от ручного ввода данных, и Вам придется после выполнения автоматического заполнения внести изменения в журнал вручную. Например, если способ амортизации основного средства в налоговом учете отличается от бухгалтерского, Вам необходимо будет запустить операцию начисления амортизации для формирования нужных налоговых проводок.

См. также
Список корректных проводок


Неизвестная проводка

Диалог появляется, если программе неизвестна добавляемая Вами проводка. Все возможные проводки должны быть зарегистрированы в реестре корректных проводок. Нажмите на кнопку для продолжения:

<Отмена> — отказ от добавления или изменения проводки и возврат к диалогу редактирования проводки.

<Добавить в список корректных> — выводит диалог добавления нового типа корректных проводок. Там Вы сможете указать параметры новой корректной проводки. Корректную проводку лучше задавать для счетов верхнего уровня. Например, для проводки: Д 41/С/НДС20 К 60/АМИСеть подойдет корректная проводка Д 41 К 60. Тогда все проводки с субсчетами этих счетов попадут под эту корректную проводку.

<Пропустить> — пропустить диалог.

См.также
Список статей учета


Статьи налогового учета

Для вызова списка статей воспользуйтесь пунктом меню «Установка | Статьи учета». Здесь Вы можете редактировать статьи налогового учета, по которым разносятся операции. Все статьи делятся на доходы и расходы, что определяет изменение налоговой базы для конкретной операции. Кроме того, есть служебные статьи, которые не являются ни доходами, ни расходами.

Таблица редактора статей учета содержит следующие колонки:

·Код — отражает код статьи (ее краткое, но уникальное, имя)

·Название — отражает название статьи.

·Вид — показывает тип статьи учета счета. Возможные значения: Доход, Расход.

Для быстрого перехода к нужной статье Вы можете использовать контекстный поиск. Для перехода к статье достаточно просто набрать ее код на клавиатуре.

Список статей разделен на три закладки: доходы, расходы и прочие. Список имеет древовидную структуру. Статьи могут состоять в свою очередь из других статей, называемых подстатьями этой статьи. Если статья имеет подстатьи, то она выделяется синим цветом и слева от нее изображается иконка [image]. Для статьи, являющейся подстатьей другой статьи, эта статья является статьей верхнего уровня. Если статья не имеет подстатей, то для однозначности она называется статьей последнего уровня. Вы можете создавать не бесконечный, но достаточно большой уровень вложенности статей.

Войти в статью для редактирования составляющих ее подстатей можно, выполнив одно из действий:

·нажать клавишу <Enter>;

·нажать кнопку [image] слева от статьи;

Если подстатьи этой статьи в свою очередь имеют подстатьи, то можно также войти в них и перейти к редактированию уже их подстатей и т.д.

Выйти из просмотра подстатей к статьям верхнего уровня можно, выполнив одно из действий:

·нажать клавишу <Esc>;

·нажать кнопку [image] слева в заголовке таблицы;

Для введения подстатей к статье последнего уровня необходимо выполнить одно из действий:

·нажать комбинацию клавиш <Ctrl>+<Enter>;

·нажать на место слева от кода счета, там, где обычно указывается папка подстатей;

Программа cпрoсит: Ввести подуровни к статье такому-то. Нажмите ДА для продолжения. После чего Вы перейдете к редактированию подстатей этой статьи.

Если Вы дошли «до конца» вложенности, то программа выдаст сообщение об ошибке: Длина кода статьи такой-то не позволяет ввести к ней подуровни. Это значит, что Вам надо просто сократить код какой-нибудь статьи верхнего уровня.

Следующие действия можно производить в списке статей:

Добавление статьи учета — происходит при добавлении записи в таблицу. После чего появится диалог редактирования новой статьи. После ввода данных и нажатия <OK> новая статья добавляется в список.

Удаление статьи учета — происходит при удалении записи из таблицы. Перед удалением появится подтверждение: Удалить статью учета такую-то ?. Нажмите Да для удаления. Статью, имеющую подуровни, удалить нельзя. Программа выдаст в этом случае сообщение об ошибке: Статья такая-то имеет подуровни. Ее нельзя удалить. Прежде, Вы должны удалить все ее подуровни. Если статья используется в проводках, то необходимо перенести или удалить эти записи.

Редактирование статьи учета — происходит при редактировании записи таблицы. Появится диалог редактирования статьи.

и другие операции с таблицами, в частности замена строки в названии статьи.

Тип статьи «наследуется» всеми ее подстатьями. Проще говоря, статья дохода может иметь только статьи дохода в подуровнях. Статья расхода, соответственно, только подстатьи расхода.

В одной базе данных предусмотрено ведение нескольких наборов статей учета для нескольких систем налогообложения. Название текущей системы отображается в строке статуса, например, Общая система налогообложения. При щелчке левой кнопкой мыши по надписи появится диалог выбора системы налогообложения. То же самое можно сделать, нажав клавишу <F2>. При работе используется та система, которая указана в фирме. Отредактировать список систем налогообложения можно в диалоге выбора фирмы.

См.также
Работа с таблицами


Ведение налогового учета

Налоговый учет представляет собой систему регистрации и обобщения информации о совершаемых налогоплательщиком однородных операциях, приводящих к возникновению доходов или расходов, учитываемых в определенном положениями налогового кодекса порядке при исчислении налоговой базы текущего или будущих периодов.

Основными задачами налогового учета являются формирование полной и достоверной информации о порядке формирования данных о величине доходов и расходов организации, определяющих размер налоговой базы отчетного налогового периода в порядке, установленном главой 25 НК РФ, а так же обеспечение этой информацией внутренних и внешних пользователей для контроля за правильностью исчисления, полнотой и своевременностью расчетов с бюджетом по налогу на прибыль.

Учет организуется таким образом, чтобы обеспечить непрерывное отражение в хронологическом порядке фактов хозяйственной деятельности, которые в соответствии с установленным налоговым Кодексом порядком влекут за собой или могут повлечь изменение размера налоговой базы.

Программа Инфо-Предприятие позволяет полностью автоматизировать ведение налогового учета согласно требованиям 25-ой главы НК РФ. Именно автоматизировать, а не только получить требуемые законодательством отчетные документы на основе данных, введенных в программу вручную или полуавтоматическим способом. Все налоговые операции получаются автоматически после настройки системы связи бухгалтерских проводок и налоговых операций, которые настраивает главный бухгалтер (стандартная настройка, конечно, входит в программу).

Организация системы налогового учета подразумевает определение совокупности показателей, прямо или косвенно влияющих на размер налоговой базы, критериев их систематизации в регистрах налогового учета, а так же порядка ведения учета, формирования и отражения в регистрах информации об объектах учета.

В качестве критериев систематизации налоговых данных служат статьи учета. С помощью них программа может получить любые необходимые регистры учета и любые отчетные документы по налоговому учету, в том числе декларацию по налогу на прибыль. Их количества должно быть достаточно для ведения учета в соответствии с требованием 25-ой главы. В стандартную поставку входит уже настроенный список статей учета.

Налоговые операции в программе Инфо-Предприятие вводятся одновременно с бухгалтерскими. Это избавляет от необходимости дублировать информацию, в частности, по объектам учета, так как большинство объектов налогового учета являются бухгалтерской аналитикой.

При помощи списка корректных проводок Вы настраиваете соответствие между бухгалтерскими и налоговыми операциями. После чего программа автоматически делает налоговые операции вместе с бухгалтерскими при вводе первичного документа. Налоговая операция помимо всех прочих параметров имеет ссылку на статью учета, по которой определяется то, как она отражается на налоговой базе, и как она будет отражаться в налоговых регистрах. Тем не менее, Вы можете в любой момент вмешаться в действия программы и изменить предложенные ей операции по налоговому учету.

Программа Инфо-Предприятие имеет развитую аналитику счета. В налоговом учете эта же аналитика используется для хранения информации об единицах учета. Только исходные остатки по единицам учета задаются отдельно от бухгалтерского начального сальдо. Таким образом Вы можете вести налоговый учет, соответствующий требованиям налогового кодекса, с минимальными затратами на ввод дополнительных данных.

В программе есть все средства по отбору, фильтрации, сортировки данных в разрезе налоговых статей и единиц учета. Но вместе с возможностью ведения многоуровневой аналитики по статьям учета, Вы можете получить гораздо большие возможности по анализу данных, чем требует 25-ая статья, и без каких либо дополнительных действий. Здесь мы сделали значительный запас прочности для возможного дальнейшего изменения налогового законодательства.


Редактирование статьи

Диалог редактирования статьи позволяет задать все необходимые параметры статьи.

Диалог содержит следующие элементы:

Название — определяет название статьи.

Кратко — задает код статьи или ее краткое наименование. Код должен быть кратким, чтобы его было удобно вводить, и должен определять статью так, чтобы по коду можно было установить, о чем идет речь. Во многих отчетах и журналах отображается именно краткое наименование статьи. Длина кода не должна превышать 20 символов.

Вид — определяет вид статьи учета.

См. также
Список статей учета


При удалении статьи

При удалении статьи учета программа проверяет, есть ли бухгалтерские проводки с этой статьей. Если проводки найдены, программа сообщит В ЖБО найдены проводки со статьей такой-то и предложит два варианта решения этой проблемы:

·Перевести проводки на другую статью

·Удалить проводки

Выберите нужный вариант и нажмите <OK>. Кнопка <Отмена> позволяет отказаться от удаления статьи. При выборе Удалить проводки программа удалит спорные проводки. Если же будет выбран вариант с переносом, появится список статей учета. Выберите нужную статью для перевода не нее проводок и нажмите <OK>.

См. также
Редактирование статей учета


Аналитический учет

Программа Инфо-Предприятие позволяет вести многомерный аналитический учет по счетам бухгалтерского учета. Такая возможность резко упрощает обработку данных и повышает возможности анализа информации.

Любой бухгалтерский счет в плане счетов может иметь один или несколько аналитических признаков. Каждый признак представляет собой произвольный справочник. Если счет имеет аналитику, то при указании его в проводке надо будет указывать еще и запись этого справочника.

Пример.

Счет 70 бухгалтерского учета предназначен для расчетов с персоналом по оплате труда. Разумно подключить к нему справочник сотрудников в качестве аналитики. Тогда каждый раз при совершении проводок по начислению и выдачи зарплаты Вы будете указывать конкретного сотрудника.

Счет может иметь неограниченное кол-во аналитик. Аналитики дополняют возможности субсчетов. Если же счет с аналитикой имеет субсчета, то все они наследуют его аналитики. Субсчета могут иметь и свои аналитические признаки. Тогда, при совершении проводок по ним надо будет указывать как аналитики, унаследованные от счета верхнего уровня, так и его собственные аналитики.

Подключить аналитические признаки или изменить структуру аналитического учета Вы можете в плане счетов при выборе пункта меню «Установка | План счетов».

При отображении счетов в журнале бухгалтерских операций, таблице проводоки т.д. к ним добавляются коды аналитик. Так, если в справочнике сотрудников есть человек с табельным номеров 001, а 70 — счет последнего уровня, код будет записан так:

70/001

Такая схема записи полностью аналогична записи субсчетов счета. Однако при выборе такого кода счета из плана счетов, Вы увидите диалог с закладками:

Здесь на закладке Счет расположен собственно план счетов. При выборе конкретного счета последнего уровня (в нашем примере это 70-ый счет), будут добавлены дополнительные закладки, соответствующие аналитическим признакам счета. При их выборе Вы перейдете в соответствующий справочник. В нашем примере, на закладке Сотрудник расположен справочник сотрудников.

При переходе в редактор справочников Вы можете не увидеть нужную запись (нужного сотрудника). Все верно. Для некоторых счетов не все записи появляются в справочнике, привязанном к счету, о чем говорит надпись Отфильтровано в строке статуса. Программа запоминает использованные записи выбранного справочника в контексте счета, аналитикой которого он является. При попытке добавить запись в аналитический справочник, Отфильтровано исчезнет, и Вы увидите все записи справочника. Выберите требуемую или добавьте новую запись. Она запомнится как использованная и будет в следующий раз появляться с самого начала. Для того чтобы убрать одну или несколько строк справочника из использованных, выделите их и выберите к контекстном меню пункт Скрыть строки.

После выбора счета, программа перейдет к первой закладке с аналитикой. Выбрав аналитику, Вы перейдете к следующей закладке и так далее до конца. В отличие от выбора субсчетов счета, выбор аналитики можно изменить произвольным образом в любое время. Для этого можно воспользоваться стрелками Я или а и, перейдя к нужной закладке, выбрать другую запись справочника.

См. также
План счетов
Редактирование журнала аналитики


Аналитика для счета

В этом окне отображаются аналитические признаки выбранного счета. Счет может иметь неограниченное кол-во аналитических признаков. Здесь Вы можете добавлять, удалять, менять порядок аналитик и их параметры.

В таблице может быть максимум три колонки:

·Справочник — показывает название справочника, подключенного в качестве аналитики счета.

·Текст — (может отсутствовать) показывать контекстное название аналитического признака конкретно для этого счета.

·Учет — (может отсутствовать) отображает, по какой аналитике ведется учет: Суммов — если по аналитике ведется суммовой учет, Кол-сум — если по аналитике ведется количественно-суммовой учет. Учет может быть только

В таблице Вы можете выполнять следующие действия:

Подключение аналитики — происходит при добавлении записи в таблицу. После чего появится диалог подключения аналитики. После ввода данных и нажатия <OK> будет добавлена дополнительная аналитика к счету.

Отключение аналитики — происходит при удалении записи из таблицы. Перед отключением появится подтверждение: Отключить аналитику такую-то ?. Нажмите Да для отключения. Если с аналитикой были сделаны бухгалтерские проводки, программа выдаст дополнительное подтверждение: Проводки в операции такой-то используют эту аналитику. Удалить все ссылки на нее ?. При удалении аналитики проводки остаются, однако все ссылки будут безвозвратно утеряны. Если Вы сомневаетесь, лучше нажмите Нет. Наличие резервной копии также поможет Вам повернуть ситуацию вспять.

Изменить параметры аналитики — происходит при редактировании записи таблицы. Появится диалог настройки аналитики.

Изменить порядок следования признаков происходит при изменении порядка следования строк. Порядок аналитик используется при отображении кода счета в проводках. Закладки с аналитиками также будут идти в этом порядке. Однако порядок может быть изменен на некоторое время в процессе заполнения некоторых отчетов, в случае если ими вызываются диалоги выбора аналитики или изменения порядка отображения аналитик. После закрытия окон отчетов восстанавливается исходный порядок следования.

После завершения работы с окном нажмите Закрыть.

См. также
План счетов


Подключение аналитики

Подключение аналитики означает, что при указании кода выбранного счета надо будет указывать и конкретный объект аналитики. Программа предлагает подключить к аналитике этого счета один из доступных справочников. Выберите нужный и нажмите Выбрать. Нажав <Отмена> можно отказаться от подключения.

Подключение никак не влияет на существующие проводки с этим счетом. Если такие проводки имеются, то в бухгалтерских отчетах они будут отмечаться строкой Нет аналитики. Вы можете получить движение по таким проводкам и установить там нужное значение подключенного аналитического признака.

Отредактировать аналитику и добавить дополнительные аналитические признаки можно в списке аналитик счета. Его можно вызвать из плана счетов после того, как будет подключена аналитика.

Замечание!

Список справочников, доступных для подключения в качестве аналитики счета может быть расширен. Для начала, зайдите в список журналов аналитики при помощи пункта меню «Разработка | Журналы аналитики» и посмотрите там нужный Вам справочник. Если нашли — нажмите <Ctrl>+<Shift>+<Enter> на выбранном справочнике и в появившемся окне установите опцию Является аналитикой счета. Если нужный справочник не найден — его надо сначала создать, а потом повторить предыдущую операцию.

См. также
План счетов


Настройка аналитики

Диалог настройки аналитики предназначен для задания параметров аналитического признака выбранного счета. Диалог содержит следующие элементы:

Справочник — здесь указывается справочник, который должен быть подключен в качестве аналитики к этому счету. Выбор идет из списка доступных справочников. Список справочников, доступных для подключения в качестве аналитики счета может быть расширен.

Текст — определяет контекстное название аналитического признака конкретно для этого счета. Оно будет появляться в имени закладки соответствующей аналитики и везде, где будет запрашиваться данная аналитика. Например, для 01-ого счета справочник сотрудников может быть подключен как аналитика, но называться он будет МОЛ (материально ответственное лицо). Графа может быть оставлена пустой, в этом случае в качестве текста будет использовано название справочника.

Опции. Здесь указываются следующие опции аналитики.

Основная аналитика — используется только при наличии двух и более аналитик у счета. Используйте эту опцию, если в журнале или отчете указывается название не той аналитики, которой надо. Например, если по 62-ому счету указано две аналитики: клиент и договор, то по умолчанию в качестве названия такого расширенного кода счета с аналитиками в некоторых отчетах и журнала будет отображаться название последней аналитики, т.е. название договора. Установка опции Основная аналитика у клиент заставит программу отображать название клиента, а не договора.

Количественно-суммовой учет — определяет вид учета аналитики.

Дополнительный учет — определяет дополнительный вид учета аналитики. При включении опции справа откроются дополнительные графы:

·Название показателя — название дополнительного показателя, по которому будет вестись дополнительный учет. Это произвольная строка, которая может содержать внутри символ | (вертикальную черту). Если он есть, то фраза слева от черты будет показываться в таблицах, а фраза справа от черты будет показываться в диалогах. Если черты нет, то название одинаково будет показываться и в таблицах, и в диалогах. Пример: «В валюте|Сумма в валюте».

·Название стоимости единицы — определяет название частного от деления суммы проводки на сумму дополнительного показателя. Также может содержать внутри символ | (вертикальную черту). Пример: «Курс»

Вышеуказанные три опции могут быть установлены только у одной аналитик счета либо не быть установлены ни у одной аналитики.

Фильтровать по счетам — задает специальное условие на фильтрацию подключаемого справочника. Для ее использования справочник должен иметь поле с выбором из плана счетов. Тогда при выборе аналитики по этому счету будут отображены только записи журнала, ссылающиеся на этот счет. При добавлении записи в справочник в процессе работы с планом счетов поле счет будет недоступно для изменения и в него по умолчанию подставится счет, аналитикой которого в данный момент выступает этот справочник.

Эта функция дает возможность подключать один и тот же справочник к разным счетам так, что внутри каждого счета будут свои записи. Типичный пример — справочник подразделений, который может находиться в качестве аналитики в разных счетах: 44-ом, 20-ом, 23-ем и т.д.

Фильтровать по субсчетам — имеет смысл указывать только у счетов, имеющих субсчета или счетов, к которым планируется добавлять субсчета. В этом случае для каждого субсчета этого счета справочник, используемый в качестве аналитики, будет фильтроваться отдельно по этому субсчету. Если опция не указана, то поле с выбором из плана счетов должно указывать на этот счет, а не его субсчета. Тогда при выборе любого субсчета этого счета условия фильтрации аналитики будут одинаковые: то что записи аналитики ссылаются на счет верхнего уровня.

Разрешить скрывать вручную — указывает, что не все записи появляются в справочнике, привязанном к счету, о чем будет говорить надпись Отфильтровано в строке статуса. Программа будет запоминать использованные записи выбранного справочника в контексте счета, аналитикой которого он является. При попытке добавить запись в аналитический справочник, Отфильтровано исчезнет, и пользователь увидит все записи справочника. При выборе требуемой записи, она запомнится как использованная и будет в следующий раз появляться с самого начала. Для того чтобы убирать одну или несколько строк справочника из использованных, появится контекстный пункт меню Скрыть строки.

Запретить изменять и удалять — доступна только Администратору, позволяет закрыть доступ к изменению параметров аналитики и возможности ее удалить обычному пользователю.

См. также
Аналитика для счета
Подключение аналитики


Типовые операции

При добавлении новой бухгалтерской операции программа в первую очередь предложит выбрать ее из списка типовых операций. Типовые операции предназначены для автоматизации ввода часто используемых бухгалтерских операций.

Вообще, типовая операция — это алгоритм, который запрoсит у Вас некоторые параметры и на основе них сформирует новую бухгалтерскую операцию с набором проводок. В стандартной программе присутствует большое кол-во типовых операций на все случаи жизни. Но бывает, что и их не хватает. Если Вам часто приходится делать однотипные операции с одной и той же схемой проводок, попробуйте создать типовую операцию на основе существующей бухгалтерской операции.

Список типовых операций представляет собой таблицу. Все операции разделены по группам или разделам по их смысловому значению. Например, в группе Касса содержатся типовые операции по работе с кассой.

Перед тем как перейти к типовой операции Вам надо выбрать ее раздел. Это можно сделать с помощью мыши или клавиш б и в. После того как раздел выбран, необходимо войти в него. Для этого надо нажать <Enter> или кнопку [image] слева от группы. После чего Вы попадете в список типовых операций этой группы.

Замечание!

В принципе, разделение на группы может быть сложнее. Например, группа может содержать подгруппы, а уж только те конкретные операции.

Вы можете вернуться к выбору разделов типовых операций, если воспользуетесь клавишей <Esc> или кнопкой [image] в левом углу заголовка таблицы.

Для быстрого перехода к операции или группе можно воспользоваться контекстным поиском.

Чтобы выбрать типовую операцию надо нажать клавишу <Enter>, воспользоваться мышью или кнопкой Выбрать внизу диалога. Появится диалог с параметрами типовой операции. Его вид зависит от выбранной операции и определяется ее алгоритмом.

В любой момент выбор Вы также можете воспользоваться кнопкой Вручную, а на верхнем уровне (при выборе группы типовой операции) клавишей <Esc> для того чтобы отказаться от ввода типовой и ввести операцию вручную. При этом появится диалог ввода новой бухгалтерской операции.

Нажатие кнопки <Отмена> позволяет отказаться от ввода операции.

С помощью Найти можно осуществлять поиск операции или группы по названию (включите опцию Поиск в подуровнях для поиска операции по всему списку).

См.также
Работа с таблицами
Ввод типовой операции
Журнал бухгалтерских операций


Ввод типовой операции

Рассмотрим пример ввода типовой операции в общем. Описание работы с конкретным диалогом или типовой операцией можно найти в специализированной справке.

При вводе типовой операции программа запрoсит у Вас некоторые параметры и на основе них сформирует новую бухгалтерскую операцию с набором проводок. Вид диалога параметров зависит от конкретной типовой операции.

Приведем пример типовой операции, осуществляющий приобретение материалов. При вызове этой операции на экране появится диалог ввода параметров:

Здесь программа запрашивает счет материала, счет поставщика, счет оплаты. Также вводится кол-во, общая сумма и налоги. Документ и дата являются параметрами новой бухгалтерской операции. В заголовке диалога пишется название типовой операции. После нажатия <OK> программа формирует новую бухгалтерскую операцию, содержащую проводки (мы ввели примерные данные):

60/Поставщик | 51 | 11800
10/Материал | 60/Поставщик | 1000 шт x 10 = 10000
19/10 | 60/Поставщик | 1800
68/НДС | 19/10 | 1800

Дата и документ у операции такие, как мы заказали в параметрах.

Теперь, если в диалоге редактирования новой бухгалтерской операции, получившейся при расчете этой типовой нажать <OK>, то операция добавится, и Вы вернетесь в журнал бухгалтерских операций. Если же воспользоваться кнопкой <OK> и След., то операция добавится и управление опять перейдет к диалогу ввода параметров, но уже для новой типовой операции. Нажатие <Отмена> просто возвращает к диалогу ввода параметров.

Описание алгоритма этой типовой операции достаточно просто, и Вы сможете сами создать такую же, особенно если воспользуетесь встроенной возможностью создавать новые типовые операции на основе уже существующих бухгалтерских операций.

См.также
Текст алгоритма этой типовой
Выбор типовой операции
Типовые операции


Создание типовой операции на основе существующей

Вы часто вручную вводите одну и ту же схему проводок, заменяя в ней сумму или какой-либо счет ? Тогда это легко автоматизировать. У Вас есть возможность заставить программу запрашивать необходимые параметры, и самой делать проводки. Для этого надо создать типовую операцию, которая будет все это делать. Это делается в четыре этапа:

1. Сначала, войдите в редактор типовых операций. Для этого надо выбрать пункт меню «Разработка | Типовые операции». На экране появится текстовый редактор.

2. Затем, нажмите правую кнопку мыши и в контекстном меню выберите Мастер создания операции. Появится окно журнала бухгалтерских операций. Выберите операцию, которую Вы хотите автоматизировать.

3. Если у операции есть повторяющиеся счета, то программа cпрoсит, будете ли Вы изменять эти счета в процессе выполнения типовой операции или они будут фиксированы для всех операций. Отметьте [image] выбираемые счета. Нажмите <OK>. Программа создаст текст типовой операции.

4. Типовая операция готова. Осталось сделать последние штрихи. В тексте, где идут вызовы функции ПРОBOДКА, поменяйте числовые суммы на формулы. После этого сохраните файл и попробуйте запустить созданную Вами типовую операцию нажатием клавиши <F9> или кнопки [image] на панели инструментов.

Если надо описать более сложный алгоритм расчета, то для этого уже понадобится знание внутреннего языка.


Обзор

Бухгалтерские и налоговые отчеты

Для бухгалтерии определен набор стандартных отчетов. Все они используют данные журнала бухгалтерских операций.

Вы можете получить следующие бухгалтерские и налоговые отчеты:

Бухгалтерия:

·Оборотная ведомость — показывает в таблице счета со своей аналитикой, сальдо на начало и конец периода по ним, обороты за период;

·Ведомость остатков — показывает в таблице счета со своей аналитикой и их остатки на указанную дату;

·Карточка движения средств — для выбранного счета показывает в таблице все проводки с ним и изменения остатка после каждой проводки;

·Анализ счета — показывает суммарные обороты выбранного счета(ов) раздельно по каждому корреспондирующему с ним счету;

·Материальный отчет — показывает суммарные обороты выбранного счета(ов) раздельно по каждому корреспондирующему с ним счету и аналитике в разрезе всех субсчетов и аналитик выбранного счета(ов);

·Главная книга — выводит обороты (дебетовые и кредитовые) выбранного счета(ов) за отчетный период с заданной детализацией;

·Журнал-ордер — выводит кредитовые обороты выбранного счета(ов) за отчетный период с заданной детализацией;

·Ведомость к журналу-ордеру — выводит дебетовые обороты выбранного счета(ов) за отчетный период с заданной детализацией;

·Шахматка — показывает обороты между всеми счетами во взаимной корреспонденции за отчетный период.

·Обороты по периодам — выводит обороты по выбранному счету(ов) и его субсчетам и аналитикам за отчетный период с заданной детализацией.

·Журнально-ордерные формы — открывает список журнально-ордерных форм с возможностью их настройки.

·Обороты по аналитике — по каждому объекту аналитики выбранного типа показывает сальдо на начало и конец периода, оборот за период;

·Движение по аналитике — показывает все проводки, в которых участвовала указанная аналитика;

·Главная книга по аналитике — показывает обороты выбранного объекта аналитики за отчетный период с заданной детализацией;

·Кросс-отчет по аналитикам — предназначен для анализа проводок, у которых указано как минимум две аналитики и выводит в шахматной форме обороты по этим аналитикам.

Налоговый учет:

·НУ: Сводная ведомость — показывает в таблице статьи, сумму дохода и расхода (прямого и косвенного) по ним, не учтенные суммы;

·НУ: Регистр по статье — для выбранной статьи показывает в таблице все проводки с ней и изменение налоговой базы после каждой проводки;

·НУ: Дебетовая ведомость статьи — позволяет детализировать доходы или расходы по статье в разрезе счетов — единиц учета, участвующих в дебете;

·НУ: Кредитовая ведомость статьи — позволяет детализировать доходы или расходы по статье в разрезе счетов — единиц учета, участвующих в кредите;

·НУ: Регистр по единице учета — для выбранной единицы учета показывает все налоговые проводки, проходившие по ней и их влияние на налоговую базу;

Для задания периода, за который формируется отчет, используется окно в левом верхнем углу панели управления:

Для смены периода можно воспользоваться мышью или нажать клавишу <F2> (или <Alt>+<F2> для установки произвольного периода, см.ниже). В появившемся списке можно перемещаться с помощью клавиш б и в. Переключиться на другой год можно также с помощью кнопок внизу списка. При перемещении с помощью клавиш переключение на другой год происходит автоматически.

Если отчет нужно сформировать за период отличный от предложенного в списке, выберите вариант «Произвольный период». В этом случае дату начала период и дату окончания можно внести в отдельных графах:

При этом надо учитывать, что программа обрабатывает все операции на дату начала указанного периода и позже ( >= Начальная дата ), но раньше даты окончания периода ( < Конечная дата ). Например, чтобы выбрать все операции за I квартал 2009 года надо положить начальную дату 01.01.2009, а конечную дату 01.04.2009. Т.е. конечная дата периода должна быть на один день больше даты последней бухгалтерской операции, которая будет обработана в отчете.

В графах ввода дат можно использовать клавишу <F2> для подстановки даты из календаря, клавишу <Enter> для того, чтобы применить изменения даты и пересчитать отчет и клавишу <Esc> для отмены изменений.

Период может быть единым на все отчеты или свой для каждого отчета. За это отвечает переключатель под графой выбора года. Для смены варианта достаточно щелкнуть мышью по надписи.

Каждый отчет имеет параметры настройки. Обычно параметры запрашиваются перед выводом отчета, но запрос параметров может быть и отключен. Для вызова диалога настройки в контекстном меню отчета выберите пункт Настроить или нажмите комбинацию клавиш <Alt>+<Enter>. Имеется возможность создавать произвольные журнально-ордерные формы. Там можно задать нужные параметры: детализацию, счета, опции и т.д. и сохранять эти настройки под именем, а в последующем получать нужную форму в любой момент.

Все отчеты взаимосвязаны. И при выборе конкретной строчки в отчете можно либо получить другой более детализированный отчет либо выйти к конкретной операции или вывести на экран первичный документ. Так, например, из оборотной ведомости при выборе строчки с оборотами счета, Вы сможете получить движение средств по этому счету. А в движении средств отредактировать или удалить нужную бухгалтерскую операцию. Если Вы используете связь операций с документами, то в нем же можно и просмотреть документ, сформировавший эту операцию.

При вызове детализирующего отчета из основного он использует отчетный период, по которому был сформирован основной. При пересчете любого отчета программа будет использовать отчетный период, установленный в программе на этот момент.

Таким образом, анализируя общие цифры, Вы можете опускаться к первичной информации и здесь же изменять ее. Такие отчеты как главная книга и материальный позволяют наглядно отображать и аналитическую информацию. Их также можно вызывать из оборотной ведомости.

Во всех отчетах возможно ошибочная информация в таблицах выделяется красным цветом. Это может быть отрицательное кредитовое сальдо у пассивных счетов или отрицательное дебетовое у активных. Дополнительно, Вы можете сделать проверку проводок и остатков, если воспользуетесь стандартной проверкой данных в пункте меню «Сервис | Проверить».

В некоторых отчетах при нажатии на кнопку [image] в левом верхнем углу таблицы, можно вывести дополнительные колонки.

После того как отчет сформирован, его можно вывести на печать.

Воспользовавшись пунктом меню «Окна | Новое» окно Вы сможете делать несколько окон, содержащих данный отчет (за разные периоды, с разными параметрами настройки).

См. также
Ограничения прав доступа к оборотам


Анализ счета

С помощью анализа счета Вы сможете увидеть обороты выбранного Вами счета(ов) раздельно по каждому корреспондирующему с ним счету и аналитике раздельно по дебету и по кредиту. Он также выводит сальдо выбранного счета на начало и конец периода.

Отчет «Анализ счета» можно вызвать двумя способами:

·Выбрав пункт меню «Отчеты | Анализ счета». В этом случае программа предложит указать параметры отчета. Там же можно указать счет или шаблон счетов, по которым будет формироваться отчет. Программа будет выбирать все счета, удовлетворяющие шаблону. При выборе можно использовать кнопку выбора [image]. При вводе перечисления счетов ставьте в конец ; (точку с запятой), тогда подставленный счет будет добавляться к списку, иначе он просто заменит последний счет в списке. Если поле оставить пустым, то Анализ счета будет считаться по всем счетам.

·Из оборотной ведомости и оборотов по аналитике. Так Вы сможете настроить эти параметры при помощи кнопки Настройка в диалоге выбора отчета.

Если корреспондирующие счета имеют субсчета, то они будут выведены вплоть до того уровня, указанного в параметре Развернуть план счетов.

Перейти к субсчетам далее, можно, в зависимости от опции Способ раскрытия групп: или нажав на кнопку [image] или на кнопку [image] слева от счета. Разница в этих способах раскрытия групп заключается в том, будут ли скрываться остальные строки отчета при раскрытии субсчетов, или нет.

Если в параметре Развернуть план счетов стоит вариант Без групп, все субсчета выбранного счета(ов) будут отображены в «плоском» виде.

Форма отчета «Анализ счета» представляет собой таблицу. В таблице появятся колонки:

·Код счета с аналитиками;

·В зависимости от выбора вывода названий в настройках таблиц в пункте меню «Установка | Настройки» программа будет отображать название счета или аналитики;

·Дебетовые обороты для каждого из корреспондирующих счетов или аналитик

·Кредитовые обороты для каждого из корреспондирующих счетов или аналитик

В первой и последней строчке отчеты выводится сальдо счета соответственно на начало периода и на конец.

Для аналитик с суммовым учетом и счетов показываются суммовые обороты и сальдо. Для аналитик с количественно-суммовым учетом обороты и сальдо показываются: в суммовом выражении, в единицах измерения (например, в штуках), отображается средняя цена за единицу. Для выбора режим отображения в отчете количественных и суммовых оборотов по аналитикам, имеющим количественно-суммовой учет, предусмотрена опция Показывать в отчете. Она имеет следующие варианты:

·Суммы и кол-во — включает отображение количественных и суммовых оборотов по аналитикам.

·Только суммы — отключает отображение количественных оборотов по аналитикам, имеющим количественно-суммовой учет или дополнительный учет.

При нажатии на кнопку [image] в левом верхнем углу таблицы, можно вывести дополнительные колонки.

При просмотре анализа счета можно получить карточку движения средств по каждой интересующей сумме, счету или объекту аналитики. Это можно сделать либо при помощи клавиши <Enter> (а для счетов с [image] при помощи комбинации<Ctrl> +<Enter>), либо щелкнув левой кнопкой мыши по выбранной клетке.

В анализе счета есть возможность быстрого суммирования чисел в ячейках таблицы. Для этого просто выделите нужные ячейки, и слева внизу появится их сумма.

См. также
Бухгалтерские и налоговые отчеты


Ведомость к журналу-ордеру

С помощью ведомости к журналу-ордеру Вы сможете увидеть дебетовые обороты выбранного Вами счета(ов) и его аналитик за указанный период с заданной детализацией. Также она позволяет разворачивать обороты по корреспондирующим счетам и выводить остатки по указанной детализации.

Ведомость к журналу-ордеру можно вызвать двумя способами:

·Выбрав пункт меню «Отчеты | Ведомость к журналу-ордеру». В этом случае программа предложит указать параметры отчета. Там же можно указать счет или шаблон счетов, по которым будет формироваться отчет. Программа будет выбирать все счета, удовлетворяющие шаблону. При выборе можно использовать кнопку выбора [image]. При вводе перечисления счетов ставьте в конец ; (точку с запятой), тогда подставленный счет будет добавляться к списку, иначе он просто заменит последний счет в списке. Если поле оставить пустым, то ведомость будет считаться по всем счетам.

·Из оборотной ведомости и оборотов по аналитике. Здесь Вы сможете настроить эти параметры при помощи кнопки Настройка в диалоге выбора отчета.

Так как отличия ведомости от главной книги заключаются только в том, что у нее отключены кредитовые обороты, то работа с ней полностью аналогична работе с главной книгой.

См. также
Бухгалтерские и налоговые отчеты
Настройка ведомости к журналу-ордеру


Ведомость остатков

Ведомость остатков имеет вид сводной таблицы, в которой отображаются счета со своей аналитикой и их остатки на конец периода. Для вызова ведомости остатков воспользуйтесь пунктом меню «Отчеты | Ведомость остатков».

При вызове ведомости программа запросит дату, на которую надо выдать остатки.

Для работы с ведомостью остатков, Вы можете использовать те же действия, что и при работе с оборотной ведомостью, которая является простым обобщением ведомости остатков с добавлением колонки оборотов и начального сальдо.

См. также
Бухгалтерские и налоговые отчеты
Оборотная ведомость
Ограничения прав доступа к оборотам


Главная книга

С помощью главной книги Вы сможете увидеть обороты выбранного Вами счета(ов) и его аналитик за отчетный период с заданной детализацией. Также она позволяет разворачивать обороты по корреспондирующим счетам и выводить остатки по указанной детализации.

Главную книгу можно вызвать двумя способами:

·Выбрав пункт меню «Отчеты | Главная книга». В этом случае программа предложит указать параметры отчета. Там же можно указать счет или шаблон счетов, по которым будет формироваться отчет. Программа будет выбирать все счета, удовлетворяющие шаблону. При выборе можно использовать кнопку выбора [image]. При вводе перечисления счетов ставьте в конец ; (точку с запятой), тогда подставленный счет будет добавляться к списку, иначе он просто заменит последний счет в списке. Если поле оставить пустым, то книга будет считаться по всем счетам.

·Из оборотной ведомости и оборотов по аналитике. Здесь Вы сможете настроить эти параметры при помощи кнопки Настройка в диалоге выбора отчета.

Главная книга представляет собой таблицу, содержащую колонки:

·Период;

·Дебетовые обороты для каждого из корреспондирующих счетов

·Общий дебетовый оборот

·Кредитовые обороты для каждого из корреспондирующих счетов

·Общий кредитовый оборот

·Сальдо конечное (зависит от раздела баланса счета (ов), по которым рассчитывается отчет)

В зависимости от настроек отчета и присутствия оборотов некоторые колонки могут отсутствовать.

Обороты рассчитываются за интервал времени (детализации) указанный в настройках главной книги. Сальдо считается на конец этого интервала. Если в периоде было движение (а если Пустые периоды = Нет, то движение есть во всех показанных периодах), слева будет отображаться кнопка [image], щелкнув на которую можно просмотреть выбранный период с более точной детализацией. Например, если отчет сделан по годам, зайдя в год можно получить обороты по кварталам этого года, зайдя в квартал — по месяцам этого квартала, зайдя в месяц — по дням этого месяца. Если в параметрах отчета переключатель Способ раскрытия групп установлен в значение Раскрытие на том же уровне, то вместо кнопки [image] слева от счета будет кнопка [image] . Щелкнув на нее можно увидеть и выбранный период с более точной детализацией, и остальные строки отчета.

В зависимости от параметра Развернуть план счетов корреспондирующие счета и аналитики могут быть свернуты. Тогда для просмотра их оборотов надо будет нажимать на [image], или, с клавиатуры, <Ctrl>+<+> (плюс). В случае аналитик, будет предложено указать порядок детализации аналитик в отчете. Cчета и аналитики могут быть развернуты до определенного уровня. Колонка развернутого счета будет содержать [image] и подколонки с его субсчетами или аналитиками. А если включена опция Итоги по коррсчетам то и колонку Итого. Вариант Без групп отключает группировку корреспондирующих счетов и все они будут отображены в «плоском» виде.

Для аналитик с суммовым учетом и счетов показываются суммовые обороты и сальдо. Для аналитик с количественно-суммовым учетом обороты и сальдо показываются: в суммовом выражении, в единицах измерения (например, в штуках), отображается средняя цена за единицу. Если включена опция Только суммовая форма, то по всем аналитикам будут отражаться только суммы.

Первая строка таблицы всегда содержит сальдо начало периода, а последняя показывает итоговую сумму оборотов по каждому из корреспондирующих счетов и аналитик и в целом, а также остаток на конец периода по счету (сумме остатков счетов).

При просмотре главной книги можно получить карточку движения средств по каждой интересующей сумме или счету. Это можно сделать либо при помощи клавиши <Enter> (а для счетов с [image] при помощи комбинации <Ctrl>+<Enter>), либо щелкнув левой кнопкой мыши по выбранной клетке.

В главной книге есть возможность быстрого суммирования чисел в ячейках таблицы. Для этого просто выделите нужные ячейки, и слева внизу появится их сумма.

См. также
Бухгалтерские и налоговые отчеты
Настройка главной книги


Движение по аналитике

Карточка движения по аналитике позволяет показать все проводки, в которых участвовала эта аналитика. Движение по аналитике можно вызвать помощи пункта меню «Отчеты | Движение по аналитике». Программа запросит при запуске отчета указать вид аналитики и собственно сам объект аналитики указанного вида. Если объект аналитики не указывается, выдается движение по всем проводкам, в которых участвуют аналитики этого вида.

Следующие колонки будут отображаться в таблице:

·Дата операции;

·Название документа;

·В зависимости от выбора вывода названий в настройках таблиц в пункте меню «Установка | Настройки» будет отображать название операции

·Дебет проводки

·Кредит проводки

·Статья налогового учета (СУ), если ведется налоговый учет и в проводках указана какая-либо статья;

·Оборот по дебету и кредиту; если ведется налоговый учет и сумма по налоговому учету отличается от бухгалтерской, отображается сумма по налоговому учету;

Для суммовых проводок показывается сумма. Для количественно-суммовых проводок показываются: оборот в суммовом выражении, оборот в единицах измерения (например, в штуках), средняя цена за единицу. Если включена опция Только суммовая форма, то по всем проводкам будут отражаться только суммы.

Если несколько проводок относятся к одной операции, то поля c номером, датой, документом и названием операции будут заполнены только у первой из них.

Если справа от операции отображаются кнопки [image] или [image], то нажав на них (с помощью мыши или с помощью комбинации клавиш <Ctrl>+<Menu> или <Ctrl>+<Enter>) можно вывести документ, по которому сформирована операция.

Находясь в карточке движения по аналитике, Вы можете выполнить следующие действия:

Удалять операции — происходит при удалении записи из таблицы. Перед удалением определения появится подтверждение: Удалить бухгалтерскую операцию такую-то ?. Нажмите Да для удаления.

Редактировать операции — выполняется при изменении записи в таблице. Появится диалог редактирования бухгалтерской операции, где можно изменить любую проводку операции. Редактирование операции связанной с документом осуществляется при редактировании документа.

После внесения изменения в отчет, измененная строка подсвечивается серым и ее редактировать или удалять уже нельзя. Вносить изменения в эту операцию можно будет после перерасчета движения средств.

См. также
Бухгалтерские и налоговые отчеты
Ограничения прав доступа к оборотам


Движение средств

Карточка движения средств по счету позволяет показать все проводки, проходившие по этому счету и показать изменения остатка по счету с точностью до каждой проводки. Движение может быть ограничено условиями на аналитики этого счета. Движение средств можно вызвать помощи пункта меню «Отчеты | Движение средств». Также, карточка движения средств вызывается из любого другого бухгалтерского отчета. В первом случае программа запросит счет или шаблон, по которому надо вывести движение. Во втором счет зависит от контекста. При необходимости, можно дополнительно поставить условие на корреспондирующие счета с помощью графы В корреспонденции с.

Если выбранный счет имеет субсчета, то будут показываться проводки со всеми его субсчетами.

Следующие колонки будут отображаться в таблице:

·Дата операции;

·Название документа;

·В зависимости от выбора вывода названий в настройках таблиц в пункте меню «Установка | Настройки» программа будет отображать название операции

·В зависимости от выбора вывода того кто создал/изменил операцию в настройках таблиц в пункте меню «Установка | Настройки» программа будет отображать имя пользователя

·В зависимости от выбора вывода суммы документа в настройках бухгалтерии в пункте меню «Установка | Настройки» программа будет отображать сумму документа, если бухгалтерская операция сформировалась из документа.

·Корреспондирующий счет со своей аналитикой;

·Если счет, по которому выводится движение средств, имеет субсчета или аналитики, выводиться счет нижнего уровня или аналитика, участвующая в проводке;

·Статья налогового учета (СУ), если ведется налоговый учет и в проводках указана какая-либо статья;

·Оборот по дебету и кредиту; если ведется налоговый учет и сумма по налоговому учету отличается от бухгалтерской, отображается сумма по налоговому учету;

·Если движение по счету вызывается без учета корреспонденции, показывается остаток по счету (зависит от раздела баланса счета, по которому выполняется отчет).

Для суммовых проводок показывается сумма. Для количественно-суммовых проводок показываются: оборот в суммовом выражении, оборот в единицах измерения (например, в штуках), средняя цена за единицу.

Если несколько проводок относятся к одной операции, то поля c номером, датой, документом и названием операции будут заполнены только у первой из них.

Первая строка таблицы всегда содержит сальдо начало периода, а последняя показывает итоговые значения оборотов за период и сальдо на конец периода.

Если справа от операции отображаются кнопки [image] или [image], то нажав на них (с помощью мыши или с помощью комбинации клавиш <Ctrl>+<Menu> или <Ctrl>+<Enter>) можно вывести документ, по которому сформирована операция.

Находясь в карточке движения средств, Вы можете выполнить следующие действия:

Удалять операции — происходит при удалении записи из таблицы. Перед удалением определения появится подтверждение: Удалить бухгалтерскую операцию такую-то ?. Нажмите Да для удаления.

Редактировать операции — выполняется при изменении записи в таблице. Появится диалог редактирования бухгалтерской операции, где можно изменить любую проводку операции. Редактирование операции связанной с документом осуществляется при редактировании документа.

Переставлять местами операции — поддерживается как перестановка операций внутри даты, так и переход в следующую или предыдущую дату. В последнем случае будет выдан дополнительный запрос «Будет изменена дата бухгалтерской операции, продолжить?».

После внесения изменения в отчет, измененная строка подсвечивается серым и ее редактировать или удалять уже нельзя. Вносить изменения в эту операцию можно будет после перерасчета движения средств.

См. также
Бухгалтерские и налоговые отчеты
Ограничения прав доступа к оборотам


НУ: Дебетовая ведомость статьи

Дебетовая ведомость статьи налогового учета позволяет детализировать доходы или расходы по статье в разрезе счетов — единиц учета. Анализируется связь дебета счетов и указанная статья. В строках отчета будут статьи, в столбцах — объекты учета, в ячейках на пересечении — доход или расход по налоговому учету по выбранной статье и объекту. Ведомость можно вызвать помощи пункта меню «Отчеты | Прочие отчеты», выбрав в списке отчетов Налоговый учет/Дебетовая ведомость статьи. Также, она вызывается из расчета налоговой базы.

При вызове отчета появится диалог настроек, содержащий следующие параметры:

·в опции Макс.порядок субсчетов указывается максимальный порядок субсчетов, до которого будет детализирован отчет;

·в опции Макс.порядок субстатей указывается максимальный порядок субстатей, до которого будет детализирован отчет;

·опция Вертикальная форма меняет местами статьи и счета;

Форма ведомости представляет собой таблицу. В таблице появятся колонки:

·Код статьи;

·В зависимости от выбора вывода названий в настройках таблиц в пункте меню «Установка | Настройки» программа будет отображать название статьи;

·Доход или расход для каждого объекта учета, влияющего на доход или расход по выбранной статье;

·Общий доход или расход по статье, а если статья имеет подстатьи, для каждой из них;

В последней строке таблицы приводятся итоговые суммы колонок — доходы или расходы по объектам учета.

В ведомости есть возможность быстрого суммирования чисел в ячейках таблицы. Для этого просто выделите нужные ячейки, и слева внизу появится их сумма.

См. также
Бухгалтерские и налоговые отчеты


Журнал-ордер

С помощью журнала-ордера Вы сможете увидеть кредитовые обороты выбранного Вами счета(ов) и его аналитик за указанный период с заданной детализацией. Также он позволяет разворачивать обороты по корреспондирующим счетам и выводить остатки по указанной детализации.

Журнал-ордер можно вызвать двумя способами:

·Выбрав пункт меню «Отчеты | Журнал-ордер». В этом случае программа предложит указать параметры отчета. Там же можно указать счет или шаблон счетов, по которым будет формироваться отчет. Программа будет выбирать все счета, удовлетворяющие шаблону. При выборе можно использовать кнопку выбора [image]. При вводе перечисления счетов ставьте в конец ; (точку с запятой), тогда подставленный счет будет добавляться к списку, иначе он просто заменит последний счет в списке. Если поле оставить пустым, то журнал-ордер будет считаться по всем счетам.

·Из оборотной ведомости и оборотов по аналитике. Здесь Вы сможете настроить эти параметры при помощи кнопки Настройка в диалоге выбора отчета.

Так как отличия журнала-ордера от главной книги заключаются только в том, что у него отключены дебетовые обороты, то работа с ним полностью аналогична работе с главной книгой.

См. также
Бухгалтерские и налоговые отчеты
Настройка журнала-ордера


НУ: Кредитовая ведомость статьи

Кредитовая ведомость статьи налогового учета позволяет детализировать доходы или расходы по статье в разрезе счетов — единиц учета. Анализируется связь кредита счетов и указанная статья. В строках отчета будут статьи, в столбцах — объекты учета, в ячейках на пересечении — доход или расход по налоговому учету по выбранной статье и объекту. Ведомость можно вызвать помощи пункта меню «Отчеты | Прочие отчеты», выбрав в списке отчетов «Налоговый учет | Кредитовая ведомость статьи». Также, она вызывается из расчета налоговой базы.

Кредитовая ведомость полностью повторяет в своей работе и настройке дебетовую ведомость статьи за единственным исключением, что анализу подлежат кредит счетов, а не его дебет.

См. также
Бухгалтерские и налоговые отчеты


Материальный отчет

С помощью материального отчета Вы сможете увидеть обороты выбранного Вами счета(ов) и его аналитик раздельно по каждому корреспондирующему с ним счету и аналитике в разрезе всех субсчетов и аналитик выбранного счета(ов). Вдобавок он выводит суммарные обороты и сальдо на начало и конец периода.

Материальный отчет можно вызвать двумя способами:

·Выбрав пункт меню «Отчеты | Материальный отчет». В этом случае программа предложит указать параметры отчета. Там же можно указать счет или шаблон счетов, по которым будет формироваться отчет. Программа будет выбирать все счета, удовлетворяющие шаблону. При выборе можно использовать кнопку выбора [image]. При вводе перечисления счетов ставьте в конец ; (точку с запятой), тогда подставленный счет будет добавляться к списку, иначе он просто заменит последний счет в списке. Если поле оставить пустым, то материальный отчет будет считаться по всем счетам (получится шахматка).

·Из оборотной ведомости и оборотов по аналитике. Так Вы сможете настроить эти параметры при помощи кнопки Настройка в диалоге выбора отчета.

Если выбранный счет(а) имеет субсчета, то они будут выведены вплоть до того уровня, до которого разворачивается план счетов, указанного в настройках материального отчета. Перейти к субсчетам далее, можно, в зависимости от опции Способ раскрытия групп: или нажав на кнопку [image] или на кнопку [image] слева от счета. Разница в этих способах раскрытия групп заключается в том, будут ли скрываться остальные строки отчета при раскрытии субсчетов, или нет.

Если в параметре Развернуть план счетов стоит вариант Без групп, все субсчета выбранного счета(ов) будут отображены в «плоском» виде.

Если выбранный счет(а) имеет аналитики, будет предложено указать порядок детализации аналитик в отчете. Обороты по аналитикам будут сгруппированы также как и субсчета в указанном порядке. Для входа внутрь следующей аналитики надо будет нажимать [image] или [image] слева. Но параметр Развернуть план счетов также будет работать и для аналитик.

Все вышесказанное относится и к корреспондирующим счетам и аналитиками. В зависимости от параметра Развернуть план счетов корреспондирующие счета и аналитики могут быть свернуты. Тогда для просмотра их оборотов надо будет нажимать на [image], или, с клавиатуры, <Ctrl>+<+> (плюс). Cчета и аналитики могут быть развернуты до определенного уровня. Колонка развернутого счета будет содержать [image] и подколонки с его субсчетами или аналитиками. А если включена опция Итоги по коррсчетам то и колонку Итого. Вариант Без групп отключает группировку корреспондирующих счетов и все они будут отображены в «плоском» виде.

Форма материального отчета представляет собой таблицу. В таблице появятся колонки:

·Код счета с аналитиками;

·В зависимости от выбора вывода названий в настройках таблиц в пункте меню «Установка | Настройки» программа будет отображать название счета или аналитики;

·Сальдо начальное (зависит от раздела баланса счета (ов), по которым рассчитывается отчет)

·Дебетовые обороты для каждого из корреспондирующих счетов или аналитик

·Общий дебетовый оборот

·Кредитовые обороты для каждого из корреспондирующих счетов или аналитик

·Общий кредитовый оборот

·Сальдо конечное (зависит от раздела баланса счета (ов), по которым рассчитывается отчет)

В зависимости от настроек отчета и присутствия оборотов некоторые колонки могут отсутствовать.

При нажатии на кнопку [image] в левом верхнем углу таблицы, можно вывести дополнительные колонки.

Пример:

Для просмотра аналитики по 41 счету следует нажать значок <+> в наименовании колонки данного счета. Появится диалог Выбора аналитики, в котором можно указать, скажем склад или товар. В соответствии с выбранным параметром, будет сформирован материальный отчет либо по товарам, либо по складу.

Для аналитик с суммовым учетом и счетов показываются суммовые обороты и сальдо. Для аналитик с количественно-суммовым учетом обороты и сальдо показываются: в суммовом выражении, в единицах измерения (например, в штуках), отображается средняя цена за единицу. Для выбора режим отображения в отчете количественных и суммовых оборотов по аналитикам, имеющим количественно-суммовой учет, предусмотрена опция Показывать в отчете. Она имеет следующие варианты:

·Суммы и кол-во — включает отображение количественных и суммовых оборотов по аналитикам.

·Только суммы — отключает отображение количественных оборотов по аналитикам, имеющим количественно-суммовой учет или дополнительный учет.

·При выборе Только кол-во в отчет попадут только счета с количественно-суммовым учетом и только количественные обороты и остатки по этим счетам.

Последняя строка таблицы показывает итоговую сумму оборотов по каждому из корреспондирующих счетов и в целом, а также остаток на конец периода по счету (сумме остатков счетов).

При просмотре материального отчета можно получить карточку движения средств по каждой интересующей сумме, счету или объекту аналитики. Это можно сделать либо при помощи клавиши <Enter> (а для счетов с [image] или [image] при помощи комбинации<Ctrl> +<Enter>), либо щелкнув левой кнопкой мыши по выбранной клетке.

В материальном отчете есть возможность быстрого суммирования чисел в ячейках таблицы. Для этого просто выделите нужные ячейки, и слева внизу появится их сумма.

См. также
Бухгалтерские и налоговые отчеты
Настройка материального отчета


Оборотная ведомость

Оборотная ведомость имеет сводной вид таблицы, в которой отображаются: счет со своей аналитикой, сальдо на начало периода по нему, оборот за период и сальдо на конец периода. Для вызова оборотной ведомости воспользуйтесь пунктом меню «Отчеты | Оборотная ведомость».

При вызове отчета появится диалог настроек, содержащий следующие параметры:

·опция Показывать забалансовые счета заставляет программу выводить в таблице забалансовые счета со своими оборотами;

·опция Показывать неиспользуемые счета заставляет программу выводить в таблице и те счета, по которым не было ни остатков, ни оборотов;

·графа Развернуть план счетов задает режим, по которому счета показываются вместе со своими субсчетами в одной таблице.

·переключатель Способ раскрытия групп позволяет выбрать два варианта раскрытия групп:

oВход внутрь группы — Слева от группы будет значок [image] . Вход внутрь группы подразумевает, что будет видно только содержимое этой группы.

oРаскрытие на том же уровне — Слева от группы будет значок [image] . Содержимое группы в этом случае раскрывается на том же уровне. Можно видеть как содержимое группы, так и все остальные записи таблицы.

·графа Развернуть иерархические аналитики задает режим, по которому аналитики, имеющие вид дерева, показываются в развернутом виде (линейно, без групп);

·опция Показать закладки по периодам включает отображение закладок, соответствующих периодам, по которым формируется отчет. Переключаясь между закладками можно быстро переходить от одного периода к другому. В списке закладок доступно контекстное меню:

oДобавить закладку — добавляет новую закладку, будет запрошен период.

oУдалить закладку — удаляет текущую выбранную закладку.

oНастроить закладки — вызывает диалог настройки, где можно настроить порядок закладок, добавить или удалить сразу несколько закладок.

·опция Показывать в отчете позволяет выбрать режим отображения в отчете количественных и суммовых оборотов по аналитикам, имеющим количественно-суммовой учет:

oСуммы и кол-во — включает отображение количественных и суммовых оборотов по аналитикам.

oТолько суммы — отключает отображение количественных оборотов по аналитикам, имеющим количественно-суммовой учет или дополнительный учет.

oПри выборе Только кол-во в отчет попадут только счета с количественно-суммовым учетом и только количественные обороты и остатки по этим счетам.

Если диалог настроек не появился, после расчета ведомости нажмите кнопку [image] для его вызова.

Если счет имеет субсчета, то все колонки: обороты и остатки суммируются по субсчетам и показываются как обороты и остатки по этому счету. При этом сальдо может сворачиваться. Для этого надо установить у счета опцию Свернутое сальдо субсчетов. Если переключатель Способ раскрытия групп установлен в значение Вход внутрь группы, то чтобы войти в счет и просмотреть обороты по его субсчетам можно, выполнив одно из действий:

·нажать клавишу <Enter>;

·нажать кнопку [image] слева от счета;

Появятся обороты всех его субсчетов. Если субсчета этого счета в свою очередь имеют субсчета, то можно также войти в них и просмотреть обороты по их субсчетам и т.д.

Выйти из просмотра оборотов субсчетов к общим оборотам можно, выполнив одно из действий:

·нажать клавишу <Esc>;

·нажать кнопку [image] слева в заголовке таблицы;

Это же относится и к счетам, имеющим одну или несколько аналитических признаков. Обороты по аналитикам отображаются так же, как и обороты по субсчетам. В случае нескольких аналитических признаков можно детализировать аналитики в произвольном порядке. Для этого щелкните правой кнопкой мыши по счету и в появившемся контекстном меню Аналитика для ... выберите нужную аналитику. Например, если по счету ведется учет по двум аналитикам — по товарам и складам, то можно сначала получить сводные обороты по складам, а уже потом детальные обороты по товарам на выбранном складе. А можно, наоборот, сначала сводные обороты по товарам, а уже потом детальные обороты по складам по выбранному товару. Переключаться с одного варианта на другой можно с помощью вышеуказанного контекстного меню.

Замечание!

Переключаться на другую последовательность аналитик в оборотной ведомости можно и другим способом. Если нажать клавишу Alt и входить внутрь уровня, то будет запрос на последовательность раскрытия аналитик.

Внимание!

Выбранный порядок аналитик запоминается до окончания работы с отчетом. Поменять его можно только при следующем запуске оборотной ведомости.

При нажатии на кнопку [image] в левом верхнем углу таблицы, можно вывести дополнительные колонки. В оборотной ведомости кнопка показывается после входа внутрь счета с аналитикой. Например, при входе внутрь 70-ого счета кнопка открывает доступ к отображению дополнительных полей справочника сотрудников.

Если переключатель Способ раскрытия групп установлен в значение Раскрытие на том же уровне, то просмотреть обороты по его субсчетам можно, выполнив одно из действий:

·нажать клавишу <Enter>;

·нажать кнопку [image] слева от счета;

Скрыть назад обороты субсчетов можно, выполнив одно из действий:

·нажать клавишу <Esc>;

·нажать кнопку [image] слева от счета;

Внимание!

Если в оборотной ведомости выведена красная строка «ОШИБКА! Расхождение остатка по балансовым счетам» это скорее всего означает, что неправильно занесены исходные остатки по счетам. Надо, чтобы в строке статуса окна ввода исходных остатков выводилась надпись «Исходные остатки занесены верно».

Обороты и остатки по аналитикам могут показываться как в суммовой форме, так и в количественно-суммовой, в зависимости от вида учета аналитик счета. Обороты по счетам всегда отображаются в суммовой форме.

Пример:

Для просмотра аналитики по 41 счету следует выбрать этот счет в оборотной ведомости и нажать клавишу <Enter>. Появится диалог Выбора аналитики, в котором можно указать, скажем склад или товар. В соответствии с выбранным параметром, будет сформирована оборотная ведомость либо по товарам, либо по складу.

В последней строке таблицы приводятся итоговые суммы колонок.

Для быстрого перехода к нужному счету или аналитике можно воспользоваться контекстным поиском, для этого достаточно ввести с помощью клавиатуры код счета.

Просмотрев обороты счета, Вы можете получить более подробный отчет по этим цифрам. Для этого сделайте одно из следующих действий:

— нажмите комбинацию клавиш <Ctrl>+<Enter>

— щелкните левой клавишей мыши по выбранной строке

Появится окно с выбором отчета. Все эти отчеты будут рассчитаны по выбранному счету. Выберите нужный отчет и нажмите <OK> для его формирования.

См. также
Бухгалтерские и налоговые отчеты
Ограничения прав доступа к оборотам


Обороты по аналитике

Обороты по аналитике имеет вид сводной таблицы, в которой отображаются: объект аналитики, сальдо на начало периода по нему, оборот за период и сальдо на конец периода. Обороты по аналитике можно вызвать помощи пункта меню «Отчеты | Обороты по аналитике». Программа запросит при запуске отчета указать вид аналитики. При необходимости можно указать конкретный объект аналитического учета указанного вида. Если объект аналитики не указывается, выдается движение по всем проводкам, в которых участвуют аналитики этого вида.

Отчет имеет следующие дополнительные параметры:

·опция Выводить управляет отображением колонок с сальдо на начало и конец периода. Возможные варианты:

oОбороты и остатки - выводятся все колонки отчета.

oТолько остатки - выводятся только остатки на конец периода.

oТолько обороты - выводятся только обороты за период .

·Для выбора режим отображения в отчете количественных и суммовых оборотов по аналитикам, имеющим количественно-суммовой учет, предусмотрена опция Показывать в отчете. Она имеет следующие варианты:

oСуммы и кол-во — включает отображение количественных и суммовых оборотов по аналитикам.

oТолько суммы — отключает отображение количественных оборотов по аналитикам, имеющим количественно-суммовой учет или дополнительный учет.

oПри выборе Только кол-во в отчет попадут только счета с количественно-суммовым учетом и только количественные обороты и остатки по этим счетам.

·опция Развернуть задает режим, по которому аналитики показываются вместе со счетами, по которым ведется аналитический учет, в одной таблице;

·переключатель Способ раскрытия групп позволяет выбрать два варианта раскрытия групп:

oВход внутрь группы — Слева от группы будет значок [image] . Вход внутрь группы подразумевает, что будет видно только содержимое этой группы.

oРаскрытие на том же уровне — Слева от группы будет значок [image] . Содержимое группы в этом случае раскрывается на том же уровне. Можно видеть как содержимое группы, так и все остальные записи таблицы.

При нажатии на кнопку [image] в левом верхнем углу таблицы, можно вывести дополнительные колонки.

Чтобы увидеть обороты ко конкретному счету можно, выполнив одно из действий:

·нажать клавишу <Enter>;

·нажать кнопку [image] или [image] слева от счета;

Появятся обороты всех счетов, по которым ведется аналитический учет по выбранному объекту аналитики.

Выйти из просмотра оборотов счетов к общим оборотам по аналитике можно, выполнив одно из действий:

·нажать клавишу <Esc>;

·нажать кнопку [image] слева в заголовке таблицы или [image] слева от счета;

Диалог настройки параметров можно вызвать с помощью кнопки [image] на панели инструментов.

Для суммовых проводок показывается сумма. Для количественно-суммовых проводок показываются: оборот в суммовом выражении, оборот в единицах измерения (например, в штуках), средняя цена за единицу. В последней строке таблицы приводятся итоговые суммы колонок.

Просмотрев обороты счета, Вы можете получить более подробный отчет по этим цифрам. Для этого сделайте одно из следующих действий:

·нажмите комбинацию клавиш <Ctrl>+<Enter>

·щелкните левой клавишей мыши по выбранной строке

Появится окно с выбором отчета. Все эти отчеты будут рассчитаны по выбранному счету. Выберите нужный отчет и нажмите <OK> для его формирования.

См. также
Бухгалтерские и налоговые отчеты
Ограничения прав доступа к оборотам


Параметры главной книги, ж.о. и ведомости

Параметры главной книги, журнала-ордера, ведомости, оборотов по периодам

 Вернуться к началу раздела

Для таких отчетов как журнал-ордер, ведомость к журналу-ордеру и главная книга, можно указать следующие дополнительные параметры:

Обороты по дебету — могут показываться или Нет. Только итоги означает, что будет отображаться только общий оборот по дебету, а Развернуто — что будет отображаться отдельно дебетовый оборот по каждому корреспондирующему счету.

Обороты по кредиту — могут показываться или Нет. Только итоги означает, что будет отображаться только общий оборот по кредиту, а Развернуто — что будет отображаться отдельно кредитовый оборот по каждому корреспондирующему счету.

Пустые периоды — будут показываться периоды, за которые не было движения.

Остатки — выводит колонку начального и конечного сальдо.

Параметр Детализация задает начальную детализацию по периодам. Необходимо выбрать из списка нужную детализацию:

·День

·Пять дней

·Неделя

·Декада

·Месяц

·Квартал

·Год

Если в периоде было движение (а если Пустые периоды = Нет, то движение есть во всех показанных периодах), слева будет отображаться кнопка [image], щелкнув на которую можно просмотреть выбранный период с более точной детализацией. Например, если отчет сделан по годам, зайдя в год можно получить обороты по кварталам этого года, зайдя в квартал — по месяцам этого квартала, зайдя в месяц — по дням этого месяца.

Развернуть план счетов — указывает на необходимость раскрытия корреспондирующих счетов до требуемого уровня. Если план счетов не раскрыт, все корреспондирующие счета сгруппированы и для того чтобы просмотреть обороты по ним надо нажать на [image]. Вариант Без групп отключает группировку корреспондирующих счетов и все они будут отображены в «плоском» виде.

Переключатель Способ раскрытия групп позволяет выбрать два варианта раскрытия групп:

·Вход внутрь группы — Слева от группы будет значок [image] . Вход внутрь группы подразумевает, что будет видно только содержимое этой группы.

·Раскрытие на том же уровне — Слева от группы будет значок [image] . Содержимое группы в этом случае раскрывается на том же уровне. Можно видеть как содержимое группы, так и все остальные записи таблицы.

Итоги по коррсчетам — используется только когда корреспондирующие счета сгруппированы. Если эта опция активна, при раскрытии субсчетов корреспондирующего счета колонка с суммарными оборотами по ним останется по названием Итого. Этот режим удобен при распечатке отчета.

Только коррсчета — позволяет исключить перечисленные здесь корреспондирующие счета из колонок отчета. Если эту графу оставить пустой, никакие счета исключаться не будут.

Только суммовая форма — если по аналитикам счета ведется количественно-суммовой учет, отчет будет формироваться в суммовой форме. Обычно, если этот признак выключен, в оборотах для количественно-суммовых аналитик показываются: оборот в суммовом выражении, оборот в единицах измерения (например, в штуках), средняя цена за единицу.

Вертикальная форма — означает, что отчет будет перевернут вертикально. Используйте этот вид при большем кол-ве корреспондирующих счетов.

При выборе Операция отображаемые колонки зависят от режима вывода названий в настройках таблиц в пункте меню «Установка | Настройки» — программа будет отображать название операции.

Параметр Порядок колонок указывает порядок следования колонок с дебетовыми и кредитовыми оборотами и остатками. Для журнала-ордера он устанавливается как Дебет-Кредит, для ведомости к журналу-ордеру как Кредит-Дебет, для главной книги его можно установить произвольно.

После выбора нужного варианта нажмите кнопку <OK> и Вы перейдете в диалог выбора отчетов. Нажатие клавиши <Enter> или кнопки Рассчитать позволяет сразу вывести выбранный отчет.


Параметры материального отчета и шахматки

Для таких отчетов как материальный отчет и шахматка, можно указать следующие дополнительные параметры:

Обороты по дебету — могут показываться или Нет. Только итоги означает, что будет отображаться только общий оборот по дебету, а Развернуто — что будет отображаться отдельно дебетовый оборот по каждому корреспондирующему счету.

Обороты по кредиту — могут показываться или Нет. Только итоги означает, что будет отображаться только общий оборот по кредиту, а Развернуто — что будет отображаться отдельно кредитовый оборот по каждому корреспондирующему счету.

Остатки — выводит колонку начального и конечного сальдо.

Развернуть план счетов — указывает на необходимость раскрытия корреспондирующих счетов до требуемого уровня. Если план счетов не раскрыт, все корреспондирующие счета сгруппированы и для того чтобы просмотреть обороты по ним надо нажать на [image]. Вариант Без групп отключает группировку корреспондирующих счетов и все они будут отображены в «плоском» виде.

Переключатель Способ раскрытия групп позволяет выбрать два варианта раскрытия групп:

·Вход внутрь группы — Слева от группы будет значок [image] . Вход внутрь группы подразумевает, что будет видно только содержимое этой группы.

·Раскрытие на том же уровне — Слева от группы будет значок [image] . Содержимое группы в этом случае раскрывается на том же уровне. Можно видеть как содержимое группы, так и все остальные записи таблицы.

Итоги по коррсчетам — используется только когда корреспондирующие счета сгруппированы. Если эта опция активна, при раскрытии субсчетов корреспондирующего счета колонка с суммарными оборотами по ним останется по названием Итого. Этот режим удобен при распечатке отчета.

Только коррсчета — позволяет исключить перечисленные здесь корреспондирующие счета из колонок отчета. Если эту графу оставить пустой, никакие счета исключаться не будут.

Только суммовая форма — по счетам с количественно-суммовым учетом отчет будет формироваться в суммовой форме. Обычно, если этот признак выключен, в оборотах для количественно-суммовых счетов показываются: оборот в суммовом выражении, оборот в единицах измерения (например, в штуках), средняя цена за единицу

Вертикальная форма — означает, что отчет будет перевернут вертикально. Если включен показ названия счетов, то при повороте названия субсчетов будут убраны, а названия корр.счетов, наоборот, показаны. Используйте этот вид при большем кол-ве корр.счетов.

После выбора нужного варианта нажмите кнопку <OK> и Вы перейдете в диалог выбора отчетов. Нажатие клавиши <Enter> или кнопки Рассчитать позволяет сразу вывести выбранный отчет.


НУ: Сводная ведомость

Расчет налоговой базы отображает основную картину налогового учета. Он имеет вид сводной таблицы, в которой отображаются: статья учета и, в зависимости от ее типа, общая сумма дохода или расхода по ней. Внизу показывается общая сумма прибыли или убытка в отчетном периоде. В колонке неучтенные отображаются суммы по статьям, не используемым при подсчете налоговой базы. Для вызова оборотной ведомости воспользуйтесь пунктом меню «Отчеты | НУ: Сводная ведомость».

При вызове отчета появится диалог настроек, содержащий следующие параметры:

·в графе Развернуть статьи учета задать режим, по которому статьи показываются вместе со своими субстатьями в одной таблице и указать уровень разворота;

·переключатель Способ раскрытия групп позволяет выбрать два варианта раскрытия групп:

oВход внутрь группы — Слева от группы будет значок [image] . Вход внутрь группы подразумевает, что будет видно только содержимое этой группы.

oРаскрытие на том же уровне — Слева от группы будет значок [image] . Содержимое группы в этом случае раскрывается на том же уровне. Можно видеть как содержимое группы, так и все остальные записи таблицы.

·Раскрыть расход — выделяет прямой и косвенный расход в разные колонки;

Если статья имеет субстатьи, то колонка доходов или расходов суммируется по субстатьям и показывается как доход или расход по этой статье. Просмотреть доходы или расходы по ее субстатьям можно, выполнив одно из действий:

·нажать клавишу <Enter>;

·нажать кнопку [image] или [image] слева от статьи;

Появятся ее субстатьи с детализацией общего дохода или расхода. Если субстатьи этой статьи в свою очередь имеют субстатьи, то можно также войти в них и просмотреть доходы или расходы по их субстатьям и т.д.

Выйти из просмотра субстатей к общим доходам и расходам можно, выполнив одно из действий:

·нажать клавишу <Esc>;

·нажать кнопку [image] слева в заголовке таблицы или [image] слева от статьи;

В предпоследней строке таблицы приводятся итоговые суммы колонок. В последней — разница между общей суммой доходов и общей суммой расходов. Если она положительно программа отображает ее как Прибыль, в противном случае как Убыток.

Просмотрев общие доходы по статье, Вы можете получить более подробный, детализирующий отчет. Для этого сделайте одно из следующих действий:

·нажмите комбинацию клавиш <Ctrl>+<Enter>

·щелкните левой клавишей мыши по выбранной строке

Появится окно с выбором отчета. Все эти отчеты будут рассчитаны по выбранной статье. Выберите нужный отчет и нажмите <OK> для его формирования.

См. также
Бухгалтерские и налоговые отчеты


НУ: Регистр по единице учета

Регистр единицы учета (счета) для выбранной единицы учета позволяет показать все налоговые проводки, проходившие по ней и показать их влияние на налоговую базу. Регистр можно вызвать помощи пункта меню «Отчеты | НУ: Регистр по единице учета». Программа запросит счет или шаблон, по которому надо вывести движение.

Если выбранный счет — единица учета имеет субсчета, то будут показываться проводки со всеми его субсчетами.

Следующие колонки будут отображаться в таблице:

·Дата операции;

·Название документа;

·В зависимости от выбора вывода названий в настройках таблиц в пункте меню «Установка | Настройки» программа будет отображать название операции

·Статья налогового учета, указанная в проводке;

·Доход по проводке;

·Расход по проводке;

·Итого по счету — единице учета на момент совершения проводки;

Если несколько проводок относятся к одной операции, то поля c номером, датой, документом и названием операции будут заполнены только у первой из них.

Находясь в карточке движения средств, Вы можете выполнить следующие действия:

Удалять операции — происходит при удалении записи из таблицы. Перед удалением определения появится подтверждение: Удалить бухгалтерскую операцию такую-то ?. Нажмите Да для удаления.

Редактировать операции — выполняется при изменении записи в таблице. Появится диалог редактирования бухгалтерской операции, где можно изменить любую проводку операции. Редактирование операции связанной с документом осуществляется при редактировании документа.

После внесения изменения в отчет, измененная строка подсвечивается серым и ее редактировать или удалять уже нельзя. Вносить изменения в эту операцию можно будет после перерасчета движения средств.

См. также
Бухгалтерские и налоговые отчеты


НУ: Регистр по статье

Регистр статьи налогового учета для выбранной статьи позволяет показать все операции по ней и изменение налоговой базы после каждой проводки. Регистр можно вызвать помощи пункта меню «Отчеты | НУ: Регистр по статье». Также, регистр статьи вызывается из любого другого налогового отчета.

Если указанная статья имеет субстатьи, то будут показываться проводки со всеми ее субстатьями.

Следующие колонки будут отображаться в таблице:

·Дата операции;

·Название документа;

·В зависимости от выбора вывода названий в настройках таблиц в пункте меню «Установка | Настройки» программа будет отображать название операции

·Если статья, по которой выводится регистр, имеет субстатьи, выводиться статья нижнего уровня, участвующая в операции;

·Сумма, на которую изменяется налоговая база: доход или расход;

·Если регистр выводится по всем статьям, показывается колонка Налоговая база, в которой нарастающим итогом показывается формирование налоговой базы. В противном случае выводится колонка Итого по статье, где суммируется общий доход или расход по выбранной статье.

Если несколько налоговых проводок относятся к одной операции, то поля c номером, датой, документом и названием операции будут заполнены только у первой из них.

Находясь в регистре статьи, Вы можете выполнить следующие действия:

Удалять операции — происходит при удалении записи из таблицы. Перед удалением определения появится подтверждение: Удалить бухгалтерскую операцию такую-то ?. Нажмите Да для удаления.

Редактировать операции — выполняется при изменении записи в таблице. Появится диалог редактирования бухгалтерской операции, где можно изменить любую проводку операции. Редактирование операции связанной с документом осуществляется при редактировании документа.

После внесения изменения в отчет, измененная строка подсвечивается серым и ее редактировать или удалять уже нельзя. Вносить изменения в эту операцию можно будет после перерасчета движения средств.

См. также
Бухгалтерские и налоговые отчеты


Шахматка

Шахматка показывает обороты между счетами во взаимной корреспонденции за указанный период. Также она позволяет вывести итоговые обороты и остатки счетов.

Шахматку можно вызвать при помощи пункта меню «Отчеты | Шахматка». В этом случае программа предложит указать параметры отчета.

Шахматка представляет собой таблицу, содержащую колонки:

·Код счета;

·В зависимости от выбора вывода названий в настройках таблиц в пункте меню «Установка | Настройки» программа будет отображать название счета;

·Сальдо начальное (дебет и кредит)

·Дебетовые обороты для каждого из корреспондирующих счетов

·Общий дебетовый оборот

·Кредитовые обороты для каждого из корреспондирующих счетов

·Общий кредитовый оборот

·Сальдо конечное (дебет и кредит)

В зависимости от настроек отчета и присутствия оборотов некторые колонки могут отсутствовать.

При нажатии на кнопку [image] в левом верхнем углу таблицы, можно вывести дополнительные колонки.

Последняя строка показывает итоговую сумму оборотов по каждому из корреспондирующих счетов и в целом, а также сальдо по всем субсчетам на начало и конец периода.

При просмотре шахматки можно получить карточку движения средств по каждой интересующей сумме или счету. Это можно сделать либо при помощи клавиши <Enter>, либо щелкнув левой кнопкой мыши по выбранной клетке.

В шахматке есть возможность быстрого суммирования чисел в ячейках таблицы. Для этого просто выделите нужные ячейки, и слева внизу появится их сумма.

Шахматка является частным случаем материального отчета. При указании в нем пустого кода счета он принимает вид шахматки. При отключении развернутых оборотов шахматка становится похожей на оборотную ведомость, только без субсчетов.

См. также
Бухгалтерские и налоговые отчеты
Настройка шахматки


Выбрать отчет

Диалог выбора отчета позволит выбрать нужный для формирования отчет. Все перечисленные отчеты будут рассчитываться по выбранному счету, и таким образом Вы получите более детальный отчет, нежели простые обороты, которые показываются в оборотной ведомости. Выберите отчет:

·Карточку движения средств;

·Журнал-ордер;

·Ведомость к журналу-ордеру;

·Главную книгу;

·Материальный отчет.

Это можно сделать при помощи клавиш управления курсором или нажав заглавную букву названия отчета на клавиатуре либо с помощью мыши. Если при выборе отчета активизируется кнопка Настройка, то, нажав ее, можно указать дополнительные параметры этого отчета.

Нажатием клавиши <Enter> или кнопки <OK> выбранный отчет будет рассчитан и выведен на экран. Нажатие <Отмена> позволяет отказаться от выбора.


Порядок отображения аналитик

Укажите порядок отображения аналитик в отчете. Для этого воспользуйтесь кнопками <Вверх> и <Вниз>. Выберите необходимое поле, а затем нажмите соответствующую кнопку или комбинацию клавиш <Ctrl>+<б> и <Ctrl>+<в> соответственно.

При изменении порядка можно выбирать несколько полей. Чтобы выделить последовательные поля, выберите первый поле и, удерживая клавишу <Shift>, выберите последнее. Чтобы выбрать поля, не являющиеся последовательными, выберите каждый объект, удерживая клавишу <Ctrl>.

Для продолжения нажмите <Ok>. Кнопка <Отмена> позволяет отказаться от выбранного действия.

Изменение порядка следования аналитик влияет на все открытые окна. В другом порядке аналитики будут записываться в коде счета проводки, в другом порядке будут следовать закладки при выборе счета в плане счетов. После закрытия окон отчетов восстанавливается исходный порядок следования.


Выбор аналитики

Укажите здесь аналитический признак, по которому будет развернута информация. Для продолжения нажмите <OK>. Кнопка <Отмена> позволяет отказаться от выбранного действия.

Выбор аналитики поменяет порядок следования аналитических признаков. Изменение порядка следования аналитик влияет на все открытые окна. В другом порядке аналитики будут записываться в коде счета проводки, в другом порядке будут следовать закладки при выборе счета в плане счетов. После закрытия окон отчетов восстанавливается исходный порядок следования.


Персональные настройки

Стандартное меню

Пункт меню «Установка | Настройки» позволяет настроить общие параметры программы. При вызове меню появится диалог, состоящий из следующих закладок:

Бухгалтерия — настройка работы с проводками, счетами, статьями учета и т.д.

Диалоги — настройка режимов работы и отображения диалогов

Таблицы — настройка режимов работы и отображения таблиц

Форматы — настройка форматов чисел и дат

Шрифты — задание используемых шрифтов

Общие — указание общих (прочих) параметров интерфейса и среды разработки

Установки, настраиваемые здесь, привязываются к конкретному пользователю и индивидуальны для него, у другого пользователя могут быть другие настройки. Администратор может скопировать их при редактировании списка пользователей.


Бухгалтерия

На закладке Бухгалтерия задаются параметры работы с журналом бухгалтерских операций, планом счетов, статьями учета, режимами расчета оборотов и т.п. Здесь имеются следующие опции:

Показывать в основном окне — задает режим отображения журнала бухгалтерских операций в окне. Возможны следующие варианты:

·Операции, проводки в дополнительном окне — при просмотре бухгалтерского журнала операций снизу будет выводиться дополнительное окно, в котором отображаются проводки по выбранной операции. Если Окно детализации в настройках таблиц отключено, дополнительного окна не будет. В этом случае Вы будете видеть только операции. Для просмотра проводок надо будет открывать диалог редактирования операции.

·Проводки вместе с операциями — вместе с операциями в журнале бухгалтерских операций появятся и соответствующие им проводки. Такой вид удобен для распечатки всего журнала или его выделенной части.

Вид бухгалтерских операций — здесь задаются опции отображения операций в окне:

·Сумма документа — в колонке Сумма окна журнала будет выводиться сумма связанного с операцией документа. У операций, не связанных с документов, эта графа не заполняется.

·Сумма 1-й проводки — в колонке 1-ая окна журнала будет выводиться сумма первой проводки в операции.

·Сумма всей операции в колонке 1-ая/Итого окна журнала во второй подъячейке будет выводиться сумма всех проводок в операции.

·Выделять проводки операции — в режиме проводки вместе с операциями выделяет все проводки из операции, на проводке которой стоит курсор, светло-синим цветом. С такой подсветкой в журнале ориентироваться проще.

·Закладки с фильтром журнала — при установке этой опции в бухгалтерском журнале операций будут показываться закладки, соответствующие вариантам фильтрации журнала, установленных пользователем. Переключаясь с закладки на закладку, Вы будете видеть записи журнала, удовлетворяющие различным условиям.

·Подсветка цветом счетов — если опция активна, то различные счета будут выделяться цветом.

·Показывать названия счетов — включает отображение в проводках рядом с кодом счета его названия.

Проводить документ — задает момент проведения документов из журналов аналитики в бухгалтерии. Проведение документа подразумевает формирование бухгалтерских проводок по этому документу и запись их в журнал бухгалтерских операций.

·Не использовать связь документа с проводками — связь не используется пользователем (однако алгоритмы внутреннего языка могут связывать документы с операциями). При использовании связи в бухгалтерском журнале и журналах аналитики появляется колонка (колонка связи), по которой можно получать документы по операции и операции по документу.

·Вручную при нажатии на кнопку в таблице — пользователь может проводить документ щелчком мыши по колонке связи или выбирая соответствующий пункт контекстного меню. При этом формируется связанная бухгалтерская операция и в колонке связи появляется значок LINKPROV.

·Автоматически сразу при записи документа в журнал — аналогично, но связанная бухгалтерская операция формируется сразу же при вводе документа. Также доступно и ручное проведение документа.

Разорвать связь можно, удалив бухгалтерскую операцию или выбрав пункт Удалить в контекстном меню колонки связи. Это возможно только при наличии соответствующих прав.

Не использовать — здесь отключаются некоторые стандартные возможности.

·Статьи налогового учета — включение этой опции отключает возможность ведения налогового учета. Вы не увидите статьи учета при редактировании проводки. Опция не влияет на введенные данные.

·Корректные проводки — отключает проверку корректности проводок.

·Выключение записей — отключает возможность выключать записи журналов, включая бухгалтерские проводки и бухгалтерские операции. При включении признака опция Выкл в диалогах редактирования записи отображаться не будет. Включение этой опции не меняет состояние уже выключенных записей.


Диалоги

На закладке Диалоги задаются режимы работы и отображения диалогов. Здесь имеются следующие опции:

Опции — задает режимы работы диалогов.

Переход по Enter в диалогах — обычно между элементами диалогов перемещаются с помощью клавиш управления курсором и <Tab>, а завершают изменения с помощью <Enter>. При включении этой опции перемещение по диалогу происходит с помощью <Enter>, а завершают изменения либо дойдя до конца ввода либо с помощью <Ctrl>+Enter.

Только в типовых операциях — делает режим перехода по <Enter> в диалогах только в диалогах заполнения типовых операций. Остальные диалоги используют обычный режим.

Подтверждение при отмене изменений — требует от программы подтверждать выход из диалога редактирования записи по кнопке <Отмена>, если в нем были сделаны изменения.

Выводить кнопки частых действий — в диалоге редактирования записи журналов левее кнопки <Выполнить> будут отображаться самые часто используемые действия (самые часто выбираемые пункты контекстного меню). В графе ввода справа можно указать максимальное количество таких кнопок.

Использовать колесо мыши в полях ввода — в процессе редактирования поля типа дата или целое число можно использовать колесо мыши. Поворот колеса будет увеличивать или уменьшать значение в редактируемом поле.

Автоподстановка «/» при вводе счета — при вводе кода счета, программа будет автоматически подставлять символ «/» в тот момент, когда заканчивается код счета верхнего уровня и надо начинать вводить код субсчета.

Заполнение бланка — настройка режимов работы при заполнении бланков документов.

Переход между графами по стрелкам — при заполнении таблиц в редакторе бланка клавиши перемещения курсора <Я> <б> <в> <а> будут переходить к ближайшей графе в том направлении, какая стрелка была нажата. В противном случае клавиши <Я> <б> вызывают переход к предыдущей по порядку графе бланка, а клавиши в а — переход к следующей графе.

Backspace переводит к предыдущей графе — при нажатии клавиши Backspace стираются символы в графе слева от курсора. Если эта опция включена, то после того, как будет стерт последний символ, произойдет переход к предыдущей графе.

Скрывать пустые строки при заполнении — части бланка, не содержащие отображаемой информации, будут скрыты в процессе заполнения и появятся уже только при его печати. Например, если бланк содержит какую-то значащую информацию вверху, затем пустое пространство и подпись в конце листа, то пустое пространство будет скрыто.

Макс.кол-во кнопок частых действий. Задает максимальное количество кнопок частых действий, которые программа будет выводить в диалоге редактирования записи журнала. Кнопки частых действий формируются из часто используемых пунктов контекстного меню, появляющегося при нажатии на кнопку <Выполнить> в диалоге редактирования.


Таблицы

На закладке Таблицы задаются режимы работы и отображения таблиц. Здесь имеются следующие опции:

Опции — задает режимы работы таблиц.

Чересстрочная подсветка — в таблицах четные строки имеют более темный фон. При такой подсветке информацию в таблице проще воспринимать.

Фиксированная высота строки — если опция выключена, то для широких таблиц, в случае пролистывания таблицы по горизонтали, программа будет устанавливать высоту строки как максимум высоты всех отображаемых в данный момент на экране ячеек. Т.е., если строка содержит, скажем, одноэтажные и двухэтажные ячейки, однако двухэтажные ячейки в данный момент не видны, то строка будет одноэтажной. При включении этой опции высота строки будет определяться как максимум высоты всех ее ячеек, вне зависимости от того, видны они на экране или нет. Вместе с тем при печати таблицы высота строки всегда определяется как максимум высоты всех ее ячеек, что дает возможность «склейки» листов после распечатки «широкой» таблицы.

Окно детализации — определяет наличие дополнительного окна проводок в бухгалтерском журнале операций и детализации в журналах аналитики и задает кол-во строк таблицы в этом окне, которые будут отображаться вначале. (При настройке конкретного журнала кол-во строк таблицы детализации может быть переопределено).

Кто создал/изменил операцию — в бухгалтерском журнале операций, в журналах аналитики и в некоторых отчетах будет выводиться колонка «Создал/Изменил» с именем пользователя, который создал операцию. Если включен учет времени создания и изменения, то там же будет и дата и время создания операции и дата и время её последнего изменения. Если включен протокол, то будут отображаться все изменения по записи.

Перебор вхождений при поиске — опция контекстного поиска в таблицах. Если она включена, то в процессе набора искомой фразы можно с помощью клавиш <стрелка вверх> и <стрелка вниз> перемещаться между всеми вариантами вхождений искомой фразы. Если опция выключена, то при нажатии на клавиши происходит выход из режима контекстного поиска.

Автопересчет отчетов — определяет режимы обновления информации в отчетах.

·Не выполнять — при удалении или изменении строки отчета она просто выделяется цветом, а для того чтобы обновить информацию на экране, надо нажать кнопку пересчета отчета.

·Перезапускать только редактируемый отчет — при установке этого признака производится автоматически пересчет редактируемого отчета.

·Перезапускать все связанные отчеты — будет выполняться, во-первых, автоматический пересчет редактируемого отчета, во-вторых, отчета из которого был вызван редактируемый отчет, и, в-третьих, отчетов, вызванных из редактируемого отчета.

Вывод названий в отчетах. Этот переключатель позволяет выбрать режим отображения названия операций, счетов и любых других объектов во встроенных отчетах. Возможные варианты:

·Названия объектов не выводятся, однако их можно увидеть в строке статуса;

·Названия выводятся в зависимости от ширины таблицы — так чтобы таблица поместилась на экране;

·Название объектов выводятся полностью — так чтобы все названия было видно

Вывод единиц измерения. Этот переключатель позволяет выбрать режим отображения единиц измерения в журналах. Возможные варианты:

·Вместе с количеством в одной ячейке — это значение устанавливается по умолчанию;

·Рядом отдельным столбцом — единицы измерения будут в отдельном столбце.

Ячейки таблиц задает возможные варианты сокращения текста таблиц, если он не помещается в ячейке:

·Обрезать текст, если он не помещается в ячейке — на конце в этом случае пишется ... (многоточие), чтобы понимать, что текст был обрезан

·Сокращать слова, для того чтобы строка уместилась — выполняет сокращение текста ячейки.

·Увеличивать высоту ячейки для размещения текста — для колонок с зафиксированной шириной высота ячеек будет увеличиваться для размещения текста; для колонок с автоматической шириной на конце будет добавляться ... (многоточие);

Макс. кол-во закладок — позволяет ограничить максимальное кол-во закладок в отчетах. При попытке добавить новую закладку свыше ограничения программа удалит ту закладку, которой дольше всего не пользовались.

Закрытый период до — программа не будет разрешать изменять, удалять и создавать новые операции до указанной здесь даты. Чтобы потом отключить эту функцию очистите графу. Обратите внимание, что это персональная настройка, действующая у конкретного пользователя. В настройках фирмы может быть указан свой закрытый период, который является глобальным для всех пользователей программы. И если период будет указан и здесь, и там, проверяться будет пересечение этих периодов. При этом разрешения на возможность правки операций закрытого периода, указанные в правах доступа, действуют на глобальную настройку, но не действуют на указанную здесь персональную настройку. Предполагается, что персональным закрытым периодом пользователь управляет самостоятельно — назначает, изменяет или отключает проверку когда надо.

Текущая дата — по умолчанию она равна дате, установленной в Windows, но можно установить и другую текущую дату. Она будет использоваться как дата по умолчанию для всех новых операций и как текущая дата отчетных документов, так что она будет полезна при работе «задним числом».

Кнопка Настройка цветов вызывает диалог настройки палитры цветов, используемой в таблицах для подсветки ячеек.

При расчете отчетов — здесь задаются опции расчета отчетов:

Учитывать выкл. операции — говорит программе считать отчеты по выключенным операциям (выключенным бухгалтерским проводкам) тоже. Действует на все отчеты.


Форматы

На закладке Форматы можно настроить форматы чисел и дат.

Параметры — определяет общие параметры форматов. Здесь:

Выделение тысяч — установка признака означает, что во всех табличных формах тысячи должны отделяться разделителем

Пример:

С выделением тысяч:

Без выделения тысяч:

1,200,000.00

1200000.00

Выделение тысяч в документах — установка признака означает, что при заполнении бланков тысячи должны отделяться разделителем

Пример:

С выделением тысяч:

Без выделения тысяч:

1,200,000.00

1200000.00

Разделитель разрядов и в том и другом случае определяется в настройках операционной системы.

Прочерк вместо нулевых значений — установка признака означает, что нулевые суммы во всех документах и отчетах заменяются прочерками

Пример:

С заменой на прочерки:

Без замены на прочерки:

-

0.00

Копейки — установка признака означает, что во встроенных отчетных документах и некоторых бланках при выводе сумм будут показываться копейки. В противном случае суммы округляются по правилам арифметики

Пример:

С копейками:

Без копеек:

1375.69

1376

Четыре цифры в записи года — установка признака означает, что везде в программе будут использоваться даты с четырехзначной датой. В противном случае оставляются две последние цифры. Тогда год 00..49 означает 2000..2049, а год 50..99 означает 1950..1999.

Пример:

Четыре цифры:

Без копеек:

08.07.2001

08.07.01

Отрицательные суммы — указывает программе, как надо отображать отрицательные суммы в таблицах. Возможны следующие варианты:

·Выделять красным — такие суммы выводятся красным цветом (по умолчанию)

·Писать в скобках — они пишутся в круглых скобках без знака, например (100) это —100

·Не выделять — программа никак специально не выделяет отрицательные суммы

Следующие параметры определяют кол-во знаков при отображении различных типов чисел. Для них кол-во знаков может быть от 0 до 6. Если кол-во знаков определяется как любое, то программа будет оставлять такое кол-во знаков, чтобы не пришлось округлять.

Пример:

Число знаков 2

1375.69

1375.70

1376.00

0.00

3.14

Число знаков — 4

1375.6870

1375.7000

1376.0000

0.0040

3.1416

Число знаков — любое

1375.687

1375.7

1376

0.004

3.141592

Десят.знаков в кол-ве — определяет кол-во десятичных знаков в количестве.

Десят.знаков в цене — определяет кол-во десятичных знаков в цене.

Десят.знаков в валюте — определяет кол-во десятичных знаков для сумм в валюте.

Замечание!

При установке кол-ва десятичных знаков выбор происходит из списка. В списке не отображаются значения, выше установленной для данного типа (кол-ва, цены или валюты) точности в базе данных. Если требуется более высокая точность ее надо предварительно установить в базе.

Неопределенная дата — определяет строку, которая будет означать пустую (неопределенную) дату. Можно воспользоваться списком для выбора нужного варианта или ввести вручную. Максимальная длина строки — 3 символа.

Другие настройки форматов чисел и дат Вы сможете сделать в настройках форматов Windows.

См. также

Точность числа в редакторе поля журнала

Точность числа в настройках графы ввода

Константа НЕТ_ДАТЫ, функции ЗНАК_ВАЛ, ЗНАК_КОЛ, ЗНАК_СУМ, ЗНАК_ЦЕНА


Шрифты

На закладке Шрифты Вы можете задать рабочие шрифты программы. Для изменения выберите группу, для которой надо изменить шрифт и нажмите кнопку Изменить.... Появится стандартный диалог редактирования шрифта. Его вид зависит от операционной системы. Там можно установить такие параметры, как название шрифта, его начертание, размер. Обратите внимание при редактировании шрифта на набор символов. Необходимо выбрать для отображения кириллицу !

Для следующих групп можно установить шрифты:

Таблицы — шрифт в таблицах. Если таблица расположена в диалоге, то для нее используется шрифт диалогов.

Редактор — шрифт во встроенном текстовом редакторе. Также шрифт по умолчанию для новых бланков.

Диалоги — шрифт в диалогах

Строка статуса — шрифт строки статуса

Всплывающая подсказка — шрифт в окне всплывающей подсказки

Главное меню — шрифт при отображении главного (и контекстного) меню.

Закладки — шрифт при отображении закладок таблиц, диалогов.

Кнопка По умолчанию установит значения шрифтов программы по умолчанию.


Общие

Здесь задаются общие параметры интерфейса.

Группа Опции содержит следующие параметры:

Закрытие окон по <Esc> — опция определяет возможность закрытия окон программы при нажатии <Esc>. При работе это удобно.

Не запрашивать имя при входе — параметр, позволяющий не набирать имя пользователя при входе в систему при отсутствии пароля. Программа автоматически входит под именем, с которым входили в программу в предыдущий раз. Эта опция недоступна если на вход в программу установлен пароль.

Отключить всплывающую подсказку — параметр позволяет отключить всплывающую подсказку в панели управления и бланках. В таблицах она все равно остается.

Разрешить запуск двух копий пр-мы — разрешает запускать два и более экземпляра программы одновременно. Все они могут работать только с разными базами данных. С одной базой данных может работать только один экземпляр программы.

Подтверждение при закрытии пр-мы — заставляет программу спрашивать подтверждение пользователя при закрытии главного окна программы. При выборе пункта меню «Файлы | Выход» или нажатии соответствующей горячей клавиши вопрос не задается.

Блокировать при простое через — если с программой не работать указанное здесь количество минут, произойдет временная блокировка доступа к программе. Необходимо будет ввести пароль для разблокировки. Эта опция недоступна если на вход в программу не установлен пароль.

Показывать окно помощника справа — выводит окно помощника справа от любого окна, открываемого в программе. В помощнике содержится информация о назначении окна и как с ним работать.

Всегда стандартный курсор мыши — изменяет поведение курсора мыши в таблицах. Обычно курсор меняется в зависимости от контекста последующего действия. При включении этой опции курсор всегда будет в виде стрелки.

Контекстное меню Дополнительно — добавляет к контекстному меню пункт Дополнительно, в который программа добавляет пункты меню, относящиеся к этому документу. Все эти пункты доступны из главного меню, однако из-за редкого использования, обычно они не добавляются в контекстное меню.

Переводить дату в полночь — определяет поведение программы в 00:00.

Если здесь указан вариант По запросу, программа выведет в полночь сообщение: «Сейчас в программе установлена текущая дата .... Заменить на ... ?». Можно будет принять решение, переводить дату в программе на новый день или продолжить заносить документы со старой датой. Изменить текущую дату можно будет позже вручную на закладке Таблицы, параметр Текущая дата. Текущая дата также поменяется и после перезапуска программы.

Если в параметре указан вариант Автоматически, смена даты будет произведена без запроса.

Вариант Никогда отключает эту функцию.

Параметр Язык задает язык интерфейса программы. Значение <По умолчанию> означает, что программа будет выбирать язык согласно языковым настройкам Windows. Параметр может быть не доступен, если язык определен в настройках пользователя. Список будет пуст, если в программе не заполнена таблица локализации с переводом интерфейса.

Ширина (качество) рисунков — определяет ширину рисунка (в пикселях) при сохранении документов. Чем больше указанное здесь значение, тем качество рисунка выше, но и размер файла больше. Значение Авто означает, что ширина рисунка будет равна ширине рабочего стола (экрана) компьютера.

Каталог выходных документов — определяет каталог выходных документов. По умолчанию, в него помещаются архивные документы и документы других типов при импорте бланков и таблиц, выходные архивные документы. Текстовые файлы, файлы XML и DBF открываемые во внутреннем языке по умолчанию располагаются именно в этом каталоге.

Каталог выходных документов может быть макровыражением.

Справа от опций находятся кнопки. Они открывают дополнительные диалоги настройки.

Предпочтения. Вызывает диалог настройки личных предпочтений (Торговый склад, Бухгалтерия).

Разработка. Вызывает диалог параметров среды разработки.

Главное окно. Вызывает диалог настроек главного окна.

Отправка почты. Вызывает диалог настроек почты.


Параметры среды разработки

Настройка редактора вызывается из пункта меню «Установка | Настройки» на закладке Общие. Все возможности разделены на закладки:

Редактор — задает общие параметры настройки редактора

Подсветка синтаксиса — позволяет установить внешний вид подсветки (выделения ключевых слов) формул внутреннего языка.

Транслятор — задает опции работы транслятора внутреннего языка

Установленные параметры вступят в силу после нажатия <OK> в этом диалоге.


Редактор

Параметры среды разработки

Настраиваемые на закладке Редактор режимы отражаются в текстовом редакторе, редакторе бланков, расчетной части бланка или отчета, редакторе типовых операций и функций.

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

Использовать автоотступ — включает режим автоотступа. Когда он включен, при нажатии <Enter> в тексте курсор переходит не на начало строки, а на начало предыдущей фразы. Вдобавок можно указать дополнительный отступ на нужное кол-во символов 0 — 99 (0 — дополнительного отступа нет). Курсор сместится вправо на указанное кол-во символов.

Backspace идет по отступам — клавиша Backspace идет по отступам. Если от начала строки до курсора одни пробелы, то Backspace становится на отступ предыдущей фразы, затем предшествующей ей, но с меньшим отступом и т.д., пока не дойдет до начала строки.

Tab идет по отступам — клавиша <Tab> идет по отступам. Нажатие <Tab> не приводит к смещению курсора на начало отступа предыдущих строк.

Использовать табуляцию — клавиша <Tab> вставляет фиксированное кол-во пропусков. Далее указывается размер табуляции.

Оптимизировать рамки при сохранении — Равносильно нажатию <Ctrl>+<Shift>+<О> в редакторе бланка. Это вызывает оптимизацию рамок, уменьшению их кол-ва с сохранением вида документа.

Выделять внутри выделенного элемента — если эта опция выключена, то после выделения элемента бланка (вокруг него появится красный прямоугольник) выбирать другие элементы курсором внутри выделенной части запрещается. При включении опции такая возможность появляется.

Отмена работает после сохранения — говорит программе, что после сохранения файла можно отменять сделанные в нем изменения. Если эта опция отключена, то после сохранения файла журнал действий пользователя, по которому и работает отмена последнего действия, очищается.

Включить подсказку параметров — в редакторе при наборе текста алгоритма программа будет отображаться подсказки с перечнем полей функций, методов, свойств. Список параметров обычно появляется после нажатия открывающейся скобки за функцией, методом или свойством. Принудительно, несмотря на отсутствие здесь флажка, его можно вызвать с помощью комбинации клавиш <Ctrl>+<пробел>.

Включить подсказку полей — в редакторе при наборе текста алгоритма программа будет отображаться список полей объекта. Список полей обычно появляется после нажатия точки за идентификатором объекта. Принудительно, несмотря на отсутствие здесь флажка, его можно вызвать с помощью комбинации клавиш <Ctrl>+<пробел>.

Автоподстановка шаблонов в коде — упрощает ввод конструкций языка. При включении опции, если, например, набрать в редакторе ключевое слово ЕСЛИ, программа подставит оставшуюся часть конструкции: ТО, КОНЕЦ_ЕСЛИ.


Подсветка синтаксиса

Параметры среды разработки

На закладке Подсветка синтаксиса можно изменить подсветку выражений в расчетной части бланка или отчета и редакторе типовых операций и функций.

Тип — здесь можно выбрать заранее определенный тип подсветки из фиксированного списка. После выбора подсветку можно изменить. При выборе <нет> подсветка отключается.

Элемент — показывает список элементов текста, для которых можно настраивать подсветку.

Цвет — указывается цвет выбранного элемента. Используйте правую кнопку мыши для указания цвета фона, а левую кнопку для указания цвета текста.

Шрифт — указывает начертание шрифта выбранного элемента.

По умолчанию — говорит, что при выводе выбранного элемента надо использовать текст или фон по умолчанию. Текст и фон «по умолчанию» настраиваются при выборе соответствующего элемента.

Просмотр примера — показывает, как это все будет выглядеть. Если кликнуть мышью на интересующий элемент в редакторе, программа перейдет к выбранному элементу подсветки в списке элементов.


Транслятор

Параметры среды разработки

На закладке Транслятор можно указать опции транслятора внутреннего языка.

Сообщения. Задает режимы вывода сообщений, выдаваемых в процессе проверки синтаксиса.

Выводить предупреждения. Выводит важные предупреждения, касающиеся возможно неправильной работы алгоритмов. Нормально работающие алгоритмы на внутреннем языке не должны выводить никаких предупреждений. Лучше не убирать эту опцию.

Выводить подсказки. Выводит подсказки. Они могут пригодиться разработчикам конфигураций. Опция работает только под Администратором.

Выводить отладку. Активизирует функцию ОТЛАДКА.


Настройка главного окна

Диалог настройки позволяет настраивать вид и поведение главного окна и содержит следующие опции:

Меню и панели — управляют отображением главного меню и панелей.

Иконки в меню — означает, что слева от пунктов меню будут рисоваться соответствующие этим пунктам меню изображения.

Горячие клавиши в меню — определяет, будут ли писаться названия горячих клавиш справа от пункта меню. Когда все клавиши и так помнишь, лучше отключить.

Панель инструментов — управляет отображением панели инструментов.

Крупные значки — выбрать большие или маленькие изображения для панели инструментов.

Текст в кнопках — определяет, необходимо ли писать на кнопках панели инструментов сокращенное название этих кнопок. Это помогает при первом знакомстве с программой. При включенной опции Вы можете выбрать расположение текста: Снизу или Выборочно справа.

Навигатор периода — управляет отображением навигатора периода, при включенной опции возможен выбор вида навигатора периода: День, Месяц, Квартал или Как в отчетах.

Авто-переключение периода — когда включена эта опция (по-умолчанию) при перемещении между закладками в журналах, а также при фильтрации, в случае, если за выбранный период нет записей, навигатор переключится на ближайший период, за которые записи есть.

Панель окон — позволяет скрыть или показать панель окон. При скрытой панели список открытых окон будет добавлен в пункт основного меню Окна.

Закрепить панели — запрещает перетаскивание панелей с помощью мыши.

Отображать строку статуса главного окна — строка статуса будет скрыта.

Поведение главного окна — управляет поведением главного окна при его максимизации:

Заголовок главного окна скрывается при максимизации — при максимизированном окне будут скрываться его заголовок и рамка.

Стандартное поведение главного окна — обычное поведение окна (отображается заголовок).

Поведение клиентского окна — задает режим отображения заголовка клиентского окна (это все окна, которые появляются, когда пользователь заходит в какой-либо пункт меню):

Показывать заголовок клиентского окна — вверху клиентского окна будет отображаться его заголовок.

Добавлять заголовок клиентского окна в заголовок главного окна — заголовок клиентского окна будет добавлен в заголовок основного. Рекомендуется, если у Вас установлено невысокое разрешение дисплея.

В графе Тема указывается тема оформления программы. Выберите нужную исходя из личных предпочтений. Две темы являются встроенными в программу: Классическая — оформление в стиле Windows 98/95. Все остальные темы зависят от поставки программы.

Переключатели Оттенок и Насыщенность позволяют изменить цвет установленной темы. Изменения можно увидеть сразу же при корректировки оттенка и насыщенности. Переключатели не доступны при использовании классической темы.

Нажатие кнопки По умолчанию позволяет установить расположение панелей и режимы отображения окон в состояние, соответствующее первому запуску программы.

См.также
Общая настройка программы
Режимы главного окна


Настройка отправки почты

Этот диалог настраивает режимы и опции отправки электронной почты из программы. Он содержит следующие опции:

Способ отправки — определяет два возможных способа отправки

Передавать в почтовую программу — при отправке почты будет вызвана почтовая программа (Microsoft Outlook, Mozilla Thunderbird, The Bat! и др.). Для этого необходимо, чтобы она была почтовой программой по умолчанию.

Замечание!

В этом режим использует интерфейс MAPI. Если интерфейсу не сопоставлена ни одна почтовая программа, отправка писем работать не будет.

Отправлять напрямую — в этом случае программа Инфо-Предприятие сама выступает как почтовая программа и отправляет письма сразу на почтовый сервер (yandex.ru, mail.ru, gmail.com и др.).

Для отправки писем напрямую необходимо настроить параметры почтового сервера.

SMTP-сервер — здесь указывается имя сервера отправки писем. Имя сервера задается строкой или IP-адресом. Примеры наиболее распространенных серверов:

·smtp.yandex.ru

·smtp.mail.ru

·smtp.gmail.com

·smtp.rambler.ru

·smtp.mail.yahoo.com

·smtp.live.com

Порт — обычно здесь указывается число 25.

Пользователь, Пароль — здесь указывается имя пользователя и пароль доступа. Так, если вы имеете почтовый ящик на Яндексе ivanov@yandex.ru, и заходите в него под паролем 123, то имя пользователя будет ivanov, пароль 123.

Соединение — выбор протокола передачи данных. На разных серверах значение может быть разным.

Обратный адрес — ваш электронный адрес, от имени которого будут отправляться письма, например ivanov@yandex.ru.

См.также
Общая настройка программы


Калькулятор

Встроенный калькулятор позволяет проводить расчеты различной сложности. С ним можно работать, как с обычным настольным калькулятором (набор элементарных арифметических операций и операции с регистром в памяти), но можно также вычислять произвольные формулы внутреннего языка программы.

Калькулятор вызывается при подстановке числового значения в графу, но его можно вызвать и обычным образом, используя один из следующих способов:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт главного меню «Сервис | Калькулятор».

·нажать комбинацию клавиш <Ctrl>+<К> ( <Ctrl>+<R> );

Если калькулятор был вызван из поля, то содержимое поля переносится в калькулятор, а результат вычислений может быть подставлен при возврате из калькулятора.

Текст вычисляемого выражения можно вводить вручную в графу ввода калькулятора. При этом можно вызвать список выражений, вычисленных ранее. Для этого надо нажать <F2> или <F4>, находясь в графе ввода выражения. Можно использовать кнопки для ввода выражения:

0..9,00,. — для ввода чисел

+..% — для ввода операций

M+ — для добавления результата выражения к содержимому памяти.

M- — для добавления результата выражения к содержимому памяти.

MR — для получения значения из памяти калькулятора

MC — для очистки памяти

<- — удаление символа

С — сброс калькулятора

Подставить — подстановка результата обратно в поле ввода.

Закрыть — завершает работу с калькулятором.


Календарь

Встроенный календарь позволяет выбрать любую дату для подстановки ее в графу ввода.

При вызове календаря на экране появятся все даты из текущего месяца или квартала (в зависимости от настроек). Выбранная дата выделяется курсором (прямоугольником) [image], текущая — красной рамкой [image], праздничные и выходные дни выводятся красным цветом [image], а обычные дни — черным [image]. При вызове календаря из навигатора периода даты, в которых не было операций, будут выводиться серым цветом [image].

Для выбора необходимой даты можно перемещать курсор, используя мышь или клавиши управления курсором:

Клавиша б — на один день раньше

Клавиша в — на один день позже

Клавиша Я — на одну неделю раньше

Клавиша а — на одну неделю позже

Клавиша Home — первый день месяца

Клавиша End — последний день месяца

Клавиша PgUp или кнопка [image] — на один месяц (квартал) раньше

Клавиша PgDn или кнопка [image] — на один месяц (квартал) позже

Клавиши <Ctrl>+Home — первый день года

Клавиши <Ctrl>+End — последний день года

Клавиши <Ctrl>+PgUp или кнопка [image] — на один год раньше

Клавиши <Ctrl>+PgDn или кнопка [image] — на один год позже

При выходе курсора за левую (правую) границу окна происходит переход к предыдущему (следующему) месяцу (кварталу).

Для быстрого выбора квартала можно выбрать его внизу. Для быстрого выбора текущей даты, даты начала и конца года, а также режима календаря (месяц или квартал), можно использовать контекстное меню, которое вызывается по щелчку правой кнопкой мыши в любом месте календаря.

Для выбора нужной даты нажмите клавишу <Enter>, кнопку ОК или дважды щелкните левой кнопкой мыши по требуемой дате.

Замечание!

Для настройки праздников, отображаемых в календаре необходимо написать специальную функцию. Подробности см. в описании функции ПРАЗДНИК.


Перенос проводок

Перенос проводок решает следующие задачи:

·Заменяет в бухгалтерских проводках один счет на другой с таким же набором аналитик. Также замена происходит в других журналах, имеющих поля с указанием счета.

·Заменяет в бухгалтерских проводках один счет с аналитиками на другой счет с другими аналитиками. Также замена происходит в других журналах, имеющих поля с указанием счета.

·Заменяет в бухгалтерских проводках одну статью на другую. Также замена происходит в других журналах, имеющих поля с указанием статей налогового учета.

·Заменяет в бухгалтерских проводках один аналитический признак на другой. Также происходит замена ссылок на указанную запись указанного журнала на другую запись.

При выборе пункта меню «Сервис | Перенос проводок», появляется диалог с тремя закладками, предназначенными для решения этих трех задач.

Перенос проводок по счетам без аналитик. Укажите в графе Со счета код счета, с которого надо перенести, а в графе На счет укажите счет, на который надо перенести проводки. Для выбора счета можно воспользоваться кнопкой выбора [image]. После указания счета в графах справа будет писаться название, раздел баланса и вид учета выбранного счета.

Выберите отличный от исходного счет и нажмите <OK> для выполнения операции.

При переносе проводок, если один из счетов имеет один или несколько аналитических признаков, то другой должен иметь абсолютно те же аналитические признаки. В противном случае программа выдаст сообщение об ошибке:

Счета ... и ... имеют разные аналитические признаки.

Если Вам все-таки надо перенести проводки с этого на тот счет, отредактируйте их аналитики и только после этого выполните операцию переноса проводок.

Если стоит более сложная задача, например, замена счетов в части бухгалтерских операций, в проводках и операциях, удовлетворяющих какому-либо условию, замена части счета (например, верхнего уровня на другой), замена только дебета или только кредита счета, это нужно делать по-другому. Вначале надо переключить журнал бухгалтерских операций на режим проводки вместе с операциями. Затем отфильтровать журнал по нужному условию. И затем воспользоваться заменой строки в колонке дебет или кредит.

Перенос проводок по счетам с аналитиками. Укажите в графе Со счета расширенный код счета с аналитиками, с которого надо перенести, а в графе На счет укажите другой счет с другими аналитиками, на который надо перенести проводки. Для выбора счета можно воспользоваться кнопкой выбора [image]. После указания счета в графах справа будет писаться название, раздел баланса и вид учета выбранного счета.

Выберите отличный от исходного счет и нажмите <OK> для выполнения операции.

Если стоит более сложная задача, например, замена счетов в части бухгалтерских операций, в проводках и операциях, удовлетворяющих какому-либо условию, замена части счета (например, верхнего уровня на другой), замена только дебета или только кредита счета, это нужно делать по-другому. Вначале надо переключить журнал бухгалтерских операций на режим проводки вместе с операциями. Затем отфильтровать журнал по нужному условию. И затем воспользоваться заменой строки в колонке дебет или кредит.

Перенос проводок по статьям. Укажите в графе Со статьи код статьи налогового учета с которой надо перенести, а в графе На счет укажите статью, на которую надо перенести проводки. Для выбора статьи можно воспользоваться кнопкой выбора [image]. После указания статьи в графах справа будет писаться название и вид выбранной статьи.

Выберите отличную от исходной статью и нажмите <OK> для выполнения операции.

Также как и для счетов, для замены части операций, воспользуйтесь режимом проводки вместе с операциями. и заменой строки в колонке СУ.

Перенос проводок с одной записи журнала на другую. Выберите журнал, записи которого будут заменяться с одной на другую. Выберите в графе С записи запись с которой надо перенести, а в графе На запись укажите запись, на которую надо перенести проводки. Для этого можно использовать кнопку выбора [image].

Выберите отличную от исходной запись и нажмите <OK> для выполнения операции.

После успешного завершения будет выдано одно из следующих сообщений

Произведено замен ... — указывает, сколько замен счета, статьи или записи журнала сделала программа

Вхождений не найдено — если счет, статья или запись журнала нигде не используются.

Перенос проводок может завершиться с ошибкой, например, когда проводки с этим счетом, статьей или записью редактируются другим пользователем и их изменение невозможно.

Внимание!

Перенос проводок игнорирует ограничения, задаваемые правами доступа, за исключением доступа к закрытому периоду: внести изменения в операции в закрытом периоде при отсутствии прав невозможно.

Перенос проводок действует по всем фирмам базы вне зависимости от включенной опции Показывать операции всех фирм, указанной в диалоге выбора фирмы.

См.также
Удаление счета


Проверка данных

Проверка данных позволяет исправить логически ошибки в данных, которые могут являться источником некорректной работы программы. Запустить проверку можно при помощи пункта меню «Сервис | Проверить».

После вызова появится диалог Проверка данных с опциями. Они имеют следующий смысл:

Исходные остатки по счетам — исправляет внутренние ошибки в структуре исходных остатков.

Консолидированный учет — проверяет ошибки, связанные с консолидированным учетом нескольких фирм в единой базе данных: выявляет операции по несуществующим фирмам, неверные ссылки на фирмы и др.

Корректность указания аналитик — проверяются коды аналитик в проводках. Если аналитики ссылаются на несуществующий объект или не указаны, выводится предупреждение.

Корректность указания счетов и статей НУ — проверяется корректность счетов: использование неверных счетов или счетов не последнего уровня, проверка статей налогового учета и др.

Наличие выключенных записей — проверяет на наличие отключенных операций и записей.

Поля типа множество — для полей типа множество (перечисление) проверяется корректность значений.

Пустые значения в полях — для полей, в которых запрещены пустые значения, проверяет наличие пустых значений в данных. Если при включении этой опции выдаются ошибки, резервная копия базы данных не будет сохранятся до тех пор, пока они не будут исправлены.

Диалог проверки может содержать и другие пункты, в зависимости от конфигурации.

В результате проверки будет выведен список ошибок в нижнем окне программы. В заголовке будет написано общее количество ошибок. Щелкнув на ошибку, можно выполнить переход к операции/документу для всех видов проверок.

Чтобы перейти к записи журнала, содержащей ошибку, достаточно дважды щелкнуть левой кнопкой мыши на список ошибок. Откроется окно редактирования соответствующего журнала, а курсор будет стоять на записи, содержащей ошибку.

Чтобы сохранить список ошибок в буфере обмена или текстовом файле, достаточно выбрать соответствующий пункт контекстного меню.

См.также
Проверка конфигурации


Поиск в конфигурации

Поиск в конфигурации осуществляется при помощи пункта меню «Разработка | Поиск в конфигурации».

Он позволяет отыскать нужный фрагмент строки в исходных текстах конфигурации (бланках, отчетах, типовых операциях, библиотеках).

Замечание!

Поиск также может осуществляться с помощью пунктов меню Найти текст в бланках в списке бланков и Найти текст в отчетах в списке отчетов.

После выбора этого пункта меню появится окно Поиска. В нем надо ввести в поле Образец строку, по которой будет вестись поиск и нажать кнопку Найти далее. В случае, если поиск будет удачным, программа выделит список всех найденных строк.

Дополнительно возможно установить следующие параметры поиска:

С учетом регистра — будет при сравнении проверять регистр символов. Слова, у которых буквы отличаются регистром, в этом случае считаются разными.

Только слово целиком — поиск слова целиком. В таком случае слово, являющееся частью другого слова не будет проверяться.

Область поиска — где будет осуществляться поиск.

См. также
Поиск строк


Проверка конфигурации

Проверка конфигурации требуется в первую очередь разработчикам собственных конфигураций. Однако, в случае возникновения ошибок при работе бланков, типовых операций или функций, любому пользователю рекомендуется выполнить проверку конфигурации для формирования списка ошибок и отправки их для устранения разработчику.

Проверка конфигурации должна вызываться при изменении структуры базы данных, добавлении новых журналов и полей, т.к. это влияет на работу функций доступа к базам данных (например на конструкцию ЦИКЛ ПО ЖУРНАЛУ).

Эта процедура позволяет проверить синтаксическую правильность текстов алгоритмов, используемых программой. Проверка не должна выдавать ошибок. Если это не так, обратитесь к поставщику Вашей программы за разъяснениями. Будьте готовы сообщить ему текст выдаваемой ошибки (ошибок).

Проверку конфигурации можно запустить при помощи пункта меню «Разработка | Проверка конфигурации». Убедитесь, что у Вас есть соответствующие права доступа.

При вызове этого пункта меню появится список компонент, которые можно проверить. Отметьте флажком [image] те, которые надо поверять:

Бланки документов и отчетов — синтаксис алгоритмов бланков документов и отчетов

Встроенные отчеты — синтаксис встроенных отчетов.

Типовые операции — синтаксис алгоритмов типовых операций

Обработчики — синтаксис обработчиков

Главное и контекстное меню — работоспособность пунктов главного и контекстного меню, включая наличие подсказок.

Структуру журналов аналитики — проверяется правильность описанной структуры журналов аналитики, наличие всех полей в структуре, первичного ключа.

Контекстную справку и помощник — проверяется наличие контекстной справки (A-keywords) для журналов, бланков, отчетов, а также наличие топика для встроенного помощника. При отсутствии вслед за сообщением будет выводиться в скобках текст искомых ссылок.

После нажатия <OK> запустится проверка.

В исходных текстах алгоритмов могут использоваться задачи. Они формируются из комментариев вида

{TODO задача}

или

{TODO}

с помощью комбинации клавиш Ctr+T. Установка флажка Выводить сведения о задачах позволяет вывести их в окне сообщений.

См.также
Проверка данных


Редактор

Редактор текста

Встроенный редактор текстов представляет собой стандартный текстовый редактор с дополнительными возможностями. Этот же текстовый редактор используется при редактировании библиотек функций, типовых операций и расчетной части бланков.

Чтобы вызвать встроенный редактор, надо выбрать пункт «Сервис | Редактор» главного меню.

Если в режиме редактирования текста вызвать пункт меню «Файлы | Открыть», то загрузится другой файл для редактирования. Таким образом, можно редактировать сразу несколько файлов.

В ходе работы с текстовым редактором Вы можете использовать следующие комбинации клавиш:

Клавиша | Функция
<Я> <б> <в> <а> | Управление курсором
<Home> | В начало строки
<End> | В конец строки
<PgUp> | На страницу вверх
<PgDn> | На страницу вниз
<Ctrl>+<Home> | Перейти на начало текста
<Ctrl>+<End> | Перейти в конец текста
<Ctrl>+Я> | Слово влево
<Ctrl>+<а> | Слово вправо
<Ctrl>+<б> | Прокрутка окна вверх
<Ctrl>+<в> | Прокрутка окна вниз
<Tab> | Табуляция
<Enter> | Новая строка
<Ins> | Включение/выключение режима вставки
<Backspace> | Удаление символа слева от курсора
<Del> | Удаление символа справа от курсора / удаление блока
<Ctrl>+<Backspace> | Удаление слова слева от курсора
<Ctrl>+<Н> ( <Ctrl>+<Y> ) | Удаление строки
<Shift>+<Я> | Выделение блока
<Shift+<а>
<Shift>+<б>
<Shift>+<в>
<Shift>+<PgUp>
<Shift>+<PgDn>
<Shift>+<Home>
<Shift>+<End>
<Shift>+<Ctrl>+<Home>
<Shift>+<Ctrl>+<End>
<Ctrl>+<Б> ( <Ctrl>+<<> ) | Переключение режима «строчное/блочное выделение»
<Shift>+<Del> | Вырезать в буфер обмена
<Ctrl>+<Ins> | Копировать в буфер обмена
<Shift>+<Ins> | Вставить из буфер обмена
<Ctrl>+<I> | Сдвиг блока вправо
<Ctrl>+<U> | Сдвиг блока влево
<Ctrl>+<A> ( <Ctrl>+<F> ) | Поиск
<Ctrl>+<P> ( <Ctrl>+<H> ) | Замена
<F3> | Печать текста
<Ctrl>+<Ы> ( <Ctrl>+<S> ) | Сохранение текст
<Alt>+<Backspace> | Отмена последнего действия
<Alt+<Shift>+<Backspace> | Повтор последнего действия

Эти же команды можно использовать и в редакторах бланков и формул, которые являются расширением редактора текста.

При редактировании визуальной части бланка дополнительно существуют следующие комбинации клавиш:

Клавиша | Функция
<Ctrl>+<Shift>+<Б>(<Ctrl>+<Shift> + <<> ) | Переключение режима «полное/частичное выделение»
<Ctrl>+<Shift>+<Ю>( <Ctrl>+<Shift>+<>> ) | Переключение режима автонумерации граф
<Ctrl>+<Shift>+<Ы> ( <Ctrl>+<Shift>+<S> ) | Переключение между стратегией объединения объектов
<Ctrl>+<Shift>+<Щ> ( <Ctrl>+<Shift>+<O> ) | Выполнить оптимизацию рамок (уменьшить их кол-во с сохранением вида документа). Примечание: если включена опция Оптимизировать рамки при сохранении в настройках редактора, оптимизация будет делаться при каждом сохранении.
<Ctrl>+<Я> <б> <в> <а> | Работа в режиме рисования рамок
<Ctrl>+<Shift>+<Ц> ( <Ctrl>+<Shift>+<W> ) | Увеличить ширину рамок при рисовании
<Shift>+<Enter> | Переключиться в режим перемещения/изменения размеров выделенного элемента
<Enter> | Закончить перемещение/изменение размеров элемента и установить новые размеры
<Alt>+<Enter> | Закончить перемещение/изменение размеров элемента, установить новые размеры, изменить размеры других элементов исходя из стратегии объединения объектов.
<Esc> | Закончить перемещение/изменение размеров элемента, оставить старые размеры.

Следующие клавиши используются при заполнении бланка, однако они используются разработчиками для отладки.

Клавиша | Функция
<Ctrl>+<Shift>+<В> ( <Ctrl>+<Shift>+<D> ) | Отобразить служебную отладочную информацию о графах ввода-вывода.

Некоторые команды, например, команды для работы с буфером обмена или отмены/повтора последнего действия можно выполнять с помощью пунктов меню. Следующие пункты можно использовать в редакторе:

Меню | Функция
«Файлы | Просмотр» | Предварительный просмотр текста перед выводом на печать
«Файлы | Печать» | Печать текста
«Файлы | Открыть» | Открыть другой документ
«Файлы | Сохранить» | Сохранение документа
«Файлы | Экспорт в...» | Экспорт документа в другой формат
«Файлы | Импорт из...» | Импорт документа из другого формата

Текстовый редактор имеет строку статуса, где отображаются основные режимы работы редактора.


Интерфейс кассира

Окно интерфейса кассира предназначено для организации работы оператора-кассира или какого-либо другого интерфейса. Для управления окном необходимо использовать горячие клавиши или клавиши на специализированной клавиатуре.

Расположение элементов управления можно настроить под себя. Для этого достаточно в контекстном меню убрать флажок у пункта Закрепить панели. После этого у всех элементов окна интерфейса кассира появятся маркеры:

Нажав на маркер левой кнопкой мыши можно перемещать связанный с ним элемент управления.

Замечание!

Настройка внешнего вида интерфейса кассира (в частности, доступ к контекстному меню настройки) может быть отключена в правах доступа, опция «Разрешить настройку интерфейса кассира».

Интерфейс кассира разбит на три секции: левую, центральную и правую. Ширину секции можно произвольным образом менять. Каждая секция имеет два дока (две области) для размещения элементов управления — верхний и нижний. Итого получается 6 доков для размещения элементов. Элементы управления можно перемещать как между доками внутри секции, так и между секциями. Пункт меню Перенос панелей между доками позволяет быстро перенести панели из одного дока в другой. После переноса надо будет закрыть и заново открыть окно интерфейса кассира.

После того как расположение элементов будет настроено, панели можно обратно закрепить, вернув назад флажок у пункта Закрепить панели контекстного меню.

С помощью пунктов Сохранить настройки панелей и Загрузить настройки панелей можно сохранять и загружать настройки расположения во внешний файл.

Более детальное описание элементов и клавиш можно найти в специализированной справке.


Окна

Пункт Окна главного меню состоит из команд для работы с окнами. В конец же этого меню программа добавляет список открытых окон. Следующие пункты меню состоят в группе Окна:

Закрыть все — закрывает все окна.

Новое окно — если этот пункт меню активен, программа создает дубликат окна.


Личный кабинет

Чтобы войти в личный кабинет пользователя используется меню «Справка | Личный кабинет». В личном кабинете можно посмотреть информацию по взаиморасчетам по технической поддержке и консультациям.


Сделать снимок с экрана

Чтобы передать в службу технической поддержки сведения о проблеме можно сделать снимок с экрана компьютера и сохранить его в файле. Сделать это можно при помощи пункта меню «Справка | Сделать снимок с экрана».


Сведения о системе

В сведениях о системе можно узнать информацию о временном каталоге, работающих с программой компьютерах и др. Вызвать его можно при помощи пункта меню «Справка | О системе».

Диалог разбит на две закладки:

Информация — сообщает информацию о базе данных, сервере, статистику.

Имя базы, Путь к базе и Пользователь — название и путь к текущей базе данных и имя текущего пользователя. Их еще можно получить, если нажать правой кнопкой мыши на название базы в строке статуса программы (в правом нижнем углу главного окна). Имя пользователя пишется краткое (имя при входе) и полное (оно пишется в скобках)

Замечание!

Если при подключении к базе данных используются «алиасы» Firebird, то графа Путь к базе данных будет будет показывать под обычным пользователем (не-Администратором) имя алиаса. Чтобы посмотреть реальный путь к базе данных надо зайти в программу под Администратором.

Средство защиты — пишется, каким электронным ключом защищена программа.

Сервер — здесь отображается информация о используемом сервере.

Версия — версия используемого сервера, версия ODS (версия файла базы данных, она может быть не связана с версией сервера).

Сжатие трафика — используется ли сжатие сетевого трафика. Оно включается указанием параметра командной строки -O.

Шифрование — используется ли шифрование сетевого трафика.

Имя компьютера — сервер, на котором находится база данных.

Свободно — кол-во свободного места на диске, на котором находится база данных.

Внимание!

Будьте осторожны !!! Если места на диске не хватит, база данных будет повреждена.

Размер страницы — здесь указывается размер страницы базы данных. Рекомендуется, чтобы значение здесь не было меньше 4096, в противном случае возможны проблемы с быстродействием.

Страничный кэш — может задаваться в конфигурационном файле на сервере.

Кол-во мусора — большое значение в этом поле может говорить о необходимости запуска сборки мусора.

Статистика — показывает общую информацию о кол-ве записей в справочниках, журналах.

Компьютер — сообщает информацию о компьютере и операционной системе

Процессор, Оперативная память, Операционная система и Версия — показывает информацию о компьютере и операционной системе.

Компьютер, Пользователь — имя этого компьютера и имя пользователя операционной системы на этом компьютере.

Каталоги — показывает путь к текущему и временному каталогу и кол-во свободного места на них. Если не хватает места во временном каталоге или там слишком много файлов, Вы не сможете установить обновление конфигурации. Если в текущем каталоге слишком мало места, Вы не сможете подключиться к базе данных.

Логи — сюда заносятся сведения об ошибках и детальная информация об обновлении.


Временная блокировка

Стандартное меню

Временная блокировка предназначена для предотвращения несанкционированного доступа к данным в отсутствие пользователя. Программа контролирует, кто какой документ ввел. Поэтому важно, чтобы во время сеанса работы пользователя никто не мог бы выполнить какие-либо действия «под чужим именем». С другой стороны, если пользователю требуется отойти от компьютера, каждый раз «выходить» и «входить» в систему не всегда удобно. В этом случае может быть использована временная блокировка.

Режим временной блокировки имеет смысл только тогда, когда для пользователя задан пароль.

Для входа в режим временной блокировки нужно выбрать пункт «Файлы | Временная блокировка» главного меню. Можно настроить автоматическую блокировку через указанное число минут. Это можно сделать в настройках программы, пункт меню «Установка | Настройки», закладка «Общие».

При блокировке окно программы минимизируется. Чтобы продолжить работу, следует щелкнуть ярлык приложения. На экран выдается диалог для ввода пароля. Должен быть введен точно такой же пароль, как и при первоначальном входе в программу.

После правильного ввода пароля программа снова становится доступной для работы.


О программе

Стандартное меню

Пункт меню «Справка | О программе» выводит информацию о версии программы Инфо-Предприятие, здесь же Вы можете получить список установленных конфигураций и их версии.

Также здесь показана информация об авторских правах и координатах фирмы-поставщика, которая осуществляет Вашу техническую поддержку и консультации по программе.

Нажав кнопку Управление лицензиями, Вы можете установить дополнительные сетевые лицензии или перейти с одной версии программы на другую.


Управление лицензиями

Нажав кнопку Управление лицензиями в меню «Справка | О программе» Вы можете перейти к управлению лицензиями. Здесь можно выполнить следующие действия:

·увеличить количество сетевых лицензий (максимальное количество пользователей, которые могут работать с программой одновременно);

·сделать из локальной версии сетевую, с заданным количеством лицензий;

·перейти с версии Стандарт на версию ПРОФ, добавить поддержку какой-либо конфигурации или модуля;

·осуществить переход с программы Инфо-Предприятия версии 1.x на версию 2.x;

·разбить один сетевой ключ на два, например, для перевода части рабочих мест на другую версию программы, при разъезде фирмы в разные офисы и т.д.;

·объединить лицензии с двух сетевых ключей на один общий с высвобождением одного локального ключа;

·перевести сетевые лицензии с LPT на USB ключ и наоборот;

·другие возможности.

Внимание!

Если у Вас возникли сомнения в том, какой модуль надо указывать, лучше обратиться в службу технической поддержки для уточнения.

После формирования кода-запроса, следует переслать его нам, а затем, получив код-ответ, активировать лицензию. Данные действия одинаковы для всех типов переходов.

Пересылка и активация:

·Сформированный код-запрос отсылается нам на адрес электронной почты upgrade@infop.ru или факсу +7 (495) 3696006. Не забудьте при отсылке указать правильный серийный номер программы Инфо-Предприятие. Он указан в свидетельстве на право использования программы Инфо-Предприятие или в Лицензионном договоре. В случае утери свидетельства и лицензионного договора необходимо дополнительно сообщить номера документов (накладных и счетов-фактур), название и ИНН организации, на которую покупалась программа. При отсылке запроса в такой ситуации, в поле Серийный номер указывается номер, состоящий из одних единиц — 1111111111111111. Если у Вас несколько электронных ключей, пометьте их или запомните с какого ключа (или компьютера, на котором установлен ключ), какой запрос отправлялся. Также убедитесь, что только один электронный ключ Инфо-Предприятия подключен к компьютеру, с которого формируется код-запрос, иначе нет никаких гарантий, что Вы прошьете именно тот ключ, который нужно.

·Получив запрос, мы вышлем Вам счет на оплату перехода с версии 1.x на 2.x так скоро, как только мы сможем. После оплаты счета и прихода денежных средств на наш расчетный счет, мы вышлем код-ответ.

·Получив код-ответ, надо установить тот же самый ключ, с которого формировался запрос. Запустить программу Инфо-Предприятие 2.x. Выбрать пункт главного меню программы «Справка | О программе» и нажать кнопку Управление лицензиями. Ввести полученный код-ответ. Надо дождаться сообщения Операция успешно завершена. Необходимо перезапустить программу.


Переход с программы «Инфо-Предприятие» версии 1.x на версию 2.x

Пользователи, переходящие на Инфо-Предприятие 2.x с предыдущих версий программы, обращаются для этого к своим обслуживающим организациям и нашим региональным представителям.

Пользователи, не находящиеся на обслуживании, для перехода руководствуются следующей инструкцией:

·Запустить программу Инфо-Предприятие 2.x на компьютере, на котором установлен электронный ключ. Выбрать пункт главного меню программы «Справка | О программе» и нажать кнопку Управление лицензиями.

·Сформировать код-запрос согласно указаниям программы. При формировании запроса необходимо обратить внимание на следующие моменты:

·В поле Кол-во лицензий, которые Вы хотите добавить стоит 0 (ноль). Изменять его не нужно (менять это число надо только в том случае, если одновременно с переходом на Инфо-Предприятие 2.x, Вы покупаете новые дополнительные рабочие места). На закладке Версии указывается версия программы.

·Перешлите, а затем активируйте лицензию вышеуказанными действиями.


Увеличение количества сетевых лицензий

Для этого надо выполнить следующие действия:

·Запустить программу Инфо-Предприятие на компьютере, на котором установлен электронный ключ. Выбрать пункт главного меню программы «Справка | О программе» и нажать кнопку Управление лицензиями.

·Сформировать код-запрос согласно указаниям программы. При формировании запроса необходимо обратить внимание на следующие моменты. В поле Кол-во лицензий, которые Вы хотите добавить ставится количество сетевых лицензий, которые Вы планируете добавить. На закладке Версии ничего не меняется.

·Перешлите, а затем активируйте лицензию вышеуказанными действиями.


Создание из локальной версии сетевую версию

Для этого надо выполнить следующие действия:

·Запустить программу Инфо-Предприятие на компьютере, на котором установлен электронный ключ. Выбрать пункт главного меню программы «Справка | О программе» и нажать кнопку Управление лицензиями.

·Сформировать код-запрос согласно указаниям программы. При формировании запроса необходимо обратить внимание на следующие моменты. В поле Кол-во лицензий, которые Вы хотите добавить ставится количество сетевых лицензий, которое будет прошито на ключе. Именно столько еще пользователей смогут одновременно работать с программой в единой базе данных помимо вас. На закладке Версии ничего не меняется.

·Перешлите, а затем активируйте лицензию вышеуказанными действиями.


Переход с версии «Стандарт» на версию «ПРОФ»

Для этого надо выполнить следующие действия:

·Запустить программу Инфо-Предприятие на компьютере, на котором установлен электронный ключ. Выбрать пункт главного меню программы «Справка | О программе» и нажать кнопку Управление лицензиями.

·Сформировать код-запрос согласно указаниям программы. При формировании запроса необходимо обратить внимание на следующие моменты. В поле Кол-во лицензий, которые Вы хотите добавить стоит 0 (ноль). Изменять его не нужно. На закладке Версии указывается версия программы, на которую Вы переходите.

·Перешлите, а затем активируйте лицензию вышеуказанными действиями.


Разбиение одного сетевого ключа на два

Данное разбиение необходимо в случаях, когда например, часть рабочих мест переводят на другую версию программы, при разъезде фирмы в разные офисы и прочих ситуациях.

Внимание!

Подобные действия также могут быть использованы для объединения лицензий двух сетевых ключей на один общий с высвобождением одного локального ключа или для перевода сетевых лицензий с LPT на USB ключи и наоборот.

Данная процедура бесплатная. Предполагается, что у Вас в наличие есть один сетевой и один локальный ключ или два сетевых ключа. Для этого надо выполнить следующие действия:

·Установить первый, например, сетевой электронный ключ. Запустить программу Инфо-Предприятие на этом компьютере. Выбрать пункт главного меню программы «Справка | О программе» и нажать кнопку Управление лицензиями.

·Сформировать код-запрос согласно указаниям программы. При формировании запроса необходимо обратить внимание на следующие моменты. В поле Кол-во лицензий, которые Вы хотите добавить указывается отрицательное число, равное минус числу лицензий, которое надо перенести на второй электронный ключ. На закладке Версии ничего не меняется.

·Установить второй, например, локальный электронный ключ. Запустить программу Инфо-Предприятие на этом компьютере. Выбрать пункт главного меню программы «Справка | О программе» и нажать кнопку Управление лицензиями.

·Сформировать код-запрос согласно указаниям программы. При формировании запроса необходимо обратить внимание на следующие моменты. В поле Кол-во лицензий, которые Вы хотите добавить указывается положительное число, равное числу лицензий, которое надо перенести с первого ключа на данный электронный ключ (такое же, которое указывалось для первого ключа). На закладке Версии ничего не меняется.

·Перешлите коды-запросы с пометками, какой, к какому ключу относится, а затем установите последовательно те же ключи в те же порты и активируйте их.


Настройка печати

Закладка Расположение определяет расположение документа на листе:

Принтер — здесь можно выбрать принтер, который будет использоваться для печати. Недоступные в данный момент принтеры отображаются серыми значками.

Свойства — позволяет установить параметры выбранного принтера.

Поля — задает ширину полей: верхнее, левое, правое и нижнее. Значение указывается в миллиметрах. Ширина полей не должна быть меньше ширины непечатной области листа на Вашем принтере. В противном случае, программа выдаст сообщение об ошибке. Для более удобной настройки полей лучше использовать линейки в предварительном просмотре.

Масштаб — задает масштаб (в процентах). Чем он больше, тем изображение документа будет крупнее. Чем меньше, тем изображение будет мельче. Для документов можно использовать кнопку автомасштаба в предварительном просмотре.

Ориентация — задает ориентацию листа: книжную (вертикальную) или альбомную (горизонтальную).

Число копий — здесь указывается число копий документа, выводимых на печать.

Закладка Колонтитулы (если есть) предоставляет возможность задать колонтитулы в печатаемом документе.

В программе Инфо-Предприятие можно создавать произвольные верхние и нижние колонтитулы в документах. Для создания и редактирования колонтитулов используется редактор колонтитула. Его можно вызвать, нажав кнопки Создать верхний колонтитул... или Создать нижний колонтитул....

Замечание!

Есть некоторое отличие в использовании колонтитулов в бланках и в других документах: таблицах, отчетах, текстовых файлах. Колонтитулы бланков хранятся в самих файлах бланках, являются его неотъемлемой частью. При печати конкретного бланка используются его собственные колонтитулы. При печати не бланков используется коллекция колонтитулов. Можно выбрать для печати существующий колонтитул, можно и изменить его. В коллекцию существующих колонтитулов можно добавлять свои для использования их в дальнейшем. Выбирать колонтитулы можно из выпадающего списка. Программа запоминает колонтитул, который был выбран, и будет использовать его в дальнейшем для всех документов, кроме бланков.

Закладка Дополнительно (если есть) задает дополнительные опции.

Матричный режим печати — позволяет печатать документ в режиме ускоренной матричной печати (необходимо наличие матричного принтера). Опция устанавливается только для конкретных бланков. Для установки этой опции надо перейти к редактированию бланка и выбрать пункт контекстного меню Разметка страницы.

Кнопка [image] позволяет вызвать диалог параметров матричной печати. Матричный режим доступен только для бланков.

Черно-белая печать — устанавливает черно-белый режим печати. В противном случае печать идет с использованием оттенков серого.

Растянуть на лист — растягивает содержимое документа так, чтобы он занимал весь лист. Например, это удобно при печати диаграмм.

Проводить в таблицах — устанавливает режим отображения на печати линий в таблицах. Например, многие реестры удобно печатать без вертикальных линий.

Размер бумаги — укажите здесь размер бумаги документа бланка. Если необходимый тип отсутствует в списке, укажите ширину и высоту листа в графах Ширина, см и Высота, см.

Насыщенность линий — определяет насыщенность линий при печати документов бланков. Самое левое положение указателя означает минимальную насыщенность, самое правое — максимальную. Чем больше насыщенность, тем более толстые линии получаются при печати. Установленное здесь значение раcпространяется на все бланки.


Создание колонтитула

Редактор колонтитула позволяет создать нужный верхний или нижний колонтитул.

Колонтитул может содержать три фрагмента: текст слева, текст по центру и текст справа. Каждый фрагмент текста может выводиться любым шрифтом. Любой фрагмент колонтитула может выводиться только на первой странице, на всех страницах или только на последней странице по выбору.

Текст колонтитула является обычной строкой, однако она может содержать вставки вида &[<здесь вставка>] называемые макросами. Макросы являются выражениями на внутреннем языке программы Инфо-Предприятие и при выводе колонтитула на экран будут вычислены, а их результат будет преобразован в строку и помещен на это место.

Следующие кнопки могут быть использованы для настройки текста колонтитула:

— шрифт. Для установки шрифта установите курсор в нужный фрагмент колонтитула: левый, центральный или правый и нажмите эту кнопку.

— номер страницы. Для отображения номера страницы установите курсор туда, куда его надо вставить. Программа поместит макрос &[страница], а переменная страница будет принимать номер текущей странице при печати колонтитула.

— кол-во страниц. Для отображения кол-ва страниц в документе установите курсор туда, куда его надо вставить. Программа поместит макрос &[страниц], а переменная страниц примет значение кол-ва страниц в документе.

— текущая дата. Для вставки текущей даты установите курсор туда, где она должна находиться. Программа вставит на место курсора макрос &[ДАТА_ТЕК]. Функция ДАТА_ТЕК вернет текущую дату.

— текущее время. Для вставки текущего времени установите курсор туда, где оно должно находиться. Программа вставит на место курсора макрос &[ВРЕМЯ_ТЕК]. Функция ВРЕМЯ_ТЕК вернет текущее время.

— печатаемый документ. Для отображения имени печатаемого документа установите курсор туда, куда его надо вставить. Программа поместит макрос &[документ], а переменная документ примет значение имени документа.

— вставляет произвольный реквизит. Используйте ее, если надо вставить в колонтитул произвольный реквизит, например, название Вашего предприятия. При нажатии кнопки появится список значимых реквизитов. Например, реквизит Предприят определяет название предприятия. При переключении на другую базу данных программа будет использовать реквизиты оттуда. Соответствующим образом изменятся и колонтитулы.

Настроить, в каком режиме должна отображаться та или иная часть колонтитула: на первой странице, на всех или на последней, можно, если нажать кнопку над текстом фрагмента с названием режима.

Примеры:

стр &[страница] | отобразит номер страницы, скажем стр 1.
стр &[страница] из &[страниц] | отобразит номер и кол-во страниц, скажем стр 1 из 5
&[документ] &[ПЕРИОД] | документ и период: Оборотная ведомость I кв.2001
стр &[страниц — страница + 1] | отобразит номер страницы с конца, например стр 5

См. также
Настройка печати


Параметры матричной печати

В диалоге параметров матричной печати можно указать настройки печати для матричных принтеров в режиме быстрой печати документов. В этом режиме программа не использует средства Windows для вывода документов на печать, а выводит документ напрямую. Это значительно увеличивает скорость вывода документов на матричных принтерах, устраняет проблемы вывода для некоторых из них. Однако в этом режиме нет возможности печатать документы разными шрифтами и выводить графические изображения.

Установить параметры — при включении опции становится доступна настройка параметров.

Межстрочный интервал — задает межстрочный интервал вывода. Возможные значения: От 0.0 до 9.9.

Опции печати — настраиваемые режимы печати

Сжатый шрифт — заставляет печатать документ сжатым шрифтом.

Повышенное качество — печатает каждую строку в два прохода.

Повышенная точность — печать происходит при прохождении каретки в одном направлении. Устраняет зигзаги при выводе прямых линий.


Разграничение доступа

С программой могут работать несколько пользователей. Для повышения эффективности их работы и надежности хранения информации применяется система разграничения доступа. Каждому пользователю предоставляется набор его прав. На основе предоставляемых прав будет определяться:

·вид главного и контекстного меню, интерфейс программы.
У пользователя не будет тех пунктов меню и кнопок панели управления, которые выполняют действия, ему не разрешенные; он не увидит в диалоге настройки программы тех закладок с опциями, которые ему не разрешено настраивать и т.д.

·вид журналов и возможности работы с ними.
У пользователя не будут показываться недоступные для показа поля журналов; он не сможет редактировать недоступные для изменения поля журналов; он сможет видеть только те записи журналов, которые ему разрешено видеть; он сможет выполнять в журнале только те действия, которые ему разрешены в нем делать.

·список доступных бланков, отчетов и типовых операций
Пользователь сможет работать только с разрешенными ему бланками, отчетами и типовыми операциями.

·возможности по доступу к каким-либо функциям программы
Пользователь не сможет выполнять каких-либо действий, например выполнять операции импорта-экспорта данных, переносить данные из программы через буфер обмена, вызывать функции из калькулятора, делать закрытие периода и т.п.

В программе всегда имеется хотя бы один пользователь. Это Администратор. Это специальный выделенный пользователь. Ему доступны все права и установить какие-либо ограничения на его права нельзя. Администратора нельзя удалить. Администратору и только ему можно настраивать права доступа, главное и контекстное меню. Администратор — единственный пользователь, для которого допускается несколько подключений (т.е. под ним можно заходить в программу с нескольких рабочих мест одновременно).

Возможности. Одна или несколько опций прав доступа объединяются в группы. Такие группы называются возможностями. Каждая возможность определяется своим уникальным именем. Вы можете создавать в программе сколько угодно возможностей.

Каждому пользователю могут разрешаться и запрещаться какие-либо возможности. На основе этих запретов и разрешений формируются права пользователя. Пользователю будут разрешена любая опция, принадлежащая хотя бы одной разрешенной возможности, но не принадлежащая ни одной запрещенной возможности. Получается, что если опция лежит как в разрешенной возможности, так и в запрещенной, она считается запрещенной, т.е. запрещение возможности имеет больший приоритет, чем разрешение.

Если, например, имеются три возможности, две из них разрешены, а одна запрещена, то пользователю будут доступны объединение опций первых двух возможностей, не принадлежащих третьей возможности.

Некоторые опции определяют условия на отображение записей журнала. В результате наложения возможностей у пользователя будут показываться все записи, удовлетворяющие разрешенным возможностям за исключением тех, которые подпадают в запрещенные возможности.

Для настройки списка возможностей и пользователей необходимо воспользоваться меню «Установка | Список пользователей». Этот пункт меню имеется только у Администратора.

Доступ к операциям других. Особняком стоят права пользователя на редактирование операций, сделанных другими пользователями. Вы можете разрешить просматривать и/или редактировать пользователю операции всех или выбранных пользователей. Это делается индивидуально для каждого пользователя и независимо от его возможностей, т.е. разрешение действует только в той мере, которая разрешена возможностями пользователя, т.к. внутри возможностей могут действовать свои ограничения на отображение и возможность редактирования записей.

Доступ к плану счетов. С помощью возможностей также нельзя настроить доступ к плану счетов. Разграничение прав доступа к плану счетов настраивается только под Администратором и заключаются в установке опции Заблокировать от изменения в диалоге редактирования счета.


Список пользователей

Таблица пользователей

Стандартное меню

 Вернуться к началу раздела

Окно пользователей разделено на две закладки: Пользователи и Возможности. На первой отображается список всех пользователи программы. Здесь Вы сможете произвольным образом редактировать список пользователей, изменять их права и пароли, добавлять и удалять. На второй закладке показываются доступные возможности.

Если Вы — Администратор, таблицу пользователей можно вызвать при помощи пункта меню «Установка | Список пользователей».

Пользователи. Здесь в таблице можно увидеть следующие колонки: Пользователь — имя пользователя (логин) — имя, которое показывается в списке при входе в программу; Полное имя — полное имя или комментарий; Пароль — показывает, установлен ли пароль для данного пользователя или нет.

Следующие функции можно выполнять на закладке списка пользователей:

Добавление нового пользователя — происходит при добавлении записи в таблицу. После чего появится диалог добавления нового пользователя. После ввода информации о новом пользователе и нажатии <OK> он добавляется в список.

Удаление нового пользователя — происходит при удалении записи из таблицы. Перед удалением пользователя появится подтверждение: Удалить пользователя такого-то ?. Нажмите Да для удаления.

Редактирование пользователя — происходит при редактировании записи таблицы. Появится диалог редактирования пользователя, в котором можно изменить такие параметры как имя пользователя, рабочее место, пароль и профиль.

Следующие функции можно выполнять для одного или нескольких пользователей. В последнем случае надо выделить одну или несколько записей в таблице и выбрать соответствующий контекстный пункт меню:

Кто сейчас работает — позволяет увидеть в таблице всех работающих в данный момент времени пользователей. В ней можно выбрав одного или нескольких пользователей и нажав кнопку Принудительно отключить отключить их от базы данных. Все данные, вводимые им в этот момент, могут быть потеряны.

Импортировать предпочтения пользователя — можно выбрав одного или нескольких пользователей и нажав соответствующий пункт меню. Программа предложит выбрать пользователя, из которого будут скопированы предпочтения. В предпочтения входят: общие параметры программы, настройки колонок в таблицах, установки фильтров журналов, отчетный период, текущая фирма и др.

Следующие функции можно выполнять только для одного пользователя (при выделении нескольких пользователей они будут не видны):

Изменить предпочтения пользователя — можно став на нужного пользователя и выбрав пункты меню:

·Настройки... — для редактирования общих параметров программы,

·Корзина... — для редактирования корзины пользователя,

Доступ к организациям... — для установки фирмы (или нескольких фирм), с которой разрешено будет работать пользователю.

Возможности. Здесь в таблице можно увидеть колонку с названием возможностей. Следующие функции можно выполнять на закладке списка возможностей:

Создание новой возможности — происходит при добавлении записи в таблицу. После чего появится диалог создания новой возможности. После ввода информации о новой возможности и нажатии <OK> она добавляется в список.

Удаление возможности — происходит при удалении записи из таблицы. Перед удалением возможности появится подтверждение: Удалить возможность такую-то ?. Нажмите Да для удаления.

Редактирование возможности — происходит при редактировании записи таблицы. Появится диалог редактирования возможности, в котором можно настраивать опции доступа, которые входят в эту возможность.

См. также
Разграничение доступа
Работа с таблицами


Редактирование пользователя

В диалоге редактирования пользователя имеются две закладки Общие и Возможности.

Основные. Здесь задаются следующие параметры:

Имя пользователя — полное имя или комментарий — произвольная строка. Полное имя отображается в списке при входе в программу.

Кратко — краткое имя пользователя должно быть уникальным. Оно отображается под администратором в колонке Создал. Также, в процессе работы программы полное имя пользователя можно увидеть, если нажать на правую кнопку мыши в строке статуса на названии базы данных.

Интерфейс — указывается используемый пользователем интерфейс. Если версия электронного ключа не позволяет работать с этим интерфейсом, соответствующий пользователь не сможет работать с программой — она переключится в режим демо-версии.

Язык — язык интерфейса. Значение <По умолчанию> позволяет пользователю указать язык самостоятельно в персональных настройках. Если же он этого не сделал, язык будет определен автоматически согласно языковым настройкам Windows. Список будет пуст, если в программе не заполнена таблица локализации с переводом интерфейса.

Установить пароль — позволяет задает пароль при входе под этим пользователем. Для ввода пароля достаточно нажать кнопку. После этого графа Пароль и Подтверждение станут доступны и в них можно будет ввести требуемый пароль.

Возможности. Здесь разрешаются или запрещаются какие-либо возможности для редактируемого пользователя. Выбор Разрешить или Запретить разрешит или запретит все существующие на данный момент возможности.

Для того, чтобы разрешить/запретить сразу несколько возможностей, выделите их в списке. Это можно делать как с помощью мыши, так и с помощью клавиатуры, используя клавиши перемещения курсора и <Shift>. После этого надо включить/выключить одну из выбранных опций, что приведет к включению/выключению всех выбранных опций.

Разрешение и запрещение возможностей можно также делать и в диалоге редактирования возможности, но там уже редактируемую возможность можно запрещать или разрешать пользователям.

Доступ к операциям других. Здесь устанавливается доступ к операциям, сделанным другими пользователями. Установленные здесь ограничения добавляются к тем, которые определяются возможностями пользователя.

Показать только операции — позволяет скрыть от пользователя операции, сделанные другими пользователями. В открывшемся окне указываются пользователи, операции которых будут видны. Также здесь можно указать возможности. Это означает, что будут видны пользователи, которым разрешены указанные возможности. Воспользуйтесь контекстным меню в списке опций при необходимости Включить все опции или Сбросить все опции. Если ни одна опция не будет включена, пользователь будет видеть только те операции, которые сделал он сам.

Внимание!

Ограничение на отображение данных действует только на журнал бухгалтерских операций и журналы аналитики с включенной опцией Ограничить доступ других. Все отчеты и алгоритмы внутреннего языка будут видеть только те операции, которые удовлетворяют условию. Функции не будут знать о наличии каких-либо других операций, не подходящих под это ограничение (исключение составляют функции получения оборотов).

Редактировать только операции — позволяет запретить изменять или удалять операции, сделанные или измененные другими пользователями. В открывшемся окне указываются пользователи, операции которых можно будет редактировать. Также здесь можно указать возможности. Это означает, что можно будет редактировать операции, сделанные пользователями, которым разрешены указанные возможности. Воспользуйтесь контекстным меню в списке опций при необходимости Включить все опции или Сбросить все опции. Если ни одна опция не будет включена, пользователь сможет редактировать только те операции, которые сделал он сам.

С помощью флажка Выключена в левом нижнем углу диалога редактирования пользователя можно отключить этого пользователя. Под выключенным пользователем нельзя будет зайти в программу.

Внимание!

Операция может быть создана одним пользователем, а изменена другим. Третий пользователь для того, чтобы иметь возможность редактировать или удалять такую операцию должен иметь право редактирования операций их обоих.

Замечание!

В случае, если по какой-то причине пользователь занес данные в журнале не под своим именем, изменить владельца можно под Администратором с помощью пункта контекстного меню Сменить владельца.

См. также
Таблица пользователей
Разграничение доступа


Параметры интерфейса

Здесь устанавливаются параметры интерфейса. Параметры интерфейса Главное меню администратора изменить нельзя.

Название интерфейса — должно быть уникальным.

Версии — устанавливает лицензии электронного ключа, которые должны быть прописаны в ключе, для того чтобы пользователи могли работать с этим интерфейсом. Если версия электронного ключа не позволяет работать с этим интерфейсом, соответствующий пользователь не сможет работать с программой — она переключится в режим демо-версии.

Работать с интерфейсом Главное меню администратора можно вне зависимости от настроек лицензии в ключе. Однако при обращении к недоступным в этой версии журналам и функциям будет выводиться сообщение Доступ запрещен.

См. также
Редактирование пользователя
Редактирование главного меню


Редактирование возможности

В диалоге редактирования возможности можно настраивать опции доступа, которые входят в эту возможность. Диалог состоит из следующих закладок:

Название — здесь указывается название возможности, и каким пользователям она разрешена или запрещена.

Базовые — базовые функции разделения доступа.

Меню — опции доступа отраженные в главном меню, разрешения для диалога общих настроек и сервиса базы.

Бланки и отчеты — опции доступа к бланкам и отчетам.

Операции — опции доступа к типовым операциям.

Журналы — опции доступа к журналам.

См. также
Таблица возможностей
Разграничение доступа


Название

Редактирование возможности

На закладке Название указывается название возможности, и каким пользователям она разрешена или запрещена.

Название — указывается название возможности.

Пользователи — здесь отмечаются те пользователи, для которых эта возможность разрешена и те, для которых она запрещена. Выбор Разрешить пользователям или Запретить пользователям разрешит или запретит возможность всем существующим на данный момент пользователям.

Для того, чтобы показать/скрыть сразу несколько пользователей, выделите их в списке. Это можно делать как с помощью мыши, так и с помощью клавиатуры, используя клавиши перемещения курсора и <Shift>. После этого надо включить/выключить одну из выбранных опций, что приведет к включению/выключению всех выбранных опций.

Разрешение и запрещение возможностей можно также делать и в диалоге редактирования пользователя, но там уже для редактируемого пользователя можно запрещать или разрешать возможности.


Базовые

Редактирование возможности

На закладке Базовые задаются базовые функции разделения доступа.

Открыть доступ к проведенной операции — разрешает изменять бухгалтерскую операцию, полученную в результате проведения документа. Следующие опции конкретизируют, что конкретно можно изменять в такой операции:

·Включая название, документ и дату — можно менять название (комментарий), название документа и дату операции.

·Включая возможность добавлять проводки — возможность добавлять новые проводки в эту операцию. Рекомендуется ограничиться именно этим изменением, т.к. в этом случае, во-первых, всегда можно подкорректировать суммы других проводок при помощи красной, сторнирующей проводки, а во-вторых, всегда видеть, что конкретно было откорректировано. При перепроведении документа программа только заменяет список полученных из документа проводок (они выделяются серым). Другие параметры бухгалтерской операции остаются без изменений, включая и дополнительные (сторнирующие) проводки.

·Включая возможность изменять и удалять проводки — разрешает изменять и удалять проводки, которые были получены при проведении документа (к проводкам, добавленным пользователем вручную уже после, это не относится).

·Включая возможность удалять всю операцию — разрешает удалять всю операцию.

Открыть доступ к проведенному документу — разрешает изменять документ, проведенный в бухгалтерии. Если документ открыт для изменения и проведен в бухгалтерии, то, вне зависимости от установленного режима проведения документа, после изменения он автоматически перепроводится в бухгалтерии. Если при этом доступ доступна возможность изменять и удалять проводки (и, значит, пользователь мог изменить содержимое связанных проводок), программа выводит вопрос:

Перепровести документ в бухгалтерии ?

Если доступ к операции закрыт, документ перепроводится молча.

Разрешить добавление корректных проводок — при использовании корректных проводокразрешает добавлять неизвестные корректные проводки в процессе работы. Если добавление корректных проводок запрещено, пользователь не сможет добавить проводку с неизвестной корреспонденцией. При необходимости запретить добавление корректных проводок не забудьте запретить настройку режима использования на закладке Меню. В противном случае он сможет просто отключить использование корректных проводок.

Разрешить менять структуру аналитик — разрешает менять аналитику счетов в плане счетов, добавлять, удалять и менять порядок следования аналитических признаков счета.

Операции с закрытым периодом — позволяет включить дополнительные настройки для работы с закрытым периодом:

·Показывать операции из закрытого периода — после выполнения закрытия периода блокируются операции до определенной даты. Узнать текущее значение этой даты можно с помощью калькулятора, если набрать в нем ДАТА_ЗАКР. Опция разрешает или запрещает возможность просмотра операций до этой даты.

·Разрешить изменять операции в закрытом периоде — после выполнения закрытия периода блокируются операции до определенной даты. Опция разрешает или запрещает возможность редактирования операций до этой даты.

·Разрешить изменять дату закрытого периода — разрешает выполнять операции закрытия периода и переносить дату закрытия (изменять значение ДАТА_ЗАКР или вручную в диалоге редактирования фирмы)

Операции с недоступными записями — позволяет включить настройки для работы с недоступными записями:

·Показывать недоступные записи (доступна при включении опции Разрешить делать недоступными некоторые записи в параметрах базы данных) — определяет видимость операций, у которых включен флажок Недоступна.

·Разрешить изменять недоступные записи (доступна при включении опции Разрешить делать недоступными некоторые записи в параметрах базы данных) — определяет доступность для редактирования операций, у которых включен флажок Недоступна.

Разрешение передачи информации — дает доступ к опциям передачи информации:

·Разрешить экспорт-импорт данных — запрет экспорта и импорта влечет отключение пунктов меню «Файлы | Импорт из» и «Файлы | Экспорт в» и возможность импорта экспорта данных внутренними средствами.

·Разрешить работу с буфером обмена — запрет работы с буфером обмена влечет отключение пунктов меню «Правка | Вырезать», «Правка | Копировать» и «Правка | Вставить».

·Разрешить печать таблиц и документов — запрет печати влечет отключение пунктов меню «Файлы | Печатать», «Файлы | Просмотр» и «Файлы | Настройка печати», функции контекстной печати документов СТАРТ_БЛАНК.

Разрешить вызов функций из калькулятора — запрет означает, что в калькуляторе можно будет только выполнять арифметические действия. Вызов функций, например таких как ОСД, ОБК и проч, будет невозможен. Если вызов функций разрешен, в калькуляторе можно выполнять любые выражения.

Разрешить использовать подсветку записей журналов — позволяет отключать возможность использования подсветки у нужных пользователей.

Разрешить настройку интерфейса кассира — доступ к контекстному меню в интерфейсе кассира, содержащему средства настройки внешнего вида интерфейса.

Воспользуйтесь контекстным меню в списке опций при необходимости Включить все опции или Сбросить все опции.

Ограничить время исправлений (доступна при включении опции Вести учет, когда создана/изменена операция в параметрах базы данных) — вызовет диалог настройки ограничения времени исправления.

Доступ к остаткам и прямым оборотам счетов — вызовет диалог настройки доступа к остаткам и прямым оборотам счетов бухгалтерского учета.


Доступ к оборотам и остаткам

Редактирование возможности

На закладке Базовые расположена кнопка Доступ к остаткам и прямым оборотам счетов, вызывающая диалог настройки доступа к остаткам счетов бухгалтерского учета. Доступ к остаткам счетов влияет на их отображение в бухгалтерских отчетах, в частности, в оборотной ведомости.

Доступные счета — здесь задается шаблон счетов, обороты которых будут отображаться. Нажмите [image] для выбора счета. Звездочка * означает, что все счета доступны. При указании счета, имеющего субсчета, все они автоматически будут доступными.

Исключать счета — здесь задается шаблон доступных счетов, обороты которых не будут отображаться. Нажмите [image] для выбора счета. Пустая строка означает, что никакие счета не исключаются. При указании счета, имеющего субсчета, все они автоматически будут исключены.

Пример.

Доступные счета 50;60;70

Исключать счета 60/ПР

В этом случае будет доступен 50-ый счет, все субсчета 60-ого, исключая 60/ПР и все субсчета 70-ого счета (исключая сам 70-ый).

Доступ ограничивается только остатками и прямыми оборотами по счетам. Пользователь может видеть перекрестные обороты с какими-либо другими счетами, не доступными ему. Он даже может получать карточку движения средств, материальный отчет, главную книгу и другие отчеты по счетам, недоступным ему. Однако информация в них будет ограничена: колонки остатков и сальдо будут убираться. В оборотной ведомости при наличии оборотов по недоступным счетам строка общих итогов будет содержать пометку Остатки без учета недоступных счетов и будет содержать обороты и остатки только по доступным для отображения счетам.

См. также
Фильтр журнала бухгалтерских операций
Разграничение доступа


Ограничить время исправлений

Редактирование возможности

На закладке Базовые расположена кнопка Ограничить время исправлений, вызывающая диалог настройки ограничения времени исправлений. Данная функция позволяет запретить править документы через определенное время после из создания.

Время, которое дается на исправление созданного документа, задается в днях. Нулевое значение означает снятие ограничения.

Если пользователю разрешены несколько возможностей, у которых есть это ограничение, то число дней на исправление будет равно максимальному числу дней, указанному в этих возможностях.

Ограничение времени доступно при включении опции Вести учет, когда создана/изменена операция в параметрах базы данных.

Замечание!

Возможна ситуация, когда опция Вести учет, когда создана/изменена операция была включена не сразу и есть операции, созданные до включения этой опции. Для них дата создания не определена, т.к. не фиксировалась в момент из создания. По умолчанию программа не запрещает их редактировать.

См. также
Разграничение доступа


Меню

Редактирование возможности

На закладке Меню задаются опции доступа к пунктам главного меню, разрешения для диалога общих настроек и сервиса базы.

Операции имеет следующие подпункты:

Журнал — доступ к пункту «Операции | Журнал»

Первичные формы — доступ к пункту «Операции | Первичные формы»

Отчетные формы — доступ к пункту «Операции | Отчетные формы»

Отчеты — доступ к пункту «Операции | Отчеты»

Сервис имеет следующие подпункты.

Фильтр — доступ к пункту «Сервис | Фильтр»

Сортировка записей — доступ к пунктам «Сервис | Сортировка по возрастанию» и «Сервис | Сортировка по убыванию»

Перенос проводок — доступ к пункту «Сервис | Перенос проводок» и возможности удаления или переноса проводок при удалении счета, статьи налогового учета, записи справочника и т.д.. Функция переноса и удаления связанных проводок никак не сочетается ни с какими другими ограничениями прав доступа, изменяет данные безусловно во всех операциях.

Проверить — доступ к пункту «Сервис | Проверить». Проверка всегда происходит по всем данным в программе, а не только по тем, которые видит пользователь согласно его правам доступа.

Протокол — доступ к пункту главного меню «Сервис | Общий протокол» и контекстному меню Протокол в журналах аналитики и журнале бухгалтерских операций.

Установка имеет следующие подпункты.

План счетов — доступ к пункту «Установка | План счетов»

Исходные остатки — доступ к пункту «Установка | Исходные остатки»

Статьи учета — доступ к пункту «Установка | Статьи учета»

Корректные проводки — доступ к пункту «Установка | Корректные проводки»

Определения — доступ к пункту «Установка | Определения». На доступ к определениям влияет также опция Настраивать структуру определений, реквизитов, множеств.

Реквизиты — доступ к пункту «Установка | Реквизиты». На доступ к определениям влияет также опция Настраивать структуру определений, реквизитов, множеств.

Оглавления — доступ к пункту «Установка | Оглавления».

Установка/удаление модуля — доступ к пункту «Установка | Установка/удаление модуля». Операция установки дополнительных модулей и их удаление — сложная процедура. В результате ее работы база данных может перейти в неработоспособное состояние. Также она может подвергнуть изменению любые данные в программе. При этом любые ограничения прав доступа пользователя при установке игнорируются!

Настройки — доступ к пункту «Установка | Настройки». Следующие опции управляют доступом к отдельным элементам диалога настроек:

Вида бухгалтерских операций — доступ к группе Вид бухгалтерских операций

Способа проведения документов — доступ к группе Проводить документ

Режима использования — доступ к группе Не использовать

Режима расчета оборотов — доступ к группе При расчете оборотов

Интерфейса таблиц и диалогов — доступ к закладке Интерфейс

Форматов — доступ к закладке Форматы

Шрифтов — доступ к закладке Шрифты

Общая — доступ к закладке Общие

Транслятор — доступ к кнопке Транслятор на закладке Общие

Главное окно — доступ к кнопке Главное окно на закладке Общие и контекстному меню настройки панели управления и главного окна

Отправка почты — доступ к кнопке Отправка почты на закладке Общие

Разработка имеет следующие подпункты.

Журналы аналитики — доступ к пункту «Разработка | Журналы аналитики»

Функции журналов — доступ к пункту «Разработка | Функции журналов»

Типовые операции — доступ к пункту «Разработка | Типовые операции»

Бланки — доступ к пункту «Разработка | Бланки»

Отчеты — доступ к пункту «Разработка | Отчеты»

Библиотеки функций — доступ к пункту «Разработка | Библиотеки функций»

Множества — доступ к пункту «Разработка | Множества». На доступ к определениям влияет также опция Настраивать структуру определений, реквизитов, множеств.

Настраивать структуру определений, реквизитов, множеств — возможность добавлять новые и удалять определения, реквизиты и множества. Включает доступ к системным определениям.

Изменение расчетной части — выключение флажка запрещает менять расчетную (формульную) часть бланков, отчетов, типовых операций, обработчиков, будет недоступен пункт меню «Разработка | Проверка конфигурации». Если опция активна, при возникновении ошибки будет выводиться список ошибок (как синтаксических в процессе разработки алгоритма, так и ошибок времени выполнения), если нет — будет выведено простое диалоговое окно с последней ошибкой.

Файлы имеет следующие подпункты.

Другая организация — доступ к пункту «Файлы | Другая организация»

Создавать и удалять организации — возможность в диалоге выбора другой организации создавать новые организации и удалять существующие.

Разрешить показывать операции всех организаций — возможность в диалоге выбора другой организации менять состояние опции «Разрешить показывать операции всех организаций».

Другая база данных — доступ к пункту «Файлы | Другая база данных»

Обслуживание базы — доступ к пункту «Файлы | Обслуживание базы»

Настройка — доступ к закладкам настроек.

Резервирование данных — доступ к закладке Архивировать

Восстановление данных — доступ к закладке Восстановить

Сервис — доступ к закладке Сервис.

Воспользуйтесь контекстным меню в списке опций при необходимости Включить все опции или Сбросить все опции.


Документы

Бланки и отчеты

Редактирование возможности

 Вернуться к началу раздела

На закладке Бланки и отчеты настраивается доступ к первичным и отчетным бланкам, отчетам и Веб-страницам.

Бланки сгруппированы по категориям: Первичные формы, Отчетные формы, Прочие формы. Внутри категории бланки разбиты по группам. Для того чтобы разрешить доступ ко всем бланкам категории или группы, достаточно включить эту категорию или группу.

Отчеты сгруппированы по группам. Для того чтобы разрешить доступ ко всем отчетам группы, достаточно включить ее.

Новые по умолчанию доступны. В программу могут добавляться новые бланки первичных и отчетных документов и отчетов, например, при обновлении версии конфигурации. Чтобы не настраивать доступ каждый раз после выполнения обновления, достаточно использовать эту опцию. Если она активна, то новый документ будет доступен пользователю. В любом случае, после, можно настроить доступ к новым документам для некоторых пользователей индивидуально, если потребуется.

Новые по умолчанию доступны, если доступна группа. Аналогична предыдущей опции, однако новый документ будет доступен пользователю, если есть доступ к разделу, в который он добавился.

Для того, чтобы разрешить/запретить доступ сразу к нескольким документам, выделите их в списке. Это можно делать как с помощью мыши, так и с помощью клавиатуры, используя клавиши перемещения курсора и <Shift>. После этого надо включить/выключить одну из выбранных опций, что приведет к включению/выключению всех выбранных опций.

Воспользуйтесь контекстным меню в списке опций при необходимости Включить все опции или Сбросить все опции.

Также, права доступа к бланкам можно настроить в самом бланке и отчете с помощью контекстного меню Настроить права доступа.


Операции

Редактирование возможности

На закладке Операции настраивается доступ к типовым операциям.

Операции сгруппированы по файлам (библиотекам типовых операций), в которых они находятся. Внутри файла операции разбиты по группам. Для того чтобы разрешить доступ ко всем типовым операциям из этого файла или группы, достаточно включить этот файл или группу.

Новые по умолчанию доступны. В программу могут добавляться новые типовые операции, например, при обновлении версии конфигурации. Чтобы не настраивать доступ каждый раз после выполнения обновления, достаточно использовать эту опцию. Если она активна, то новая типовая операция будет доступна пользователю. В любом случае, после, можно настроить доступ к новым операциям для некоторых пользователей индивидуально, если потребуется.

Новые по умолчанию доступны, если доступен файл. Аналогична предыдущей опции, однако новая операция будет доступна пользователю, если есть доступ к библиотеке типовых операций, в которую она добавилась.

Для того, чтобы разрешить/запретить доступ сразу к нескольким операциям, выделите их в списке. Это можно делать как с помощью мыши, так и с помощью клавиатуры, используя клавиши перемещения курсора и <Shift>. После этого надо включить/выключить одну из выбранных опций, что приведет к включению/выключению всех выбранных опций.

Воспользуйтесь контекстным меню в списке опций при необходимости Включить все опции или Сбросить все опции.

Также, права доступа к бланкам можно настроить в редакторе типовых операций с помощью контекстного меню Настроить права доступа.


Журналы

Редактирование возможности

На закладке Журналы настраивается доступ к журналам аналитики.

Новые по умолчанию доступны. В программу могут добавляться новые журналы, например, при обновлении версии конфигурации. Чтобы не настраивать доступ каждый раз после выполнения обновления, достаточно использовать эту опцию. Если она активна, то новый журнал будет доступен пользователю. В любом случае после можно настроить доступ к новым журналам для некоторых пользователей индивидуально, если потребуется.

Новые по умолчанию доступны, если доступна группа. Аналогична предыдущей опции, однако новый журнал будет доступен пользователю, если доступен раздел, которому принадлежит этот журнал. Опции доступа (просмотр, добавление, удаление и изменение) устанавливаются такие же, какие имеет раздел, которому принадлежит журнал.

Внутри доступных операций и бланков доступны на просмотр. Если внутри доступной для выполнения типовой операции, бланка или отчета происходит попытка просмотра недоступного на просмотр журнала с помощью встроенных функций, будет выдано сообщение об ошибке доступа. Чтобы устранить эту проблему потребуется проанализировать, какие журналы нужны для корректной работы этой операции и открыть доступ к ним. Включив указанную опцию можно избавится от такого анализа. Все журналы, которые не были предварительно открыты на просмотр пользователю, будут доступны на просмотр при выполнении доступных операций автоматически.

Для любого журнала могут быть указан доступ к следующим действиям, которые могут в нем выполнятся:

Просмотр — разрешен просмотр журнала. Если журнал не доступен для просмотра, он не отображается в меню, из него невозможен выбор, он не может отображаться в таблице детализации записи, поля с подстановкой значения из этого журнала не доступны для изменения.

Добавление — разрешено добавление записи. Запрет добавления пользователем не запрещает добавление записи из внутреннего языка.

Удаление — разрешено удаление записи. Запрет удаления пользователем не запрещает удаление записи из внутреннего языка.

Изменение — разрешено изменение записи. Запрет изменения пользователем не запрещает изменение записи из внутреннего языка.

Для того, чтобы разрешить/запретить доступ сразу к нескольким действиям или журналам, выделите их в списке. Это можно делать как с помощью мыши, так и с помощью клавиатуры, используя клавиши перемещения курсора и <Shift>. После этого надо включить/выключить одну из выбранных опций, что приведет к включению/выключению всех выбранных опций.

Воспользуйтесь контекстным меню в списке опций при необходимости Включить все опции или Сбрoсить все опции. Там же можно включить конкретное действие (просмотр, добавление, удаление, изменение) для всех журналов.

Журнал в списке выделяется жирным шрифтом, когда у него есть дополнительные настройки, такие как Доступ к полям, Видимые записи, Доступные записи. Надо выбрать его в списке для того чтобы перейти к редактированию дополнительных настроек.

Следующие кнопки вызывают дополнительные настройки выбранного журнала:

Доступ к полям — вызовет диалог настройки доступа к полям выбранного журнала.

Видимые записи — вызовет диалог условий на выбираемые записи журнала. Это ограничит выбранный журнал только записями, удовлетворяющими данному условию. Все отчеты и алгоритмы внутреннего языка будут видеть только те операции, которые удовлетворяют условию. Ограничение выборки при наложении возможностей формируется наложением условий на выбираемые записи. См.подробнее здесь.

Кроме условия на выбираемые записи, от пользователя можно скрывать операции, сделанные другими пользователями. Настраиваются такие ограничения в диалоге редактирования пользователя. Ограничение выборки и ограничение отображения операций, сделанных другими пользователями могут накладываться друг на друга.

Доступные записи — вызовет диалог условий на доступные для редактирования записи журнала. Пользователь не сможет отредактировать или удалить записи, не попадающие под это условие. Ограничение доступа при наложении возможностей формируется наложением условий на выбираемые записи. См.подробнее здесь.

Кроме условия на доступные записи, пользователю можно запрещать редактировать и удалять операции, сделанные другими пользователями. Настраиваются такие ограничения в диалоге редактирования пользователя. Ограничение доступа, установленное здесь, и ограничение доступа операций, сделанных другими пользователями могут накладываться друг на друга.

Также, права доступа к журналам можно настроить в списке журналов с помощью контекстного меню Настроить права доступа.


Поля журналов

Доступ к полям

Редактирование возможности

 Вернуться к началу раздела

Здесь настраивается доступ к полям выбранного журнала. Для того чтобы активизировать настройку выберите опцию Доступ к полям. Если опция не активна, пользователю видны и доступны все поля журнала (если, конечно, эти поля видимы и доступны на уровне конфигурации). В противном случае действуют следующие ограничения:

Просмотр — разрешается видеть содержимое этого поля.

Изменение — значение поля разрешается менять для существующих записей и заносить туда информацию для новых записей журнала.

Стоит обратить внимание, что если поле ссылается на другой журнал, то оно может быть недоступно и по причине недоступности этого журнала. Также, программа, возможно, откажется добавлять запись с не установленным значением поля, если оно жестко ссылается на другой журнал, но его нельзя установить по причине отсутствия доступа.

Замечание!

В списке полей показываются не все поля, а только те, что видимы хотя бы в одном виде журнала. Если какое-то поле не отображается в этом списке, а доступ к нему надо настроить, сделайте его видимым.


Права доступа к объекту

В диалоге настройки прав доступа к объекту (типовой операции, бланку, отчету или журналу) можно указать, в каких возможностях данный объект будет доступен.

Для того, чтобы разрешить/запретить доступ сразу к нескольким возможностям, выделите их в списке. Это можно делать как с помощью мыши, так и с помощью клавиатуры, используя клавиши перемещения курсора и <Shift>. После этого надо включить/выключить одну из выбранных опций, что приведет к включению/выключению всех выбранных опций.

Воспользуйтесь контекстным меню в списке опций при необходимости Включить все опции или Сбросить все опции. Там же можно включить конкретное действие (просмотр, добавление, удаление, изменение) для всех журналов.

Помимо этого диалога указать какая типовая, бланк, отчет или журнал доступны в какой возможности можно в таблице пользователей на закладке Возможности при редактировании конкретной возможности:

Для типовых операций — на закладке Операции.

Для бланков и отчетов — на закладе Бланки и отчеты.

Для журналов — на закладке Журналы.


Сменить владельца

С помощью этого окна можно установить, кто создал и кто изменял запись журнала. Это может потребоваться в случае, если по какой-то причине пользователь занес данные не под своим именем, особенно если используются такие средства разграничения прав доступа как Доступ к операциям других. Данная функция доступна только администратору.

Прежде чем вызывать этот диалог, выделите одну или несколько записей в журнале.

Кто создал — здесь указывается пользователь, который будет считаться создателем записи. Если не надо менять создателя записи, указывается <не менять>.

Кто изменил — здесь указывается пользователь, который будет считаться последним изменившим запись. Если его не надо менять, указывается <не менять>.

Замечание!

В списке пользователей будут отображаться и удаленные пользователи тоже, их имена начинаются с символа $ (доллар).

Для изменения надо нажать <ОК>.


Протокол действий

В программе есть несколько средств для отслеживания изменений, производимых пользователями. По умолчанию, программа отслеживает кто создал операцию и кто её изменил (точнее, кто последний изменил, при повторном изменении информация о том, кто её изменял перед этим теряется). Чтобы увидеть это, необходимо включить колонку «Создал/Изменил» в настройках таблиц в пункте меню «Установка | Настройки».

При необходимости отслеживать и время и дату создания и изменения записи, это надо включить флажок Вести учет, когда создана/изменена операция в параметрах базы данных. После этого программа начнет фиксировать дату и время создания и дату и время изменения записи (точнее, о дате и времени последнего изменения, при повторном изменении информация о дате и времени предыдущего изменения теряется). Они будут отображаться в той же самой колонке «Создал/Изменил» справа от имени пользователя, который создал или изменил операцию. Кроме того, эта опция активирует:

·Фильтрацию по дате создания/изменения записи в журнале бухгалтерских операций и в журналах аналитики.

·В правах доступа, возможности, закладка Базовые, добавляется кнопка Ограничить время исправлений, с помощью которой можно задать определенное время, в течение которого разрешается править вновь созданный документ.

При необходимости отслеживать всю историю изменений в базе данных надо включить флажок Включить протокол действий пользователей в параметрах базы данных. Протокол (аудит, лог-файл) позволяет отслеживать все изменения в базе данных. Вы сможете не только знать, кто и когда что-то делал в базе данных, но и что конкретно он изменял. Такой протокол полезен и для выяснения причин ошибок, и для выявления несанкционированного доступа к данным. Протокол реализован таким образом, что фиксирует не только действия пользователей, но и манипуляции, производимые алгоритмами самой программы и даже сторонними программами, подключающимися к базе данных.

В той же самой колонке «Создал/Изменил» будет отображаться пользователь и дата и время создания и последующих изменения записи. Кроме того, эта опция открывает доступ к:

·Фильтрации по дате создания/изменения записи в журнале бухгалтерских операций и в журналах аналитики.

·Подробный протокол изменений выделенной записи журнала в контекстном меню «Протокол» и общий протокол действий в пункте главного меню «Сервис | Общий протокол». Эти пункты меню доступны администратору программы и пользователям, у которых в возможностях включен доступ к Протоколу.

Замечание!

Использование протокола незначительно снижает скорость работы в программе и в 2-3 раза увеличивает размер базы данных.


Общий протокол

Просмотр протокола рассчитан на администраторов программы, службу технической поддержки и разработчиков.

Общий протокол содержит информацию обо всех изменениях в базе данных (после включения протокола в параметрах базы данных). Для выбора нужного периода, используется навигатор периода в левом углу панели управления.

Протокол представлен в виде двух таблиц. Слева располагается основная таблица, в которой показывается:

·Дата и время изменения. Под изменением понимается любые действия с базой данных, куда включается как создание операций/записей, их изменения или удаление.

·Пользователь, производивший изменения

·Компьютер, с которого изменения делались

Справа отображается таблица, содержащая перечень конкретных изменений в базе данных, соответствующих выделенной записи из таблицы слева. При изменении записи основной таблицы слева, меняется содержимое таблицы справа.

Таблица справа содержит строки со значками [image], [image], [image] и [image] , означающими вид операции: добавление, изменение, удаление данных и пользовательскую информацию (добавляется функцией ДОБАВИТЬ_В_ПРОТОКОЛ), и имеет следующие колонки:

·Журнал, в который вносились изменения. Здесь отображается идентификатор журнала. Возможна ситуация, когда журнал был позже удален. Тогда вместо идентификатора будет отображено название таблицы, обрамленное знаками процента, например %TABLE%. При наведении мыши на ячейку из этой колонки появится название журнала.

·Идентификатор записи, в которую вносились изменения. Идентификатор имеет вид <поле>: <значение>. Слева название поля-идентификатора, затем двоеточие и затем значение этого поля. Например, "ид: 1" - запись с идентификатором 1. При наведении мыши на ячейку из этой колонки появится название поля, как оно видно в интерфейсе пользователя.

·Детали изменений. Для операций добавления или удаления, детали имеют имеет вид <поле>: <значение>. Слева название поля, затем двоеточие и затем значение этого поля. При наведении мыши на ячейку из этой колонки появится подсказка. Она содержит название поля, как оно видно в интерфейсе пользователя — в диалоге редактирования записи или заголовке колонки (для некоторых полей реальное название может отличаться). Если делается изменение записи, то детали имеют вид <поле>: <старое значение> » <новое значение>.

·Доп.поля. Колонка показывается только если в журнале используются дополнительные поля и только если были изменения в дополнительных полях. Дополнительные поля имеют вид <поле>: <значение> для всех операций, включая и изменение записи.

·Внут. Колонка показывается только если в фильтре не установлен флажок Скрыть внутренние операции. Отображаемый в этой колонке флажок указывает на то, сделано ли действие пользователем программы самостоятельно или каким-либо алгоритмом, который запустил пользователь.

Для выбора нужных записей из протокола лучше использовать фильтр.

См. также
О протоколе


Фильтр протокола

Для выбора нужных записей из протокола лучше использовать фильтр. Вызвать его можно в окне протокола с помощью одного из следующих действий:

·нажать кнопку [image] на панели инструментов;

·нажать комбинацию клавиш <Ctrl>+<Ф> ( <Ctrl>+<A>);

·выбрать пункт «Сервис | Фильтр» главного меню.

На экране появится диалог установки фильтра, состоящий из следующих полей:

·Пользователь — будут показаны только действия, совершенные конкретным пользователем.

·Журнал — будут показаны только действия в конкретном журнале

следующие поля доступны только после задания фильтра по журналу:

·Поле — будут показаны только действия с указанным полем.

·Значение — значение указанного выше поля.

Если указано и поле и значение, то будут показаны:

1.все добавления записей с заданным значением поля,

2.все удаления записей, у которых на момент удаления было указанное значение поле

3.все изменения, при которых или исходное значение поле совпало с заданным или конечное значение поля совпало с заданным.

Если указано только поле, а значение не указано, то будут показаны все добавления и удаления записей, а изменения только в случае, если это поле при таких изменениях менялось.

·Действия — ограничивает отображаемый протокол указанными операциями.

·Скрыть внутренние операции — если флажок стоит, то показываются только операции, сделанные непосредственно пользователем. Если нет, то будут показаны и операции, сделанные каким-либо алгоритмом, который запустил пользователь (внутренние операции). В протоколе появится колонка Внут, в которой будет отображаться флажок таких внутренних операций.

Кнопка <Сброс> очищает поля диалога (убирает все условия фильтра).


Протокол по записи

Просмотр протокола рассчитан на администраторов программы, службу технической поддержки и разработчиков.

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

Протокол представлен в виде таблицы. Каждая колонка содержит значение полей записи в момент изменения. Сколько было изменений в записи — столько будет колонок в таблице (плюс колонка с идентификаторами полей). В заголовке отображается номер изменения. Колонка с номером 1 содержит поля записи в момент создания (исключение — если запись была создана до включения протокола). В строках отображается:

·Дата и время создания и затем изменения.

Замечание!

Операция удаления в протоколе по записи не отображается.

·Пользователь, производивший изменения

·Компьютер, с которого изменения делались

Далее идут идентификаторы полей, которые менялись и их значения в момент изменения. При наведении мыши на ячейки из этих строк в подсказке появится название поля как оно отображается в интерфейсе пользователя — в диалоге редактирования записи или заголовке колонки (для некоторых полей реальное название может отличаться)

Доп.поля — эта строка показывается только если в журнале используются дополнительные поля. Дополнительные поля имеют вид <поле>: <значение>.

В таблице есть контекстное меню. С помощью пункта меню Перейти в общий протокол можно открыть общий протокол. Для этого предварительно надо выбрать ячейку из колонки, соответствующей записи протокола. Общий протокол откроется таким образом, что курсор будет стоять на выделенной записи.

В строке статуса при первом открытии протокола пишется Показаны только менявшиеся поля. Кликнув по надписи или выбрав пункт контекстного меню Показать все поля можно показать в строках все поля, как менявшиеся, так и нет. Но менявшиеся программа выделит жирным, и выделит инверсным цветом их значения в тех столбцах, где были изменения.

Замечание!

Значения могут быть выделены красным, если они не совпадают с ожидаемым. Такое возможно только в случае, если протокол выключался и включался вновь.

См. также
О протоколе


Электронный ключ

Электронный ключ — это устройство, которое применяется для защиты программы от нелегального копирования. Без электронного ключа программа не работает.

Ключ подсоединяется к компьютеру либо через порт принтера (LPT), либо через USB-порт, в зависимости от типа ключа. При установке программы в сети на несколько компьютеров ключ устанавливается на сервере. К ключу, подключенному к LPT-порту можно присоединить принтер. При этом ключ не будет мешать работе принтера.

Вы можете сразу увидеть, какой ключ входит в поставку программы:

— так выглядит ключ, который надо подключать к порту принтера.

— так выглядят ключи, подключаемые к USB-порту.

Внимание!

Соблюдайте следующие правила эксплуатации электронного ключа:

1. Оберегайте электронный ключ от механических воздействий (падения, сотрясения, вибрации и т.п.), а также от воздействия высоких и низких температур и агрессивных сред. Все это может привести к поломке корпуса, элементов печатного монтажа и разъемов электронного ключа.

2. Не прилагайте излишних усилий при подключении электронного ключа к Вашему компьютеру, а также при подключении принтера к электронному ключу. Подключение разъемов должно быть плотным и без перекосов. В противном случае возможен выход из строя электрических цепей электронного ключа.

3. Не допускайте попадания на электронный ключ (и в особенности — на его разъемы) пыли, грязи, влаги и т.п. При засорении разъемов электронного ключа примите меры для их очистки перед подключением к параллельному порту Вашего компьютера.

При последующем подключении принтера надо знать, что:

1. Подключение принтера к электронному ключу, который присоединен к компьютеру, следует осуществлять только тогда, когда питание у компьютера и принтера выключено, иначе выйти из строя может не только электронный ключ, но и параллельный порт компьютера, и принтер.

2. Запрещается присоединять включенный принтер к электронному ключу.

3. Если при работе с принтером возникают проблемы или конфликты, следует обновить драйвера принтера.


Сообщения системы лицензирования

При входе в программу возможно появление следующих сообщений:

Вы установили обновление, которое выпущено через год или более после начала Вашей работы с программой. Для работы с ним требуется обновление лицензии. Такое сообщение обычно появляется после установки новой версии программы. Для того чтобы новая версия заработала, надо обновить лицензию на электронном ключе. Для этого зайдете с компьютера, на котором установлен электронный ключ, в пункт меню «Справка | О программе» и нажмете кнопку Управление лицензиями. При возникновении вопросов, обратитесь в службу технической поддержки.

Превышен лимит (...) количества одновременно работающих пользователей конфигурации .... Лицензия на конфигурацию (модуль) предоставляет возможность одновременной работы с конфигурацией (модулем) какого-то кол-ва пользователей. В данном случае при подключении к базе данных программа выдала сообщение о превышении этого кол-ва. Вы сможете увеличить это кол-во, если зайдете с компьютера, на котором установлен электронный ключ, в пункт меню «Справка | О программе» и нажмете кнопку Управление лицензиями. При возникновении вопросов, обратитесь в службу технической поддержки.

Данная ошибка при использовании локальных ключей (установленных не на сервере, где база данных, а на рабочей станции пользователя) может возникать в случае, если в какой-либо момент локальный ключ был вынут. В этом случае программа, не обнаружив локальный ключ, проверяет ключ на сервере (где база данных) и если он там есть, то начинает работать с ним. Даже если позже установить локальный ключ, то программа не перестанет работать с сетевым ключом, т.к. она уже настроилась на него. Локальный ключ перестает в этом случае использоваться, будут задействованы лицензии сетевого ключа, что приведет к нехватке лицензий на сетевом ключе. Для того чтобы запретить использовать сетевой ключ используется параметр W командной строки. Укажите его в ярлыке запуска программы на этом компьютере.

Не обнаружен электронный ключ. Проверьте его наличие и качество подключения. Проверьте, что ключ вставлен в LPT или USB порт компьютера, и для него были установлены необходимые драйвера. Ключ должен устанавливаться на сервере, там, где у Вас расположена база данных. Установить драйвера можно, запустив программу инсталляции, а в процессе установки указать необходимый тип ключа (LPT или USB).

Электронный ключ не является ключом Инфо-Предприятие. Возможно, это ключ к другой программе. Также, такое сообщение об ошибке может возникать в некоторых случаях, когда ключ не исправен. Если Вы уверены в том, что это ключ для программы Инфо-Предприятие, обратитесь в службу технической поддержки.

Не удалось прочитать информацию о типе лицензии на электронном ключе. Программа нашла ключ Инфо-Предприятия, однако информацию об установленных лицензиях прочитать не смогла. Скорее всего это непрошитый (пустой) ключ или ключ от старой версии программы. Также, возможно, Вы запускаете старую версию программы, а в ключе прошиты такие лицензии, которые эта старая программа не умеет читать. Маловероятно, но возможно — ключ попросту поврежден. Обратитесь в службу технической поддержки за разъяснениями.

Электронный ключ на сервере используется локально запущенной программой. Возникает только при использовании однопользовательских ключей. С таким ключом можно работать не только локально, но и можно подключиться одному пользователю по сети. Данное сообщение возникает при подключении к однопользовательскому ключу по сети, когда с базой данных на сервере уже кто-то работает локально и использует этот ключ.


Что нового в версии 3.0

Переход на новую версию сервера Firebird

Инфо-Предприятие версий 2.x использовало для работы СУБД Firebird версии 1.5. Новая версия программы использует СУБД Firebird 3.0, который содержит ряд улучшений, основные из которых:

1.Использование архитектуры Firebird Super Server. Старые версии Инфо-Предприятие 2.х использовали архитектуру Firebird Classic Server. Преимущество архитектуры Super Server в том, что она использует общий кэш на всех пользователей, а он эффективнее при многопользовательской работе.

2.Средства мониторинга позволяют видеть все SQL-запросы и транзакции, выполняемые в данный момент сервером. Возможна остановка выполнения длительного SQL-запроса и принудительное завершение соединения.

3.Аудит и трассировка. Позволяет отслеживать все команды, выполняемые сервером.

4.Расширение языка SQL. Основные:

·производные таблицы (derived table)

·общие табличные выражения (CTE)

·временные таблицы

·execute block

·оконные функции

5.Новые средства резервного копирования: утилита nbackup, ALTER DATABASE BEGIN/END BACKUP.

6.Шифрование и сжатие сетевого трафика. Возможность шифрования базы данных.

7.Сокращение конфликтов и блокировок за счет использования таймаута транзакций. При ошибках блокировки вывод информации о том, кто, с какого компьютера и в какой транзакции блокирует.

8.Ускорение работы в сетях с большими задержками и/или низкой скоростью, например, работе по Wi-Fi.

Переход на Unicode и локализация

Unicode это стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира и различные специальные символы, например символ рубля ₽. Программа теперь использует Unicode. База данных будет автоматически преобразована в Unicode после установки новой версии. Её размер незначительно увеличится.

Также в программе появились встроенные средства локализации, которые позволяют легко переводить интерфейс программы на другие языки.

Оптимизация под большие базы данных

Ускорение обработки для больших баз данных. Использование группировки команд при добавлении операций и документов. Поддержка во внутреннем языке групповых операций ДОБАВИТЬ_ГР, ЗАПИСАТЬ_ГР, УДАЛИТЬ_ГР, ИЗМЕНИТЬ_ГР, ДОБАВИТЬ_СВЯЗЬ_ГР, ЗАП_ИСХ_ОСТ_ГР.

Изменение во внутреннем языке

В ЦИКЛ ПО ЖУРНАЛУ введены новые элементы:

·агрегатная функция СПИСОК, статистические функции и функции линейной регрессии, ключевые слова

·специальные операторы сравнения РАВНО, НЕ РАВНО, ПОДОБНО, ПО ШАБЛОНУ, НАЧИНАЕТСЯ С.

·предикаты КАКОЕ_ТО и ЛЮБОЕ.

Новый тип — данные. Он используется в функциях ИНТЕРНЕТ_СЧИТАТЬ, ИНТЕРНЕТ_ЗАПРОС, ФАЙЛ_КОПИРОВАТЬ и др.

Новые функции для работы с электронной цифровой подписью: ПОДПИСЬ_ДОБАВИТЬ, ПОДПИСЬ_ПРОВЕРИТЬ, ПОДПИСЬ_ШИФРОВАТЬ, ПОДПИСЬ_РАСШИФРОВАТЬ, ВЫБОР_СЕРТИФИКАТА, СЕРТИФИКАТ_ИНФО, СЕРТИФИКАТ_ПРОВЕРИТЬ.

Новые функции: АНАЛИТИКА, КОДИРОВАТЬ, ДЕКОДИРОВАТЬ, УРЛ_КОДИРОВАТЬ, УРЛ_ДЕКОДИРОВАТЬ, ДОБАВИТЬ_В_ПРОТОКОЛ, ДАТА_ЗАКР_ПОЛЬЗОВАТЕЛЯ

Методы объекта ФАЙЛ: ЗАПИСАТЬ_ДАННЫЕ, СЧИТАТЬ_ДАННЫЕ.

Методы объекта ЖУРНАЛ: ИЗМЕНИТЬ, ДОБАВИТЬ_В_КЭШ.

Методы объекта ВЕБСЕРВЕР: ПОЛУЧИТЬ_ФАЙЛ

Усовершенствованный терминал ввода теперь может отображать картинки. Функция ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ может обрабатывать HTML-текст. У функции СТАРТ_БЛАНК дополнительные параметры экспорта.

Для функций АРХИВ_СЧИТАТЬ и АРХИВ_ЗАПИСАТЬ добавлена поддержка zip-архивов.

Специализированный объект SQL.

Директива ВНУТР позволяет ограничивать область видимости общих переменных, общих массивов, функций и диалогов.

Директивы условной компиляции.

Изменение в журналах

Новые типы полей в журналах

·большая строка — строка, не ограниченная по длине.

·данные — произвольные данные.

Изменение в отчетах

В отчетах, связанных с операциями, возможна перестановка операций (перестановка местами строк отчета).

Усовершенствование системы обновления

В скриптах системы обновления теперь доступен PSQL с помощью команды EXECUTE BLOCK. С помощью файлов-маркеров можно управлять системой обновления, включая запуск сторонних конверторов и программ-установщиков. Добавлена поддержка 32-битных и 64-битных библиотек сервера (UDF) в пакетах обновлений.

Несовместимости с предыдущими версиями

Все функции для работы с файлами, интернетом, теперь по умолчанию используют кодировку UTF8.

Функция JSON_СЧИТАТЬ изменилась, изменилась функция КОНТРОЛЬНАЯ_СУММА, метод СЧИТАТЬ_ВСЕ объекта ФАЙЛ изменился, убрана функция ПЕРЕКОДИРОВАТЬ. Функции СИМВ и КОД_СИМВ для русских букв возвращают другие значения (код UNICODE вместо кодов WIN1251). На функцию НАЙТИ по умолчанию влияет опция Фильтр действует на отчеты. Для функций СЕРВЕР_ОТПРАВИТЬ и СЕРВЕР_ПОДКЛЮЧИТЬ необходимо указывать кодировку отправляемых и получаемых данных.


Техническая поддержка

Если во время работы с программой, Вам необходима помощь технической поддержки, воспользуйтесь соответствующими возможностями:

·позвоните по телефону +7(495) 3696006;

·отправьте письмо на адрес электронной почты support@infop.ru.

·задайте вопрос на форуме www.infop.ru/forum.


Сервер Firebird

Сервер Firebird / Interbase

Firebird / InterBase — это SQL-сервер, СУБД, отличающаяся маленькими требованиями к ресурсам системы и при этом довольно серьезной производительностью. Разумеется, речь идет в основном про управление базами данных объемом до нескольких гигабайт. В таких ситуациях InterBase является, пожалуй, наилучшим выбором из большого числа других серверов.

Что отличает InterBase? Прежде всего, это кросс-платформенность, то есть, переносимость с одной операционной системы на другую. InterBase поддерживает Linux, Windows и значительное количество Unix-платформ. И делает это легко и удобно. Фактически, приложение, которое использует InterBase, не увидит разницы, на какой платформе в данный момент находится сервер. А если вам захочется поменять платформу, то это не потребует переделки базы данных — достаточно лишь проделать операцию резервного копирования на одной платформе и восстановления копии на другой.

InterBase всегда был инновационным продуктом, если так можно выразиться. Многие технологии, которые сейчас считаются само собой разумеющимися в мире баз данных, впервые появились именно в InterBase. Хотите примеров? Они есть. Прежде всего, речь идет о BLOB-полях. Это может звучать удивительно, но именно в InterBase они впервые и появились (привет Informix!). Во-вторых, это UDF, то есть, функции, определяемые пользователем. Замечательная возможность расширить набор встроенных функций при помощи любого средства разработки! Сама идеология InterBase — система множественного поколения записей, которая позволяет гарантировать отсутствие блокировок по чтению и быстрое восстановление базы данных при сбоях — это совершенно инновационная технология, которая являлась уникальной с самого начала, да и сейчас, пожалуй, не имеет реальных аналогов. Ну и напоследок — хотя этим дело, конечно, не исчерпывается — упомянем каскадные триггеры. Именно этот механизм, позволяющий создавать очереди автоматически запускающихся триггеров на все виды операций с данными, дает нам возможность гибко реализовывать практически сколь угодно сложную бизнес-логику!

Вот отзывы людей, давно работающих с сервером Firebird / Interbase:

Jerold Davidson:

«... я являюсь администратором БД уже два года, и согласен с утверждениями Borland о легкости сопровождения. Например, по сравнению с Oracle, это день и ночь. IB действительно очень легко управлять и спровождать...»

David Zvekic:

«... по сравнению с Sybase IB намного проще сопровождать. Великолепное управление конкурентным доступом к данным (дающее большую скорость обмена данными и более простые клиентские приложения), большее соответствие стандарту SQL92. Хранимые процедуры для выборки данных, пользовательские функции, побитное слияние индексов оптимизатором запросов, и т.д. Кроме этого, Interbase работает на значительно большем количестве платформ.»

«У нас одна из баз данных содержит таблицу с 32 миллионами строк (записей), в которую ежедневно добавляется от 100 до 150 тысяч записей. Добавление занимает около часа. Эта таблица имеет около 30-ти столбцов, пару индексов, и несколько триггеров, срабатывающих на insert. Высокая производительность IB на таком объеме данных нас вполне устраивает.»

Carl Anton Stenling:

«У меня есть опыт работы с IB, Sybase и немного с Progress. Это правда, что у IB более лучший механизм обеспечения конкурентного доступа к данным, чем у Sybase. Это может быть очень важно в системах с большим количеством пользователей, одновременно и активно работающих с данными. Также IB легче научиться и сопровождать. Количество ошибок в IB 4 намного меньше чем, например, в Sybase версий 10/11... В общем, Sybase более 'крупный' продукт, но IB имеет лучшую технологическую основу.»

David Lipschits, Orbital Decisions:

«У нас работает с 1993 года система на SCO Unix, 386sx, 16Mb RAM, и 10 пользователей одновременно. Как вам такая конфигурация? :-)»

Scott Wehrly

>Хорошо-бы, если-бы Билл Карвин подсказал — как получить сертификат IB DBA ...

> > Interbase настолько легко администрируется, что любой может быть сертифицирован как IB DBA.

> Это наверняка шутка! :-)

Да, я думаю что это хорошая шутка. Я знаю что Oracle настолько сложен в администрировании, что администратор БД должен иметь сертификат и пройти много курсов чтобы поддерживать работу БД уровня предприятия. Мы выбрали IB как платформу для разработок по многим причинам, но это факт что наши клиенты в большинстве не являются разработчиками или DBA, однако они могут эффективно управлять базами данных размером 4-10Гб без квалификации DBA.

Jeff Kuo

«... Вам придется работать с MS SQL ? Я научился работать «с нуля» с IB, и я просто счастлив что мне не надо больше иметь дело с MS SQL. Надеюсь, что ваша битва с MS SQL будет менее кровавой, чем была у меня (там разве что GUI-администратор хорош)...»

Keith Gilbert, Labor Ready

У меня сейчас нет времени на подробный комментарий, но есть несколько причин, по которым я продолжаю работать с Interbase (мы посмотрели и протестировали MS SQL Server). Приведенные пункты не являютс точным сравнением, потому что MS SQL Server все-таки имеет некоторые изящные решения. Я просто приведу причины, по которым для нас выбор Interbase остается лучшим:

(a) Механизм многоверсионности записей — Interbase очень хорошо подходит *ОДНОВРЕМЕННО* как для OLTP систем так и для длительных запросов благодаря механизму многоверсионности. В SQL Server все равно остаются проблемы с блокировками (как и с блокировками на уровне записей в SQL Anywhere) когда вы запускаете длительные запросы и одновременно вставляете записи. С MS SQL Server это нормально не работает.

(b) Размер: Даже если MS SQL Server будет работать на Win 95, все-равно это тяжелая система. Мастер-таблицы слишком огромные. Мне удалось урезать объем, занимаемый MS SQL Server 7 до 80 MB, однако это гораздо больше чем требуется для Interbase

(c) UDF - SQL Server может вызывать DLL, но я не думаю что реализация является такой-же быстрой как способ вызова DLL в Interbase (в общем UDFs работают быстрее с меньшими накладными расходами)

(d) Log-файлы — Некоторым нравится управлять раздельными файлами Log-ов, но не мне. Для меня Interbase является очень легкой в сопровождении, и меня не заботит что там за куча непонятных файлов на диске. SQL Server не страдает малым количеством файлов, и администратору достаетс намного больше забот, чем с IB.

(e) Каскадная ссылочная целостность — уже Interbase 5 поддерживал полный синтаксис DRI, а SQL Server — нет.

(f) VarChar — IB Database обрабатывает поля VARCHAR (особенно длиной более 2k) намного лучше чем SQL Server вообще способен.

(g) Многоплатформенность — То, что я могу без проблем перенести базу данных с NT или Win 95 на Unix или Linux — просто отлично. Если NT сдерживает производительность (или вы замучились перегружать сервер), то переходите на Unix или Linux . Особенно, если вы слышали что NT плохо масштабируется при увеличении процессоров (Unix-ы с этим проблем не имеют).

Fred Wilson, SE Bell+Howell Cope Company

MSSQL Server работает быстрее ? Весьма сомнительно. Мы разрабатываем базу данных «реального времени» для обработки большого количества почты. Что я имею в виду под «реальным временем»:

- У нас два (2) типа компьютеров. Один обрабатывает около 12 тыс. счетов в час, другой — около 18 тыс. счетов в час.

- Каждого тип компьютера читает от 800 до 1100 байт данных из базы данных, необходимых для каждого счета (несколько объединенных таблиц), и записывает около 200 байт данных для каждого обработаного счета.

- Это транслируется в 6 обращений к БД в СЕКУНДУ для типа 12 тыс. (3 чтени и 3 записи), и в 10 обращений к БД в СЕКУНДУ для каждого компьютера типа 18 тыс. (5 чтений and 5 записей).

Мы тщательно протестировали на время отклика MS SQL версии 6.5, IB версии 4.2 и IB версии 5.0. Мы наняли 2-х консультантов (оба Microsoft Certified «Product Specialist» и Microsoft Certified «Solution Deveopers») чтобы они помогли нам в настройке MS SQL, программировании, разработке БД, тестировании и замерах. Все тестирование и замеры IB выполнял я, параллельно с тестированием MS SQL. (Это было 6 месяцев назад, тогда я вообще ничего не знал об IB).

Оба сервера работали на одинаковых компьютерах — Dual PII 200, 128 mg RAM, 4 GIG Wide SCSI III drive, NT Server 4.0 SP3. Клиентами являлись компьютеры с WIN95, в основном P166, 64 meg RAM, 2 GIG IDE HD. Сеть работала через TCP/IP на 10MBS.

MS SQL не смог «тянуть» более 10 клиентских компьютеров типа 12K одновременно. IB нормально обрабатывал 25 12K компьютеров или 20 18K компьютеров.

Настоящей проблемой с MS SQL была борьба с блокировками. Не говор уже о transaction log.

Я работал с MS SQL пять лет назад (1 из консультантов был из той компании) в течение 3-х лет. Много кодирования, о котором как оказалось можно даже не думать при использовании IB.

Мы выиграли очень много, выбрав IB вместо MS SQL (инструменты для программировани клиентских мест, квалификация разработчиков, и т.п.), в частности скорость, удобство, и т.п. IB оказался намного лучшим выбором из двух. MS SQL был не просто медленнее чем IB, а откровенно «тормозил».

При переходе на IB 5.0 мы получили увеличение производительности на ~10-20 % по сравнению с IB 4.2.

Fred Wilson, SE Bell+Howell Cope Company.


Транзакции

Транзакции представляют собой средство для объединения одного или нескольких действий в один блок. Причем успешность или неудача при выполнении операций с базой данных определяется на уровне таких блоков, т.е. блок действий либо выполняется на 100%, либо не выполняется вовсе. Все изменения внутри транзакции не видны другим пользователям до момента подтверждения транзакции. Такое свойство называется изоляцией. В Инфо-Предприятии используются транзакции с двумя уровнями изоляции: «read committed» (читать подтвержденные) — уровень изоляции, при котором транзакции видят записи подтвержденные другими транзакциями и «snapshot» (снимок) — уровень изоляции, внутри которого не видны никакие изменения, внесенные другими пользователями, в том числе и подтвержденные. Второй тип изоляции используется для получения отчетов. Это позволяет получать правильные данные в отчете, даже если в момент расчета выполняются изменения базы данных.

Транзaкционная модель работы с данными дает ряд дополнительных преимуществ. Основное, это возможность защиты базы данных от логических ошибок — т.е. таких ситуаций, которые не являются ошибками с точки зрения базы данных, но являются неправильными с точки зрения бизнес-логики предприятия. Простой пример: при удалении счета может происходить несколько действий: собственно удаление счета, перенос проводок, которые проходят по этому счету и перенос исходных остатков, которые имеет этот счет. Все эти действия выполняются в рамках одной транзакции. Если на каком-то этапе выполнения этих действий произойдет ошибка (проводка окажется заблокированной или у пользователя будет недостаточно прав для изменения проводки, произойдет аппаратный сбой или разрыв соединения), то все изменения, которые уже были сделаны в базе данных в рамках этой транзакции, отменяются. Поэтому ситуации, когда, например, остатки были перенесены, а счет удален не был, не получится. А до тех пор, пока пользователь не выполнит все необходимые действия по удалению счета, никакие изменения в базе данных, в том числе и уже выполненные в рамках этой транзакции, не будут видны другим пользователям.

Другое преимущество транзaкционной модели — возможность отделить операцию по внесению изменений в базу данных и операцию подтверждения этих изменений. Такая работа напоминает работу с локальными программами: мы вносим изменения в документ и затем нажимаем «Сохранить». Конечно, возможность такой работы является опциональной.

Все встроенные операции в программе Инфо-Предприятие версии уже сгруппированы по транзакциям и для обычного пользователя такое изменение в порядке работы незаметно. Инфо-Предприятие гарантирует логическую целостность данных в этом случае.

Особая тема, взаимодействие алгоритмов на внутреннем языке и транзакций. Здесь действуют следующие правила:

1. Бланки, отчеты и типовые операции работают каждый в своей транзакции. После успешного завершения работы алгоритма, транзакция подтверждается. Если на каком-то этапе работы алгоритма возникают непредвиденные ситуации: блокировка, ошибка в расчетной части алгоритма, разрыв соединения или аппаратный сбой, транзaкция откатывается.

2. Встроенные обработчики (функции журналов) выполняются в рамках тех транзакций, которые действуют на этапе выполнения действий, для которых эти обработчики вызываются.

3. Бланки, отчеты и типовые операции, вызываемые контекстно из журнала, работают в той же транзакции, в которой работает конкретный журнал.

4. Определения работают в отдельной транзакции. Изменение значения определений из внутреннего языка выполняется и подтверждается в момент совершения присвоения. Соответственно, отмена транзакции алгоритма не может откатить изменение определения.

5. Функции СТАРТ_* выполняются в исходной транзакции в том и только в том случае, если они прерывают работу алгоритма до момента завершения их работы (например, функция СТАРТ_ОПЕРАЦИЯ и СТАРТ_БЛАНК при печати документов). В противном случае они выполняются в отдельной транзакции.

Помимо указанных правил, имеются два ключевых слова ПОДТВЕРДИТЬ и ОТМЕНИТЬ. Они подтверждают или отменяют все действия, сделанные до этого в алгоритме.

Пример:

ОПЕРАЦИЯ ТЕСТ_ОТМЕНИТЬ
ВЫЧИСЛИТЬ
накладные.ОЧИСТИТЬ
ВЫБОР_ЗАПИСИ(накладные) // ничего не покажет
ОТМЕНИТЬ
ВЫБОР_ЗАПИСИ(накладные) // покажет все записи, которые были до выполнения ОЧИСТИТЬ
КОНЕЦ

Часть алгоритма можно выполнить с отдельной транзакции. Для этого такой блок вычисления выделяется ключевыми словами ТРАНЗАКЦИЯ и КОНЕЦ_ТРАНЗАКЦИИ. По завершению блока транзакция подтверждается. Команды, следующие за КОНЕЦ_ТРАНЗАКЦИИ будут выполняться в исходной транзакции.

Оборотные функции ОС*, ОБ* и ЦЕНА работают в контексте вызывающей их транзакции. По завершении работы транзакции все временные таблицы оборотов уничтожаются. Перестановки аналитических признаков, выполняемые при помощи функции МАСКА_СУБСЧЕТОВ, также действуют до конца работы транзакции.


Настройка меню

Программа предусматривает настройку разработчиком или администратором следующих видов меню:

Главное меню — настраивается для конкретного интерфейса. У каждого пользователя может быть свой интерфейс, который и определяет вид главного меню.

Контекстное меню — настраивается для конкретного журнала аналитики, единое для всех пользователей и интерфейсов.

Для настройки меню Вам необходимо быть Администратором программы.


Главное меню

Редактирование главного меню

Стандартное меню

 Вернуться к началу раздела

Для редактирования меню следует выбрать пункт меню программы «Установка | Настройка меню». Здесь Вы сможете изменять главное меню программы. Для этого Вам необходимо быть Администратором программы.

Вверху можно выбрать интерфейс, для которого настраивается меню. Также, здесь можно добавить, удалить или изменить параметры интерфейсов. Это делается с помощью соответствующих кнопок справа. Интерфейс Главное меню администратора является системным и его удалить или изменить нельзя.

Основное окно редактирования устроено в виде дерева и позволяет создавать и изменять меню пользователя. Оно содержит закладки: Тип, Действие, Клавиша, Подсказка, Иконка, которые определяют, соответственно тип меню, действие, выполняемое при выборе данного меню, горячую клавишу, при нажатии которой происходит вызов данного пункта меню, а также всплывающую подсказку и иконку. Между закладками можно переходить при помощи клавиши <Enter>.

При выборе типа определены пять вариантов:

·Стандартное — означает, что данное меню стандартное, при этом на закладке Действие выбирается одно из заранее определенных действий (они соответствуют меню, которое создается при первом запуске программы с новой базой данных, стандартном меню). Например, пункт меню Выход из программы — стандартный. Для его добавления на закладке Действие надо выбрать Файлы->Выход;

·Бланк — определяет вызов бланка, в меню Действие задается имя файла бланка. Для выбора бланка можно воспользоваться кнопкой выбора. При этом Вы попадаете в список бланков;

·Отчет — определяет вызов отчета, в меню Действие задается имя файла отчета. Для выбора отчета можно воспользоваться кнопкой. При этом Вы попадаете в список отчетов;

·Операция — определяет форму (типовую операцию), Действие определяет название операции. При помощи кнопки выбора можно подставить типовую операцию из списка. Например: «Банк: % банка»;

·Журнал — задает журнал (справочник), в параметре Действие указывается нужный журнал. Список содержит все журналы (показываются их названия), а если журнал имеет один или несколько видов, то через двоеточие указывается вид журнала. Например: «Справочник сотрудников : полный», «Справочник сотрудников : краткий»;

·Веб-страница — открывает указанную Веб-страницу.

·Разделитель — устанавливает разделитель меню.

·Простой текст — произвольный текст в меню, без возможности выбора и выполнения команды

Следующие клавиши можно использовать при работе в редакторе меню:

Клавиша | Меню, Кнопка панели | Функция
<б> |  | Курсор вверх
<в> |  | Курсор вниз
<Insert> |  | Создание нового пункта в позиции курсора
<F7> | «Правка | Добавить», | Создание нового пункта после курсора
<F4> | «Правка | Изменить», | Изменить пункт меню
<F8> | «Правка | Удалить», | Удалить пункт меню
<Ctrl>+<PgUp> |  | Переместиться на закладку влево
<Ctrl>+<PgDn> |  | Переместиться на закладку вправо
<Enter> |  | Перемещаться между закладками и редактировать
<Ctrl>+<Enter> |  | Ввести подуровень (подменю)
<Ctrl>+<б> |  | Переместить пункт вверх
<Ctrl>+<в> |  | Переместить пункт вниз

При нажатии <Enter> можно и редактировать и перемещаться между закладками одновременно. При работе с помощью клавиатуры в редакторе меню достаточно использовать только эту клавишу. Вводить подуровни к меню можно либо при нажатии <Ctrl>+<Enter>, либо одинарным щелчком левее названия пункта меню. Подуровень удаляется при удалении всех пунктов из этого подменю.

При настройке главного меню следует отметить два факта. Во-первых, вне зависимости от настройки программа добавляет в пункт главного меню, содержащий команды редактирования (такие как Добавить, Удалить, Редактировать и т.д.) дополнительные пункты контекстного меню (по умолчанию группа таких команд помещается в меню Правка). Во-вторых, программа добавляет в пункт главного меню, содержащий оконные команды (такие как Мозаика, Каскад и т.д.) список открытых окон (по умолчанию группа этих команд помещается в меню Окна).

Вы можете сохранить редактируемое меню пользователя во внешний файл, если вызовите пункт меню «Файлы | Экспорт в...» при открытом окне редактирования меню. Внешний файл имеет расширение mnu и может быть использован для передачи меню между различными базами данных, если другие способы передачи невозможны. Аналогично, при помощи пунктов меню «Файлы | Импорт из...» Вы можете загрузить или объединить меню. При объединении программа спросит, как нужно объединять файлы. Возможны два варианта объединения пунктов меню:

·Без проверки на совпадение

·Добавлять только новые пункты меню

После объединения Вы можете продолжить редактировать меню. Изменения будут внесены после закрытия окна.

См. также
Редактирование контекстного меню


Контекстное меню

Редактирование контекстного меню

Настройка контекстного (всплывающего) меню аналогична настройке главного меню. Она вызывается через «Установка | Контекстное меню». Пункты контекстного меню добавляются в главное при активизации редактора журнала, для которого определено данное контекстное меню. Пункты контекстного меню также добавляются в главное меню, в пункт Правка при настройке по умолчанию (см. редактирование меню подробнее).

При вызове окна редактирования вверху появится выпадающий список, где надо выбрать журнал, в котором будет вызываться контекстное меню. Под списком располагается редактор, аналогичный редактору главного меню, но определяющий пункты контекстного меню в выбранном журнале.

Переходить от меню одного журнала к другому можно:

·при помощи выпадающего списка

·кнопки выбора [image] или нажав клавишу <Ctrl>+<F2>

·при помощи клавиш <PgUp> и <PgDn> на клавиатуре.

Контекстное меню работает в паре с функцией ИЗ_ЖУРНАЛА и конструкцией ЦИКЛ_ИЗ_ЖУРНАЛА. В пункте контекстного меню запускается бланк или типовая операция, в тексте которой содержится алгоритм с вызовом этой функции. Этот алгоритм считывает текущую выбранную запись или несколько выделенных записей и обрабатывает ее.

Можно настраивать вид контекстного меню исходя из выбранной записи. Для этого используется обработчик Вид контекстного меню. В зависимости от выбранной записи в журнале могут в этой функции скрываются те или иные пункты меню.

См. также
Редактирование главного меню


Внутренний язык

Внутренний язык программирования

Внутренний язык программирования программы Инфо-Предприятие позволяет создавать сложные разветвленные алгоритмы, собственные библиотеки функций. Внутренний язык используется для формирования отчетов, бланков документов, диалоговых форм и обработчиков (алгоритмы поведения программы). В языке имеются большие возможности по аналитической обработке данных, ветвлении расчета, осуществления циклов, обработки исключений. Большое количество встроенных функций позволяют получить доступ к различным источникам данных, находящихся в текущей базе, в файлах на компьютере или в интернете. Переменные различных типов, включая объектные переменные и массивы, могут использоваться в расчетах.

Внутренний язык является компилятором. Перед выполнением алгоритма происходит проверка синтаксиса и преобразование исходного текста программы в байт-код, который уже и будет выполняться программой. Синтаксический анализатор проверяет не только исходный текст на ошибки, но и находит фрагменты текста, которые могут подлежать редукции, неиспользуемые переменные и параметры функций, неоптимальный с точки быстродействия код и т.д.

С помощью встроенного отладчика можно выявить причины неисправности алгоритма, а с помощью профайлера выяснять источники низкой скорости его работы.

Созданные в программе алгоритмы, отчеты, бланки могут быть выгружены в пакеты обновления с помощью процедуры выгрузки разницы и отправлены одному или нескольким заказчикам для установки на их базы данных. Можно создать полноценный дистрибутив конфигурации с распространением его неограниченному кругу лиц.

В программе заложены средства совместной разработки несколькими программистами общего проекта. Файлы библиотек, бланков, отчетов блокируются в тот момент, когда они открываются на редактирование. При попытки их открытия с другого рабочего места выводится сообщение о блокировке, файлы открываются только на чтение.

Внутренний язык содержит средства распределенной разработки, когда конечная конфигурация разрабатывается разными командами разработчиков. Во-первых, конфигурация может дорабатываться на местах под нужды конкретного пользователя. Для решения задачи её последующего обновления (установки новых версий типовых алгоритмов, бланков, отчетов) алгоритмы могут быть переопределены и доработаны на конкретном экземпляре программы с помощью модификаторов, а бланки и отчеты с помощью замены вызова. Во-вторых, система создания дистрибутивов позволяет создавать одними разработчиками конфигурации, в основе которых лежат конфигурации, созданные другими разработчиками. Созданные дистрибутивы могут распространяться неограниченному кругу лиц. Обновления таких наследуемых конфигураций могут содержать в себе обновления исходных конфигураций и корректно устанавливаться у конечных пользователей. В-третьих, возможна комбинация первого и второго случая, когда конфигурация, созданная двумя независимыми командами разработчиков, дорабатывается третьими лицами под конкретного пользователя.

См. также
Типы данных
Константы
Переменные
Выражения и операции
Оператор присваивания
Комментарии
Библиотеки
Объекты
Сообщения об ошибках
Ключевые слова
Встроенные функции
Ключевые слова и функции от А до Я


Типы данных

В программе Инфо-Предприятие используются данные следующих типов:

·число;

·строка;

·логика;

·дата;

·время;

·множество;

·данные;

·неопределенный тип

·объектные типы

См. также
Описание типов

Числовой тип

С помощью числового типа представляются целые и дробные числа в диапазоне

-3.4e-4932 ... 1.1e+4932.

Точность представления — 18 десятичных цифр.

Примеры:

5 | // константа целого типа
3.50 | // константа вещественного типа (с фиксированной запятой)
1E5 | // константа вещественного типа (в экспоненциальной форме)
$100 | // шестнадцатеричная константа (стиль языка Delphi)
0x100 | // шестнадцатеричная константа (стиль языка Си)

К числовому типу применимы все арифметические действия.

Строковый тип

Строка — последовательность символов, заключенная в двойные кавычки "...".

Комбинация символов "//" внутри строки интерпретируется функциями вывода на экран как перевод строки.

Максимальная строк длина не ограничена.

Пример:

"Иванов А.В." // константа строкового типа

К строковому типу применима операция конкатенации +:

"Главный бухгалтер " + "Иванов А.В.".

А при сравнении строковых данных возможно использование шаблонов — строк, содержащих внутри символ "*" (звездочка). Например следующее выражение будет истинно "Главный" = "*а*".

Логический тип

Переменные или константы логического типа могут принимать два значения:

·ДА — истина;

·НЕТ — ложь.

С логическим типом допустимы следующие действия:

·НЕ — отрицание;

·И — логическое умножение И;

·ИЛИ — логическое сложение ИЛИ.

Переменные логического типа можно сравнивать, например <> (неравенство) равносильно исключающему ИЛИ.

Дата (календарный тип)

С помощью данного типа представляются календарные даты в диапазоне от 01.01.1900 года до 31.12.2078 года.

Дата записывается в формате типа: дд.мм.гг или дд.мм.гггг, где:

дд | — день (от 01 до 31)
мм | — месяц (от 01 до 12)
гг или гггг | — год (от 00 до 99 или от 1900 до 2078)

Если год содержит две цифры, то при задании года от 50 до 99 подразумевается год от 1950 до 1999, а при задании года от 00 до 49 — год от 2000 до 2049.

Пример:

06.07.1976 | // 6 июля 1976 года
01.09.00 | // 1 сентября 2000 года
НЕТ_ДАТЫ | // дата не задана

С типом дата допустимы следующие операции:

·Сложение с целым числом. При сложении получается дата, отстоящая от исходной на указанное кол-во дней.

·Вычитание целого числа. При сложении получается дата, предшествующая исходной на указанное кол-во дней.

·Вычитание даты. Получается кол-во дней между датами. Если первая дата раньше второй, то это кол-во отрицательно.

Время (временной тип)

С помощью данного типа представляется время, записываемое в следующем формате чч:мм:сс или чч:мм, где:

чч | — часы (от 00 до 23)
мм | — минуты (от 00 до 59);
сс | — секунды (от 00 до 59).

С типом время допустимы операции сложения и вычитания.

Пример:

13:30 | // половина второго
00:01:30 | // полторы минуты

Множества

Множество определяет перечислимый набор объектов, который задается в редакторе множеств.

Пример:

ндсВТомЧисле | // "НДС в том числе"
клиентПокуп | // "Покупатель"

Данные

Этот специальный тип представляет собой необработанные данные и используется в функциях, работающих с файлами, интернет-запросами и т.д. Он может быть получен из строки с помощью функции КОДИРОВАТЬ или преобразован в строку с помощью функции ДЕКОДИРОВАТЬ. Для данных определена операция конкатенации, а с помощью функции ДЛИНА можно узнать размер данных.

Объектные типы

Имеются следующие объектные типы:

·База данных XML или DBF

·Веб-сервер

·Диаграмма

·Журнал

·Курсор

·Объект

·Секция

·Файл

·Фильтр

·Шрифт

·SQL

Переменные объектных типов (кроме файловых) можно приравнивать один другому. Арифметические операции к объектам неприменимы.

Переменные объектных типов можно сравнивать на равенство или неравенство ( =, <> ).


Описание типов

Описание типов осуществляется заданием ключевых слов:

Простые типы

ВРЕМЯ | временной тип
ДАННЫЕ | данные
ДАТА | календарный тип
ЛОГИКА | логический тип
МНОЖЕСТВО | множество
СТРОКА | строковый тип
ЧИСЛО | числовой тип

Неопределенный тип

*

неопределенный тип

Объектные типы

БД | тип объекта База данных XML или DBF
ВЕБСЕРВЕР | тип объекта Веб-сервер
ДИАГРАММА | тип объекта Диаграмма
ЖУРНАЛ | тип объекта Журнал
КУРСОР | тип объекта Курсор
ОБЪЕКТ | тип объекта Объект
СЕКЦИЯ | тип объекта Секция
ФАЙЛ | тип объекта Файл
ФИЛЬТР | тип объекта Фильтр
ШРИФТ | тип объекта Шрифт
SQL | тип объекта SQL

Для объектов ЖУРНАЛ и ФИЛЬТР в скобках указывается идентификатор журнала.

Описание типов встречается:

·При объявлении локальной переменной;

·При объявлении общей или глобальной переменной в библиотеке, бланке или отчете;

·В описании параметров библиотечной функции или диалога.

·Для объектных типов — для указания типа объекта в заголовках методов объектов

При использовании конструктора ЭТО, применяются ключевые слова объектных типов для указания типа создаваемого объекта.

См. также
Объекты


Переменные неопределенного типа

В некоторых, очень редких случаях, используются переменные неопределенного типа. Переменной неопределенного типа можно присвоить значение любого типа. При присвоении такой переменной значения какого-либо типа она становится переменной этого типа.

Единственно возможное применение таких переменных — использование их в качестве параметров-значений и параметров-переменных при написании собственных функций.

Пример:

ФУНКЦИЯ ЛОГИКА : СчитатьПараметр(СТРОКА: параметр; ПЕРЕМ *: результат; *: по_умолчанию)

ж ЭТО параметры

ЕСЛИ ж.НАЙТИ(код=параметр) И ВЫРАЖЕНИЕ(ж.значение,результат) ТО

СчитатьПараметр = ДА

ИНАЧЕ

СчитатьПараметр = НЕТ

результат = по_умолчанию

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

ПЕРЕМ ЧИСЛО : ндс,нсп

ПЕРЕМ ЛОГИКА : итого

ПЕРЕМ СТРОКА : сч

ВЫЧИСЛИТЬ

СчитатьПараметр("НДС",ндс,20)

СчитатьПараметр("НСП",нсп,4)

СчитатьПараметр("СчитатьИтоги",итого,ДА)

СчитатьПараметр("СчетСписания",сч,"20")

// ...

КОНЕЦ

Замечание!

При использовании параметров-переменных неопределенного типа в функцию должны передаваться переменные любого, но определенного, типа.

См. также
Типы данных


Идентификаторы

Идентификаторы используются для именования переменных, констант, функций и диалогов.

Идентификаторами являются коды определений, реквизитов, множеств, идентификаторы журналов и полей журналов.

Идентификатор должен начинаться с буквы латинского или русского алфавита или символа подчеркивания "_" или вопросительного знака "?". Второй и последующие символы идентификатора могут быть как перечисленными символами, так и цифрами. В идентификаторах допускаются буквы как верхнего, так и нижнего регистра, причем регистр букв имеет значение (переменные «ошибка» и «Ошибка» — разные!).

Идентификатор не должен совпадать с ключевыми словами, встроенными функциями, определениями, реквизитами, множествами.

Длина идентификатора никак не ограничена.

Замечания!

1. В графах типовых операций и диалогов нельзя использовать переменные и функции, начинающиеся с вопросительного знака.

2. Длина идентификатора никак не ограничена, но коды определений, реквизитов не могут быть больше 31 символа.

См. также
Переменные
Константы
Функции
Диалоги


Константы

Константы предназначены для подстановки в выражения определенных фиксированных значений. Константы могут быть числового, строкового, логического типов, типа дата, время, множество.

Пример:

3.14159 | константа числового типа;
"Инфо-Предприятие" | константа строкового типа;
01.01.2001 | константа типа «дата»
ДА | константа логического типа
13:00 | константа типа «время»
клиентПокуп | константа типа «множество»

Чтобы постоянно не прописывать много раз одно и тоже число, символ или строку (которая может окажется слишком громоздкой), в Инфо-Предприятии можно определить свою константу. Константа будет определяться своим именем — идентификатором, за которым стоит некоторая не меняющаяся величина.

Константы могут объявляться:

·Внутри в тексте алгоритма, тогда это будут локальные константы;

·Внутри библиотеки, бланка или отчета, тогда это будут общие константы;

Константы объявляются с помощью ключевого слова КОНСТ.

Константе нельзя присвоить значение и передать как параметр-переменную в функцию.

Пример

КОНСТ ДнейВГоду = 365

КОНСТ ЛетВВеке = 100


Встроенные константы

Логические константы

ДА — истина

НЕТ — ложь

Календарные константы

НЕТ_ДАТЫ — пустая дата (дата не определена, нет даты)

НЕТ_ДАТЫ = ПУСТО

Специальная константа ПУСТО:

ПУСТО — пустое значение (отсутствие значения)


Пустое значение

В программе существует выделенное пустое значение (или отсутствие какого-либо значения). Оно определяется ключевым словом ПУСТО. Арифметические операции над ним имеют особые правила.

Арифметические операции:

<значение> | + ПУСТО | = <значение>
ПУСТО | + <значение> | = <значение>
<значение> | - ПУСТО | = <значение>
ПУСТО | - <значение> | = - <значение>
<значение> | * ПУСТО | = ПУСТО
ПУСТО | * <значение> | = ПУСТО
<значение> | / ПУСТО | = ПУСТО
ПУСТО | / <значение> | = ПУСТО
<значение> | \ ПУСТО | = ПУСТО
ПУСТО | \ <значение> | = ПУСТО
ПУСТО | % | = ПУСТО
<значение> | ^ ПУСТО | = ПУСТО
ПУСТО | ^ <значение> | = ПУСТО

Истинные логические утверждения:

<значение> | > ПУСТО
ПУСТО | < <значение>
<значение> | >= ПУСТО
ПУСТО | <= <значение>
ПУСТО | <> <значение>
ПУСТО | = ПУСТО

здесь <значение> отлично от ПУСТО

Замечание!

В выражениях в запросах правила для работы с ПУСТО иные. Сравнение с ПУСТО является ложным, а арифметическое выражение с ПУСТО равняется ПУСТО.

См. также
Загрузка и сохранение полей записи в полях объекта


Константы: вид курсора

Виды курсора

курПоУмолчанию | Используется курсор по умолчанию
курУказатель | Курсор в виде указателя
курКрест | Курсор в виде креста
курРедактор | Курсор для редактора текста
курЛупа | Курсор в виде лупы
курЗапрет | Курсор запрета действия

См.также
Обработчики отчета


Константы: цвета

Цвета

цвНет | <цвет не задан>
цвБелый | Белый
цвБирюзовый | Бирюзовый
цвЖелтый | Желтый
цвЗеленый | Зеленый
цвКрасный | Красный
цвОливковый | Оливковый
цвРозовый | Розовый
цвСерый | Серый
цвСинеЗеленый | Сине-зеленый
цвСиний | Синий
цвТемноЗеленый | Темно-зеленый
цвТемноКрасный | Темно-красный
цвТемноСиний | Темно-синий
цвФиолетовый | Фиолетовый
цвЧерный | Черный

См.также
ПОДСВЕТКА
ВСТАВИТЬ_РАМКУ
ШРИФТ


Константы: атрибуты

Атрибуты ячеек

Атрибуты ячеек

Атрибуты управляют ячейками, столбцами и строками отчетов.

См.также
АТРИБУТЫ и АТРИБУТЫВ
АТРИБУТЫ и АТРИБУТЫВГР


Константы: детализация

Детализация

детДень | День
детПятьДней | Пять дней
детНеделя | Неделя
детДекада | Декада
детМесяц | Месяц
детКвартал | Квартал
детГод | Год


Константы: параметры

Параметры

Параметры позволяют управлять параметрами отчета из внутреннего языка.

См.также
ПАРАМЕТРЫ


Константы: типы штрихкодов

Типы штрих-кодов

bc2_5_interleaved | 2_5_interleaved
bc2_5_industrial | 2_5_industrial
bc2_5_matrix | 2_5_matrix
bcCode39 | Code39
bcCode39Extended | Code39 Extended
bcCode128A | Code128A
bcCode128B | Code128B
bcCode128C | Code128C
bcCode93 | Code93
bcCode93Extended | Code93 Extended
bcMSI | MSI
bcPostNet | PostNet
bcCodabar | Codabar
bcEAN8 | EAN8
bcEAN13 | EAN13
bcUPC_A | UPC_A
bcUPC_E0 | UPC_E0
bcUPC_E1 | UPC_E1
bcUPC_Supp2 | UPC_Supp2
bcUPC_Supp5 | UPC_Supp5
bcEAN128A | EAN128A
bcEAN128B | EAN128B
bcEAN128C | EAN128C

См.также
ВСТАВИТЬ_ШТРИХКОД


Константы: типы шрифтов

Детализация

шрифтДиалогов | Шрифт диалогов
шрифтДиалоговФикс | Шрифт фиксированных диалогов
шрифтСтатуса | Шрифт статуса
шрифтТаблицы | Шрифт таблицы
шрифтРедактора | Шрифт редактора
шрифтМеню | Шрифт меню
шрифтЗакладок | Шрифт закладок

См.также
Настройки стандартных шрифтов
Метод СЧИТАТЬ объекта ШРИФТ


Константы: параметры сертификата

Параметры сертификата ключа электронной цифровой подписи

сертОтпечаток | Отпечаток (SHA1 hash)
сертИдентификатор | Идентификатор
сертСубъект | Наименование субъекта (CERT_SIMPLE_NAME_STR)
Только для получения информации (ВЫБОР_СЕРТИФИКАТА, СЕРТИФИКАТ_ИНФО)
сертАтрибуты | Перечень атрибутов в виде строки, разделенной запятыми: <OID>=<значение>, <OID>=<значение>, ... (таблицу OIDs можно посмотреть на сайте https://oidref.com/)
сертОткрытыйКлюч | Открытый ключ в кодировке кодировкe MIME
сертВсе | Все параметры, отделенные разделителем РР

См.также
Функция ПОДПИСЬ_ДОБАВИТЬ
Функция СЕРТИФИКАТ_ИНФО
Функция СЕРТИФИКАТ_ПРОВЕРИТЬ
Функция ВЫБОР_СЕРТИФИКАТА


Переменные

Переменные (локальные переменные) предназначены для хранения информации различных типов — результатов вычисления выражений.

Первый символ имени переменной — буква латинского или русского алфавита или символ подчеркивания "_", среди остальных символов могут быть и цифры.

Тип переменной определяется типом впервые присваиваемого значения или типом соответствующего поля ввода типовой операции, диалога или графы ввода бланка. Далее переменной должны присваиваться значения того же типа. При присвоении значения другого типа будет выдано сообщение об ошибке.

Для объявления переменной можно воспользоваться ключевым словом ПEPEM в тексте алгоритма и указать после него тип и имя новой локальной переменной, например:

ПЕРЕМ <тип переменной> : <имя переменной>

где

<имя переменной>
идентификатор, определяющий имя переменной

<тип переменной>
ключевое слово описания типов.

Пример:

а = 25/5 // а - переменная числового типа

б = "Главный бухгалтер" // б - переменная строкового типа

д_1 = 01.01.2012 // д_1 - переменная типа дата

ПЕРЕМ ЧИСЛО: с // c - переменная типа число

Переменные объектного типа может быть определяются при помощи конструкторов. Им, также как и простым переменным в дальнейшем должны присваиваться значения того же типа.

Пример:

ПЕРЕМ ОБЪЕКТ: доступ // доступ - объектная переменная типа ОБЪЕКТ

ж ЭТО накладные // доступ - объектная переменная типа ЖУРНАЛ(накладные)

См. также
Массивы
Общие переменные
Общие массивы
Типы данных
Объекты


Общие и глобальные переменные

Общие переменные. Общие переменные используются для обмена данными между библиотеками функций и основным алгоритмом. Определения общих переменных располагаются либо в библиотеках, либо перед ключевым словом ВЫЧИСЛИТЬ в тексте бланка или отчета и начинаются с ключевого слова ПEPEM.

Общая переменная доступна после подключения библиотеки с помощью ИСПОЛЬЗОВАТЬ. К ней можно обращаться из основного алгоритма и из функций этой библиотеки библиотеки. Если библиотека подключена в функции другой библиотеки, то общая переменная будет доступна и там. Не допускается одновременно использовать библиотеки, содержащие определения общих переменных с одинаковыми именами.

Общие переменные можно объявить двумя способами:

1. С заданием начального значения

2. С указанием типа переменной

Соответствующие строки определений в библиотеке будут выглядеть следующим образом:

ПЕРЕМ [ВНУТР] <имя переменной> = <начальное значение>

ПЕРЕМ [ВНУТР] <тип переменной> : <имя переменной>

где:

<начальное значение>
выражение, задающее начальное значение и определяющее тип общей переменной;

<тип переменной>
ключевое слово описания типов.

При определении нескольких переменных, они отделяются запятыми.

Замечание!

Внутри бланков, значение переменной, заданной типом, сохраняется при повторном расчете бланка без его закрытия.

Значение <тип переменной> может быть объектным. Для типа ЖУРНАЛ и ФИЛЬТР в скобках необходимо указать идентификатор журнала.

При указании директивы ВНУТР область видимости переменной ограничивается. К ней можно будет обращаться только из библиотеки, в которой она описана.

Пример.

{ -------------------------- Библиотека test.lib ------------- }

{ Объявление общих переменных 1-м способом }

ПЕРЕМ Номер = 1

ПЕРЕМ Дата = 20.04.98

ПЕРЕМ Остатки = ДА

ПЕРЕМ Номер_2 = Номер + 1, Номер_3 = Номер_2 + 1

{ Объявление общих переменных 2-м способом }

ПЕРЕМ ЛОГИКА: Признак

ПЕРЕМ ЧИСЛО: КоличПересч

ПЕРЕМ ЖУРНАЛ(накладные): Накладные

{ ----------------------- Основной алгоритм ------------- }

ВЫЧИСЛИТЬ

ИСПОЛЬЗОВАТЬ ("test.lib") // подключаем библиотеку и создаем общие переменные

Кол = Накладные.ВСЕГО // обращаемся к общему журналу

Номер = Номер + 1

КоличПересч = КоличПересч + 1

КОНЕЦ

Существует также возможность создавать общие массивы переменных.

Глобальные переменные. Если общие переменные используются для обмена данными между функциями при работе конкретного алгоритма (бланка, отчета, типовой операции), то глобальные переменные используются для обмена данными между различными алгоритмами. Такие переменные будут сохранять свое значение после завершения работы алгоритма. Они являются общими для всех бланков, отчетов, типовых операций, встроенного калькулятора, формул колонтитулов документов и др. В каждом используемом алгоритме глобальные переменные могут объявляться повторно. Задать глобальную переменную в библиотеке можно указав ключевое слово ГЛOБAЛ вначале:

ГЛОБАЛ ПЕРЕМ [ВНУТР] <тип переменной> : <имя переменной>

Пример.

{ Глобальная переменная }

ГЛОБАЛ ПЕРЕМ ОБЪЕКТ: Драйвер

Существует также возможность создавать глобальные массивы переменных.

См. также
Переменные
Объекты


Массивы

Массивы — это наборы переменных, к которым программа может иметь доступ по индексу — выражению строкового или числового типа. Массив может содержать переменные только одного типа, однако тип может быть любой, в том числе и объектный. Массивы используются, как правило, при обработке таблиц, журналов или баз данных при помощи циклов — везде, где в процессе расчета необходимо хранить большой объем данных. Массивы "бесконечны", только в некоторые элементы массива что-то заносилось, а остальные равны значению по умолчанию для этого типа массива. Например, для числовых массивов это 0 (ноль), для строковых "" (пустая строка), а новый массив логических переменных будет состоять из элементов, равных НЕТ (лжи).

Для объявления массива достаточно в расчетном разделе написать:

ПЕРЕМ [<тип элементов>:] <имя массива>!

или

ПЕРЕМ [<тип элементов>:] <имя массива>[ ]

Теперь, когда внутри библиотеки или расчетного раздела будут присваиваться значения массиву, например таким образом:

<имя массива>!<индекс> = <выражение>

или

<имя массива>[<индекс>] = <выражение>

Пример 1:

и = 1

массив [ и ] = 3 // Занести значение в массив можно так

массив [ 1 ] = 3 // или так, это будет обращение к одному элементу

массив [ СТР(и) ] = 3 // Строка "1" и число 1 - разные элементы

Пример 2:

ВЫЧИСЛИТЬ // В результате выполнения цикла

ЦИКЛ ДЛЯ (и=1,10) // задаются значения 10 переменных:

стр [ и ] = и // стр[1]=1, стр[2]=2 и т.д.

КОНЕЦ_ЦИКЛА

КОНЕЦ

Пример 3:

ВЫЧИСЛИТЬ // В результате выполнения цикла

ЦИКЛ ДЛЯ (и=1,10) // задаются значения 100 переменных:

ЦИКЛ ДЛЯ (й=1,10) // стр[1,1]=1, стр[1,2]=2,...

стр [ и, й ] = и * й // стр[10,1]=10, стр[10,2]=20,...

КОНЕЦ_ЦИКЛА

КОНЕЦ_ЦИКЛА

КОНЕЦ

В существующих алгоритмах также встречается другой синтаксис обращения к массивам:

<имя массива>!<идентификатор или константа> [!<идентификатор или константа> [...] ]

Пример:

и = 1

массив!и = 3 // или эквивалентные формы записи:

инд = СТР ( и )

массив!инд = 3 // обращение с индексом - строкой

массив!1 = 3 // обращение с конкретным значением

При таком варианте синтаксиса переменной-индексом может быть только переменная или константа числового или строкового типа.

Для массива определено понятие размерности.

Пример:

вектор [ 1 ] = 1

матрица [ 1, 1 ] = 1

Тогда массив вектор является одномерным, а массив матрица двумерным.

Для проверки того, заносилось ли в одномерный массив нужное значение или нет, используется оператор оператор ИЗ, а для перебора всех занесенных в одномерный массив значений цикл цикл ДЛЯ.

Замечание!

В принципе, к элементу многомерного массива можно обратиться и как к элементу одномерного массива, если использовать разделитель РР между координатами. Например, следующие операторы эквивалентны:

массив [ "1", "1" ] = 2

массив [ "1" + РР + "1" ] = 2

Такая особенность может использоваться при необходимости применять оператор ИЗ и цикл ИЗ для многомерных массивов.

Замечание!

К элементу массива заданному числовым индексом, можно обратиться и по строковому индексу, если использовать специальную функцию СТРМ. Например, следующие операторы эквивалентны:

массив [ 1 ] = 2

массив [ СТРМ(1) ] = 2

Такая особенность может использоваться при необходимости применять оператор ИЗ и цикл ИЗ для массивов, заданных числовым индексом.

См. также
Оператор ИЗ
Функция ВЫБОР
Функция СУММАМ


Общие и глобальные массивы

Общие массивы. Для организации обширных списков, индексов и т.п. с глобальным доступом существуют общие массивы переменных. Также как и обычная общая переменная, общий массив переменных описывается в библиотеке. После его объявления, он будет доступен из расчетной части всех библиотечных функций.

Синтаксис:

ПЕРЕМ [ВНУТР] [<тип элементов>:] <имя массива>!

или

ПЕРЕМ [ВНУТР] [<тип элементов>:] <имя массива>[ ]

Теперь, когда внутри библиотеки или расчетного раздела будут присваиваться значения массиву, например таким образом:

<имя массива>!<индекс> = <выражение>

или

<имя массива>[<индекс>] = <выражение>

то значения массива для данного индекса станет доступно внутри расчетного раздела или функции из библиотеки, в которой определен этот общий массив.

Значение <тип элементов> может быть объектным. Для типа ЖУРНАЛ и ФИЛЬТР в скобках необходимо указать идентификатор журнала, например, так:

ПЕРЕМ ЖУРНАЛ(накладные): ОперацииПоНакладным[ ]

Перед началом расчета алгоритма массив не содержит ни одного элемента. Если же алгоритм имеет предрасчетную часть, то:

·Перед началом расчета предрасчетной части массив не имеет ни одного элемента

·Перед началом расчета основной (расчетной) части массив содержит только те элементы, которые были добавлены в предрасчетной части.

Внутри расчетной части могут изменяться значения элементов массива, добавленных в предрасчетной части. Эти значения сохраняются между расчетами, также как и значения общих переменных, объявленных без инициализации.

При указании модификатора ВНУТР область видимости массива ограничивается. К нему можно будет обращаться только из библиотеки, в которой он описан.

Глобальные переменные. Если общие массивы используются для обмена данными между функциями при работе конкретного алгоритма (бланка, отчета, типовой операции), то глобальные массивы используются для обмена данными между различными алгоритмами. Такие переменные будут сохранять свое значение после завершения работы алгоритма. Они являются общими для всех бланков, отчетов, типовых операций, встроенного калькулятора, формул колонтитулов документов и др. В каждом используемом алгоритме глобальные переменные могут объявляться повторно. Задать глобальный массив в библиотеке можно указав ключевое слово ГЛOБAЛ вначале:

ГЛОБАЛ ПЕРЕМ [ВНУТР] [<тип элементов>:] <префикс>!

или

ГЛОБАЛ ПЕРЕМ [ВНУТР] [<тип элементов>:] <префикс>[ ]

Пример.

{ Глобальная переменная }

ГЛОБАЛ ПЕРЕМ ОБЪЕКТ: Драйвера [ ]

См.также
ОБНУЛИТЬ


Выражения и операции

Выражения

Выражения – это переменные, функции (встроенные или библиотечные) и константы, называемые операндами, объединенные знаками операций. Операции могут быть унарными – с одним операндом, например, минус; могут быть бинарные – с двумя операндами, например сложение или деление. Выражения могут содержать круглые скобки для указания приоритета вычисления.

Допустимы следующие операции:

Унарные арифметические операции

- | — знак, отрицательное число
% | — процент (деление на 100)

Бинарные арифметические операции

+ | — сложение
- | — вычитание
* | — умножение
/ | — деление
\ | — целочисленное деление
^ | — возведение в степень

Пример:

Выражение | Результат вычислений
2+2 | 4
(7+5)/8 | 1.5
17\6 | 2
200*5% | 10
(-1)^7 | -1
"Инфо"+"-"+"Предприятие" | "Инфо-Предприятие"
01.01.2001+3 | 04.01.2001
12:10:02+00:02:10 | 12:12:12
РИМ(4) + " кв." | "IV кв."

Логические операции

> | — больше
< | — меньше
>= | — больше или равно (не меньше)
<= | — меньше или равно (не больше)
= | — равно, при сравнении строк учитываются шаблоны
<> | — не равно, при сравнении строк учитываются шаблоны
== | — равно, шаблоны игнорируются
!= | — не равно, шаблоны игнорируются
НЕ | — логическое "НЕ" (отрицание)
И | — логическое "И"
ИЛИ | — логическое "ИЛИ"

При сравнении строк учитываются шаблоны — строки, содержащие внутри символ "*" (звездочка). Например следующее выражение будет истинно "Главный" = "*а*".

Пример:

Выражение | Результат вычислений
3 > 4 | НЕТ
НЕ 3 < 7 \ 2 | ДА
8 > 3 ИЛИ 3 > 7 | ДА
01.01.2001 < 01.04.2001 | ДА
10 + 8 = 6 * 3 | ДА
7 > 3 ИЛИ 3 = 2 И 5 < 3 | ДА
НЕ ДА И НЕ НЕТ | НЕТ
02:01 < 02:00 | НЕТ
(7 > 4) = (5 = 4) | НЕТ
"Маша"="М*" | ДА
"Маша"=="М*" | НЕТ
ПОЗ("о","Петров") = 5 | ДА
?( ?(3 < 2, 1, 2) = 2, 3, 5) < 4 | ДА
ДАТА_НАЧ <= ДАТА_КОН | ДА

Операция принадлежности массиву

ИЗ — значение принадлежит массиву (см. операцию ИЗ)

Приоритет операций

Оператор | Приоритет
ИЗ, %, ^, - (знак) | первый самый высокий
*, /, \ | второй
+, - | третий
НЕ, =, <>, <, >, <=, >=, !=, == | четвертый
И | пятый
ИЛИ | шестой самый низкий


Оператор присваивания

Оператор присваивания используются в расчетном разделе бланка или в типовой операции для присвоения переменной значения некоторого выражения.

Общий вид формулы:

<имя переменной> = <выражение>

Если переменной уже присваивались какие-либо значения, то тип выражения должен соответствовать типу переменной.

Примеры

а = 10 // переменной а присваивается значение 10

графа = (а+4) /5 // переменной графа присваивается значение (10+4)/5=2.8

дата_1 = 31.07.99 - 30 // переменной дата_1 присваивается значение даты 01.07.99

сум_пр = СУММАП (а)+" руб." // переменной сум_пр присваивается строка "Десять руб."

мас[1] = 3.14 // элементу 1 массива мас присваивается число 3.14

график.название = "Обороты" // полю название объекта график присваивается строка "Обороты"

а++ // увеличиваем значение переменной а на единицу

См. также
Арифметические операторы


Арифметические операторы

Описание:

Арифметические операторы являются заменой арифметических действий. Всего существует семь арифметических операторов: ++, --, +=, -=, *=, /=, \=. Их использование увеличивает быстродействие, так как позволяет избежать повторного поиска изменяемой переменной (в случае, если переменная является элементом массива — индексной переменной). Также, их применение делает более лаконичным алгоритм расчета.

Операторы ?=, ~=, != являются модификациями операции присвоения.

Оператор | Краткое описание | Синтаксис
++ | Увеличение на единицу | <переменная>++
-- | Уменьшение на единицу | <переменная>--
+= | Добавление значения | <переменная>+=<выражение>
-= | Вычитание значения | <переменная>-=<выражение>
*= | Умножение на значение | <переменная>*=<выражение>
/= | Деление на значение | <переменная>/=<выражение>
\= | Целочисленное деление на значение | <переменная>\=<выражение>
?= | Присвоение в случае, если переменная равна нулю / пустой строке | <переменная>?=<выражение>
?= | Обозначение не запрашиваемого параметра | <переменная>?=<выражение>
~= | Присвоение в случае, если выражение не равно нулю / пустой строке | <переменная>~=<выражение>
!= | Присвоение без выдачи предупреждения | <переменная>!=<выражение>

Арифметические операторы выполняются для следующих типов данных:

Оператор | <переменная> | <выражение>
++ | число, дата | -
-- | число, дата | -
+= | число, дата | число
+= | строка | строка
+= | время | время
+= | данные | данные
-= | число, дата | число
-= | время | время
*= | число | число
/= | число | число
\= | число | число
?= | <любой> | <любой>
~= | <любой> | <любой>
!= | <любой> | <любой>

Примеры:

c = "Таможенная "

с += "декларация" // c = "Таможенная декларация"

н = ОБД("62")

н /= 1000 // н = ОБД("62") / 1000

и++ // и = и + 1

Замечание 1

Изменяемая переменная должна быть определена выше путем присвоения значения или объявлена как общая. Иначе программа выведет сообщение об ошибке

Замечание 2

Арифметические операторы не приводят к рекурсивному вызову функции при изменении ее результата.

Пример:

ФУНКЦИЯ СТРОКА: Период(ЛОГИКА: УказыватьГод)

Период = МЕСП(МЕС)

ЕСЛИ УказыватьГод ТО

Период += " " + СТР(ГОД) // <-- добавляем к результату текущий год

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Оператор ?=

Перед символом равенства может стоять ? (вопрoсительный знак), в этом случае операция присвоения будет выполнена только в том случае, если переменная содержит пустое значение (для строки — пустую строку, для числа — 0 и т.д.).

Примеры

а ?= 10 // переменной а присваивается значение 10, если ранее ничего не было присвоено

Оператор ~=

Перед символом равенства может стоять ~ (тильда), операция присвоения будет выполнена только в том случае, если выражение справа не пусто.

Примеры

а[1] ~= журнал.название // элементу массива будет присвоено значение, если поле название не пусто

Оператор !=

Перед символом равенства может стоять ! (восклицательный знак), в этом случае не будет выдаваться предупреждение, о том, что переменная не используется, если это так.

Примеры

а = 10 // если далее переменная а не будет использоваться, будет выдано предупреждение

а != 10 // предупреждение выдаваться не будет


Комментарии

Для того чтобы сделать более понятными формулы расчетов можно добавлять комментарии в расчетную часть бланка, типовой операции или функции. Комментарием является любой текст, заключенный в фигурных скобках { } или парных символах /* */. Текст внутри них игнорируется транслятором.

Внутри комментария нельзя использовать символы } и */, иначе транслятор посчитает их за окончание комментария.

Возможно также использование однострочных комментариев, если написать //. Транслятор будет игнорировать остальную часть строки.

Примеры:

{ Это комментарий - произвольный текст }

/* Это тоже комментарий */

// И это тоже комментарий


Директивы

В программе предусмотрены директивы условной компиляции. Они позволяют использовать один и тот же код под разные версии платформы.

Директивы могут указываться только в коде алгоритма. Они не действуют в визуальной части диалогов и типовых операций, в графах ввода и вывода бланков. Директивы не действуют за пределами функций внутри библиотек функций, например, при описании общих и глобальных переменных и массивов. Директивы не могут использоваться в формулах определений, колонтитулов, внутри формул обрабатываемых функциями ВЫРАЖЕНИЕ, ВЫРАЖЕНИЕ_СТР и т.п.

Предусмотрены следующие директивы:

{$ifdef ...} — компилировать следующий фрагмент кода, если выполнено условие.

{$ifndef ... } — компилировать следующий фрагмент кода, если не выполнено условие.

{$else} — компилировать альтернативный фрагмент кода.

{$endif} — конец блока условной компиляции.

В качестве условий в данный момент допускается только указание версии платформы.

Примеры:

{$ifdef 2}
// Здесь располагается код, который должен компилироваться для 2-ой версии платформы
{$else}
// Здесь располагается код, который будет компилироваться в противном случае
{$endif}


Библиотеки

Библиoтеки функций

Библиотеки функций представляют собой текстовые файлы, которые содержат описания библиотечных функций, общих переменных и массивов, библиотечных методов объектов и диалогов. В одной билиотеке может быть неограниченно кол-во описаний. Вы можете иметь и использовать неограниченное количество библиотек.

Для вызова библиотечной функции, метода или диалога из бланка или типовой операции, библиотеку, содержащую эту функцию, необходимо предварительно подключить. Внутри каждой библиотеки может содержаться любое количество функций, методов или диалогов. Функции и методы библиотеки могут в свою очередь вызывать другие функции другой или этой же библиотеки. Бланк или типовая операция могут использовать несколько библиотек. Главное, чтобы в этих библиотеках не было функций с повторяющимися именами.

Для редактирования библиотек выберите пункт меню «Разработка | Библиотеки функций». Появится редактор формул. Для переходу к редактированию билиотеки выберите соответствующую закладку. Если среди закладок нет требуемой библиотеки, зайдите в пункт меню «Файлы | Открыть» и, найдя нужную билиотеку, отметьте ее, поставив слева галочку [image].

Помимо собственно библиотек, описания могут располагаться и внутри алгоритма отчета или расчетной части бланка.

См. также
Ключевое слово ФУНКЦИЯ
Ключевое слово КОНЕЦ_ФУНКЦИИ
Ключевое слово ДИАЛОГ
Ключевое слово КОНЕЦ_ДИАЛОГА
Ключевое слово ПЕРЕМ
Ключевое слово КОНСТ
Ключевое слово ИСПОЛЬЗОВАТЬ


Библиотечные функции

Библиотечные функции позволяют избавиться от повторения часто встречающихся фрагментов расчетной части бланков и типовых операций. Использование функций поможет упростить сложный алгоритм расчета при помощи разложения его на несколько более простых алгоритмов.

Описания функций обычно размещаются в специальных файлах, которые называются библиотеками. Внутри каждой библиотеки может содержаться любое количество функций. Также, функции могут находиться внутри алгоритма отчета или расчетной части бланка. В этом случае они автоматически видны внутри этого алгоритма и только в нем.

Описание функции начинается ключевым словом ФУНКЦИЯ и заканчивается словом КОНЕЦ_ФУНКЦИИ. Функция может вызывать внутри себя другую функцию или метод из той же библиотеки или из другой. В том числе она может вызывать рекурсивно и саму себя. Внутри функции видны все функции и методы из этой же библиотеки.

Функция в библиотеки выглядит так:

ФУНКЦИЯ [ВНУТР] <заголовок функции>
<тело функции>
КОНЕЦ_ФУНКЦИИ

Заголовок функции состоит из:

·Ключевого слова ФУНКЦИЯ,

·Типа возвращаемого результата,

·Названия (идентификатора) функции,

·Списка передаваемых параметров.

Примеры заголовков функций:

ФУНКЦИЯ ЗначНалог

ФУНКЦИЯ ДАТА : Вчера

ФУНКЦИЯ СТРОКА : ИзмСтроку (СТРОКА : строка)

Внимание!

1. Ключевые слова ФУНКЦИЯ и КОНЕЦ_ФУНКЦИИ должны быть первыми в строке (не обязательно с первой позиции). Объясняется это тем, что библиотека функций при обновлении программы будет объединена с новыми версиями функций. При таком объединении сохраняются пользовательские функции, включая варианты с модификаторами.

2. В библиотеках, используемых этим бланком, не должно быть функций, общих переменных и массивов с одинаковыми именами.

3. Для досрочного выхода из функции может использоваться ключевое слово ВЫХОД, а для принудительного завершения всего алгоритма СТОП_ВСЕ.

Для вызова библиотечной функции из бланка, отчета или типовой операции библиотеку, содержащую эту функцию, необходимо предварительно подключить.

При указании директивы ВНУТР область видимости функции ограничивается. К ней можно будет обращаться только из других функций библиотеки, в которой она описана.

См. также
Рекурсия при вызове функций
Графа с вызовом функции


Параметры функций

Описание параметров функции следует за ее названием и заключается в круглые скобки. Функции можно не передавать ни одного параметра, тогда описание опускается. Под описанием параметра подразумевается указание его типа и способа передачи в функцию: параметр-значение и параметр-переменная.

1. Параметр-значение — передается только значение переменной, константы или выражения. Обращение к значению происходит по имени, заданному в описании параметров.

Пример 1

Для параметров-значений могут быть заданы значения по умолчанию. Для этого после параметра указывается = (равно) и константа, задающая значение по умолчанию. Если параметру-значение задали значение по умолчанию, то и всем последующим параметрам надо задавать значение по умолчанию. При вызове функции, имеющей параметры-значения со значением по умолчанию, указания этих параметров можно опускать.

2. Параметр-переменная — передаваемая переменная будет доступна внутри функции по имени, заданному в описании. Внутри функции можно как считывать её значение, так и изменять его. Указание того, что параметр или группа параметров является параметрами-переменными, производится указанием ключевого слова ПЕРЕМ перед названием типа.

Пример 2

В случае, когда необходимо передать несколько значений одного типа, они перечисляются через запятую. Группы параметров разного типа разделяются точкой с запятой. Ограничений на количество групп и параметров в группе не наложено. Отдельные параметры и группы параметров могут располагаться в описании в любом порядке. Может быть несколько групп с одинаковым типом.

Кроме стандартных типов, которые были перечислены выше, в описании могут параметров-переменных использоваться объектные типы и массивы. Чтобы понять, что параметр-переменная является массивом надо после имени переменной надо указать ! (восклицательный знак) или [ ] (квадратные скобки).

Примеры описаний параметров

См. также
Библиотечные функции
Переменные неопределенного типа


Параметры функций: Пример 1

Параметры функций. Пример 1

имя локальной переменной

ФУНКЦИЯ ЧИСЛО: СуммаНДС (ЧИСЛО: сумма; ЧИСЛО: ставка)

типы параметров

имя функции

тип результат

СуммаНДС = сумма * ставка / 100 // Указание имени СуммаНДС слева от знака равенства

// означает передачу результату функции значения

// выражения в правой части. Синонимом СуммаНДС

// является ключевое слово РЕЗУЛЬТАТ. В процессе

// обработки функции такие присвоения могут

// производиться многократно, а при использовании

// РЕЗУЛЬТАТ можно и считывать ранее присвоенные

// значения.

КОНЕЦ_ФУНКЦИИ

Обращение к этой функции будет иметь следующий вид:

// Сначала подключается библиотека

НДСнакладной = СуммаНДС (300,20) // НДСнакладной=60

СуммаСНДС = 300 + НДСнакладной


Параметры функций: Пример 2

Параметры функций. Пример 2

имя локальной переменной

ФУНКЦИЯ Скобки (ПЕРЕМ СТРОКА : Строка)

тип параметра

признак параметр-переменной

имя функции

Строка = "("+Строка+")" // изменение переменной Строка

КОНЕЦ_ФУНКЦИИ

Обращение:

// Подключение библиотеки

С = "АБВ"

Скобки (С)

СООБЩЕНИЕ(С) // Выведет результат - С="(АБВ)"


Примеры описаний параметров

Функ(СТРОКА: стр1, стр2; ЧИСЛО: число; ЛОГИКА: проверка)

— группы параметров-значений разных типов (строковый, числовой, логический).

Функ(ДАТА: д1; ПЕРЕМ ЧИСЛО: период; ДАТА: д2)

— здесь два параметра-значения (д1 и д2), и один параметр-переменная (период)

Функ(ПЕРЕМ ЧИСЛО: м [ ])

— числовой массив используется как параметр-переменная.

Функ(ПЕРЕМ ФАЙЛ: файл)

— объект используется как параметр-переменная.

Функ(ЧИСЛО: ч1 = 0, ч2 = 10)

— у параметров ч1 и ч2 указаны значения по умолчанию, будет допустим вызов Функ(3,4), Функ(3) и просто Функ.

Функ(ЧИСЛО: ч; ДАТА : д1 = ДАТА_НАЧ, д2 = ДАТА_КОН)

— у параметров д1 и д2 указаны значения по умолчанию, но параметр (ч) всё равно надо указывать.


Тип результата функций

Тип результата указывается перед названием функции и отделяется от него двоеточием. Результатом работы функции может быть простой (не объектный) тип данных.

Замечание!

Тип возвращаемого результата функции может быть опущен. При этом функция не может возвращать никакого значения. При попытке вызвать функцию с возвратом значения, будет выдано соответствующее сообщение об ошибке.

Можно указать неопределенный тип возвращаемого результата, например, так:

ФУНКЦИЯ *: Тест

// текст функции

КОНЕЦ_ФУНКЦИИ

В таком случае контроль соответствия типов отдается на усмотрение пользователя.


Подключение библиотеки

Внутри функций библиотеки доступны все другие функции, общие переменные и массивы этой библиотеки. Внутри отчета или бланка доступны все функции, общие переменные и массивы, описанные в этом бланке. А вот чтобы использовать функции библиотеки в другом алгоритме, её необходимо подключить. Для этого используется ключевое слово ИСПОЛЬЗОВАТЬ. Имя файла библиотеки (или нескольких библиотек) передается в виде строковых выражений. При подключении нескольких библиотек они перечисляются через запятую. Расширение LIB можно не указывать.

Вместо имени файла, можно указать идентификатор журнала аналитики. Это будет означать подключение библиотеки обработчиков этого журнала.

Ключевое слово ИСПОЛЬЗОВАТЬ можно указывать внутри тела функции, тогда только этой функции будут доступны функции и общие переменные из подключаемых библиотек. Если же ИСПОЛЬЗОВАТЬ указывается в самой библиотеке, тогда всем функциям этой библиотеки станут доступны функции и общие переменные из подключаемых библиотек.

Пример 1.

ИСПОЛЬЗОВАТЬ("MYLIB")

ИСПОЛЬЗОВАТЬ("Ts_Main", "Common", "Ts_Common")

После того как выполнилось ИСПОЛЬЗОВАТЬ, все функции и методы этой библиотеки становятся доступными исходному алгоритму (бланку, отчету, типовой операции, функции). Если внутри библиотек встречаются функции, общие переменные или общие массивы с одинаковым именем выдается сообщение об ошибке.

Пример 2.

Пусть в библиотеке MyLib.lib имеется функция Завтра:

ФУНКЦИЯ ДАТА: Завтра

Завтра = ДАТА_ТЕК + 1

КОНЕЦ_ФУНКЦИИ

Тогда ее можно вызвать следующим образом:

ИСПОЛЬЗОВАТЬ ("MyLib")

д = Завтра // переменная д получает завтрашнюю дату

Пример 3.

ИСПОЛЬЗОВАТЬ(накладные)

Если журнал «накладные» имеет библиотеку с обработчиками, то вместо указания имени файла этой библиотеки, можно указать идентификатор журнала.

См.также
Рекурсия при вызове функций


Библиотечные методы объектов

Методы во многом похожи на библиотечные функции. Они также располагаются в библиотеке функций. Методы отличаются от функций тем, что внутри них доступны все поля объекта, для которых они созданы, и тем, что для их вызова необходимо указывать объектную переменную, с которой они будут оперировать.

Описание метода начинается ключевым словом ФУНКЦИЯ и заканчивается словом КОНЕЦ_ФУНКЦИИ. Метод может вызывать внутри себя другой метод или функцию из той же библиотеки или из другой. В том числе он может вызывать рекурсивно сам себя. Внутри метода видны все методы и функции из этой же библиотеки.

Заголовок метода состоит из:

·Ключевого слова ФУНКЦИЯ,

·Типа объекта

·Типа возвращаемого результата,

·Названия (идентификатора) функции,

·Списка передаваемых параметров.
Пример 1
Пример 2
Пример 3

Внутри метода видны, т.е. доступны без указания имени объекта, все поля и методы объекта, чей метод был описан. В остальном метод полностью повторяет обычную библиотечную функцию.

Пример:

имя метода

ФУНКЦИЯ ЖУРНАЛ(авот) ЛОГИКА: ПроверитьАО

тип возвращаемого результата

идентификатор журнала

тип результат

ПроверитьАО = ДА

ЦИКЛ ДЛЯ (и=1, КОЛ_ДЕТАЛЕЙ)

аод = ДЕТАЛИЗАЦИЯ(и)

ЕСЛИ аод.ддата > дата ТО

СООБЩЕНИЕ("Дата документа №" + аод.дном + " " + аод.днаим

+ " позже даты авансового отчета")

ПроверитьАО = НЕТ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

КОНЕЦ_ФУНКЦИИ

На этом примере видно, что обращение к полю дата и встроенным методам КОЛ_ДЕТАЛЕЙ и ДЕТАЛИЗАЦИЯ происходит без указания имени объекта. Под ними будут пониматься поля того объекта, для которого будет вызван этот метод. Значения этих полей будут зависеть от переменной типа ЖУРНАЛ, для которой будет вызываться этот метод.

Объект типа ЖУРНАЛ авот является локальной переменной и будет уничтожен при завершении работы метода.

Пусть текст метода содержится в библиотеке Methods.lib, тогда обращение к этому методу может выглядеть следующим образом:

авот.ПЕРВАЯ // считываем в объект авот

// первую запись из журнала

ИСПОЛЬЗОВАТЬ ("METHODS") // подключение библиотеки Methods.lib

успех = авот.ПроверитьАО // Проверяем авансовый отчет

Для объектов ЖУРНАЛ можно указать программе, чтобы она выполняла метод в каких-либо ситуациях, при совершении пользователем определенных действий. Такие методы уже называются обработчиками, потому что они обрабатывают реакцию программы на какие-либо ситуации.

См.также
Обработчики
Библиотечные функции


Общие переменные

Библиотеки функций могут содержать описание общих и глобальных переменных.


Общие массивы

Библиотеки функций могут содержать описание общих и глобальных массивов.


Диалоги

Диалоги предназначены для организации интерфейса с пользователем. Они позволяют запросить у пользователя какие-либо параметры в процессе расчета алгоритма там где это необходимо и в отличие от простых функций ВОПРОС или ВВЕСТИ_ЗНАЧЕНИЕ имеют существенно больше возможностей.

Диалоги по принципу работы с ними аналогичны библиотечным функциям и методам объектов. Отличие в том, что для диалогов не указывается тип возвращаемого параметра, он всегда имеет логический тип, означающий выбрал ли пользователь кнопку <OK> или <Отмена>.

Описания диалогов, как и функций и методов, размещаются в библиотеках. Внутри каждой библиотеки может содержаться любое количество диалогов. Также, диалоги могут находиться внутри алгоритма отчета или расчетной части бланка. В этом случае они автоматически видны внутри этого алгоритма и только в нем.

Описание диалога начинается ключевым словом ДИАЛОГ и заканчивается словом КОНЕЦ_ДИАЛОГА. Между ними располагаются описатели полей ввода. Также, в дополнение, диалог может содержать алгоритм расчета. Для этого он должен начинаться с ключевого слова ВЫЧИСЛИТЬ и содержать в себе вызов функции ВВЕСТИ, которая и будет отображать диалог.

Диалог в библиотеке выглядит так:

ДИАЛОГ [ВНУТР] <заголовок диалога>
<описание формы>
КОНЕЦ_ДИАЛОГА

А если диалог содержит алгоритм расчета, то так:

ДИАЛОГ [ВНУТР] <заголовок диалога>
<описание формы>
ВЫЧИСЛИТЬ
<алгоритм расчета>
КОНЕЦ_ДИАЛОГА

Заголовок диалога состоит из:

·Ключевого слова ДИАЛОГ

·Типа объекта для диалоговых методов

·Названия (идентификатора) диалога,

·Списка передаваемых параметров.

Примеры заголовков диалогов:

ДИАЛОГ ЗапросПараметров

ДИАЛОГ Запрос(ПЕРЕМ СТРОКА : строка)

ДИАЛОГ ЖУРНАЛ(накладные) ВводДанных

Внимание!

1. Ключевое слово ДИАЛОГ должно быть первым в строке (не обязательно с первой позиции). Объясняется это тем, что при загрузке данных о диалогах библиотеки механизм чтения предельно прост, что обеспечивает скорое выполнение этого процесса. То же касается слова КОНЕЦ_ДИАЛОГА.

2. В библиотеках, используемых этим бланком, не должно быть диалогов с одинаковыми именами. Описание параметров диалога следует за его названием и заключается в круглые скобки. Функции можно не передавать ни одного параметра, тогда описание опускается. Под описанием параметра подразумевается указание его типа и способа передачи в функцию.

Диалог может содержать алгоритм, срабатывающий каждый раз, когда пользователь изменят содержимое какого-либо поля диалога. Этот алгоритм должен начинаться с ключевого слова ИЗМЕНЕНИЕ и находиться перед КОНЕЦ_ДИАЛОГА или ВЫЧИСЛИТЬ, если диалог имеет алгоритм расчета.

Диалог может содержать алгоритм, срабатывающий при нажатии пользователем кнопки <OK>. Этот алгоритм должен начинаться с ключевого слова ПРОВЕРКА и находиться перед КОНЕЦ_ДИАЛОГА или ВЫЧИСЛИТЬ, если диалог имеет алгоритм расчета.

Если диалог содержит закладки, созданные с помощью ключевого слова ЗАКЛАДКА, то его внешний вид может быть преобразован с помощью специальных функций-модификаторов:

·При помощи функции МАСТЕР можно модифицировать внешний вид диалога с закладками так, что он будет представлен в виде пошагового диалога (визарда).

·При помощи функции ДИАЛОГ_НАСТРОЙКИ можно модифицировать внешний вид диалога с закладками: они будут отображаться слева от диалога в виде дерева.

Для вызова диалога из бланка, отчета или типовой операции библиотеку, содержащую эту функцию, необходимо предварительно подключить.

При указании директивы ВНУТР область видимости диалога ограничивается. К нему можно будет обращаться только из библиотеки, в которой он описан.

См. также
Форматы ввода и вывода
Библиотечные функции
Пример взаимодействия диалогов


Модификаторы вызова

Любые правки существующих функций, входящих в стандартную поставку какой-либо конфигурации (модуля) с целью адаптации их работы под реальные задачи, после обновления программы могут потеряться. Потеря таких изменений происходит в том случае, если обновление конфигурации (модуля) содержит обновленную версию этих функций.

Модификаторы вызов используются для решения задачи внесения изменений в работу существующих функций без правки их кода. Вместо того, чтобы изменять существующий алгоритм работы функции, определяется функция с тем же именем, с теми же параметрами и результатом, с указанием модификатора:

ПЕРЕД — указанная функция будет выполняться перед исходной

ПОСЛЕ — указанная функция будет выполняться после исходной

ВМЕСТО — указанная функция (диалог, типовая операция) будет выполняться вместо исходной

Если функция имеет входные параметры, а функция-модификатор ПЕРЕД их изменит, то в исходную функцию они придут в измененном виде.

Если функция имеет параметры-переменные, а функция-модификатор ПОСЛЕ их изменит, то в вызывающий алгоритм они придут в измененном виде. Если функция возвращает результат, а функция-модификатор ПОСЛЕ его изменит, то в такой результат придет в вызывающий алгоритм.

Модификатор вызова ВМЕСТО может использоваться не только для функций, но и для диалогов и типовых операций. Если будет объявлен диалог-модификатор ВМЕСТО, то вместо исходного диалога появится его модифицированная версия, вместо исходной типовой операции будет вызвана модифицированная.

Пример:

ФУНКЦИЯ Тест

ОТЛАДКА("Исходная функция")

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ПЕРЕД Тест

ОТЛАДКА("Вызывается перед исходной")

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ПОСЛЕ Тест

ОТЛАДКА("Вызывается после исходной")

КОНЕЦ_ФУНКЦИИ

ВЫЧИСЛИТЬ

Тест

КОНЕЦ

Пример выведет последовательно три отладочных строчки:

Вызывается перед исходной
Исходная функция
Вызывается после исходной


Рекурсия при вызове функций

Функция может вызывать внутри себя другую функцию или метод из той же библиотеки или из другой. В том числе она может вызывать рекурсивно и саму себя. Не следует злоупотреблять вложенностью функций. При переполнении вложенности транслятор выдает ошибку.

Пример:

ФУНКЦИЯ ЧИСЛО : Факториал (ЧИСЛО: N)

ЕСЛИ N = 0 ТО

Факториал = 1 // 0!=1

ИНАЧЕ

Факториал = N*Факториал (N-1) // рекурсивный вызов

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

При вызове этой функции с аргументом, большим 100 приведет к ошибке переполнения стека


Объекты

Для построения более сложных расчетов и алгоритмов, в программе Инфо-Предприятие существует понятие объекта. При помощи объектов можно получать доступ к журналам, файлам, объектам автоматизации. При комплексной обработке данных структурированная идеология объектов удобна и дает выигрыш в быстродействии.

Некоторые объекты просто дублирует встроенный набор функций, например, объект БД для работы с файлами DBF и XML. Некоторые привносят совершенно новую функциональность.

Объект определяется как совокупность данных различных типов и набор действий над ними. Сам объект является переменной одного из перечисленных ниже типов, которые описываются следующими ключевыми словами. Объект идентифицируется, как и переменная, по имени.

В языке используются следующие объекты:

Ключевое слово | Объект | Описание
БД | База данных XML или DBF | предназначен для обеспечения работы с файлами двух форматов: XML и DBF (формат dBase)
ВЕБСЕРВЕР | Веб-сервер | используется в обработчике команд веб-сервера
ДИАГРАММА | Диграмма | предназначен для управления диаграммами в редакторе бланков.
ЖУРНАЛ | Журнал | предназначен для доступа к журналам аналитики
КУРСОР | Курсор | предназначен для определения выборки и навигации по ней
ОБЪЕКТ | Объект | предназначен для доступа к объекту Автоматизации (OLE Automation)
СЕКЦИЯ | Секция | предназначен для управления графическим полем типа секция
ФАЙЛ | Файл | позволяет работать с текстовым файлом из программы
ФИЛЬТР | Фильтр | позволяет устанавливать параметры фильтрации в журналах
ШРИФТ | Шрифт | предназначен для управления шрифтами в бланке
SQL | SQL | специальный объект для низкоуровневого доступа с помощью SQL-запросов

Полями объекта называются его специфические признаки. Каждое поле является переменной одного из простых типов. Обращение к полям происходит по их именам. Для обращения к полю какого-либо объекта пишется имя переменной объекта, а затем имя поля этого объекта, отделенное от имени переменной точкой. Это выглядит таким образом:

<имя объекта>.<имя поля или метода>

Например, для объекта ШРИФТ поля имеют следующие имена и типы:

имя | СТРОКА
размер | ЧИСЛО
полужирный | ЛОГИКА
наклонный | ЛОГИКА
подчеркнутый | ЛОГИКА
и т.д. |

Если переменная объектного типа ШРИФТ называется шрифт, то к полю имя этого объекта можно обращаться как шрифт.имя. Можно считывать значение полей, можно присваивать значение полям.

Помимо полей, с объектом связывается и определенный набор действий, которые можно производить с ним. Такие действия называются методами объекта. С помощью методов можно обрабатывать содержимое полей объекта, организовывать интерфейс и редактирование.

Методы объектов бывают встроенными и внешними. Например, метод РЕДАКТИРОВАТЬ объекта ЖУРНАЛ — встроенный. Можно написать собственные методы объекту, подобно библиотечным функциям.

При создании переменной в языке Инфо-Предприятия не требуется ее предварительного описания, а лишь достаточно присвоения ей значения, которое и определяет в дальнейшем тип переменной. Для объекта же такой механизм неприменим, т.к. у него нет значения — он состоит из набора значений. Поэтому объект создается при помощи специального оператора, называемого конструктором.

Самый распространенным является конструктор ЭТО. Этот конструктор создает новый объект любого типа. Синтаксис следующий:

<имя нового объекта> ЭТО <тип объекта>

Здесь параметр <тип объекта> — это одно из ключевых слов ФАЙЛ, ШРИФТ и т.п., определяющих тип объекта. Для объектов типа ЖУРНАЛ в качестве типа объекта указывается идентификатор журнала в списке журналов аналитики.

Пример:

Для создания переменной А численного типа надо написать:

А = 1 // численное значение может быть любое

Для создания переменной ф типа ФАЙЛ надо написать:

ф ЭТО ФАЙЛ // Используем универсальный конструктор ЭТО.

// Открытия конкретного файла при этом не

// происходит

или

ф = ФАЙЛ_ОТКРЫТЬ ("info.txt") // При использовании специального конструктора

// файла ФАЙЛ_ОТКРЫТЬ происходит открытие

// файла info.txt

Последняя запись тождественна следующей:

ф ЭТО ФАЙЛ

ф.ОТКРЫТЬ ("info.txt") // Используем метод ОТКРЫТЬ объекта

// "Файл", который открывает файл info.txt

Для создания переменной ф типа ЖУРНАЛ для журнала «накладные» надо написать:

ж ЭТО накладные // Создаем экземпляр объектной переменной типа ЖУРНАЛ(накладные).

Если вторично встречается конструктор какого-либо объекта, то это не вызывает ошибки, а поля объекта обнуляются.

Любой алгоритм или функция могут использовать предопределенные переменные объектного типа ЖУРНАЛ, доступные без их предварительного объявления. Они совпадают по имени с идентификаторами журналов в списке журналов аналитики.

Пример:

Если в структуре журналов аналитики создан журнал с идентификатором «накладные», то можно использовать следующую переменную:

ОТЛАДКА(накладные.ВСЕГО) // численное значение может быть любое

Это всё равно, как если бы перед началом каждого алгоритма программа бы добавила строку:

накладные ЭТО накладные // Создаем экземпляр объектной переменной типа ЖУРНАЛ(накладные).

Присваивание объектов. Объекты можно присваивать друг другу, исключения составляют объекты База данных XML или DBF, Файл. Объекты типа Журнал можно присваивать, если они относятся к одному и тому же журналу. Объекты типа Фильтр можно присваивать, если они являются фильтрами одного и того же журнала. При присваивании копируются все поля объекта и другие атрибуты.

Например, если существует объект типа журнал Ж1, то запись

Ж2 = Ж1

создаст новый объект Ж2, все поля которого будут равны полям Ж1. Если объект Ж2 уже существовал, то его поля изменяются и становятся равными полям Ж1.

Операция присваивания и оператор ЭТО работают одинаково, только ЭТО разрешает присваивать объекты разных типов, не выдавая сообщения об ошибки несовместимости типов.

Сравнение объектов. Объекты можно сравнивать на равенство и неравенство. При этом сравниваются значения всех их полей. Для баз данных сравниваются только имена XML или DBF файлов, а для объекта Файл сравниваются имена текстовых файлов. Сравнивать можно только объекты одного типа. Объекты типа Журнал можно сравнивать, если они определяют один и тот же журнал. Объекты типа Фильтр можно сравнивать, если они являются фильтрами одного и того же журнала или оба являются фильтром бухгалтерского журнала операций.

Пример:

ЕСЛИ Ж1 <> Ж2 ТО // Если записи журнала различаются,

Ж1 = Ж2 // то выполняем присвоение

КОНЕЦ_ЕСЛИ


Объект "База данных"

Объект БД (Файл DBF)

описание поля методы конструкторы Объекты

 Вернуться к началу раздела

Описание:

Объект БД (синоним ХМЛ) предназначен для обеспечения работы с файлами двух форматов: XML и DBF (формат dBase). Формат файла при его создании определяется по расширению файла, а при открытии существующего — автоматически. В отличие от встроенных механизмов импорта, с помощью объекта БД можно решать задачи импорта и экспорта данных любой сложности.

Поля:

Данный объект не имеет полей.

Методы:

ВСЕГО | возвращает количество записей в XML или DBF файле
ЗАКРЫТЬ | закрывает открытый XML или DBF файл
ЗАМЕНИТЬ | заменяет в XML или DBF файле текущую запись
ЗАП_ПОЛЕ | добавляет поле в XML или DBF файл или изменяет значение поля
ЗАПИСАТЬ | записывае текущую запись в XML или DBF файл
ИЗМЕНЕНА | позволяет узнать, были ли внесены изменения в XML или DBF файл
СОЗДАТЬ | создает новый XML или DBF файл и связывает с ним объект
ОТКРЫТЬ | открывает XML или DBF файл и связывает с ним объект
ПЕРЕЙТИ | устаревший метод, перемещает указатель на запись с указанным номером
ПОЛЕ | возвращает значение указанного поля в текущей записи
СОРТИРОВКА | сортирует XML или DBF файл
СЧИТАТЬ | считывает указанную запись из XML или DBF файла
ТЕКУЩАЯ | возвращает номер текущей записи
УДАЛИТЬ | удаляет запись из XML или DBF файла
ФАЙЛ | возвращает имя XML или DBF файла

Конструкторы:

Для создания объекта БД можно использовать следующие конструкторы:

1. <имя> ЭТО БД

2. <имя> = БД_ОТКРЫТЬ (<файл> [, <кодировка>]) или

<имя> = ХМЛ_ОТКРЫТЬ (<файл> )

3. <имя> = БД_СОЗДАТЬ (<файл> [, <кодировка>]) или

<имя> = ХМЛ_СОЗДАТЬ (<файл> )

где:

<имя>
идентификатор, определяющий имя создаваемого объекта.

<файл>
строковое выражение, задающее имя XML или DBF-файла.

<кодировка>
параметр логического типа, определяющий необходимость перекодировки символов (по умолчанию ДА — кодовая страница 866). Применяется только для файлов DBF.

См. также
Функции для работы с XML и DBF файлами


ВСЕГО

Метод ВСЕГО

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ВСЕГО

Результат — число.

Описание:

Метод ВСЕГО возвращает количество записей в файле.

Пример:

база = БД_СОЗДАТЬ ("Test.DBF")

СООБЩЕНИЕ("Всего " + СТР(база.ВСЕГО) + " записей")

// Всегда выведет на экран, что 0 записей, так как база только что создана

См.также
Встроенную функцию БД_ВСЕГО


ЗАКРЫТЬ

Метод ЗАКРЫТЬ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ЗАКРЫТЬ

Метод не возвращает результат.

Описание:

Метод ЗАКРЫТЬ закрывает открытый XML или DBF файл. Последняя измененная, но не сохраненная, запись будет добавлена к закрываемой базе данных. При завершении расчета, открытый в нем файл закрывается автоматически.

Пример:

база.ЗАКРЫТЬ

См.также
Встроенную функцию БД_ЗАКРЫТЬ


ЗАМЕНИТЬ

Метод ЗАМЕНИТЬ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ЗАМЕНИТЬ

Метод не возвращает результат.

Описание:

Метод ЗАМЕНИТЬ заменяет в XML или DBF файле текущую запись.

Пример:

база = БД_ОТКРЫТЬ ("Test.DBF")

база.ПЕРЕЙТИ(1)

база.СЧИТАТЬ // Считываем и изменяем значение поля записи

база.ЗАП_ПОЛЕ("Name","Новое название организации")

база.ЗАМЕНИТЬ // Заменяем считанную перед этим запись

база.ЗАКРЫТЬ

См.также
Встроенную функцию БД_ЗАМЕНИТЬ


ЗАП_ПОЛЕ

Метод ЗАП_ПОЛЕ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ЗАП_ПОЛЕ(<поле>, <значение>[,<длина>[,<точность>]])

<поле>
выражение строкового типа — имя поля в записи до 10 букв латинского алфавита или цифр;

<значение>
выражение соответствующего типа. Если это первое обращение к полю во вновь создаваемой базе данных, то тип поля будет определяться типом этого выражения;

<длина>
длина поля. Имеет значение только для полей типа строка и число при первом обращении к полю.

<точность>
количество десятичных знаков после запятой. Имеет смысл только для полей числового типа.

Метод не возвращает результат.

Описание:

Метод ЗАП_ПОЛЕ добавляет поле в XML и DBF файл или изменяет значение уже существующего поля. Если файл был только что создан, то ЗАП_ПОЛЕ добавляет в него новое поле с указанным именем. Имя поля определяется строкой. Тип добавляемого поля определяется из записываемого значения. Поддерживаются следующие типы данных:

·Строковый тип — тогда дополнительный параметр <длина> определяет длину строкового поля, если длина не указана, то она полагается равной длине строки <значение>

·Числовой тип — в этом случае параметры <длина> и <точность> определяют длину числа и его точность. Если параметр <длина> не указан, то он полагается равным 15.

·Тип дата — без параметров

·Логический тип — без параметров

После закрытия только что созданного файла значения полей записываются и после этого их тип и длину изменять нельзя. В дальнейшем ЗАП_ПОЛЕ работает только для изменения значений уже существующих полей. Дополнительные параметры игнорируются. После внесения изменений в поля текущей записи следует вызывать методы ЗАПИСАТЬ или ЗАМЕНИТЬ — только после этого действительно происходит изменения в базе данных. Значение полей с указанным именем изменяются в текущей записи.

Пример:

база.ЗАП_ПОЛЕ("Name","Новое название организации")

база.ЗАП_ПОЛЕ(0,10,2)

См.также
Встроенную функцию БД_ПОЛЕ


ЗАПИСАТЬ

Метод ЗАПИСАТЬ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ЗАПИСАТЬ

Метод не возвращает результат.

Описание:

Метод ЗАПИСАТЬ добавляет текущую запись в конец XML или DBF файла.

После выполнения функции содержимое полей текущей записи не изменяется.

Пример:

база = БД_ОТКРЫТЬ ("Test.DBF")

база.ЗАП_ПОЛЕ("Name","Новое название организации")

база.ЗАПИСАТЬ // Записываем считанную перед этим запись

база.ЗАКРЫТЬ

См.также
Встроенную функцию БД_ЗАПИСАТЬ


ИЗМЕНЕНА

Метод ИЗМЕНЕНА

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ИЗМЕНЕНА

Результат — логика.

Описание:

Метод ИЗМЕНЕНА проверяет, были ли внесены изменения в XML или DBF файл с момента его открытия (в том числе с помощью функции БД_РЕДАКТОР).

Пример:

ЕСЛИ база.ИЗМЕНЕНА ТО

СООБЩЕНИЕ("Были изменения")

КОНЕЦ_ЕСЛИ


СОЗДАТЬ

Метод СОЗДАТЬ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

СОЗДАТЬ(<имя файла>)

<имя файла>
имя нового создаваемого XML или DBF файла. Формат файла (XML или DBF) определяется по его расширению.

Метод не возвращает результат.

Описание:

Метод СОЗДАТЬ создает новый XML или DBF файл и связывает с ним объект. Если файл с указанным именем уже существует, то он заменяется.

Пример:

база.СОЗДАТЬ

См. также
Встроенную функцию БД_СОЗДАТЬ


ОТКРЫТЬ

Метод ОТКРЫТЬ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ОТКРЫТЬ( <файл> [, <кодировка>] )

<имя файла>
имя открываемого XML или DBF файла.

<кодировка>
параметр логического типа, определяющий необходимость перекодировки символов ( по умолчанию ДА — кодовая страница 866 ).

Метод не возвращает результат.

Описание:

Метод ОТКРЫТЬ связывает объект с указанным DBF-файлом, открывая его для чтения и записи. Формат файла (XML или DBF) определяется программой автоматически. При открытии существующего файла автоматически считывается первая запись.

Пример:

база.ОТКРЫТЬ

См. также
Встроенную функцию БД_ОТКРЫТЬ


ПЕРЕЙТИ

Метод ПЕРЕЙТИ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

Устаревший метод ПЕРЕЙТИ оставлен для совместимости с существующими разработками. Следующие два фрагмента кода являются идентичными:

ПЕРЕЙТИ (<номер записи>)
СЧИТАТЬ

и

СЧИТАТЬ (<номер записи>)

См. также
Встроенную функцию БД_ПЕРЕЙТИ


ПОЛЕ

Метод ПОЛЕ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ПОЛЕ(<имя поля> [,<тип значения>] )

где

<имя поля>
имя поля в записи (до 10 букв латинского алфавита или цифр для файлов DBF, для XML не ограничено).

<тип значения>
необязательный параметр, определяющий тип значения; рекомендуется его указывать для контроля типов на этапе компиляции алгоритма.

Тип результата зависит от типа поля.

Пример:

СООБЩЕНИЕ(база.ПОЛЕ("Name"))

См. также
Встроенную функцию БД_ПОЛЕ


СОРТИРОВКА

Метод СОРТИРОВКА

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

СОРТИРОВКА(<поле 1>[, ...] )

<поле n>
название n-го поля в базе данных.

Метод не возвращает результат.

Описание:

Метод СОРТИРОВКА позволяет отсортировать XML или DBF файл по одному или нескольким полям. Имена полей, по которым будет производиться сортировка, приводятся в скобках через запятую в виде строковых выражений.

Пример:

база.СОРТИРОВКА("Name")

См. также
Встроенную функцию БД_СОРТ


СЧИТАТЬ

Метод СЧИТАТЬ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

СЧИТАТЬ [ (<номер записи>) ]

где

<номер записи>
номер записи, которую надо считать;

Метод не возвращает результат.

Описание:

Метод СЧИТАТЬ считывает запись с указанным номером из ХМЛ или DBF файла. При открытии существующего файла, первая запись считывается автоматически.

Пример:

база.СЧИТАТЬ (10)

См. также
Встроенную функцию БД_СЧИТАТЬ


ТЕКУЩАЯ

Метод ТЕКУЩАЯ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ТЕКУЩАЯ

Результат — число.

Описание:

Метод ТЕКУЩАЯ возвращает номер текущей записи.

Пример:

СООБЩЕНИЕ("Текущая запись" + СТР(база.ТЕКУЩАЯ))

См. также
Встроенную функцию БД_ТЕКУЩАЯ


УДАЛИТЬ

Метод УДАЛИТЬ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

УДАЛИТЬ(<номер записи>)

<номер записи>
номер удаляемой записи

Метод не возвращает результат.

Описание:

Метод УДАЛИТЬ удаляет запись из XML или DBF файла.

Пример:

база.УДАЛИТЬ(1)


ФАЙЛ

Метод ФАЙЛ

Объект "База данных"

 Вернуться к началу раздела

Синтаксис:

ФАЙЛ

Результат — строка.

Описание:

Метод ФАЙЛ возвращает имя XML или DBF файла, с которым связан объект база данных. Если файл не открыт, то этот метод возвращает пустую строку.

Пример:

СООБЩЕНИЕ(база.ФАЙЛ)


Объект "Веб-сервер"

описание поля методы Объекты

Описание:

Объект ВЕБСЕРВЕР используется в обработчике команд веб-сервера. При вызове этого обработчика поля объекта содержат информацию о запросе: IP-адрес, имя хоста, текст запроса и т.д. В процессе работы обработчика заполняется информация об ответе: текст ответа или имя файла и др.

Поля.

Поля | Значение | Тип
запрос_айпи | Возвращает IP-адрес компьютера, который подключается к программе | СТРОКА
запрос_хост | Возвращает имя компьютера, который подключается к программе | СТРОКА
запрос_документ | Запрос, посылаемый с компьютера | СТРОКА
запрос_команда | Команда запроса: "GET", "POST", "HEAD" | СТРОКА
запрос_версия | Используемая версия протокола | СТРОКА
запрос_пользователь | Имя пользователя, если программа запросила авторизацию | СТРОКА
запрос_пароль | Пароль пользователя, если программа запросила авторизацию | СТРОКА
запрос_заголовки | Заголовки запроса в виде строки (см.также ЗАПРОС_ЗАГОЛОВКИ). Поле доступно только на чтение. | СТРОКА
запрос_параметры | Параметры запроса в виде строки (см.также ЗАПРОС_ПАРАМЕТРЫ). Поле доступно только на чтение. | СТРОКА
ответ_авторизация | При возврате означает, что странице требуется авторизация. Содержит строку запроса, которая появляется в диалоге авторизации на компьютере пользователя. | СТРОКА
ответ_текст | Возвращаемый текст (при возврате текста) | СТРОКА
ответ_файл | Возвращаемый файл (при возврате файла) | СТРОКА
ответ_тип | Тип возвращаемого результата, кодировка и др. | СТРОКА
ответ_код | Возвращаемый код HTTP запроса (по умолчанию код 200) | ЧИСЛО
ответ_заголовки | Дополнительные заголовки запроса в виде строки (основные заголовки, такие как Content-Type, Content-Length, WWW-Authenticate, Server передаются автоматически) | СТРОКА

Больше не поддерживаются:

Поля | Значение | Тип
запрос_параметры_бр | Параметры запроса в виде строки без предварительного разбора (необходимы при обработке бинарных данных). Вместо этого поля используйте метод ПОЛУЧИТЬ_ФАЙЛ. | СТРОКА

При возврате может использоваться либо имя файла (указываемый в поле ответ_файл), либо HTML-текст (указываемый в поле ответ_текст).

Методы:

ЗАПРОС_ЗАГОЛОВКИ | По имени заголовка возвращает его значение
ЗАПРОС_ПАРАМЕТРЫ | По имени параметра возвращает его значение
ПОЛУЧИТЬ_ФАЙЛ | Используется для получения файлов

Объект ВЕБСЕРВЕР используется исключительно в обработчике команд веб-сервера. В каком-либо другом месте его использовать не получится.

Пример1:

Следующий пример выводит информацию о запросе и возвращает простую текстовую строку.

ФУНКЦИЯ ВЕБСЕРВЕР ВебСервер

// Выводим входящую информацию

ОТЛАДКА(запрос_айпи)

ОТЛАДКА(запрос_хост)

ОТЛАДКА(запрос_документ)

ОТЛАДКА(запрос_команда)

ОТЛАДКА(запрос_версия)

ОТЛАДКА(запрос_пользователь)

ОТЛАДКА(запрос_пароль)

ОТЛАДКА(запрос_заголовки)

ОТЛАДКА(запрос_параметры)

// Возвращаем строку

ответ_текст = "Веб-сервер Инфо-Предприятия"

КОНЕЦ_ФУНКЦИИ

Пример2:

Этот пример выводит список клиентов в виде таблицы. Для доступа к информации будет запрошено имя пользователя (test) и пароль (test).

ФУНКЦИЯ ВЕБСЕРВЕР ВебСервер

// Доступ к информации по паролю

ЕСЛИ запрос_пароль <> "test" ИЛИ запрос_пользователь <> "test" ТО

ответ_текст = "<b>НЕВЕРНЫЙ ПОЛЬЗОВАТЕЛЬ ИЛИ ПАРОЛЬ!</b>";

ответ_авторизация = "Для доступа к информации введите пароль"

ВЫХОД

КОНЕЦ_ЕСЛИ

// Выдаем таблицу - список клиентов

ответ_текст = "<table>"

ответ_текст += "<tr>"

ответ_текст += "<td>" + клиенты.НАЗВАНИЕ(код) + "</td>"

ответ_текст += "<td>" + клиенты.НАЗВАНИЕ(название) + "</td>"

ответ_текст += "</tr>"

ЦИКЛ ПО ЖУРНАЛУ клиенты кл (ДА)

ответ_текст += "<tr>"

ответ_текст += "<td>" + кл.код + "</td>"

ответ_текст += "<td>" + кл.название + "</td>"

ответ_текст += "</tr>"

КОНЕЦ_ЦИКЛА

ответ_текст += "</table>"

КОНЕЦ_ФУНКЦИИ

Пример 3:

Этот пример создает форму ввода, с помощью которой можно добавлять клиентов в базу.


ЗАПРОС_ПАРАМЕТРЫ

Метод ЗАПРОС_ПАРАМЕТРЫ

Объект "Вер-сервер"

 Вернуться к началу раздела

Синтаксис:

ЗАПРОС_ПАРАМЕТРЫ(<имя параметра>)

<имя параметра>
строковое имя параметра.

Возвращает строку — значение параметра.

Описание:

Метод ЗАПРОС_ПАРАМЕТРЫ позволяет получать параметры запроса в удобном для работы виде (поле запрос_параметры содержит все параметры в виде строки, что неудобно при написании алгоритмов).

Пример:

Следующий пример создает форму ввода, с помощью которой можно добавлять клиентов в базу.

ФУНКЦИЯ ВЕБСЕРВЕР ВебСервер

// Если были занесены код и название, считаем что была нажата кнопка "Добавить клиента"

ЕСЛИ ЗАПРОС_ПАРАМЕТРЫ("kod") <> "" И ЗАПРОС_ПАРАМЕТРЫ("name") <> "" ТО

клиенты.код = ЗАПРОС_ПАРАМЕТРЫ("kod")

клиенты.название = ЗАПРОС_ПАРАМЕТРЫ("name")

ЕСЛИ НЕ клиенты.ДОБАВИТЬ(НЕТ) ТО

добавлен = "Ошибка добавления клиента"

ИНАЧЕ

добавлен = "Клиент " + клиенты.название + " (" + клиенты.код + ") был добавлен в базу<br/>"

КОНЕЦ_ЕСЛИ

ИНАЧЕ

добавлен = ""

КОНЕЦ_ЕСЛИ

// Выдаем форму ввода

ответ_текст =

"<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1251"">" +

"<title>Управление клиентами</title></head><body>" + добавлен + "<form method=""POST"">" +

"<input type=""text"" name=""kod"" value=""" + ЗАПРОС_ПАРАМЕТРЫ("kod") + """> - код клиента<br/>" +

"<input type=""text"" name=""name"" value=""" + ЗАПРОС_ПАРАМЕТРЫ("name") + """> - название клиента<br/>" +

"<input type=""submit"" value=""Добавить клиента""></form></body></html>"

КОНЕЦ_ФУНКЦИИ


ЗАПРОС_ЗАГОЛОВКИ

Метод ЗАПРОС_ЗАГОЛОВКИ

Объект "Вер-сервер"

 Вернуться к началу раздела

Синтаксис:

ЗАПРОС_ЗАГОЛОВКИ(<имя заголовка>)

<имя заголовка>
строковое имя заголовка.

Возвращает строку — значение заголовка по его имени.

Описание:

Метод ЗАПРОС_ЗАГОЛОВКИ позволяет получать заголовки запроса в удобном для работы виде (поле запрос_заголовки содержит все параметры в виде строки, что неудобно при написании алгоритмов).

Пример:

Следующий пример создает форму ввода, с помощью которой можно добавлять клиентов в базу.

ФУНКЦИЯ ВЕБСЕРВЕР ВебСервер

// Делаем обработку загрузки бинарных данных

ЕСЛИ ответ_команда = "POST" И ЗАПРОС_ЗАГОЛОВКИ("Content-Type") = "multipart/form-data*" ТО

добавлен = ""

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ


ПОЛУЧИТЬ_ФАЙЛ

Метод ПОЛУЧИТЬ_ФАЙЛ

Объект "Вер-сервер"

 Вернуться к началу раздела

Синтаксис:

ПОЛУЧИТЬ_ФАЙЛ(<путь к файлу>, <название параметра>, <тип данных>[, <текст ошибки>])

<путь к файлу>
строковая переменная, содержащая имя файла, возможно, без расширения; при возврате — реальное имя файла, в который были сохранены данные.

<название параметра>
строковая переменная, содержащая название параметра; при возврате — параметр Content-Disposition.

<тип данных>
строковая переменная, содержащая тип данных; при возврате — параметр Content-Type.

<текст ошибки>
необязательный параметр, строковая переменная, куда помещается текст ошибки в случае, если файл не был сохранен.

Возвращает логику — удалось сохранить файл или нет.

Описание:

Метод ПОЛУЧИТЬ_ФАЙЛ используется для получения данных методом POST. Применяется, когда передача файла осуществляется составным запросом с помощью multipart/form-data согласно стандарта RFC7578.

Если файл сохраняется, функция возвращает ДА. Параметр <путь к файлу> содержит имя файла, в котоый будут сохранены данные. Если имя файла передано без расширения, то к имени будет добавлено расширение из имени файла в параметрах запроса. Функция в этом случае вернет имя результирующего файла в параметре <путь к файлу>. Файл может располагаться как на диске компьютера, так и в базе данных.

Если передан параметр <текст ошибки>, будет возвращен номер и текст ошибки в случае неудачи. Таблица ниже содержит возможные варианты ошибок:

Сообщение об ошибке

1. Ошибка разбора multipart/form-data

2. Файл имеет нулевую длину

3. Не удалось распознать имя параметра

4. Другое имя параметра: ....

5. Не удалось распознать тип передаваемых данных

6. Другой тип передаваемых данных: ...

Пример:

ФУНКЦИЯ ВЕБСЕРВЕР ЛОГИКА: ПолучитьИСоохранитьФайл(СТРОКА: имя_параметра, тип_данных; ПЕРЕМ СТРОКА: сохранить_в)

// Сохраняем файл по заданному пути, имени параметра и типу

РЕЗУЛЬТАТ = ПОЛУЧИТЬ_ФАЙЛ(сохранить_в, имя_параметра, тип_данных, ошибка)

ЕСЛИ НЕ РЕЗУЛЬТАТ ТО

ЕСЛИ ошибка = "2.*" ТО // Файл имеет нулевую длину

сохранить_в = ""

ВЫХОД(ДА)

КОНЕЦ_ЕСЛИ

ЕСЛИ ошибка = "4.*" ТО // Другое имя параметра (не найден параметр)

ВЫХОД(ДА)

КОНЕЦ_ЕСЛИ

ответ_текст = ошибка

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ


Объект "Диаграмма"

описание поля методы конструкторы Объекты

Описание:

Объект ДИАГРАММА предназначен для управления диаграммами в редакторе бланков.

Поле | Значение | Тип
название | Заголовок, который отображается над диаграммой | СТРОКА
левый_заголовок | Подпись слева от графика (Ось Y) | СТРОКА
правый_заголовок | Подпись справа от графика (Дополнительная ось Y) | СТРОКА
нижний_заголовок | Подпись внизу графика (Ось X) | СТРОКА
десятичные_знаки | Кол-во десятичных знаков при оторажении числовых значений на оси Y (и дополнительной оси Y) | ЧИСЛО

Поля этого объекта доступны только как на чтение, так и на запись. Изначально они определяются в диалоге редактирования объекта, но могут быть изменены в процессе расчета.

Методы:

СБРОС_ЗНАЧЕНИЙ | сбрасывает все добавленные значения
ДОБАВИТЬ_ЗНАЧЕНИЕ | последовательно добавляет значения в серию (график)
ЛЕГЕНДА | последовательно добавляет текст в условные обозначения (легенду)
ПОДПИСЬ | последовательно добавляет подписи к значениям

Конструкторы:

Создается по графе типа диаграмма

Примеры:

{ Определяем поле типа диаграмма, указываем там имя переменной "диаграмма" }

ЦИКЛ ДЛЯ (и=1,12)

диаграмма.ДОБАВИТЬ_ЗНАЧЕНИЕ(ОБД("51", ДАТА_НАЧ + и*10, ДАТА_НАЧ + (и+1)*10),0)

КОНЕЦ_ЦИКЛА

ЦИКЛ ДЛЯ (и=1,12)

диаграмма.ДОБАВИТЬ_ЗНАЧЕНИЕ(ОБК("51", ДАТА_НАЧ + и*10, ДАТА_НАЧ + (и+1)*10),1)

КОНЕЦ_ЦИКЛА


ДОБАВИТЬ_ЗНАЧЕНИЕ

Метод ДОБАВИТЬ_ЗНАЧЕНИЕ

Объект "Диаграмма"

 Вернуться к началу раздела

Синтаксис:

ДОБАВИТЬ_ЗНАЧЕНИЕ(<значение>[:<подпись>] [,<серия>[:<легенда>]])

<значение>
значение, добавляемое в серию (график).

<подпись>
подпись, которую указывают при добавлении значения.

<серия>
номер, добавляемого значения.

<легенда>
текст легенды для серии.

Метод не возвращает результат.

Описание:

Метод ДОБАВИТЬ_ЗНАЧЕНИЕ последовательно добавляет значения в серию (график) под номером <серия>. Если параметр <серия> не указан, то добавляется в серию под номером 0. При добавлении значения можно указать подпись в строковом параметре <подпись>, а когда указан и параметр <серия>, то можно задать текст легенды для нее.

Пример1:

// Простой пример

ЦИКЛ ДЛЯ (и=1,10)

диаграмма.ДОБАВИТЬ_ЗНАЧЕНИЕ(и*и)

КОНЕЦ_ЦИКЛА

Пример2:

// Задание подписей и легенды

ЦИКЛ ДЛЯ (и=1,10)

диаграмма.ДОБАВИТЬ_ЗНАЧЕНИЕ(и*и:СТР(и),0:"Парабола")

КОНЕЦ_ЦИКЛА


ЛЕГЕНДА

Метод ЛЕГЕНДА

Объект "Диаграмма"

 Вернуться к началу раздела

Синтаксис:

ЛЕГЕНДА(<строка>)

<строка>
текст для легенды диаграммы.

Метод не возвращает результат.

Описание:

Метод ЛЕГЕНДА последовательно добавляет текст в условные обозначения. То же самое можно делать и методом ДОБАВИТЬ_ЗНАЧЕНИЕ.

Пример:

диаграмма.ЛЕГЕНДА("Кредитовый оборот")

Внимание!

Должен быть включен параметр Легенда на закладке параметры диалога диаграммы для отображения условных обозначений.

См.также
ПОДПИСЬ


ПОДПИСЬ

Метод ПОДПИСЬ

Объект "Диаграмма"

 Вернуться к началу раздела

Синтаксис:

ПОДПИСЬ(<строка>)

<строка>
текст для подписи в диаграмме.

Метод не возвращает результат.

Описание:

Метод ПОДПИСЬ последовательно добавляет текст в качестве подписи на горизонтальной оси, а в пирожковой диаграмме — на сегментах. То же самое можно делать и методом ДОБАВИТЬ_ЗНАЧЕНИЕ.

Пример:

{ Оборот расчетного счета по декадам (в % от максимума) }

год = ГОД(ДАТА_НАЧ)

ЦИКЛ ДЛЯ (и = МЕС(ДАТА_НАЧ),МЕС(ДАТА_НАЧ) + 2)

значение = ОБД("51",ДАТА(1,и,год),ДАТА(1,и + 1,год))

диаграмма.ДОБАВИТЬ_ЗНАЧЕНИЕ(значение,0)

диаграмма.ПОДПИСЬ(МЕСП(и))

КОНЕЦ_ЦИКЛА

диаграмма.ЛЕГЕНДА("51")

См.также
ЛЕГЕНДА


СБРОС_ЗНАЧЕНИЙ

Метод СБРОС_ЗНАЧЕНИЙ

Объект "Диаграмма"

 Вернуться к началу раздела

Синтаксис:

СБРОС_ЗНАЧЕНИЙ

Метод не возвращает результат.

Описание:

Метод СБРОС_ЗНАЧЕНИЙ сбрасывает все значения, добавленные функцией ДОБАВИТЬ_ЗНАЧЕНИЕ. Рекомендуется вызывать перед началом работы с объектом, в противном случае, значения будут передаваться из расчета в расчет и накапливаться.

Пример:

диаграмма.СБРОС_ЗНАЧЕНИЙ


Объект "Журнал"

описание поля методы конструкторы Объекты

Описание:

Объект ЖУРНАЛ предназначен для доступа к журналам аналитики.

Поля:

Идентификаторы полей объекта ЖУРНАЛ указываются в диалоге настройки журнала. Поля объекта имеют определеные правила загрузки и сохранения. У журнала могут быть служебные поля-свойства (они не описываются в диалоге настройки журнала).

Поле | Значение | Только чтение | Тип
выкл | Выключена или нет операция | Нет | ЛОГИКА
изменил | Имя (логин) пользователя, который изменил операцию. | Да | СТРОКА
недоступна | Операция недоступна для изменения или просмотра пользователями с более низкими правами (если включена данная функция в параметрах базы). | Да | ЛОГИКА
пользователь | Имя (логин) пользователя, который создал операцию. | Да | СТРОКА
проведено | Истинно, если запись проведена в бухгалтерии, и нет, если не проведена (см. замечание). Может быть только у журнала, имеющего связь с бухгалтерией. Может использоваться только на чтение. | Да | ЛОГИКА
фирма | Уникальный идентификатор фирмы если журнал не является общим на все фирмы. | Нет | ЧИСЛО
флаг_1 флаг_2 флаг_3 флаг_4 | Поля логического типа. Имеются в каждом журнале. Их можно использовать не ограниченно по своему усмотрению для своих целей. | Нет | ЛОГИКА
флаги | Специальное числовое поле, объединяющее в себе другие поля: цвет_текста, цвет_фона, флаг_**. Может использоваться в выражениях подсветки. |  |
цвет_текста | Позволяет получить или установить цвет текста | Нет | ЧИСЛО
цвет_фона | Позволяет получить или установить цвет фона | Нет | ЧИСЛО

Замечание!

Свойства проведено, недоступна могут, как и другие поля, участвовать в ЦИКЛе ПО ЖУРНАЛУ, но, так как они фактически являются не полями, а выражениями, их нельзя сравнивать с другими полями или выражениями внутри условия цикла.

Следующие поля будут доступны, если включена опция Вести учет, когда создана/изменена операция в параметрах базы данных:

Поле | Значение | Тип
дата_создания | Дата, когда была создана операция. Поле может быть пустым, если запись создана до включения опции. | ДАТА
время_создания | Время, когда была создана операция. Поле может быть пустым, если запись создана до включения опции. | ВРЕМЯ
дата_изменения | Дата, когда в последний раз была изменена операция. Поле может быть пустым, если запись не менялась. | ДАТА
время_изменения | Время, когда в последний раз была изменена операция. Поле может быть пустым, если запись не менялась. | ВРЕМЯ

Вид журнала:

ВИДИМОСТЬ | возвращает или изменяет видимость поля
ВИДИМОСТЬ_ДА | делает видимыми все поля в диалоге
ВИДИМОСТЬ_НЕТ | делает невидимыми все поля в диалоге
ВИДИМОСТЬ_ДЕТ | изменяет видимость подчиненной таблицы детализации
ДОСТУП | возвращает или изменяет доступность поля
ДОСТУП_ДА | делает доступными все поля в диалоге
ДОСТУП_НЕТ | делает недоступными все поля в диалоге
НАЗВАНИЕ | возвращает или устанавливает название поля журнала
ТИП_ПОЛЯ | возвращает тип поля журнала
ОПЕРАЦИЯ_ДОБАВЛЕНИЯ | Переопределяет действия программы при добавлении пользователем записи в журнал
ОПЕРАЦИЯ_ИЗМЕНЕНИЯ | Переопределяет действия программы при изменении пользователем записи в журнале
ОПЕРАЦИЯ_УДАЛЕНИЯ | Переопределяет действия программы при удалении пользователем записи из журнала
ПРИМЕНИТЬ_ВИД | устанавливает текущий вид журнала
ТЕКУЩИЙ_ВИД | возвращает текущий установленный вид

Функции по журналу:

ВСЕГО | возвращает общее кол-во записей в журнале
МАКСИМУМ | возвращают максимальное значение поля
МИНИМУМ | возвращают минимальное значение поля
СУММА | возвращают сумму значений поля

Методы для работы с конкретной записью:

Работа с детализацией и основной записью (для записи детализации)
КОЛ_ДЕТАЛЕЙ | возвращает кол-во записей в подчиненном журнале детализации
ДЕТАЛИЗАЦИЯ | выдает нужную запись детализации
ЗАП_ДЕТАЛЬ | перезаписывает либо добавляет записи в детализацию
УДАЛИТЬ | удаляет запись детализации по номеру (она же удаляет и всю запись целиком)
ЗАП_ОСНОВНАЯ | указывает записи, что она является детализацией для указанной основной записи
ОСНОВНАЯ | возвращает основную запись для данной записи детализации
ОСНОВНАЯ_СУЩ | сообщает о наличии основной записи
ВЫБОР_ДЕТАЛИ | позволяет вызвать диалог выбора записи детализации
Добавление, изменение, удаление записи
ДОБАВИТЬ | добавляет запись в базу данных
ЗАПИСАТЬ | изменяет запись в базе данных
УДАЛИТЬ | удаляет запись (она же удаляет запись детализации по номеру)
Групповое добавление, изменение, удаление записи
ДОБАВИТЬ_ГР | групповое добавление записей
ЗАПИСАТЬ_ГР | групповое изменение записей
УДАЛИТЬ_ГР | удаление записи из базы данных
ИЗМЕНИТЬ_ГР | групповое изменение нескольких записей или групповое преобразование данных
Вызов диалога редактирования
РЕДАКТИРОВАТЬ | позволяет изменить запись журнала с помощью диалогового окна.
СТАРТ_ЗАПИСЬ | вызывает немодальную форму изменения записи журнала.
Работа с дополнительными полями
ЕСТЬ_ПОЛЯ | есть или нет дополнительные поля у журнала
ПОЛЕ | доступ к дополнительным полям журнала
ЗАП_ПОЛЕ | доступ к дополнительным полям журнала
Для считанных из базы записей журнала
НОВАЯ | возвращает флаг новой записи
СТАРАЯ | возвращает старый экземпляр записи или поля
Обмен с объектом ХМЛ
ИМПОРТ_ЗАПИСИ | загружает содержимое записи ХМЛ-файла в поля журнала
ЭКСПОРТ_ЗАПИСИ | сохраняет содержимое записи в записи XML файла
Прочие
ДОБАВИТЬ_В_КЭШ | использовать запись для оптимизации работы функций
ДОСТУПНО_МЕНЮ | проверяет доступность контекстного пункта меню с помощью вызова обработчика вида контекстного меню для заданной записи
НАЙТИ | поиск записи в журнале по выбранным значениям полей
ПОДСВЕТКА | изменяет тип подсветки (цвета) записи журнала
КОД_АНАЛИТИКИ | получение значения ключевого поля для объектов, являющихся аналитикой счета
ПРОВЕСТИ | проводит документ (запись журнала) в бухгалтерии, вызывая обработчик Проводки
СОХРАНИТЬ | сохраняет значение полей объекта как значения по умолчанию

Прочие методы:

БЛОКИРОВКА_ДЕТ | метод, определяющий поведение подчиненных журналов детализации, когда основная запись заблокирована
БЫЛО_ДОБАВЛЕНО | возвращает кол-во записей, которые были добавлены в журнал с начала работы программы
БЫЛО_ИЗМЕНЕНО | возвращает кол-во записей, которые были изменены в журнале с начала работы программы
БЫЛО_УДАЛЕНО | возвращает кол-во записей, которые были удалены из журнала с начала работы программы
ВКЛ_ТАЙМЕР | запускает обработчик по таймеру
ВНУТРИ_КОПИИ | позволяет узнать, работают ли обработчики в момент создания копии записи (контекстный пункт меню Создать копию)
ВНУТРИ_МЕТОДА | позволяет узнать, вызывается ли обработчик при выполнении метода РЕДАКТИРОВАТЬ и др.
ВНУТРИ_ТЕРМИНАЛА | позволяет узнать, вызывается ли обработчик из интерфейса кассира
ВНУТРИ_ФИЛЬТРА | позволяет узнать, вызывается ли обработчик из диалога фильтра
ГРУППОВОЙ_ВЫБОР | позволяет узнать, работает ли групповой выбор или нет
ЖУРНАЛ | возвращает название журнала
ЗАКРЫТЬ | закрывает окно редактирования записи журнала
ЗАПИСЬ_СОХРАНЕНА | проверяет, сохранена ли текущая редактируемая запись
ИЗМЕНЕН | сообщает программе, что в журнал были внесены изменения
ИЗМЕНИТЬ | изменение нескольких записей или выполнение преобразования
ИМПОРТ | выполняет импорт журнала из файлов различных форматов
ОБНОВИТЬ | обновляет информацию в журнале
ОЧИСТИТЬ | удаляет записи из журнала
ФИЛЬТР | возвращает фильтр данного журнала
ЭКСПОРТ | выполняет экспорт журнала в файлы различных форматов

Больше не поддерживаются:

КОНЕЦ_ФАЙЛА

ПЕРВАЯ

ПЕРЕЙТИ

ПОСЛЕДНЯЯ

ПРЕДЫДУЩАЯ

СЛЕДУЮЩАЯ

ТЕКУЩАЯ

Конструкторы:

1)<имя> ЭТО <идентификатор>[(<параметры>)]

где

<имя>
имя создаваемого объекта.

<идентификатор>
идентификатор создаваемого журнала

<параметры>
параметры журнала-процедуры в скобках через запятую.

2)<имя> = <основная>. ДЕТАЛИЗАЦИЯ (<номер записи>)

где

<имя>
имя создаваемого объекта детализации записи <основная>.

<номер записи>
номер записи детализации

3)<имя> = <детализация>.ОСНОВНАЯ

где

<имя>
имя создаваемого основной журнала по объекту детализации

<номер записи>
номер записи детализации

4)<имя> = <объект>.СТАРАЯ

5) циклы (см.ниже)

Журналы-процедуры могут иметь входные параметры. Входные параметры определяются на основе входных параметров соответствующей хранимой процедуры и задаются при создании объекта ЖУРНАЛ. При необходимости изменить параметры в процессе расчета необходимо пересоздать переменную типа журнал при помощи конструктора.

Два объекта типа ЖУРНАЛ можно сравнивать и присваивать друг другу, только если они относятся к одному и тому же журналу.

С объектами типа ЖУРНАЛ связаны следующие циклы:

ЦИКЛ ПО ЖУРНАЛУ | цикл с перебором записей в одном или нескольких журналах;
ЦИКЛ ИЗ_ЖУРНАЛА | цикл с перебором выделенных в редакторе журнала записей;
ЦИКЛ ДЕТАЛИ | цикл по детализации записи журнала
ЦИКЛ ПОЛЯ | цикл с перебором дополнительных полей записи журнала

См.также
Объект ЖУРНАЛ(бухоперации)
Объект ЖУРНАЛ(бухпроводки)
Объект ЖУРНАЛ(бухобороты)


Объект ЖУРНАЛ(бухоперации)

Объект ЖУРНАЛ бухоперации предназначен для доступа к журналу бухгалтерских операций. Объект имеет следующие поля, доступные только для чтения:

Поле | Значение | Тип
дата | Дата бухгалтерской операции | ДАТА
документ | Название документа | СТРОКА
название | Название (содержание) бухгалтерской операции | СТРОКА
номер_операции | Уникальный номер операции в дате | ЧИСЛО
кол_выключено | Кол-во выключенных проводок в операции | ЧИСЛО
кол_проводок | Общее кол-во проводок в операции | ЧИСЛО
кол_ручных | Кол-во проводок, связанных с документом, но отредактированных позже пользователем вручную | ЧИСЛО
кол_связей | Кол-во связанных с операцией документов | ЧИСЛО
сумма_всех | Сумма всех проводок операции | ЧИСЛО
сумма_док | Сумма связанного документа | ЧИСЛО
фирма | Уникальный идентификатор фирмы | ЧИСЛО
флаги | Служебные флаги | ЧИСЛО


Объект ЖУРНАЛ(бухпроводки)

Объект ЖУРНАЛ бухпроводки предназначен для доступа к бухгалтерским проводкам. Объект имеет следующие поля, доступные только для чтения:

Поле | Значение | Тип
дата | Дата бухгалтерской операции | ДАТА
номер_операции | Уникальный номер операции в дате | ЧИСЛО
номер_проводки | Уникальный номер проводки в операции | ЧИСЛО
дебет | дебет проводки, код счета в плане счетов или расширенный код счета в виде строки | СТРОКА
кредит | кредит проводки, код счета в плане счетов или расширенный код счета в виде строки | СТРОКА
сумма | Сумма бухгалтерской проводки | ЧИСЛО
количество | Кол-во бухгалтерской проводки (для количественно-суммовых проводок) | ЧИСЛО
количество_доп | Дополнительное кол-во бухгалтерской проводки (для проводок с дополнительным учетом) | ЧИСЛО
статья | Статья налогового учета | СТРОКА
сумма_кор | Корректировка суммы по налоговому учету проводки (ноль, если сумма по налоговому учету и бухгалтерскому равны) | ЧИСЛО
единицы | Единицы измерения провод ки (для количественно-суммовых проводок) | СТРОКА
единицы_доп | Единицы измерения проводки (для проводок с дополнительным учетом) | СТРОКА
флаги | Служебные флаги | ЧИСЛО


Объект ЖУРНАЛ(бухобороты)

Объект ЖУРНАЛ бухобороты может использоваться вместо стандартных функций расчета оборотов с целью ускорения расчетов в особых случаях. Объект имеет следующие поля, доступные только для чтения:

Поле | Значение | Тип
дата | Число, определяющее месяц оборотов, оно равно "Месяц" + "Год" * 12 - 1 | ЧИСЛО
дебет | дебет проводки, код счета в плане счетов или расширенный код счета в виде строки | СТРОКА
кредит | кредит проводки, код счета в плане счетов или расширенный код счета в виде строки | СТРОКА
сумма | Сумма бухгалтерской проводки | ЧИСЛО
количество | Кол-во бухгалтерской проводки (для количественно-суммовых проводок) | ЧИСЛО
количество_доп | Дополнительное кол-во бухгалтерской проводки (для проводок с дополнительным учетом) | ЧИСЛО
сумма_кор | Корректировка суммы по налоговому учету проводки (ноль, если сумма по налоговому учету и бухгалтерскому равны) | ЧИСЛО


БЛОКИРОВКА_ДЕТ

Метод БЛОКИРОВКА_ДЕТ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

БЛОКИРОВКА_ДЕТ(<журнал>[,<блокировка>])

<журнал>
идентификатор подчиненного журнала, для которого вызывается данный метод.

<блокировка>
при отсутствии, возвращает логическое значение, означающее блокируется детализация или нет, а при использовании, задает новое значение блокировки детализации.

Результат — логика.

Описание:

БЛОКИРОВКА_ДЕТ — метод, определяющий работу в подчиненных журналов детализации, когда основная запись заблокирована. Допустим основная запись недоступна для правки пользователю (попадает в закрытый период, ограничение прав доступа или включение флажка недоступности у записи), но пользователь пытается вносить изменения не в саму запись, а в ее детализацию. Если блокировка детализации включена, программа будет запрещать это ему делать, а если выключена — разрешать. По умолчанию детализация будет блокироваться.

Здесь <журнал> — идентификатор подчиненного журнала детализации, для которого вызывается данный метод. Если параметр <блокировка> опущен, то функция возвращает логическое значение, означающее блокируется детализация или нет.

В присутствии параметра <блокировка> он задает новое значение блокировки детализации.

Пример:

ФУНКЦИЯ ЖУРНАЛ(счета) ЛОГИКА: ПередЗаписью

БЛОКИРОВКА_ДЕТ(оплаты, НЕТ)

КОНЕЦ_ФУНКЦИИ


БЫЛО_ДОБАВЛЕНО

Метод БЫЛО_ДОБАВЛЕНО

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

БЫЛО_ДОБАВЛЕНО

Результат — число.

Описание:

Метод БЫЛО_ДОБАВЛЕНО возвращает кол-во записей, которые были добавлены в журнал с начала работы программы. Метод работает на низком уровне и учитывает не только операции, добавленные вручную пользователем или с помощью внутреннего языка, но и добавленные объектами, работающими на сервере: триггерами и хранимыми процедурами.

Пример:

пред_добавлено = накладные.БЫЛО_ДОБАВЛЕНО

//...

// Выполняем какие-либо действия, вызываем функцию и т.п.

ЕСЛИ накладные.БЫЛО_ДОБАВЛЕНО > пред_добавлено ТО

СООБЩЕНИЕ("Было добавлено " + СТР(накладные.БЫЛО_ДОБАВЛЕНО > пред_добавлено) + " накладных")

КОНЕЦ_ЕСЛИ

См.также
Метод БЫЛО_ИЗМЕНЕНО
Метод БЫЛО_УДАЛЕНО


БЫЛО_ИЗМЕНЕНО

Метод БЫЛО_ИЗМЕНЕНО

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

БЫЛО_ИЗМЕНЕНО

Результат — число.

Описание:

Метод БЫЛО_ИЗМЕНЕНО возвращает кол-во записей, которые были изменены в журнале с начала работы программы. Метод работает на низком уровне и учитывает не только операции, измененные вручную пользователем или с помощью внутреннего языка, но и добавленные объектами, работающими на сервере: триггерами и хранимыми процедурами.

Пример:

пред_изменено = накладные.БЫЛО_ИЗМЕНЕНО

//...

// Выполняем какие-либо действия, вызываем функцию и т.п.

ЕСЛИ накладные.БЫЛО_ИЗМЕНЕНО > пред_изменено ТО

СООБЩЕНИЕ("Было изменено " + СТР(накладные.БЫЛО_ИЗМЕНЕНО > пред_изменено) + " накладных")

КОНЕЦ_ЕСЛИ

См.также
Метод БЫЛО_ДОБАВЛЕНО
Метод БЫЛО_УДАЛЕНО


БЫЛО_УДАЛЕНО

Метод БЫЛО_ИЗМЕНЕНО

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

БЫЛО_УДАЛЕНО

Результат — число.

Описание:

Метод БЫЛО_УДАЛЕНО возвращает кол-во записей, которые были удалены в журнале с начала работы программы. Метод работает на низком уровне и учитывает не только операции, удаленные вручную пользователем или с помощью внутреннего языка, но и удаленные объектами, работающими на сервере: триггерами и хранимыми процедурами.

Пример:

пред_удалено = накладные.БЫЛО_УДАЛЕНО

//...

// Выполняем какие-либо действия, вызываем функцию и т.п.

ЕСЛИ накладные.БЫЛО_УДАЛЕНО > пред_удалено ТО

СООБЩЕНИЕ("Было удалено " + СТР(накладные.БЫЛО_УДАЛЕНО > пред_удалено) + " накладных")

КОНЕЦ_ЕСЛИ

См.также
Метод БЫЛО_ДОБАВЛЕНО
Метод БЫЛО_ИЗМЕНЕНО


ВИДИМОСТЬ

Метод ВИДИМОСТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис (для одного поля):

ВИДИМОСТЬ(<поле> [,<видимость>])

<поле>
параметр определяет поле того объекта, для которого вызывается данный метод.

<видимость>
при отсутствии, возвращает логическое значение, означающее видимо поле или нет, а при использовании задает новое значение видимости поля.

Результат — логика.

Описание:

ВИДИМОСТЬ — функция для работы с видимостью полей. Здесь <поле> — определяет поле того объекта, для которого вызывается данный метод. Если параметр <видимость> опущен, то функция возвращает логическое значение, означающее видимо поле или нет. В присутствии параметра <видимость> он задает новое значение видимости поля.

Существует вариант метода с указанием нескольких полей в квадратных скобках через запятую. Он используется для задания видимости нескольких полей:

Синтаксис (для нескольких полей):

ВИДИМОСТЬ( [ <поле1> [, <поле2> [, <поле3> ... ] ] ] ,<видимость> )

<поле1>, <поле2>, <поле3>, ...
поля, для которых вызывается данный метод, указываются в квадратных скобках через запятую.

<видимость>
задает новое значение видимости полей.

Результат отсутствует.

При вызове функции из обработчика вид журнала она переопределяет настройки видимости колонок в таблицах, заданные по умолчанию.

При вызове функции в других местах программы она переопределяет настройки видимости колонок в диалогах. Для сброса настроек в значение по умолчанию применяется метод ВИДИМОСТЬ_ДА.

Замечание

Установка видимости полей диалогов может производиться и в обработчике вид журнала тоже. При этом установки в обработчике вид журнала имеют более высокий приоритет по сравнению с установкой видимости из других обработчиков.

Пример:

ФУНКЦИЯ ЖУРНАЛ(продукция) ВидЖурнала(СТРОКА: Форма)

{ Определяем вид журнала исходя из параметра Форма }

полная = (Форма = "полная")

ВИДИМОСТЬ(склад,полная ИЛИ НЕСКОЛЬКО_СКЛАДОВ)

ВИДИМОСТЬ(скидка,полная ИЛИ ЕСТЬ_СКИДКИ)

ВИДИМОСТЬ(приоритет,полная)

КОНЕЦ_ФУНКЦИИ

Применение:

C помощью этого метода можно скрывать или показывать колонки в зависимости от настроек программы или вида журнала.


ВИДИМОСТЬ_ДЕТ

Метод ВИДИМОСТЬ_ДЕТ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ВИДИМОСТЬ_ДЕТ(<журнал>[,<видимость>])

<журнал>
идентификатор подчиненного журнала, для которого вызывается данный метод.

<видимость>
при отсутствии, возвращает логическое значение, означающее видима детализация или нет, а при использовании, задает новое значение видимости детализации.

Результат — логика.

Описание:

ВИДИМОСТЬ_ДЕТ — функция для работы с видимостью подчиненных журналов детализации. Здесь <журнал> — идентификатор подчиненного журнала, для которого вызывается данный метод. Если параметр <видимость> опущен, то функция возвращает логическое значение, означающее видима детализация или нет.

В присутствии параметра <видимость> он задает новое значение видимости детализации.

Пример:

ФУНКЦИЯ ЖУРНАЛ(основной) ВидЖурнала(СТРОКА: Форма)

{ Определяем вид журнала исходя из параметра Форма }

полная = (Форма = "полная")

ВИДИМОСТЬ(детализация, полная)

КОНЕЦ_ФУНКЦИИ

Применение:

С помощью этого метода можно скрывать или показывать дополнительную таблицу детализации в окне редактирования записи в зависимости от настроек программы или вида журнала.


ВИДИМОСТЬ_НЕТ, ВИДИМОСТЬ_ДА

Метод ВИДИМОСТЬ_НЕТ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ВИДИМОСТЬ_НЕТ, ВИДИМОСТЬ_ДА

Метод не возвращает результат.

Описание:

ВИДИМОСТЬ_НЕТ - делает невидимыми все поля в диалоге редактирования записи журнала.

ВИДИМОСТЬ_ДА - делает видимыми все поля в диалоге редактирования записи журнала.

Пример:

ФУНКЦИЯ ЖУРНАЛ(накладные) НаИзменение_покупатель

ЕСЛИ ПОЛЬЗОВАТЕЛЬ <> "Администратор" ТО

ВИДИМОСТЬ_НЕТ

ВИДИМОСТЬ(основание, ДА)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

См.также
Метод ВИДИМОСТЬ


ВКЛ_ТАЙМЕР

Метод ВКЛ_ТАЙМЕР

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ВКЛ_ТАЙМЕР(<задержка>)

<задержка>
задержка вызова в десятых долях секунды.

Метод не возвращает результат.

Описание:

Метод ВКЛ_ТАЙМЕР — запускает обработчик по таймеру. Параметр <задержка> определяет задержку вызова в десятых долях секунды. Если <задержка> = 1, то обработчик будет вызваться 10 раз в секунду. Если <задержка> = 10, то обработчик будет вызываться 1 раз в секунду. Если <задержка> = 600, то обработчик будет вызываться 1 раз в минуту. Если <задержка> = 36000, то обработчик будет вызываться 1 раз в час.

Чтобы выключить таймер надо указать <задержка> = -1.

Пример:

ВКЛ_ТАЙМЕР(600)


ВНУТРИ_КОПИИ

Метод ВНУТРИ_ФИЛЬТРА

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ВНУТРИ_КОПИИ

Результат — логика.

Описание:

Метод ВНУТРИ_КОПИИ при выполнении обработчиков возвращает ДА, если выполняется контекстный пункт меню Создать копию.

Внимание!

При создании копии операции метод НОВАЯ возвращает НЕТ, несмотря на то, что открывается диалог создания новой операции.

Пример:

ЕСЛИ ВНУТРИ_КОПИИ ТО

дата = ДАТА_ТЕК

номер = НОМЕР["нак"]

//...

КОНЕЦ_ЕСЛИ


ВНУТРИ_МЕТОДА

Метод ВНУТРИ_МЕТОДА

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ВНУТРИ_МЕТОДА

Результат — логика.

Описание:

Метод ВНУТРИ_МЕТОДА внутри обработчиков сообщает, что они выполняются в связи с вызовом методов РЕДАКТИРОВАТЬ, ДОБАВИТЬ, ЗАПИСАТЬ или УДАЛИТЬ, т.е., например, при вызове РЕДАКТИРОВАТЬ появляется диалог редактирования записи журнала, в котором можно подставлять данные, а значит вызывать обработчик при выборе значения. Тогда внутри этого обработчика ВНУТРИ_МЕТОДА вернет ДА, а иначе будет возвращать НЕТ.

Пример:

ЕСЛИ НЕ ВНУТРИ_МЕТОДА ТО

осн = ОСНОВНАЯ

//...

КОНЕЦ_ЕСЛИ


ВНУТРИ_ТЕРМИНАЛА

Метод ВНУТРИ_ТЕРМИНАЛА

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ВНУТРИ_ТЕРМИНАЛА

Результат — логика.

Описание:

Метод ВНУТРИ_ТЕРМИНАЛА внутри обработчиков сообщает, что они выполняются в интерфейсе кассира.

Пример:

ЕСЛИ НЕ ВНУТРИ_ТЕРМИНАЛА ТО

СООБЩЕНИЕ("Данная возможность доступна только в интерфейсе кассира")

КОНЕЦ_ЕСЛИ

См.также
Функция СТАРТ_ТЕРМИНАЛ
Функция ЕСТЬ_ТЕРМИНАЛ


ВНУТРИ_ФИЛЬТРА

Метод ВНУТРИ_ФИЛЬТРА

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ВНУТРИ_ФИЛЬТРА

Результат — логика.

Описание:

Метод ВНУТРИ_ФИЛЬТРА внутри обработчика при выборе значения возвращает ДА, если обработчик вызывается из диалога редактирования фильтра журнала.

Пример:

ЕСЛИ НЕ ВНУТРИ_ФИЛЬТРА ТО

осн = ОСНОВНАЯ

//...

КОНЕЦ_ЕСЛИ


ВСЕГО

Метод ВСЕГО

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ВСЕГО

Результат — .число.

Описание:

Метод ВСЕГО возвращает общее кол-во записей в журнале. Если журнал отфильтрован, то возвращает кол-во отфильтрованных записей. Тип результата — число.

Пример:

СООБЩЕНИЕ("В журнале " + т.ЖУРНАЛ + " " + СТР(т.ВСЕГО) + " записей")


ВЫБОР_ДЕТАЛИ

Метод ВЫБОР_ДЕТАЛИ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ВЫБОР_ДЕТАЛИ[([,<журнал>[:<вид>[:<вид диалога>]][,<ссылка>[,<заголовок>[,<выбор>]]]]])]

<журнал>
определяет идентификатор нужного подчиненного журнала.

<вид>
определяет список отображаемых полей и их порядок.

<ссылка>
ссылка журнала детализации в нескольких контекстах.

<заголовок>
заголовок окна выбора.

<выбор>
логический параметр, определяющий, нужно ли возвращать значение текущей выбранной записи.

Результат — число.

Описание:

ВЫБОР_ДЕТАЛИ — позволяет вызвать диалог выбора детализации, а при истинном значении параметра<выбор> возвращает номер выбранной записи детали или 0 (ноль), если пользователь нажал <Отмена>.

Параметр <журнал> определяет идентификатор нужного подчиненного журнала. После него указываются: <вид журнала> строковая константа, задает вид журнала (если журнал имеет несколько видов), <вид диалога> строковая константа, задает вид диалога редактирования записи (если журнал имеет несколько видов), <ссылка> используется если <журнал> является журналом детализации в нескольких контекстах (например у бухгалтерского счета журнал проводок может быть детализацией как по дебету, так и по кредиту), тогда здесь надо указать нужный контекст по имени ссылки (REFERENCE) в базе данных, <заголовок> задает заголовок окна выбора. По умолчанию в заголовке отображается название журнала.

В процессе выбора возможно редактирование таблицы детализации. Однако, также как и с методами ЗАП_ДЕТАЛЬ и УДАЛИТЬ редактирование происходит "в памяти". Чтобы внести изменения в базу данных, надо вызвать ЗАПИСАТЬ для основной записи.

Пример:

н ЭТО накладные

н.НАЙТИ(номер = "23") // Ищем накладную за номером "23"

н.ВЫБОР_ДЕТАЛИ(накадные_дет) // Редактируем состав накладной (ее детализацию)

н.ЗАПИСАТЬ // Записываем изменения в базе данных

Замечание1

Порядок записей детализации может отличаться в зависимости от того, откуда был вызван алгоритм. Например, в алгоритмах, вызываемых из контекстного меню в диалоге редактирования записи журнала по кнопке, порядок следования записей детализации таков, каков он на экране в таблице редактирования записи (а таблица может быть отсортирована по одной или нескольким колонкам).

Замечание2

Функция может вызываться и без параметров. Тогда программа ищет подчиненный журнал по умолчанию. Таковым является журнал, ссылающийся своим полем IDLINK (в базе данных) на поле ID (в базе данных) текущего журнала.

Пример:

выбор = н.ВЫБОР_ДЕТАЛИ

ЕСЛИ выбор > 0 ТО

н.УДАЛИТЬ(выбор)

КОНЕЦ_ЕСЛИ

См.также
Функция ВЫБОР_ЗАПИСИ


ГРУППОВОЙ_ВЫБОР

Метод ГРУППОВОЙ_ВЫБОР

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ГРУППОВОЙ_ВЫБОР

Результат — логика.

Описание:

Метод ГРУППОВОЙ_ВЫБОР позволяет узнать, работает ли групповой выбор или нет. Если накладные_доп — это журнал детализации, а товары — это справочник, откуда производится групповой выбор, то метод ГРУППОВОЙ_ВЫБОР, вызванный для накладные_доп будет возвращать ДА при редактировании таблицы группового выбора (представляющей собой склейку накладные_доп и товары). Т.е., начиная с обработчика перед диалогом для накладные_доп, в случае если диалог редактирования (добавления) вызывается из таблицы группового выбора, метод будет возвращать ДА, а в случае если диалог редактирования (добавления) вызывается из таблицы детализации, метод будет возвращать НЕТ. Метод может вызываться в обработчиках в случае, если логика работы зависит от того, выбираются записи через групповой выбор или нет.

Пример:

ДОСТУП(номер_гтд,НЕ (виды_накладных.движение_товара = движРасход И

ОТРИЦАТЕЛЬНЫЕ_ОСТАТКИ = 0) И НЕ ГРУППОВОЙ_ВЫБОР)


ДЕТАЛИЗАЦИЯ

Метод ДЕТАЛИЗАЦИЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ДЕТАЛИЗАЦИЯ(<номер записи>[,<журнал>[,<ссылка>]])

<номер записи>
порядковый номер записи детализации.

<журнал>
определяет идентификатор нужного подчиненного журнала.

<ссылка>
поле для связи с журналом.

Результат — журнал.

Описание:

ДЕТАЛИЗАЦИЯ — выдает нужную запись детализации по ее порядковому номеру <номер записи>. Номер записи должен быть в диапазоне от 1 до КОЛ_ДЕТАЛЕЙ. Фактически ДЕТАЛИЗАЦИЯ является конструктором объекта ЖУРНАЛ. При его использовании создается новый объект типа ЖУРНАЛ подчиненного журнала, и поля которого заполняются информацией из детализации <номер проводки>. После изменения полей детализации, чтобы сохранить эти изменения в основной записи надо вызвать ЗАП_ДЕТАЛЬ.

Пример:

шир1 = 80

шир2 = 15

н ЭТО накладные

ЦИКЛ ДЛЯ (и = 1, н.КОЛ_ДЕТАЛЕЙ(накадные_дет))

д = н.ДЕТАЛИЗАЦИЯ(и,накадные_дет)

ВСТАВИТЬ_РАМКУ(1, и, шир1, 1)

ВЫВЕСТИ(2, и, д.наименование, шир1 - 1)

ВСТАВИТЬ_РАМКУ(1, и, шир2, 1)

ВЫВЕСТИ(2 + шир1, и, д.цена, шир2 - 1, 2)

КОНЕЦ_ЦИКЛА

Замечание1

Порядок записей детализации может отличаться в зависимости от того, откуда был вызван алгоритм. Например, в алгоритмах, вызываемых из контекстного меню в диалоге редактирования записи журнала по кнопке, порядок следования записей детализации таков, каков он на экране в таблице редактирования записи (а таблица может быть отсортирована по одной или нескольким колонкам).

Замечание2

Дополнительный параметр <журнал> определяет идентификатор нужного подчиненного журнала. Если его нет, программа ищет подчиненный журнал по умолчанию. Таковым является журнал, ссылающийся своим полем IDLINK (в базе данных) на поле ID (в базе данных) текущего журнала. Ну а уж если <журнал> является журналом детализации в нескольких контекстах (например у бухгалтерского счета журнал проводок может быть детализацией как по дебету, так и по кредиту), можно указать нужный контекст по имени ссылки (REFERENCE) в базе данных.

См.также
Метод КОЛ_ДЕТАЛЕЙ
ЦИКЛ ДЕТАЛИ
Метод ОСНОВНАЯ


ДОБАВИТЬ

Метод ДОБАВИТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ДОБАВИТЬ[(<выводить диалог>[:<вид диалога>[ [ <название параметра>:<значение>[:<видимость>], ... ] ]])]

<выводить диалог>
означает, выводить диалог редактирования записи или нет; если в диалоге пользователь нажал <Отмена>, то запись не добавляется, функция возвращает НЕТ;

<вид диалога>
определяет список отображаемых полей и их порядок.

<название параметра>, <значение>, <видимость>
см. описание этих полей в методе РЕДАКТИРОВАТЬ.

Результат — логика. Если <выводить диалог> истинно, то функция возвращает ДА если пользователь нажал в диалоге <OK> и запись добавилась и НЕТ — если пользователь нажал <Отмена> и запись не добавилась.

Если в процессе добавления возникнут ошибки, работа алгоритма будет остановлена по ошибке.

Описание:

ДОБАВИТЬ — аналогичен методу ЗАПИСАТЬ, за исключением того, что вне зависимости от того, была ли считана запись из журнала или она была вновь создана, происходит добавление записи. По умолчанию функция выводит диалог с предложением добавить запись в журнал. Если пользователь нажимает <OK> то происходит добавление записи, если <Отмена>, то запись не добавляется в журнал. Диалог можно не выводить, если установить параметр <выводить диалог> как НЕТ.

Замечание!

Функция всегда запрашивает значение ключевых полей у генератора номеров

Если журнал имеет несколько видов и используется ДОБАВИТЬ с диалогом, то можно указать конкретный вид диалога в параметре <вид диалога>. Более того, это даже необходимо, ведь без указания вида программа использует текущий (последний использовавшийся) вид, и, кто знает, какую форму будет иметь диалог.

Если указать !! (два восклицательных знака), т.е. писать ДОБАВИТЬ!!, функция не будет вызывать действие обработчиков. В обычном режиме обработчики вызываются.

См.также
Метод ЗАПИСАТЬ
Загрузка и сохранение полей записи в полях объекта


ДОБАВИТЬ_В_КЭШ

Метод ДОБАВИТЬ_В_КЭШ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ДОБАВИТЬ_В_КЭШ

Метод не возвращает результат.

Описание:

Метод ДОБАВИТЬ_В_КЭШ добавляет запись в кэш, который используется различными функциями. После этого функции, работающие с аналитикой АНАЛИТИКА_СЧИТАТЬ, НАЗВ, НАЗВ_ПОЛН, ЕДИН, ЕДИН_ДОП и метод НАЙТИ перестают делать запрос к базе данных для получения данной записи.


ДОСТУП

Метод ДОСТУП

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис (для одного поля):

ДОСТУП(<поле>[,<доступ>])

<поле>
определяет поле того объекта, для которого вызывается данный метод.

<доступ>
функция возвращает логическое значение, означающее доступность поле.

Результат — логика.

Описание:

ДОСТУП — функция для работы с доступом к полям. Здесь <поле> — определяет поле того объекта, для которого вызывается данный метод. Если параметр <доступ> опущен, то функция возвращает логическое значение, означающее доступность поле. В диалогах редактирования журналов недоступные поля отображаются серым цветом и редактирование их невозможно.

В присутствии параметра <доступ> он задает новое значение доступности поля в диалоге. Этот доступ сохранится до окончания работы с диалогом редактирования или добавления записи в журнал. При следующем появлении диалога значение доступа устанавливается по умолчанию, т.е. согласно настройкам доступности полей в функциях журнала.

Существует вариант метода с указанием нескольких полей в квадратных скобках через запятую. Он используется для указания доступности нескольких полей:

Синтаксис (для нескольких полей):

ДОСТУП( [ <поле1> [, <поле2> [, <поле3> ... ] ] ] ,<доступ> )

<поле1>, <поле2>, <поле3>, ...
поля, для которых вызывается данный метод, указываются в квадратных скобках через запятую.

<доступ>
задает новое значение доступности полей.

Результат отсутствует.

Пример:

ФУНКЦИЯ ЖУРНАЛ(накладные) НаИзменение_покупатель

ДОСТУП(склад, ДА)

вид_накладных.НАЙТИ(ид = вид_накл)

ЕСЛИ вид_накладных.движение_товара = движВыпуск ТО

ДОСТУП(склад,НЕТ)

склад=Склад_гот_прод

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Замечание!

Для недоступного поля при редактировании записи в журнале не проверяется правильность значения. Например, если к полю типа счет нет доступа, то программа не будет проверять наличие соответствующего поля в плане счетов. То же самое относится к полям типа множество и полю с подстановкой. Недоступное поле типа дата не будет проверяться в случае, если его значение равно НЕТ_ДАТЫ.

См.также
ДОСТУП_НЕТ


ДОСТУП_НЕТ, ДОСТУП_ДА

Метод ДОСТУП_НЕТ, ДОСТУП_ДА

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ДОСТУП_НЕТ, ДОСТУП_ДА

Метод не возвращает результат.

Описание:

ДОСТУП_НЕТ - делает недоступными все поля в диалоге.

ДОСТУП_ДА - делает доступными все поля в диалоге.

Пример:

ФУНКЦИЯ ЖУРНАЛ(накладные) НаИзменение_покупатель

ЕСЛИ ПОЛЬЗОВАТЕЛЬ <> "Администратор" ТО

ДОСТУП_НЕТ

ДОСТУП(основание, ДА)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

См.также
Метод ДОСТУП


ДОСТУПНО_МЕНЮ

Метод ДОСТУПНО_МЕНЮ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ДОСТУПНО_МЕНЮ(<команда> [,<из>])

<команда>
выражение строкового типа, определяющее команду пункта меню. Для бланков и отчетов это имя файла бланка и отчета, для типовых операций — название типовой операции, для журнала — идентификатор журнала.

<из>
параметр из, передаваемый в обработчик вида контекстного меню.

Результат — логика.

Описание:

ДОСТУПНО_МЕНЮ — проверяет доступность контекстного пункта меню с помощью вызова обработчика вида контекстного меню для заданной записи. Функция возвращает ДА, если меню доступно и НЕТ в обратном случае.

Замечание!

Функция не проверяет существование пункта меню. Если пункт меню не существует, она вернет ДА.

Пример:

ЕСЛИ накладная.ДОСТУПНО_МЕНЮ("NAKL.FRM") ТО

СТАРТ_БЛАНК("NAKL.FRM",накладная)

КОНЕЦ_ЕСЛИ

См.также
Функция УБРАТЬ_МЕНЮ
Функция ПУТЬ_МЕНЮ


ЕСТЬ_ПОЛЯ

Метод ЕСТЬ_ПОЛЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ЕСТЬ_ПОЛЯ

Результат — логика.

Описание:

Проверяет, есть ли у журнала дополнительные поля.

Для журнала бухоперации метод ЕСТЬ_ПОЛЯ проверяют наличие полей, созданных при помощи АРХИВ.

Замечание!

Метод ЕСТЬ_ПОЛЯ может использоваться в условии конструкции ЦИКЛ ПО ЖУРНАЛУ.

Пример:

СООБЩЕНИЕ(накладные.ЕСТЬ_ПОЛЯ)

См.также
Метод ЗАП_ПОЛЕ
Метод ПОЛЕ
ЦИКЛ ПОЛЯ


ЖУРНАЛ

Метод ЖУРНАЛ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ЖУРНАЛ

Результат — строка.

Описание:

Метод ЖУРНАЛ возвращает название журнала.

Пример:

ЕСЛИ ВОПРОС("Вы хотите добавить запись в " + накл.ЖУРНАЛ) ТО

накл.ДОБАВИТЬ

КОНЕЦ_ЕСЛИ

См.также
Метод КОД


ЗАКРЫТЬ

Метод ЗАКРЫТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ЗАКРЫТЬ[(<варианты>)]

<значение>
варианты закрытия.

Результат — логика, произведено ли было закрытие окна.

Описание:

Метод закрывает окно редактирования записи журнала. Если открыто несколько записей на редактирование, закрывает первую попавшуюся. Возможны три варианта закрытия (определяются предустановленными константами):

закрЕслиНетИзменений | закрывает окно только если не было внесено никаких изменений;
закрЗапрос | если были изменения будет выдано предупреждение; если пользователь согласится с отменой изменений, окно будет закрыто
закрПринудительно | принудительное закрытие окна

Замечание!

При вызове метода в процессе редактирования записи, функция будет возвращать НЕТ.

Пример:

накладные.ЗАКРЫТЬ

См.также
Метод СТАРТ_ЗАПИСЬ


ЗАП_ДЕТАЛЬ

Метод ЗАП_ДЕТАЛЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ЗАП_ДЕТАЛЬ( <объект> [,<ссылка>] [,<номер>] )

<объект>
объект типа ЖУРНАЛ.

<ссылка>
наименование ссылки на журнал детализации в нескольких контекстах

<номер>
номер объекта детализации.

Метод возвращает результат номер добавленной записи.

Описание:

Метод ЗАП_ДЕТАЛЬ перезаписывает либо добавляет объекты детализации для данной записи. Параметр <объект> — объект типа ЖУРНАЛ журнала детализации, <номер> — номер объекта детализации. Если номер не указан, то происходит добавление записи. Если данной записи не существует, выдает ошибку.

Метод только изменяет или добавляет детали к записи. Запись добавляется только "в памяти", т.е. это не отражается на данные в журнале. Для того, чтобы применить внесенные изменения, надо вызвать ЗАПИСАТЬ для основной записи.

Метод запрашивает из базы данных и изменяет значения лукап-полей.

Метод запрашивает у генератора номеров значение ключевого поля при добавлении нового объекта детализации и изменяет его (получить значение ключевого поля можно после выполнения метода).

Метод не меняет значения никаких других полей, в том числе и связующего поля (того, которое ссылается на основную запись), т.е.. последующее чтение добавленной или измененной записи детализации с помощью ДЕТАЛИЗАЦИЯ вернет те значения полей, которые были в момент выполнения ЗАП_ДЕТАЛЬ. Значение связующего поля игнорируется. Оно будет взято из основной записи в момент выполнения ЗАПИСАТЬ для основной записи.

Внутри обработчиков метод может вызываться не только для журналов, помеченных для отображения в параметрах журналов, но и для любого другого журнала, имеющего поле, ссылающееся на редактируемый журнал.

Замечание 1

Возможно использование метода ЗАП_ДЕТАЛЬ! (с восклицательным знаком). В этом случае программа не выполняет дополнительных запросов для вычисления значения лукап-полей. Так работает быстрее, но значения лукап-полей придется задать вручную.

Замечание 2

Возможно использование метода ЗАП_ДЕТАЛЬ!! (с двумя восклицательными знаками). При добавлении нового объекта детализации не будет запрашиваться значения автоинкрементного ключевого поля.

Замечание 3

Если объект является журналом детализации в нескольких контекстах (например у бухгалтерского счета журнал проводок может быть детализацией как по дебету, так и по кредиту), можно указать нужный контекст в параметре <ссылка> по имени ссылки (REFERENCE) в базе данных.

Пример:

тов = накл.ДЕТАЛИЗАЦИЯ(1) // Получаем запись детализации

тов.сумма = тов.сумма / 1000 // Изменяем поле у нее

накл.ЗАП_ДЕТАЛЬ(тов,1) // Сохраняем запись детализации в основной записи

накл.ЗАПИСАТЬ // Сохраняем основную запись в базе данных

Замечание!

Порядок записей детализации может отличаться в зависимости от того, откуда был вызван алгоритм. Например, в алгоритмах, вызываемых из контекстного меню в диалоге редактирования записи журнала по кнопке, порядок следования записей детализации таков, каков он на экране в таблице редактирования записи (а таблица может быть отсортирована по одной или нескольким колонкам). При добавлении записи детализации, позиция добавленной записи может отличаться от последней. Узнать ее номер можно с помощью возвращаемого значения.

Пример:

текущая = накл.ЗАП_ДЕТАЛЬ(тов) // Добавляем новую запись детализации в основную запись

тов.сумма = тов.сумма / 1000 // Изменяем поле у нее

// Так НЕ ПРАВИЛЬНО

накл.ЗАП_ДЕТАЛЬ(тов,накл.КОЛ_ДЕТАЛЕЙ) // Изменяем ранее добавленную запись детализации

// Надо так:

накл.ЗАП_ДЕТАЛЬ(тов,текущая) // Изменяем ранее добавленную запись детализации

См.также
Метод КОЛ_ДЕТАЛЕЙ
ЦИКЛ ДЕТАЛИ
Метод ОСНОВНАЯ


ЗАП_ОСНОВНАЯ

Метод ЗАП_ОСНОВНАЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ЗАП_ОСНОВНАЯ(<объект> )

<объект>
объект типа ЖУРНАЛ.

Метод не возвращает результат.

Описание:

Метод ЗАП_ОСНОВНАЯ указывает вновь созданной записи детализации, что она является детализацией для указанной основной записи. После этого вызов ОСНОВНАЯ_СУЩ для переменной будет возвращать ДА, а ОСНОВНАЯ возвращать <объект>.

Пример:

накл ЭТО накладные

тов ЭТО накладные_доп

СООБЩЕНИЕ(тов.ОСНОВНАЯ_СУЩ) // Выведет НЕТ

тов.ЗАП_ОСНОВНАЯ(накл)

СООБЩЕНИЕ(тов.ОСНОВНАЯ_СУЩ) // Выведет ДА


ЗАП_ПОЛЕ

Метод ЗАП_ПОЛЕ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ЗАП_ПОЛЕ(<имя поля> [, <значение>])

<имя поля>
дополнительное поле журнала или
поле архива для журнала бухоперации

<значение>
дополнительный параметр операции.

Метод не возвращает результат.

Описание:

Позволяет записывать значения в дополнительные поля журналов. Для доступа к дополнительным полям необходимо в параметрах журнала включить опцию Доступны дополнительные поля. Если значение опущено, поле удаляется.

Для журнала бухоперации метод ЗАП_ПОЛЕ устанавливает значение дополнительного параметра операции.

Пример:

бухоперации.ЗАП_ПОЛЕ("опл", ДАТА_ТЕК)

См.также
Метод ПОЛЕ
Метод ЕСТЬ_ПОЛЯ
ЦИКЛ ПОЛЯ


ЗАПИСАТЬ

Метод ЗАПИСАТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ЗАПИСАТЬ

Описание:

ЗАПИСАТЬ — сохраняет значение объекта в базе данных. Если запись новая, то происходит добавление записи, а иначе — ее замена. Повторное сохранение при этом никак не повлияет на журнал — произойдет только перезапись данных. Если произошли какие-либо изменения в детализации записи (выполненные при помощи ЗАП_ДЕТАЛЬ и УДАЛИТЬ) произойдет внесение этих изменений в базу данных.

Если в процессе добавления возникнут ошибки, работа алгоритма будет остановлена по ошибке.

Замечание!

Функция запрашивает значение ключевых полей у генератора номеров, если им не присваивалось значение (значение равно ПУСТО).

Внимание!

Журнал должен обязательно иметь первичный ключ или уникальную комбинацию полей. В противном случае, метод ЗАПИСАТЬ может не работать или работать неправильно !

Замечание!

Алгоритмы, вызываемые из контекстного меню в диалоге редактирования записи журнала по кнопке, после вызова функции ИЗ_ЖУРНАЛА для редактируемой записи, получают доступ к ней. Если для таких объектов вызвать потом ЗАПИСАТЬ, то вместо записи в базу данных, произойдет сохранение содержимого объекта в диалог редактирования. Более подробно этот вариант рассмотрен в описании функции ИЗ_ЖУРНАЛА.

Если указать !! (два восклицательных знака), т.е. писать ЗАПИСАТЬ!!, функция не будет вызывать действие обработчиков. В обычном режиме обработчики вызываются.

См.также
Метод ДОБАВИТЬ
Загрузка и сохранение полей записи в полях объекта


ЗАПИСЬ_СОХРАНЕНА

Метод ЗАПИСЬ_СОХРАНЕНА

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ЗАПИСЬ_СОХРАНЕНА [(<без запроса>)]

<без запроса>
логический параметр, позволяющий отключить появление сообщения пользователю.

Результат — логика.

Описание:

Метод ЗАПИСЬ_СОХРАНЕНА проверяет, редактируется ли запись в данный момент. Если запись не редактируется, возвращает ДА. Если запись редактируется, предлагает пользователю сохранить ее в базе данных, будет выдано сообщение "Перед тем как печатать бланк необходимо сохранить документ. Сохранить ?". Если пользователь соглашается, сохраняет запись и возвращает ДА, иначе НЕТ. Если указан параметр <без запроса>, то функция работает без запроса у пользователя.

Метод позволяет удостоверится, что все изменения в диалоге редактирования, если они были, были внесены в базу данных.

Замечание!

Метод ничего не делает и всегда возвращает ДА в случае, если включена опция Разрешить печатать документ не сохраняя его в параметрах базы данных.

Если пользователь редактирует запись журнала, он может сформировать на основе редактируемой записи печатную форму. При печати бланка всегда происходит проверка на то, сохранена запись журнала или нет (если эта проверка не отключена в параметрах базы данных, см.выше). Метод ЗАПИСЬ_СОХРАНЕНА делает то же самое.

Пример:

ЕСЛИ н.ЗАПИСЬ_СОХРАНЕНА ТО

ВЫХОД

КОНЕЦ_ЕСЛИ


ИЗМЕНЕН

Метод ИЗМЕНЕН

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ИЗМЕНЕН

Метод не возвращает результат.

Описание:

Метод ИЗМЕНЕН сообщает программе, что в журнал были внесены изменения. Если на экране открыты окна с отображением данных журнала, программа перерисует их (перерисовка вызывается не в момент выполнения метода, а уже после завершения алгоритма либо когда алгоритм затребует реакции пользователя, например с помощью ВВЕСТИ, ВОПРОС, СООБЩЕНИЕ и т.п.). При отрисовке учитывается текущее состояние вида журнала, с которым было открыто конкретное окно, включая изменения в названии колонок, колонтитуле (названии окна) и др. Также, функция вызывает обработчик вид журнала и обновление строки статуса.

В отличие от метода ОБНОВИТЬ, обращение к базе данных и чтение не происходит.

Пример:

ж.ИЗМЕНЕН

Применение:

Метод может быть использован в обработчиках для обновления строки статуса или вида таблицы детализации.

См.также
Метод ОБНОВИТЬ


ИЗМЕНИТЬ

Метод ИЗМЕНИТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ИЗМЕНИТЬ(<поле>=<значение>[,...]:<условие>)

<поле>
наименование поля по умолчанию.

<значение>
значение поля или выражение.

<условие>
условие поиска записи в журнале.

Метод не возвращает результат.

Описание:

Метод ИЗМЕНИТЬ осуществляет поиск записи в журнале по заданному условию. В случае если удалось найти такую запись, значения полей записи изменяются.

Условие может быть наложено только на поля этого журнала, в противном случае будет выдано сообщение об ошибке.

Пример:

// Даты всех накладных после 1 января 2020 года сместятся на один день вперед

накладные.ИЗМЕНИТЬ(дата = дата + 1, дата >= 01.01.2020)


ИМПОРТ

Метод ИМПОРТ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ИМПОРТ(<файл>[,<кодировка или формат полей XML>])

<файл>
определяет файл импортра журнала.

<кодировка или формат полей XML>
для DBF: параметр логического типа, определяет кодовую страницу;
для XML: определяет формат имен полей XML;

Метод не возвращает результат.

Описание:

ИМПОРТ — выполняет импорт журнала из файлов различных форматов. Параметр <файл> — файл, из которого будет импортироваться журнал. Если у файла не указано расширение, полагается расширение DBF. Если расширение указано, то исходя из него определяется формат файла. Функция всегда выполняется в режиме объединения содержимого файла с журналом и, если в базе данных встречаются те же записи что и в файле, они останутся неизменными. Используется совместно с методом ЭКСПОРТ.

Если в процессе импорта произойдет ошибка, например при добавлении новых записей в журнал, будет выдано соответствующее сообщение об ошибке. Указание ! (восклицательного знака) после имени функции позволяет игнорировать ее. В этом случае, успешность импорта можно узнать, проверив возвращаемый функцией результат. Если функция возвращает ДА, импорт прошел удачно, если НЕТ — в процессе импорта возникли ошибки.

Необязательный параметр логического типа <кодировка или формат полей XML>, для DBF-файлов определяет необходимость перекодировки символов. По умолчанию он равен ДА — кодовая страница DOS (кодовая страница 866). Если указано НЕТ — используется кодовая страница Windows (кодовая страница 1251).

Необязательный параметр логического типа <кодировка или формат полей XML>, для XML-файлов определяет формат представления полей журнала. По умолчанию он равен ДА — в файле поля будут представлены своими идентификаторами. Если указано НЕТ — поля будут представлены названиями поля в базе данных.

Внимание!

В процессе загрузки функция подтверждает транзакцию (аналогично вызову ПОДТВЕРДИТЬ), в которой происходит добавление записей.

Пример:

ЕСЛИ ВОПРОС("Восстановить журнал из резервной копии") ТО

накл.ОЧИСТИТЬ

накл.ИМПОРТ("a:\backup_1_1999.dbf")

КОНЕЦ_ЕСЛИ

См.также
Метод ЭКСПОРТ
Метод ИМПОРТ_ЗАПИСИ


ИМПОРТ_ЗАПИСИ

Метод ИМПОРТ_ЗАПИСИ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис I:

ИМПОРТ_ЗАПИСИ (<файл>)

<файл>
объект ХМЛ, в запись которого сохраняется запись журнала.

Метод не возвращает результат.

Описание:

ИМПОРТ_ЗАПИСИ загружает содержимое записи ХМЛ-файла в поля журнала. То же самое можно сделать и с помощью последовательного вызова методов ПОЛЕ для каждого поля журнала.

Пример 1:

хмл = ХМЛ_ОТКРЫТЬ("клиенты")

ЦИКЛ ДЛЯ (и = 1, хмл.ВСЕГО)

// считываем запись из ХМЛ-файла

хмл.СЧИТАТЬ(и)

// Загружаем поля журнала "к" из записи объекта "хмл"

к.ИМПОРТ_ЗАПИСИ(хмл)

к.ЗАПИСАТЬ

КОНЕЦ_ЦИКЛА

Синтаксис II:

ИМПОРТ_ЗАПИСИ (<строка>)

<строка>
строка в формате XML, содержащая описание полей и данных.

Метод не возвращает результат.

Описание:

ИМПОРТ_ЗАПИСИ загружает содержимое строки формата XML в поля журнала. Строка может быть получена с помощью метода ЭКСПОРТ_ЗАПИСИ, из заранее считанного файла XML или вручную.

Пример 1:

файл = ФАЙЛ_ОТКРЫТЬ("клиенты.XML")

к.ИМПОРТ_ЗАПИСИ(файл.СЧИТАТЬ_ВСЕ)

См.также
Метод ЭКСПОРТ_ЗАПИСИ


КОД_АНАЛИТИКИ

Метод КОД_АНАЛИТИКИ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

КОД_АНАЛИТИКИ

Результат — строка.

Описание:

Возвращает значение ключевого поля для журналов, являющихся аналитикой счета.

Замечание!

Журнал, который является аналитикой счета, должен иметь первичный ключ, состоящий из одного поля или уникальное поле. Каких-либо условий на идентификатор этого поля нет, это может быть «код», «номер», «ид» и т.д. Поэтому при работе с абстрактным объектом-аналитикой для получения значения этого ключевого поля может использоваться метод КОД_АНАЛИТИКИ.

Пример:

ОТЛАДКА(товары.КОД_АНАЛИТИКИ, товары.название)

См.также
Метод ЖУРНАЛ


КОЛ_ДЕТАЛЕЙ

Метод КОЛ_ДЕТАЛЕЙ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

КОЛ_ДЕТАЛЕЙ[(<журнал>[,<ссылка>])]

<журнал>
определяет идентификатор нужного подчиненного журнала.

<ссылка>
поле для связи с журналом.

Результат — число.

Описание:

КОЛ_ДЕТАЛЕЙ — возвращает кол-во записей в подчиненном журнале детализации.

Замечание!

Дополнительный параметр <журнал> определяет идентификатор нужного подчиненного журнала. Если его нет, программа ищет подчиненный журнал по-умолчанию. Таковым является журнал, ссылающийся свлим полем IDLINK (в базе данных) на поле ID (в базе данных) текущего журнала. Ну а уж если <журнал> является журналом детализации в нескольких контекстах, можно указать нужный контекст по имени ссылки (REFERENCE) в базе данных.

Пример:

сумма=0

ж ЭТО накладные

ЦИКЛ ДЛЯ (и = 1, ж.КОЛ_ДЕТАЛЕЙ(накладные_доп))

жд = ж.ДЕТАЛИЗАЦИЯ(и,накладные_доп)

сумма = сумма + жд.цена * жд.вес

КОНЕЦ_ЦИКЛА

СООБЩЕНИЕ("Общая сумма документа: " + СТР(сумма,20,2))

См.также
Метод ДЕТАЛИЗАЦИЯ
ЦИКЛ ДЕТАЛИ


МИНИМУМ, МАКСИМУМ

Методы МИНИМУМ, МАКСИМУМ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

МИНИМУМ, МАКСИМУМ

Результат зависит от поля.

Описание:

Методы МИНИМУМ, МАКСИМУМ — возвращают минимальное (максимальное) значение поля. Здесь <поле> - поле того объекта, для которого вызывается метод. Для полей строкового типа: строк, счетов, объектов при сравнении используется алфавитный порядок. Для полей логического типа НЕТ < ДА. Если журнал отфильтрован, то вычисляется минимум (максимум) по отфильтрованным записям. Если журнал пуст, то выдает сообщение об ошибке.

Пример:

ф = накладные.ФИЛЬТР

ф.дата_от = ДАТА_НАЧ

ф.дата_до = ДАТА_КОН

ф.код_шаб = "лыжи"

ф.ПРИМЕНИТЬ

СООБЩЕНИЕ("Колебание цен за текущий период от " +

СТР(накладные.МИНИМУМ(цена)) + " до " + СТР(накладные.МАКСИМУМ(цена)))

Замечание!

Не рекомендуется использовать метод МАКСИМУМ для получения значения следующего номера. С помощью этого метода нельзя получить уникальный номер в случае, если с программой работают более одного пользователя одновременно. Используйте генераторы или функцию НОМЕР для этого.


ДОБАВИТЬ_ГР, ЗАПИСАТЬ_ГР, УДАЛИТЬ_ГР, ИЗМЕНИТЬ_ГР

Методы ДОБАВИТЬ_ГР, ЗАПИСАТЬ_ГР, УДАЛИТЬ_ГР, ИЗМЕНИТЬ_ГР

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ДОБАВИТЬ_ГР [!] [(<ключ>)]
ЗАПИСАТЬ_ГР [!] [(<ключ>)]
УДАЛИТЬ_ГР [!] [(<ключ>)]
ИЗМЕНИТЬ_ГР [!] (<параметры как в функции ИЗМЕНИТЬ>,<ключ>)

Описание:

Методы ДОБАВИТЬ_ГР, ЗАПИСАТЬ_ГР, УДАЛИТЬ_ГР, ИЗМЕНИТЬ_ГР предназначены для групповой обработки данных. При массовых изменениях в данных групповые методы работают быстрее, чем их одиночные аналоги.

Методы вызываются без параметров или с указанием необязательного строкового параметра <ключ>, который позже может быть обработан в функции КОНЕЦ_ГР.

Предназначение групповых методов:

ДОБАВИТЬ_ГР | добавление записи, аналог метода ДОБАВИТЬ!!(НЕТ)
ЗАПИСАТЬ_ГР | изменение записи, аналог метода ЗАПИСАТЬ!!
УДАЛИТЬ_ГР | удаление записи, аналог метода УДАЛИТЬ!!
ИЗМЕНИТЬ_ГР | групповое изменение нескольких записей или групповое преобразование данных, аналог ИЗМЕНИТЬ

Никакие обработчики не вызываются при выполнении групповых методов. В момент вызова этих методов фактически совершаемое ими изменение может не производится. Вместо этого, изменения запоминаются, накапливаются и будут выполнены одной командой позже. Фактическое выполнение действий происходит при:

1.Завершении работы алгоритма

2.Выполнении функции КОНЕЦ_ГР

3.Выполнении функции ПОДТВЕРДИТЬ перед подтверждением транзакции

Групповые методы в случае неудачи не генерируют ошибку. Ошибка может быть выдана позже при фактическом исполнении действия. Избежать появления ошибки в неожиданном месте может использование функции КОНЕЦ_ГР. Также для групповых методов можно указать параметр <ключ>. С указанием параметра эти методы начинают работать по-другому. В этом случае ошибка при невозможности выполнить операции выдаваться не будет. А при необходимости узнать о ней можно будет с помощью параметра <ошибочные операции> функции КОНЕЦ_ГР. Если указать ! (восклицательный знак), то при наличии ошибок функции работают быстрее, но текст ошибки не возвращают.

Пример ниже производит массовое изменение кодов клиентов в справочнике.

Пример:

// Изменяем код клиента в справочнике, добавляя в начало кода символ #
ЦИКЛ ПО ЖУРНАЛУ клиенты кл

кл.код = "#" + кл.код

кл.ЗАПИСАТЬ_ГР

КОНЕЦ_ЦИКЛА
КОНЕЦ_ГР


НАЗВАНИЕ

Метод НАЗВАНИЕ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

НАЗВАНИЕ(<поле объекта>[,<новое>])

<поле объекта>
название поля журнала.

<новое>
при задании параметра, возвращает название поля.

Результат — строка.

Описание:

Метод НАЗВАНИЕ возвращает или устанавливает название поля журнала. Название поля определяет заголовок колонки таблицы и подпись в диалоге и задается при редактировании структуры журнала. Если параметр <новое> не задан, функция возвращает название поля. Для того чтобы изменить название поля, надо указать новое название в параметре <новое> строкового типа.

Есть два варианта поведения этого обработчика в зависимости от ситуации.

I. Метод вызывается из обработчика вид журнала. Тогда он изменяет заголовок колонки таблицы и подпись в диалоге, которая будет по-умолчанию такой же как заголовок колонки (Если, конечно, в названии не используется символ "|" — отделяющий названия колонки в таблице и в диалоге). Измененное название сохранится до следующего вызова этого обработчика. Таким образом, поле может иметь разные названия под разными видами журнала или зависеть от значения определений или реквизитов.

II. Метод вызывается не из обработчика вид журнала. Тогда изменение названия поля повлияет только на подпись в диалоге. Название колонки в таблицы останется таким же как и до вызова метода. Например, из обработчика при изменении поля можно изменять название какого-то другого поля в диалоге.

Измененное название сохранится до конца сеанса работы с программой.

Пример:

ЕСЛИ ВОПРОС("Учитывать " + тов.НАЗВАНИЕ(акциз)) ТО

Сумма = Сумма + тов.акциз

КОНЕЦ_ЕСЛИ

// Если название поля акциз определяется как "Акциз", то вопрос будет "Учитывать Акциз ?"

// Можно заменить название поля с "Акциз" на "Налог на ГСМ", тогда на экране появится

// "Учитывать Налог на ГСМ". Модифицировать исходный текст бланка в таком случае не надо


НАЙТИ

Метод НАЙТИ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

НАЙТИ(<условие> [, [<сортировка>] ] [, <игнорировать фильтр>])

<условие>
условие поиска записи в журнале.

<сортировка>
при использовании, осуществляется выбор первой записи по указанному порядку.

<игнорировать фильтр>
параметр логического типа, определяющий будет ли игнорироваться опция Действие на отчеты в настройках фильтра.

Результат — логика.

Описание:

Метод НАЙТИ осуществляет поиск записи в журнале по заданному условию. В случае если удалось найти такую запись, поля объекта заполняются значениями этой записи. Если нет — поля объекта очищаются (принимают значение по умолчанию). Возвращаемый результат логического типа означает, была ли найдена запись, удовлетворяющая данному условию или нет.

Если под условие поиска попадает несколько записей, она выбирает первую попавшуюся. Если дополнительно указан параметр <сортировка> будет выбрана первая запись по указанному порядку.

Условие может быть наложено только на поля этого журнала, в противном случае будет выдано сообщение об ошибке. При такой необходимости можно использовать конструкцию ВЫБРАТЬ.

Пример:

Допустим, что у нас есть журнал контрагентов, и каждый контрагент имеет свой уникальный код. Тогда, для поиска данного контрагента необходимо написать следующее:

ЕСЛИ клиенты.НАЙТИ(код = "Глория") ТО

ВЫВЕСТИ(1,1, "Название : " + клиенты.название)

ВЫВЕСТИ(1,2, "Адрес : " + клиенты.адрес)

ИНАЧЕ

СООБЩЕНИЕ("Контрагент не найден")

КОНЕЦ_ЕСЛИ


НОВАЯ

Метод НОВАЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

НОВАЯ

Результат — логика.

Описание:

Метод НОВАЯ возвращает значение логического типа, означающее, была ли запись считана из журнала, или она была создана заново.

Замечание!

При использовании конструкции ЦИКЛ ПО ЖУРНАЛУ НОВАЯ возвращает НЕТ в случае инициализации ключевого поля (полей). Это позволяет отследить, считана или нет запись при использовании связок. Если используются модификатор выборки с указанием перечня полей, значение НОВАЯ будет зависить от того, указано ключевое поле (поля) в перечне или нет.

Пример:

ЕСЛИ НЕ НОВАЯ ТО

старая_запись = СТАРАЯ

// Выполняем функцию удаления для предыдущей записи

старая_запись.ПередУдалением

// ...

КОНЕЦ_ЕСЛИ

См.также
Метод СТАРАЯ


ОБНОВИТЬ

Метод ОБНОВИТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ОБНОВИТЬ

Результат — логика.

Описание:

Метод ОБНОВИТЬ заставляет программу сделать запрос к серверу для получения данных из указанного журнала. Обновление происходит не в момент выполнения метода ОБНОВИТЬ а уже после завершения транзaкции. Если на экране открыты окна с отображением данных журнала, программа для всех них:

1.выполнит запрос для получения данных

2.перерисует содержимое окна согласно новым данным, применит вид и обновит строку статуса
(см.детали в "ИЗМЕНЕН")

Пример:

накладные.ОБНОВИТЬ

Замечание!

Необходимость в этом методе может возникнуть вследствие изменений в данных журнала, произошедших вне программы:

·изменения, полученные после выполнения хранимых процедур и триггеров

·при наличии вычислимых полей в журнале — изменения в других журналах, если их данные используются для получения значения вычислимого поля

·изменения в журналах-представлениях использующих журналы, в которых произошли изменения

·изменения, внесенные другими пользователями

См.также
Метод ИЗМЕНЕН


ОБНОВИТЬ_СПИСОК

Метод ОБНОВИТЬ_СПИСОК

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ОБНОВИТЬ_СПИСОК(<поле объекта>)

<поле объекта>
название поля журнала.

Описание:

Данный метод нужен при использовании вариантов выбора Выбор из списка и Редактируемый список (настраивается в диалоге настройки выбора).

При редактировании записи журнала списки создаются один раз. Если нужно обновить содержимое списка используется этот метод.

Пример:

ОБНОВИТЬ_СПИСОК(выбор)


ОПЕРАЦИЯ_ДОБАВЛЕНИЯ

Метод ОПЕРАЦИЯ_ДОБАВЛЕНИЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ОПЕРАЦИЯ_ДОБАВЛЕНИЯ(<название операции>)

<название операции>
название типовой операции

Описание:

При вызове функции из обработчика вид журнала она переопределяет действия программы при добавлении пользователем записи в журнал. Вместо действия по умолчанию будет вызываться указанная типовая операция.

Передача в качестве названия операции пустой строки возвращает стандартную обработку добавления.

Замечание!

Функция не влияет на добавление записей средствами внутреннего языка и на поведение обработчиков при добавлении.

Пример:

ОПЕРАЦИЯ_ДОБАВЛЕНИЯ("Действия : добавление")


ОПЕРАЦИЯ_ИЗМЕНЕНИЯ

Метод ОПЕРАЦИЯ_ИЗМЕНЕНИЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ОПЕРАЦИЯ_ИЗМЕНЕНИЯ(<название операции>)

<название операции>
название типовой операции

Описание:

При вызове функции из обработчика вид журнала она переопределяет действия программы при изменении пользователем записи в журнале. Вместо действия по умолчанию будет вызываться указанная типовая операция.

Передача в качестве названия операции пустой строки возвращает стандартную обработку изменения.

Замечание!

Функция не влияет на изменение записей средствами внутреннего языка и на поведение обработчиков при изменении.

Пример:

ОПЕРАЦИЯ_ИЗМЕНЕНИЯ("Действия : изменение")


ОПЕРАЦИЯ_УДАЛЕНИЯ

Метод ОПЕРАЦИЯ_УДАЛЕНИЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ОПЕРАЦИЯ_УДАЛЕНИЯ(<название операции>)

<название операции>
название типовой операции

Описание:

При вызове функции из обработчика вид журнала она переопределяет действия программы при удалении пользователем записи из журнала. Вместо действия по умолчанию будет вызываться указанная типовая операция.

Передача в качестве названия операции пустой строки возвращает стандартную обработку удаления.

Замечание!

Функция не влияет на удаление записей средствами внутреннего языка и на поведение обработчиков при удалении.

Пример:

ОПЕРАЦИЯ_УДАЛЕНИЯ("Действия : удаление")


ОСНОВНАЯ

Метод ОСНОВНАЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ОСНОВНАЯ[(<журнал>)]

<журнал>
идентификатор нужного основного журнала.

Результат — журнал.

Описание:

ОСНОВНАЯ возвращает основную запись для данной записи подчиненного журнала. Метод ОСНОВНАЯ является конструктором объекта ЖУРНАЛ. При его использовании создается новый объект типа ЖУРНАЛ основного журнала, для которого этот является подчиненным. Вызов может осуществляться только для записи, полученной при помощи метода ДЕТАЛИЗАЦИЯ.

Дополнительный параметр <журнал> определяет идентификатор нужного основного журнала. Он используется только для проверки того, что подчиненная запись является детализацией данного основного журнала.

Пример 1:

накл.ПЕРВАЯ

тов = накл.ДЕТАЛИЗАЦИЯ(1)

накл_копия = тов.ОСНОВНАЯ

ЕСЛИ накл_копия = накл ТО

// Последовательное применение методов ДЕТАЛИЗАЦИЯ и ОСНОВНАЯ

// всегда приведет к тождественному результату

СООБЩЕНИЕ("Тест верен")

КОНЕЦ_ЕСЛИ

Замечание!

Дополнительный параметр <журнал> определяет идентификатор нужного основного журнала. Если его нет, программа ищет основной журнал по умолчанию. Таковым является журнал, имеющий поле ID (в базе данных), на которое ссылается поле IDLINK (в базе данных) текущего журнала.

См.также
Метод ДЕТАЛИЗАЦИЯ


ОСНОВНАЯ_СУЩ

Метод ОСНОВНАЯ_СУЩ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ОСНОВНАЯ_СУЩ[(<журнал>)]

<журнал>
идентификатор нужного основного журнала.

Результат — логика.

Описание:

ОСНОВНАЯ_СУЩ сообщает о том, есть ли у записи основная. Метод ОСНОВНАЯ выдает ошибку в случае отсутствия основной записи. Проверить ее наличие можно при помощи ОСНОВНАЯ_СУЩ.

Дополнительный параметр <журнал> определяет идентификатор нужного основного журнала. Он используется только для проверки того, что подчиненная запись является детализацией данного основного журнала.

Пример 1:

ЕСЛИ тов.ОСНОВНАЯ_СУЩ ТО

накл_копия = тов.ОСНОВНАЯ

КОНЕЦ_ЕСЛИ

См.также
Метод ОСНОВНАЯ


ОЧИСТИТЬ

Метод ОЧИСТИТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ОЧИСТИТЬ[(<условие>)]

<условие>
указать, какие записи надо удалять.

Результат — логика.

Описание:

Метод ОЧИСТИТЬ — очищает журнал (удаляет ВСЕ записи или записи, удовлетворяющие указанному условию). Перед тем как очистить запрашивает подтверждение пользователя. Если журнал имеет подчиненные журналы, то они очищаются также. Функция возвращает логическое значение, означающее, действительно ли очистился журнал, или нет. Если в процессе удаления записей возникла ошибка, дальнейший расчет останавливается. Обычно результатом ошибки может стать ссылочная целостность, не поддерживающая каскадное удаление записей или блокировка записей журнала другими пользователями.

При помощи необязательного параметра <условие> может указать, какие записи надо удалять. Параметр является выражением логического типа. Оно не может содержать ссылки на другие журналы, кроме этого журнала (если, конечно, они не используются в подзапросах).

Замечание!

Возможен синтаксис ОЧИСТИТЬ!, в этом случае запрос на очистку журнала не выводится.

Пример:

накладные.ОЧИСТИТЬ(дата < ДАТА_НАЧ) // Удалим операции до начала отчетного периода


ПОДСВЕТКА

Метод ПОДСВЕТКА

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ПОДСВЕТКА(<текст>[,<фон>])

<текст>
параметр, задающий цвет текста.

<фон>
параметр, задающий цвет фона записи журнала в таблицах.

Метод не возвращает результат.

Замечание!

Кроме метода ПОДСВЕТКА, есть функция сервера ПОДСВЕТКА. Она используется при задании подсветки конкретных полей при редактировании структуры журнала или при создании курсора.

Описание:

Метод ПОДСВЕТКА изменяет тип подсветки записи журнала. Параметр <текст> задает цвет текста, <фон> — цвет фона записи журнала в таблицах. Параметр <фон> может быть опущен. По умолчанию используется стандартный цвет текста (обычно черный) и фона (обычно белый) исходя из настроек операционной системы. Также для указания цвета в старых конфигурациях можно встретить значения:

1 цвТемноСиний — Темно-синий

0 цвЧерный — Черный

-1 цвКрасный — Красный

Для задания подсветки записи можно также использовать следующие поля:

цвет_текста | Позволяет получить или установить цвет текста
цвет_фона | Позволяет получить или установить цвет фона

Пример:

ФУНКЦИЯ ЖУРНАЛ(товары) ПередДобавлением

// Выполняем необходимые действия перед добавлением записи в журнал "товар"

ЕСЛИ уч_цена = 0 ТО

ПОДСВЕТКА(цвБелый, цвКрасный) // ошибочные записи подсветим красным

ИНАЧЕ

ПОДСВЕТКА(цвЧерный, цвБелый) // все прочие используют стандартную подсветку

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ


ПОЛЕ

Метод ПОЛЕ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ПОЛЕ(<имя поля> [, <по умолчанию>])

<имя поля>
дополнительное поле журнала или
поле архива для журнала бухоперации

<по умолчанию>
если значение не существует возвращает значение <по умолчанию>.

Результат — различный.

Описание:

Позволяет считывать дополнительные поля журналов. Для доступа к дополнительным полям необходимо в параметрах журнала включить опцию Доступны дополнительные поля. Если поле не существует возвращает значение <по умолчанию>. Если значение по умолчанию не задано, возвращает ПУСТО. Тип результата зависит от поля и может быть любым.

Для журнала бухоперации метод ПОЛЕ возвращает значение поля созданного при помощи АРХИВ.

Пример:

СООБЩЕНИЕ(бухоперации.ПОЛЕ("опл"))

См.также
Метод ЗАП_ПОЛЕ
Метод ЕСТЬ_ПОЛЯ
ЦИКЛ ПОЛЯ


ПРИМЕНИТЬ_ВИД

Метод ПРИМЕНИТЬ_ВИД

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ПРИМЕНИТЬ_ВИД[!][(<вид>)]

!
параметр вызывает обработчик вида журнала.

<вид>
определяет список отображаемых полей и их порядок.

Метод не возвращает результат.

Описание:

Метод ПРИМЕНИТЬ_ВИД используется для установки текущего вида журнала. Для этого в параметре <вид> указывается нужный вид журнала. Рекомендуется использовать этот метод при работе с видами журнала и вызывать его в самом начале алгоритма для указания текущего рабочего вида. Это избавит от указания этого вида каждый раз при вызове функций СТАРТ_ЖУРНАЛ, ВЫБОР_ЗАПИСИ, РЕДАКТИРОВАТЬ. Укажите ! (восклицательный знак) после имени функции для вызова обработчика вид журнала.

Замечание!

Изменение текущего вида при помощи ПРИМЕНИТЬ_ВИД никак не отражается на открытых окнах редактора журнала или диалогах редактирования записи журнала — они продолжают использовать тот вид, с которым были запущены. Изменение влияет лишь на функции СТАРТ_ЖУРНАЛ и др., которые будут вызываться после метода ПРИМЕНИТЬ_ВИД и не будут содержать явного указания на используемый вид журнала. Для того чтобы отразить изменение вида на открытых окнах, надо вызвать метод ИЗМЕНЕН

Пример:

// Установим текущий вид "полный"

сотрудники.ПРИМЕНИТЬ_ВИД("полный")

// Установим текущий вид "полный" и вызовем обработчик вида журнала

сотрудники.ПРИМЕНИТЬ_ВИД!("полный")

// Вызовем принудительно обработчик вида журнала, текущий вид менять не будем

сотрудники.ПРИМЕНИТЬ_ВИД!


ПРОВЕСТИ

Метод ПРОВЕСТИ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ПРОВЕСТИ[(<диалог>)]

<диалог>
логический признак, задающий вывод диалога новой бухгалтерской операции.

Результат — логика.

Описание:

ПРОВЕСТИ — проводит документ (запись журнала) в бухгалтерии.

Для выполнения функции необходимо иметь обработчик Проводки. При проведении можно указать дополнительные параметры. Параметр <диалог> означает, что будет выводиться диалог новой бухгалтерской операции, где пользователь может изменить параметры связанной операции; по умолчанию <диалог> = ДА. Если документ уже проводился в бухгалтерии, то ПРОВЕСТИ заменит проводки операции, относящиеся к этому документу на новые. Проводки, относящиеся к другому документу и проводки, добавленные пользователем вручную, останутся. Такие параметры, как название, документ и дата бухгалтерской операции меняться не будут.

Метод возвращает ДА, если были сформированы проводки, НЕТ в противном случае (то же самое можно узнать и с помощью проведено).

Для проведения существующих документов у пользователя должен быть открыт доступ к проведенной операции включая возможность удалять всю операцию.

Пример:

ЦИКЛ ПО ЖУРНАЛУ накладные н (НЕ проведено)

н.ПРОВЕСТИ(НЕТ)

КОНЕЦ_ЦИКЛА


РЕДАКТИРОВАТЬ

Метод РЕДАКТИРОВАТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

РЕДАКТИРОВАТЬ[(<вид диалога>[ [ <название параметра>:<значение>[:<видимость>], ... ] ])]

<вид диалога>
строка, определяет список отображаемых полей и их порядок.

<название параметра>
добавляет параметр-флажок в диалог редактирования записи; флажок будет располагаться внизу окна, слева от кнопки <ОК>.

<значение>
логическая переменная, задающая значение параметра; в неё же будет помещен результат после закрытия диалога.

<видимость>
логика, определяет видимость флажка; не обязательный параметр, по умолчанию все параметры видны.

Результат — логика.

Описание:

Метод РЕДАКТИРОВАТЬ позволяет пользователю изменить конкретную запись журнала с помощью диалогового окна. Этот метод возвращает ДА, если при редактировании была нажата кнопка <OK>, и НЕТ, если была нажата кнопка <Отмена>.

Если журнал имеет несколько видов и надо указать конкретный вид диалога, то он указывается в параметре <вид диалога>. Более того, это даже необходимо, ведь без указания вида программа использует текущий (последний использовавшийся) вид, и, кто знает, какую форму будет иметь диалог.

В диалог редактирования записи можно добавить один или несколько флажков для того, чтобы пользователь мог задать какие-то дополнительные действия с записью. Для этого после указания вида журнала надо в квадратных скобках указать <название параметра> и переменную <значение>, из которой будет считано значение при открытии диалога и записано значение при нажатии на кнопку <OK>.

Замечание!

Какое бы значение не имела опция "Редактор записи" в параметрах журнала, диалог редактирования всегда будет модальным. Чтобы редактировать в форме, надо использовать метод СТАРТ_ЗАПИСЬ.

Пример:

н.РЕДАКТИРОВАТЬ


СОХРАНИТЬ

Метод СОХРАНИТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

СОХРАНИТЬ[(<поле>=<значение>[,...])]

<поле>
наименование поля по умолчанию.

<значение>
значение поля по умолчанию.

Метод не возвращает результат.

Описание:

Метод СОХРАНИТЬ устанавливает значения полей по умолчанию. Значения по умолчанию используются для инициализации объекта ЖУРНАЛ, а также для инициализации полей диалога при вводе новой записи в редакторе журнала. Измененные значения действуют только до завершения работы программы. В зависимости от присутствия параметров метод СОХРАНИТЬ разделяется на два варианта:

Вариант I. Без параметров метод СОХРАНИТЬ сохраняет текущие значения полей записи объекта как значения по умолчанию.

Пример:

накл.СОХРАНИТЬ

Вариант II. С параметрами метод СОХРАНИТЬ устанавливает указанные значения указанных полей как значения по умолчанию.

Пример:

накладные.СОХРАНИТЬ(дата = ДАТА_ТЕК, основание = "По договору ...")


СТАРАЯ

Метод СТАРАЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис I:

СТАРАЯ

Результат — журнал.

Описание:

В таком синтаксисе метод СТАРАЯ возвращает старый экземпляр записи. Тип результата — ЖУРНАЛ. Запись должна быть считана из журнала, в противном случае выводит сообщение об ошибке.

Пример:

старая_запись = СТАРАЯ

// Выполняем функцию удаления для предыдущей записи

старая_запись.ПередУдалением

// Выполняем функцию добавления для этой записи

ПередДобавлением

Синтаксис II:

СТАРАЯ(<поле объекта>)

Результат зависит от типа поля.

Описание:

В таком синтаксисе метод СТАРАЯ возвращает:

1.Предыдущее значение поля (до его изменения) в обработчиках при изменении поля и при изменении полей. Тип результата такой же как и тип поля.

2.Предыдущее значение поля (до начала редактирования записи) в других обработчиках.

При вызове функции из другого места, а также в случае, если значение поля не изменилось, возвращает то же самое значение.

Пример:

ЕСЛИ СТАРАЯ(сумма) <> сумма ТО

// Изменилось значение сумма

КОНЕЦ_ЕСЛИ

Пример:

// При вызове метода не из обработчика при изменении поля, будут равносильны следующие строки

старая_запись = запись.СТАРАЯ

ОТЛАДКА(старая_запись.сумма)

// равносильна этой строке

ОТЛАДКА(запись.СТАРАЯ(сумма))

См.также
Метод НОВАЯ


СТАРТ_ЗАПИСЬ

Метод СТАРТ_ЗАПИСЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

СТАРТ_ЗАПИСЬ[(<вид диалога>)]

<вид диалога>
определяет список отображаемых полей и их порядок.

Результат - логика.

Описание:

Метод СТАРТ_ЗАПИСЬ открывает окно редактирования записи. В отличие от метода РЕДАКТИРОВАТЬ редактирование будет не в диалоге, а в форме. Другие отличия от РЕДАКТИРОВАТЬ:

·Функция не ждет от пользователя завершения работы с редактором, исполнение алгоритма продолжится мгоновенно сразу после открытия окна редактирования записи.

·Функция работает только с существующими записями. Если в поля записи были внесены изменения, внутри редактора они не будут видны. Чтобы изменения стали видны, надо вызвать ЗАПИСАТЬ перед этим.

Если журнал имеет несколько видов и надо указать конкретный вид окна редактора, то он указывается в параметре <вид диалога>. Более того, это даже необходимо, ведь без указания вида программа использует текущий (последний использовавшийся) вид, и, кто знает, какую форму будет иметь окно редактора.

Функция возвращает логическое значение. Если окно редактирования записи было открыто, вернет ДА. Возможна ситуация, когда окно редактирование записи уже было открыто на момент вызова метода. В этом случае новое окно не открывается, активируется существующее окно, а метод возвращает НЕТ.

Пример:

н.СТАРТ_ЗАПИСЬ

См.также
Функция СТАРТ_ТЕРМИНАЛ
Функция ЗАКРЫТЬ


СУММА

Метод СУММА

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

СУММА(<поле>)

<поле>
поле того объекта, для которого вызывается метод.

Результат — число.

Описание:

Метод СУММА — возвращает сумму по данному полю. Здесь <поле> — поле того объекта, для которого вызывается метод. Сумма может подсчитываться по полям числового типа. (в определении журналов число или целый). Если журнал отфильтрован, то сумма вычисляется по отфильтрованным записям. Если журнал пуст, выдает сообщение об ошибке.

Пример:

ЕСЛИ й.ВСЕГО = 0 ТО

Долг = 0

ИНАЧЕ

Долг = й.СУММА(сумма)

КОНЕЦ_ЕСЛИ

СООБЩЕНИЕ("Сумма долга " + СТР(Долг))


ТЕКУЩИЙ_ВИД

Метод ТЕКУЩИЙ_ВИД

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ТЕКУЩИЙ_ВИД

Результат — строка.

Описание:

Метод ТЕКУЩИЙ_ВИД возвращает текущий установленный вид.

Пример:

основ = ?(тов.ТЕКУЩИЙ_ВИД = "накладные", "Оплата по накладной № ",

"Оплата по счету № ")

ошибка = ?(тов.ТЕКУЩИЙ_ВИД = "накладные", "Накладная полностью оплачена",

"Счет полностью оплачен")


ТИП_ПОЛЯ

Метод ТИП_ПОЛЯ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ТИП_ПОЛЯ(<поле объекта>)

<поле объекта>
название поля журнала.

Результат — строка.

Описание:

Метод ТИП_ПОЛЯ возвращает тип поля объекта в виде строки. Тип поля не всегда совпадает с типом значения в этом поле, т.к. тип значения может принимать ПУСТО.

Пример:

// Числовое поле "акциз" для новой записи содержит значение ПУСТО, поэтому
// тип поля ЧИСЛО, а тип значения поля ПУСТО

ОТЛАДКА(ФОРМАТ("Тип поля *. Тип значения поля *.", тов.ТИП_ПОЛЯ(акциз), ТИП(тов.акциз)))

См.также
Функция ТИП


УДАЛИТЬ

Метод УДАЛИТЬ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

УДАЛИТЬ[(<номер записи>[,<журнал>[,<ссылка>]])]

<номер записи>
запись детализации для удаления.

<журнал>
определяет идентификатор нужного подчиненного журнала

<ссылка>
поле для связи с журналом.

Результат — логика.

Описание:

В зависимости от присутствия параметра <номер записи> метод УДАЛИТЬ разделяется на два варианта:

Вариант I. Параметр <номер записи> присутствует. Тогда УДАЛИТЬ удаляет запись детализации с номером <номер записи>. Функция возвращает ДА, если запись удалось удалить и НЕТ в противном случае. Если запись не существует, выдает ошибку.

Запись удаляется только "в памяти". Чтобы внести изменения в базу данных, надо вызвать ЗАПИСАТЬ для основной записи.

Замечание1

Дополнительный параметр <журнал> определяет идентификатор нужного подчиненного журнала. Если его нет, программа ищет подчиненный журнал по-умолчанию. Таковым является журнал, ссылающийся свлим полем IDLINK (в базе данных) на поле ID (в базе данных) текущего журнала. Ну а уж если <журнал> является журналом детализации в нескольких контекстах, можно указать нужный контекст по имени ссылки (REFERENCE) в базе данных.

Пример:

// Удаляем все детализации из первой записи журнала

накл.ПЕРВАЯ

ЦИКЛ ДЛЯ ( и = накл.КОЛ_ДЕТАЛЕЙ, 1, - 1) // Только так! В обратном порядке.

накл.УДАЛИТЬ(и)

КОНЕЦ_ЦИКЛА

накл.ЗАПИСАТЬ // Записываем измененую запись журнала. Тогда-то

// и происходит физическое удаление детализации

Замечание2

Порядок записей детализации может отличаться в зависимости от того, откуда был вызван алгоритм. Например, в алгоритмах, вызываемых из контекстного меню в диалоге редактирования записи журнала по кнопке, порядок следования записей детализации таков, каков он на экране в таблице редактирования записи (а таблица может быть отсортирована по одной или нескольким колонкам). При добавлении записи детализации, позиция добавленной записи может отличаться от последней. Узнать ее номер можно с помощью метода ТЕКУЩАЯ основной записи.

Вариант II. Без параметра <номер записи> УДАЛИТЬ удаляет запись из журнала. Перед удалением выдает запрос на удаление записи. Запись должна быть предварительно считана. Если запись имеет подчиненные записи в журнале детализации, то они также удаляются.

Функция возвращает ДА, если запись удалось удалить и НЕТ в противном случае. Функция завершается по ошибке при вызове ее для новой записи.

Пример:

накл.ПЕРВАЯ // Удаляем первую запись из журнала

накл.УДАЛИТЬ

Замечание1

Возможно использование метода с восклицательным знаком УДАЛИТЬ! — тогда запрос на удаление не выдается.

Если указать !! (два восклицательных знака), т.е. писать УДАЛИТЬ!!, функция не будет вызывать действие обработчиков. В обычном режиме обработчики вызываются.


ФИЛЬТР

Метод ФИЛЬТР

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ФИЛЬТР(<условие>)

<условие>
условие фильтра журнала.

Результат — фильтр.

Описание:

ФИЛЬТР — возвращает фильтр данного журнала (подробнее см. об объекте ФИЛЬТР в применении для журналов)

Пример:

ф=накл.ФИЛЬТР

ф.дата_от=ДАТА_НАЧ

ф.дата_до=ДАТА_КОН

ф.ПРИМЕНИТЬ


ЭКСПОРТ

Метод ЭКСПОРТ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис:

ЭКСПОРТ(<файл>[,<фильтр>][,<кодировка или формат полей XML>])

<файл>
определяет файл экспорта журнала.

<фильтр>
логический признак, определяющий будет экспортироваться весь журнал, или только его отфильтрованная часть.

<кодировка или формат полей XML>
для DBF: параметр логического типа, определяет кодовую страницу;
для XML: определяет формат имен полей XML;

Результат — логика.

Описание:

Метод ЭКСПОРТ — выполняет экспорт журнала в файлы различных форматов. Параметр <файл> определяет файл, в который будет экспортироваться журнал. Если у файла не указано расширение, полагается расширение DBF. Если расширение указано, то исходя из него определяется формат файла.

Расширение | Формат файла
DBF | Файл формата DBF
XML | Файл формата XML
JRN | Внутренний формат данных; может быть открыт в другой программе Инфо-Предприятие
SQL | DML-скрипт добавления данных

Необязательный параметр <фильтр> логического типа означает, будет экспортироваться весь журнал, или только его отфильтрованная часть. По умолчанию НЕТ — фильтр игнорируется. Для экспорта только отфильтрованной части журнала достаточно указать здесь ДА, создать объект ФИЛЬТР, задать условия фильтра и выполнить для фильтра метод ПРИМЕНИТЬ.

Замечание!

Существует специальный режим "действие на отчеты", устанавливаемый пользователем в окне редактирования фильтра. Он также влияет на сохраняемые записи, но только в этом случае параметр <фильтр> игнорируется, и вне зависимости от параметров функции всегда записываются только отфильтрованные пользователем записи.

Если в процессе экспорта произойдет ошибка, например ошибка записи файла, будет выдано соответствующее сообщение об ошибке. Указание ! (восклицательного знака) после имени функции позволяет игнорировать ее. В этом случае, успешность экспорта можно узнать, проверив возвращаемый функцией результат. Если функция возвращает ДА, экспорт прошел удачно, если НЕТ — в процессе экспорта возникли ошибки.

Необязательный параметр логического типа <кодировка или формат полей XML>, для DBF-файлов определяет необходимость перекодировки символов. По умолчанию он равен ДА — кодовая страница DOS (кодовая страница 866). Если указано НЕТ — используется кодовая страница Windows (кодовая страница 1251).

Необязательный параметр логического типа <кодировка или формат полей XML>, для XML-файлов определяет формат представления полей журнала. По умолчанию он равен ДА — в файле поля будут представлены своими идентификаторами. Если указано НЕТ — поля будут представлены названиями поля в базе данных.

Пример:

ЕСЛИ ВОПРОС("Вставьте дискету в дисковод. Продолжить") ТО

накладные.ЭКСПОРТ("a:\backup.dbf")

КОНЕЦ_ЕСЛИ

См.также
Метод ИМПОРТ
Метод ЭКСПОРТ_ЗАПИСИ


ЭКСПОРТ_ЗАПИСИ

Метод ЭКСПОРТ_ЗАПИСИ

Объект "Журнал"

 Вернуться к началу раздела

Синтаксис I:

ЭКСПОРТ_ЗАПИСИ (<файл>)

<файл>
объект ХМЛ, в запись которого сохраняется запись журнала.

Метод не возвращает результат.

Описание:

ЭКСПОРТ_ЗАПИСИ сохраняет содержимое записи в записи XML файла. То же самое можно сделать и с помощью последовательного вызова методов ЗАП_ПОЛЕ для каждого поля журнала.

Пример 1:

хмл = ХМЛ_СОЗДАТЬ("клиенты")

ЦИКЛ ПО ЖУРНАЛУ клиенты! к

// Сохраняем поля записи журнала "к" в записи объекта "хмл"

к.ЭКСПОРТ_ЗАПИСИ(хмл)

// записываем в файл

хмл.ЗАПИСАТЬ

КОНЕЦ_ЦИКЛА

Синтаксис II:

ЭКСПОРТ_ЗАПИСИ (<строковая переменная>)

<строковая переменная>
строка, в которую будет помещено описание полей и данных в формате XML.

Метод не возвращает результат.

Описание:

ЭКСПОРТ_ЗАПИСИ сохраняет содержимое записи в строку. Строка имеет формат XML. Строку можно будет загрузить обратно в запись журнала с помощью метода ИМПОРТ_ЗАПИСИ.

Пример 1:

к.ЭКСПОРТ_ЗАПИСИ(стр)

См.также
Метод ИМПОРТ_ЗАПИСИ


КОНЕЦ_ФАЙЛА

Метод КОНЕЦ_ФАЙЛА

Объект "Журнал"

 Вернуться к началу раздела

Внимание!

Этот метод больше не поддерживается программой.


ПЕРВАЯ

Метод ПЕРВАЯ

Объект "Журнал"

 Вернуться к началу раздела

Внимание!

Этот метод больше не поддерживается программой.


ПЕРЕЙТИ

Метод ПЕРЕЙТИ

Объект "Журнал"

 Вернуться к началу раздела

Внимание!

Этот метод больше не поддерживается программой.


ПОСЛЕДНЯЯ

Метод ПОСЛЕДНЯЯ

Объект "Журнал"

 Вернуться к началу раздела

Внимание!

Этот метод больше не поддерживается программой.


ПРЕДЫДУЩАЯ

Метод ПРЕДЫДУЩАЯ

Объект "Журнал"

 Вернуться к началу раздела

Внимание!

Этот метод больше не поддерживается программой.


СЛЕДУЮЩАЯ

Метод СЛЕДУЮЩАЯ

Объект "Журнал"

 Вернуться к началу раздела

Внимание!

Этот метод больше не поддерживается программой.


ТЕКУЩАЯ

Метод ТЕКУЩАЯ

Объект "Журнал"

 Вернуться к началу раздела

Внимание!

Этот метод больше не поддерживается программой.

Замена:

Метод ТЕКУЩАЯ возвращал номер текущей записи. Теперь номер текущей записи возвращает ЗАП_ДЕТАЛЬ.

Пример:

текущая = ж.ЗАП_ДЕТАЛЬ(дет)

....

ж.ЗАП_ДЕТАЛЬ(дет, текущая)


Объект "Курсор"

описание поля методы конструкторы Объекты

Описание:

Объект КУРСОР предназначен для определения выборки и навигации по ней. Он может использоваться вместо ЦИКЛа ПО ЖУРНАЛУ в следующих случаях:

Если ЦИКЛ ПО ЖУРНАЛУ различается в зависимости от входных параметров. Т.е. он отличается не только условием на выбираемые записи, но и другими параметрами, например, списком перебираемых журналов, вычисляемыми агрегатными выражениями и др. См. пример.

Если необходимо выбирать записи параллельно из нескольких запросов. Оператор ЦИКЛ ПО ЖУРНАЛУ перебирает все записи удовлетворяющие условию внутри тела цикла. С помощью нескольких объектов типа КУРСОР можно определить несколько выборок и считывать данные из них по мере необходимости. См. пример.

Если надо отобразить в таблице данные, получающиеся из склейки нескольких журналов. Объект КУРСОР может быть использован в качестве аргумента функций ВЫБОР_ЗАПИСИ, СТАРТ_ЖУРНАЛ. При этом в таблице будут показываться все выбираемые курсором записи. См. пример.

Поля:

Данный объект не имеет полей.

Методы:

КОНЕЦ_ФАЙЛА | возвращает флаг конца курсора
ПЕРВАЯ | переходит на начало курсора и считывает первую запись из него
СЛЕДУЮЩАЯ | считывает следующую запись курсора
ТЕКУЩАЯ | возвращает номер текущей записи (количество уже считанных записей)
ОБЪЕДИНИТЬ | объединяет содержимое курсоров

Конструктор:

1) КУРСОР <имя> ПО [ЖУРНАЛУ] <синтаксис, аналогичный ЦИКЛ ПО ЖУРНАЛУ>

где

<имя>
имя создаваемого объекта.

Специально для использования в качестве аргумента функций ВЫБОР_ЗАПИСИ, СТАРТ_ЖУРНАЛ объявление курсора имеет следующие отличия от синтаксиса ЦИКЛа ПО ЖУРНАЛУ:

·После <идентификатор журнала> через двоеточие может указываться вид журнала;

·После параметра <выбираемое значение> (см.синтаксис) может через двоеточие следовать название колонки. Строка названия может содержать указание ширины колонки в символах и точность числа, например, так "Кол-во:6:2". Если название колонки не указано, либо название — пустая строка, то колонка отображаться в таблице не будет. Если точность не указывается, программа определяет ее сама по следующему алгоритму:
- Если выражение содержит только числовые поля с фиксированной точностью, используется максимум точности.
- Если выражение содержит числовые поля типа сумма, кол-во, цена и валюта, результат будет этого же типа.

·Результат вычисления <результат> может опускаться.

·После указания названия поле может следовать ключевое слово ПОДСВЕТКА(<цвет текста> [, <цвет фона>]), где <цвет текста> и <цвет фона> являются выражениями цикла. Они определяют цвет текста и цвет фона конкретной ячейки по аналогии с заданием подсветки при редактировании структуры журнала.

При использовании объекта КУРСОР оптимизация выборки отключена.

Пример 1:

// В зависимости от параметра "детализировать" будем пробегаться

// либо по одному журналу "накладные", либо по двум: "накладные" и "накладные_доп"

ЕСЛИ детализировать ТО

КУРСОР курсор ПО ЖУРНАЛУ накладные о, накладные_доп д (ДА)

СОРТИРОВАТЬ(о.дата,о.ид)

ИНАЧЕ

КУРСОР курсор ПО ЖУРНАЛУ накладные о

СОРТИРОВАТЬ(о.дата)

КОНЕЦ_ЕСЛИ

курсор.ПЕРВАЯ

пред_ид = - 1

ЦИКЛ ПОКА (НЕ курсор.КОНЕЦ_ФАЙЛА)

ЕСЛИ о.ид <> пред_ид ТО

// Номер и дату накладной будем выводить только один раз

ЯЧЕЙКА["Номер",курсор.ТЕКУЩАЯ] = о.ном_накл

ЯЧЕЙКА["Дата",курсор.ТЕКУЩАЯ] = о.дата

пред_ид = о.ид

КОНЕЦ_ЕСЛИ

ЕСЛИ детализировать ТО

// Детализированный отчет выводит еще и информацию о товаре

ЯЧЕЙКА["Товар",курсор.ТЕКУЩАЯ] = д.товар_название

КОНЕЦ_ЕСЛИ

ВОЗВРАТВ[курсор.ТЕКУЩАЯ] = о

курсор.СЛЕДУЮЩАЯ

КОНЕЦ_ЦИКЛА

Пример 2:

// Алгоритм, считающий учетную цену по ФИФО, но не использующий массивы

// для хранения партий в процессе расчета. Он не требует большого объема памяти

// при расчете учетной цены по ФИФО

товар ЭТО товары

ВЫБОР_ЗАПИСИ(товар, "Выберите товар, для которого надо посчитать учетную цену")

// Курсор "приход" будет проходить по всем приходам этого товара

КУРСОР приход ПО накладные_доп дприход

(накладные.тип = наклПриход И дприход.код_товара = товар.код)

СОРТИРОВАТЬ(накладные.дата)

ЕСЛИ НЕ приход.ПЕРВАЯ ТО СТОП КОНЕЦ_ЕСЛИ

// Курсор "расход" будет проходить по всем расходам этого товара

КУРСОР расход ПО накладные_доп драсход

(накладные.тип = наклРасход И драсход.код_товара = товар.код)

СОРТИРОВАТЬ(накладные.дата)

ЕСЛИ НЕ расход.ПЕРВАЯ ТО СТОП КОНЕЦ_ЕСЛИ

// Переменные, частное от которых равно учетной цене текущего расхода

уч_сумма = 0

уч_кол = 0

// Цикл проходит столько раз, сколько было приходов и расходов этого товара

// Информация будет браться поочередно то из курсора "приход", то из курсора

// "расход"

ЦИКЛ ПОКА (ДА)

// Соотнесем партию прихода и расхода

м = МИН(дприход.колич, драсход.колич)

м_сумма = ?(дприход.колич = 0, 0, м * дприход.сумма / дприход.колич)

дприход.колич -= м

дприход.сумма -= м_сумма

драсход.колич -= м

// Изменим итерационные переменные

уч_сумма += м_сумма

уч_кол += м

// Если расход исчерпан, запишем значение учетной цены в него и перейдем далее

ЕСЛИ драсход.колич = 0 ТО

драсход.учцена = ?(уч_кол = 0, 0, уч_сумма / уч_кол)

// Восстановим "испорченное" кол-во

драсход.колич = уч_кол

драсход.ЗАПИСАТЬ

// Сбрoсим значения

уч_кол = 0

уч_сумма = 0

// Переходим далее

ЕСЛИ НЕ расход.СЛЕДУЮЩАЯ ТО

СТОП

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

// Если приход исчерпан перейдем к следующему

ЕСЛИ дприход.колич = 0 ТО

ЕСЛИ НЕ приход.СЛЕДУЮЩАЯ ТО

СТОП

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

Пример 3:

// Выведем диалог выбора клиента, добавим в него колонку "Сумма" -

// общей суммой накладных для каждого клиента

КУРСОР кур ПО ЖУРНАЛУ клиент к << СУММА(накладные.сумма):"Сумма" (ДА)

ЕСЛИ ВЫБОР_ЗАПИСИ(кур) ТО

код_клиента = к.код

КОНЕЦ_ЕСЛИ


КОНЕЦ_ФАЙЛА

Метод КОНЕЦ_ФАЙЛА

Объект "Курсор"

 Вернуться к началу раздела

Синтаксис:

КОНЕЦ_ФАЙЛА

Результат — логика.

Описание:

Метод КОНЕЦ_ФАЙЛА возвращает значение ДА, если обнаружен конец курсора (больше нет данных для считывания) или курсор пуст, и значение НЕТ в противном случае.

Пример:

КУРСОР кур ПО накладные н

ЦИКЛ ПОКА (НЕ кур.КОНЕЦ_ФАЙЛА) // пока есть что выбирать

ВЫВЕСТИ(1, кур.ТЕКУЩАЯ, н.номер)

ВЫВЕСТИ(8, кур.ТЕКУЩАЯ, н.дата)

ВЫВЕСТИ(15, кур.ТЕКУЩАЯ, н.клиент)

кур.СЛЕДУЮЩАЯ // считать следующую строку

КОНЕЦ_ЦИКЛА


ОБЪЕДИНИТЬ

Метод ОБЪЕДИНИТЬ

Объект "Курсор"

 Вернуться к началу раздела

Синтаксис:

ОБЪЕДИНИТЬ(<курсор>)

где

<курсор>
другой объект типа КУРСОР.

Описание:

Метод ОБЪЕДИНИТЬ объединяет содержимое курсоров. Результирующий курсор будет содержать сначала записи исходного курсора, затем курсора, с которым его объединяют. А если последний имеет сортировку по какому-либо полю, то это объединение будет отсортировано.

Оба курсора должны выбирать одинаковое количество полей и типы этих полей должны совпадать. Если это не так, будет выдано сообщение об ошибке.

Пример:

КУРСОР кур ПО накладные н (дата <= ДАТА_НАЧ)

КУРСОР кур_другой ПО накладные н (дата > ДАТА_КОН)

кур.ОБЪЕДИНИТЬ(кур_другой)

Замечание!

Исходный курсор может не существовать, тогда ОБЪЕДИНИТЬ равносильно созданию нового курсора. При этом курсор, с которым происходит объединение, перестанет существовать.

Пример:

ПЕРЕМ КУРСОР: кур // курсор не создан, а только объявлен

КУРСОР кур_другой ПО накладные н (дата > ДАТА_КОН)

кур.ОБЪЕДИНИТЬ(кур_другой)

ЖУРНАЛ_ВЫБРАТЬ(кур_другой) // выдаст ошибку


ПЕРВАЯ

Метод ПЕРВАЯ

Объект "Курсор"

 Вернуться к началу раздела

Синтаксис:

ПЕРВАЯ

Результат — логика.

Описание:

Метод ПЕРВАЯ переходит к началу обработки данных курсора.

После выполнения метода, в переменные, описанные при объявлении курсора, будут считаны данные из базы. Если выборка не содержит ни одной записи (в этом случае метод возвратит значение НЕТ), значения переменных зависят от их типа:

·Для объектных переменных типа ЖУРНАЛ загрузятся значения полей по умолчанию, а метод НОВАЯ будет возвращать ДА.

·Обычные переменные примут значение ПУСТО.

Чтение остальных записей можно сделать при помощи метода СЛЕДУЮЩАЯ.

Пример:

кур.ПЕРВАЯ

См.также
ВЫБРАТЬ


СЛЕДУЮЩАЯ

Метод СЛЕДУЮЩАЯ

Объект "Курсор"

 Вернуться к началу раздела

Синтаксис:

СЛЕДУЮЩАЯ

Результат — логика.

Описание:

Метод СЛЕДУЮЩАЯ считывает следующую запись курсора. После выполнения метода, в переменные, описанные при объявлении курсора, будут считаны данные из базы. Если мы дошли до конца выборки, переменные примут значения в зависимости от их типа:

·Для объектных переменных типа ЖУРНАЛ загрузятся значения полей по умолчанию, а метод НОВАЯ будет возвращать ДА.

·Обычные переменные примут значение ПУСТО.

Если чтение произошло удачно, то возвращает ДА, если не удачно (мы дошли до конца выборки), то НЕТ.

Пример:

КУРСОР кур ПО накладные н

ЦИКЛ ПОКА (НЕ кур.КОНЕЦ_ФАЙЛА) // пока есть что выбирать

ВЫВЕСТИ(1, кур.ТЕКУЩАЯ, н.номер)

ВЫВЕСТИ(8, кур.ТЕКУЩАЯ, н.дата)

ВЫВЕСТИ(15, кур.ТЕКУЩАЯ, н.клиент)

кур.СЛЕДУЮЩАЯ // считать следующую строку

КОНЕЦ_ЦИКЛА


ТЕКУЩАЯ

Метод ТЕКУЩАЯ

Объект "Курсор"

 Вернуться к началу раздела

Синтаксис:

ТЕКУЩАЯ

Результат — число.

Описание:

Метод ТЕКУЩАЯ возвращает номер текущей записи (количество уже считанных записей). Сразу после определения курсора ТЕКУЩАЯ вернет 1. После каждого выполнения метода СЛЕДУЮЩАЯ возвращаемое методом ТЕКУЩАЯ значение будет увеличиваться на 1.

Пример:

СООБЩЕНИЕ("Текущая запись " + СТР(кур.ТЕКУЩАЯ))


Объект "Объект"

описание поля методы конструкторы Объекты

Описание:

Объект ОБЪЕКТ предназначен для доступа к объекту Автоматизации (OLE Automation). Для получения информации о полях, методах и свойствах объекта обращайтесь к документации соответствующей библиотеки.

Поля:

Поля объекта ОБЪЕКТ определяются объектом Автоматизации.

Методы:

ВЕРСИЯ_КОМПОНЕНТЫ | возвращает номер версии компоненты
ВКЛ_СОБЫТИЕ | включить обработку событий COM
ЗАКРЫТЬ | прекращает работу с объектом
ИНТЕРФЕЙС | возвращает используемый объектом тип интерфейса

Остальные Методы объекта ОБЪЕКТ определяются объектом Автоматизации.

Свойства:

Свойства объекта ОБЪЕКТ определяются объектом Автоматизации.

Конструктор:

1) <имя> = СОЗДАТЬ_ОБЪЕКТ(<класс> [ <библиотеки> [, <файлы> [,<предпочитаемый интерфейс> ]]])

где

<имя>
имя создаваемого объекта.

<класс>
имя класса создаваемого объекта или его глобальный уникальный идентификатор (GUID).

<библиотеки>
один или несколько (через точку с запятой) файлов библиотек, требующихся для работы объекта;

<файлы>
один или несколько вспомогательных файлов (или библиотек, не требующих регистрации);

Есть три варианта указания библиотек. Они влияют на то, как работает функция:

1.Если библиотеки указаны в виде относительного пути, то при вызове функции происходит загрузка требуемых библиотек из базы данных и регистрация их в операционной системе.

2.Если библиотеки указаны в виде абсолютного пути, то производится только регистрация, без загрузки.

3.Если библиотеки не указаны, программа считает, что класс уже зарегистрирован (внешняя программа инсталлирована на этом компьютере). Если класс не найден, выдается ошибка.

Если библиотекам с объектами автоматизации нужны какие-то вспомогательные файлы (зависимые библиотеки), которые находятся в базе данных, то они указываются во втором параметре <файлы>

Внимание!

Для регистрации библиотек необходимо, чтобы программа запускалась под правами Администратора операционной системы. Т.е. в случаях 1) и 2) нужны административные права, а в случае 3) административные права не нужны.

Замечание!

Допустимо использование конструктора СОЗДАТЬ_ОБЪЕКТ! (с восклицательным знаком) — он не выдает ошибку на этапе компиляции. Также, ошибка не выдается, если имя класса задано не строковой константой, а выражением. В помощь такому использованию конструктора дается функция ЕСТЬ_ОБЪЕКТ, которая проверяет существование класса.

2) Создается как результат вызова методов или свойств другого объекта ОБЪЕКТ.

Примеры.

Пример импорта данных из Excel | алгоритм запрашивает у пользователя файл Excel-а, а затем считывает его и отображает в отчете.
Пример импорта данных из Paradox | алгоритм запрашивает у пользователя db-файл, считывает его и отображает в отчете
Работа с базами данных Access | работа с базами данных Access из Инфо-Предприятия, пример создает базу данных, таблицу в ней, записывает и считывает из нее данные
Работа с данными через SQL | работа с базами данных используя SQL, пример запрашивает имя базы данных Firebird и выводит список таблиц и полей базы данных
Работа с файлами XML | работа с файлами XML, пример по дате запрашивает курсы валют с сервера ЦБР и отображает их в отчете.
Импорт данных из 1С | импорт данных из других программ, пример считывает из программы 1С Торговля и Склад 7.7 справочник валют и отображает его в отчете.

См. также
Объекты Автоматизации (OLE Automation)
Функция ТИП.


ЗАКРЫТЬ

Метод ЗАКРЫТЬ

Объект

 Вернуться к началу раздела

Синтаксис:

ЗАКРЫТЬ

Метод не возвращает результат.

Описание:

Метод ЗАКРЫТЬ прекращает работу с объектом в тех случаях когда это надо. Вызывать этот метод в конце работы алгоритма специально — не нужно, объект закрывается автоматически.

Пример:

о.ЗАКРЫТЬ


ВКЛ_СОБЫТИЕ

Метод ВКЛ_СОБЫТИЕ

Объект

 Вернуться к началу раздела

Синтаксис:

ВКЛ_СОБЫТИЕ [!] (<класс> : <тип класса> : <индекс обработчика> : <описание параметров> [,<параметр1>[,<параметр2>[,...]]])

<класс>
имя класса обработчика событий или его глобальный уникальный идентификатор (GUID).

<тип класса>
логическое поле, определяющее то, какой интерфейс реализует класс событий; если ДА, то интерфейс IUnknown; если НЕТ, то интерфейс IDispatch.

<индекс обработчика>
число, индекс обработчика; если обработчик только один, то указывается 1 (единица).

<описание параметров>
строковая константа, определяющая описание параметров и возвращаемого результата (синтаксис описания см. в функции ВЫЗВАТЬ);

<параметр1> и т.д
дополнительные параметры — глобальные переменные;

Метод не возвращает результат.

Описание:

Метод ВКЛ_СОБЫТИЕ включает обработку данного класса событий. При возникновении события срабатывает обработчик внешнего события.

Внимание!

Следует внимательно отнестись к описанию параметров для интерфейсов IUnknown (<тип класса> = ДА). Программа в этом случае никак не контролирует количество параметров и соответствие типов, что может приводить к аварийному завершению программы.

Внимание!

Для интерфейсов IDispatch (<тип класса> = НЕТ) действует проверка, как на типы данных, так и на количество параметров. Убрать проверку можно, указав ! (восклицательный знак) после имени метода.

Пример:

TAPI.ВКЛ_СОБЫТИЕ("{EDDB9426-3B91-11D1-8F30-00C04FB6809F}": ДА: 1: "INT,DISPATCH", TAPI_EVENT_TYPE, TAPI_EVENT_PARAM)

Еще примеры в обработчике внешнего события.


ИНТЕРФЕЙС

Метод ИНТЕРФЕЙС

Объект

 Вернуться к началу раздела

Синтаксис:

ИНТЕРФЕЙС

Результат — число.

Описание:

Метод возвращает используемый объектом тип интерфейса (без варианта АВТО). Метод полезен, когда объект создавался без указания предпочитаемого интерфейса или с указанием АВТО. Тогда с помощью этого метода можно узнать фактически используемый интерфейс.

Пример:

ЕСЛИ объект.ИНТЕРФЕЙС = NativeApi ТО

// Совершаем действия для данного интерфейса

КОНЕЦ_ЕСЛИ


ВЕРСИЯ_КОМПОНЕНТЫ

Метод ВЕРСИЯ_КОМПОНЕНТЫ

Объект

 Вернуться к началу раздела

Синтаксис:

ВЕРСИЯ_КОМПОНЕНТЫ

Результат — строка.

Описание:

Метод возвращает номер версии компоненты для типа интерфейса ILanguageExtender или NativeApi.

Пример:

СООБЩЕНИЕ("Версия " + объект.ВЕРСИЯ_КОМПОНЕНТЫ)


Импорт данных из 1С

ОБЪЕКТ: Импорт данных из 1С

Используя ОБЪЕКТ можно работать с любыми программами, являющимися серверами Автоматизации. Для примера продемонстрируем как легко перекачать данные из программы 1С Торговля и склад 7.7. Алгоритм подключится к базе данных 1С, считает справочник валют и отобразит его в отчете. Чтобы запустить демонстрационный пример, достаточно создать новый отчет и скопировать туда этот фрагмент:

ПЕРЕМ ОБЪЕКТ: вал, курс

ВЫЧИСЛИТЬ

// Запрoсить папку с базой данных (обычно в этой папке находятся файлы

// с расширением dbf, cdx, dd, md)

дир = ВЫБОР_ДИР("", "Выберите директорию с базой данных 1С")

ЕСЛИ дир = "" ТО

СТОП

КОНЕЦ_ЕСЛИ

// Подключиться к 1C, подключение зависит от используемой версии, проверяем

// все их поочередно

ЕСЛИ ЕСТЬ_ОБЪЕКТ("V77.Application") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("V77.Application") // версия зависимый ключ

ИНАЧЕ

ЕСЛИ ЕСТЬ_ОБЪЕКТ("V77S.Application") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("V77S.Application") // версия зависимый ключ, SQL версия

ИНАЧЕ

ЕСЛИ ЕСТЬ_ОБЪЕКТ("V77L.Application") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("V77L.Application") // версия зависимый ключ, локальная версия

ИНАЧЕ

ЕСЛИ ЕСТЬ_ОБЪЕКТ("V77M.Application") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("V77M.Application") // версия зависимый ключ, сетевая версия

ИНАЧЕ

ЕСЛИ ЕСТЬ_ОБЪЕКТ("V1СEnterprise.Application") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("V1СEnterprise.Application") // версия независимый ключ

ИНАЧЕ

СООБЩЕНИЕ("Не удалось найти программу 1С")

СТОП

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

// Подключиться к базе данных 1С

ЕСЛИ (о.Initialize(о.RMTrade, "/d""" + дир + """", "NO_SPLASH_SHOW") = НЕТ) ТО

СООБЩЕНИЕ("Ошибка открытия базы данных")

СТОП

КОНЕЦ_ЕСЛИ

// Получить данные из справочника валют с курсом на текущую дату

вал = о.CreateObject("Справочник.Валюты")

вал.ВыбратьЭлементы()

запись = 1

ЦИКЛ ПОКА (вал.ПолучитьЭлемент() = 1)

ЯЧЕЙКА["Код", запись] = вал.Код

ЯЧЕЙКА["Наименование", запись] = вал.Наименование

ЯЧЕЙКА["Полное наименование", запись] = вал.ПолнНаименование

курс = вал.Курс

ЯЧЕЙКА["Курс":2, запись] = курс.Получить(СТР(ДАТА_ТЕК))

запись++

КОНЕЦ_ЦИКЛА

КОНЕЦ


Импорт данных из Excel

ОБЪЕКТ: Импорт данных из Excel

Следующий пример отчета использует ОБЪЕКТ для обращения к Microsoft Excel. Алгоритм запрашивает у пользователя файл Excel-а, а затем считывает его и отображает в отчете. Для работы примера необходимо, чтобы на компьютере был установлен Excel. Чтобы запустить демонстрационный пример, достаточно создать новый отчет и скопировать туда этот фрагмент:

ПЕРЕМ ОБЪЕКТ: книга, лист, границы, строки, столбцы, ячейка

ВЫЧИСЛИТЬ

// Выбрать файл для импорта

файл = ВЫБОР_ФАЙЛА("", "", "Файлы Microsoft Excel", "XLS")

ЕСЛИ файл = "" ТО

СТОП

КОНЕЦ_ЕСЛИ

// Создаем объект для доступа к Excel

о = СОЗДАТЬ_ОБЪЕКТ("Excel.Application")

// Открыть файл в Excel'е

книга = о.Workbooks

книга.Open(файл)

// Получить активную книгу и выбрать в ней первый лист

книга = о.ActiveWorkbook

лист = книга.Worksheets[1]

// Получить диапазон использованных ячеек на листе

границы = лист.UsedRange

строки = границы.Rows

столбцы = границы.Columns

// Перенести данные в программу

ЦИКЛ ДЛЯ (и = 1, строки.Count)

ЦИКЛ ДЛЯ (й = 1, столбцы.Count)

ячейка = лист.Cells[и, й]

ЯЧЕЙКА[й, и] = ячейка.Value

КОНЕЦ_ЦИКЛА

КОНЕЦ_ЦИКЛА

// Пометить книгу как сохраненную (чтобы не было вопросов "Сохранить изменения?") и закрыть Excel

книга.Saved = ДА

о.Quit

КОНЕЦ


Импорт данных из Paradox

ОБЪЕКТ: Импорт данных из Paradox

Следующий пример отчета использует ОБЪЕКТ для импорта данных из Paradox (файлов с расширением db). Например, это могут быть таблицы базы данных от Инфо-Предприятие 1-ой версии. Алгоритм запрашивает у пользователя файл, а затем считывает его и отображает в отчете. Алгоритм использует DAO для доступа к базе данных. DAO входит в состав Windows. При необходимости, самую последнюю версию DAO можно скачать здесь: http://msdn.microsoft.com/data/mdac. Чтобы запустить демонстрационный пример, достаточно создать новый отчет и скопировать туда этот фрагмент:

ПЕРЕМ ОБЪЕКТ: бд, запрос, поля, поле

ВЫЧИСЛИТЬ

// Запрoсить файл для импорта

файл = ВЫБОР_ФАЙЛА("", "", "Файлы Paradox", "DB")

ЕСЛИ файл = "" ТО

СТОП

КОНЕЦ_ЕСЛИ

// Создать объект DAO, приходиться проверять различные версии

ЕСЛИ ЕСТЬ_ОБЪЕКТ("DAO.DBEngine") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("DAO.DBEngine")

ИНАЧЕ

ЕСЛИ ЕСТЬ_ОБЪЕКТ("DAO.DBEngine.35") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("DAO.DBEngine.35")

ИНАЧЕ

ЕСЛИ ЕСТЬ_ОБЪЕКТ("DAO.DBEngine.36") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("DAO.DBEngine.36")

ИНАЧЕ

СООБЩЕНИЕ("Не удалось создать объект")

СТОП

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

// Открыть базу данных в режиме "только чтение"

бд = о.OpenDatabase(ДИР_ФАЙЛА(файл), 0, ДА, "Paradox 5.x;")

// Запрoсить данные из базы

запрос = бд.OpenRecordset("SELECT * FROM " + СЛОВО(1, ИМЯ_ФАЙЛА (файл), "."))

поля = запрос.Fields

// Отобразить содержимое в отчете

запись = 1

ЦИКЛ ПОКА (НЕ запрос.EOF)

// Пройтись по всем полям

ЦИКЛ ДЛЯ (и = 1, поля.Count)

поле = запрос.Fields[и - 1]

ЯЧЕЙКА[и, запись] = поле.Value

ЯЧЕЙКАГОР![и] = поле.Name

КОНЕЦ_ЦИКЛА

// Перейти к следующей записи

запрос.MoveNext

запись++

КОНЕЦ_ЦИКЛА

запрос.Close

// Закрыть базу

бд.Close

КОНЕЦ

Замечание!

Таким способом можно как читать данные, так и записывать данные в базу Инфо-Предприятия 1-ой версии. Однако, если с базой данных в этот момент работают другие пользователи алгоритм завершится по ошибке. Чтобы это устранить надо установить в файле net.ini (он находится в каталоге базы Инфо-Предприятия 1-ой версии) параметр LocalNetDir=OFF и перезапустить программу !

Выполнить указанную задачу можно также используя OLE DB — альтернативный DAO способ доступа:

ПЕРЕМ ОБЪЕКТ: бд, запрос, поля, поле

ВЫЧИСЛИТЬ

// Запрoсить файл для импорта

файл = ВЫБОР_ФАЙЛА("", "", "Файлы Paradox", "DB")

ЕСЛИ файл = "" ТО

СТОП

КОНЕЦ_ЕСЛИ

// Создать соединение ADO

с = СОЗДАТЬ_ОБЪЕКТ("ADODB.Connection")

с.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ДИР_ФАЙЛА(файл) + ";Extended Properties=Paradox 5.x;")

запрос = с.Execute("SELECT * from " + ИМЯ_ФАЙЛА(файл))

поля = запрос.Fields

// Отобразить содержимое в отчете

запись = 1

ЦИКЛ ПОКА (НЕ запрос.EOF)

// Пройтись по всем полям

ЦИКЛ ДЛЯ (и = 1, поля.Count)

поле = запрос.Fields[и - 1]

ЯЧЕЙКА[и, запись] = поле.Value

ЯЧЕЙКАГОР![и] = поле.Name

КОНЕЦ_ЦИКЛА

// Перейти к следующей записи

запрос.MoveNext

запись++

КОНЕЦ_ЦИКЛА

запрос.Close

// Закрыть базу

с.Close

КОНЕЦ


Объекты Автоматизации (OLE Automation)

При формировании пользовательского интерфейса прикладной задачи довольно часто существуют ситуации, когда для удобства работы пользователя необходимо дать возможность обрабатывать имеющиеся данные с помощью других, имеющихся на компьютере программ.

Одним из примеров использования такой возможности может служить запуск программы Microsoft Excel (непосредственно из программы Инфо-Предприятие) с одновременным выводом в нее результатов расчета. Далее пользователь может обрабатывать полученные результаты (просматривать, редактировать, печатать и т. п.) непосредственно в среде Microsoft Excel.

Одну из возможностей запуска и управления внешними приложениями дает механизм OLE Automation. Встроенный язык системы Инфо-Предприятие поддерживает технологию управления объектами OLE. Непосредственно при помощи операторов языка можно управлять, например, программами, входящими в Microsoft Office.

Внешнее приложение, с которым предполагается устанавливать связь, должно отвечать следующим условиям: внешнее приложение должно поддерживать механизм OLE Automation и должно быть установлено на том компьютере, где его намечено использовать.

Вызов процедур или функций внешнего приложения из внутреннего языка Инфо-Предприятия может выполняться при помощи объектной переменной ОБЪЕКТ, которая создается конструктором СОЗДАТЬ_ОБЪЕКТ. Чтобы вызвать метод внешнего приложения, имя метода (с указанием необходимых параметров) или свойства пишется через точку после идентификатора переменной.

Примеры.

// Вызов метода OpenDatabase объекта дао

дао.OpenDatabase(дир, 0, ДА, "Paradox 5.x;")

// Изменение значения свойства Saved объекта книга

книга.Saved = ДА

// Получение значения индексного свойства Cells объекта лист

ячейка = лист.Cells[и, й]

При создании переменной со ссылкой на внешнее приложение, в качестве имени объекта в конструкторе СОЗДАТЬ_ОБЪЕКТ должен выступать OLE идентификатор внешнего приложения.

Примеры

Excel | "Excel.Application"
MSGraph | "MSGraph.Application"
PowerPoint | "PowerPoint.Application"

Внешнее приложение может быть зарегистрированным в операционной системе или нет. В последнем случае, в конструктор СОЗДАТЬ_ОБЪЕКТ передается один или несколько (через точку с запятой) файлов библиотек, требуемых для работы объекта. Все они должны находиться в базе данных. При вызове конструктора происходит загрузка требуемых библиотек из базы данных и регистрация их в операционной системе. Рекомендуется использовать именно такой способ работы, это избавит от инсталляции внешних приложений на каждой клиентской станции.

Программа Инфо-Предприятие поддерживает все существующие типы данных, за исключением массивов, и все существующие типы вызовов.

Поддерживаются именование параметров при вызове функций. Для этого после указания значения через двоеточие указывается имя параметра, например так:

объект.Method("Название":caption, 20:length)

Также, поддерживаются события. Для включения событий предназначен метод ВКЛ_СОБЫТИЕ, а для обработки событий используется обработчик внешнего события. При срабатывании событий программе передаются различные данные, включая другие объекты.

Внешние компоненты 1С

Таким же способом к программе Инфо-Предприятие можно подключать внешние компоненты, написанные для программы 1С. При подключении есть следующие нюансы:

1)Внешние компоненты могут генерировать внешние события. При срабатывании внешних событий в программе Инфо-Предприятие вызывается обработчик внешнего события. Для того чтобы внешние событие вызывались, необходимо в обработчике при старте программы инициализировать глобальную переменную типа ОБЪЕКТ. Если необходимо получить ответ от компоненты в определенном месте программы используется функция ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ.

2)Внешние компоненты хранят свои параметры в реестре в разделе HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Options.

3)Поддерживается версии 1.0 и 2.0 технологии внешних компонент

4)Все целые числовые параметры передаются как VT_I4, дробные как VT_R8.

5)Внешняя компонента может реализовывать несколько интерфейсов: IDispatch, ILanguageExtender, NativeApi. В этом случае приоритет выбора интерфейсов следующий: сначала используется интерфейс NativeApi, если он не поддерживается, то ILanguageExtender, если и он не поддерживается, то IDispatch. Можно явно указать используемый интерфейс в СОЗДАТЬ_ОБЪЕКТ.

См.также
Объект ОБЪЕКТ


Работа с XML

ОБЪЕКТ: Работа с XML

Следующий пример показывает как используя ОБЪЕКТ можно работать с файлами XML. Следующий пример запрашивает у пользователя дату и по ней выдает курсы валют в рублях. Для этого он подключается к серверу центрального банка России, получает данные в формате XML и отображает их в отчете. Для работы примера необходимо подключение к сети Интернет. Чтобы запустить демонстрационный пример, достаточно создать новый отчет и скопировать туда этот фрагмент:

ПЕРЕМ ОБЪЕКТ: xml, vlist, valute, nom, name, val, code

ВЫЧИСЛИТЬ

датакурса = ВВЕСТИ_ЗНАЧЕНИЕ!("Дата получения курса (от 01.07.1992)", ДАТА)

помесяч = ВВЕСТИ_ЗНАЧЕНИЕ!("Курсы валют", ["Устанавливаемых ежедневно","Только помесячно"]) = 2

xml = СОЗДАТЬ_ОБЪЕКТ("MSXML2.DOMDocument")

xml.async = НЕТ // Вернуть управление только после полной загрузки файла

xml.validateOnParse = НЕТ // Не проверять загружаемый файл на соответствие своей схеме

// Загрузить курсы валют с ЦБР (см. http://www.cbr.ru/scripts/root.asp)

ЕСЛИ НЕ xml.Load("http://www.cbr.ru/scripts/XML_daily.asp?date_req=" +

ЗАМ(?(помесяч, СТР(ПЕРИОД_НАЧ(датакурса, детМесяц)) + "&d=1", СТР(датакурса) + "&d=0"), ".", "/")) ТО

СООБЩЕНИЕ("Не удалось получить курсы валют")

СТОП

КОНЕЦ_ЕСЛИ

// Выбрать все корневые элементы Valute

vlist = xml.selectNodes("*/Valute")

ЦИКЛ ДЛЯ (и = 1, vlist.length)

valute = vlist.item(и - 1)

// Получить информацию о номинале, названии и курсе валюты

code = valute.selectSingleNode("CharCode")

nom = valute.selectSingleNode("Nominal")

name = valute.selectSingleNode("Name")

val = valute.selectSingleNode("Value")

ЯЧЕЙКА["Код", и] = code.text

ЯЧЕЙКА["Курс", и] = nom.text + " " + name.text + " = " + val.text + " руб."

КОНЕЦ_ЦИКЛА

КОНЕЦ


Работа с базами данных Access

ОБЪЕКТ: Работа с базами данных Access

Следующий пример отчета использует ОБЪЕКТ для работы с базами данных Microsoft Access из Инфо-Предприятия. Алгоритм создает тестовую базу данных, создает в ней тестовую таблицу, добавляет и изменяет в ней данные, а, затем, отображает содержимое этой таблицы в отчете. Алгоритм использует DAO для доступа к базе данных. DAO входит в состав Windows. При необходимости, самую последнюю версию DAO можно скачать здесь: http://msdn.microsoft.com/data/mdac. Чтобы запустить демонстрационный пример, достаточно создать новый отчет и скопировать туда этот фрагмент:

ПЕРЕМ ОБЪЕКТ: бд, запрос, поля, поле

ВЫЧИСЛИТЬ

// Создать объект DAO, приходиться проверять различные версии

ЕСЛИ ЕСТЬ_ОБЪЕКТ("DAO.DBEngine") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("DAO.DBEngine")

ИНАЧЕ

ЕСЛИ ЕСТЬ_ОБЪЕКТ("DAO.DBEngine.35") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("DAO.DBEngine.35")

ИНАЧЕ

ЕСЛИ ЕСТЬ_ОБЪЕКТ("DAO.DBEngine.36") ТО

о = СОЗДАТЬ_ОБЪЕКТ!("DAO.DBEngine.36")

ИНАЧЕ

СООБЩЕНИЕ("Не удалось создать объект")

СТОП

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

// Создать базу данных

бд = о.CreateDatabase("test.mdb", ";LANGID=0x0419;CP=1251;COUNTRY=0")

// Создать в этой базе таблицу и записать в нее какие-нибудь данные

бд.Execute("CREATE TABLE TEST(ID INTEGER, STR VARCHAR(10));")

бд.Execute("INSERT INTO TEST VALUES(1, ""Строка 1"");")

бд.Execute("INSERT INTO TEST VALUES(2, ""Строка 2"");")

бд.Execute("INSERT INTO TEST VALUES(3, ""Строка 3"");")

бд.Execute("UPDATE TEST SET ID = ID * 2 WHERE STR = ""Строка 2"";")

// Считать данные из базы

запрос = бд.OpenRecordset("SELECT * FROM TEST ORDER BY ID")

поля = запрос.Fields

// Отобразить содержимое в отчете

запись = 1;

ЦИКЛ ПОКА (НЕ запрос.EOF)

// Пройтись по всем полям

ЦИКЛ ДЛЯ (и = 1, поля.Count)

поле = запрос.Fields[и - 1]

ЯЧЕЙКА[и, запись] = поле.Value

ЯЧЕЙКАГОР![и] = поле.Name

КОНЕЦ_ЦИКЛА

// Перейти к следующей записи

запрос.MoveNext

запись++

КОНЕЦ_ЦИКЛА

запрос.Close

// Закрыть базу...

бд.Close

// ..и удалить ее

ФАЙЛ_УДАЛИТЬ("test.mdb")

КОНЕЦ


Работа с базами данных через SQL

ОБЪЕКТ: Работа с базами данных через SQL

Используя ОБЪЕКТ можно работать с любыми базами данных используя OLE DB — альтернативный DAO способ доступа. Для примера выведем список таблиц и полей из произвольной локальной базы данных Firebird. Следующий пример отчета запрашивает у пользователя файл базы данных и выводит список таблиц и полей в отчете. Для его работы необходим FreeIBProvider. Его можно скачать здесь: http://www.ibprovider.com. Чтобы запустить демонстрационный пример, достаточно создать новый отчет и скопировать туда этот фрагмент:

ПЕРЕМ ОБЪЕКТ: запрос, поля, поле

ВЫЧИСЛИТЬ

// Запрoсить файл базы данных

файл = ВЫБОР_ФАЙЛА("", "", "Базы данных FireBird", "GDB;FDB")

ЕСЛИ файл = "" ТО

СТОП

КОНЕЦ_ЕСЛИ

// Создать соединение ADO

с = СОЗДАТЬ_ОБЪЕКТ("ADODB.Connection")

// Установить соединение используя провайдер FreeIBProvider

с.Open("provider=LCPI.IBProvider.1;data source=" + файл + ";user id=sysdba;password=masterkey;auto_commit=true")

запрос = с.Execute("SELECT RDB$RELATION_NAME as ""Таблица"", RDB$FIELD_NAME as ""Поле"" FROM " +

"RDB$RELATION_FIELDS ORDER BY RDB$RELATION_NAME, RDB$FIELD_NAME")

поля = запрос.Fields

// Отобразить содержимое в отчете

запись = 1;

ЦИКЛ ПОКА (НЕ запрос.EOF)

// Пройтись по всем полям

ЦИКЛ ДЛЯ (и = 1, поля.Count)

поле = запрос.Fields[и - 1]

ЯЧЕЙКА[и, запись] = поле.Value

ЯЧЕЙКАГОР![и] = поле.Name

КОНЕЦ_ЦИКЛА

// Перейти к следующей записи

запрос.MoveNext

запись++

КОНЕЦ_ЦИКЛА

запрос.Close

с.Close

КОНЕЦ


Объект "Секция"

описание поля методы конструкторы Объекты

Описание:

Объект СЕКЦИЯ предназначен для управления графическим полем типа секция.

Поля:

Данный объект не имеет полей.

Методы:

ВСЕГО | возвращает количество строк для секции ввода
ОБНУЛИТЬ | обнуляет содержимое переменных, представленных графами ввода в секции ввода

Конструктор:

Создается по графе типа секция

Пример:

// Определяем поле типа секция "секция" и выводную графу с переменной "текст"

// Такая секция будет секцией вывода, поэтому для ее вывода надо использовать

// функцию ВЫВЕСТИ:

объект секция

графа вывода (текст)

// Способ 1

// На экран будут выведены названия всех месяцев

ЦИКЛ ДЛЯ (и = 1, 12)

текст = МЕСП(и)

ВЫВЕСТИ(секция) // Выведет одну строку с соответствующем значением "текст"

КОНЕЦ_ЦИКЛА

// Способ 2

// То же самое но через массив

ЦИКЛ ДЛЯ (и = 1, 12)

текст[и] = МЕСП(и)

КОНЕЦ_ЦИКЛА

ВЫВЕСТИ(секция) // Выведет 12 строк, сколько элементов в массиве "текст"

См. также
Пример секции ввода
Функция ТЕК
Функция ВЫВЕСТИ


ВСЕГО

Метод ВСЕГО

Объект "Секция"

 Вернуться к началу раздела

ВСЕГО

Результат — число.

Описание:

Метод ВСЕГО возвращает количество строк для секции ввода.

Пример:

СООБЩЕНИЕ("Всего " + СТР(секция.ВСЕГО) + " записей")


ОБНУЛИТЬ

Метод ОБНУЛИТЬ

Объект "Секция"

 Вернуться к началу раздела

ОБНУЛИТЬ

Описание:

Метод ОБНУЛИТЬ обнуляет содержимое переменных, представленных графами ввода в секции ввода.

Пример:

повторение.ОБНУЛИТЬ

См. также
ОБНУЛИТЬ


Объект "Файл"

описание поля методы конструкторы Объекты

Описание:

Объект Файл позволяет работать с текстовым и бинарным файлом из программы. Объект поддерживает работу с текстовыми файлами, записанными в различных кодировках символов.

Поля:

Данный объект не имеет полей.

Методы для работы с текстовым файлом:

ДОБАВИТЬ | открывает текстовый файл на добавление
ЗАКРЫТЬ | закрывает файл
ЗАПИСАТЬ | записывает в файл строку
КОДИРОВКА | возвращает кодировку созданного файла
КОНЕЦ_ФАЙЛА | возвращает флаг конца файла
СОЗДАТЬ | создает новый текстовый файл для записи
ОТКРЫТЬ | открывает файл на чтение
РАЗМЕР | возвращает размер открытого файла
СБРОС | очищает временный буфер при записи файла
СЧИТАТЬ | считывает очередную строку из текстового файла
СЧИТАТЬ_ВСЕ | считывает все содержимое файла в строку
СЧИТАТЬ_СЛОВО | считывает очередное слово из текстового файла
ФАЙЛ | возвращает имя открытого файла

Конструкторы для текстовых файлов:

<имя> ЭТО ФАЙЛ

<имя> = ФАЙЛ_ОТКРЫТЬ [ (<файл> [, <кодировка>] ) ]

<имя> = ФАЙЛ_СОЗДАТЬ [ (<файл> [, <кодировка>] ) ]

<имя> = ФАЙЛ_ДОБАВИТЬ [ (<файл> [, <кодировка>] ) ]

где

<имя>
имя создаваемого объекта;

<файл>
имя текстового файла;

<кодировка>
необязательный параметр, задающий кодировку символов текстового файла (см.ниже);.

Указание кодировки игнорируется при открытии существующих текстовых файлов, имеющих спецификацию (BOM). Для таких файлов кодировка определяется автоматически.

Кодировка может задаваться следующими константами:

WIN — стандартная кодировка операционной системы Windows для русских букв (кодовая страница 1251)

DOS — кодировка операционной системы MSDOS для русских букв (кодовая страница 866)

UTF8 — кодировка UTF-8

UTF16 — кодировка UTF-16LE

MIME — кодировка BASE64

По умолчанию используется кодировка UTF8.

Конструктор ФАЙЛ_СОЗДАТЬ создает новый файл для записи в него. Если такой файл существует, он будет перезаписан. Конструктор ФАЙЛ_ОТКРЫТЬ открывает файл на чтение. Запись в такой файл невозможна. Конструктор ФАЙЛ_ДОБАВИТЬ открывает файл для добавления туда информации. Если имя файла не задано, то файл создается с именем бланка. Диск с именем "db:" в имени файла определяет файл в базе данных.

Методы для работы с бинарным файлом:

ЗАКРЫТЬ | закрывает файл
ЗАПИСАТЬ_ДАННЫЕ | записывает в файл данные
КОНЕЦ_ФАЙЛА | возвращает флаг конца файла
СОЗДАТЬ | создает новый бинарный файл для записи
ОТКРЫТЬ | открывает бинарный файл на чтение
РАЗМЕР | возвращает размер открытого файла
СБРОС | очищает временный буфер при записи файла
СЧИТАТЬ_ДАННЫЕ | считывает данные из текстового файла
ФАЙЛ | возвращает имя открытого файла

Конструкторы для бинарных файлов:

<имя> ЭТО ФАЙЛ

<имя> = ФАЙЛ_ОТКРЫТЬ [ (<файл>) ]

<имя> = ФАЙЛ_СОЗДАТЬ [ (<файл>) ]

где

<имя>
имя создаваемого объекта;

<файл>
имя текстового файла;

Конструктор ФАЙЛ_СОЗДАТЬ создает новый файл для записи в него. Если такой файл существует, он будет перезаписан. Конструктор ФАЙЛ_ОТКРЫТЬ открывает файл на чтение. Запись в такой файл невозможна. Если имя файла не задано, то файл создается с именем бланка. Диск с именем "db:" в имени файла определяет файл в базе данных.

Пример:

файл = ФАЙЛ_СОЗДАТЬ ( "Test.txt" ) // Создать файл Test.txt для записи

ЦИКЛ ДЛЯ (и=1, 10)

файл.ЗАПИСАТЬ ("Это строка №" + СТР (и) ) // Записать указанную строку

КОНЕЦ_ЦИКЛА

файл.ЗАКРЫТЬ

файл = ФАЙЛ_ДОБАВИТЬ ( "Test.txt" ) // Открыть файл Test.txt для дозаписи

файл.ЗАПИСАТЬ ("Это строка №11" ) // Записать 11-ую строку

файл.ЗАКРЫТЬ

файл = ФАЙЛ_ОТКРЫТЬ ("Test.txt",ДА) // Открыть файл Test.txt для чтения строк

ЦИКЛ ДЛЯ (и=1, 11)

СООБЩЕНИЕ (файл.СЧИТАТЬ) // считать очередную строку

КОНЕЦ_ЦИКЛА // и вывести ее на экран

файл.ЗАКРЫТЬ


ДОБАВИТЬ

Метод ДОБАВИТЬ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

ДОБАВИТЬ[ (<имя файла> [,<кодировка>])]

<имя файла>
имя открываемого текстового файла

<кодировка>
необязательный параметр, задающий кодировку символов, в котором записан файл.

Метод не возвращает результат.

Описание:

Метод ДОБАВИТЬ также как и конструктор ФАЙЛ_ДОБАВИТЬ открывает текстовый файл на добавление. Если имя файла опущено, то создается файл с именем бланка (или библиотеки) и расширением .txt.

Пример:

файл ЭТО ФАЙЛ

файл.ДОБАВИТЬ("Test.txt",НЕТ)

файл.ЗАПИСАТЬ("Новая строка") // Записать указанную строку

файл.ЗАКРЫТЬ


ЗАКРЫТЬ

Метод ЗАКРЫТЬ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

ЗАКРЫТЬ

Метод не возвращает результат.

Описание:

Метод ЗАКРЫТЬ закрывает текстовый или бинарный файл, все внесенные изменения записываются на диск.

Пример:

файл.ЗАКРЫТЬ


ЗАПИСАТЬ

Метод ЗАПИСАТЬ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

ЗАПИСАТЬ[!][(<строка>)]

!
записывается просто текст (без символов возврата каретки).

<строка>
текстовая строка, записываемая в файл.

Метод не возвращает результат.

Описание:

Метод ЗАПИСАТЬ записывает в файл строку. Текстовая строка записывается в той кодировке, в которой файл был открыт. Если параметр опущен, то записывается пустая строка.

При использовании метода ЗАПИСАТЬ! (с восклицательным знаком) записывается просто текст (без символов возврата каретки). Таким образом, при следующем вызове ЗАПИСАТЬ или ЗАПИСАТЬ! текст будет дописан в эту же строку.

Пример:

файл.ЗАПИСАТЬ("Это первая строка")


ЗАПИСАТЬ_ДАННЫЕ

Метод ЗАПИСАТЬ_ДАННЫЕ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

ЗАПИСАТЬ_ДАННЫЕ[(<данные>)]

<данные>
данные, записываемая в файл.

Метод не возвращает результат.

Описание:

Метод ЗАПИСАТЬ_ДАННЫЕ записывает данные в конец бинарного файла.

Пример:

файл.ЗАПИСАТЬ_ДАННЫЕ(КОДИРОВАТЬ("Это первая строка", UTF8))

См.также
Метод СЧИТАТЬ_ДАННЫЕ


КОДИРОВКА

Метод КОДИРОВКА

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

КОДИРОВКА

Результат — число.

Описание:

Метод КОДИРОВКА возвращает кодировку открытого файла.

Пример:

СООБЩЕНИЕ(файл.КОДИРОВКА)


КОНЕЦ_ФАЙЛА

Метод КОНЕЦ_ФАЙЛА

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

КОНЕЦ_ФАЙЛА

Результат — логика.

Описание:

Метод КОНЕЦ_ФАЙЛА возвращает значение ДА, если обнаружен конец файла или файл не открыт, и значение НЕТ в других случаях.

Пример:

файл = ФАЙЛ_ОТКРЫТЬ("Test.txt" ,НЕТ)

СООБЩЕНИЕ("Читаю файл " + файл.ФАЙЛ)

ЦИКЛ ПОКА (НЕ файл.КОНЕЦ_ФАЙЛА)

СООБЩЕНИЕ(файл.СЧИТАТЬ) // считать очередную строку

КОНЕЦ_ЦИКЛА // и вывести ее на экран

файл.ЗАКРЫТЬ


СОЗДАТЬ

Метод СОЗДАТЬ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

СОЗДАТЬ[ (<имя файла> [,<кодировка>])]

<имя файла>
имя создаваемого текстового файла

<кодировка>
необязательный параметр, задающий кодировку символов, в котором записан файл.

Метод не возвращает результат.

Описание:

Метод СОЗДАТЬ также как и конструктор ФАЙЛ_СОЗДАТЬ создают новый текстовый или бинарный файл. Если имя файла опущено, то создается файл с именем бланка (или библиотеки) и расширением .txt.

Конструктор ФАЙЛ_ОТКРЫТЬ и метод ОТКРЫТЬ открывают файл только на чтение, и применить метод ЗАПИСАТЬ или ЗАПИСАТЬ_ДАННЫЕ в этом случае нельзя. Чтобы открыть файл на запись, используйте либо конструктор ФАЙЛ_СОЗДАТЬ, либо метод СОЗДАТЬ.

Пример:

файл ЭТО ФАЙЛ

файл.СОЗДАТЬ("Test.txt",НЕТ)

ЦИКЛ ДЛЯ (и=1, 10)

файл.ЗАПИСАТЬ("Это строка №"+СТР(и)) // Записать указанную строку

КОНЕЦ_ЦИКЛА

файл.ЗАКРЫТЬ


ОТКРЫТЬ

Метод ОТКРЫТЬ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

ОТКРЫТЬ[ (<имя файла> [,<кодировка>])]

<имя файла>
имя открываемого файла

<кодировка>
необязательный параметр, задающий кодировку символов, в котором записан файл.

Метод не возвращает результат.

Описание:

Метод ОТКРЫТЬ также как и конструктор ФАЙЛ_ОТКРЫТЬ открывают файл на чтение. Если указанный файл не найден, то расчет останавливается по ошибке.

Пример:

файл ЭТО ФАЙЛ

файл.ОТКРЫТЬ("Test.txt",НЕТ)


РАЗМЕР

Метод РАЗМЕР

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

РАЗМЕР

Результат — число.

Описание:

Метод РАЗМЕР возвращает размер открытого файла.

Пример:

СООБЩЕНИЕ(файл.РАЗМЕР)


СБРОС

Метод СБРОС

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

СБРОС

Метод не возвращает результат.

Описание:

Запись в файл с помощью метода ЗАПИСАТЬ выполняется через буфер. Метод СБРОС очищает буфер и сбрасывает содержимое файла не диск. После выполнения этого метода все изменения в файле будут гарантировано записаны на диск, даже если работа программы по какой-либо причине будет прервана.

Пример:

файл.СБРОС


СЧИТАТЬ

Метод СЧИТАТЬ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

СЧИТАТЬ

Результат — строка.

Описание:

Метод СЧИТАТЬ возвращает очередную строку из текстового файла. Чтение строки происходит в зависимости от того, была ли включена перекодировка при открытии файла или нет.

Пример:

СООБЩЕНИЕ(файл.СЧИТАТЬ)

См.также
Метод СЧИТАТЬ_СЛОВО


СЧИТАТЬ_СЛОВО

Метод СЧИТАТЬ_СЛОВО

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

СЧИТАТЬ_СЛОВО[(<разделители>)]

<разделители>
символы, используемые для отделения слов друг от друга.

Результат — строка.

Описание:

Метод СЧИТАТЬ_СЛОВО возвращает очередное слово из текстового файла. Принцип работы метода схож с работой функции СЛОВО. Также как и там, слова отделяются друг от друга при помощи символов " " (пробел), "," (запятая), ";" (точка с запятой), "." (точка) и РР, но можно задать собственные разделители в необязательном параметре <разделители>. Вне зависимости от указанных разделителей, возврат каретки и переход не следующую строку будут отделять слова.

Чтение происходит в зависимости от того, была ли включена перекодировка при открытии файла или нет.

Пример:

ф = ФАЙЛ_ОТКРЫТЬ(ВЫБОР_ФАЙЛА)

и = 1

ЦИКЛ ПОКА (НЕ ф.КОНЕЦ_ФАЙЛА)

с[и] = ф.СЧИТАТЬ_СЛОВО

и++

КОНЕЦ_ЦИКЛА

ВЫБОР(с)

См.также
Метод СЧИТАТЬ


СЧИТАТЬ_ВСЕ

Метод СЧИТАТЬ_ВСЕ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

СЧИТАТЬ_ВСЕ

Результат — строка.

Описание:

Метод СЧИТАТЬ_ВСЕ считывает все содержимое файла в строку. Если ранее файл читался с помощью других методов, например СЧИТАТЬ или СЧИТАТЬ_СЛОВО, то СЧИТАТЬ_ВСЕ считывает оставшуюся часть файла.

Пример:

// Пример демонстрирует возможности работы с бинарным файлом

// В примере копируется содержимое файла другой файл

ф_считываем = ФАЙЛ_ОТКРЫТЬ(ВЫБОР_ФАЙЛА)

с = ф_считываем.СЧИТАТЬ_ВСЕ // Считаем содержимое файла в строку

ф_считываем.ЗАКРЫТЬ

ф_записываем = ФАЙЛ_СОЗДАТЬ(ВЫБОР_ФАЙЛА)

ф_записываем.ЗАПИСАТЬ!(с) // Запишем строку в файл (восклицательный знак ! обязателен)

ф_записываем.ЗАКРЫТЬ

См.также
Метод СЧИТАТЬ


СЧИТАТЬ_ДАННЫЕ

Метод СЧИТАТЬ_ДАННЫЕ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

СЧИТАТЬ_ДАННЫЕ

Результат — данные.

Описание:

Метод СЧИТАТЬ_ДАННЫЕ считывает данные от текущей позиции бинарного файла до конца.

Пример:

СООБЩЕНИЕ(ДЕКОДИРОВАТЬ(файл.СЧИТАТЬ_ДАННЫЕ, UTF8))

См.также
Метод ЗАПИСАТЬ_ДАННЫЕ


ФАЙЛ

Метод ФАЙЛ

Объект "Файл"

 Вернуться к началу раздела

Синтаксис:

ФАЙЛ

Результат — строка.

Описание:

Метод ФАЙЛ возвращает имя открытого файла.

Пример:

СООБЩЕНИЕ(файл.ФАЙЛ)


Объект "Фильтр"

описание фильтр по полям методы Объекты

фильтр по условию конструкторы

 Вернуться к началу раздела

Описание:

Объект ФИЛЬТР позволяет устанавливать параметры фильтрации в журналах. Его можно использовать для реализации контекстной фильтрации журналов или для передачи дополнительных условий в ЦИКЛ ПО ЖУРНАЛУ.

Если фильтр активен, то навигационные методы объекта ЖУРНАЛ работают с отфильтрованными записями. На работу других функций активность фильтра никак не отражается.

Есть два способа задания условия фильтрации:

Фильтр по полям. В этом случае условие фильтра строится на основе значений полей объекта ФИЛЬТР. Для этого предназначены следующие поля:

Поля | Значение | Тип
исключать | Выбранные записи исключаются | ЛОГИКА
разл_регистр | Различать строчные и прописные буквы | ЛОГИКА
цвет_текста | Заданный цвет текста записей | ЧИСЛО
цвет_фона | Заданный цвет фона записей | ЧИСЛО
дата_изм1 | Начиная с даты создания/изменения операции | ДАТА
дата_изм2 | Заканчивая датой создания/изменения операции | ДАТА

Другие поля определяются в зависимости от полей журнала, имеют вид : *_от, *_по, *_шаб, где вместо * стоит поле журнала, и определяют соответственно нижний и верхний диапазон выбираемых значений, а также шаблон. Например, если журнал имеет поле цена, то его фильтр будет иметь поля цена_от, цена_по, цена_шаб. Так, если журнал имеет 11 полей, тогда в объекте ЖУРНАЛ будет 11 полей, а в объекте ФИЛЬТР для этого журнала будет 33 поля (без фиксированных исключать и разл_регистр), определяющиеся выше перечисленными постфиксами. Поля *_от и *_по имеют тип, совпадающий с типом соответствующего поля, поля *_шаб имеют строковый тип. При использовании диапазонов строки сравниваются в алфавитном порядке, при сравнении логических типов НЕТ < ДА. Верхний диапазон для даты исключается, например, если надо увидеть записи за 2001 год, тогда дата_от = 01.01.2001, дата_по = 01.01.2002. Нижний диапазон и верхний диапазон для других типов включаются. В шаблонах могут применяться символы * (звездочка) и ; (точка с запятой). Первый используется для задания шаблона и означает любой символ, второй для задания перечисления значений.

Поля дата_изм1 и дата_изм2 доступны при включении опции Показывать, когда создана/изменена операция в параметрах базы данных.

Преимущество такого задания фильтра в том, что эти условия может установить пользователь в диалоге редактирования фильтра, вызываемом при помощи РЕДАКТИРОВАТЬ. Кроме того, они могут сохраняться в базе данных и загружаться в следующий раз при входе в программу.

Фильтр по условию. Фильтрация определятся заданием произвольного условия при помощи метода УСЛОВИЕ или заданием условия в конструкторе ФИЛЬТР. Условие фильтра в этом случае может быть практически любым, строится на основе других объектов ФИЛЬТР, но не может изменяться пользователем при помощи диалога.

Дополнительные поля. Следующие поля есть как у фильтра по полям, так и у фильтра по условию:

Поля | Значение | Тип
действ_отч | Действует на отчеты | ЛОГИКА

Поле действ_отч управляет опцией "Действие на отчеты"

Сложный фильтр. Фильтр по условию может быть сложным. В этом случае он не привязан к конкретному журналу, а содержит в себе условия на поля разных журналов. Старайтесь не использовать сложные фильтры, т.к. их использование может приводить к ошибкам в процессе работы алгоритма. Использование сложного фильтра оправдано, только если условие не может быть сведено к выражению из простых фильтров.

Сложный фильтр создается при помощи функции-конструктора СЛОЖНЫЙ_ФИЛЬТР. Для сложных фильтров могут использоваться только методы СБРОС и УСЛОВИЕ.

Методы:

ЕСТЬ_УСЛОВИЕ | сообщает, содержит ли фильтр какое-либо условие
ЗАП_ДЕТАЛЬ | добавляет условие на подчиненный журнал детализации
ПРИМЕНИТЬ | позволяет применить условия данного фильтра
РЕДАКТИРОВАТЬ | позволяет изменить поля фильтра журнала с помощью диалогового окна
СБРОС | очищает содержимое фильтра
СЧИТАТЬ | загружает поля объекта из фильтра по умолчанию
СОРТИРОВКА | задает сортировку отфильтрованных записей
УСЛОВИЕ | задает условие фильтра
УСЛОВИЕ_ВЫРАЖЕНИЕ | задает условие фильтра в виде строки-выражения

Конструктор:

1)<имя> = <журнал>.ФИЛЬТР[(<условие>)]

где

<имя>
имя создаваемого объекта.

<журнал>
идентификатор журнала или объект ЖУРНАЛ для которого создается фильтр.

2)ПЕРЕМ ФИЛЬТР(<журнал>): <имя>

где

<имя>
имя создаваемого объекта.

<журнал>
идентификатор журнала для которого создается фильтр.

3)<имя> = СЛОЖНЫЙ_ФИЛЬТР

где

<имя>
имя создаваемого объекта.

Пример1:

ф = накладные.ФИЛЬТР

ф.дата_от=ДАТА_ТЕК // задаем шаблон

ф.ПРИМЕНИТЬ

ф.ЭКСПОРТ(СТР(ДАТА_ТЕК) + ".DBF",ДА) // экспортируем в файл

Используем объект Фильтр для выборки записей:

ф = накладные.ФИЛЬТР

ф.накл_шаб="1;2;3;*ОХ" // задаем шаблон: накладная 1,2,3, и все накладные на отв.хранение

ЦИКЛ ПО ЖУРНАЛУ накладные н (ф)

...

КОНЕЦ_ЦИКЛА

Замечание!

Дополнительная опция Действие на отчеты, доступная только пользователю, ограничивает журнал теми записями, которые попадают под условие фильтрации. Узнать программно, включена ли эта опция или нет, невозможно. Так же, как и получить доступ к остальным, не попадающим под условия фильтра, записям журнала. Подобное ограничение позволяет пользователю всегда получить документы и отчеты не по всему журналу. Эта опция никак не связана с объектом ФИЛЬТР.

См.также
Использование фильтров в условии


ЕСТЬ_УСЛОВИЕ

Метод ЕСТЬ_УСЛОВИЕ

Объект "Фильтр"

 Вернуться к началу раздела

Синтаксис:

ЕСТЬ_УСЛОВИЕ

Результат — логика.

Описание:

Метод ЕСТЬ_УСЛОВИЕ сообщает, содержит ли фильтр какое-либо условие.

Пример:

ф.СБРОС // сбрасываем содержимое полей объекта
ОТЛАДКА(ф.ЕСТЬ_УСЛОВИЕ) // выведет НЕТ


ЗАП_ДЕТАЛЬ

Метод ЗАП_ДЕТАЛЬ

Объект "Фильтр"

 Вернуться к началу раздела

Синтаксис:

ЗАП_ДЕТАЛЬ(<объект>)

<объект>
объект типа ФИЛЬТР журнала детализации.

Метод не возвращает результат.

Описание:

Метод ЗАП_ДЕТАЛЬ добавляет условие на подчиненный журнал детализации. Параметр "объект" — объект типа ФИЛЬТР журнала детализации. Если у фильтра уже было занесено условие на детализацию, оно будет заменено. Если журнал не имеет указанной детализации либо детализация скрыта для текущего вида журнала, условие на детализацию будет проигнорировано.

Пример:

// Следующие два фрагмента накладывают одинаковые ограничения

// Первый - при помощи задания полей...

ЕСЛИ ВЫБОР_ЗАПИСИ(товары,"Выберите товар") ТО

ф = накладные.ФИЛЬТР // Создаем объекты - фильтры

фд = накладные_доп.ФИЛЬТР

фд.код_товара_шаб = СТР(товары.код)

ф.ЗАП_ДЕТАЛЬ(фд) // Добавляем условие на основной объект

ф.ПРИМЕНИТЬ // Применяем

КОНЕЦ_ЕСЛИ

// ...второй - при помощи условия

ЕСЛИ ВЫБОР_ЗАПИСИ(товары,"Выберите товар") ТО

ф = накладные.ФИЛЬТР(СУЩ ВЫБРАТЬ накладные_доп.ид

(:накладные.ид = накладные_доп.идлинк И накладные_доп.код_товара = ::товары.код))

ф.ПРИМЕНИТЬ // Применяем

КОНЕЦ_ЕСЛИ


ПРИМЕНИТЬ

Метод ПРИМЕНИТЬ

Объект "Фильтр"

 Вернуться к началу раздела

Синтаксис:

ПРИМЕНИТЬ

Метод не возвращает результат.

Описание:

Метод ПРИМЕНИТЬ загружает содержимое полей объекта ФИЛЬТР в фильтр по умолчанию. После этого при отображении редактора журнала он будет отфильтрован согласно указанным условиям. Фактически, метод ПРИМЕНИТЬ эквивалентен тому, что пользователь зашел в фильтр журнала, установил условия, заданные объектом ФИЛЬТР и нажал <OK>.

При выходе из программы последние условия фильтрации сохраняются и в следующий раз, когда пользователь войдет в программу, условие фильтра останется таким, какое оно было после выполнения ПРИМЕНИТЬ.

Пример:

ф.ПРИМЕНИТЬ // применяем

Замечание!

После завершения выполнения расчетного алгоритма содержимое фильтра не сбрасывается. Таким образом, если нет необходимости оставлять журнал отфильтрованным, то нужно принудительно сбрасывать фильтр последовательным применением методов СБРОС и ПРИМЕНИТЬ.


РЕДАКТИРОВАТЬ

Метод РЕДАКТИРОВАТЬ

Объект "Фильтр"

 Вернуться к началу раздела

Синтаксис:

РЕДАКТИРОВАТЬ[(<вид диалога>)]

<вид диалога>
определяет список отображаемых полей и их порядок.

Результат — логика.

Описание:

Метод РЕДАКТИРОВАТЬ позволяет изменить поля фильтра журнала с помощью диалогового окна. Этот метод возвращает ДА, если при редактировании была нажата кнопка <OK>, и НЕТ, если была нажата кнопка <Отмена>.

Пример:

ф.РЕДАКТИРОВАТЬ


СБРОС

Метод СБРОС

Объект "Фильтр"

 Вернуться к началу раздела

Синтаксис:

СБРОС

Метод не возвращает результат.

Описание:

Метод СБРОС очищает содержимое фильтра. При этом значении под определение фильтра попадают все записи из журнала. Следующий пример показывает, как можно сбрoсить фильтр из расчетного алгоритма.

Пример:

ф.СБРОС // сбрасываем содержимое полей объекта
ОТЛАДКА(ф.ЕСТЬ_УСЛОВИЕ) // выведет НЕТ


СОРТИРОВКА

Метод СОРТИРОВКА

Объект "Фильтр"

 Вернуться к началу раздела

Синтаксис:

СОРТИРОВКА(<список полей>)

<список полей>
перечень полей, по которым переходит сортировка

Метод не возвращает результат.

Описание:

Метод СОРТИРОВКА позволяет отсортировать записи по каким-либо критериям.

Синтаксис:

СОРТИРОВКА(<поле1>[:<убывание_возрастание>],...,<полеN>[:<убывание_возрастание>])

Здесь определяется перечень полей, по которым переходит сортировка, и, возможно, флаг <убывание_возрастание>. Если флаг не указан, или, если <убывание_возрастание> = ДА, то сортируется по возрастанию, а если <убывание_возрастание> = НЕТ, то по убыванию.

Пример1:

ф.СОРТИРОВКА(номер,дата) // Сортировка сначала по номеру, потом по дате

Пример2:

ф.СОРТИРОВКА(дата:НЕТ,дата_нак)

// Сортировка сначала по дате по убыванию, потом по полю дата_нак

// по возрастанию

Замечание!

Метод СОРТИРОВКА прибавляет дополнительную возможность фильтру журнала сортировать выбранные записи (подробности в сортировке записей в цикле). Сортировка в фильтре имеет более низкий приоритет, чем сортировка в журнале. Сортировку нельзя изменить из диалога редактирования фильтра.


СЧИТАТЬ

Метод СЧИТАТЬ

Объект "Фильтр"

 Вернуться к началу раздела

Синтаксис:

СЧИТАТЬ

Метод не возвращает результат.

Описание:

Метод СЧИТАТЬ позволяет загрузить поля объекта из фильтра по умолчанию. Таковым является фильтр, диалог редактирования которого вызывается из редактора журнала.

При этом значении под определение фильтра попадают все записи из журнала. Следующий пример показывает, как можно сбрoсить фильтр из расчетного алгоритма.

Пример:

ф=ж.ФИЛЬТР_ЖУРНАЛА

ф.СБРОС // сбрасываем содержимое полей объекта

ф.ПРИМЕНИТЬ // производим фильтрацию "всех записей"

Замечание1

Так как при определении фильтра в него загружаются текущие настройки, т.е. те настройки, которые видно в редактировании фильтра из редактора журнала, а, значит, в нем может находиться произвольная информация. Тогда для фильтрации по нужным критериям необходимо перед определением полей объекта ФИЛЬТР выполнять метод СБРОС.

Замечание2

После завершения выполнения расчетного алгоритма содержимое фильтра не сбрасывается. Таким образом, если нет необходимости оставлять журнал отфильтрованным, то нужно принудительно сбрасывать фильтр последовательным применением методов СБРОС и ПРИМЕНИТЬ.


УСЛОВИЕ

Метод УСЛОВИЕ

Объект "Фильтр"

 Вернуться к началу раздела

Синтаксис:

УСЛОВИЕ(<условие>)

<условие>
выражение логического типа, задающее условие фильтра.

Метод не возвращает результат.

Описание:

Метод УСЛОВИЕ задает условие фильтра. Условие является выражением логического типа. Оно не может содержать ссылки на другие журналы, кроме журнала фильтра (если, конечно, они не используются в подзапросах).

Синтаксис:

УСЛОВИЕ(<условие>)

Пример1:

ф = накладные.ФИЛЬТР

ф.УСЛОВИЕ(дата > ДАТА_НАЧ И дата <= ДАТА_КОН)

// Фильтр содержит условия на дату операци

Пример2:

ф.УСЛОВИЕ(дата ИЗ ВЫБРАТЬ оплаты.дата (накладные.клиент = оплаты.клиент))

// Фильтр содержит условие, что дата операции

// совпадает с датой одной из оплат


УСЛОВИЕ_ВЫРАЖЕНИЕ

Метод УСЛОВИЕ_ВЫРАЖЕНИЕ

Объект "Фильтр"

 Вернуться к началу раздела

Синтаксис:

УСЛОВИЕ_ВЫРАЖЕНИЕ(<выражение> [, <ошибка>])

где

<выражение>
формула или выражение строкового типа;

<ошибка>
необязательный параметр — строковая переменная, куда будет помещена строка с сообщением об ошибке.

Результат — логическое выражение (ДА или НЕТ).

Описание:

Параметр <выражение> определяет строку, которая определяет условие фильтра. Функция возвращает значение ДА при успешном разборе строки условия, и НЕТ, если выражение содержит ошибку. При необходимости можно получить текст ошибки, передав переменную <ошибка>.

Условие не может содержать ссылки на другие журналы, кроме журнала фильтра (если, конечно, они не используются в подзапросах).

Внимание!

Следует с осторожностью использовать эту функцию. Никакой проверки синтаксиса при компиляции условия, содержащего ВЫРАЖЕНИЕ, не происходит. Если в синтаксисе допущена ошибка, сообщение об ошибке будет выдаваться уже при работе алгоритма.

Пример1:

ф = накладные.ФИЛЬТР

ЕСЛИ НЕ ф.УСЛОВИЕ_ВЫРАЖЕНИЕ("дата > ДАТА_НАЧ И дата <= ДАТА_КОН", ошибка) ТО

СООБЩЕНИЕ(ошибка)

СТОП

КОНЕЦ_ЕСЛИ

// Фильтр содержит условия на дату операции

См.также
Функция ВЫРАЖЕНИЕ в условии запроса


Объект "Шрифт"

описание поля методы конструкторы Объекты

Описание:

Объект ШРИФТ предназначен для управления шрифтами в бланке. Внутри бланка шрифты могут быть:

·заранее определенными в параметрах бланка.

·создаваемые в процессе расчета алгоритма

Графы ввода-вывода могут использовать только шрифты, заданные в параметрах бланка, однако эти шрифты могут изменяться в процессе расчета. Текст, выводимый при помощи функции ВЫВЕСТИ, может использовать оба типа шрифтов.

Поле | Значение | Тип
имя | Название шрифта | СТРОКА
размер | Размер шрифта в логических единицах | ЧИСЛО
полужирный | Признак полужирного шрифта | ЛОГИКА
наклонный | Признак наклонного шрифта | ЛОГИКА
подчеркнутый | Признак подчеркнутого шрифта | ЛОГИКА
зачеркнутый | Признак зачеркнутого шрифта | ЛОГИКА
кодировка | Номер набора символов шрифта | ЧИСЛО
цвет | Цвет шрифта | ЧИСЛО

Методы:

СЧИТАТЬ | считывает настройки стандартного шрифта
ШИРИНА_СТРОКИ | для шрифта бланка возвращает ширину строки, измеряемую в ячейках бланка; для шрифта, созданного с помощью ЭТО, возвращает ширину строки, измеряемую в единицах ширины полей диалога

Конструктор:

1) Создается по имени шрифта бланка (заданного в параметрах бланка). Все шрифты бланка представлены в расчетной части своими объектами. Имя объекта совпадает с именем шрифта, однако для этого он должен быть правильным идентификатором.

2)<имя> ЭТО ШРИФТ

где

<имя>
имя создаваемого объекта.

Пример 1:

Основной.размер = 20 // Изменим размер основного шрифта

ВЫВЕСТИ(1, 1, "Текст", Основной) // Выведем текст основным шрифтом бланка

Пример 2:

шрифт ЭТО ШРИФТ

ДЛЯ шрифт

имя = "Arial"

размер = 12

наклонный = ДА

КОНЕЦ_ДЛЯ

ВЫВЕСТИ(1, 1, "Текст", 100, шрифт, "П")// Выведем текст шрифтом "шрифт" и

// выровним его направо

См. также
Поля вывода в диалоге
Функция ВЫВЕСТИ


ШИРИНА_СТРОКИ

Метод ШИРИНА_СТРОКИ

Объект "Шрифт"

 Вернуться к началу раздела

Синтаксис:

ШИРИНА_СТРОКИ(<строка>)

<строка>
строка, ширину которой надо найти.

Результат — число.

Описание:

Для шрифта бланка (заданного в параметрах бланка) метод высчитывает, сколько нужно ячеек бланка для графы, чтобы в ней поместился указанный текст, отображаемый шрифтом, для которого вызывается этот метод.

Замечание!

Результат напрямую зависит от сетки бланка, указанной в параметрах. При использовании моноширинного основного шрифта и вызове метода ШИРИНА_СТРОКИ для основного шрифта, метод ШИРИНА_СТРОКИ вернет число, равное количеству символов в строке, т.е. ДЛИНА(<строка>).

Для шрифта, созданного с помощью ЭТО, возвращает ширину строки, измеряемую в единицах ширины полей диалога.

Пример:

// Посчитаем размер графы, для вывода текста "Выберите товар" шрифтом "Основной"

СООБЩЕНИЕ(Основной.ШИРИНА_СТРОКИ("Выберите товар"))


СЧИТАТЬ

Метод СЧИТАТЬ

Объект "Шрифт"

 Вернуться к началу раздела

Синтаксис:

СЧИТАТЬ

Метод не возвращает результат.

Описание:

Метод СЧИТАТЬ считывает настройки стандартного шрифта.

Пример:

ш ЭТО ШРИФТ

ш.СЧИТАТЬ(шрифтДиалогов) // загружаем шрифт диалогов


Объект "SQL"

описание поля методы конструкторы Объекты

Описание:

Специальный объект SQL может быть использован для низкоуровневого программирования на языке SQL. Он не рекомендован к использованию. Вместо него рекомендуется использовать объекты ЖУРНАЛ и КУРСОР.

Внимание!

При выполнении SQL-запроса не делается никакой проверки синтаксиса. При наличии ошибок, о них будет сообщать сервер.

Поля:

Данный объект не имеет полей.

Методы:

ВСЕГО_ПОЛЕЙ | возвращает кол-во полей результата запроса
КОНЕЦ_ФАЙЛА | возвращает флаг конца запроса
НАЗВ_ПОЛЯ | возвращает название поля по его номеру
ПЕРВАЯ | исполняет запрос заново и считывает первую запись из него
ПОЛЕ | возвращает значение указанного поля в текущей записи
СЛЕДУЮЩАЯ | считывает следующую запись запроса
ТЕКУЩАЯ | возвращает номер текущей записи (количество уже считанных записей)

Конструктор:

Для создания объекта SQL можно использовать конструкторы:

1. <имя> ЭТО SQL или

2. <имя> = SQL (<запрос>)

где:

<запрос>
текст SQL-запроса.

Пример 1:

// Выводит название счетов из служебной таблицы acc_plscet

запрос = SQL("select name from acc_plscet")

ЦИКЛ ПОКА (НЕ запрос.КОНЕЦ_ФАЙЛА)

// Выводит название счета

ОТЛАДКА(запрос.ПОЛЕ("name"))

запрос.СЛЕДУЮЩАЯ

КОНЕЦ_ЦИКЛА

Пример 2:

// Модифицирует название счета 01

SQL("update acc_plscet set name = name || '$' where num = '01'")


ВСЕГО_ПОЛЕЙ

Метод ВСЕГО_ПОЛЕЙ

Объект "SQL"

 Вернуться к началу раздела

Синтаксис:

ВСЕГО_ПОЛЕЙ

Описание:

Метод ВСЕГО_ПОЛЕЙ возвращает кол-во полей результата запроса. Далее для получения имени конкретного поля можно использовать метод НАЗВ_ПОЛЯ, а для получения значения поля по его номеру метод ПОЛЕ.

Пример:

запрос.ВСЕГО_ПОЛЕЙ

См.также
НАЗВ_ПОЛЯ


КОНЕЦ_ФАЙЛА

Метод КОНЕЦ_ФАЙЛА

Объект "SQL"

 Вернуться к началу раздела

Синтаксис:

КОНЕЦ_ФАЙЛА

Результат — логика.

Описание:

Метод КОНЕЦ_ФАЙЛА возвращает значение ДА, если обнаружен конец запроса (больше нет данных для считывания) или запрос не возвращает результата, и значение НЕТ в противном случае.

Пример:

запрос.КОНЕЦ_ФАЙЛА


НАЗВ_ПОЛЯ

Метод ОБЪЕДИНИТЬ

Объект "SQL"

 Вернуться к началу раздела

Синтаксис:

НАЗВ_ПОЛЯ(<номер>)

где

<номер>
номер поля

Описание:

Метод НАЗВ_ПОЛЯ возвращает название поля по его номеру.

Пример:

// Алгоритм отчета, который выводит содержимое служебной таблицы acc_plscet

запрос = SQL("select * from acc_plscet")

ЦИКЛ ПОКА (НЕ запрос.КОНЕЦ_ФАЙЛА)

// Выводит значение полей в отчет
ЦИКЛ ДЛЯ (и = 1, запрос.ВСЕГО_ПОЛЕЙ)
ЯЧЕЙКА[и, запрос.ТЕКУЩАЯ] = запрос.ПОЛЕ(и)
КОНЕЦ_ЦИКЛА
запрос.СЛЕДУЮЩАЯ

КОНЕЦ_ЦИКЛА

// Задает заголовки колонок

ЦИКЛ ДЛЯ (и = 1, запрос.ВСЕГО_ПОЛЕЙ)
ЯЧЕЙКАГОР![и] = запрос.НАЗВ_ПОЛЯ(и)

КОНЕЦ_ЦИКЛА


ПЕРВАЯ

Метод ПЕРВАЯ

Объект "SQL"

 Вернуться к началу раздела

Синтаксис:

ПЕРВАЯ

Результат — логика.

Описание:

Метод ПЕРВАЯ выполняет запрос и считывает первую запись результата. Если в результате выполнения запроса ни одной записи не возвращается и считывать нечего, возвращает НЕТ, в противном случае ДА.

Пример:

запрос.ПЕРВАЯ

См.также
КОНЕЦ_ФАЙЛА


ПОЛЕ

Метод ПОЛЕ

Объект "SQL"

 Вернуться к началу раздела

Синтаксис:

ПОЛЕ(<имя поля> [,<тип значения>] )

где

<имя или номер поля>
строка: имя поля запроса
число: номер поля запроса, начиная с 1.

<тип значения>
необязательный параметр, определяющий тип значения; рекомендуется его указывать для контроля типов на этапе компиляции алгоритма.

Тип результата зависит от типа поля.

Пример:

// Получить значение поля по его имени

СООБЩЕНИЕ(запрос.ПОЛЕ("Name"))

// Получить значение поля по его номеру

СООБЩЕНИЕ(запрос.ПОЛЕ(1))


СЛЕДУЮЩАЯ

Метод СЛЕДУЮЩАЯ

Объект "SQL"

 Вернуться к началу раздела

Синтаксис:

СЛЕДУЮЩАЯ

Результат — логика.

Описание:

Метод СЛЕДУЮЩАЯ считывает следующую запись запроса. Если чтение произошло удачно, то возвращает ДА, если не удачно (мы дошли до конца выборки), то НЕТ.

Пример:

запрос.СЛЕДУЮЩАЯ


ТЕКУЩАЯ

Метод ТЕКУЩАЯ

Объект "SQL"

 Вернуться к началу раздела

Синтаксис:

ТЕКУЩАЯ

Результат — число.

Описание:

Метод ТЕКУЩАЯ возвращает количество уже считанных записей. В самом начале ТЕКУЩАЯ вернет 1. После каждого выполнения метода СЛЕДУЮЩАЯ возвращаемое методом ТЕКУЩАЯ значение будет увеличиваться на 1.

Пример:

СООБЩЕНИЕ("Текущая запись " + СТР(запрос.ТЕКУЩАЯ))


Сообщения об ошибках

Первичные ошибки

... - не является полем журнала(ов) ...

Библиотечная функция ... не найдена

В DBF-файле не задано ни одного поля

В DBF-файле нет записей

В DBF-файле нет поля ...

В плане счетов не найден счет ...

В справочнике ... нет записи с ... равным ...

В условии должен участвовать только один журнал

В цикле используются агрегатные функции, поэтому дополнительные поля ... считаны не будут

Включаемые строки уже принадлежат более чем одной группе

Возможные значения: "Акт","Пас","А/П","З/Б"

Возможный диапазон округления - от ... до ...

Выражение не имеет смысла в определении ...

Графа ввода ... повторяется несколько раз

Группа не может содержать саму себя прямо или косвенно

Деление на 0

Длина документа должна быть не больше ... символов

Для добавления в меню у журнала должно быть одно индексное поле

Для переменной типа ... не определен метод ...

Для объекта ... не определена главная запись

Для массива ... не определено значение для индекса ...

Для работы с объектом доступен только интерфейс ...

Доступ запрещен

Журнал ... встречается в выборке несколько раз

Журнал ... встречается в выборке несколько раз. Необходимо конкретизировать ...

Журнал ... должен был быть объявлен ранее, чтобы использоваться в условии

Журнал ... должен представляться в виде дерева

Журнал ... имеет более одного вида. Необходимо указать, какой вид здесь использовать

Журнал ... имеет несколько подчиненных журналов детализации. Необходимо конкретизировать ...

Журнал ... не доступен в данной версии программы

Журнал ... не имеет подчиненного журнала детализации

Журнал ... не может быть привязан к проводкам

Журнал ... не существует, либо не может быть открыт

Журнал пуст

Запись журнала уже проведена в бухгалтерии

Запись из журнала ... нельзя использовать как детализацию журнала...

Запись не найдена

Запись не считывается полностью при выполнении цикла ...

Значение агрегатной функции ... не может использоваться здесь

Значение параметра ... не задано

Идентификатор ... не является ...

Источник и приемник должны одновременно определять...

Исходная функция ... имеет другие параметры или тип результата

Исходная функция ... не найдена

Исходная функция ... уже имеет одну обработку ...

Ключевое слово ПРОДОЛЖИТЬ должно находиться внутри цикла

Кол-во элементов массива, использующегося в операторе ИЗ превышает (...)

Комментарии не были завершены

Координата ... не существует

Конфликт между полем ... объекта ... и идентификатором...

Курсор не определен

Массив может быть только параметром-переменной

Метод ...должен вызываться внутри обработчика Вид журнала

Метод ... не применяется для сложного фильтра

Множество ... либо его элемент ... не существуют

Налоговая коррекция должна вызываться после проводки

Не удалось отсортировать DBF-файл

Неизвестная операция над ячейками

Неизвестный атрибут ячейки или строки

Не найден обработчик ... для функции ...

Не найдена библиотека ...

Неверная операция с ...

Неверно заданы параметры функции

Неверное описание обработчика ...

Неверный атрибут строки/столбца

Неверный атрибут ячейки

Неверный атрибут ячейки

Невозможно выполнить операцию ...

Невозможно добавить условия ссылок из-за того, что журналы повторяются.

Невозможно задать план запроса

Невозможно записать в DBF-файл

Невозможно записать в файл открытый на чтение

Невозможно запустить бланк ...

Невозможно запустить отчет ...

Невозможно открыть файл ...

Невозможно перейти к записи N ...

Невозможно получить основную запись

Невозможно сохранить значение ... поля ...

Невозможно считать запись

Невозможно ... запись пока она не считана из журнала

Невозможно удалить счет ... т.к. он имеет субсчета

Невозможно удалить счет ... т.к. он участвует в проводках

Невозможно удалить счет ... т.к. он заблокирован от изменения

Невозможно установить номер документа в момент его использования

Недопустима проводка между балансовым и забалансовым счетом

Недопустимая операция для переменных типа ...

Недопустимая операция над свойством

Недопустимый аргумент логарифма

Недопустимый тип индекса

Недопустимый тип ... параметра ...

Недопустимый символ ... в имени переменной

Недоступен источник данных для поля ...

Неподдерживаемый тип результата

Незаконченная строка - ожидался символ "

Неизвестна фирма, по которой надо делать проводки

Неизвестная графа ...

Неизвестное поле или метод ...

Неизвестный идентификатор ...

Некорректная дата

Некорректное время

Нельзя указывать перечисление полей "[...]" после ...

Необходимо указать имя объекта

Неожиданный конец расчетной части

Неправильное использование ключевого слова ...

Несовместимые типы: ... и ...

Нет открытого DBF-файла

Обращение к методу или полю неинициализированного объекта

Объект может быть только параметром-переменной

Объект не является локальной или общей переменной

Объект не является сервером автоматизации

Объект ... не имеет поля или метода ...

Объект ... не найден

Ожидалась функция логического типа

Ожидалась функция, не возвращающая результат

Ожидалось выражение или агрегатная функция

Ожидалась переменная

Ожидалась переменная объектного типа

Ожидалась переменная одного из типов:

Ожидалась ранее определенная переменная

Ожидалась функция без параметров

Ожидалась функция с одним параметром

Ожидалась функция вида...

Ожидалось "..."

Ожидалось выражение индекса, начинающееся с "!" или "["

Ожидалось выражение одного из типов: ...

Ожидалось значение в диапазоне от .. до ...

Ожидалось название типа

Ожидалось название функции

Ожидалось объявление простого типа

Ожидалось сравнение

Ожидалось условие

Ожидался атрибут ячейки

Ожидался идентификатор

Ожидался массив

Ожидался простой идентификатор

Ожидался параметр вида: ПЕРЕМ СТРОКА : <параметр>

Ожидался тип объекта

Оператор ":" указывается только у идентификаторов журналов

Оператор ЭТО может использоваться только для объектных переменных

Операция не была проведена в бухгалтерии

Определение общего массива внутри функции

Определение функции внутри функции

Ошибка арифметики с плавающей точкой

Ошибка во входном поле

Ошибка доступа к строке номер ...

Ошибка записи фильтра

Ошибка изменения данных. Надо удалить данные вручную

Ошибка импорта журнала

Ошибка использования сложного фильтра...

Ошибка поиска записи в журнале

Ошибка при записи файла ...

Ошибка удаления записи

Ошибка чтения из файла

Ошибка чтения фильтра

Ошибка экспорта журнала

Ошибочная константа одного из типов:...

Ошибочная строковая константа

Ошибочная операция для типа ...

Параметр ... уже задавался

Переменная ... использована для установки связи

Переменная еще не связана с конкретным журналом

Перемещение невозможно, так как журнал редактируется

Поле ... есть сразу в нескольких журналах...

Поле ... должно входить в выражение простым образом

Поле ... не содержится в курсоре ..., задающем групповой выбор

Поле ... не считывается при выполнении цикла

Поле ... не является полем этого объекта

Пользователь ... не сушествует

Поля журнала ... не могут использоваться в параметрах журнала-процедуры.

Повторяющийся идентификатор ...

Повторяющееся имя графы ...

При групповом выборе из курсора должны быть заданы условия связи

Пункт меню ... не найден

Пустая строка не может быть именем переменной

Бесконечная рекурсия при вызове обработчика...

Свойство доступно только для записи

Свойство доступно только для чтения

Секция ввода ... нигде не используется

Символ ... и ... не должны употребляться одновременно

Символ ... не определяет ни один из известных способов выравнивания

Слишком длинная маска счета или статьи

Слишком сложная маска счета

Сортировка по ... невозможна

Старый вариант записи не найден

Статья... имеет субстатьи

Статья учета ... не найдена

Строку ... невозможно преобразовать в число

Счет ... не имеет аналитики по ...

Счет ... имеет субсчета

Текущая позиция в секции не определена

У журнала ... нет вида ...

У этой записи нет ...-ого объекта детализации

Файл не был открыт

Файл ... не найден в базе данных

Файл DBF не поддерживает тип

Фильтр ... не найден

Функция ... не возвращает результат

Функция ... недоступна в ...

Функцию ЗАП_ОПЕР нельзя вызывать внутри функции журнала ...

Циклическая ссылка в определении ...

Число параметров ... не равно числу шаблонов ...

Чтобы использовать метод ... необходимо включить соответствующую опцию ...

Элементы массива и поля объектов не могут передаваться в выражение

Ячейка ... не существует

Несоответствие версии

Неизвестный тип, класс, операция ...

Ошибка при передаче параметров функции ...

Ошибка при вызове функции ...

Сбой стека функции

Локализующие сообщения

Ошибка выполнения конструкции ...

Ошибка компиляции конструкции ...

Ошибка определения диалога

Ошибка определения общих переменных

Ошибка определения функции

Ошибочное задание массива

Фатальные ошибки

Неверный код определения или реквизита ...

Невозможно выполнить операцию - одна или несколько записей заблокированы

Ошибка в цикле при позиционировании

Ошибка записи кода в файл

Ошибка компиляции расчетной части

Ошибка компиляции функции ...

Ошибка компиляции функций журналов

Ошибка копирования объекта типа ...

Ошибка подключения библиотеки ...

Ошибка создания кода используемых библиотечных функций

Ошибка инициализации ...

Ошибка при вызове пользовательской функции сравнения

Переполнение стека вычислений

Повторяющаяся типовая операция ...

Предупреждающие сообщения

Бланк не имеет вводных граф, поэтому ВВЕСТИ будет проигнорировано

Возможное изменение переменной счетчика цикла (...)

Есть вызов функции ...

Значение переменной ... может быть не определено

Изменение переменной счетчика цикла (...)

Кол-во элементов массива, использующегося в операторе ИЗ может превысить (...)

Не имеет смысла указывать здесь список полей - журнал не имеет итерационной переменной

Переменной ... было присвоено значение, которое нигде не используется

Пустая секция в конструкции ...

Функция ... может не вернуть результат

ЦИКЛ ПО ЖУРНАЛУ не производит никаких действий

Предупреждающие сообщения выводятся только если они включены в настройках транслятора.

Подсказки

Бланк ... не существует

В графу ... что-то заносилось, возможно стоит сделать ее желтой

Вложенный цикл может стать причиной низкого быстродействия

Для счета ... определен идентификатор .... Для ссылки на счет лучше использовать его.

Если в цикл входят одновременно и агрегатные функции и подзапросы без агрегатных функци...

Журналы в запросе имеют циклические ссылки

Модификатор выборки "!" не указан, будет дополнительный запрос к базе данных

Отчет ... не существует

Расчет остановлен

Рекомендуется указывать значение по умолчанию для параметров

Типовая операция ... не существует

Подсказки выводятся только если они включены в настройках транслятора.


... - не является полем журнала(ов) ...

Появляется при обработке списка выбираемых полей в ЦИКЛе ПО ЖУРНАЛУ. Поле не является полем этого журнала. Например:

ЦИКЛ ПО ЖУРНАЛУ накладные[поле_не_существует] (ДА)

// ...

КОНЕЦ_ЦИКЛА


Бесконечная рекурсия при вызове обработчика ...

Выдается в ситуации, когда при выполнении обработчика возникла бесконечная рекурсия. Например, внутри обработчика "При изменении" происходит изменение записи этого же журнала при помощи ЗАПИСАТЬ, которая, в свою очередь вызывает этот же обработчик "При изменении" и т.д.

Желательно избегать внутри функций журналов активного изменения содержимого других журналов.


Библиотечная функция ... не найдена

Указанная функция не найдена. Проверьте правильность указания имени функции и библиотеки.


Бланк ... не существует

Информационное сообщение выдается при компиляции функции СТАРТ_БЛАНК если такой бланк на момент компиляции не существует.


Бланк не имеет вводных граф, поэтому ВВЕСТИ будет проигнорировано

Бланк может иметь предрасчетную часть только в том случае, если он имеет хотя бы одну графу ввода. В противном случае ВВЕСТИ не нужно. Для устранения вывода предупреждения надо либо убрать ВВЕСТИ, либо добавить графу ввода в визуальную часть бланка.


В DBF-файле не задано ни одного поля

Функции БД_ВЫБОР и БД_РЕДАКТОР могут работать только с файлами DBF, содержащими хотя бы одно поле.


В DBF-файле нет записей

Выдается функцией БД_ПОЛЕ или методом ПОЛЕ объекта БД при попытке считать запись из пустого DBF-файла. Просто в обычных условиях эти функции сначала считывают первую запись и уже для нее выдают значение поля.


В DBF-файле нет поля ...

Выдается функциями для работы с файлами в формате DBF или методами объекта БД при попытке обратиться к несуществующему в файле полю.


В графу ... что-то заносилось, возможно стоит сделать ее желтой

Переменной, указанной в качестве вводной графы, присваивается значение в процессе расчета бланка. Вероятно, следует поставить опцию Желтый цвет фона у графы, чтобы обратить внимание пользователя, что графа подсчитывается автоматически.


В цикле используются агрегатные функции, поэтому дополнительные поля ... считаны не будут

Объект ЖУРНАЛ может иметь дополнительные поля, доступ к которым осуществляется с помощью метода ПОЛЕ. Если такой объект

Если ЦИКЛ ПО ЖУРНАЛУ содержит такой журнал и использует агрегатные функции, будет выдаваться эта ошибка.

Например, пусть журнал накладные содержит дополнительные поля, тогда следующая конструкция приведет к этой ошибке:

ЦИКЛ ПО ЖУРНАЛУ накладные накл, СУММА(накладные_доп.сумма) сум
// ....
ОТЛАДКА(накл.ПОЛЕ("водитель"))
// ....
КОНЕЦ_ЦИКЛА


В плане счетов не найден счет ...

Выдается различными функциями для работы с планом счетов или журналом бухгалтерских операций. Программа не может обратиться к требуемому счету. Либо добавьте этот счет, либо измените алгоритм расчета.


В справочнике ... нет записи с ... равным ...

Выдается различными функциями для работы с планом счетов или журналом бухгалтерских операций. Программа не может обратиться к требуемому аналитическому признаку. Либо добавьте этот признак, либо измените алгоритм расчета.


В условии должен участвовать только один журнал

Выдается методом УСЛОВИЕ объекта ФИЛЬТР, конструктором ФИЛЬТР при создании фильтра (I) и методом НАЙТИ объекта ЖУРНАЛ (II), в случае, когда условие фильтрации накладывает ограничения на несколько журналов.

I. Объект ФИЛЬТР создается на основе конкретного журнала и содержит условие фильтрации только этого журнала. При необходимости использования условия на несколько журналов, создается несколько объектов ФИЛЬТР. Например, следующее выражение выдаст ошибку:

фильтр_опер = накладные.ФИЛЬТР(дата <= ДАТА_ЗАКР И склады.код = 1)

его следует разбить на два фильтра:

фильтр_опер = накладные.ФИЛЬТР(дата <= ДАТА_ЗАКР)

фильтр_склады = склады.ФИЛЬТР(код = 1)

А в ЦИКЛе ПО ЖУРНАЛУ, где встречалось условие на фильтр_опер заменить его на выражение:

(фильтр_опер И фильтр_склады).

II. Для поиска записи по комбинированному условию на несколько журналов вместо метода НАЙТИ можно использовать конструкцию ВЫБРАТЬ. Также причиной появления такого сообщения может быть не желание наложить такое условие, а использование переменных, совпадающих с идентификаторами журналов, например

ВЫБОР_ЗАПИСИ(склады) // Выбрали склад

накладные.НАЙТИ(номер = "23" И код_склада = склады.код) // Будет выдана ошибка

В приведенном примере будет выдано указанное сообщение об ошибке, потому что программа считает что склады является идентификатором журнала, а не локальной переменной типа ЖУРНАЛ. Чтобы указать ей об этом надо написать так:

накладные.НАЙТИ(номер = "23" И код_склада = :склады.код)


Включаемые строки уже принадлежат более чем одной группе

Программа разрешает группировать уже сгруппированные ячейки. В этом случае, вновь создаваемая группа поместиться внутрь группы, которой эти ячейки принадлежат. Однако, при попытке сгруппировать ячейки, принадлежащие разным группам, программа уже не знает, как понять логику программиста. В этой ситуации функция ГРУППА выдает подобное сообщение об ошибке. Например:

ЯЧЕЙКА[1, 1] = 1

ЯЧЕЙКА[1, 2] = 1

ГРУППА(3, "1") // Группа 3 содержит строку 1

ГРУППА(4, "2") // Группа 4 содержит строку 2

ГРУППА(5, "1;2") // Получается, что группа 5 должна содержать и строку 1 и строку 2,

// которые уже принадлежат разным группам

Для устранения проблемы последнюю строку надо переписать, например, так:

ГРУППА(5, "1")

или так

ГРУППА(5, "2")

В первом случае группа 5 будет содержать строку 1 и попадет внутрь "большой" группы 3, а во втором случае группа 5 будет содержать строку 2 и попадет внутрь "большой" группы 4.

Можно воспользоваться атрибутом атГруппа, чтобы не вникать в такие тонкости, однако последствия от некорректного задания групп могут быть непредсказуемы.


Вложенный цикл может стать причиной низкого быстродействия

Постарайтесь не использовать вложенные ЦИКЛы ПО ЖУРНАЛУ, ВЫБРАТЬ и НАЙТИ. Их применение в некоторых случаях может привести к снижению быстродействия. Лучше попытаться из двух вложенных циклов сделать один. Обычно это делается при помощи объединения списка обрабатываемых журналов, объединения накладываемых условий и добавление дополнительного условия связки журналов.

Например:

и = 1

ЦИКЛ ПО ЖУРНАЛУ накладные н (дата >= ДАТА_НАЧ И дата < ДАТА_КОН)

ЦИКЛ ПО ЖУРНАЛУ поставщики п (п.код = н.поставщик)

ВЫВЕСТИ(1,и,н.дата)

ВЫВЕСТИ(10,и,н.номер)

ВЫВЕСТИ(15,и,п.название)

ВЫВЕСТИ(25,и,п.инн)

и++

КОНЕЦ_ЦИКЛА

КОНЕЦ_ЦИКЛА

можно заменить на:

и = 1

ЦИКЛ ПО ЖУРНАЛУ накладные н, поставщики п (дата >= ДАТА_НАЧ И дата < ДАТА_КОН И

п.код = н.поставщик)

ВЫВЕСТИ(1,и,н.дата)

ВЫВЕСТИ(10,и,н.номер)

ВЫВЕСТИ(15,и,п.название)

ВЫВЕСТИ(25,и,п.инн)

и++

КОНЕЦ_ЦИКЛА


Возможное изменение переменной счетчика цикла (...)

Переменная счетчика цикла ДЛЯ или СЧЕТА может быть изменена внутри цикла, что может привести к неправильным вычислениям или к зацикливанию, но не является ошибкой. Это предупреждение может появиться при передаче счетчика цикла в качестве параметра-переменной в функцию. Например:

ФУНКЦИЯ ИЗМЕНЯЕМ (ПЕРЕМ ЧИСЛО: парам)

парам--

СООБЩЕНИЕ(парам)

КОНЕЦ_ФУНКЦИИ

ЦИКЛ ДЛЯ (и=1,10)

ИЗМЕНЯЕМ(и) // <-- Выдаст предупреждение

КОНЕЦ_ЦИКЛА

Если функция не должна изменять параметр, то в определении параметра не нужен ПЕРЕМ:

ФУНКЦИЯ ИЗМЕНЯЕМ (ЧИСЛО: парам)

парам--

СООБЩЕНИЕ(парам)

КОНЕЦ_ФУНКЦИИ

ЦИКЛ ДЛЯ (и=1,10)

ИЗМЕНЯЕМ(и) // <-- Все в порядке

КОНЕЦ_ЦИКЛА


Возможные значения: "Акт","Пас","А/П","З/Б"

Выдается функцией ДОБАВИТЬ_СЧЕТ. Укажите правильно раздел баланса добавляемого счета:

"Акт" - активный счет (можно сократить до "А");

"Пас" - пассивный счет (можно сократить до "П");

"А/П" - активно-пассивный счет;

"З/Б" - забалансовый счет.


Возможный диапазон округления - от ... до ...

Выдается функцией ОКРУГЛЕНИЕ, если округление выходит за возможный диапазон от -9 до 9..


Выражение не имеет смысла в определении ...

Программа не смогла вычислить значение определения. Значением определения может быть константа или любое выражение внутреннего языка. Обычно этому сообщению предшествуют сообщения о конкретных ошибках в выражении определения.


Графа ввода ... повторяется несколько раз

Указанная графа ввода бланка описана в визуальной части бланка более одного раза. Программа не понимает такое описание. Переименуйте одну из повторяющихся граф.


Группа не может содержать саму себя прямо или косвенно

Выдается функцией ГРУППА при попытке поместить группу внутрь себя самой. Такое недопустимо.

Пример:

ЯЧЕЙКА[1,1] = 1

ГРУППА(1,"1") // Получается что строка с координатой 1 будет подгруппой строки с

// координатой 1, т.е. подгруппой самой себя. Это приведет к ошибке.

Однако чаще всего такая ошибка возникает, когда группа входит внутрь себя косвенно, например:

ЯЧЕЙКА[1,1] = 1

ГРУППА(2,"1") // Группа 2 содержит строку 1

ГРУППА(3,"2") // Группа 3 содержит строку 2, которая содержит строку 1

ГРУППА(1,"3") // Получается что строка с координатой 1 будет содержать подуппу3,

// содержащую строку 2, которая содержит исходную группу 1

Программа разрешает группировать уже сгруппированные ячейки. В этом случае, вновь создаваемая группа поместиться внутрь группы, которой эти ячейки принадлежат. В этом случае возможна ситуация, когда группа оказывается внутри себя самой, например:

ЯЧЕЙКА[1, 1] = 1

ГРУППА(3, "1") // Группа 3 содержит строку 1

ГРУППА(5, "1;3") // Т.к. строка 1 уже принадлежит группе 3, программа будет считать

// что группа 5 должна включать строку 1 и, значит лежать внутри

// группы 3, но этим же вызовом сообщается, что и строка 3 должна быть

// внутри группы 5, получается взаимная вложенность

Можно воспользоваться атрибутом атГруппа, который делает ссылку группа-подгруппа без каких-либо проверок, однако последствия от некорректного задания групп могут быть непредсказуемы.


Деление на 0

В результате выполнения алгоритма делитель равен нулю.


Длина документа должна быть не больше ... символов

Выдается функцией НОМЕР и свойством ТЕК_НОМЕР. Длина типа документа ограничена. Укоротите текст.


Для добавления в меню у журнала должно быть одно индексное поле

Да. Это так. Когда вызывается функция ВЫБОР_ЗАПИСИ! (с восклицательным знаком), т.е. когда в меню добавляется графа с выбором из журнала аналитики, требуется, чтобы у него было индексное поле и только одно. Под индексным полем понимается поле, входящее в первичный ключ, или поле, имеющее уникальное ограничение в базе данных. Именно значение этого поля будет подставляться в графу выбора. И именно на это значение надо смотреть, чтобы определить, какую запись выбрал пользователь.

Переменная типа ЖУРНАЛ в случае ВЫБОР_ЗАПИСИ! (с восклицательным знаком) необходима только для указания журнала, из которого происходит выбор. Возврат значения идет посредством строки, представляющей собой значение индексного поля.


Для массива ... не определено значение для индекса ...

Если массив имеет неопределенный тип, то при попытке обратиться к несуществующему элементу этого массива будет выдано это сообщение об ошибке. Например:

ПЕРЕМ массив!

ВЫЧИСЛИТЬ

СООБЩЕНИЕ(массив!1) // Здесь будет выдано это сообщение об ошибке

КОНЕЦ

Если массив имеет определенный тип, то при обращении к несуществующему элементу будет возвращено значение по умолчанию. Так, для числовых массивов это 0 (ноль), а для строковых "" (пустая строка).


Для объекта ... не определена главная запись

Попытка получить основную запись для имеющейся записи детализации журнала, который не является подчиненным ни для одного основного журнала. Выдается при использовании метода ОСНОВНАЯ объекта ЖУРНАЛ.

Соотношение основной журнал - подчиненный определяется на основе ссылочной целостности. Проверьте наличие этих ссылок.


Для переменной типа ... не определен метод ...

Для объектной переменной указанного типа не найдено встроенного или библиотечного метода (или диалога) с указанным именем. Чаще всего это результат описки.

Возможны другие ситуации, например, библиотечный метод описан для другого объекта или в качестве метода пытаются вызвать библиотечную функцию:

ФУНКЦИЯ ЖУРНАЛ(накладные_доп) Редактировать

// ...

КОНЕЦ_ФУНКЦИИ

накладные.Редактировать // Выдаст ошибку - метод объявлен для объекта ЖУРНАЛ накладные_доп

// а не для ЖУРНАЛа накладные


Для работы с объектом доступен только интерфейс ...

Указанный интерфейс объект не реализует. Уберите указание интерфейса чтобы программа сама выбрала нужный.


Для счета ... определен идентификатор .... Для ссылки на счет лучше использовать его

В плане счетов предусматривается указание идентификатора для счета. Использование идентификаторов счетов позволяет сохранять работоспособность программы при изменении кода счета пользователем.

В данном месте программы указывается конкретный код счета, несмотря на то, что этот счет имеет идентификатор. Лучше использовать идентификатор.


Доступ запрещен

Запрещен доступ к объекту или функции. Обратитесь к администратору для получения дополнительных прав.


Если в цикл входят одновременно и агрегатные функции и подзапросы без агрегатных функций...

Программа поддерживает обработку такой ситуации, однако в некоторых случаях это может приводить к неправильному распознаванию запроса сервером.


Журнал ... встречается в выборке несколько раз

Выдается ЦИКЛом ПО ЖУРНАЛУ, оборотными функциями ОБ*, ОС*, методом УСЛОВИЕ объекта ФИЛЬТР, функциями ВЫБОР_ЗАПИСИ, СТАРТ_ЖУРНАЛ и т.п. Оказывается, что данный журнал встречается в выборке несколько раз. Программа не знает, как это обработать. Например:

ЦИКЛ ПО ЖУРНАЛУ! бухсчета, бухсчета, бухпроводки пров

(пров.дебет = бухсчета.код И пров.кредит = бухсчета.код)

// ...

КОНЕЦ_ЦИКЛА

в данном случае ситуация поправима, достаточно написать:

ЦИКЛ ПО ЖУРНАЛУ! бухсчета деб, бухсчета кред, бухпроводки пров

(пров.дебет = деб.код И пров.кредит = кред.код)

// ...

КОНЕЦ_ЦИКЛА

С помощью указания имен "деб" и "кред" программа может отличить один экземпляр журнала бухсчета от другого.

Если же имена у журналов заданы, подобное сообщение об ошибке может быть в результате применения объекта ФИЛЬТР. Например:

ф = бухсчета.ФИЛЬТР(остаток > 0)

ЦИКЛ ПО ЖУРНАЛУ! бухсчета деб, бухсчета кред, бухпроводки пров

(пров.дебет = деб.код И пров.кредит = кред.код И ф)

// ...

КОНЕЦ_ЦИКЛА

Программа не знает, на какой экземпляр журнала бухсчета ("деб" или "кред") действует фильтр. Использование фильтров в данной ситуации невозможно.

В оборотных функциях данное сообщение об ошибке может быть вследствие того, что на субсчетах разного уровня заданы одни и те же аналитические признаки. Это же касается условий на аналитические признаки в ЦИКЛе ПО ЖУРНАЛУ - если признак пересекается с другим журналом, участвующим в выборке.


Журнал ... встречается в выборке несколько раз. Необходимо конкретизировать ...

Выдается ЦИКЛом ПО ЖУРНАЛУ, методом УСЛОВИЕ объекта ФИЛЬТР, функциями ВЫБОР_ЗАПИСИ, СТАРТ_ЖУРНАЛ и т.п. Данный журнал встречается в выборке несколько раз, поэтому при указании поля надо указывать не идентификатор журнала, а имя, под которым он входит в цикл. Например:

ЦИКЛ ПО ЖУРНАЛУ! бухсчета деб, бухсчета кред, бухпроводки пров

(пров.дебет = бухсчета.код И пров.кредит = бухсчета.код)

// ...

КОНЕЦ_ЦИКЛА

здесь программа не знает, какой экземпляр журнала бухсчета ("деб" или "кред") использовать. Чтобы указать нужный журнал, достаточно написать:

ЦИКЛ ПО ЖУРНАЛУ! бухсчета деб, бухсчета кред, бухпроводки пров

(пров.дебет = деб.код И пров.кредит = кред.код)

// ...

КОНЕЦ_ЦИКЛА

Теперь, с помощью указания имен "деб" и "кред" программа может отличить один экземпляр журнала бухсчета от другого.


Журнал ... должен был быть объявлен ранее, чтобы использоваться в условии

Вы пытаетесь указать в условии журнал, который еще не был объявлен, а в данном случае это требуется! Например, если вы указываете условия связки, то условие должно содержать в себе уже описанные журналы.

Вот так неправильно:

ЦИКЛ ПО ЖУРНАЛУ! накладные н |н.клиент = клиенты.код|

Вот так правильно:

ЦИКЛ ПО ЖУРНАЛУ! накладные н << клиенты |н.клиент = клиенты.код|


Журнал ... не доступен в данной версии программы....

Произошла попытка доступа к журналу, не доступному в данной версии программы. Если необходимость в нем все-таки есть, добавьте поддержку указанных конфигураций (модулей). Сделать это можно в управлении лицензиями.


Журнал ... не имеет подчиненного журнала детализации

Объект типа ЖУРНАЛ, для которого вызываются методы ДЕТАЛИЗАЦИЯ, ЗАП_ДЕТАЛЬ или КОЛ_ДЕТАЛЕЙ не имеет указанного подчиненного журнала детализации.

Соотношение основной журнал - подчиненный определяется на основе ссылочной целостности. Проверьте наличие этих ссылок.


Журнал ... имеет несколько подчиненных журналов детализации. Необходимо конкретизировать ...

Методы ДЕТАЛИЗАЦИЯ, ЗАП_ДЕТАЛЬ и КОЛ_ДЕТАЛЕЙ позволяют не указывать идентификатор подчиненного журнала детализации. Однако иногда появляется неоднозначность, какой журнал детализации использовать. В этом месте возник как раз этот случай.

Укажите явно идентификатор журнала детализации в параметрах методов.


Журнал ... не может быть привязан к проводкам

Неверное использование функции ВЫБОР_ГРУППЫ. Она может быть вызвана только для журнала, представленного в виде дерева. Проверьте используемую переменную или поставьте соответствующую опцию у журнала.


Журнал ... не может быть привязан к проводкам

Только записи из журналов, помеченных опцией Связь с бухгалтерией, могут быть связаны с проводками. Включите эту опцию в свойствах журнала, прежде чем будете использовать их в функции ПРОВОДКА.


Журнал ... не существует, либо не может быть открыт

Появляется в случае, если журнал не существует. Вызывается функциями ВЫБОР_ЗАПИСИ, ЦИКЛ ПО ЖУРНАЛУ и др.


Журнал ... имеет более одного вида. Необходимо указать, какой вид здесь использовать

Появляется в функциях ВЫБОР_ЗАПИСИ, СТАРТ_ЖУРНАЛ, СТАРТ_ТЕРМИНАЛ, методах РЕДАКТИРОВАТЬ, ДОБАВИТЬ объекта ЖУРНАЛ и др. в случае, если журнал имеет более одного вида.

Чтобы программа знала, какие поля нужно показывать в таблице или редакторе записи журнала, ей нужно сообщить какой вид журнала использовать. Это можно сделать указав этот вид в параметре вызываемой функции.


Журнал пуст

Выдается методами СУММА, МИНИМУМ и МАКСИМУМ объекта ЖУРНАЛ, когда журнал пуст. Проверьте наличие запиcей в журнале перед тем как вызывать эти функции, например так:

ЕСЛИ бухпроводки.КОНЕЦ_ФАЙЛА ТО

сумма = 0

ИНАЧЕ

сумма = бухпроводки.СУММА(сумма)

КОНЕЦ_ЕСЛИ


Журналы в запросе имеют циклические ссылки

Журналы внутри запроса имеют циклические (кольцевые) ссылки. Например, в цикле два журнала, первый имеет поле с подстановкой значения из другого, а тот, в свою очередь, имеет поле с подстановкой значения из первого. Программа добавляет в этом случае условия на обе ссылки. Возможно, это нормально для данного запроса. Однако если сообщение при обработке этого алгоритма раньше не выдавалось, на него следует обратить пристальное внимание. Дело в том, что в процессе создания базы данных, добавления новых полей в существующие журналы, в том числе и полей, ссылающихся на другие журналы, может произойти ситуация появления кольцевых ссылок, которая, как правило, приводит к неправильному выполнению алгоритма.

Чтобы это исправить, надо отключить добавление ссылок, указав ! (восклицательный знак) после ключевого слова ПО или ЖУРНАЛУ и добавить условия ссылок вручную. Другой способ - добавить одну конкретную ссылку в таблицу исключений для устранения цикличности.


Запись журнала уже проведена в бухгалтерии

Выдается функцией ЗАП_ОПЕР или при добавлении проводок после завершения работы алгоритма. Причина ошибки в добавлении проводок, связанных с документом. В качестве аргумента функции ПРОВОДКА была передана запись журнала, уже проведенная в бухгалтерии. Повторное проведение записи недопустимо.

Чтобы узнать, проведена ли запись в бухгалтерии, можно воспользоваться свойством проведено объекта ЖУРНАЛ.


Запись из журнала ... нельзя использовать как детализацию журнала ...

Вы пытаетесь добавить детализацию к основной записи, не совпадающую с объектом ЖУРНАЛ подчиненного журнала детализации для этой основной записи. Проверьте тип объекта детализации и объекта основного журнала.


Запись не найдена

Ошибка может выдаваться, если к объекту типа ЖУРНАЛ, считываемому в ЦИКЛе ПО ЖУРНАЛУ обращаются в контексте, когда требуются все поля журнала, например, вызывают метод объекта и в случае, когда работает оптимизация выборки полей журнала (по умолчанию). Программа в этом случае делает дополнительный запрос к серверу для получения значений других полей. Однако в некоторых случаях это ей сделать не удается, например, если запись в интервале от момента считывания до текущего момента была удалена. Другой причиной может быть отсутствие у журнала первичного ключа.

Для устранения этой проблемы установите ! (восклицательный знак) после идентификатора журнала для отключения оптимизации выборки. Если журнал не имеет первичного ключа - добавьте первичный ключ чтобы устранить подобные проблемы в будущем.


Запись не считывается полностью при выполнении цикла и не может использоваться таким образом

В случае если после идентификатора журнала в ЦИКЛе ПО ЖУРНАЛУ идет перечень полей (или [*]), то переменная типа ЖУРНАЛ не считывается полностью при выполнении. Считываться будут только перечисленные поля (или все использованные поля при указании [*]). Возможности такой переменной ограничены. Для нее нельзя вызывать встроенные или библиотечные методы и присваивать другой переменной. Например:

ЦИКЛ ПО ЖУРНАЛУ клиенты[код, название] к (ДА)

к.РЕДАКТИРОВАТЬ // Является ошибкой

к_старый = к // Является ошибкой

КОНЕЦ_ЦИКЛА

Для устранения проблемы считывайте все поля записи:

ЦИКЛ ПО ЖУРНАЛУ клиенты к (ДА)

или не используйте указанные операции.


Значение агрегатной функции ... не может использоваться здесь

Результат вычисления выражения в ЦИКЛ ПО ЖУРНАЛУ может использоваться в последующих условиях, например:

ВЫБРАТЬ (накладные.вкл) в (в = ДА)

ВЫБРАТЬ ЕСЛИ((накладные.сумма > 0), 1, 0) есть (есть = 1)

Может использоваться в сортировке:

ВЫБРАТЬ (накладные.вкл) в СОРТИРОВАТЬ(в)

ВЫБРАТЬ ЕСЛИ((накладные.сумма > 0), 1, 0) есть СОРТИРОВАТЬ(есть)

Однако результат вычисления агрегатной функции в условии использован быть не может, следующая конструкция является ошибочной:

ВЫБРАТЬ СУММА(накладные.сумма) сум (сум > 0)

Тем не менее, в сортировке результат вычисления агрегатной функции можно использовать, например:

ВЫБРАТЬ СУММА(накладные.сумма) сум СОРТИРОВАТЬ(сум)


Значение параметра ... не задано

Вызываемый отчет, бланк или типовая операция имеет входные параметры, однако их значение не было задано при запуске алгоритма.

Пусть, например, имеется отчет Oborot.rep:

ВЫЧИСЛИТЬ(СТРОКА: счет)

// Текст отчета

КОНЕЦ

тогда при попытке вставить его с помощью ВСТАВИТЬ_ОТЧЕТ в другой отчет:

// Текст другого отчета

ВСТАВИТЬ_ОТЧЕТ("Oborot.rep")

будет выдано указанной сообщение об ошибке, т.к. при вызове отчета не было передано значение параметра счет. Для того чтобы это исправить, надо написать:

ВСТАВИТЬ_ОТЧЕТ("Oborot.rep", "" { параметр счет = "" })


Значение переменной ... может быть не определено

Значение указанной переменной может оказаться неопределенным в процессе вычислений. Такое предупреждение транслятор может выводить, если значение переменной присваивается внутри условного оператора или цикла и затем используется в безусловном случае, например:

а = ВВЕСТИ_ЗНАЧЕНИЕ("Введи а",1)

б = ВВЕСТИ_ЗНАЧЕНИЕ("Введи б",1)

ЕСЛИ а > б ТО

в = 1

КОНЕЦ_ЕСЛИ

г = в // <-- Здесь транслятор выдаст предупреждение, так как

// если а <= б ТО в не будет присвоено никакого значения

Такой фрагмент лучше переделать:

а = ВВЕСТИ_ЗНАЧЕНИЕ("Введи а",1)

б = ВВЕСТИ_ЗНАЧЕНИЕ("Введи б",1)

в = 0

ЕСЛИ а > б ТО

в = 1

КОНЕЦ_ЕСЛИ

г = в // <-- Здесь все в порядке, так как в или 0 или 1


Есть вызов функции ...

Программа предупреждает о вызове некоторых отладочных функций, таких как ОТЛАДКА, СЛЕДИТЬ и др. В конечной программе вызовов этих функций быть не должно. Они нужны на этапе разработки или отладки.


Идентификатор ... не является ...

Указанный идентификатор найден, но не входит в ожидаемое в данном месте программы множество понятий языка (переменные, функции, поля и т.д.). Указываются ожидаемые понятия. Например:

в = 1

в[1] = 1 // программа считает "в" обычной переменной, а не массивом

// будет выдано сообщение: идентификатор "в" не является массивом


Изменение переменной счетчика цикла (...)

Переменная счетчика цикла ДЛЯ или СЧЕТА изменяется внутри цикла, что может привести к сбою вычислений, но не является ошибкой. Избегайте изменения переменной счетчика, так как это может привести к зацикливанию программы. Например, такое приведет к зацикливанию:

ЦИКЛ ДЛЯ (и=1,10)

и-- // <-- Изменение счетчика цикла

КОНЕЦ_ЦИКЛА


Источник и приемник должны одновременно определять локальный файл, файл в базе данных или в Интернете

Выдается функцией ФАЙЛ_ПЕРЕИМЕНОВАТЬ если источник и приемник находятся в разных местах.

Пример:

При попытке переименовать файл в базе данных в файл вне базы данных или файл находящийся в Интернете в локальный файл.

Проблема устраняется использованием функций ФАЙЛ_КОПИРОВАТЬ и ФАЙЛ_УДАЛИТЬ.

Например:

Если стоит задача переноса файла из базы данных в локальную папку, это надо делать так:

ФАЙЛ_КОПИРОВАТЬ("db:\output.dbf", "c:\documents\output.dbf") // Копируем

ФАЙЛ_УДАЛИТЬ("db:\output.dbf") //Удаляем скопированный файл

соответственно, при переносе файлов из локальной папки в базу данных надо делать наоборот:

ФАЙЛ_КОПИРОВАТЬ("c:\documents\output.dbf", "db:\output.dbf") // Копируем

ФАЙЛ_УДАЛИТЬ("c:\documents\output.dbf") //Удаляем скопированный файл


Исходная функция ... не найдена

Выдается при определении функции-модификатора в случае, если модифицируемая функция не найдена.

Модифицируемая функция должна располагаться по тексту библиотеки перед ее модификацией.


Исходная функция ... имеет другие параметры или тип результата

Выдается при определении функции-модификатора в случае, если модифицируемая функция отличается от исходной.

Объявление функции-модификатора должно полностью совпадать с объявлением исходной функции.


Исходная функция ... уже имеет одну обработку ...

Для исходной функции может быть объявлена одна функция-модификатор ПЕРЕД, одна одна функция-модификатор ПОСЛЕ и одна функция-модификатор ВМЕСТО.

Ошибка выдается, если в исходном тексте встречается еще одна указанная функция-модификатор.


Ключевое слово ПРОДОЛЖИТЬ должно находиться внутри цикла

ПРОДОЛЖИТЬ должно находиться внутри цикла.


Кол-во элементов массива, использующегося в операторе ИЗ внутри ЦИКЛ ПО ЖУРНАЛУ, не должно превышать 1500

Если в алгоритме есть ЦИКЛ ПО ЖУРНАЛУ, ВЫБРАТЬ, СУЩ, ЕДИНСТВЕННО, УСЛОВИЕ, ФИЛЬТР, в условии которого содержится оператор ИЗ, то кол-во элементов массива ограничивается 1500. Переделайте условие так, чтобы обойти это ограничение.

Более подробно об этой проблеме описано в разделе по оператору ИЗ.


Кол-во элементов массива, использующегося в операторе ИЗ внутри ЦИКЛ ПО ЖУРНАЛУ, может превысить 1500

Это предупреждение. Оно появляется, если в алгоритме есть ЦИКЛ ПО ЖУРНАЛУ, ВЫБРАТЬ, СУЩ, ЕДИНСТВЕННО, УСЛОВИЕ, ФИЛЬТР, в условии которого содержится оператор ИЗ и он проверяет наличие элемента в массиве. Максимальное кол-во элементов в массиве в этом случае ограничивается 1500.

Более подробно об этой проблеме описано в разделе по оператору ИЗ.


Комментарии не были завершены

В указанном месте присутствует скобка { или /*, открывающая комментарий, однако в тексте нет другой, парной правой скобки } или */, завершающих комментарий.


Конфликт между полем ... объекта ... и идентификатором ..., известным как ...

Конфликт между полем объекта (указывается поле и тип объекта) и существующим идентификатором (указывается имя идентификатора и его тип). Вызывается при анализе описания метода объекта или выполнении оператора ДЛЯ. Означает то, что имя поля объекта совпадает с выше определенной общей переменной, именем метода или функции, реквизитом, определением, элементом множества, идентификатором журнала и т.п.

Пример:

ФУНКЦИЯ ЖУРНАЛ(бухоперации) ТЕСТ(СТРОКА: дата)

// ...

КОНЕЦ_ФУНКЦИИ

Здесь параметр дата еще и является полем в журнале бухоперации.

Для того чтобы исправить эту ошибку, надо переименовать переменную, совпадающую с полем или переименовать поле.

Однако, такое сообщение может появляться и при неявном описании идентификатора.

Пример:

Если поля объекта пересекаются с именами других переменных, например, реквизитов, то ошибка появится при обработке метода этого объекта. Для ее устранения в таком случае надо переименовать поле или реквизит.


Координата ... не существует

Вы пытаетесь обратиться к несуществующей строке/столбцу отчета. Ошибка выдается различными свойствами и функциями: ЯЧЕЙКАГОР и ЯЧЕЙКАВЕРТ, САЛЬДО и САЛЬДОВ, РАСКРЫВАЕМО и РАСКРЫВАЕМОВ, АТРИБУТЫ и АТРИБУТЫВ и др.

Выясните, по каким причинам строка/столбец не существует. Возможно, она не была добавления по причине исключения пустых ячеек или итогов. Вы можете отключить указанную опцию в параметрах отчета или принудить к созданию ячейки, указав ! (восклицательный знак) у соответствующего оператора, например так:

ЯЧЕЙКА![1,1] = 0 // Ячейка все равно добавится (из-за наличия !)

АТРИБУТЫ[1,атЦвет] = цвТемноСиний

Можно просто указать программе игнорировать данную ошибку. Для этого достаточно указать ! (восклицательный знак) после вызываемой функции. Пример:

ЯЧЕЙКА[1,1] = 0 // Ячейка не добавится (потому что 0)

АТРИБУТЫ![1,атЦвет] = цвТемноСиний // Ошибка не выведется (из-за наличия !)


Курсор не определен

Вы пытаетесь вызвать методы объекта КУРСОР, хотя он не определяет какого-либо условия выборки записей. Скорее всего, причина в том, что в процессе выполнения ветвления алгоритма, курсор не был проинициализирован.

Пример:

ЕСЛИ НеВыполненноеУсловие ТО

КУРСОР кур ПО клиенты к (ДА)

КОНЕЦ_ЕСЛИ

ВЫБОР_ЗАПИСИ(кур)


Массив может быть только параметром-переменной

Массив может быть только параметром-переменной. Необходимо указать ПЕРЕМ

 Вернуться к началу раздела

Функция может иметь параметры типа массив. Однако, такие параметры могут быть только параметрами-переменными.

Неправильно:

ФУНКЦИЯ Выбор(ЧИСЛО: м!)
// .....
КОНЕЦ_ФУНКЦИИ

Правильно:

ФУНКЦИЯ Выбор(ПЕРЕМ ЧИСЛО: м!)
// .....
КОНЕЦ_ФУНКЦИИ


Метод ... должен вызываться внутри обработчика Вид журнала

Методы ВИДИМОСТЬ и ВИДИМОСТЬ_ДЕТ объекта ЖУРНАЛ могут вызываться только внутри обработчика Вид журнала. С помощью него можно управлять видом журнала в таблицах и диалогах.


Метод ... не применяется для сложного фильтра

Вы пытаетесь вызвать методы, которые не могут быть использованы для объекта ФИЛЬТР, если он сложный. Возможно, при создании объекта произошла описка, например вместо

ф ЭТО ФИЛЬТР // Создает сложный фильтр ф

надо было написать

ф ЭТО накладные.ФИЛЬТР // Создает фильтр журнала накладные


Множество ... либо его элемент ... не существуют

Программа не может найти указанное множество (или его элемент). Проверьте их существование. Сообщение может выдаваться функцией МНОЖЕСТВО, графой выбора из списка, ЦИКЛом ПО ЖУРНАЛУ и т.д.


Модификатор выборки "!" не указан, будет дополнительный запрос к базе данных

Добавление модификатора выборки "!" может ускорить выполнения алгоритма, например при вызове библиотечного метода для объекта, участвующего в ЦИКЛе ПО ЖУРНАЛУ:

ЦИКЛ ПО ЖУРНАЛУ товары т (ДА)

т.ПолучитьКодСчета // Для вызова библиотечного метода ПолучитьКодСчета программа сделает

// дополнительный подзапрос с целью получения всех полей объекта "т"

т.ЗАПИСАТЬ

КОНЕЦ_ЦИКЛА

Такой цикл лучше переделать:

ЦИКЛ ПО ЖУРНАЛУ товары! т (ДА)

т.ПолучитьКодСчета

т.ЗАПИСАТЬ

КОНЕЦ_ЦИКЛА


Налоговая коррекция должна вызываться после проводки

Функция ПРОВОДКА_НУ должна вызываться после функции ПРОВОДКА. Она должна изменять учетную сумму проводки и статью учета, изначально устанавливающуюся при помощи списка корректных проводок.


Не имеет смысла указывать здесь список полей - журнал не имеет итерационной переменной

Программа предупреждает: указание списка выбираемых полей в ЦИКЛе ПО ЖУРНАЛУ не имеет смысла для тех журналов, которые входят в цикл без итерационной переменной.

Пример:

ЦИКЛ ПО ЖУРНАЛУ накладные[дата], СУММА(сумма) (ДА)

// ...

КОНЕЦ_ЦИКЛА

Скорее всего, здесь забыли указать итерационую переменную у журнала накладные.


Не найден обработчик ... для функции ...

Не найден исходный текст обработчика. Выдается название обработчика (название метода объекта ЖУРНАЛ) и название функции, для которой должен срабатывь этот обработчик.


Не найдена библиотека ...

Возникает при подключении библиотеки функций к основному алгоритму с помощью ИСПОЛЬЗОВАТЬ. Не найдена указанная библиотека. Проверьте имя файла библиотеки и его наличие.


Не удалось отсортировать DBF-файл

Выдается функцией БД_СОРТ или методом СОРТИРОВКА объекта БД, если отсортировать базу данных DBF не удалось.


Неверная операция с ...

Объекты указанного типа нельзя присваивать друг другу.


Неверно заданы параметры функции

Параметры, передаваемые библиотечной функции, методу или диалогу при вызове, не соответствуют описанию функции, метода или диалога в библиотеке. Например:

ФУНКЦИЯ ЧИСЛО: АвтоКод(СТРОКА: название)

// ...

КОНЕЦ_ФУНКЦИИ

ВЫВЕСТИ(1,1,АвтоКод(1)) // <-- Здесь вместо строкового параметра передается числовой


Неверное описание обработчика ...

Описание параметров функции-обработчика не соответствует необходимому формату.


Неверный атрибут строки/столбца

Выдается свойствами АТРИБУТЫ (АТРИБУТЫВ) или АТРИБУТЫГР (АТРИБУТЫВГР) если для строки/столбца задается несуществующий атрибут.


Неверный атрибут ячейки

Выдается свойствами АТРИБУТЫ (АТРИБУТЫВ) или АТРИБУТЫГР (АТРИБУТЫВГР) если для ячейки задается несуществующий атрибут.


Неверный код определения или реквизита ...

Это сообщение Вы можете получить после обновления версии или импорте реквизитов или определений из внешнего файла. Определение или реквизит имеет неверный код.


Невозможно ... запись пока она не считана из журнала

1. Метод УДАЛИТЬ объекта ЖУРНАЛ был вызван для новой записи. Для удаления записи сначала надо считать ее, а потом уже вызывать метод УДАЛИТЬ.

2. Метод ПРОВЕСТИ объекта ЖУРНАЛ был вызван для новой записи. Проводить можно только существующий документ. Новая запись должна быть записана при помощи ДОБАВИТЬ или ЗАПИСАТЬ.

3. Функция ПЕРЕНОС_ПРОВОДОК был вызвана для новой записи. Запись должна быть считана перед тем как вызывать эту функцию.


Невозможно выполнить операцию - одна или несколько записей заблокированы другими пользователями. Попробуйте повторить операцию позднее

Это сообщение выдается при выполнении различных функций, выполняющих какие-либо действия в базе данных. Оно выдается в случае, если в процессе выполнений этих действий произошло обращение к записям, занятым другим пользователем. Например, алгоритм пытается изменить запись, редактируемую с другого компьютера другим пользователем.

Проверьте доступность всех данных и выполните операцию повторно.

Также, блокировка данных может быть вызвана другим алгоритмом программы, работающим в другой транзaкции или открытым окном редактора записи журнала.


Невозможно выполнить операцию ...

Появляется, если функция СТАРТ_ОПЕРАЦИЯ не может запустить указанную операцию. Проверьте, что такая операция действительно существует и не содержит ошибок.


Невозможно добавить условия ссылок из-за того, что журналы повторяются

Условия ссылок не могут быть добавлены, если один и тот же журнал встречается в выборке несколько раз, например:

ЦИКЛ ПО ЖУРНАЛУ бухсчета деб, бухсчета кред, бухпроводки пров

(ДА)

// ...

КОНЕЦ_ЦИКЛА

Здесь будет выдано это сообщение об ошибке, т.к. программа не знает, как связывать журналы бухоперации и два экземпляра журнала бухсчета: "деб" и "кред". После задания ! (восклицательного знака) и добавления ссылок вручную, это перепишется таким образом:

ЦИКЛ ПО ЖУРНАЛУ! бухсчета деб, бухсчета кред, бухпроводки пров

(пров.дебет = деб.код И пров.кредит = кред.код)

// ...

КОНЕЦ_ЦИКЛА

здесь мы указали что бухсчета "деб" будут привязываться к дебету проводки, написав пров.дебет = деб.код, а бухсчета "кред" к ее кредиту, написав пров.кредит = кред.код.


Невозможно задать план запроса

План запроса не может быть задан, если один и тот же журнал встречается в выборке несколько раз, и Вы пытаетесь воспользоваться автопланированием. Оно в этом случае не работает.

Также, данное сообщение является локализующим и выдается при завершении выполнения других конструкций по ошибке.


Невозможно записать в DBF-файл

Выдается функциями БД_ЗАПИСАТЬ и БД_ЗАМЕНИТЬ или методами ЗАПИСАТЬ и ЗАМЕНИТЬ объекта БД при неудачной попытке внести изменения в DBF-файл. Возможно, это связано с тем, что файл базы открыт и заблокирован другой программой.


Невозможно записать в файл открытый на чтение

Выдается методом ЗАПИСАТЬ объекта ФАЙЛ при попытке записать в файл, открытый только на чтение конструктором ФАЙЛ_ОТКРЫТЬ.

Для записи в файл, он должен быть открыт конструкторами ФАЙЛ_СОЗДАТЬ или ФАЙЛ_ДОБАВИТЬ.


Невозможно запустить бланк ...

Появляется, если функция СТАРТ_БЛАНК не может запустить указанный бланк. Проверьте, что такой бланк действительно существует и не содержит ошибок.


Невозможно запустить отчет ...

Появляется, если функция СТАРТ_ОТЧЕТ или ВСТАВИТЬ_ОТЧЕТ не может выполнить указанный отчет. Проверьте, что такой отчет действительно существует и не содержит ошибок.


Невозможно открыть файл ...

Выдается функциями ФАЙЛ_ОТКРЫТЬ, ФАЙЛ_СОЗДАТЬ и методом ОТКРЫТЬ объекта ФАЙЛ при невозможности открыть указанный файл.

Если файл пытаются открыть на чтение, это означает, что он не существует. При создании файла такое сообщение появляется в случае невозможности создать файл в этом месте: защищенный от записи или переполненный диск, не найден путь, некорректное имя файла и др.


Невозможно перейти к записи N ...

Выдается функцией БД_ПЕРЕЙТИ или методами ПЕРЕЙТИ и УДАЛИТЬ объекта БД при попытке перехода к несуществующей в DBF-файле записи.

Выдается методом ПЕРЕЙТИ объекта ЖУРНАЛ при попытке перехода к несуществующей записи журнала.


Невозможно получить основную запись

Применение метода ОСНОВНАЯ возможно только для записи, полученной при помощи метода ДЕТАЛИЗАЦИЯ.


Невозможно сохранить значение ... поля ...

Выдается методами ЗАПИСАТЬ и ДОБАВИТЬ при возникновении ошибки записи значения поля объекта в базе данных. Скорее всего значение числового поля слишком велико. Так, если поле ид журнала товары имеет тип целый, то следующий фрагмент приведет к указанной ошибке:

тс_товары.ид = 10000000000000

тс_товары.ЗАПИСАТЬ // Выдаст указанное сообщение об ошибке, т.к. значение поля ид не может

// быть больше 2 147 483 647


Невозможно считать запись

Выдается функцией БД_СЧИТАТЬ или методом СЧИТАТЬ объекта БД при неудачной попытке считать запись. Обычно такое происходит, когда DBF-файл не содержит ни одной записи, либо при попытке считать следующую за последней запись в файле.


Невозможно удалить счет ... т.к. он заблокирован от изменения, Невозможно добавить субсчет, т.к. счет ... заблокирован от изменения

Выдается функцией УДАЛИТЬ_СЧЕТ при попытке удаления счета, заблокированного от изменения. Скорее всего, удаление этого счета приведет к неработоспособности программы. Если же все-таки удалить этот счет надо, выполните этот алгоритм под администратором.

Выдается функцией ДОБАВИТЬ_СЧЕТ при попытке добавить субсчета к счету, заблокированному от изменения. Скорее всего, добавление субсчета приведет к неработоспособности программы. Если же все-таки добавить этот субсчет надо, выполните этот алгоритм под администратором.


Невозможно удалить счет ... т.к. он имеет субсчета

Выдается функцией УДАЛИТЬ_СЧЕТ при попытке удаления счета, имеющего субсчета. Для удаления такого счета надо сначала удалить все его субсчета. Следующая функция может удалить счет со всеми его субсчетами:

ФУНКЦИЯ УДАЛИТЬ_СЧЕТ_ПОЛН (СТРОКА: счет)

ЕСЛИ ЕСТЬ_СУБСЧ(счет) ТО

ЦИКЛ СЧЕТА(сч=счет+"/*")

ЕСЛИ УРОВЕНЬ(сч) = УРОВЕНЬ(счет) + 1 ТО

УДАЛИТЬ_СЧЕТ_ПОЛН(сч)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

КОНЕЦ_ЕСЛИ

УДАЛИТЬ_СЧЕТ(счет,НЕТ)

КОНЕЦ_ФУНКЦИИ


Невозможно удалить счет ... т.к. он участвует в проводках

Выдается функцией УДАЛИТЬ_СЧЕТ при попытке удаления счета, по которому есть проводки в журнале бухгалтерских операций или других журналах. Для удаления такого счета надо сначала перенести проводки на другой счет, например при помощи функции ПЕРЕНОС_ПРОВОДОК.


Невозможно установить номер документа в момент его использования

Выдается свойством ТЕК_НОМЕР при попытке установить номер документа в момент его использования, как другими пользователями, так и внутри самого алгоритма. Присвоение номера документа не должно использоваться в обычной работе. Это допускается при выполнении сервисных действий с базой данных. Такие настройки должны выполняться в монопольном режиме.


Недопустима проводка между балансовым и забалансовым счетом ... - ...

Выдается функцией ПРОВОДКА. Один из указанных счетов является балансным, а другой забалансным. Проводка между ними недопустима.


Недопустимая операция для переменных типа ...

Операция не может быть применена для этого типа. Так, объектные типы могут сравниваться только на равенство и на неравенство, другое сравнение вызовет ошибку. Типы БД и ФАЙЛ не могут присваиваться друг другу. Арифметические операторы могут применяться только для определенных типов:

Оператор | Тип аргумента
++,-- | дата и число
+= | дата, число и строка
-= | дата и число
*=,/=,\= | число

Внутри ЦИКЛа ПО ЖУРНАЛУ поля, ссылающиеся на счет или статью налогового учета, например, поля дебет и кредит журнала бухпроводки, могут только проверятся только на равенство, например

ЦИКЛ ПО ЖУРНАЛУ бухпроводки б (дебет = "60/*")


Недопустимая операция над свойством

Указанная арифметическая операция или оператор недопустимы над этим свойством. Например, Вы пытаетесь выполнить оператор /= (деление) над свойством ЯЧЕЙКАГОР:

ЯЧЕЙКАГОР[1] /= 2

Не допускается присвоение значения константам, например:

цвЧерный = 3


Недопустимый [первый] символ ... в имени переменной

Выдается функцией ОПРЕДЕЛИТЬ в случае, если в имени определяемой переменной содержится ошибка.

Пример:

а = 1

ОПРЕДЕЛИТЬ("1а",а) // <-- Ошибка: начинается с цифры


Недопустимый аргумент логарифма

Аргумент функции ЛОГ должен быть строго больше 0.


Недопустимый тип ... параметра ... или результата

Выдается, если в качестве параметра в метод объекта ОБЪЕКТ был передано значение недопустимого типа или от метода ожидается результат неподдерживаемого типа. Возможно использование следующих типов данных: числовой, строковый, логический, дата, время, множество и ОБЪЕКТ.


Недопустимый тип индекса

Тип выражения индекса для массива отличается от строкового или числового.


Недоступен источник данных для поля ...

При попытке считать или записать значение в поле объекта ЖУРНАЛ программа не находит источник данных для него. Возможно, поле было просто удалено из журнала аналитики. Возможно, оно было переименовано другой программой в базе данных.

Зайдите и отредактируйте структуру журнала.


Незаконченная строка - ожидался символ "

Ошибка в строковой константе. Кавычки были открыты, но не были закрыты до окончания строки.

Например:

содОпер = "За расчетно-кассовое обслуживание

Строковая константа должна располагаться на одной строке текста. При необходимости указать более длинную строковую константу, воспользуйтесь операцией +:

содОпер = "За расчетно-кассовое обслуживание "+

"в первом квартале"


Неизвестна фирма, по которой надо делать проводки

Функция ПРОВОДКА при указании связи и при использовании консолидированного учета делает проводки по той же фирме, что и документ.

Ошибка выдается в случае, если программа не может определить, к какой фирме относится связанная с добавляемой бухгалтерской проводкой операция.


Неизвестная графа ...

Возникает при обработке функцией ВВЕСТИ списка граф ввода. Указанный идентификатор не является графой ввода.

Например:

ОПЕРАЦИЯ Тест

Дата : ~датаОпер

Документ : *докОпер:15

ВЫЧИСЛИТЬ

ВВЕСТИ(датаОпер,несуществующая_графа)

// ...

КОНЕЦ


Неизвестная операция над ячейками

Программа никак не обрабатывает указанную операцию над ячейками.


Неизвестное поле или метод ...

Идентификатор справа от точки не найден в списке доступных полей, встроенных или внешних методов этого объекта. Скорее всего, это результат описки.

Например:

бухоперации.несуществущее_поле


Неизвестный атрибут ячейки или строки

Программа никак не обрабатывает указанный атрибут ячейки или строки/столбца.


Неизвестный идентификатор ...

Данный идентификатор не найден в таблице идентификаторов при трансляции расчетной части, в списке функций или общих переменных. Возникает только в тех местах, где не может быть произведено определение нового идентификатора. Например:

с = несуществующая_переменная

или

несуществующий_объект.поле = 1


Неизвестный тип, класс, операция ...

Неизвестный класс выражения, переменной и т.д. Возникает из-за несоответствия версий кода и исполняемого модуля программы. Если Вы получили такое сообщение об ошибке, сделайте проверку конфигурации.


Некорректная дата

Для указанных аргументов функция ДАТА не может вернуть корректную дату.


Некорректное время

Для указанных аргументов функция ВРЕМЯ не может вернуть корректное время.


Нельзя указывать перечисление полей "[...]" после задания условия принудительной выборки "!"

Вы отключили оптимизацию выборки, указав ! (восклицательный знак) у идентификатора журнала. Значит, все поля данного журнала будут выбираться при прохождении цикла, и перечислять их в квадратных скобках не надо.


Необходимо указать имя объекта

Выдается функцией СОЗДАТЬ_ОБЪЕКТ в том случае, если имя (идентификатор) объекта является пустой строкой.


Неожиданный конец формульного раздела

Неожиданный конец расчетной части

Транслятор дошел до конца файла, но понимает, что текст алгоритма не завершен. Обычно это результат отсутствия ключевых слов, завершающих блок, таких как КОНЕЦ_ЕСЛИ, КОНЕЦ_ЦИКЛА и др. или отсутствия парной правой скобки } или */, завершающих комментарий.


Неправильное использование ключевого слова ...

Появляется, когда транслятор находит указанное ключевое слово там, где его не должно быть. Например, когда КОНЕЦ_ЦИКЛА, КОНЕЦ_ЕСЛИ находятся вне цикла или условного перехода. Или при попытке использовать ключевое слово в качестве имени переменной:

ВЫЧИСЛИТЬ = 2


Непредвиденная ошибка

Вы не должны получать такое сообщение об ошибке. Данная ошибка возникает вследствие нестабильности работы программного обеспечения. В случае, если эта ошибка возникает систематически, обратитесь в службу технической поддержки.


Несовместимые типы: ... и ...

Вызывается при обнаружении транслятором несоответствия типов при присвоении значений, арифметических действиях, передачи параметров функциям и т.п. Данная ошибка возникает, когда транслятору известен ожидаемый тип и тип заданного выражения и эти типы несовместимы.

В этом сообщении всегда слева стоит тип, который ожидает транслятор, а справа, который получается на самом деле. Например, встретив выражение:

ПРОВОДКА(51,"50",1000)

программа выдаст сообщение "Несовместимые типы: строка и число". Т.е. строка - это то, что должно, а число - что стоит в Вашем тексте и ошибочно.


Нет открытого DBF-файла

Выдается функцией БД_ПОЛЕ, БД_ВЫБОР, БД_РЕДАКТОР или методом ПОЛЕ объекта БД при попытке считать значение поля, когда DBF-файл еще не был открыт.

Вызовите функции БД_СОЗДАТЬ, БД_ОТКРЫТЬ или соответствующие методы для его открытия.


Обращение к методу или полю неинициализированного объекта

Выдается при попытке обращения к методу или полю объекта ОБЪЕКТ, который не был ранее инициализирован. Скорее всего дело в том, что объекту не было присвоено значение с помощью вызова функции СОЗДАТЬ_ОБЪЕКТ, либо с помощью вызова метода или обращения к полю другого объекта

ЕСЛИ <невыполненное условие> ТО

о = СОЗДАТЬ_ОБЪЕКТ(...)

КОНЕЦ_ЕСЛИ

о.поле = ДА // Выдаст ошибку при расчете


Объект ... не имеет поля или метода ...

Указанный объект не имеет поля или метода с таким именем (или ни того, ни другого). Проверьте, действительно ли идентификатор справа от точки есть поле, встроенный или библиотечный метод указанного объекта. Возможно, в имени содержится ошибка. При использовании подсветки поля и встроенные методы выделяются цветом.

Пример:

бухоперации.дата

Для объектов ОБЪЕКТ существует проблема определения того, чем является идентификатор справа от точки: полем или методом без параметров. Поэтому рекомендуется для методов, не имеющих параметров, указывать после имени метода круглые скобки ().

Пример:

ЕСЛИ валюты.ПолучитьЭлемент() = 1 ТО

// ...


Объект ... не найден

Выдается функцией СОЗДАТЬ_ОБЪЕКТ при невозможности найти объект с указанным именем (идентификатором). Возможные причины появления этого сообщения:

·указано незарегистрированное в системе имя объекта

·неправильно указан идентификатор (GUID) объекта

·зарегистрированный файл был перемещен или удален

Проверить существование имени объекта можно с помощью функции ЕСТЬ_ОБЪЕКТ.


Объект может быть только параметром-переменной

Объект может быть только параметром-переменной. Необходимо указать ПЕРЕМ

 Вернуться к началу раздела

Функция может иметь параметры объектного типа. Однако, такие параметры могут быть только параметрами-переменными.

Неправильно:

ФУНКЦИЯ Выбор(ЖУРНАЛ(клиенты): кл)
// .....
КОНЕЦ_ФУНКЦИИ

Правильно:

ФУНКЦИЯ Выбор(ПЕРЕМ ЖУРНАЛ(клиенты): кл)
// .....
КОНЕЦ_ФУНКЦИИ


Объект не является локальной или общей переменной

Идентификатор перед точкой не является локальной или общей объектной переменной.


Объект не является сервером автоматизации

Выдается функцией СОЗДАТЬ_ОБЪЕКТ тогда, когда программа не может подключить библиотеку и создать объект:

·Библиотека не является сервером OLE автоматизации, т.е. не поддерживает интерфейс IDispatch (и ILanguageExtender).

·Библиотека не поддерживает интерфейс NativeApi внешних компонент 1С


Ожидалась функция логического типа

Функция, предназначенная для подстановки значения в поле ввода, имеет тип результата отличный от логического. Функция, предназначенная для подстановки значения в поле ввода должна иметь следующий вид:

ФУНКЦИЯ ЛОГИКА : Подставить (ПЕРЕМ СТРОКА : параметр)


Ожидалась функция, не возвращающая результат

Ожидалась библиотечная функция логического типа

Функция, предназначенная для формирования списка, не должна возвращать результат. Она должна иметь следующий вид:

ФУНКЦИЯ ФормироватьСписок


Ожидалась переменная

Транслятор ожидал здесь переменную. Ошибка выдается в бланках, если в графе ввода не указана переменная, в которую будет занесено значение поля ввода.

Также ошибка выдается при попытке отсортировать записи в ЦИКЛе ПО ЖУРНАЛУ по константе.

Пример:

ЦИКЛ ПО ЖУРНАЛУ товары т СОРТИРОВАТЬ(1)

или

локальная_переменная = 1

ЦИКЛ ПО ЖУРНАЛУ товары т СОРТИРОВАТЬ(локальная_переменная)


Ожидалась переменная объектного типа

Идентификатор перед точкой является переменной, но не объектного типа.


Ожидалась переменная одного из типов: ...

Транслятор ожидал здесь переменную указанных типов. Однако, тип этой переменной отличается от перечисленных.

Пример:

Следующее выражение содержит ошибку

ф = ДА

ф += "Соединим"

Переменная логического типа не может быть сложена с чем-либо. Для устранения этой ошибки проверьте тип переменной.


Ожидалась ранее определенная переменная

Данная ошибка возникает при попытке модификации переменной посредством арифметических операторов с использованием ее значения, если ранее такая переменная не была определена. Например:

несуществующая_переменная ++


Ожидалась функция вида ...

Программа ожидает указание функции указанного вида. Проверьте описание Вашей функции с тем что требует программа. Описание должно быть таким как указано.

Например:

Для сортировки записей в функции СОРТИРОВАТЬ должна передаваться функция сравнения, которая должна иметь вид ФУНКЦИЯ ЧИСЛО: <функция>(СТРОКА: <параметр1>, <параметр2>). Допустим в расчетной части описаны следующие функции:

ФУНКЦИЯ ЧИСЛО: СРАВ_СТРОКИ(ПЕРЕМ СТРОКА: с1,с2)

// Тело функции

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ЧИСЛО: СРАВ_СТРОКИ2(СТРОКА: с1,с2,c3)

// Тело функции

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ СРАВ_СТРОКИ3(СТРОКА: с1,с2)

// Тело функции

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ЧИСЛО: СРАВ_ВЕРНАЯ(СТРОКА: с1,с2)

// Тело функции

КОНЕЦ_ФУНКЦИИ

Тогда вызов СОРТИРОВАТЬ с функциями СРАВ_СТРОКИ, СРАВ_СТРОКИ2, СРАВ_СТРОКИ3 вызовет указанную ошибку. Правильным будет вызов СОРТИРОВАТЬ с функцией СРАВ_ВЕРНАЯ.


Ожидалась функция с одним параметром

Функция, предназначенная для подстановки значения в поле ввода, имеет количество параметров отличное от одного. Функция, предназначенная для подстановки значения в поле ввода должна иметь следующий вид:

ФУНКЦИЯ ЛОГИКА : Подставить (ПЕРЕМ СТРОКА : параметр)


Ожидалась функция без параметров

Функция, предназначенная для подстановки значения в поле ввода, не должна иметь параметры. Она должна иметь следующий вид:

ФУНКЦИЯ ФормироватьСписок


Ожидалось "..."

Транслятор ожидает указанный символ или строку в данном месте.


Ожидалось выражение или агрегатная функция

Результатом вычисления подзапроса в ЦИКЛе ПО ЖУРНАЛУ может быть только простое значение. Оно может получаться при вычислении, как выражения, так и агрегатной функцией. Например, при обработке следующей конструкции, будет выдано данное сообщение об ошибке:

ЦИКЛ ПО ЖУРНАЛУ склады скл,

(ВЫБРАТЬ накладные (накладные.код_склада = скл.код)) сум

// ...

КОНЕЦ_ЦИКЛА

Здесь подзапрос пытается вернуть запись журнала накладные, что является ошибкой. Возможно, в данном примере речь шла об агрегатной функции:

ЦИКЛ ПО ЖУРНАЛУ склады скл,

(ВЫБРАТЬ СУММА(накладные.сумма) (накладные.код_склада = скл.код)) сумм

или о поле журнала:

ЦИКЛ ПО ЖУРНАЛУ склады скл,

(ВЫБРАТЬ накладные.основание (накладные.код_склада = скл.код)) сум


Ожидалось выражение индекса, начинающееся с "!" или "["

Данная ошибка вызывается, когда после имени, известному как имя массива, не обнаружен символ " ! " или " [ ", предшествующий выражению индекса. Например:

в[1] = 1

в = 2 // является ошибкой, поскольку "в" - массив и к нему надо

// обращаться по индексу


Ожидалось выражение одного из типов: ...

Транслятор ожидал здесь выражение указанных типов. Однако тип этого выражения отличается от перечисленных. Например, следующее выражение содержит ошибку

ф = ОБД("01",ВРЕМЯ_ТЕК)

Здесь второй аргумент функции ОБД должен быть, либо строкой - кодом корреспондирующего счета, либо датой - началом периода расчета оборотов. Однако, указанное выражение имеет тип время.

Проверьте тип аргумента и синтаксис этой функции или оператора.


Ожидалось значение в диапазоне от ... до ...

Программа ожидала значение в указанном диапазоне. Однако в процессе вычислений оно вышло из этого диапазона. Ошибка появляется в процессе выполнения различных функций и методов объектов. Проверьте результат выражения - аргумента функции.


Ожидалось название типа

Транслятор ожидает в этом месте идентификатор - название типа.


Ожидалось название функции

Программа ожидает здесь указание имени функции. Однако указанный идентификатор не является функцией. Также, данное сообщение может быть локализующим и выдаваться при завершении выполнения других конструкций по ошибке.

Для некоторых встроенных функции, таких как ФУНКЦИЯ_ВЫБРАТЬ! или СОРТИРОВАТЬ, в качестве аргумента надо указывать имя функции. Это может быть как встроенная, так и библиотечная функция или диалог.

Пример:

СОРТИРОВАТЬ(СРАВ_СЧЕТА)


Ожидалось объявление простого типа

1.Функция может иметь произвольное кол-во параметров простого типа. Здесь транслятор ожидал объявление типа параметра функции. См. примеры.

2.Функция ЗНАЧ работает только с простыми типами.


Ожидалось сравнение

Ошибка при разборе выражения в ЦИКЛе ПО ЖУРНАЛУ. Программа ожидает здесь операцию сравнения.

Пример:

ЦИКЛ ПО ЖУРНАЛУ накладные о (ДА И 1)

//...

КОНЕЦ_ЦИКЛА

Возможно, здесь должно было быть что-нибудь такое:

ЦИКЛ ПО ЖУРНАЛУ накладные о (ДА И 1 < о.ид)

//...

КОНЕЦ_ЦИКЛА


Ожидалось условие

Ошибка при разборе логического выражения. Транслятор встречает операторы И и ИЛИ, но их аргумент имеет не логический тип.

Пример:

ЕСЛИ и < 1 ИЛИ 1 ТО

// ...

КОНЕЦ_ЕСЛИ


Ожидался атрибут ячейки

Выдается свойствами АТРИБУТЫ (АТРИБУТЫВ) или АТРИБУТЫГР (АТРИБУТЫВГР). Программа ожидала указание атрибута, который устанавливается или считывется. Однако, указанный идентификатор таковым не является.


Ожидался идентификатор

Ошибка возникает, когда транслятор не может выполнить разбор имени переменной или функции. В данном случае ожидается простое имя, вызов функции с указанием библиотеки, обращение к полю или методу объекта с указанием имени объекта или обращение к элементу массива:

1.<имя>

2.[<библиотека>].<функция>

3.<объект>.<поле или метод>

4.<массив>!<индекс> или <массив>[<индекс>]


Ожидался массив

Выдается при обработке операции ИЗ. Транслятор ожидает в этом месте массив.


Ожидался параметр вида: ПЕРЕМ СТРОКА : <параметр>

Функция, предназначенная для подстановки значения в поле ввода должна иметь следующий вид:

ФУНКЦИЯ ЛОГИКА : Подставить (ПЕРЕМ СТРОКА : параметр)


Ожидался простой идентификатор

Здесь транслятор ожидает простой идентификатор, однако он не может выполнить выделение простого имени. Имя должно начинаться с буквы (латинской или русской) или знака подчеркивания. Со второй позиции в имени допустимы еще и цифры.


Ожидался тип объекта

Выдается оператором СОЗДАТЬ. Здесь транслятор ожидает идентификатор - тип объекта.

Например:

СОЗДАТЬ(о,ШРИФТ)


Оператор ":" указывается только у идентификаторов журналов

Оператор ":" должен быть только перед идентификатором поля, идентификатором журнала или функцией сервера. Например:

:накладные.дата

или

:дата

Однако здесь он указывается перед выбираемой переменной, например

ЦИКЛ ПО ЖУРНАЛУ накладные н (:н.дата > ДАТА_НАЧ)


Оператор ЭТО может использоваться только для объектных переменных

Идентификатор справа от оператора ЭТО должен быть объектной переменной или объектным типом данных.


Операция не была проведена в бухгалтерии

Вы пытаетесь получить бухгалтерскую операцию для не проведенного документа. Сообщение выдается методом ОПЕРАЦИЯ объекта ЖУРНАЛ. Воспользуйтесь свойством проведено для выяснения, был ли документ проведен в бухгалтерии или нет.


Определение общего массива внутри функции

Вызывается при встрече компилятором слова ПЕРЕМ в теле функции. Скорее всего, это связано с тем, что в определении предыдущей функции забыли написать КОНЕЦ_ФУНКЦИИ.


Определение функции внутри функции

Вызывается при встрече компилятором слова ФУНКЦИЯ или ДИАЛОГ в теле функции или диалога. Скорее всего это связано с тем, что в определении предыдущей функции забыли написать КОНЕЦ_ФУНКЦИИ или в определении диалога КОНЕЦ_ДИАЛОГА.


Отладочное сообщение

Выдается функцией ОТЛАДКА и используется для отладки (поиска ошибок) алгоритма расчета.


Отчет ... не существует

Информационное сообщение выдается при компиляции функции СТАРТ_ОТЧЕТ если такой отчет на момент компиляции не существует.


Ошибка арифметики с плавающей точкой

В процессе расчета возникло переполнение. Например:

СООБЩЕНИЕ(10^10000)

Также, возможно, это ошибка - результат деления на ноль (вернее, на очень маленькое значение). В этом случае используйте функцию ОКРУГЛЕНИЕ для приведения промежуточных результатов расчета к нормальному виду.


Ошибка в вызываемой функции

Вы не должны получать такое сообщение об ошибке. Данная ошибка возникает вследствие нестабильности работы внешней функции. Внешние функции являются дополнительными расширениями программы. Они не выпускаются производителем программы Инфо-Предприятие.

Запомните эту информацию и передайте ее в службу технической поддержки.


Ошибка в цикле при позиционировании

Вы не должны получать такое сообщение об ошибке. Данная ошибка возникает вследствие нестабильности работы программного обеспечения. В случае, если эта ошибка возникает систематически, обратитесь в службу технической поддержки.


Ошибка во входном поле

Программа не может разобрать формат входного поля в типовой операции, либо его параметров. Возможно, также, что Вы используете в описании визуальной части типовой операции символы * @ & ~ ^, которые программа воспринимает как шаблоны полей.


Ошибка выполнения конструкции ...

Данное сообщение помогает локализовать ошибки в процессе выполнения алгоритма и посмотреть последовательность действий, которую проходит транслятор. Выдается при завершении выполнения некоторых конструкций по ошибке.


Ошибка доступа к строке номер ...

Ошибка вызывается функцией УДАЛИТЬ_СТРОКУ в случае, если номер строки больше количества строк в бланке.


Ошибка записи кода в файл

Программа не может записать код алгоритма. Скорее всего, это связано с отсутствием доступа к диску или его переполнением.


Ошибка записи фильтра

Выдается при записи объекта ФИЛЬТР. Невозможно записать информацию о выбранных условиях фильтрации.


Ошибка изменения данных. Надо удалить данные вручную

Функция ПЕРЕНОС_ПРОВОДОК не смогла выполнить операцию переноса по той или иной причине (причина указывается в сообщении).


Ошибка импорта журнала

Выдается методом ИМПОРТ объекта ЖУРНАЛ в случае неудачного импорта данных в журнал из внешнего файла. Такое может произойти, например, если журнал имеет ссылочную целостность, которая нарушается при добавлении импортируемых записей.


Ошибка инициализации ...

Вы не должны получать такое сообщение об ошибке. Данная ошибка возникает при неудачной инициализации транслятора вследствие нехватки памяти или нестабильности работы программного обеспечения. В случае, если эта ошибка возникает систематически, обратитесь в службу технической поддержки.


Ошибка использования сложного фильтра ...: журнал ... не встречается в выборке

Ошибка произошла по причине того, что журнал, задействованный в сложном фильтре, не используется в ЦИКЛе ПО ЖУРНАЛУ или ВЫБРАТЬ.

В случае если объект ФИЛЬТР сложный, программа не подключает использованные в нем журналы и не проверяет корректность использования фильтра на этапе компиляции алгоритма. Вся ответственность за его использование ложится на разработчика прикладного алгоритма. Старайтесь использовать обычные объекты ФИЛЬТР вместо сложных.


Ошибка компиляции конструкции ...

Данное сообщение помогает локализовать первичные ошибки компиляции и посмотреть последовательность действий, которую проходит транслятор при разборе выражения. Выдается при завершении компиляции конструкции ЦИКЛ, ЕСЛИ и т.п. по ошибке.


Ошибка компиляции обработчика

Выдается при завершении компиляции обработчика по ошибке.


Ошибка компиляции формульной части

Ошибка компиляции расчетной части

Выдается при завершении компиляции алгоритма по ошибке.


Ошибка компиляции функции ...

Данное сообщение помогает локализовать первичные ошибки компиляции и узнать имя функции, в которой произошла ошибка. Выдается при завершении компиляции функции по ошибке.


Ошибка копирования объекта типа ...

Вы не должны получать такое сообщение об ошибке. Данная ошибка возникает вследствие нестабильности работы программного обеспечения. В случае, если эта ошибка возникает систематически, обратитесь в службу технической поддержки.


Ошибка определения диалога

Данное сообщение выдается после ошибок в определении диалога в теле библиотеки или бланка.


Ошибка определения общих переменных

Данное сообщение выдается после ошибок в определении общих переменных в теле библиотеки или бланка.


Ошибка определения функции

Данное сообщение выдается после ошибок в определении функции в теле библиотеки или бланка.


Ошибка подключения библиотеки ...

Выдается в случае, когда библиотека не найдена, произошла ошибка создания общих переменных или чтения заголовков функций.


Ошибка поиска записи в журнале

Выдается методом НАЙТИ объекта ЖУРНАЛ, когда поиск был не удачным. Скорее всего это связано с ошибками в журнале.


Ошибка при вызове пользовательской функции сравнения

Произошла ошибка при выполнении пользовательской функции сравнения при использовании СОРТИРОВАТЬ или СОРТИРОВАТЬВ.


Ошибка при вызове функции ...

Возникает из-за несоответствия версий кода и исполняемого модуля программы. Если Вы получили такое сообщение об ошибке, сделайте проверку конфигурации.


Ошибка при записи файла ...

Выдается функцией СОЗДАТЬ_ОБЪЕКТ при невозможности записать требуемый файл на диск. Появление этой ошибки возможно при переполненном диске, а также в том случае, если такой файл уже существует и используется другой программой.


Ошибка при передаче параметров функции

Возникает из-за несоответствия версий кода и исполняемого модуля программы. Если Вы получили такое сообщение об ошибке, сделайте проверку конфигурации.


Ошибка создания кода используемых библиотечных функций

Выдается в случае, когда компиляция текста функций завершилась по ошибке. Компиляция текста функций производится после компиляции основного алгоритма.


Ошибка удаления записи

Выдается методом УДАЛИТЬ объекта БД в случае неудачи при удалении записи из таблицы DBF. Ошибка может быть по многим причинам: из-за невозможности создать временную базу данных, блокировки базы, нехватке места не диске и др.


Ошибка чтения из файла

Выдается методом СЧИТАТЬ объекта ФАЙЛ. Невозможно считать строку из файла. Скорее всего это связано с тем, что Вы дошли до конца файла и чтение следующей строки невозможно.


Ошибка чтения фильтра

Выдается при чтении объекта ФИЛЬТР. Невозможно считать информацию о выбранных условиях фильтрации.


Ошибка экспорта журнала

Выдается методом ЭКСПОРТ объекта ЖУРНАЛ в случае неудачного экспорта данных журнала во внешний файл. Это может произойти при нехватке места на диске или ошибках в журнале.


Ошибочная константа одного из типов: ...

Возникает, когда транслятор не может распознать константу.

Пример:

дата = 01.13.2001 // Ошибочная константа типа дата

число = 1E // Ошибочная числовая константа

время = 01:01.50 // Ошибочная константа типа время


Ошибочная операция для типа ...

Данная ошибка возникает при попытке осуществить арифметическую операцию с операндами типа, для которого она не определена. Например, к этой ошибке приведет попытка умножения значений типа дата.


Ошибочная строковая константа

Возникает, когда транслятор не может выполнить выделение строковой константы. Строковые константы заключаются в двойные кавычки и должны быть расположены на одной строке.

Функции ВВЕСТИ_ЗНАЧЕНИЕ!, ВОПРОС!, ЗАП_ОПЕР(...), которые используются для добавления контекстного меню в бланк, могут работать только со строковыми константами.


Ошибочное задание массива

Возникает, когда транслятор не может выполнить определение массива.


Параметр ... уже задавался

Ошибка выдается функциями ВОПРОС!, ВВЕСТИ_ЗНАЧЕНИЕ! и др, если они используются для добавления параметров к алгоритму (т.е. с восклицательным знаком) и указываемый параметр уже есть в этом алгоритме. Скорее всего это описка:

НДС = ВОПРОС!("Сумма с НДС")

НСП = ВОПРОС!("Сумма с НДС") // <-- Выдается ошибка


Переменная ... использована для установки связи

Переменная типа ЖУРНАЛ была использована для установки связи в функции ПРОВОДКА. После этого запись нельзя записывать в журнал. Перестройте расчетную часть так, чтобы изменения в журнале были до того как запись проходит в качестве параметра связи в функции ПРОВОДКА.


Переменная еще не связана с конкретным журналом

Вызывается методами объекта ЖУРНАЛ, когда транслятор не знает, о каком журнале идет речь.


Переменной ... было присвоено значение, которое нигде не используется

Указанной переменной было присвоено значение, однако нигде далее в алгоритме оно не было использовано. Скорее всего, это связано с опечаткой в имени переменной. Например:

СуммаПолиграфическихРабот = Сумма1

ВЫВЕСТИ(1,2,СуммаПолиграфическихРабот)

СуммаПолиграфыческихРабот = Сумма2 // <-- Здесь сделана опечатка в имени переменной и транслятор

// посчитает, что это новая переменная, но так как она нигде

// далее не используется, то будет выдано это предупреждение

ВЫВЕСТИ(1,3,СуммаПолиграфическихРабот)

СуммаПолиграфическихРабот = Сумма3

ВЫВЕСТИ(1,4,СуммаПолиграфическихРабот)

Если по каким-либо причинам (например при последующем использовании ЦИКЛ ПЕРЕМЕННЫЕ) надо занести значения переменной без выдачи предупреждающего сообщения, перед знаком равенства ставится "!" (восклицательный знак), например

П000040017003 != СТР(доля_баланс_стоим,255,2)


Перемещение невозможно, так как журнал редактируется

Вызывается навигационными методами объекта ЖУРНАЛ при вызове их из обработчиков, вызываемых в диалоге редактирования записи, например, таких как Перед диалогом, При выборе значения и т.п., в случае, если навигационные методы вызываются для записи того же журнала, запись которого редактируется.

Программа не может работать в таком режиме.


Переполнение стека вычислений

Транслятор имеет ограничение на вложенность конструкций. Такое сообщение об ошибке может вызываться при зацикливании вызовов в результате вычислений.

Например:

Внутри функции происходит безусловный рекурсивный вызов этой же функции, что привозит к неограниченному возрастанию уровня вызовов:

ПЕРЕМ ПОЛНОЕ=ДА

ФУНКЦИЯ СТРОКА : Слово

Слово = "не"

ЕСЛИ ПОЛНОЕ ТО

Слово = Слово + "что" // Здесь функция вызывает саму себя, что приводит к зацикливанию и

// появлению этой ошибки

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Если возникает необходимость прочитать результат функции, то можно воспользоваться переменной РЕЗУЛЬТАТ:

ФУНКЦИЯ СТРОКА : Слово

Слово = "не"

ЕСЛИ ПОЛНОЕ ТО

РЕЗУЛЬТАТ = РЕЗУЛЬТАТ + "что" // Здесь просто считывается результат функции

// (т.е. "не")

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Замечание!

Обычно функции поддерживают вложенность до 300 уровней, а конструкции типа ЕСЛИ - до 1500 уровней.


Повторяющаяся типовая операция ...

Это сообщение выдается в случае, если в файлах типовых операций содержатся две или более одинаковых типовых операции. Имя операции должно быть уникально среди всех типовых операций во всех загружаемых библиотеках типовых операций.


Повторяющееся имя графы ...

В визуальной части бланка или типовой операции содержат две и более графы ввода с одинаковым именем. В сообщении указывается имя графы/переменной, которая дублируется. Имена граф ввода должны быть уникальны в пределах одного бланка или типовой операции.


Повторяющийся идентификатор ...

Возникает при встрече компилятором повторного определения идентификатора. В сообщении указывается, с чем уже связан данный идентификатор. Это сообщение может выдаваться как при совпадении имен объектов (когда описаны два и более идентификатора с одним именем), так и при совпадении имени идентификатора с зарезервированным словом. В расчетной части зарезервированными являются все ключевые слова и встроенные функции, определенные выше по тексту локальные переменные, общие переменные и функции всех подключенных библиотек. В теле функции дополнительно являются зарезервированными имена параметров данной функции, а в библиотечном методе объекта еще и все имена полей и методов для объекта данного типа.


Поле ... должно входить в выражение простым образом или быть аргументом функции сервера

Условие или аргумент функции в конструкции ЦИКЛ ПО ЖУРНАЛУ может быть любым выражением логического типа, содержащим поля журналов. Однако поля журналов не могут входить в качестве аргументов функций, не являющихся функциями сервера. Например, в следующем фрагменте транслятор выдаст ошибку:

ФУНКЦИЯ ЧИСЛО: Период (ДАТА: д)

// ...

КОНЕЦ_ФУНКЦИИ

ЦИКЛ ПО ЖУРНАЛУ накладные о (Период(о.дата) = 2) // Является ошибкой

// т.к. Период не является функцией сервера

КОНЕЦ_ЦИКЛА


Поле ... есть сразу в нескольких журналах. Необходимо конкретизировать, какое здесь использовать

Возникает в конструкции ЦИКЛ ПО ЖУРНАЛУ, ВЫБОР_ЗАПИСИ, оборотных функциях и др, в случае если выборка происходит из нескольких журналов сразу. В условии цикла, в аргументах функций или в условии сортировки участвует поле, существующее, по крайней мере, в двух журналах. Необходимо указать, поле какого журнала транслятор должен понимать под именем этого поля. Пусть, например, в журналах счета и накладные есть поле дата.

ЦИКЛ ПО ЖУРНАЛУ накладные н, счета с (дата>=ДАТА_НАЧ И ...) // <-- Здесь

// транслятор не понимает, какое поле дата используется. То что в журнале счета

// или то, что в журнале накладные ?

// ...

КОНЕЦ_ЦИКЛА

Если мы понимаем здесь под дата поле из журнала накладные, такой фрагмент легко переделать:

ЦИКЛ ПО ЖУРНАЛУ накладные н, счета с (н.дата>=ДАТА_НАЧ И ...)

// ...

КОНЕЦ_ЦИКЛА

или

ЦИКЛ ПО ЖУРНАЛУ накладные н, счета с (накладные.дата>=ДАТА_НАЧ И ...)

// ...

КОНЕЦ_ЦИКЛА


Поле ... не содержится в курсоре ..., задающем групповой выбор

Ошибка происходит при использовании курсоров в групповом выборе. Курсор, описанный в обработчике выбора значения и использованный в функции ВЫБОР_ЗАПИСИ должен строго соответствовать описанию курсора в обработчике группового выбора.


Поле ... не считывается при выполнении цикла

Сообщение появляется при обработке ЦИКЛа ПО ЖУРНАЛУ. Вы пытаетесь обратиться к полю, которое не считывается циклом.

Пример:

ЦИКЛ ПО ЖУРНАЛУ клиенты[код, название] к (ДА)

остаток[к.код] = к.долг_руб // выдаст указанное сообщение об ошибке, т.к. цикл

// считывает только два поля: код и название, поле

// долг_руб не считывается

КОНЕЦ_ЦИКЛА

Чтобы устранить данную проблему, укажите поле в списке считываемых:

ЦИКЛ ПО ЖУРНАЛУ клиенты[код, название, долг_руб] к (ДА)

Другой способ - не указывать конкретные поля:

ЦИКЛ ПО ЖУРНАЛУ клиенты к (ДА)

Однако, при использовании агрегатных функций он может привести к увеличению числа выбираемых записей. В этом случае лучше использовать оптимизацию выбираемых полей, указав [*] после идентификатора журнала. Если бы в данном примере использовались агрегатные функции, это выглядело бы так:

ЦИКЛ ПО ЖУРНАЛУ клиенты[*] к (ДА)

Режим оптимизации выборки при использовании агрегатных функций уменьшает кол-во считываемых записей.


Поле ... не является полем этого объекта

Сообщение выдается методами НАЗВАНИЕ, СУММА, МИНИМУМ, МАКСИМУМ, ДОСТУП, ВИДИМОСТЬ и др. объекта ЖУРНАЛ и методом СОРТИРОВКА объекта ФИЛЬТР, если указанное поле не является полем того объекта, для которого вызывается указанный метод, а в случае фильтра - полем того журнала, для которого строится фильтр.


Пользователь ... не существует

Пользователь не существует в списке пользователей. Проверьте правильность написания имени (логина) пользователя. Сообщение может выдаваться ЦИКЛом ПО ЖУРНАЛУ если указано конкретное имя пользователя при сравнении с полем пользователь.


Поля журнала ... не могут использоваться в параметрах журнала-процедуры

Вы пытаетесь передать в качестве параметра журнала-процедуры выражение, использующее поля журнала, который не является фиксированным на момент выполнения процедуры. Чтобы выполнить процедуру надо знать конкретные значения ее входных параметров на момент ее вызова. Например:

ВЫБРАТЬ

СУММА(ВЫБРАТЬ сумма_с_налог.сумма(накладные.ндс,

накладные_доп.сумма * (1 - накладные_доп.скидка%) * накладные.курс)) выручка

Здесь внутри подзапроса журналы накладные и накладные_доп - внутренние для него. Значит, поля этих журналов не являются фиксированными и их нельзя использовать в качестве параметров процедуры сумма_с_налог. Запрос можно переделать так:

ВЫБРАТЬ накладные[*] о, накладные_доп[*] д,

СУММА(ВЫБРАТЬ сумма_с_налог.сумма(о.ндс,

д.сумма * (1 - д.скидка%) * о.курс)) выручка

Здесь о и д являются внешними для подзапроса, значит значения их полей будет фиксировано и входные параметры процедуры будут известны.

См. подробнее
Журналы-процедуры в цикле


При групповом выборе из курсора должны быть заданы условия связи

При использовании объекта КУРСОР в функции ВЫБОР_ЗАПИСИ внутри обработчика группового выбора требуется указание параметров связи.


Пункт меню ... не найден

Выдается функцией УБРАТЬ_МЕНЮ. Этого бланка/отчета/типовой операции/журнала нет среди пунктов контекстного меню.

Сообщение об ошибке выдается только при работе администратора программы.


Пустая секция в конструкции ...

В секции конструкции ЦИКЛ или ЕСЛИ не задано ни одного оператора. Например:

ЕСЛИ а < б ТО

КОНЕЦ_ЕСЛИ // Этот оператор ничего не делает вне зависимости от условия


Пустая строка не может быть именем переменной

Выдается функцией ОПРЕДЕЛИТЬ при попытке определить пустую строку в качестве имени переменной.

Пример:

а = 1

ОПРЕДЕЛИТЬ("",а)


Расчет остановлен

Сообщает о том, что расчет был остановлен пользователем. Указывает на место, которое выполнялось в момент остановки.


Рекомендуется указывать значение по умолчанию для параметров

При указании параметров бланка и отчета рекомендуется указывать значение по умолчанию. Значением по умолчанию этот параметр будет инициализирован в начале работы пользователя с программой.


Сбой стека функции

Возникает из-за несоответствия версий кода и исполняемого модуля программы. Если Вы получили такое сообщение об ошибке, сделайте проверку конфигурации.


Секция ввода ... нигде не используется

Секция ввода должна выводиться в бланке с помощью ВЫВЕСТИ.


Символ ... и ... не должны употребляться одновременно

Неправильно указано выравнивание в функции ВЫВЕСТИ. Выравнивание должно быть строкой, содержащей ОДИН из символов: Л, П, Ц, Р и/или ОДИН из символов В, Н, С, У.


Символ ... не определяет ни один из известных способов выравнивания

Указанный в функции ВЫВЕСТИ флаг не определяет ни один из способов выравнивания. Выравнивание может задаваться только буквами Л, П, Ц, Р, В, Н, С, У.


Слишком длинная маска счета или статьи

Слишком длинный начальный код счета (статьи) в функции ВЫБОР_СЧЕТА (ВЫБОР_СТАТЬИ).


Слишком сложная маска счета

Сообщение появляется при обработке ЦИКЛ СЧЕТА, ОБОРОТЫ или ЖУРНАЛУ. Шаблон, задающий условия на код счета и аналитические признаки, слишком сложен для обработки его программой.

Программа понимает только простые шаблоны кодов аналитических признаков. Т.е. шаблоны, содержащие конкретное значение или любое значение ("*"). Пусть, например, счет 60 не имеет субсчетов, но имеет какую-нибудь аналитику, например по клиентам. Тогда такая ошибка возникнет при выполнении конструкции:

ЦИКЛ ПО ЖУРНАЛУ бухпроводки б (б.дебет = "60/в*")

Здесь при обработке шаблона "60/в*" программа считает, что это условие на код счета "60" и шаблон "в*" для кода аналитического признака. Для данного примера правильное условие будет (б.дебет = "60/в") или (б.дебет = "60/*").

Чтобы исправить эту ошибку, разверните шаблон на несколько условий, чтобы программа смогла понять его. Для данного примера это будет выглядеть так:

ЦИКЛ ПО ЖУРНАЛУ бухпроводки б (б.дебет = "60":клиенты И СТР(клиенты.код) = "в*")

См.подробнее
Особенности работы со счетами и статьями в ЦИКЛе ПО ЖУРНАЛУ


Сортировка по ... невозможна

Выдается ЦИКЛом ПО ЖУРНАЛУ при обработке СОРТИРОВАТЬ.

Пример:

Вы пытаетесь отсортировать по полю, которое не выбирается в цикле, использующем агрегатные функции, например:

ЦИКЛ ПО ЖУРНАЛУ накладные н, СУММА(накладные_доп.цена * накладные_доп.колич) с

СОРТИРОВАТЬ(накладные_доп.товар)

Такая сортировка не имеет смысла.


Старый вариант записи не найден

Метод СТАРАЯ применим только для записей, считанных из журнала. Только в этом случае существует понятие предыдущего (находящегося в базе) варианта записи. В данном случае это не так.


Статья учета ... не найдена

Выдается различными функциями, работающими со статьями учета, такими как СТАТЬЯ, СТАТЬЯ_ДОХ, СТАТЬЯ_РАСХ и др. в случае, если статья с указанным кодом не существует.


Строку ... невозможно преобразовать в число

Выдается функциями ДАТА или ВРЕМЯ, которые могут обрабатывать как числовые, так и строковые аргументы. При указании строковых аргументов эти функции преобразовывают их в число. Однако в данном случае указанную строку в число преобразовать не удается.


Строка содержит символ ... не поддерживаемый в указанной системе счисления

Выдается функцией ЗНАЧ_СИС при ошибке преобразования числа заданной системы счисления. Например, в следующей функции указана десятичная система счисления (параметр 10), но передается строка с символом "F", который используется в шестнадцатеричной системе счисления:

ЗНАЧ_СИС ("FFFF",10)


Счет ... имеет субсчета или статья ... имеет субстатьи

Выдается функцией ЗАП_ИСХ_ОСТ при попытке установить исходный остаток у счета, имеющего субсчета.

Только счет конечного уровня может иметь исходный остаток. Если счет имеет аналитики, они должны быть также в обязательном порядке указаны.

Выдается функцией ПЕРЕНОС_ПРОВОДОК или ПЕРЕНОС_ПРОВОДОК_НУ


Счет ... не имеет аналитики по ...

Выдается различными функциями, работающими со счетами и ЦИКЛом ПО ЖУРНАЛУ при указании условий на счета. Вы указали у счета аналитический признак, которого у него нет.

Есть два способа устранения данной ошибки: подключить требуемый аналитический признак или удалить ссылку не него в этом выражении.


Текущая позиция в секции не определена

Выдается функцией ТЕК, если та вызывается не из секции бланка либо в ситуации, где она не может быть использована.


Типовая операция ... не существует

Информационное сообщение выдается при компиляции функции СТАРТ_ОПЕРАЦИЯ если такая типовая операция на момент компиляции не существует.


У журнала ... нет вида ...

Вызывается функциями СТАРТ_ЖУРНАЛ, ВЫБОР_ЗАПИСИ и методами РЕДАКТИРОВАТЬ и др. объекта ЖУРНАЛпри указании в этих функциях вида журнала. Указанный вид журнала не найден. Добавьте его, укажите другой вид или ничего не указывайте при вызове функции.


У этой записи нет ...-ого объекта детализации

Вызывается методом ДЕТАЛИЗАЦИЯ объекта ЖУРНАЛ при попытке считать несуществующую проводку. Номер считываемой записи должен быть в пределах от 1 до КОЛ_ДЕТАЛЕЙ.


Файл ... не найден в базе данных

Выдается функцией СОЗДАТЬ_ОБЪЕКТ в том случае, если указанный в списке файл не найден в базе данных. Проверьте правильность написания имени файла, а также наличие файла в базе данных. Проверить существование файла в базе данных можно с помощью функции СУЩ_ФАЙЛ.

Загрузить файлы в базу данных можно с помощью параметра -L командной строки, либо с помощью функции ФАЙЛ_КОПИРОВАТЬ.


Файл DBF не поддерживает тип

Сообщение об ошибке возникает при выполнении функции БД_ПОЛЕ или метода ЗАП_ПОЛЕ объекта БД и означает, что Вы пытаетесь записать в DBF-файл поле, отличное от строкового, числового, календарного или логического. Только поля этих типов могут содержаться в DBF-файле.


Файл не был открыт

Вызывается различными методами объекта ФАЙЛ, если файл не был открыт при помощи ФАЙЛ_СОЗДАТЬ, ФАЙЛ_ОТКРЫТЬ или ОТКРЫТЬ.


Фильтр ... не найден

Вызывается методом СЧИТАТЬ объекта ФИЛЬТР при попытке считать несуществующий фильтр.


Функцию ЗАП_ОПЕР нельзя вызывать внутри функции журнала Проводки

Выдается при попытке использования функции ЗАП_ОПЕР в теле функции журнала Проводки. Обработчик Проводки может сделать только одну связанную с документом бухгалтерскую операцию.


Функция ... может не вернуть результат

Транслятор предупреждает, что результат функции может быть не определен при прохождении алгоритма по какой-либо условной ветви. Это, скорее всего, связано с тем, что функции присваивается результат внутри условного перехода или цикла и при обстоятельствах, когда условный переход или цикл не выполняется, ее результат не определен.

Пример:

ФУНКЦИЯ ЛОГИКА : Верно (ЧИСЛО: с,т)

ЕСЛИ c < т ТО

Верно = ДА

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ // <-- Если окажется, что с >= т, то функция не

// вернет ни ДА ни НЕТ

Такой фрагмент лучше переделать:

ФУНКЦИЯ ЛОГИКА : Верно (ЧИСЛО: с,т)

ЕСЛИ c < т ТО

Верно = ДА

ИНАЧЕ

Верно = НЕТ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ // <-- Все в порядке

Также, это сообщение может выдаваться для диалогов, если они имеют расчетную часть, но она не содержит функцию ВВЕСТИ.


Функция ... не возвращает результат

Выдается при попытке использования результата функции, которая не возвращает никакого результата.

Пример:

ФУНКЦИЯ Следующий (ПЕРЕМ ЧИСЛО: ч)

ч++

КОНЕЦ_ФУНКЦИИ

ч = 1

а = Следующий(ч) // <-- Выдает сообщение об ошибке

В этом случае надо или изменить описание функции, чтобы она возвращала результат, например:

ФУНКЦИЯ ЧИСЛО: Следующий (ПЕРЕМ ЧИСЛО: ч)

ч++

Следующий=ч

КОНЕЦ_ФУНКЦИИ

или вызывать функцию без использования результата:

ч = 1

Следующий(ч)


Функция ... недоступна в ...

Вы пытаетесь использовать функцию или свойство, недоступные здесь.

Пример:

Функцию ВСТАВИТЬ_РАМКУ в редакторе отчетов, или свойство ЯЧЕЙКА в редакторе бланков, или ключевое слово ВВЕСТИ в обработчиках.


ЦИКЛ ПО ЖУРНАЛУ не производит никаких действий

Указанный цикл ничего не делает. Программа не будет его выполнять. Например, если забыли указать переменную, в которую загружаются данные:

ЦИКЛ ПО ЖУРНАЛУ клиенты (код = 4)

// ...

Другой пример, когда отсутствует тело цикла:

ЦИКЛ ПО ЖУРНАЛУ клиенты в (код = 4)

КОНЕЦ_ЦИКЛА

Не надо забывать, что программа выбирает из журнала только те поля, которые используются в цикле. Здесь ни одно поле не используется. Значит, ничего выбираться из базы данных не будет и такой цикл программа просто проигнорирует. Если стоит задача выбрать одну конкретную запись из журнала, как в этом случае, надо воспользоваться ключевым словом ВЫБРАТЬ:

ВЫБРАТЬ клиенты в (код = 4)

Другой способ устранить данное предупреждение - указать ! (восклицательный знак) после идентификатора журнала чтобы заставить программу выбирать все его поля:

ЦИКЛ ПО ЖУРНАЛУ! клиенты в (код = 4)

КОНЕЦ_ЦИКЛА

Однако в этом случае программа выдаст предупреждение о пустой секции в конструкции.


Циклическая ссылка в определении ...

Выражение указанного определения ссылается само на себя или напрямую или косвенно.

Пример:

Код | Значение
Bad_opr | Bad_opr + 1


Чтобы использовать метод ... , необходимо включить соответствующую опцию в параметрах журнала

Перед использованием методов методов методов ПОЛЕ и ЗАП_ПОЛЕ объекта ЖУРНАЛ для доступа к дополнительным полям необходимо в параметрах журнала включить опцию Доступны дополнительные поля.


Число параметров ... не равно числу шаблонов ...

Выдается функцией РАЗБОР в случае, если число шаблонов * (звездочка) не соответствует числу переданных параметров.

При этом двойное указание ** не в счет — таким способом отмечаются фрагменты строки, которые возвращать не нужно (для них параметры не передаются).


Элементы массива и поля объектов не могут передаваться в выражение

Выдается функцией ОПРЕДЕЛИТЬ при попытке определить в качестве переменной элемент массива или поле объекта. Например:

ОПРЕДЕЛИТЬ("номер", накладные.номер)

Чтобы устранить эту проблему, можно использовать вспомогательную переменнную:

номер_накладной = накладные.номер

ОПРЕДЕЛИТЬ("номер", номер_накладной)


Ячейка ... не существует

Вы пытаетесь обратиться к несуществующей ячейке отчета, например, для того чтобы установить ее атрибут с помощью свойства АТРИБУТЫ.

Выясните, по каким причинам ячейка не существует. Возможно, она не была добавления по причине исключения пустых ячеек или итогов. Вы можете отключить указанную опцию в параметрах отчета или принудить к созданию ячейки, указав ! (восклицательный знак) у соответствующего оператора, например так:

ЯЧЕЙКА![1,1] = 0 // Ячейка все равно добавится (из-за наличия !)

АТРИБУТЫ[1,1,атЦвет] = цвТемноСиний

Можно просто указать программе игнорировать данную ошибку. Для этого достаточно указать ! (восклицательный знак) после АТРИБУТЫ. Также, можно воспользоваться групповым свойством АТРИБУТЫГР, которое тоже не проверяет наличие ячеек, для которых устанавливаются атрибуты. Пример:

ЯЧЕЙКА[1,1] = 0 // Ячейка не добавится (потому что 0)

АТРИБУТЫ![1,1,атЦвет] = цвТемноСиний // Ошибка не выведется (из-за наличия !)


Расширения для работы с бухгалтерией

Расширения языка для работы с бухгалтерией

Внутренний язык содержит особые средства для работы с бухгалтерскими функциями программы, планом счетов и проводками, поддержкой аналитики. В разделах ниже описаны некоторые из этих средств.

Раздел | Описание
Код счета во внутреннем языке | Счет в программе может быть представлен как обычная строка, так и строка с указанием аналитических признаков.
Функции оборотов и остатков | Встроенные функции для получения оборотов, остатков как по суммам, так и по количеству и дополнительным единицам измерения.
Вычисление оборотов и остатков с условием | Расширение функций подсчета оборотов и остатков, позволяющее накладывать дополнительные условия на аналитики, участвующие в расчете.
Функция ОБОРОТЫ_УСЛОВИЕ | Расширение функций подсчета оборотов и остатков, позволяющее накладывать дополнительные условия на проводки.
Особенности работы со счетами и статьями | Особенности работы со счетами из конструкции ЦИКЛ ПО ЖУРНАЛУ.

Для доступа к бухгалтерским операциям и проводкам предназначены специальные журналы:

Раздел | Описание
ЖУРНАЛ(бухоперации) | Предназначен для доступа к журналу бухгалтерских операций
ЖУРНАЛ(бухпроводки) | Предназначен для доступа к бухгалтерским проводкам
ЖУРНАЛ(бухобороты) | Может использоваться вместо стандартных функций расчета оборотов в особых случаях


Код счета во внутреннем языке

Программа Инфо-Предприятие позволяет вести многомерный аналитический учет по счетам бухгалтерского учета. Это означает, что за каждым счетом могут быть закреплены аналитические признаки. Большинство функций могут работать как с указанием кода счета в плане счетов, так и с указанием кода счета и его аналитик. В последнем случае, такая запись называется расширенным кодом счета.

Код счета в плане счетов является частным случаем расширенного кода счета. Различия происходят при задании аналитических признаков. Существует два способа их задания:

С указанием объектов. Аналитики указываются в виде объектов ЖУРНАЛ сразу за кодом счета после : (двоеточия). Они могут идти в произвольном порядке, вне зависимости от порядка их следования в списке аналитик счета.

Пример 1.

Пусть 71-ый счет имеет аналитику по журналу сотрудники. Тогда можно написать так:

сотр ЭТО сотрудники

ВЫБОР_ЗАПИСИ(сотр) // Выберем нужного нам сотрудника

подотчет = ОСД("71":сотр) // Получим дебетовый остаток по нему

Пример 2.

Пусть 41-ый счет имеет две аналитики: товар и склад. Тогда для получения оборота конкретного товара по конкретному складу надо написать:

тов ЭТО товар

скл ЭТО склад

ВЫБОР_ЗАПИСИ(тов) // Выберем товар из справочника

ВЫБОР_ЗАПИСИ(скл) // Выберем склад

оборот = ОБД("41":тов:скл) // Получим оборот

Последнюю строку можно было бы написать и так:

оборот = ОБД("41":скл:тов) // Получим оборот

Результат остался бы прежним.

Также как и указание субсчетов (план счетов, функция СУБСЧЕТ), не все аналитические признаки могут указываться в расширенном коде счета. Если функции требуются все аналитики, она их запросит в диалоговом окне у пользователя. Так, например, поступает функция ПРОВОДКА. Если бы мы написали:

оборот = ОБД("41":тов) // Получим оборот

то получили бы оборот по выбранному товару по всем складам.

Если указание объекта должно быть выборочным, это можно реализовать при помощи ПУСТО. Программа игнорирует все пустые значения аналитик. Например:

рс ЭТО расч_счета

ВЫБОР_ЗАПИСИ(рс)

ПРОВОДКА("51":?(ЕСТЬ_АНАЛИТИКА("51", расч_счета), рс, ПУСТО), "50", сумма)

// Указываем аналитику только тогда, когда она есть (то же самое делает РАБОЧИЕ_ОБЪЕКТЫ)

В виде строки. В этом случае коды аналитик входят в строку, задающую код счета так, как будто это его субсчета. Например, если надо указать 71-ый счет с сотрудником, у которого табельный номер равен 004, надо написать так "71/004". Коды аналитик должны идти по порядку в той последовательности, в которой они заданы в списке аналитик счета. Хуже того, порядок следования может меняться при использовании функций вроде МАСКА_СУБСЧЕТОВ. Поэтому указание расширенного кода счета таким образом напрямую не рекомендуется, а для выделения отдельных аналитик из строки надо использовать специальную функцию АНАЛИТИКА_СЧИТАТЬ, но никак не с помощью разбора строки. Такая запись расширенного кода счета оправдана в следующих случаях:

·если код получен из графы ввода счета в бланке или типовой операции

·код получен при помощи функции ВЫБОР_СЧЕТА

·код получен при помощи функции МАСКА_СУБСЧЕТОВ

·код — итерационная переменная циклов СЧЕТА и ОБОРОТЫ.

Пример

остаток = ОСД(ВЫБОР_СЧЕТА("41/",НЕТ,ДА))

Два способа задания кода счета могут быть сведены один к другому при помощи следующих функций:

·При помощи функции КОД_СЧЕТА счет, заданный в виде объектов может быть преобразован к строке.

·При помощи функций КОД_СЧЕТА_ТОЛЬКО и АНАЛИТИКА_СЧИТАТЬ код счета, заданный в виде строки может быть разбит на собственно код счета и один или несколько аналитических признаков.

Некоторые функции работают с кодом счета без аналитики, например функции получения оборотов могут выдавать обороты по всем проводкам, у которых аналитика должна быть, но не указана. Для указания кода счета без аналитик необходимо к коду счета последнего уровня добавить черту "/". Например, если 51 - счет последнего уровня и он имеет аналитику, то следующая строка вернет дебетовый оборот по этому счету по всем проводкам, у которых аналитика 51-ого счета не указана:

оборот = ОБД("51/")

См. также
Особенности работы со счетами и статьями в ЦИКЛе ПО ЖУРНАЛУ


Функции оборотов и остатков

Функции оборотов и остатков


Вычисление оборотов и остатков с условием

Функции оборотов и остатков могут содержать произвольные условие на аналитические признаки. В этом случае обороты и остатки считаются не по всем проводкам, а только по проводкам, аналитики которых удовлетворяют данному условию. Для перекрестных оборотов условие может быть как на дебет счета, так и на его кредит.

Синтаксис:

( [<идентификатор журнала>] [, <идентификатор журнала>] [, ...] : <условие>)

Вначале перечисляются журналы, являющихся аналитическими признаками счета, для которого вычисляются обороты. Затем указывается : (двоеточие) и условие - обычное выражение внутреннего языка логического типа. Оно может использовать не только локальные и общие переменные, вызовы встроенных и библиотечных функций и методов, но и поля справочников (журналов аналитики), являющихся аналитическими признаками счета, перечисленными перед двоеточием.

Поля журнала указываются в цикле своим идентификатором. Например, если журнал товары содержит поле ндс, чтобы получить суммовой остаток по всем товарам с НДС 20% надо написать:

ОСД("41"(товары: ндс = 20))

Замечание!

Если счет имеет только один аналитический признак или указанное поле имеется только в одном из справочников, являющихся аналитиками этого счета, этого бывает достаточно. Если это не так, программа выдаст сообщение об ошибке. Программа при указании поля просто не знает, из какого справочника его надо брать. Поэтому надо указывать принадлежность поля справочнику.

Для указания принадлежности поля конкретной аналитике используется идентификатор справочника и предыдущий пример можно было бы переписать так:

ОСД("41"(товары:товары.ндс = 20))

Рекомендуется использовать именно такую запись, т.к. это исключит ошибки при подключении пользователем дополнительной аналитики к счету. Ведь в этом случае может получиться ситуация, когда имена полей пересекутся.

См. также
ОБОРОТЫ_УСЛОВИЕ
Код счета во внутреннем языке
Особенности работы со счетами и статьями в ЦИКЛе ПО ЖУРНАЛУ


Функция ОБОРОТЫ_УСЛОВИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБОРОТЫ_УСЛОВИЕ накладывает условие (ограничение) на бухгалтерские проводки, используемые в функциях доступа к прямым оборотам и остаткам счетов и ЦИКЛ ОБОРОТЫ.

Синтаксис:

ОБОРОТЫ_УСЛОВИЕ [ (<условие>) ]

<условие>
выражение логического типа, задающее условие фильтра.

Функция не возвращает результат.

Условие является выражением логического типа. Оно не может содержать ссылки на другие журналы, кроме журнала бухпроводки (если, конечно, они не используются в подзапросах).

Условие действует на все результаты, возвращаемые вышеуказанными функциями, до того момента как оно будет переопределено другим вызовом функции ОБОРОТЫ_УСЛОВИЕ. При необходимости убрать ограничения, функция вызывается без параметров.

Условие действует до конца работы алгоритма. По умолчанию ограничений нет.

Пример:

ОБОРОТЫ_УСЛОВИЕ (сумма > 0)

// Переменной "выручка_без_возвратов" будет присвоен кредитовый оборот по проводкам с положительной суммой

выручка_без_возвратов = ОБК("90/В", ДАТА_ТЕК)

ОБОРОТЫ_УСЛОВИЕ (сумма < 0)

// Переменной "возврат" будет присвоен кредитовый оборот по проводкам с отрицательной суммой

возврат = — ОБК("90/В", ДАТА_ТЕК)

ОБОРОТЫ_УСЛОВИЕ

// Переменной "выручка" будет присвоен кредитовый оборот по всем проводкам

выручка = ОБК("90/В", ДАТА_ТЕК)

Замечание!

Частным случаем получения оборотов с условием является указание условия на аналитики в оборотных функциях. Такой способ является предпочтительным с точки зрения быстродействия, если условие касается только аналитик.

См.также
Вычисление оборотов и остатков с условием
Особенности работы со счетами и статьями в ЦИКЛе ПО ЖУРНАЛУ


Особенности работы со счетами и статьями

Особенности работы со счетами и статьями в ЦИКЛе ПО ЖУРНАЛУ

Счета Статьи

 Вернуться к началу раздела

Счета. Поля дебет, кредит системного журнала бухпроводки представляют собой расширенный код счета. Поэтому при использовании их в ЦИКЛе ПО ЖУРНАЛУ используется специальный синтаксис, являющийся расширением синтаксиса выражений цикла.

Для этих полей применима только одна операция — сравнение ("=" равенство). В зависимости от контекста, сравнение будет означать простое сравнение кода счета или сравнение его одной или нескольких характеристик.

Расширенный код счета внутри цикла может задаваться двумя способами:

В виде строки. В этом случае коды аналитик входят в строку, задающую код счета так, как будто это его субсчета. Например, если надо указать 71-ый счет с сотрудником, у которого табельный номер равен 004, надо написать так "71/004". Это полностью повторяет задание расширенного кода счетавне цикла.

С указанием идентификаторов журналов. Аналитики указываются в виде объектов типа ЖУРНАЛ или идентификаторов журналов аналитики сразу за кодом счета после : (двоеточия). Они могут идти в произвольном порядке, вне зависимости от порядка их следования в списке аналитик счета. Объекты типа ЖУРНАЛ задают условие на код. Идентификаторы журналов не задают условие на код, а только объявляют журнал внутри цикла и добавляют условие на связь журнала и аналитик в проводках.

Итак, рассмотрим сравнение:

<счет1> = <счет2>

В зависимости от того, чем являются эти операнды и каким способом они заданы возможны три варианта:

I. Сравнение с кодом счета в виде строки. Если один из операндов <счет1> или <счет2> является полем, а другой расширенным кодом счета — строкой, например <счет2>, то программа выделяет из кода собственно код счета и коды всех его аналитик и выполняет сравнение для них. Код счета может содержать маску или иметь субсчета — программа обработает это. Если на конце кода счета стоит "/" добавляется условие на отсутствие аналитик.

Пример.

Пусть есть счет 41 с двумя аналитиками: товар и склад. И пусть счет имеет субсчет последнего уровня 41/C, и есть склад "Осн" и товар "Валенки". Тогда сравнения будут иметь следующий смысл:

дебет = "41" // выбираем проводки с дебетом счетов, являющимся субсчетами 41-ого

дебет = "41/*" // выбираем проводки с дебетом счетов, являющимся субсчетами 41-ого

дебет = "41/С" // выбираем проводки со счетом 41/С

дебет = "41/С/" // выбираем проводки со счетом 41/С с неуказанной аналитикой склада

дебет = "41/C/Осн" // выбираем проводки со счетом 41/С по складу "Осн"

дебет = "41/C/Осн/Валенки" // выбираем проводки со счетом 41/С по складу "Осн"

// и товару "Валенки"

Однако не надо забывать, что порядок следования аналитик может изменяться, поэтому прямое указание кода счета оправдано только в некоторых случаях.

II. Указание объектов типа ЖУРНАЛ. Это аналогично указанию расширенного кода счетав виде объектов, используемого в других функциях.

Пример.

В 2-ом примере применения расширенного кода счета в функциях показывается, как получить оборот конкретного товара по конкретному складу. Следующий пример пробегается по всем проводкам, формирующим этот оборот:

тов ЭТО товар

скл ЭТО склад

ВЫБОР_ЗАПИСИ(тов) // Выберем товар из справочника

ВЫБОР_ЗАПИСИ(скл) // Выберем склад

// Выбираем проводки по которым проходит этот товар на этом складе

ЦИКЛ ПО ЖУРНАЛУ бухпроводки п (дебет = "41":тов:скл ИЛИ кредит = "41":тов:скл)

III. Указание идентификаторов журналов. Указание идентификатора журнала, во-первых объявляет журнал в цикле и во-вторых, добавляет условие на то что он является аналитикой соответствующего счета. Пусть <счет1> является полем, тогда два последних примера сравнения счета со строкой из п.I можно переписать так:

дебет = "41/С":склад И склад.код = "Осн"

// выбираем проводки со счетом 41/С по складу "Осн"

дебет = "41/С":склад:товар И склад.код = "Осн" И товар.код = "Валенки"

// выбираем проводки со счетом 41/С по складу "Осн" и товару "Валенки"

Подобный вариан записи более длинный, но позволяет делать проверку наличия аналитик и не зависит от порядка следования аналитик. Кроме того, он позволяет указывать любую комбинацию аналитик и счетов.

Пример:

дебет = "41/С":товар И товар.код = "Валенки"

// выбираем проводки со счетом 41/С по товару "Валенки"

дебет = "41":товар И товар.код = "Валенки"

// выбираем проводки со всеми субсчетами счета 41 с товаром "Валенки"

дебет = "41/":товар И товар.код = "Валенки"

// выбираем проводки со всеми субсчетами счета 41 с товаром "Валенки"

// код склада которых не указан

дебет = "41/":склад И склад.код = "Осн"

// выбираем проводки со всеми субсчетами счета 41 по складу "Осн"

// код товара которых не указан

Вариант задания II и III могут комбинироваться.

IV. Сравнение полей. Если <счет1> и <счет2> — поля журналов, программа сравнивает коды счетов и максимально возможное кол-во характеристик, которое может быть у этих счетов. Для корректного сравнения счета должны иметь полностью идентичные аналитики, например, быть одним и тем же счетом.

Пример.

ЦИКЛ ПО ЖУРНАЛУ бухпроводки п (дебет = кредит И дебет = "41")

// Выбираем проводки, у которых код счета дебета равен коду

// счета кредита и равны все их аналитики

Замечание!

Если необходимо указать условие только на аналитику, без привязки ее к счету надо указать звездочку вместо кода счета.

Пример:

сотр ЭТО сотрудники

ВЫБОР_ЗАПИСИ(сотр) // Выберем нужного нам сотрудника

ЦИКЛ ПО ЖУРНАЛУ бухпроводки п (дебет = "*":сотр ИЛИ кредит = "*":сотр)

// Выбираем проводки с указанным сотрудником, вне зависимости

// от того, по каким счетам он проходит

Если журнал не является аналитикой ни одного из счетов, условие будет считаться ложным автоматически. См.также функцию МАСКА_СЧЕТОВ_АНАЛИТИК.

Статьи. Для статей налогового учета также применима только одна операция — сравнение ("=" равенство). В зависимости от контекста, сравнение будет означать сравнение с кодом статьи, шаблоном или выбором проводок со всеми подстатьями этой статьи.

Пример.

Пусть имеется статья "Д" и ее подстатья конечного уровня "Д/РА" Тогда сравнения будут иметь следующий смысл:

статья = "Д" // выбираем проводки со всеми подстатьями статьи "Д"

статья = "Д/*" // выбираем проводки со всеми подстатьями статьи "Д"

статья = "Д/РА" // выбираем проводки со статьей "Д/РА"

Замечание!

Ни код счета, ни код статьи налогового учета не могут быть результатом выполнения подзапроса:

ЦИКЛ ПО ЖУРНАЛУ бухпроводки б (дебет ИЗ ВЫБРАТЬ бухпроводки.кредит (кредит = "41"))

// Такое выражение вызовет сообщение об ошибке

См.также
Код счета во внутреннем языке
Вычисление оборотов и остатков с условием
Функция АНАЛИТИКА_СЧИТАТЬ.


Ключевые слова

Ключевые слова используются для определения различных операторов и конструкций, для обозначения границ визуальной и расчетной части типовой операции, а также для определения типов.

Ключевое слово | Краткое описание
ВЫЧИСЛИТЬ | Начало расчетной части (алгоритма)
КОНЕЦ | Конец расчетной части (алгоритма)
ЗАГРУЗКА | Начало описание секции загрузки для бланка, сохраняющего графы ввода в журнале бухгалтерских операций
Описание функции, диалога, операции
ФУНКЦИЯ | Начало определения функции
ПЕРЕД | Модификаторы вызова функции
ПОСЛЕ
ВМЕСТО
КОНЕЦ_ФУНКЦИИ | Конец определения функции
РЕЗУЛЬТАТ | Переменная, определяющая результат функции
ДИAЛОГ | Начало определения диалога
ВМЕСТО | Модификатор вызова диалога или типовой операции
ЗАКЛАДКА | Добавляет закладку в диалог или типовую операцию
КНОПКА | Добавляет кнопку на общую линию вместе с кнопками <OK> и <Отмена> в диалоге или типовой операции
ИЗМЕНЕНИЕ | Начало описание секции, выполняющейся при изменении в полях диалога или типовой операции
ЗАГРУЗКА | Определяет секцию, которая срабатывает при открытии вкладки пошагового диалога и диалога настройки
ПРОВЕРКА | Начало секции проверки, выполняющейся после нажатия на <OK> в диалоге или типовой операции или при переходе к другой закладке в диалоге с закладками (за исключением пошаговых диалогов)
ПРЕДЫДУЩАЯ | Начало секции в пошаговом диалоге, которая выполняется при возврате к предыдущему шагу
СЛЕДУЮЩАЯ | Начало секции в пошаговом диалоге, которая выполняется при переходе к следующему шагу
ВВЕСТИ | Разделение предрасчетной и расчетной части в бланке, редактирование полей ввода в типовых операциях и диалогах
КОНЕЦ_ДИАЛОГА | Конец определения диалога
ОПЕРАЦИЯ | Начало описания типовой операции
ИСПОЛЬЗОВАТЬ | Подключение библиотеки функций
ПЕРЕМ | Задание локальной, общей или глобальной переменной и указание способа передачи параметров функции в библиотеке
КОНСТ | Задание локальной или общей константы
ГЛОБАЛ | Объявление глобальной переменной
Конструкции языка
ЕСЛИ ... ТО | Обработка условия
ИНАЧЕ
ИНАЧЕ_ЕСЛИ
КОНЕЦ_ЕСЛИ
ЦИКЛ ... | Организация циклических вычислений (обработка таблиц, журнала бухгалтерских операций и т.п.)
ДЛЯ | Цикл с перебором всех значений в заданном диапазоне
 | Цикл для перебора элементов массива
ПОКА | Цикл, продолжающийся до тех пор, пока выполняется некоторое условие
СЛОВА | Цикл с перебором всех слов текста
СЧЕТА | Цикл с перебором всех счетов и аналитик, подходящих к заданному шаблону
ОБОРОТЫ | Цикл с перебором прямых или перекрестных оборотов счетов и аналитик, подходящих к заданному шаблону
СТАТЬИ | Цикл с перебором всех статей налогового учета, подходящих к заданному шаблону
ПО ЖУРНАЛУ | Цикл с выборкой записей из одного или нескольких журналов
ИЗ_ЖУРНАЛА | Цикл с перебором выделенных в редакторе журнала записей
ИЗ_ЯЧЕЙКИ | Цикл с перебором выделенных в отчете ячеек
ФАЙЛЫ | Цикл с перебором файлов по шаблону
ПЕРЕМЕННЫЕ | Цикл с перебором всех переменных алгоритма
ДЕТАЛИ | Цикл по детализации записи журнала
ПОЛЯ | Цикл по всем дополнительным полям записи журнала
ЯЧЕЙКИ | Цикл с перебором ячеек отчета
ЯЧЕЙКИВ
КОНЕЦ_ЦИКЛА | Обозначение окончания цикла
ПРОДОЛЖИТЬ | Переход к следующей итерации цикла
СТОП | Досрочное прекращение выполнения цикла
СТОП_ВСЕ | Прекращение расчета бланка вне зависимости от того, на каком уровне вложенности цикла или функции находятся вычисления
ВЫХОД | Немедленное прекращение работы функции и выход из нее, завершение работы диалога, типовой операции, бланка
ПОПЫТКА | Обработка исключения
ИСКЛЮЧЕНИЕ
ЗАВЕРШЕНИЕ
КОНЕЦ_ПОПЫТКИ
ТРАНЗАКЦИЯ | Обработка транзакции
КОНЕЦ_ТРАНЗАКЦИИ
ДЛЯ | Детализация объекта
КОНЕЦ_ДЛЯ
ЭТО | Создание объекта
Операторы
И , ИЛИ , НЕ | Логические операции
ИЗ | Оператор принадлежности массиву
Константы
ДA , НЕТ | Логические константы
НЕТ_ДАТЫ | Календарные константы
ПУСТО | Пустое значение
Ключевые слова описания типов
ЧИСЛО СТРОКА ЛОГИКА ДАТА ВРЕМЯ | числовой тип строковый тип логический тип календарный тип временной тип
БД ВЕБСЕРВЕР ДИАГРАММА ЖУРНАЛ КУРСОР ОБЪЕКТ СЕКЦИЯ ФАЙЛ ФИЛЬТР ШРИФТ SQL | тип объекта База данных XML или DBF тип объекта Веб-сервер тип объекта Диаграмма тип объекта Журнал аналитики тип объекта Курсор тип объекта Объект тип объекта Секция тип объекта Файл тип объекта Фильтр тип объекта Шрифт

Описание типов применяется в заголовках библиотечных функций для указания типа результата и типов параметров функции.

При использовании конструктора ЭТО, применяются ключевые слова объектных типов для указания типа создаваемого объекта.

Также эти ключевые слова используются для указания типа общей переменной, которая должна сохранять значение при пересчете бланка.

Ключевые слова также используются для описания типов.

См. также
Ключевые слова и функции от А до Я
Встроенные функции по группам


* (звездочка)

Ключевое слово * (звездочка)

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Смотрите
Переменные неопределенного типа


БД

Ключевое слово БД

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Тип объекта База данных XML или DBF.


ВВЕСТИ

Ключевое слово ВВЕСТИ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Использование ключевого слова ВВЕСТИ предоставляет возможность редактировать значения полей ввода во время расчета типовой операции или диалога (например, для придания входным полям значений по умолчанию). Когда транслятор встречает ВВЕСТИ в расчетной части типовой операции или диалога, он приостанавливает выполнение алгоритма и переводит типовую операцию в режим ввода данных. После того как пользователь введет необходимые данные в поля операции и нажмет <OK>, алгоритм продолжит выполнение со следующего после ВВЕСТИ оператора. Если пользователь нажмет <Отмена>, то операция или диалог прекратит свое выполнение.

Ключевое слово ВВЕСТИ также может располагаться в теле бланка. Там оно отделяет предрасчетную часть бланка от основного расчета.

Синтаксис:

ВВЕСТИ [ ( [<поле ввода 1> [, <поле ввода 2> [ ... ] ] ] [, <редактирование>] ) ],

где

<поле ввода n>
имя поля ввода; (список полей ввода должен быть в квадратных скобках, например, [корр_сч, сумма] )

<редактирование>
флаг логического типа, запрещающий редактировать указанные поля ввода (по умолчанию — ДА, т.е. все поля доступны для редактирования)

Если поля ввода не указаны, то редактируются все поля ввода типовой операции. При указании списка полей ввода все остальные поля становятся недоступными для редактирования.

При задании параметра <редактирование> = НЕТ, наоборот, все указанные в списке поля становятся недоступными для редактирования, а все остальные активными.

Замечание!

Если диалог или типовая операция имеют секцию ИЗМЕНЕНИЕ, которая использует ключевое слово ДОСТУП, доступность полей для редактирования может меняться в процессе работы пользователя с диалогом.

Пример (типовая операция):

ОПЕРАЦИЯ Реализация : оплачена задолженность

Оплата на (счет) : ^корр

Покупатель : ^пок

Сумма (с НДС) : &сумма&&&&&&&&

НДС % : &нд:5

Дата : ~дата

Документ : *докум:15

Оплачено : *реал1:60

: *реал2:60

ВЫЧИСЛИТЬ

р = МЕТОД_РЕАЛ // значение МЕТОД_РЕАЛ из определений

пок = "62/"

корр = "51"

дата = ДАТА_ТЕК

реал = " продукция"

нд = НДС*100 // значение НДС из определений

ВВЕСТИ ( [дата], НЕТ ) // изменяются все поля, кроме дата

нНДС = сумма*нд / ( 100+нд )

ПРОВОДКА ( корр, пок, сумма, докум, дата, "Оплачено: "+реал1+" "+реал2 )

ЕСЛИ р = 1 ТО

ПРОВОДКА ( "76/НДС", "68/НДС", нНДС )

КОНЕЦ_ЕСЛИ

КОНЕЦ

Пример (диалог):

ДИАЛОГ ОстаткиПоКассе

Остатки по кассе

Сегодня : #дата1#### &остаток1:12:2

Вчера : #дата2#### #остаток2:12:2

Позавчера : #дата3#### #остаток3:12:2

ВЫЧИСЛИТЬ

дата1 = ДАТА_ТЕК остаток1 = ОСД("50",дата1 + 1)

дата2 = дата1 - 1 остаток2 = ОСД("50",дата2 + 1)

дата3 = дата2 - 1 остаток3 = ОСД("50",дата3 + 1)

ВВЕСТИ

сумма = остаток1 - ОСД("50",дата1 + 1)

ЕСЛИ сумма > 0 ТО

ПРОВОДКА("50","51", сумма)

ИНАЧЕ

ПРОВОДКА("51","50", - сумма)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ДИАЛОГА


ВЕБСЕРВЕР

Ключевое слово ВЕБСЕРВЕР

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Тип объекта "Веб-сервер".


ВИДИМЫЕ

Ключевое слово ВИДИМЫЕ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

При необходимости перебрать записи, попадающие под условия ограничения прав доступа, таких как:

1.Доступ к операциям других — запрещает просматривать и/или редактировать пользователю операции всех или выбранных пользователей.

2.Видимые записи — орграничивает выбранный журнал только записями, удовлетворяющими данному условию.

в ЦИКЛе ПО ЖУРНАЛУ можно воспользоваться ключевым словом ВИДИМЫЕ. В этом случае программа цикл проходит только по видимым для просмотра записям.

Пример:

Например, необходимо удалить все просроченные счета. Перед выполнением этой операции, список счетов с помощью ВЫБРАТЬ_ЗНАЧЕНИЕ выдается пользователю для подверждения действия. Если у него нет прав для отображения каких-либо счетов, то они не должны появляться в списке. Для этого используется ключевое слово ВИДИМЫЕ:

ЦИКЛ ПО ЖУРНАЛУ ВИДИМЫЕ счета сч (сч.дата < :ДАТА_ТЕК - 10)

назв!сч.ид = "Счет №" + сч.ном_счета + " от " + СТР(сч.дата)

опц!сч.ид = ДА

КОНЕЦ_ЦИКЛА

ЕСЛИ ВЫБРАТЬ_ЗНАЧЕНИЕ("Выберите счета для отмены",назв,опц) ТО

ЦИКЛ ПО ЖУРНАЛУ ВИДИМЫЕ счета сч (сч.дата < :ДАТА_ТЕК - 10)

ЕСЛИ опц!сч.ид ТО

сч.УДАЛИТЬ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

КОНЕЦ_ЕСЛИ

См. также
ЦИКЛ ПО ЖУРНАЛУ


ВМЕСТО

Ключевое слово ВМЕСТО

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ВМЕСТО определяет модификатор вызова исходной функции, диалога или типовой операции. Функция с указанным модификатором во всех алгоритмах будет вызываться вместо исходной.

См. также
Ключевое слово ФУНКЦИЯ


ВРЕМЯ

Ключевое слово ВРЕМЯ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Смотрите
Временной тип


ВЫБРАТЬ

Ключевое слово ВЫБРАТЬ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ВЫБРАТЬ применяется в двух контекстах:

I.Оно является короткой формой ЦИКЛ ПО ЖУРНАЛУ, но только для выбора одной записи.

II.Оно определяет начало подзапроса в ЦИКЛе ПО ЖУРНАЛУ.

В I-ом контексте оно имеет следующий синтаксис:

Синтаксис:

ВЫБРАТЬ <синтаксис, аналогичный ЦИКЛ ПО ЖУРНАЛУ>

Также как и в цикле, результаты вычисления выражений и агрегатных функций помещаются в простые переменные, считанные записи журналов в переменные типа ЖУРНАЛ построенные по соответствующему идентификатору журнала.

Если в результате работы попадает несколько записей, ВЫБРАТЬ загружает первую запись. В этом случае, чтобы выбрать нужную запись, можно воспользоваться сортировкой. Если в результате работы не попало ни одной записи, значения результата зависит от его типа:

·Для объектных переменных типа ЖУРНАЛ загрузятся значения полей по умолчанию, а метод НОВАЯ будет возвращать ДА.

·Обычные переменные примут значение ПУСТО.

Также ВЫБРАТЬ может логическое возвращать значение, означающее то, найдена хотя бы одна запись или нет, например:

ЕСЛИ ВЫБРАТЬ <синтаксис, аналогичный ЦИКЛ ПО ЖУРНАЛУ> ТО
//....
КОНЕЦ_ЕСЛИ

При использовании ВЫБРАТЬ оптимизация выборки отключена.

Пример

ВЫБРАТЬ клиент к (код = 20)

// Выбираем клиента из справочника клиентов с кодом 20 и загружаем

// его в переменную к

ЕСЛИ к.НОВАЯ ТО

СООБЩЕНИЕ("Клиент не найден")

ИНАЧЕ

к.РЕДАКТИРОВАТЬ // Редактируем найденного клиента

КОНЕЦ_ЕСЛИ

См. также
Ключевое слово ЦИКЛ ПО ЖУРНАЛУ
Подзапросы в цикле


ВЫХОД

Ключевое слово ВЫХОД

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ВЫХОД используется для осуществления досрочного выхода из функции библиотеки или прекращения работы алгоритма (типовой операции, бланка или отчета).

Синтаксис:

ВЫХОД [(<результат>)]

где

<результат>
возвращаемый функцией результат.

Пример:

ФУНКЦИЯ ЧИСЛО : Делить ( ЧИСЛО : a, b )

Делить = 0 // начальное значение результата

ЕСЛИ b = 0 ТО

ВЫХОД // в особой ситуации - выход из функции

КОНЕЦ_ЕСЛИ

Делить = a / b // нормальное действие

КОНЕЦ_ФУНКЦИИ

Если функция возвращает результат, то он должен быть присвоен перед выходом из функции, иначе вычисления закончатся ошибкой. Если внутри функции вообще используется ключевое слово ВЫХОД и функция должна вернуть результат, то хорошим тоном будет проинициализировать функцию в начале, как это сделано в этом примере. Такой способ гарантирует, что вне зависимости от логического ветвления алгоритма внутри функции она всегда вернет какой-либо результат.

Другой способ — возвращать результат непосредственно при выходе:

ФУНКЦИЯ ЧИСЛО : Делить ( ЧИСЛО : a, b )

ЕСЛИ b = 0 ТО

ВЫХОД(0) // в особой ситуации - выход из функции

КОНЕЦ_ЕСЛИ

Делить = a / b // нормальное действие

КОНЕЦ_ФУНКЦИИ

См. также
Ключевое слово СТОП
Ключевое слово СТОП_ВСЕ


ВЫЧИСЛИТЬ

Ключевое слово ВЫЧИСЛИТЬ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Любой алгоритм в программе Инфо-Предприятие начинается с ключевого слова ВЫЧИСЛИТЬ. Это указывает на начало основной вычислительной части бланка, отчета, диалога или типовой операции. Это слово должно быть первым в строке (не обязательно с первой позиции).

За ВЫЧИСЛИТЬ могут следовать один или несколько параметров алгоритма. Они должны указываться при его запуске.

Синтаксис:

ВЫЧИСЛИТЬ[(<параметр1>[,<параметр2>[,...]])]

Пример:

ВЫЧИСЛИТЬ

СуммаНДС = сумма*НДС / (100+НДС)

КОНЕЦ

Транслятор определяет по ключевому слову ВЫЧИСЛИТЬ, что визуальная часть типовой операции завершилась, и началась ее вычислительная часть.

См. также
Ключевое слово КОНЕЦ


ГЛОБАЛ

Ключевое слово ГЛОБАЛ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ГЛОБАЛ используется для объявляения глобальной переменной;

Синтаксис:

ГЛОБАЛ

См. также
Ключевое слово ПЕРЕМ


ДА

Ключевое слово ДА

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Логические константы


ДАННЫЕ

Ключевое слово ДАННЫЕ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Смотрите
Данные


ДАТА

Ключевое слово ДАТА

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Календарный тип


ДЕТАЛИ

ЦИКЛ ДЕТАЛИ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

С помощью конструкции ЦИКЛ ДЕТАЛИ можно пробежаться по детализации записи журнала.

Синтаксис:

ЦИКЛ ДЕТАЛИ [ВЛОЖ] [<объект>] (<имя> [:<индекс>] [,<журнал>[,<ссылка>]] ),

где

<объект>
переменная типа ЖУРНАЛ, по детализации которой надо пробежаться; может не указываться при вызове внутри метода.

<имя>
управляющая переменная типа ЖУРНАЛ, в которую загружается запись детализации при каждой итерации;

<индекс>
можно дополнительно указать числовую переменную, в которую будет помещаться номер по-порядку;

<журнал>
определяет идентификатор нужного подчиненного журнала детализации.

<ссылка>
поле для связи с журналом.

Результат — журнал.

Описание:

Этот цикл делает абсолютно то же самое, что и следующий цикл ДЛЯ из методов ДЕТАЛИЗАЦИЯ и КОЛ_ДЕТАЛЕЙ:

ЦИКЛ ДЛЯ (и = 1, <объект>.КОЛ_ДЕТАЛЕЙ[(<журнал>[,<ссылка>])])

<имя> = <объект>.ДЕТАЛИЗАЦИЯ(и [,<журнал>[,<ссылка>]])

....

КОНЕЦ_ЦИКЛА

Пример:

шир1 = 80

шир2 = 15

н ЭТО накладные

ЦИКЛ ДЕТАЛИ н (д, накадные_дет))

ВСТАВИТЬ_РАМКУ(1, и, шир1, 1)

ВЫВЕСТИ(2, и, д.наименование, шир1 - 1)

ВСТАВИТЬ_РАМКУ(1, и, шир2, 1)

ВЫВЕСТИ(2 + шир1, и, д.цена, шир2 - 1, 2)

КОНЕЦ_ЦИКЛА

Замечание1

Порядок записей детализации может отличаться в зависимости от того, откуда был вызван алгоритм. Например, в алгоритмах, вызываемых из контекстного меню в диалоге редактирования записи журнала по кнопке, порядок следования записей детализации таков, каков он на экране в таблице редактирования записи (а таблица может быть отсортирована по одной или нескольким колонкам).

Замечание2

Дополнительный параметр <журнал> определяет идентификатор нужного подчиненного журнала. Если его нет, программа ищет подчиненный журнал по умолчанию. Таковым является журнал, ссылающийся своим полем IDLINK (в базе данных) на поле ID (в базе данных) текущего журнала. Ну а уж если <журнал> является журналом детализации в нескольких контекстах (например у бухгалтерского счета журнал проводок может быть детализацией как по дебету, так и по кредиту), можно указать нужный контекст по имени ссылки (REFERENCE) в базе данных.

См.также
ДЕТАЛИЗАЦИЯ
КОЛ_ДЕТАЛЕЙ


ДИАГРАММА

Ключевое слово ДИАГРАММА

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Тип объекта Диаграмма.


ДИАЛОГ

Ключевое слово ДИАЛОГ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ДИАЛОГ указывает на начало описания диалога.

Синтаксис (простой диалог):

ДИАЛОГ <имя диалога> [ ( параметры ) ]

где

<имя диалога>
идентификатор, определяющий имя диалога

Синтаксис (диалоговый метод):

ДИАЛОГ <имя объекта> [(<идентификатор>)] <имя диалога> [ ( <описание параметров> ) ]

где

<имя объекта>
ключевое слово, определяющее тип объекта

<идентификатор>
идентификатор журнала для объектов ЖУРНАЛ и ФИЛЬТР.

<имя диалога>
идентификатор, определяющий имя диалога

Описание диалога полностью повторяет описание функции, за исключением указания возвращаемого результата.

Пример:

ДИАЛОГ ВводПараметров(ПЕРЕМ ДАТА: дата; ПЕРЕМ СТРОКА: номер)

Дата счета : ~дата

Номер : *номер**********

КОНЕЦ_ДИАЛОГА

// Основной алгоритм

ВЫЧИСЛИТЬ

дата_счета = ДАТА_ТЕК

номер_счета = СТР(НОМЕР("сч"))

ЕСЛИ НЕ ВводПараметров(дата_счета, номер_счета) ТО

// Пользователь нажал Отмена - останавливаем расчет

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

// Остальной расчет

КОНЕЦ

На экране появится диалог:

Если пользователь нажмет <OK>, то ВводПараметров вернет ДА, в противном случае НЕТ, что в данном примере приведет к остановке расчета. Этот же пример может быть переделан и так:

ДИАЛОГ ВводПараметров(ПЕРЕМ ДАТА: дата; ПЕРЕМ СТРОКА: номер)

Дата счета : ~дата

Номер : *номер**********

ВЫЧИСЛИТЬ

дата_счета = ДАТА_ТЕК

номер_счета = СТР(НОМЕР("сч"))

ВВЕСТИ

КОНЕЦ_ДИАЛОГА

// Основной алгоритм

ВЫЧИСЛИТЬ

ЕСЛИ НЕ ВводПараметров(дата_счета, номер_счета) ТО

// Пользователь нажал Отмена - останавливаем расчет

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

// Остальной расчет

КОНЕЦ

См. также
Ключевое слово ИСПОЛЬЗОВАТЬ
Ключевое слово КОНЕЦ_ДИАЛОГА
Форматы ввода и вывода
Пример взаимодействия диалогов


ДЛЯ

ЦИКЛ ДЛЯ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

ЦИКЛ ДЛЯ применяется

·для осуществления цикла с перебором всех значений в заданном диапазоне (I - ый вариант)

·для перебора элементов массива (II - ой вариант).

Синтаксис I:

ЦИКЛ ДЛЯ ( <перем> = <нач. значение>, <кон. значение> [,<шаг цикла>] ),

где

<перем>
управляющая переменная числового типа или типа дата, изменяющая свое значение при каждом проходе цикла;

<нач. значение>
выражения числового типа или типа дата, определяющие

<кон. значение>
соответственно начальное и конечное значения цикла;

<шаг цикла>
необязательный параметр числового типа, определяющий приращение значения переменной. По умолчанию шаг цикла равен 1. Шаг цикла может быть и отрицательным. В этом случае подразумевается, что конечное значение меньше начального значения.

Пример I:

// заполняем массив месяцев

ЦИКЛ ДЛЯ ( и = 1, 12 ) // цикл по месяцам

месяцы[и] = МЕСП(и)

КОНЕЦ_ЦИКЛА

Синтаксис II:

ЦИКЛ ДЛЯ ( <перем> ИЗ <массив> [, <маска>] [, <обратно>] ),

где

<перем>
управляющая переменная строкового типа, принимающая последовательно значения индекса массива;

<массив>
массив, из которого считывается информация.

<маска>
позволяет при необходимости выбирать не все элементы, а только те, что удовлетворяют маске.

<обратно>
логическое значение, флаг, при включении которого цикл будет проходить в обратном порядке.

Цикл с перебором индекса массива является единственно возможным средством для перебора значений массива, когда он имеет нечисловой индекс. При проходе цикла переменная <перем> проходит последовательно значения индекса массива (за исключением пустой строки). При этом считается, что индекс — строка и используется алфавитный порядок.

Пример II:

// перебираем массив

ЦИКЛ ДЛЯ (м ИЗ месяцы) // цикл по выбранным счетам

ВЫВЕСТИ(1,ЗНАЧ(м),месяцы[м])

КОНЕЦ_ЦИКЛА

Замечание1

Цикл ИЗ работает и для многомерных массивов. В этом случае внутри тела цикла к нему надо обращаться как к одномерному массиву.

Пример:

м[1,1] = 1

м[1,2] = 1

м[2,1] = 1

м[2,2] = 1

ЦИКЛ ДЛЯ (и ИЗ м)

ОТЛАДКА(м!и)

КОНЕЦ_ЦИКЛА


ДЛЯ

Ключевое слово ДЛЯ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите также Ключевое слово ЦИКЛ ДЛЯ

Описание:

При необходимости выполнить несколько действий над полями объекта, можно воспользоваться ключевым словом ДЛЯ. С помощью него Вы избавляетесь от необходимости указывать объект каждый раз, когда надо обратиться к его полю или методу.

Синтаксис:

ДЛЯ <объект >[,<объект2> [...] ]

<действие 1>;

[ <действие 2> [ ... ] ]

КОНЕЦ_ДЛЯ

где

<объект1>, <объект2>
переменные объектного типа. Если в объектах встречаются одинаковые поля, выдается сообщение об ошибке. Если в объектах встречаются одинаковые методы, при обращении к таким вызывается метод для последнего объекта в списке.

Пример:

фильтр = накладные.ФИЛЬТР

ДЛЯ накладные, фильтр

код_клиента_шаб = СТР(код_клиента)

код_склада_шаб = СТР(код_склада)

дата_от = ДАТА_НАЧ

дата_по = ДАТА_КОН

РЕДАКТИРОВАТЬ

КОНЕЦ_ДЛЯ


ДЛЯ_ЖУРНАЛА

Ключевое слово ДЛЯ_ЖУРНАЛА

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Ключевое слово ДЛЯ_ЖУРНАЛА устарело. См. описание методов объектов.


ЕСЛИ

Ключевое слово ЕСЛИ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

При необходимости выполнить различные действия в зависимости от некоторого условия, Вы можете использовать ключевое слово ЕСЛИ. Конструкции с ЕСЛИ могут быть двух типов: с неполной альтернативой: "Если что-то, то сделать следующее" и полной альтернативой: "Если что-то, то сделать это, а и иначе вот это".

Синтаксис:

ЕСЛИ <условие> ТО // Неполная альтернатива

<действие 1>;

[ <действие 2> [ ... ] ]

КОНЕЦ_ЕСЛИ

ЕСЛИ <условие> ТО // Полная альтернатива

<действие 1>;

[ <действие 2>; [ ... ] ]

ИНАЧЕ

<действие 1>;

[ <действие 2>; [ ... ] ]

КОНЕЦ_ЕСЛИ

ЕСЛИ <условие> ТО // Несколько условий

<действие 1>;

[ <действие 2>; [ ... ] ]

ИНАЧЕ_ЕСЛИ <условие> ТО

<действие 1>;

[ <действие 2>; [ ... ] ]

ИНАЧЕ_ЕСЛИ <условие> ТО

<действие 1>;

[ <действие 2>; [ ... ] ]

.....

ИНАЧЕ

<действие 1>;

[ <действие 2>; [ ... ] ]

КОНЕЦ_ЕСЛИ

где <условие> — выражение логического типа.

Использование ключевого слова ТО не обязательно, но повышает наглядность кода программы.

Пример:

ЕСЛИ Кред="" ТО

Кред="50"

КОНЕЦ_ЕСЛИ

ЕСЛИ стр1<>"" ТО

ЕСЛИ стр2<>"" ТО

ПРОВОДКА ("26", Кред, а, ДАТА_ТЕК, стр1, стр2)

КОНЕЦ_ЕСЛИ

ИНАЧЕ

СТОП

КОНЕЦ_ЕСЛИ

ЕСЛИ стр1<>"" ТО

ПРОВОДКА ("26", Кред, а, ДАТА_ТЕК, стр1)

ИНАЧЕ_ЕСЛИ стр2<>"" ТО

ПРОВОДКА ("26", Кред, а, ДАТА_ТЕК, стр2)

КОНЕЦ_ЕСЛИ


ЖУРНАЛ

Ключевое слово ЖУРНАЛ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Тип объекта Журнал аналитики.


ЖУРНАЛУ

Ключевое слово ЖУРНАЛУ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ЖУРНАЛУ является составной необязательно частью оператора ЦИКЛ ПО ЖУРНАЛУ


ЗАВЕРШЕНИЕ

Ключевое слово ЗАВЕРШЕНИЕ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ЗАВЕРШЕНИЕ является составной частью оператора ПОПЫТКА и используется для обозначения начала ветви, выполняемой гарантировано после завершении работы основной части оператора.

Синтаксис:

ЗАВЕРШЕНИЕ

См. также
Ключевое слово ПОПЫТКА


ЗАГРУЗКА

Ключевое слово ЗАГРУЗКА

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

I. Описание (для бланков):

Ключевое слово ЗАГРУЗКА в бланке, сохраняющим содержимое вводных полей в журнале бухгалтерских операций, указывает на начало алгоритма загрузки, срабатывающего при вызове бланка на основе бухгалтерской операции. Назначение алгоритма — выполнить анализ проводок журнала бухгалтерских операций и инициализировать значения полей бланка на их основе.

Синтаксис:

ЗАГРУЗКА

Ключевое слово ЗАГРУЗКА идет сразу за описателями полей ввода перед ВЫЧИСЛИТЬ и ИЗМЕНЕНИЕ. Внутри секции доступна функция ИЗ_ЖУРНАЛА и ЦИКЛ ИЗ ЖУРНАЛА для журналов бухоперации и бухпроводки. Это приводит, соответственно, к получению считываемой операции и считываемых проводок. Также внутри секции возможно чтение с помощью АРХИВ дополнительной информации об операции.

Секция ЗАГРУЗКА срабатывает если бланк открывается по флажку в окне журнала бухгалтерских операций.

Если бланк вызывается при помощи функции СТАРТ_БЛАНК и в качестве параметра вызова передан объект бухоперации, в вызываемом бланке сработает секция ЗАГРУЗКА, а ИЗ_ЖУРНАЛА вернет переданный объект бухоперации.

Пример:

ЗАГРУЗКА

// Загрузка при вызове из ЖБО

ЦИКЛ ИЗ_ЖУРНАЛА бухпроводки п

ЕСЛИ п.кредит = "51*" ТО

дебет = п.дебет

кредит = п.кредит

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

ИЗ_ЖУРНАЛА(бухоперации)

номер = УБР_ПРОБ(ПОДСТР(бухоперации.документ, 3))

// Загрузка дополнительной информации об операции

ндс = АРХИВ["НДС"]

ВЫЧИСЛИТЬ

// Предрасчетная часть для создания документа

номер = СТР(НОМЕР("пп":ГОД))

дата = ДАТА_ТЕК

ВВЕСТИ

// Основной расчет

// Заносим дополнительную информацию об операции

АРХИВ["НДС"] = 10

// Делаем проводку

ПРОВОДКА(дебет, кредит, сумма, "пп " + СТР(номер), дата, содержание)

ЕСЛИ ЗАП_ОПЕР ТО

ЗАП_НОМЕР("пп":ГОД, номер)

КОНЕЦ_ЕСЛИ

КОНЕЦ

См.также
Настройка параметров бланка
Редактирование типа документа
Свойство АРХИВ

II. Описание (для диалогов):

Ключевое слово ЗАГРУЗКА в диалоге преобразованным с помощью специальных функций-модификаторов МАСТЕР и ДИАЛОГ_НАСТРОЙКИ в пошаговый диалог и диалог настройки соответственно, определяет секцию, которая срабатывает при открытии соответствующей вкладки.

Синтаксис:

ЗАГРУЗКА

Ключевое слово ЗАГРУЗКА идет сразу за описателями полей ввода. Внутри секции доступно свойство ЗАКЛАДКА.

Пример 1:

// Иллюстрация работы секций СЛЕДУЮЩАЯ, ПРЕДЫДУЩАЯ, ЗАГРУЗКА

ДИАЛОГ ТЕСТ1

ЗАКЛАДКА 1

Это вкладка 1

ЗАКЛАДКА 2

Это вкладка 2

СЛЕДУЮЩАЯ

ОТЛАДКА("Следующая " + СТР(ЗАКЛАДКА))

ПРЕДЫДУЩАЯ

ОТЛАДКА("Предыдущая " + СТР(ЗАКЛАДКА))

ЗАГРУЗКА

ОТЛАДКА("Загрузка " + СТР(ЗАКЛАДКА))

КОНЕЦ_ДИАЛОГА

// Запуск мастера

МАСТЕР(ТЕСТ1)

Пример 2:

// Иллюстрация работы секций ЗАГРУЗКА, ПРОВЕРКА

ДИАЛОГ ТЕСТ2

ЗАКЛАДКА 1

Это вкладка 1

ЗАКЛАДКА 2

Это вкладка 2

ЗАГРУЗКА

ОТЛАДКА("Загрузка " + СТР(ЗАКЛАДКА))

ПРОВЕРКА

ОТЛАДКА("Проверка " + СТР(ЗАКЛАДКА))

КОНЕЦ_ДИАЛОГА

// Запуск диалога настройки

ДИАЛОГ_НАСТРОЙКИ(ТЕСТ2)

См.также
Секция ПРОВЕРКА


ЗАКЛАДКА

Ключевое слово ЗАКЛАДКА

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ЗАКЛАДКА внутри описателей в диалогах и типовых операциях указывает на начало новой закладки в диалоге. Это слово должно быть первым в строке (не обязательно с первой позиции).

Синтаксис:

ЗАКЛАДКА [<имя константы>] <Текст закладки>

Здесь

<имя константы>
дополнительно, в угловых скобках, можно указать имя константы для доступа к номеру закладки из внутреннего языка.

Каждый раз, когда программа встречает ключевое слово ЗАКЛАДКА, она добавляет новую закладку в диалог. Диалог может иметь неограниченное кол-во закладок. Та часть типовой операции или диалога, которая находится между ключевыми словами ОПЕРАЦИЯ (ДИАЛОГ) и ЗАКЛАДКА будет общей для всех закладок и располагаться над ними.

Если диалог содержит закладки, его внешний вид может быть преобразован с помощью специальных функций-модификаторов:

·При помощи функции МАСТЕР можно модифицировать внешний вид диалога с закладками так, что он будет представлен в виде пошагового диалога (визарда).

·При помощи функции ДИАЛОГ_НАСТРОЙКИ можно модифицировать внешний вид диалога с закладками: они будут отображаться слева от диалога в виде дерева.

Пример:

// Описания общих переменных и функций

ДИАЛОГ Закладки1

ЗАКЛАДКА Строка

*ы********************

ЗАКЛАДКА Дата

~дата

КОНЕЦ_ДИАЛОГА

ДИАЛОГ Закладки2

<Пример диалога с закладками>

-------------------------------------

ЗАКЛАДКА Основная

Строка : *ы********************

ЗАКЛАДКА Дополнительная

Строка : *ф*************

Число : &у&&&&&&&&&&&

Дата : ~дата

КОНЕЦ_ДИАЛОГА

ВЫЧИСЛИТЬ

// Расчетная часть бланка

Закладки1

Закладки2

КОНЕЦ

См. также
Форматы ввода и вывода
Функция МАСТЕР
Свойство ЗАКЛАДКА
Ключевое слово ОПЕРАЦИЯ
Ключевое слово ДИАЛОГ


И

Ключевое слово И

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите Логические операции


ИЗ

Ключевое слово ИЗ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

При необходимости узнать, содержит ли одномерный массив значение с указанным индексом используется оператор ИЗ.

Синтаксис:

<выражение> ИЗ <массив>

где

<выражение>
выражение, задающее значение индекса массива.

<массив>
массив, для которого выполняется проверка, он может быть задан в виде переменной или списка перечисляемых значений

Пример:

а[1] = "Значение"

а[2] = "Еще одно"

п = 1 ИЗ а // п - истинно

п = 3 ИЗ а // п - ложно

п = 1 ИЗ [1, 2] // п - истинно

См. также
ЦИКЛ ИЗ


ИЗ_ЯЧЕЙКИ

ЦИКЛ ИЗ_ЯЧЕЙКИ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

ЦИКЛ ИЗ_ЯЧЕЙКИ используется в обработчиках отчета для перебора выделенных ячеек отчета.

Синтаксис для ячеек:

ЦИКЛ ИЗ_ЯЧЕЙКИ (<колонка>, <строка> [ , <ячейка>] )

Здесь

<колонка>, <строка>, <ячейка>
задают строковые переменные, которые будут последовательно принимать значения координат ячеек. Параметр <ячейка> не обязательный, может не указываться. Если в отчете используются подъячейки, то <ячейка> содержит значения всех подъячеек, разделенных точкой с запятой.

Порядок прохода выделенных ячеек не определен.

Пример.

ЦИКЛ ИЗ_ЯЧЕЙКИ (колонка, строка, ячейка)

ЕСЛИ АТРИБУТЫ![колонка, атВозврат] <> ПУСТО И АТРИБУТЫВ![строка, атВозврат] <> ПУСТО ТО
//.....

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА


ИЗМЕНЕНИЕ

Ключевое слово ИЗМЕНЕНИЕ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ИЗМЕНЕНИЕ в диалогах, типовых операциях и бланках указывает на начало секции изменения — алгоритма, срабатывающего каждый раз, когда пользователь изменят содержимое какого-либо поля диалога или бланка. Это слово должно быть первым в строке (не обязательно с первой позиции).

Синтаксис:

ИЗМЕНЕНИЕ

Ключевое слово ИЗМЕНЕНИЕ идет сразу за описателями полей ввода перед ВЫЧИСЛИТЬ (в бланках, если есть секция ЗАГРУЗКА, секции ИЗМЕНЕНИЕ и ПРОВЕРКА должны идти после нее).

Внутри секции доступна функция ИЗМЕНЕНА, с помощью которой можно определить, какое именно поле ввода изменилось и ключевое слово ДОСТУП, позволяющее управлять доступностью граф ввода.

Замечание!

Секция ИЗМЕНЕНИЕ также единократно срабатывает и при начале работы пользователя с диалогом, т.е. сразу после ВВЕСТИ, а в бланках — после начала работы пользователя с бланком (или после окончания работы предрасчетной или загрузочной части бланка, если таковые имеются). Функция ИЗМЕНЕНА в этом случае для всех граф вернет значение НЕТ.

Внутри секции можно использовать СТОП_ВСЕ, она в этом случае завершает работу не только секции изменения но и всего алгоритма. Использование ВЫХОД внутри диалогов приводит к завершению работы диалога с указанным в функции результатом, например ВЫХОД(НЕТ) будет равносильно тому, что в диалоге была нажата кнопка <Отмена>.

Пример:

// Операция, использующая ДОСТУП для управления доступом к полям ввода

ОПЕРАЦИЯ Экспорт в бухгалтерию

$сфор_пров("Сформировать проводки")

$проверка("Проверить остатки товаров")

$пересчет("Пересчитать учетные цены")

$блокировать("Заблокировать операции")

ИЗМЕНЕНИЕ

ДОСТУП(проверка, сфор_пров)

ДОСТУП(пересчет, сфор_пров)

ВЫЧИСЛИТЬ

// Инициализация полей ввода

ВВЕСТИ

// Основной расчет

КОНЕЦ

// Операция, задающая отчетный период и текущую дату

ОПЕРАЦИЯ ОтчетныйПериод

Начало отчетного периода

~дата_от #дата_от_стр:40

Окончание отчетного периода

~дата_по #дата_по_стр:40

Текущая дата

~дата_тек #дата_тек_стр:40

ИЗМЕНЕНИЕ

дата_от_стр = ДАТАП(дата_от) + ", " + ДЕНЬП(ДЕНЬ(дата_от))

дата_по_стр = ДАТАП(дата_по) + ", " + ДЕНЬП(ДЕНЬ(дата_по))

дата_тек_стр = ДАТАП(дата_тек) + ", " + ДЕНЬП(ДЕНЬ(дата_тек))

ВЫЧИСЛИТЬ

дата_от = ДАТА_НАЧ

дата_по = ДАТА_КОН

ВВЕСТИ

КОНЕЦ

См. также
Форматы ввода и вывода
Ключевое слово ОПЕРАЦИЯ
Ключевое слово ДИАЛОГ
Ключевое слово ВЫЗВАТЬ_ИЗМЕНЕНИЕ


ИЛИ

Ключевое слово ИЛИ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите Логические операции


ИНАЧЕ

Ключевое слово ИНАЧЕ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ИНАЧЕ является составной частью условного оператора ЕСЛИ и используется для обозначения начала ветви, выполняемой при ложном значении условия.

Синтаксис:

ИНАЧЕ

См. также
Ключевое слово ЕСЛИ


ИНАЧЕ_ЕСЛИ

Ключевое слово ИНАЧЕ_ЕСЛИ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ИНАЧЕ_ЕСЛИ является составной частью условного оператора ЕСЛИ и используется для обозначения начала ветви, выполняемой при ложном значении условия, при выполнении другого альтернативного условия.

Синтаксис:

ИНАЧЕ_ЕСЛИ

См. также
Ключевое слово ЕСЛИ


ИСКЛЮЧЕНИЕ

Ключевое слово ИСКЛЮЧЕНИЕ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ИСКЛЮЧЕНИЕ является составной частью оператора ПОПЫТКА и используется для обозначения начала ветви, выполняемой в случае возникновения ошибки при выполнении основной части оператора.

Синтаксис:

ИСКЛЮЧЕНИЕ

См. также
Ключевое слово ПОПЫТКА


ИСПОЛЬЗОВАТЬ

Ключевое слово ИСПОЛЬЗОВАТЬ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ИСПОЛЬЗОВАТЬ применяется для подключения библиотек функций.

Синтаксис:

ИСПОЛЬЗОВАТЬ (<библиотека 1> [,<библиотека 2> [, ...] ] )

где

<библиотека n>
строковые выражения, представляющие собой имена файлов библиотек. Имена могут указываться без расширения. По умолчанию используется расширение lib.

Также, вместо строки, можно указать идентификатор журнала аналитики. Это будет означать подключение библиотеки обработчиков этого журнала.

Примеры:

// подключается библиотека Methods.lib

ИСПОЛЬЗОВАТЬ ("Methods")

// подключаются библиотеки Func1.lib и Methods.lib

ИСПОЛЬЗОВАТЬ ("Func1", "Methods")


КОНЕЦ

Ключевое слово КОНЕЦ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Любой алгоритм в программе Инфо-Предприятие заканчивается ключевым словом КОНЕЦ. Содержащиеся в расчетном разделе действия должны заканчиваться на предшествующей строке. Это слово должно быть первым в строке (не обязательно с первой позиции).

Синтаксис:

КОНЕЦ

Пример:

ВЫЧИСЛИТЬ

СуммаНДС = сумма*НДС / ( 100 + НДС )

КОНЕЦ

См. также
Ключевое слово ВЫЧИСЛИТЬ


КОНЕЦ_ДИАЛОГА

Ключевое слово КОНЕЦ_ДИАЛОГА

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово КОНЕЦ_ДИАЛОГА используется для обозначения окончания описания диалога. Содержащиеся в теле диалога описания граф должны заканчиваться на предшествующей строке. Это слово должно быть первым в строке (не обязательно с первой позиции).

Синтаксис:

КОНЕЦ_ДИАЛОГА

См. также
Ключевое слово ДИАЛОГ


КОНЕЦ_ДЛЯ

Ключевое слово КОНЕЦ_ДЛЯ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово КОНЕЦ_ДЛЯ является составной частью оператора ДЛЯ и используется для обозначения окончания этого оператора.

Синтаксис:

КОНЕЦ_ДЛЯ


КОНЕЦ_ЕСЛИ

Ключевое слово КОНЕЦ_ЕСЛИ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово КОНЕЦ_ЕСЛИ является составной частью условного оператора ЕСЛИ и используется для обозначения окончания условного оператора.

Синтаксис:

КОНЕЦ_ЕСЛИ


КОНЕЦ_ПОПЫТКИ

Ключевое слово КОНЕЦ_ПОПЫТКИ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово КОНЕЦ_ПОПЫТКИ является составной частью оператора ПОПЫТКА и используется для обозначения окончания оператора.

Синтаксис:

КОНЕЦ_ПОПЫТКИ


КОНЕЦ_ТРАНЗАКЦИИ

Ключевое слово КОНЕЦ_ТРАНЗАКЦИИ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово КОНЕЦ_ТРАНЗАКЦИИ является составной частью оператора ТРАНЗАКЦИЯ и используется для обозначения окончания оператора.

Синтаксис:

КОНЕЦ_ТРАНЗАКЦИИ


КОНЕЦ_ФУНКЦИИ

Ключевое слово КОНЕЦ_ФУНКЦИИ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово КОНЕЦ_ФУНКЦИИ используется для обозначения окончания описания функции в библиотеке. Содержащиеся в теле функции действия должны заканчиваться на предшествующей строке. Это слово должно быть первым в строке (не обязательно с первой позиции).

Синтаксис:

КОНЕЦ_ФУНКЦИИ

См. также
Ключевое слово ФУНКЦИЯ


КОНЕЦ_ЦИКЛА

Ключевое слово КОНЕЦ_ЦИКЛА

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово КОНЕЦ_ЦИКЛА является составной частью оператора ЦИКЛ и используется для обозначения окончания цикла.

Синтаксис:

КОНЕЦ_ЦИКЛА

См. также
Ключевое слово ЦИКЛ


КОНСТ

Ключевое слово ПЕРЕМ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово КОНСТ определяет константу.

Синтаксис:

КОНСТ <имя константы> = <значение>

где

<имя константы>
идентификатор, определяющий имя константы

<значение>
значение константы

См. также
Ключевое слово ПЕРЕМ
Ключевое слово ФУНКЦИЯ
Ключевое слово ДИАЛОГ


КУРСОР

Ключевое слово КУРСОР

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Тип объекта Курсор.


ЛОГИКА

Ключевое слово ЛОГИКА

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Логический тип


МНОЖЕСТВО

Ключевое слово МНОЖЕСТВО

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Смотрите
множество, что такое множества


НЕ

Ключевое слово НЕ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Логические операции


НЕТ

Ключевое слово НЕТ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Логические константы


НЕТ_ДАТЫ

Ключевое слово НЕТ_ДАТЫ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Календарные константы


ОБОРОТЫ

ЦИКЛ ОБОРОТЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

ЦИКЛ ОБОРОТЫ применяется для осуществления цикла с перебором прямых или перекрестных оборотов счетов и аналитик, удовлетворяющих заданному шаблону. Цикл работает в паре с функциями пересчета оборотов (ОБД, ОБК и др.) и остатков (ОСД, ОСК и др.).

Синтаксис:

ЦИКЛ ОБОРОТЫ ( <код_счета1>[,<код_счета2>] = <шаблон1>[,<шаблон2>] [,<дата_нач>[,<дата_кон>]]),

где

<код_счета1>
переменная строкового типа, последовательно принимающая значение кодов счетов.

<код_счета2>
переменная строкового типа, последовательно принимающая значение кодов счетов.

<шаблон1>
шаблон счета

<шаблон2>
шаблон счета

<дата_нач>
дата начала отчетного периода, обороты которого будут перебираться, по умолчанию она равна дате начала текущего отчетного периода (ДАТА_НАЧ)

<дата_нач>
дата окончания отчетного периода, обороты которого будут перебираться, по умолчанию она равна дате окончания текущего отчетного периода (ДАТА_КОН)

Для перебора прямых оборотов используется одна итерационная переменная <код_счета1>, которая будет последовательно принимать коды счетов удовлетворяющих шаблону <шаблон1>. Перебору подлежат только счета конечного уровня, имеющие обороты в указанном отчетном периоде или остатки на начало или конец указанного отчетного периода.

Для перебора перекрестных оборотов используются обе итерационные переменные. Первая переменная <код_счета1> будет последовательно принимать коды счетов дебета, вторая переменная <код_счета2> будет последовательно принимать коды счетов кредита. Перебору подлежат только счета конечного уровня. Шаблон может быть один или два.

Если используется один шаблон (либо <шаблон2> равен пустой строке или "*"), перебору подлежат все пары дебета и кредита, где хотя бы один счет удовлетворяет шаблону <шаблон1> и имеющие обороты в указанном отчетном периоде. Например, если <шаблон1> = "01/*", под него попадут пары:

Д 02 К 01/1

Д 01/1 К 08

Д 01/ВОС Д 01/1

Если используются оба шаблона, перебору подлежат все пары дебета и кредита, один из которых (любой) удовлетворяет шаблону счета <шаблон1>, а другой шаблону <шаблон2> и имеющие обороты в указанном отчетном периоде. Например, если <шаблон1> = "01/*" и <шаблон2> = "01/*", под них попадут пары:

Д 01/ВОС Д 01/1

Пример 1:

// подсчет остатка на субсчетах счета 01 (то же самое делает ОСД("01"))

сумма_суб = 0

ЦИКЛ ОБОРОТЫ ( счет = "01/*" ) // цикл по всем субсчетам 01

сумма_суб = сумма_суб + ОСД( счет )

КОНЕЦ_ЦИКЛА

СООБЩЕНИЕ ( "Общая балансовая стоимость основных средств " + СТР (сумма_суб))

Пример 2:

// подсчет оборотов 02 и 01 - ого счета (то же самое делает ОБД("02","01"))

сумма_суб = 0

ЦИКЛ ОБОРОТЫ ( дебет, кредит = "01/*", "02/*") // цикл по проводкам Д01 К02 или Д02 К01

ЕСЛИ дебет = "01/*" И кредит = "02/*" ТО // выбираем только Д01 К02

сумма_суб = сумма_суб + ОБД( дебет, кредит )

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

СООБЩЕНИЕ ( "Начислено аммортизации " + СТР (сумма_суб))

Шаблон может задавать условия и на аналитики. Например, если 41 - счет последнего уровня, то шаблон "41/*" определяет условия на аналитики. В этом случае ЦИКЛ ОБОРОТЫ проходит по кодам первого по списку аналитического признака, имеющем ненулевые обороты в указанном отчетном периоде или остатки на начало или конец указанного отчетного периода. Для того чтобы переставить аналитики местами и выбирать по порядку другой аналитический признак можно воспользоваться функцией МАСКА_СУБСЧЕТОВ.

См. также
ЦИКЛ СЧЕТА
ОБОРОТЫ_УСЛОВИЕ


ОБЪЕКТ

Ключевое слово ОБЪЕКТ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Тип объекта Объект.


ОПЕРАЦИЯ

Ключевое слово ОПЕРАЦИЯ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ОПЕРАЦИЯ указывает на начало описания типовой операции. Это слово должно быть первым в строке (не обязательно с первой позиции).

Синтаксис:

ОПЕРАЦИЯ [ЖУРНАЛА] <название раздела> : <название операции>

За словом ОПЕРАЦИЯ может следовать слово ЖУРНАЛА, которое означает, что данная операция будет предлагаться пользователю при добавлении новой бухгалтерской операции в журнале.

Пример:

ОПЕРАЦИЯ Пример : вычисление

Сумма : &сумма&&&&&

ВЫЧИСЛИТЬ

ВВЕСТИ

СуммаНДС = сумма*НДС / ( 100 + НДС ) // Значение НДС взято из определений

СООБЩЕНИЕ ( "Сумма НДС="+СТР ( СуммаНДС ) )

КОНЕЦ

См. также
Структура библиотеки типовых операций
Ключевое слово КОНЕЦ
Ключевое слово ДИАЛОГ


ПЕРЕД

Ключевое слово ПЕРЕД

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ПЕРЕД определяет модификатор вызова исходной функции. Функция с указанным модификатором во всех алгоритмах будет автоматически вызываться перед исходной.

См. также
Ключевое слово ФУНКЦИЯ


ПЕРЕМ

Ключевое слово ПЕРЕМ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ПЕРЕМ используется в трех случаях:

1.Для объявления локальной переменной;

2.Для задания общей или глобальной переменной в библиотеке, бланке или отчете;

3.Для обозначения группы параметров-переменных в описании параметров библиотечной функции или диалога.

Синтаксис I:

ПЕРЕМ <тип> : <имя переменной>

где

<имя переменной>
идентификатор, определяющий имя переменной

<тип>
тип переменной

Синтаксис II:

ПЕРЕМ <имя переменной> = <значение>

где

<имя переменной>
идентификатор, определяющий имя переменной

<значение>
значение, которое присваивается переменной при запуске

См. также
Ключевое слово ИСПОЛЬЗОВАТЬ
Ключевое слово ФУНКЦИЯ
Ключевое слово ДИАЛОГ


ПЕРЕМЕННЫЕ

ЦИКЛ ПЕРЕМЕННЫЕ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

С помощью конструкции ЦИКЛ ПЕРЕМЕННЫЕ можно пробежаться по всем локальным и общим переменным алгоритма.

Синтаксис:

ЦИКЛ ПЕРЕМЕННЫЕ (<имя> [ ,<значение>] = <маска>),

где

<имя>
управляющая переменная строкового типа, в которую заносятся имена переменных при каждой итерации;

<значение>
необязательная управляющая переменная, принимающая последовательно значения переменных;

<маска>
позволяет при необходимости выбирать не все переменные, а только те, имена которых удовлетворяют маске.

Переменные объектного типа и массивы циклом игнорируются.

При использовании цикла внутри функции, он перебирает не только локальные переменные функции и общие переменные, но и локальные переменные алгоритма, вызвавшего ее. А при вызове функции из другой функции и локальные переменные алгоритма вызвавшего ту функцию и т.д.

Эта функция может быть использована при отладке алгоритмов, либо для решения специфических задач.

Пример:

// Выведем список всех используемых в алгоритме переменных

ЦИКЛ ПЕРЕМЕННЫЕ (имя = "*")

ОТЛАДКА(имя)

КОНЕЦ_ЦИКЛА

См.также
Как убрать вывод предупреждения


ПО ЖУРНАЛУ

ЦИКЛ ПО ЖУРНАЛУ

Ключевые слова и функции от А до Я Ключевые слова по группам см.также

 Вернуться к началу раздела

Описание:

ЦИКЛ ПО ЖУРНАЛУ применяется для выборки произвольной информации из журналов и является по существу основным механизмом работы с журналами аналитики. С помощью него можно выбирать записи из одного или нескольких журналов, удовлетворяющих совокупным условиям на поля журналов, группировать записи с подсчетом выражений и функций как по каждой группе, так и по всему журналу в целом.

Синтаксис:

ЦИКЛ ПО [ЖУРНАЛУ] | ВЫБРАТЬ [!] [УНИК] [ПРОПУСК <количество>] [ВИДИМЫЕ] [ВЛОЖ]

<выбираемое значение> [<результат>]

[<тип связки>] <выбираемое значение> [<результат>]] [ |<условие связки>| ]

[...]

[(<условие на поля журналов>[,<фильтр журнала>[,...]][<игнорировать фильтр>])]

[СОРТИРОВАТЬ (<порядок сортировки>)]

[ПЛАН (<план запроса>)]

// Тело цикла

КОНЕЦ_ЦИКЛА

<выбираемое значение> :=

<идентификатор журнала>[<модификатор выборки>] |

<выражение> |

<агрегатная функция>

<модификатор выборки> := ! | [<список полей>] | [*]

<выражение> := выражение цикла, содержащее помимо идентификаторов, доступных обычным

выражениям, поля выбираемых журналов, функции сервера и подзапросы

<условие на поля журналов> := <простое условие> |

СУЩ (<подзапрос>) |

ЕДИНСТВЕННО (<подзапрос>) |

<выражение> ИЗ <подзапрос> |
<выражение> <оператор сравнения> ЛЮБОЕ <подзапрос> |
<выражение> <оператор сравнения> КАКОЕ_ТО <подзапрос>

<простое условие> := выражение цикла логического типа, cодержащее помимо идентификаторов,

доступных обычным выражениям, поля выбираемых журналов, функции сервера и подзапросы

<подзапрос> := ВЫБРАТЬ <выражение> | <агрегатная функция>

[(<условие на поля журналов>)]

<агрегатная функция> := CУММА | МИН | МАКС | СРЕДНЕЕ | СПИСОК | ВСЕГО |
Статистическая функция | Функция линейной регрессии [ | <дополнительное условие> | ]

<результат> := простая переменная, в которую помещается результат вычисления выражения

или агрегатной функции или переменная типа ЖУРНАЛ построенная по

соответствующему идентификатору журнала. В последнем случае она может опускаться

<тип связки> := , | >> | <<

<порядок сортировки> := список полей или результатов вычисления выражений

Ключевое слово ЖУРНАЛУ является необязательным.

См.также
Выражения в цикле
Функции сервера
Подзапросы
Фильтры
Оператор ":"
Журналы-процедуры в цикле
Условия связи
Тип связки
Модификаторы выборки
Сортировка записей
Особенности работы со счетами и статьями
Связь бухгалтерских операций и документов
Загрузка и сохранение полей записи в полях объекта
Объект КУРСОР
План запроса

Примеры: выборка из одного журнала
Примеры: выбор выражений
Примеры: выборка из двух связанных журналов
Примеры: вычисление агрегатных функций
Примеры: использование фильтров в условии
Функция ВЫРАЖЕНИЕ в условии запроса


ПО ЖУРНАЛУ (Связь бухгалтерских операций и документов в ЦИКЛе)

Связь бухгалтерских операций и документов в ЦИКЛе ПО ЖУРНАЛУ

В ЦИКЛе ПО ЖУРНАЛУ можно задавать условия связи бухгалтерских операций и документов. Это делается с помощью специального синтаксиса, действующего только для журнала бухоперации:

бухоперации:<идентификатор журнала> [<результат_бух>] [: <результат>]

Здесь

<идентификатор журнала>
задает журнал, для которого будет добавлено условие связи

<результат_бух>
задает переменную типа ЖУРНАЛ(бухоперации), в которую помещается считанная бухгалтерская операция

<результат>
задает переменную типа ЖУРНАЛ(<идентификатор журнала>), в которую считывается связанный документ.

Примеры

Следующий цикл пробежится по всем бухгалтерским операциям, связанным с журналом накладные:

ЦИКЛ ПО ЖУРНАЛУ бухоперации:накладные б (ДА)

ОТЛАДКА(б.название)

КОНЕЦ_ЦИКЛА

Следующий цикл пробежится по всем накладным, проведенным в бухгалтерии:

ЦИКЛ ПО ЖУРНАЛУ бухоперации:накладные :н (ДА)

ОТЛАДКА(н.номер)

КОНЕЦ_ЦИКЛА

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

ЦИКЛ ПО ЖУРНАЛУ бухпроводки п, бухоперации:накладные (накладные.номер = "001")

ОТЛАДКА(п.дебет + "<->" + п.кредит)

КОНЕЦ_ЦИКЛА

См.также
Обработчик Проводки
Метод ПРОВЕСТИ


ПОКА

ЦИКЛ ПОКА

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

ЦИКЛ ПОКА позволяет осуществить цикл, продолжающийся, пока выполняется заданное условие.

Синтаксис:

ЦИКЛ ПОКА (<условие>),

где

<условие>
выражение логического типа.

Пример:

// Формируем условие по маске шаблон_групп

гр ЭТО группы

фильтр_гр ЭТО товары.ФИЛЬТР

и = 1

тек = СЛОВО!(1,шаблон_групп,";")

ЦИКЛ ПОКА (тек <> "") // Пока шаблон не кончится

ЕСЛИ гр.НАЙТИ(название = тек) ТО // Ищем группу по ее названию

фильтр_гр.УСЛОВИЕ(фильтр_гр ИЛИ группа_ид = гр.ид)

ИНАЧЕ

СООБЩЕНИЕ("Группа " + тек + " не найдена")

КОНЕЦ_ЕСЛИ

и++ // Перейдем к обработке следующей группы

тек = СЛОВО!(и,шаблон_групп,";")

КОНЕЦ_ЦИКЛА


ПОКА

Ключевое слово ПОКА

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Смотрите Ключевое слово ЦИКЛ ПОКА


ПОЛЯ

ЦИКЛ ПОЛЯ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

С помощью конструкции ЦИКЛ ПОЛЯ можно пробежаться по всем дополнительным полям записи журнала.

Синтаксис:

ЦИКЛ ПОЛЯ [<объект>] (<имя> [ ,<значение>] = <маска>),

где

<объект>
переменная типа ЖУРНАЛ, по дополнительным полям которой надо пробежаться; может не указываться при вызове внутри метода.

<имя>
управляющая переменная строкового типа, в которую заносятся имена дополнительных полей при каждой итерации;

<значение>
необязательная управляющая переменная, принимающая последовательно значения дополнительных полей (их также можно получить по имени поля с помощью метода ПОЛЕ);

<маска>
позволяет при необходимости выбирать не все поля, а только те, имена которых удовлетворяют маске.

Позволяет пробежаться по дополнительным полям записи журнала. Для доступа к дополнительным полям необходимо в параметрах журнала включить опцию Доступны дополнительные поля.

Пример:

// Выведем список всех дополнительных полей записи "оборудование"

ЦИКЛ ПОЛЯ оборудование (имя = "*")

ОТЛАДКА(имя, оборудование.ПОЛЕ(имя))

КОНЕЦ_ЦИКЛА

См.также
ПОЛЕ
ЗАП_ПОЛЕ


ПОПЫТКА

Ключевое слово ПОПЫТКА

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Для обработки ошибок, возникающих во время выполнения алгоритма предназначена специальная конструкция. С помощью нее можно решить две задачи:

·вместо выдачи сообщения об ошибки и прекращения выполнения алгоритма выполнять определенные инструкции

·описать инструкции, которые выполняются гарантированно при завершении работы алгоритма (любым способом, в том числе и по ошибке)

Синтаксис:

ПОПЫТКА

<действие 1>;

[ <действие 2> [ ... ] ]

ИСКЛЮЧЕНИЕ

<действие 1>;

[ <действие 2> [ ... ] ]

ЗАВЕРШЕНИЕ

<действие 1>;

[ <действие 2> [ ... ] ]

КОНЕЦ_ПОПЫТКИ

Одна из секций ИСКЛЮЧЕНИЕ или ЗАВЕРШЕНИЕ может отсутствовать.

Замечание!

Секция ЗАВЕРШЕНИЕ не может гарантировать выполнение при работе с данными, например, в случае, если в момент начала выполнения секции соединение с сервером будет потеряно. Такие гарантии могут дать только транзaкции.

Узнать, что за ошибк произошла в секции ИСКЛЮЧЕНИЕ можно с помощью свойства ОШИБКА. Бывает так, что поняв, какая ошибка произошла внутри секции ИСКЛЮЧЕНИЕ, надо не продолжить выполнение алгоритма а прервать его работу с выдачей сообщения об ошибке. Для таких целей используется свойство ОШИБКА, которое при присвоении ему значения генерит текст ошибки.

Пример:

// Функция УДАЛИТЬ_СЧЕТ_ПРОВ в отличие от функции УДАЛИТЬ_СЧЕТ не выдает ошибки

// при невозможности удалить счет

ФУНКЦИЯ ЛОГИКА: УДАЛИТЬ_СЧЕТ_ПРОВ(СТРОКА: счет)

ПОПЫТКА

УДАЛИТЬ_СЧЕТ(счет, НЕТ)

УДАЛИТЬ_СЧЕТ_ПРОВ = ДА

ИСКЛЮЧЕНИЕ

УДАЛИТЬ_СЧЕТ_ПРОВ = НЕТ

КОНЕЦ_ПОПЫТКИ

КОНЕЦ_ФУНКЦИИ

// Операция демонстрирует работу секции ЗАВЕРШЕНИЕ

ОПЕРАЦИЯ Тест

ВЫЧИСЛИТЬ

СООБЩЕНИЕ("Старт операции")

ПОПЫТКА

СООБЩЕНИЕ("Делаем какие-то расчеты")

СТОП_ВСЕ // Принудительно завершаем работу алгоритма

СООБЩЕНИЕ("Эта строка никогда не выполнится")

ЗАВЕРШЕНИЕ

СООБЩЕНИЕ("А эта выполнится всегда")

КОНЕЦ_ПОПЫТКИ

КОНЕЦ

// Операция выводит нечетные числа в диапазоне от 1 до 10

ОПЕРАЦИЯ Тест

ВЫЧИСЛИТЬ

и = 1

ЦИКЛ ПОКА (и < 10)

ПОПЫТКА

ЕСЛИ ОСТ(и,2) = 0 ТО

// ПРОДОЛЖИТЬ переходит к следующей итерации цикла

// однако перед этим будет выполнена часть кода из секции ЗАВЕРШЕНИЕ

ПРОДОЛЖИТЬ

КОНЕЦ_ЕСЛИ

ОТЛАДКА(и)

ЗАВЕРШЕНИЕ

// Даже если будет выполнено ПРОДОЛЖИТЬ, то эта строка

// все равно выполнится, т.к. она находится в секции ЗАВЕРШЕНИЕ и

// обязательна к исполнению

и++

КОНЕЦ_ПОПЫТКИ

КОНЕЦ_ЦИКЛА

КОНЕЦ

См.также
Свойство ОШИБКА


ПОСЛЕ

Ключевое слово ПОСЛЕ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ПОСЛЕ определяет модификатор вызова исходной функции. Функция с указанным модификатором во всех алгоритмах будет автоматически вызываться после исходной.

См. также
Ключевое слово ФУНКЦИЯ


ПРЕДЫДУЩАЯ

Ключевое слово ПРЕДЫДУЩАЯ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ПРЕДЫДУЩАЯ в диалогах запущенных с помощью МАСТЕР указывает на начало секции перехода к предыдущей закладке — алгоритма, срабатывающего в случае, когда пользователь нажал <Назад> в окне мастера. Это слово должно быть первым в строке (не обязательно с первой позиции).

Синтаксис:

ПРЕДЫДУЩАЯ

Ключевое слово ПРЕДЫДУЩАЯ идет за описателями полей ввода перед ВЫЧИСЛИТЬ.

Внутри секции может использоваться свойство ЗАКЛАДКА для управления закладками пошагового диалога (мастера).

См. также
Ключевое слово СЛЕДУЮЩАЯ


ПРОВЕРКА

Ключевое слово ПРОВЕРКА

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ПРОВЕРКА в диалогах, типовых операциях и бланках указывает на начало секции проверки — алгоритма, который срабатывает при нажатии пользователем кнопки <OK> (а в бланках при запуске основного расчета), а в диалогах, имеющих закладки, при переходе с одной закладки на другую (за исключением пошагового диалога, в котором есть секции СЛЕДУЮЩАЯ и ПРЕДЫДУЩАЯ).

Синтаксис:

ПРОВЕРКА

Ключевое слово ПРОВЕРКА идет сразу за описателями полей ввода перед ВЫЧИСЛИТЬ.

С помощью логической переменной РЕЗУЛЬТАТ секция сообщает об успешности проверки (соответственно, ).

Внимание!

Внутри секции ПРОВЕРКА не доступно изменение результата выполнения диалога с помощью всё той же переменной РЕЗУЛЬТАТ. Другими словами, переменная РЕЗУЛЬТАТ внутри секция ПРОВЕРКА и переменная РЕЗУЛЬТАТ в других секциях диалога или расчетной части — разные переменные.

Внутри секции можно использовать СТОП_ВСЕ, она в этом случае завершает работу не только секции изменения но и всего алгоритма. Использование ВЫХОД приводит к завершению работы диалога с результатом, который ранее был присвоен при выполнении других секций диалога или расчетной части.

Пример:

// Диалог запрашивает у пользователя строку и требует, чтобы что-то обязательно написали

ДИАЛОГ Название(ПЕРЕМ СТРОКА: с)
*?с:50
ПРОВЕРКА
РЕЗУЛЬТАТ = ДА
ЕСЛИ УБР_ПРОБ(с) = "" ТО
СООБЩЕНИЕ("Укажите название")
ФОКУС(с)
РЕЗУЛЬТАТ = НЕТ
КОНЕЦ_ЕСЛИ
КОНЕЦ_ДИАЛОГА

См. также
Форматы ввода и вывода
Ключевое слово ДИАЛОГ


ПРОДОЛЖИТЬ

Ключевое слово ПРОДОЛЖИТЬ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ПРОДОЛЖИТЬ используется в итерации цикла и означает переход к следующей итерации. При этом происходит изменение счетчика или итерационной переменной как если бы цикл дошел до конца.

Синтаксис:

ПРОДОЛЖИТЬ

Пример:

и = 1

ЦИКЛ ДЛЯ (и = 1, 100)

ЕСЛИ и < 10 ТО ПРОДОЛЖИТЬ КОНЕЦ_ЕСЛИ

СООБЩЕНИЕ("10 = " + СТР (и))

СТОП

КОНЕЦ_ЦИКЛА

См.также
СТОП


ПУСТО

Ключевое слово ПУСТО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

См. также
Специальная константа ПУСТО


РЕЗУЛЬТАТ

Ключевое слово РЕЗУЛЬТАТ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово РЕЗУЛЬТАТ является локальной переменной, существующей внутри любой библиотечной функции, возвращающей результат. Переменная имеет тип, совпадающий с типом функции. С помощью этой переменной можно управлять результатом вычисления функции. Чтение значения из переменной является не рекурсивным вызовом данной функции, а чтением возвращаемого параметра.

Пример:

ФУНКЦИЯ СТРОКА : Слово

Слово = "Инфо" // Присваиваем возвращаемый результат

РЕЗУЛЬТАТ = РЕЗУЛЬТАТ + "-" + "Предприятие"

// Изменяем возвращаемый результат

КОНЕЦ_ФУНКЦИИ

См.также
ВЫХОД


СВОЕ

Ключевое слово СВОЕ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово СВОЕ является локальной переменной, существующей внутри любой метода объекта или диалогового метода. Переменная имеет объектный тип, совпадающий с типом объектом метода.

Пример:

ФУНКЦИЯ ЖУРНАЛ(клиенты) СТРОКА: Название

ВЫБРАТЬ клиенты.название РЕЗУЛЬТАТ (код = СВОЕ.код)

// В этом примере код - поле журнала из цикла, на которое накладывается условие

// СВОЕ.код - поле метода. Если написать просто код, программа не поймет что

// это поле текущего метода

КОНЕЦ_ФУНКЦИИ

См.также
РЕЗУЛЬТАТ


СЕКЦИЯ

Ключевое слово СЕКЦИЯ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Тип объекта Секция.


СЛЕДУЮЩАЯ

Ключевое слово СЛЕДУЮЩАЯ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово СЛЕДУЮЩАЯ в диалогах запущенных с помощью МАСТЕР указывает на начало секции перехода к следующей закладке — алгоритма, срабатывающего в случае, когда пользователь нажал <Далее> в окне мастера. Это слово должно быть первым в строке (не обязательно с первой позиции).

Синтаксис:

СЛЕДУЮЩАЯ

Ключевое слово СЛЕДУЮЩАЯ идет за описателями полей ввода перед ВЫЧИСЛИТЬ.

Внутри секции может использоваться свойство ЗАКЛАДКА для управления закладками пошагового диалога (мастера).

См. также
Ключевое слово ПРЕДЫДУЩАЯ


СЛОВА

ЦИКЛ СЛОВА

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

ЦИКЛ СЛОВА применяется для осуществления цикла с перебором всех слов строки.

Синтаксис:

ЦИКЛ СЛОВА[!] ( <слово> = <строка> [,<разделители>] ),

где

<слово>
строковая переменная, в которую последовательно помещаются слова из строки;

<строка>
исходная строка, которую надо разбить на слова;

<разделители>
строка, состоящая из символов-разделителей слов;

Если не задан параметр <разделители>, используются разделители по умолчанию символы: " " (пробел), "," (запятая), ";" (точка с запятой), "." (точка) и РР. Это равносильно тому, что строка разделители была бы равна " ,.;" + РР.

Замечание2

Модификация ЦИКЛ СЛОВА! (с восклицательным знаком) принимает в расчет и пустые слова.

Пример:

стр = "Во дворе трава, на траве дрова"

ЦИКЛ СЛОВА (слово = стр)

СООБЩЕНИЕ(слово)

КОНЕЦ_ЦИКЛА

См. также
Функция ВСЕГО_СЛОВ
Функция СЛОВО
Функция СЛОВА


СОРТИРОВАТЬ

Ключевое слово СОРТИРОВАТЬ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

В случае если необходимо, чтобы ЦИКЛ ПО ЖУРНАЛУ проходил по журналу в определенном порядке следования записей, применяется ключевое слово СОРТИРОВАТЬ. Его необходимо писать сразу после определения условия цикла. В сортировке могут участвовать любые поля любых журналов, результаты вычисления выражений и агрегатных функций или сами выражения и вызовы агрегатных функции. Кол-во условий сортировки не ограничено.

Синтаксис:

СОРТИРОВАТЬ (<условие 1>[:<возрастание/убывание>] [:<пустые в начале/в конце>],...)

где

<условие>
поле журнала, результат вычисления выражения или агрегатной функции, выражение или вызов агрегатной функции

<возрастание/убывание>
выражение логического типа, определяющее тип сортировки, если ДА, то сортировка по возрастанию, если НЕТ — по убыванию Если не указано, то сортируется по возрастанию

<пустые в начале/в конце>
выражение логического типа, определяющее как будут сортироваться значения ПУСТО; если ДА, то пустые значения будут вначале, если НЕТ, то пустые значения будут в конце; если параметр не указан, то при сортировке по убыванию пустые значения будут в конце, а при сортировке по возрастанию пустые значения будут вначале;

Пример 1.

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные н (дата > ДАТА_НАЧ И дата < ДАТА_КОН)

СОРТИРОВАТЬ(дата, номер)

ВЫВЕСТИ(1,и, "Накладная " + н.дата + " от " + ДАТАП(н.дата))

КОНЕЦ_ЦИКЛА

Цикл будет проходить накладные в порядке возрастания их дат. Если даты накладных повторяются, они будут идти в порядке возрастания номеров.

Пример 2.

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные н, СУММА(накладные_доп.цена * накладные_доп.колич) сумма

(дата > ДАТА_НАЧ И дата < ДАТА_КОН)

СОРТИРОВАТЬ(сумма:НЕТ)

ВЫВЕСТИ(1,и, "Накладная " + н.дата + " от " + ДАТАП(н.дата))

КОНЕЦ_ЦИКЛА

Цикл будет проходить накладные по убыванию их сумм. Сначала будут накладные с самой большой суммой. Абсолютно такой же результат даст сортировка:

СОРТИРОВАТЬ(СУММА(накладные_доп.цена * накладные_доп.колич):НЕТ)

Пример 3.

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные н (дата > ДАТА_НАЧ И дата < ДАТА_КОН)

СОРТИРОВАТЬ(клиенты.долг)

ВЫВЕСТИ(1,и, "Накладная " + н.дата + " от " + ДАТАП(н.дата))

КОНЕЦ_ЦИКЛА

Цикл будет проходить накладные по возрастанию задолжности покупателей.

Так же как и в условии цикла, если у журналов есть поля с общими идентификаторами и эти поля входят в список сортировки, то программа сообщит об ошибке — необходимо конкретизировать с каким полем, какого журнала нужно работать. Это также делается при помощи конструкции <переменная-итератор>.<поле> или <идентификатор журнала>.<поле>.

При использовании агрегатных функций поле, по которому идет сортировка должно быть среди выбираемых значений, для которых функция вычисляется, иначе будет выдано сообщение об ошибке.

Пример 4.

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные[*] н, клиенты к (дата > ДАТА_НАЧ И дата < ДАТА_КОН)

СОРТИРОВАТЬ(МАКС(ВЫБРАТЬ СУММА(накладные_доп.цена * накладные_доп.колич)

(накладные_доп.идлинк = н.ид)):НЕТ)

ВЫВЕСТИ(1,и, "Накладная " + н.дата + " от " + ДАТАП(н.дата))

КОНЕЦ_ЦИКЛА

Цикл пробегается по журналу клиентов (по журналу накладные он не пробегается, т.к. у него стоит соответствующий модификатор выборки, а выборка в переменную н нужна только для того, чтобы обратиться к нему в подзапросе) в порядке убывания максимальной суммы накладной.

Сортировка записей может меняться в процессе расчета алгоритма. Для этого можно воспользоваться объектом ФИЛЬТР и его методом СОРТИРОВАТЬ. Например, так:

и=1

ф = накладные.ФИЛЬТР

ЕСЛИ ВОПРОС ("Сортировать по датам ") ТО

ф.СОРТИРОВКА(дата)

КОНЕЦ_ЕСЛИ

ЦИКЛ ПО ЖУРНАЛУ накладные н (дата > ДАТА_НАЧ И дата < ДАТА_КОН И ф)

ВЫВЕСТИ(1,и, "Накладная " + н.дата + " от " + ДАТАП(н.дата))

КОНЕЦ_ЦИКЛА

Приоритет в порядке сортировки имеет сортировка, указанная в цикле непосредственно, далее идут сортировки фильтров в порядке их использования в цикле. При использовании агрегатных функций сортировка в фильтре может раcпространяться только на выбираемые поля журналов.


СТАТЬИ

ЦИКЛ СТАТЬИ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

ЦИКЛ СТАТЬИ применяется для осуществления цикла с перебором всех статьей налогового учета, удовлетворяющих заданному шаблону.

Синтаксис:

ЦИКЛ СТАТЬИ ( <код_статьи> = <шаблон> [,<уровень>]),

где

<код_статьи>
переменная строкового типа, последовательно принимающая значение кодов статей, удовлетворяющих шаблону.

<шаблон1>
шаблон статей

<уровень>
необязательный параметр, указывающий максимальный уровень субстатей, который должен перебирать цикл.

Пример:

// подсчет количества субсчетов последнего уровня к счету 01

и = 1

ЦИКЛ СТАТЬИ ( статья = "МР/*;ПР/*;ОТ/*" ) // цикл с перебором статей

ВЫВЕСТИ (2, и, СТАТЬЯ(статья), 60)

ВЫВЕСТИ (62, и, ОБНУ(статья))

и++

КОНЕЦ_ЦИКЛА

См. также
ЦИКЛ СЧЕТА


СТОП

Ключевое слово СТОП

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово СТОП досрочно прекращает выполнения цикла.

Синтаксис:

СТОП

Пример:

и=1

ЦИКЛ СЧЕТА ( сч="70/*" )

// ...

ЕСЛИ и => 20 ТО // Обрабатываются первые 20 счетов заданного шаблона

СТОП

КОНЕЦ_ЕСЛИ

и = и + 1

КОНЕЦ_ЦИКЛА

См.также
ПРОДОЛЖИТЬ


СТОП_ВСЕ

Ключевое слово СТОП_ВСЕ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово СТОП_ВСЕ останавливает расчет алгоритма вне зависимости от того, на каком уровне вложенности цикла или функции находятся вычисления.

Замечание!

Если в бланке без вводных граф вызывается СТОП_ВСЕ, то он не будет отображен после завершения расчета.

Синтаксис (простой):

СТОП_ВСЕ

Синтаксис (с параметрами):

СТОП_ВСЕ ( [<сообщение>] [, <откат>] )

где

<сообщение>
строка, задает сообщение об ошибке, которое появится перед завершением работы;

<откат>
логика — флаг необходимости откатить транзакцию (вызвать ОТМЕНИТЬ)

Вместе с завершением алгоритма можно вывести сообщение об ошибке и откатить транзакцию. Для этого надо воспользоваться соответствующими параметрами.

См. также
Ключевое слово СТОП
Ключевое слово ВЫХОД


СТРОКА

Ключевое слово СТРОКА

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Смотрите
Символьный тип


СЧЕТА

ЦИКЛ СЧЕТА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

ЦИКЛ СЧЕТА применяется для осуществления цикла с перебором всех счетов и аналитик, удовлетворяющих заданному шаблону.

Синтаксис:

ЦИКЛ СЧЕТА ( <код_счета> = <шаблон> [,<уровень> [,<без аналитики> [,<группировать аналитики>] ] ]),

где

<код_счета>
переменная строкового типа, последовательно принимающая значение кодов счетов, удовлетворяющих шаблону.

<шаблон>
шаблон для счета

<уровень>
необязательный параметр, указывает максимальный уровень субсчетов (план счетов, функция СУБСЧЕТ), который должен перебирать цикл.

Шаблон может задавать условия и на аналитики. Например, если 41 - счет последнего уровня, то шаблон "41/*" определяет условия на аналитики. В этом случае ЦИКЛ СЧЕТА проходит по кодам первого по списку аналитического признака. Для того чтобы переставить аналитики местами и выбирать по порядку другой аналитический признак можно воспользоваться функцией МАСКА_СУБСЧЕТОВ. Параметр <уровень> при таком синтаксисе не используется. Следующие специфические параметры являются необязательными и могут пригодиться когда цикл проходит по аналитикам:

<без аналитики>
при проходе по аналитикам, заставляет цикл проходит на одну итерацию больше с <код_счета> = коду счета без указания аналитик. В текущей версии этот параметр не имеет практического использования.

<группировать аналитики>
если аналитический справочник имеет вид дерева, цикл будет проходить не по всем аналитикам, а только по группам.

Пример:

// подсчет количества субсчетов последнего уровня к счету 01

кол_суб = 0

ЦИКЛ СЧЕТА ( счет = "01/*" ) // цикл по всем субсчетам

ЕСЛИ НЕ ЕСТЬ_СУБСЧ ( счет ) ТО

кол_суб = кол_суб + 1

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

СООБЩЕНИЕ ( "Всего на балансе " + СТР ( кол_суб ) + " основных средств" )

См. также
ЦИКЛ ОБОРОТЫ


ТО

Ключевое слово ТО

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Ключевое слово ТО является составной частью условного оператора ЕСЛИ и используется для обозначения начала ветви, выполняемой при истинном значении условия.

Использование ключевого слова ТО не обязательно, но повышает наглядность кода программы.

Синтаксис:

ТО

См. также
Ключевое слово ЕСЛИ


ТРАНЗАКЦИЯ

Ключевое слово ТРАНЗАКЦИЯ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Описание:

Все операции, выполняемые алгоритмом над данными, выполняются в одной транзaкции. В зависимости от успешности работы алгоритма, транзaкция подтверждается или отменяется.

Ключевое слово ТРАНЗАКЦИЯ создает новую транзакцию. И все операции, выполняемые алгоритмом внутри блока, будут выполняться в этой транзакции. Когда выполнение алгоритма доходит до КОНЕЦ_ТРАНЗАКЦИИ все действия подтверждаются (или отменяются, если произошла ошибка внутри блока) и дальнейшие действия уже выполняются в исходной транзакции.

Синтаксис:

ТРАНЗАКЦИЯ [(<тип> )]

<действие 1>;

[ <действие 2> [ ... ] ]

КОНЕЦ_ТРАНЗАКЦИИ

где

<тип>
можно задать тип транзaкции;

Тип транзaкции влияет на то, какие данные будут доступны внутри алгоритма. Он может принимать следующие значения

·трЧитатьПодтвержденные — внутри алгоритма будут видны изменения, подтвержденные другими пользователями на момент обращения к данным. Этот тип используется по умолчанию.

·трСнимок — алгоритм будет учитывать только те данные, которые были на момент его запуска. Все изменения, внесенные в базу данных другими пользователями уже после его запуска, видны не будут. Такой режим работы равносилен тому, как если бы база данных была скопирована на локальный компьютер в момент начала работы алгоритма и вся последующая работа выполнялась в монопольном режиме.

Если тип транзaкции не указан, то он принимает значение трЧитатьПодтвержденные.

Замечание

Если в базу данных вносились изменения перед вызовом конструкции ТРАНЗАКЦИЯ, то они внутри блока ТРАНЗАКЦИЯ не будут видны. Это связано с тем, что исходная транзакция еще не завершила свою работу (не было ее подтверждения).

Примеры:

ТРАНЗАКЦИЯ
лог.текст = "Непредвиденная ошибка"

лог.ДОБАВИТЬ
КОНЕЦ_ТРАНЗАКЦИИ

См.также
ПОДТВЕРДИТЬ
ОТМЕНИТЬ


ФАЙЛ

Ключевое слово ФАЙЛ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Тип объекта Файл.


ФИЛЬТР

Ключевое слово ФИЛЬТР

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Тип объекта Фильтр.
Метод ФИЛЬТР объекта ЖУРНАЛ


ФУНКЦИЯ

Ключевое слово ФУНКЦИЯ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ФУНКЦИЯ указывает на начало описания библиотечной функции или метода объекта.

Синтаксис (функция):

ФУНКЦИЯ [<модификатор>] [<тип результата>] <имя функции> [ ( параметры ) ]

где

<модификатор>
ключевое слово, определяющее модификатор вызова

<тип результата>
ключевое слово, определяющее тип возвращаемого результата для функции

<имя функции>
идентификатор, определяющий имя функции

Синтаксис (метод объекта):

ФУНКЦИЯ [<модификатор>] <имя объекта> [(<идентификатор>)] [<тип результата>]

<имя метода> [ ( <описание параметров> ) ]

где

<модификатор>
ключевое слово, определяющее модификатор вызова

<имя объекта>
ключевое слово, определяющее тип объекта

<идентификатор>
идентификатор журнала для объектов ЖУРНАЛ и ФИЛЬТР.

<тип результата>
ключевое слово, определяющее тип возвращаемого результата для метода

<имя метода>
идентификатор, определяющий имя метода объекта

Пример:

ФУНКЦИЯ Скобки ( ПЕРЕМ СТРОКА : Строка )

Строка = "("+Строка+")" // изменение переменной Строка

КОНЕЦ_ФУНКЦИИ

См. также
Ключевое слово ИСПОЛЬЗОВАТЬ
Ключевое слово КОНЕЦ_ФУНКЦИИ


ЦИКЛ

Ключевое слово ЦИКЛ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ЦИКЛ входит в конструкции, осуществляющие циклические вычисления (обработка журналов, таблиц и т.п.). В программе предусмотрены следующие типы циклов:

ЦИКЛ ДЛЯ | цикл с перебором всех значений в заданном диапазоне, цикл с перебором элементов массива;
ЦИКЛ ПОКА | цикл, продолжающийся до тех пор, пока выполняется некоторое условие;
ЦИКЛ СЛОВА | цикл с перебором всех слов строки;
ЦИКЛ СЧЕТА | цикл с перебором всех счетов, подходящих к заданному шаблону;
ЦИКЛ ОБОРОТЫ | цикл с перебором прямых или перекрестных оборотов счетов;
ЦИКЛ СТАТЬИ | цикл с перебором всех статей, подходящих к заданному шаблону;
ЦИКЛ ПО ЖУРНАЛУ | цикл с перебором записей в одном или нескольких журналах;
ЦИКЛ ИЗ_ЖУРНАЛА | цикл с перебором выделенных в редакторе журнала записей;
ЦИКЛ ИЗ_ЯЧЕЙКИ | цикл с перебором выделенных в отчете ячеек;
ЦИКЛ ФАЙЛЫ | цикл с перебором файлов по шаблону
ЦИКЛ ПЕРЕМЕННЫЕ | цикл с перебором всех переменных алгоритма
ЦИКЛ ДЕТАЛИ | цикл по детализации записи журнала
ЦИКЛ ПОЛЯ | цикл с перебором дополнительных полей записи журнала
ЦИКЛ ЯЧЕЙКИ ЦИКЛ ЯЧЕЙКИВ | циклы с перебором ячеек отчета.

Общий вид циклического блока:

ЦИКЛ <тип цикла> ( <параметры цикла> )

// ...

// <действия>

// ...

КОНЕЦ_ЦИКЛА

Циклы могут иметь неограниченную вложенность. Для прекращения цикла до наступления основного условия прекращения цикла, можно использовать ключевое слово СТОП. Для перехода к следующей итерации цикла можно использовать ключевое слово ПРОДОЛЖИТЬ.

Примеры:

ЦИКЛ ДЛЯ (и=1,12)

месяцы[и] = МЕСП(и)

КОНЕЦ_ЦИКЛА

ЦИКЛ ДЛЯ (м ИЗ месяцы)

ЯЧЕЙКА["Месяцы", ЗНАЧ(м)] = месяцы[ЗНАЧ(м)]

КОНЕЦ_ЦИКЛА

ЦИКЛ ЯЧЕЙКИВ (яч = "*")

ЯЧЕЙКА["Оборот", яч] = ОБК("50", ДАТА(1,яч,ГОД), ДАТА(1,яч + 1,ГОД))

КОНЕЦ_ЦИКЛА


ЦИКЛ ФАЙЛЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

ЦИКЛ ФАЙЛЫ применяется для организации цикла с перебором файлов по шаблону и/или файлов из каталога.

Синтаксис:

ЦИКЛ ФАЙЛЫ ( <имя_файла> = <шаблон> ),

где

<имя_файла>
переменная строкового типа, последовательно принимающая имена файлов, удовлетворяющих шаблону.

<шаблон>
шаблон для имен файлов

Если под условия шаблона попадают каталоги, функция выберет файлы и из них. Диск с именем "db:" определяет путь к файлам в базе данных. Файлы, начинающиеся с "ftp://" определяют файлы, находящиеся в сети Интернет. Файлы различных источников (локальные, в базе данных, в сети Интернет) могут произвольным образом комбинироваться в шаблоне. Имена файлов выдаются вместе с путем к ним.

Пример:

// Выводит список файлов на диске c:

ЦИКЛ ФАЙЛЫ (имя_файла = "c:\*")

файлы!имя_файла = имя_файла

КОНЕЦ_ЦИКЛА

ВЫБОР(файлы)

См. также
Объект ФАЙЛ
Функцию ФАЙЛ_УДАЛИТЬ


ЧИСЛО

Ключевое слово ЧИСЛО

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Числовой тип


ШРИФТ

Ключевое слово ШРИФТ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Тип объекта Шрифт.


ЭТО

Ключевое слово ЭТО

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Оператор ЭТО используется для создания объектных переменных.


ЯЧЕЙКИ и ЯЧЕЙКИВ

ЦИКЛ ЯЧЕЙКИ и ЯЧЕЙКИВ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

ЦИКЛ ЯЧЕЙКИ и ЯЧЕЙКИВ применяется для перебора столбцов, строк, ячеек и подъячеек отчета.

Синтаксис для строк/столбцов:

ЦИКЛ ЯЧЕЙКИ|ЯЧЕЙКИВ (<переменная> = <шаблон столбцов>)

Здесь

<переменная>
задает переменную, которая последовательно будет принимать значения столбцов, если используется ключевое слово ЯЧЕЙКИ и значения строк, если используется ключевое слово ЯЧЕЙКИВ. Параметр <шаблон строк> задает условия на выводимые столбцы/строки отчета.

Пример:

ЦИКЛ ЯЧЕЙКИВ (яч = "*")

ЯЧЕЙКАВЕРТ[яч] = ""

КОНЕЦ_ЦИКЛА

Синтаксис для ячеек:

ЦИКЛ ЯЧЕЙКИ (<переменная 1> = <шаблон столбцов>,

<переменная 2> = <шаблон строк>[,<подъячейка>])

Здесь

<переменная 1> и <переменная 2>
задают переменные, которые будут последовательно принимать значения координат ячеек. Параметр <шаблон столбцов> задает условия на столбцы, а параметр <шаблон строк> задает условия на строки. Если в отчете используются подъячейки, то для перебора конкретного номера подъячеек можно указать этот номер в параметре <подъячейка>.

Пример.

ЦИКЛ ЯЧЕЙКИ (яч = 0, яч2 = 0)

ЯЧЕЙКА[яч, яч2] ++

КОНЕЦ_ЦИКЛА

Замечание!

Следует отметить, что кол-во проходов цикла по ячейкам может быть меньше произведения кол-ва столбцов на кол-во строк, так как цикл пропускает пустые ячейки.

Цикл всегда проходит ячейки в порядке следования по умолчанию, но без учета секций. После завершения работы цикла значение итерационной переменной равно значению координаты последней перебранной ячейки.

Основной особенностью циклов как по столбцам и строкам, так и по ячейкам является версионность. Если внутри цикла добавляются новые ячейки или координаты, то циклы также проходят и по ним, т.е. цикл учитывает изменения (версии) отчета. Например, цикл

ЯЧЕЙКА["","1/2/3/4/5/6/7"] = "*"

ЦИКЛ ЯЧЕЙКИВ (яч = "*")

ЯЧЕЙКА["",ВЕРХСЧ(яч,УРОВЕНЬ(яч) — 1)] = "*"

КОНЕЦ_ЦИКЛА

пройдет семь раз, несмотря на то, что на начало старта цикла в отчете была только одна ячейка. Работает это так: цикл проходит по всем существующим ячейкам отчета; если в результате были добавлены новые ячейки, то проходит и их; если в результате прохождения этих, добавленных, ячеек были добавлены новые, то проходит также и эти, и т.д. Закончится выполнение цикла только после того, как внутри его тела не будут добавлены никакие новые ячейки.

Такое свойство цикла позволяет легко описывать рекурсивные действия, например, создавать древовидные отчеты.


SQL

Ключевое слово SQL

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Смотрите
Тип объекта SQL.
Конструктор объекта SQL.


Встроенные функции

Программа Инфо-Предприятие поддерживает большое количество встроенных функций, которые могут быть разбиты на следующие группы:

·Ввод/вывод информации

·Редактор бланков

·Редактор отчетов

·Математические функции

·Работа со строками

·Работа с датой и временем

·Преобразование данных

·Бухгалтерские проводки, исходные остатки

·Обороты и остатки

·План счетов и аналитики

·Статьи учета, корректные проводки

·Журналы аналитики

·Работа с файлами XML и DBF

·Работа с файлами

·Прочие функции

Функции предназначены для доступа к различным данным программы, для выполнения некоторых преобразований данных и для обработки условий, необходимых при заполнении первичных и отчетных документов. Помимо использования встроенных функций есть возможность создавать собственные функции.

Свойства аналогичны функциям, они могут возвращать значения. Но также им можно и присваивать значения. С некоторыми из них можно выполнять арифметические операции. Свойства не имеют параметров, как функции. Свойства бывают обычными и индексными. Для индексных свойств в квадратных скобках указывается индекс.

См. также
Ключевые слова
Ключевые слова и функции от А до Я
Объекты

Функции ввода/вывода информации:

Стандартные
ВВЕСТИ_ЗНАЧЕНИЕ | запрос значения (строка, дата, число и др.)
ВКЛ_ДИАЛОГИ | позволяет отключить вывод диалоговых окон в программе
ВОПРОС | запрос логического значения (ДА или НЕТ), аналог ВВЕСТИ_ЗНАЧЕНИЕ для логического типа
ВЫБОР | выбор значения из массива
ВЫБРАТЬ_ЗНАЧЕНИЕ | выбор нескольких вариантов значения
ЗАПРОС | вывод диалогового окна с несколькими кнопками
ИКОНКА | позволяет задать иконку окна документа
ИНФОРМАЦИЯ | выводит текстовую информацию в окно сообщений
КОЛОНТИТУЛ | позволяет считать/задать колонтитул и заголовок окна документа
НАСТРОИТЬ_ПОРЯДОК | вызывает диалог настройки порядка следования элементов массива
ПОДОБРАТЬ_ЗНАЧЕНИЯ | вызывает диалог подбора с двумя списками: списком возможных и подобранных значений
СООБЩЕНИЕ | вывод сообщения в диалоговом окне
ФУНКЦИЯ_ВЫБРАТЬ! | добавляет графу с вызовом функции
Диалоги, типовые операции, бланки
ВИДИМОСТЬ | внутри секции ИЗМЕНЕНИЕ позволяет установить видимость графы
МАСТЕР | модифицирует вид диалога с закладками так, что получается пошаговый диалог (мастер)
ДИАЛОГ_НАСТРОЙКИ | модифицирует вид диалога с закладками: закладки начинают отображаться слева от диалога в виде дерева
ВЫЗВАТЬ_ИЗМЕНЕНИЕ | принудительно вызывает выполнение секции ИЗМЕНЕНИЕ
ДОСТУП | внутри секции ИЗМЕНЕНИЕ позволяет установить доступность графы
ЗАКЛАДКА | в пошаговом диалоге (мастере) управляет текущей закладкой
ОБНОВИТЬ_СПИСОК | в диалоге повторно вызывает функцию, формирующую список графы
ПОСЛЕДНЯЯ_ЗАКЛАДКА | в пошаговом диалоге (мастере) управляет последней закладкой
ИЗМЕНЕНА | внутри секции ИЗМЕНЕНИЕ определяет какая графа изменилась
ФОКУС | устанавливает текущую графу, в которой находится курсор ввода

См. также Диалоги

Редактор бланков:

Редактор бланков
АВТОЗАПУСК | в предрасчетной части бланка говорит программе, что необходим запуск основного расчета
АЛЬТЕРНАТИВНАЯ_ПЕЧАТЬ | позволяет задать для текущего бланка альтернативную функцию печати
ВОЗМОЖЕН_РАЗРЫВ | указание места возможного разрыва страницы после указанной строки
ВСТАВИТЬ_ДВУМ_ШТРИХКОД | вставляет QR код в указанное место бланка
ВСТАВИТЬ_РАМКУ | вставка заданной рамки в заданную позицию бланка
ВСТАВИТЬ_РИСУНОК | вставка заданного рисунка в заданную позицию бланка
ВСТАВИТЬ_СТРОКУ | добавление строки в заданную позицию бланка
ВСТАВИТЬ_ШАПКУ_ПОДВАЛ | вставляет шапку и подвал в указанное место бланка
ВСТАВИТЬ_ШТРИХКОД | вставляет штрих-код в указанное место бланка
ВЫВЕСТИ | вывод значения переменной в указанную позицию бланка
ДАННЫЕ_ДЛЯ_ПИСЬМА | задает для текущего бланка данные, необходимые для работы функции отправки письма.
КОНЕЦ_ПЕЧАТИ | указание конца печатаемой части бланка
КОНЕЦ_СТРАНИЦЫ | добавление разрыва страницы после указанной строки бланка
НАЧАЛО_ПЕЧАТИ | используется совместно с функцией КОНЕЦ_ПЕЧАТИ для выделения удаляемых из документа страниц
ОБНУЛИТЬ_ЖЕЛТЫЕ | обнуляет содержимое желтых граф ввода
ПАРАМЕТРЫ_ПЕЧАТИ | устанавливает параметры печати бланка
СКРЫТЬ_НУЛЕВЫЕ_ЗНАЧЕНИЯ | запускает алгоритм автоскрытия нулевых граф
УДАЛИТЬ_ГРАФУ | удаление графы ввода в процессе расчета бланка
УДАЛИТЬ_СТРОКУ | удаление указанной строки из бланка
Работа с отчетными документами
ДОКУМЕНТ_ЗАПИСАТЬ | сохраняет текущий бланк в качестве документа в базе данных
ДОКУМЕНТ_СЧИТАТЬ | считывает информацию о сохраненном ранее документе
ОТЧ_МЕС | возвращает номер отчетного месяца, установленного в списке отчетных форм.
ОТЧ_ГОД | возвращает отчетный год, установленный в списке отчетных форм.

См. также Редактор бланков

Редактор отчетов:

Базовые функции
ЯЧЕЙКА | работа с ячейками таблицы
ИТОГО | подсчет итогов по строкам
ИТОГОВ | подсчет итогов по столбцам
САЛЬДО | работа с сальдо столбца
САЛЬДОВ | работа с сальдо строки
Базовые атрибуты
ВОЗВРАТ | работа с параметром столбца, передаваемым вызываемому отчету
ВОЗВРАТВ | работа с параметром строки, передаваемым вызываемому отчету
ЯЧЕЙКАГОР | работа с заголовком колонок таблицы
ЯЧЕЙКАВЕРТ | работа с текстом левой фиксированной колонки таблицы
Многоуровневые отчеты
ГРУППА | помещает группу строк внутрь другой строки
ГРУППА_ПЕРЕСЧЕТ | пересчитывает итоги по горизонтальным группам
ГРУППАВ | помещает группу столбцов внутрь другого столбца
ГРУППАВ_ПЕРЕСЧЕТ | пересчитывает итоги по вертикальным группам
РАЗВЕРНУТЬ | разворачивает многоуровневый отчет по строкам
РАЗВЕРНУТЬВ | разворачивает многоуровневый отчет по столбцам
РАСКРЫВАЕМО | задает строки-группы, и принцип их раскрытия
РАСКРЫВАЕМОВ | задает столбцы-группы, и принцип их раскрытия
Расширенные атрибуты
АТРИБУТЫ | работа с атрибутами колонки, ячейки или подъячейки
АТРИБУТЫВ | работа с атрибутами строки, ячейки или подъячейки
АТРИБУТЫГР | работа с атрибутами группой колонок, ячеек и подъячеек
АТРИБУТЫВГР | работа с атрибутами группой строк, ячеек и подъячеек
ВЫРОВНЯТЬ | позволяет установить одну ширину для указанных столбцов
ВЫРОВНЯТЬВ | позволяет установить одну ширину для указанных строк
ПАРАМЕТРЫ | работа с параметрами отчета из внутреннего языка
Дополнительные функции
ВСТАВИТЬ_ОТЧЕТ | вставляет один отчет внутрь другого
ВЫБОР_ИЗ_ОТЧЕТА | открывает диалоговое окно с отчетом и ждет выбора
ДАТА_КОН | дата окончания периода формирования отчета
ДАТА_НАЧ | дата начала периода формирования отчета
ДОП_КОЛОНКИ | связывает с ячейкой запись журнала для отображения дополнительных колонок
ДОП_КОЛОНКИ_ИСКЛЮЧЕНИЯ | задает параметры дополнительных колонок, запрещая включать некоторые из них
МАКС_ЯЧЕЕК | возвращает максимум указанных ячеек
МИН_ЯЧЕЕК | возвращает минимум указанных ячеек
ОБНОВИТЬ_ОТЧЕТ | обновляет окно отчета из обработчика выбора ячейки
СКРЫТЬ_ЯЧЕЙКИ | позволяет скрыть группу ячеек
СОРТИРОВАТЬ | сортирует строки отчета
СОРТИРОВАТЬВ | сортирует столбцы отчета
СРАВ_СЧЕТА | функция сравнения для сортировки по кодам счетов
СРАВ_ЗНАЧ | функция сравнения для сортировки по числам
СУММА_ЯЧЕЕК | возвращает сумму указанных ячеек
ТРАНСПОНИРОВАТЬ | переворачивает отчет
ЯЧЕЙКА_СУЩ | проверка существования столбца или ячейки таблицы
ЯЧЕЙКАВ_СУЩ | проверка существования строки или ячейки таблицы

См. также Простейший отчет
Создание многоуровневых отчетов

Математические функции:

Общие
АБС | абсолютное значение (мoдуль) числа
БИН_И | осуществляет побитовое «И» с двумя целыми числами
БИН_ИЛИ | осуществляет побитовое «ИЛИ» с двумя целыми числами
БИН_ИСК | осуществляет побитовое «исключающее ИЛИ» с двумя целыми числами
БИН_НЕ | осуществляет побитовое отрицание числа
ДЕЛ | деление чисел с проверкой на результат
ДРОБ | выделяет из числа дробную часть
ЛОГ | натуральный логарифм ln(x)
ЭКСП | экспонента числа exp(x)=e^x
МАКС | возвращает максимум из двух (или более) значений
МИН | возвращает минимум из двух (или более) значений
ОСТ | возвращает остаток от деления двух чисел
ПЕРЕСЕЧЕНИЕ | вычисляет пересечение двух диапазонов дат или чисел
СЛУЧ_ЧИСЛО | возвращает псевдослучайное число
Работа с массивами
ВСЕГОМ | выдает число элементов массива
МАКСМ | выдает значение наибольшего элемента массива
МИНМ | выдает значение наименьшего элемента массива
НАЙТИМ | ищет индекс в массиве по шаблону или диапазону
ОБНУЛИТЬ | обнуляет массив (удаляет все элементы)
ОБЪЕДИНЕНИЕМ | по двум массивам формирует третий, состоящий из всех элементов первого и второго массивов
ПЕРЕСЕЧЕНИЕМ | узнает, есть ли у двух массивов элементы с одинаковым индексом, и формирует третий массив с такими элементами
СУММАМ | выдает сумму числового или строкового массива

Работа со строками

ВСЕГО_СЛОВ | возвращает кол-во слов в строке
ВСТАВИТЬ | позволяет вставить подстроку внутрь строки начиная с выбранной позиции
ДЛИНА | возвращает длину строки в символах
ЗАГЛ | преобразовывает строчные буквы в заглавные
ЗАМ | заменяет в строке указанный фрагмент на другой
ЗАМ_RTF | заменяет в RTF-строке указанный фрагмент на другой
КОНТРОЛЬНАЯ_СУММА | позволяет получить контрольную сумму (CRC32) строки
КОНТРОЛЬНАЯ_СУММА_ФАЙЛА | позволяет получить контрольную сумму (CRC32) файла
ПОЗ | возвращает позицию подстроки в строке
ПОЗ_ОБР | возвращает позицию подстроки в строке, поиск происходит с конца строки
ПОДСТР | позволяет выделить подстроку из строки
ПОХОЖЕСТЬ | определяет похожесть двух строк
СЛОВА | разбивает строку на слова и заносит их в массив
СЛОВО | выделяет слово из строки по его номеру
СТРОКА_СИМВ | возвращает строку, состоящую из повторения заданного символа
СТРОЧ | преобразовывает заглавные буквы в строчные
УБР_ПРОБ | убирает слева и справа строки пробелы и управляющие символы
УДАЛ | удаляет из строки подстроку с выбранной позиции и заданной длины
УДАЛ_СИМВ | удаляет из строки заданные символы или заменяет их на указанный символ
УРЛ_ДЕКОДИРОВАТЬ | производит декодирование URL-кодированной строки
УРЛ_КОДИРОВАТЬ | производит URL-кодирование строки

См. также ЦИКЛ СЛОВА

Функции для работы с датой и временем:

ВРЕМЯ | преобразование часов, минут и секунд во время
ВРЕМЯ_ТЕК | текущее время
ГОД | выделение года из даты
ДАТА | преобразование дня, месяца и года в дату
ДАТА_ЗАКР | возвращает/задает дату закрытого периода
ДАТА_ТЕК | текущая дата
ДАТА_ТЕК_СИС | текущая системная дата
ДАТАП | дата прописью
ДАТАП0 | дата прописью (с первым 0)
ДЕНЬ | выделение дня недели из даты
ДЕНЬП | день недели прописью
КВАРТАЛ | возвращает квартал по дате
МЕС | выделение месяца из даты
МЕСП | название месяца прописью
МИНУТЫ | выделение минут из времени
СЕКУНДЫ | выделение секунд из времени
ЧАС | выделение часов из времени
ПЕРИОД | возвращает полное название диапазона дат
ПЕРИОД_КОН | возвращает дату конца периода по заданной детализации
ПЕРИОД_НАЧ | возвращает дату начала периода по заданной детализации
ПРАЗДНИК | позволяет проверить, является ли указанная дата праздником
ЧИСЛО | выделение числа из даты

Функции преобразования данных:

Преобразование чисел
ОКРУГЛЕНИЕ | округлить число с заданием количества знаков
КОП | копейки от суммы (два десятичных знака)
РУБ | рубли от суммы (целую часть)
СТР | преобразование числа в строку
СТР0 | преобразование числа в строку (заполнение 0)
СТРФ | преобразование числа в строку (с выделением тысяч)
СИМВ | получение символа с ASCII-кодом равным указанному числу
Преобразования строк
ЗНАЧ | преобразовывает значение строки в число
ЗНАЧ_ТЕСТ | проверяет возможность преобразования значения строки в число
ЗНАЧ_СИС | преобразовывает целое число из заданной системы счисления в десятичную систему счисления
КОД_СИМВ | возвращает ASCII-код первого символа строки
Работа с кодировками
КОДИРОВАТЬ | производит преобразование строки в данные по заданной кодировке
ДЕКОДИРОВАТЬ | производит декодирование строки из заданной кодировки
Специальные функции
РАЗБОР | разбирает строку и выделяет из нее нужные фрагменты для последующей обработки
ФОРМАТ | размещает одно или несколько значений внутри форматируемой строки на месте специального символа
JSON_СЧИТАТЬ | разбирает строку JSON формата и преобразует её в массив
Данные прописью
КОПП | слово "копейка" с зависящим от суммы окончанием
РИМ | выдает римское написание числа
РУБП | слово "рубль" с зависящим от суммы окончанием
СУММАП | число прописью
СУММАП_АНГЛ | число прописью на английском языке
СУММАПРОП | сумма прописью с учетом рублей и копеек
Информация о числовых форматах
ЗНАК_ВАЛ | кол-во знаков после запятой в валютных суммах
ЗНАК_КОЛ | кол-во знаков после запятой в количестве
ЗНАК_СУМ | кол-во знаков после запятой в сумме
ЗНАК_ЦЕНА | кол-во знаков после запятой в цене

Бухгалтерские проводки, исходные остатки

Операции
ЗАП_ОПЕР | позволяют записать бухгалтерскую операцию в журнал
ЕСТЬ_ОПЕР | позволяет определить, сформирована ли какая-либо операция
УПАК_ОПЕР | упаковывает проводки добавляемой операции
Проводки
ПРОВОДКА | позволяет создавать новые проводки
ПРОВОДКА_НУ | изменяет налоговые параметры проводки
ПРОВОДКАГР | позволяет создавать группу проводок
РАБОЧИЕ_ОБЪЕКТЫ | позволяет определить универсальные значения аналитик
Исходные остатки
ЗАП_ИСХ_ОСТ | позволяет заносить исходные остатки
ИСХ_ОСТ | исходный остаток счета в суммовом выражении
ИСХ_ОСТ_К | исходный остаток счета в количественно-суммовом выражении
ИСХ_ОСТ_ДОП | исходный остаток в дополнительных единицах.
ИСХ_ОСТ_НУ | исходный остаток счета как единицы налогового учета
Прочие |
АРХИВ | обращение к дополнительным данным бухгалтерской операции

Функции доступа к оборотам и остаткам:

Общие
ЕСТЬ_ОБОРОТЫ | позволяет проверить наличие оборотов у конкретного счета
ОБОРОТЫ | оптимизирует расчет оборотов
ОБОРОТЫ_УСЛОВИЕ | накладывает условия на бухгалтерские проводки, используемые при расчете оборотов
Обороты
ОБД | оборот по дебету счета
ОБД_К | оборот по дебету счета в количественно-суммовом выражении
ОБД_ДОП | оборот по дебету счета в дополнительных единицах
ОБК | оборот по кредиту счета
ОБК_К | оборот по кредиту счета в количественно-суммовом выражении
ОБК_ДОП | оборот по кредиту счета в дополнительных единицах
Остатки
ОСД | остаток дебета счета
ОСДН | входящий остаток дебета счета
ОСД_К | величина дебетового остатка счета на определенный момент времени в количественном измерении
ОСДН_К | величина дебетового остатка счета на начало отчетного периода в количественном измерении
ОСД_ДОП | величина дебетового остатка счета на определенный момент времени в дополнительных единицах
ОСДН_ДОП | величина дебетового остатка счета на начало отчетного периода в дополнительных единицах
ОСК | остаток кредита счета
ОСКН | входящий остаток кредита счета
ОСК_К | величина кредитового остатка счета на определенный момент времени в количественном измерении
ОСКН_К | величина кредитового остатка счета на начало отчетного периода в количественном измерении
ОСК_ДОП | величина кредитового остатка счета на определенный момент времени в дополнительных единицах
ОСКН_ДОП | величина кредитового остатка счета на начало отчетного периода в дополнительных единицах
Налоговый учет
ОБНУ | оборот по статье налогового учета
ОБНУ_К | оборот по статье налогового учета в количественно-суммовом выражении
ОБНУ_ДОП | оборот по статье налогового учета в дополнительных единицах
ОБД_НУ | оборот по дебету счета как единицы налогового учета
ОБК_НУ | оборот по кредиту счета как единицы налогового учета
ОСД_НУ | остаток дебета счета как единицы налогового учета
ОСДН_НУ | входящий остаток дебета счета как единицы налогового учета
ОСК_НУ | остаток кредита счета как единицы налогового учета
ОСКН_НУ | входящий остаток кредита счета как единицы налогового учета

См.также
Код счета во внутреннем языке
Вычисление оборотов и остатков с условием
ЦИКЛ ОБОРОТЫ
Журнал бухобороты

Функции доступа к плану счетов и аналитикам:

АНАЛИТИКА | выделяет из кода счета нужную аналитику
АНАЛИТИКА_ИНФО | позволяет получить расширенную информацию по всем аналитикам счета
АНАЛИТИКА_СЧИТАТЬ | считывает аналитику по коду счета с аналитиками
ВЕРХСЧ | возвращает код счета верхнего уровня для субсчета
ВЫБОР_АНАЛИТИКИ | позволяет выбрать объект аналитического учета
ВЫБОР_СЧЕТА | позволяет выбрать код счета из плана счетов
ДОБАВИТЬ_АНАЛИТИКУ | подключает указанную аналитику к счету
ДОБАВИТЬ_СЧЕТ | добавляют счет в план счетов
ЕДИН | возвращает единицу измерения счета
ЕДИН_ДОП | возвращает дополнительную единицу измерения
ЕСТЬ_АНАЛИТИКА | позволяет проверить наличие аналитики у конкретного счета
ЕСТЬ_ПОДУРОВНИ | проверяет, являются ли записи объектов аналитики в коде счета записями конечного уровня, или нет
ЕСТЬ_СУБСЧ | позволяет проверить наличие субсчетов у конкретного счета
ЗАП_ВЫБОР_АНАЛИТИКИ | запрещает последующий вызов ВЫБОР_АНАЛИТИКИ
ИЗМЕНИТЬ_СЧЕТ | изменяет счет в плане счетов
КОД_СЧЕТА | формирует код счета с аналитиками в виде строки
КОД_СЧЕТА_ТОЛЬКО | по коду счета с аналитиками выдает собственно код счета
МАСКА_СУБСЧЕТОВ | возвращает шаблон субсчетов и переставляет аналитики
МАСКА_СЧЕТОВ_АНАЛИТИКИ | по анатитике возвращает шаблон счетов, использующих эту аналитику
НАЗВ | возвращает название счета
НАЗВ_ПОЛН | возвращает полное название счета со всеми аналитиками
ПОДСЧ | позволяет выделить субсчета из кода счета
ПОРЯДОК_АНАЛИТИК | переставляет аналитики
СУБСЧЕТ | проверяет, является ли счет субсчетом для счета
СЧЕТ_АКТ | позволяет проверить активность счета
СЧЕТ_ПАС | позволяет проверить пассивность счета
СЧЕТ_КОЛ | позволяет проверить, ведется ли по счету количественно-суммовой учет
СЧЕТ_ДОП | позволяет проверить, ведется ли по счету дополнительный учет.
СЧЕТ_СУЩ | проверяет наличие счета в плане счетов
СЧЕТ_СВЕР | проверяет, сворачиваются ли обороты по этому счету
СЧЕТ_БЮДЖЕТ | преобразует код счета в код счета бюджетной версии программы
СЧЕТ_ДОСТУПЕН | проверяет, есть ли доступ к оборотам этого счета
СЧЕТ_ИСПОЛЬЗУЕТСЯ | проверяет, используется ли счет в проводках
СЧЕТ_СКРЫТЬ_ДОСТУП | скрывает в расширенном коде счета недоступные аналитики
УРОВЕНЬ | позволяет узнать уровень (порядок) счета
УДАЛИТЬ_АНАЛИТИКУ | отключает указанную аналитику у счета
УДАЛИТЬ_СЧЕТ | позволяет удалить счет последнего уровня
ЦЕНА | возвращает цену единицы измерения счета

Функции для работы со статьями учета и корректными проводками:

ВЕРХСЧ | возвращает код статьи верхнего уровня для субстатьи
ВЫБОР_СТАТЬИ | позволяет выбрать код статьи учета из списка статей
ЕСТЬ_СУБСТАТЬИ | позволяет узнать, имеет ли статья подстатьи.
ПОДСЧ | позволяет выделить субстатьи из кода статьи
СТАТЬЯ | выдает по коду статьи учета ее полное название
СТАТЬЯ_ВЕРНА | позволяет проверить, может ли использоваться статья в проводке
СТАТЬЯ_ДОХ | позволяет проверить, что статья является доходом
СТАТЬЯ_КОРР | выдает соответствующую проводке статью по умолчанию
СТАТЬЯ_КОСВ | позволяет проверить, что расход косвенный
СТАТЬЯ_РАСХ | позволяет проверить, что статья является расходом
СТАТЬЯ_СУЩ | позволяет определить, существует ли статья с заданным кодом
СТОРНО_КОРР | проверяет, будет ли сумма по налоговому учету в данной проводке сторнироваться
УРОВЕНЬ | позволяет узнать уровень (порядок) статьи

Функции для работы с журналами аналитики:

ВЫБОР_ГРУППЫ | позволяет вызвать диалоговое окно выбора группы записей журнала
ВЫБОР_ГРУПП | позволяет вызвать диалоговое окно выбора одной или нескольких групп записей журнала
ВЫБОР_ЗАПИСИ | выбор записи из журнала, отфильтрованного по условию, или курсора
ВЫБОР_ЗАПИСЕЙ | множественный выбор нескольких записей из журнала, отфильтрованного по условию, или курсора
ИЗ_ЖУРНАЛА | считывает запись из окна редактирования журнала
МНОЖЕСТВО, МНОЖЕСТВО_СОКР | выдает по идентификатору множества его название
Работа с меню
ОБНОВИТЬ_МЕНЮ | вызывает обработчик вид главного меню и обновляет главное меню
ПУТЬ_МЕНЮ | возвращает строку с полным названием пункта меню (главного или контекстного)
УБРАТЬ_МЕНЮ | отключает пункт контекстного меню
Выборка
СУЩ | проверяет, есть ли записи, удовлетворяющие условию
ЕДИНСТВЕННО | проверяет, что существует и единственна запись, удовлетворяющая условию
МНОГО | проверяет, что существует две или более записей, удовлетворяющих условию

См. также
Объект ЖУРНАЛ
Объект ФИЛЬТР
Объект КУРСОР
Конструкция ЦИКЛ ПО ЖУРНАЛУ
Конструкция ЦИКЛ ИЗ ЖУРНАЛА

Функции для работы с файлами:

Файлы, каталоги, работа с HTTP и FTP
АРХИВ_ЗАПИСАТЬ | архивирует файлы и каталоги
АРХИВ_СЧИТАТЬ | разархивирует файлы и каталоги
ВЫБОР_ФАЙЛА | выбор файла на диске
ВЫБОР_ДИР | выбор каталога на диске
ВЫПОЛНИТЬ | выполнение исполняемого файла или документа
ДИР_ВРЕМЕННАЯ | возвращает путь к временному каталогу (директории)
ДИР_ДОКУМЕНТОВ | возвращает путь к каталогу (директории) выходных документов
ДИР_ТЕК | возвращает путь к текущему каталогу
ДИР_ФАЙЛА | выделяет из абсолютного имени файла путь к нему
ИМЯ_ФАЙЛА | выделяет из полного пути к файлу имя файла
ИНТЕРНЕТ_ЗАПРОС | выполняет POST и другие виды HTTP-запросов и возвращает результат в виде файла
ИНТЕРНЕТ_ПРОКСИ | задает адрес, логин и пароль прокси-сервера
ИНТЕРНЕТ_СЧИТАТЬ | выполняет GET и другие виды HTTP-запросов и возвращает результат в виде строки
СОЗДАТЬ_ДИР | создание каталога на диске
СУЩ_ФАЙЛ | проверка существования файла с указанным именем, получение его даты и размера
УДАЛИТЬ_ДИР | удаление каталога на диске
ФАЙЛ_КОПИРОВАТЬ | копирование файла, включая файлы в базе и в интернете (HTTP и FTP протокол)
ФАЙЛ_ПЕРЕИМЕНОВАТЬ | переименование файла, включая файлы в базе и в интернете (FTP протокол)
ФАЙЛ_УДАЛИТЬ | удаление файла, включая файлы в базе и в интернете (FTP протокол)
Работа с сокетами
СЕРВЕР_ПОДКЛЮЧИТЬ | подключается к потоковому серверному сокету
СЕРВЕР_ПОДКЛЮЧЕН | проверяет, подключены ли к сокету и возвращает адрес сервера
СЕРВЕР_ОТПРАВИТЬ | отправляет данные потоковому серверному сокету

См. также
Объект Файл
ЦИКЛ ФАЙЛЫ
Функции для работы с Интернет

Функции для работы XML и DBF файлами:

Замечание!

Все перечисленные ниже функции БД_*** имеют синонимы с именем ХМЛ_***. Их работа ничем не отличается, разные варианты написания используются только для наглядности. Исключением являются функции БД_СОЗДАТЬ и ХМЛ_СОЗДАТЬ соответственно (они по-разному работают, если не указано расширение файла).

БД_ВСЕГО | количество записей в открытом XML или DBF файле
БД_ВЫБОР | просмотр и выбор записи из XML или DBF файла в диалоговом окне
БД_ЗАКРЫТЬ | закрытие ранее открытого XML или DBF файла с сохранением изменений
БД_ЗАМЕНИТЬ | обновление текущей записи в XML или DBF файле
БД_ЗАПИСАТЬ | добавление текущей записи в XML или DBF файл (в конец)
БД_ОТКРЫТЬ | открытие XML или DBF файла для чтения или дополнения
БД_ПЕРЕЙТИ | устаревшая функция, переходит к записи с нужным номером
БД_ПОЛЕ | получение значения из определенного поля в текущей записи XML или DBF файла; занесение нового значения в поле текущей записи XML или DBF файла
БД_РЕДАКТОР | редактирование, добавление и удаление записи в диалоговом окне
БД_СОЗДАТЬ | создание новой базы данных в формате XML или DBF
БД_СОРТ | сортировка XML или DBF файла по указанным полям
БД_СЧИТАТЬ | считывание следующей записи из XML или DBF файла
БД_ТЕКУЩАЯ | определение номера текущей записи

См. также Объект Файл XML или DBF

Прочие функции:

Автонумерация документов
НОМЕР | выдает новый номер документа
ЗАП_НОМЕР | подтверждает номер документа, полученный с помощью НОМЕР
ТЕК_НОМЕР | возвращает/задает текущий номер документа
УДАЛИТЬ_НОМЕР | обнуляет нумерацию документов
Вычисление формул
ВЫРАЖЕНИЕ | вычисляет значение выражения заданного строковой переменной или константой
ВЫРАЖЕНИЕ_СТР | обрабатывает обычные строки текста, которые могут содержать макро-выражения
ОПРЕДЕЛИТЬ | позволяет определить переменные и функции, используемые в функции ВЫРАЖЕНИЕ
ОПРЕДЕЛИТЬ_ЗНАЧ | позволяет определить значение для переменной для функции ВЫРАЖЕНИЕ
ОПРЕДЕЛИТЬ_СБРОС | очищает список значений, заданных ранее ОПРЕДЕЛИТЬ и ОПРЕДЕЛИТЬ_ЗНАЧ
Запуск алгоритмов
СТАРТ_БЛАНК | выполняет бланк
СТАРТ_БРАУЗЕР | отображает на экране заданную Веб-страницу
СТАРТ_ЖУРНАЛ | открывает на редактирование нужный журнал
СТАРТ_ОПЕРАЦИЯ | выполняет типовую операцию
СТАРТ_ОТЧЕТ | выполняет отчет
СТАРТ_ТЕРМИНАЛ | открывает окно терминала ввода данных
Транзaкции
ОТМЕНИТЬ | отменяет все действия, выполненные в алгоритме
ПОДТВЕРДИТЬ | подтверждает все действия, выполненные в алгоритме
БЫЛИ_ИЗМЕНЕНИЯ | проверяет, были ли изменения в базе данных в процессе работы алгоритма
Оптимизация расчета
СЧЕТА | оптимизирует работу функций доступа к счетам
СТАТЬИ | оптимизирует работу функций доступа к статьям налогового учета
ОБОРОТЫ | ограничивает расчет оборотов указанными счетами
Работа с профилем
ПРОФИЛЬ | доступ к профилю (настройкам) пользователя
ПРОФИЛЬ_ВРЕМ | доступ к временному профилю (настройкам)
ХРАНИТЬ | заставляет хранить содержимое указанных переменных в профиле пользователя
Работа с внешними событиями
ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ | включает или отключает обработку событий от HID-устройств
ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ | ждет ответа от внешнего события
ПОСЛАТЬ_СОБЫТИЕ | принудительно посылает внешнее событие.
УДАЛИТЬ_СОБЫТИЯ | удаляет события по указанному источнику
Проверка версии программы
БЕСПЛАТНАЯ_ВЕРСИЯ | сообщает о том, что запущена бесплатная версия программы
БЮДЖЕТ | информирует о работе в бюджетной версии программы
ВЕРСИЯ | возвращает номер версии программы в виде текстовой строки
ДЕМО_ВЕРСИЯ | сообщает о том, что запущена демонстрационная версия программы
ОБЛАЧНАЯ_ВЕРСИЯ | сообщает о том, что запущена облачная версия программы
Пользователи и права доступа
ДОБАВИТЬ_В_ПРОТОКОЛ | добавляет произвольную информацию в протокол действий
ЕСТЬ_ВОЗМОЖНОСТЬ | позволяет проверить доступна ли данная возможность пользователю
ЕСТЬ_ДОСТУП | проверяет наличие доступа к объекту
ИНТЕРФЕЙС_ПОЛЬЗОВАТЕЛЯ | возвращает название интерфейса пользователя, работающего с программой
КОМПЬЮТЕР | возвращает имя компьютера
ПОЛЬЗОВАТЕЛЬ | возвращает имя пользователя, работающего с программой
РАБОТАЕТ_ПОЛЬЗОВАТЕЛЕЙ | возвращает количество пользователей, работающих в данный момент
Работа с электронной цифровой подписью
ВЫБОР_СЕРТИФИКАТА | выводит диалог выбора сертификата
ПОДПИСЬ_ДОБАВИТЬ | подписывает и кодирует строку, используя указанный сертификат электронной подписи
ПОДПИСЬ_ПРОВЕРИТЬ | проверяет ранее подписанную строку и возвращает исходную строку
ПОДПИСЬ_РАСШИФРОВАТЬ | расшифровывает строку, используя указанный сертификат электронной подписи
ПОДПИСЬ_ШИФРОВАТЬ | шифрует строку, используя указанный сертификат электронной подписи
СЕРТИФИКАТ_ИНФО | выдает нужную информацию по указанному сертификату электронной подписи
СЕРТИФИКАТ_ПРОВЕРИТЬ | проверяет, действует ли указанный сертификат электронной подписи
Работа с центром уведомлений Windows
ЕСТЬ_УВЕДОМЛЕНИЕ | проверяет по идентификатору уведомления, есть ли оно в Центре уведомлений Windows
ПОСЛАТЬ_УВЕДОМЛЕНИЕ | посылает уведомление в Центр уведомлений Windows
УДАЛИТЬ_УВЕДОМЛЕНИЕ | удаляет уведомление из Центра уведомлений Windows
Работа с электронной почтой
ОТПРАВИТЬ_ПИСЬМО | отправляет письмо с помощью почтовой программы по умолчанию
ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ | отправляет письмо через почтовый сервер (в обход почтовых программ).
Отладка программ
ОТЛАДКА | выводит отладочную информацию в окно сообщений
СЛЕДИТЬ | следит за тем, когда в переменную заносится или считывается значение
СТЕК | возвращает строку с последовательностью вызовов функций
ТИП | возвращает имя типа выражения
Работа с фирмами в базе
ВКЛ_ФИРМЫ | позволяет управлять функцией наложения условия на текущую фирму
ВСЕ_ФИРМЫ | возвращает строку-список доступных фирм (при ВКЛ_ФИРМЫ = НЕТ)
ЕСТЬ_ФИРМЫ | проверяет, есть ли в базе данных другие фирмы, кроме текущей
ТЕК_ФИРМА | может использоваться для получения и изменения уникального идентификатора текущей фирмы
Прочие функции
? (вопрoсительный знак) | выполняет вычисления в зависимости от некоторого условия
БУФЕР_ОБМЕНА | позволяет считывать и записывать текст в буфер обмена
ГУИД | возвращает глобальный уникальный идентификатор
ДОБАВИТЬ_СВЯЗЬ | связывает документ и бухгалтерскую операцию
ЕСТЬ_ОБЪЕКТ | проверяет наличие зарегистрированного в системе OLE-объекта
ЕСТЬ_ТЕРМИНАЛ | проверяет, открыто окно терминала или нет
ЕСТЬ_ФИЛЬТР | проверяет, включена или нет опция "Фильтр действует на отчеты"
ЗАВЕРШЕНИЕ_РАБОТЫ | завершает работу программы
ЗВУК | издает сигнал через колонки или динамик компьютера
НЕ_ПУСТО | подставляет вместо ПУСТО заданное значение
ОБНОВИТЬ_ТЕРМИНАЛ | обновляет содержимое окна терминала
ПАРАМЕТР_ЗАПУСКА | возвращает параметр командной строки, с которым запущена программа
ПАУЗА | приостанавливает работу алгоритма на заданное время
ПЕРЕНОС_ПРОВОДОК | делает перенос проводок с одного счета на другой и замену записей в журналах
ПЕРЕНОС_ПРОВОДОК_НУ | делает перенос проводок с одной статьи на другую
ПРИНТЕР | позволяет узнать или изменить текущий выбранный для печати принтер
РЕЕСТР | служебное свойство для доступа к реестру Windows по указанному разделу и параметру
РЕЕСТР_КЛЮЧИ | служебная функция для чтения параметров из реестра Windows
РЕЗЕРВНОЕ_КОПИРОВАНИЕ | позволяет сохранить резервную копию всех данных
СИСТЕМА_НАЛОГООБЛОЖЕНИЯ | возвращает название текущей системы налогообложения
СПРАВКА | вызывает встроенную справочную систему
СТАТУС | выдает информационную строку о текущих вычислениях в строке статуса или по центру экрана
СТАТУС_ГЛОБАЛ | добавляет информацию в строку статуса главного окна программы
Вызов внешних библиотек
ВЫЗВАТЬ | позволяет вызывать функции из внешних динамических библиотек DLL.

См. также
Объект ОБЪЕКТ


? (вопросительный знак)

Функция ? (вопрoсительный знак)

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

При необходимости проведения различных вычислений, в зависимости от некоторого условия, можно использовать функцию ? (вопрoсительный знак).

Синтаксис:

? ( <условие>, <выражение 1>, <выражение 2> ),

где

<условие>
выражение логического типа;

<выражение 1>
выражение, результат которого функция возвращает, если условие истинно;

<выражение 2>
выражение, результат которого функция возвращает, если условие ложно.

Пример:

б= ? ( а > 2, 8, 0 ) // если а больше 2, то б = 8, иначе б = 0

с= ? ( а >= б, а, б ) // эквивалентно с = МАКС (а, б)


АБС

Функция АБС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция АБС возвращает абсолютное значение (мoдуль) числа.

Синтаксис:

АБС ( <выражение> ),

где

<выражение>
константа или выражение числового типа.

Результат — число.

Пример:

а=АБС (-2) // переменной а присваивается значение 2


АВТОЗАПУСК

Функция АВТОЗАПУСК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция АВТОЗАПУСК используется в предрасчетной части бланка. Она говорит программе, что после выполнения предрасчетной части бланка надо сразу же запустить основной расчет.

Синтаксис:

АВТОЗАПУСК

Расчетная часть бланка, содержащая основной алгоритм рассчитывается, когда пользователь запускает бланк, например, при помощи <F9> или кнопки [image] на панели управления. Если вызвать функцию АВТОЗАПУСК, то бланк рассчитается автоматически без участия пользователя.

Примеры:

ВЫЧИСЛИТЬ

//.....

ЕСЛИ ИЗ_ЖУРНАЛА(накладные) ТО

АВТОЗАПУСК // Принимаем решение о принудительном запуске бланка

КОНЕЦ_ЕСЛИ

// Переходим в основной режим работы, т.е. ждем пока пользователь не запустит бланк

ВВЕСТИ

//.....

КОНЕЦ


АЛЬТЕРНАТИВНАЯ_ПЕЧАТЬ

Функция АЛЬТЕРНАТИВНАЯ_ПЕЧАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция АЛЬТЕРНАТИВНАЯ_ПЕЧАТЬ задает для текущего бланка альтернативную функцию печати (при этом возможность распечатывать его стандартными средствами тоже остается)

Синтаксис:

АЛЬТЕРНАТИВНАЯ_ПЕЧАТЬ ( <меню печати>, <меню просмотра>, <запрет изменения>, <библиотека>, <данные>)

где

<меню печати>, <меню просмотра>
строка, задающая текст контекстных пунктов меню, которые будут появляться при нажатии на кнопку печати и предварительного просмотра;

<запрет изменения>
строка, которая задает текст сообщения; если нужно запретить правки в графах ввода после основного расчета бланка, указывается текст сообщения об ошибке, который будет выдавать программа; если запрет не нужен, указывается пустая строка;

<библиотека>
строка, задающая имя библиотеки, в которой находятся функции, срабатывающие при выборе вышеуказанных пунктов меню;

<данные>
строка, которая может содержать какую-то информацию, передаваемую в вызываемые функции

Внутри библиотеки, которая обрабатывает команды печати и предварительного просмотра должны быть функции:

ФУНКЦИЯ Просмотр(СТРОКА: данные)

ФУНКЦИЯ Печать(СТРОКА: данные)

Если нужно задать только альтернативную печать или только альтернативный просмотр, то для этого достаточно в качестве текста другого меню передать пустую строку. В этом случае в библиотеке нужна только одна из вышеперечисленных функций.

Пример:

АЛЬТЕРНАТИВНАЯ_ПЕЧАТЬ ("Печать с двумерным штрих-кодом", "Просмотр с двумерным штрих-кодом", "PDF417", файл)

См.также
Функция ПАРАМЕТРЫ_ПЕЧАТИ
Свойство ПРИНТЕР


АНАЛИТИКА

Функция АНАЛИТИКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция АНАЛИТИКА повторяет возможности функции АНАЛИТИКА_СЧИТАТЬ и в зависимости от аргументов решает две задачи:

I.позволяет из кода счета с аналитикой заданного в виде строки выделить указанный аналитический признак и вернуть его код (ключевое поле, первичный ключ).

II.позволяет из кода счета с аналитикой заданного в виде строки выделить указанный аналитический признак, считать его и вернуть значение нужного поля

Синтаксис I:

АНАЛИТИКА (<код счета>,<признак>)

где

<код счета>
строка, соответствующая коду счета с аналитикой.

<признак>
идентификатор журнала, который определяет аналитику.

Результат — строка. Если по счету не ведется аналитический учет с данным объектом или <код счета> не содержит код для этого признака, возвращается пустая строка.

Пример:

// Следующие два фрагмента кода делают одно и то же — считывают код аналитики в переменную "код"

// С помощью функции АНАЛИТИКА_СЧИТАТЬ! (с восклицательным знаком)

ЕСЛИ НЕ АНАЛИТИКА_СЧИТАТЬ!(сч, клиенты, код) ТО

СООБЩЕНИЕ("По счету должен вестись аналитический учет по клиентам")

СТОП

КОНЕЦ_ЕСЛИ

// С помощью функции АНАЛИТИКА

код = АНАЛИТИКА(сч, клиенты)

ЕСЛИ код = "" ТО

СООБЩЕНИЕ("По счету должен вестись аналитический учет по клиентам")

СТОП

КОНЕЦ_ЕСЛИ

Синтаксис II:

АНАЛИТИКА (<код счета>,<признак>.<поле>)

где

<код счета>
строка, соответствующая коду счета с аналитикой.

<признак>
идентификатор журнала, который определяет аналитику.

<поле>
поле, значение которого надо считать.

Результат — строка. Если по счету не ведется аналитический учет с данным объектом или <код счета> не содержит код для этого признака, возвращается пустая строка. Если не удалось считать, возвращается пустая строка.

Пример:

// Следующие два фрагмента кода делают одно и то же — считывают название аналитики в переменную "название"

// С помощью функции АНАЛИТИКА_СЧИТАТЬ (без восклицательного знака)

ЕСЛИ НЕ АНАЛИТИКА_СЧИТАТЬ(сч, клиенты) ТО

СООБЩЕНИЕ("По счету должен вестись аналитический учет по клиентам")

СТОП

КОНЕЦ_ЕСЛИ

название = клиенты.название

// С помощью функции АНАЛИТИКА

название = АНАЛИТИКА(сч, клиенты.название)

ЕСЛИ название = "" ТО

СООБЩЕНИЕ("По счету должен вестись аналитический учет по клиентам")

СТОП

КОНЕЦ_ЕСЛИ

См.также
Функция АНАЛИТИКА_СЧИТАТЬ


АНАЛИТИКА_ИНФО

Функция АНАЛИТИКА_ИНФО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Специальная функция АНАЛИТИКА_ИНФО по коду счета с аналитикой заданного в виде строки возвращает расширенную информацию по всем аналитикам счета.

Синтаксис:

АНАЛИТИКА_ИНФО (<код счета>,<информация> )

где

<код счета>
строка, соответствующая коду счета с аналитикой.

<информация>
строковый массив, который будет заполнен информацией по аналитикам.

Результат — число, определяющее количество элементов в массиве.

Массив не будет содержать ни одного элемента, если счет не имеет аналитик. Массив будет содержать один или несколько элементов, если счет имеет одну или несколько аналитик. Индекс массива будет натуральным числом. Значение будет иметь вид:

"<идентификатор журнала>.<идентификатор ключевого поля>:<вид журнала>" + РР + "<значение аналитики>"

Значение аналитики может быть или отсутствовать, в зависимости от того, указано значение в коде счета или нет.

Пример:

АНАЛИТИКА_ИНФО(сч, инфо)

АТРИБУТЫ["Название", сч, атДопКолонки] = инфо!ВСЕГОМ(инфо)

См. также
Атрибут атДопКолонки
Функция АНАЛИТИКА_СЧИТАТЬ
Функция ЕСТЬ_АНАЛИТИКА
Особенности работы со счетами и статьями в ЦИКЛе ПО ЖУРНАЛУ


АНАЛИТИКА_СЧИТАТЬ

Функция АНАЛИТИКА_СЧИТАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция АНАЛИТИКА_СЧИТАТЬ позволяет из кода счета с аналитикой заданного в виде строки выделить указанный аналитический признак и считать соответствующую запись из справочника.

Синтаксис:

АНАЛИТИКА_СЧИТАТЬ (<код счета>,<признак> [, <код аналитики>] )

где

<код счета>
строка, соответствующая коду счета с аналитикой.

<признак>
переменная типа ЖУРНАЛ, по которой определяется считываемый признак и в которую он будет считан.

<код аналитики>
строковая переменная, которая передается в функцию при необходимости получить код аналитики.

Результат — логическое выражение (ДА или НЕТ), определяющее успешность чтения признака. Если по счету не ведется аналитический учет с данным объектом или <код счета> не содержит код для этого признака или запись журнала не удалось найти и считать, функция вернет НЕТ. В этом случае поля объекта очищаются (принимают значение по умолчанию).

Возможно использование функции АНАЛИТИКА_СЧИТАТЬ! (с восклицательным знаком). Она не выполняет считывания записи журнала из базы данных, а только изменяет ключевое поле (первичный ключ) в объекте на значение из <код счета> и заполняет переменную <код аналитики> (если она передана в функцию).

Пример:

ОПЕРАЦИЯ Реализация

^сч

ВЫЧИСЛИТЬ

сч = "62"

ВВЕСТИ

ЕСЛИ АНАЛИТИКА_СЧИТАТЬ(сч, клиенты) ТО

// Данные клиента были успешно считаны

клиенты.РЕДАКТИРОВАТЬ

ИНАЧЕ

СООБЩЕНИЕ("По счету должен вестись аналитический учет по клиентам")

СТОП

КОНЕЦ_ЕСЛИ

КОНЕЦ

См.также
Функция АНАЛИТИКА
Функция КОД_СЧЕТА_ТОЛЬКО
Функция ЕСТЬ_АНАЛИТИКА
Особенности работы со счетами и статьями в ЦИКЛе ПО ЖУРНАЛУ


АРХИВ

Свойство АРХИВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

С помощью свойства АРХИВ можно обратиться к дополнительным параметрам бухгалтерской операции.

Синтаксис:

АРХИВ [<название параметра> [, <по умолчанию>] ]

где

<название параметра>
произвольная строка, определяющая название параметра.

<по умолчанию>
задает значение по умолчанию. Оно используется при считывании, если параметр не найден.

Тип — любой. Свойству можно присваивать значения, считывать и выполнять над ним любые арифметические операторы.

Пример:

// Установка дополнительного параметра операции в бланке

АРХИВ ["НДС"] = 10

// Добавление проводки

ПРОВОДКА(счет, "51", сумма, "пп " + СТР(номер), дата, содержание)

См.также
Настройка параметров бланка
Редактирование типа документа
Секция ЗАГРУЗКА
Метод ПОЛЕ


АРХИВ_ЗАПИСАТЬ

Функция АРХИВ_ЗАПИСАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция АРХИВ_ЗАПИСАТЬ позволяет сархивировать один или несколько файлов или каталогов. Функция поддерживает два типа архивов: ZIP и PAK. Последний тип — внутренний формат программы Инфо-Предприятие. Его можно распаковать при помощи функции АРХИВ_СЧИТАТЬ или утилиты arc.exe.

Синтаксис:

АРХИВ_ЗАПИСАТЬ ( <источник>, <приемник> [, <игнор_пути>] [, <игнор_даты>] [, <текст ошибки>] [, <пароль>] ),

где

<источник>
список файлов или каталогов, разделенных ; (точкой с запятой),

<приемник>
имя файла архива; если расширение не указано, используется расширение ZIP.

<игнор_пути>
при упаковке архива будут удалены пути файлов. По умолчанию НЕТ.

<игнор_даты>
при упаковке архива будут удалены даты файлов. По умолчанию НЕТ.

<текст ошибки>
переменная, куда помещается текст ошибки в случае неудачи.

<пароль>
пароль на архив, доступен только для архивов формата PAK. Для формата ZIP будет выдавать ошибку.

Результат — логическое выражение. При успешном завершении возвращает ДА. Если файл архива существует, он будет перезаписан.

Замечание!

Внутренний формат PAK по сравнению с форматом ZIP сжимает до 2 раз лучше, но скорость архивации до 10 раз медленнее (скорость разархивации одинаковая).

Пример:

// Сохраняет в архиве все файлы из каталога документов

успех = АРХИВ_ЗАПИСАТЬ(ДИР_ДОКУМЕНТОВ, "documents.pak", ДА)

См.также
Функция АРХИВ_СЧИТАТЬ


АРХИВ_СЧИТАТЬ

Функция АРХИВ_СЧИТАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция АРХИВ_СЧИТАТЬ позволяет раскрыть архивный файл. Функция поддерживает два типа архивов: ZIP и PAK. Последний тип — внутренний формат программы Инфо-Предприятие, созданный ранее при помощи функции АРХИВ_ЗАПИСАТЬ или утилиты arc.exe.

Синтаксис:

АРХИВ_СЧИТАТЬ ( <источник>, <приемник> [, <игнор_пути>] [, <игнор_даты>] [, <текст ошибки>] [, <пароль>] ),

где

<источник>
имя файла архива, если расширение не указано, используется расширение ZIP,

<приемник>
каталог, куда будет разархивировано содержимое архива. Если каталог не существует, он будет создан.

<игнор_пути>
при распаковке архива будут удалены пути файлов. По умолчанию НЕТ. Для формата ZIP игнорируется.

<игнор_даты>
при распаковке архива будут проигнорированы даты файлов, у распакованных файлов будет текущая дата. По умолчанию НЕТ.

<текст ошибки>
переменная, куда помещается текст ошибки в случае неудачи.

<пароль>
пароль на архив. Для формата ZIP игнорируется.

Результат — логическое выражение. При успешном копировании возвращает ДА. Если распаковываемые файлы существуют, они будут перезаписаны.

Пример:

// Разархивирует содержимое архива

успех = АРХИВ_СЧИТАТЬ("documents.pak", ДИР_ДОКУМЕНТОВ, ДА)

См.также
Функция АРХИВ_ЗАПИСАТЬ


АТРИБУТЫ и АТРИБУТЫВ

Свойства АТРИБУТЫ и АТРИБУТЫВ

описание синтаксис для строк/столбцов синтаксис для ячеек

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

С помощью свойств АТРИБУТЫ и АТРИБУТЫВ можно получить или установить различные атрибуты колонок, строк, ячеек и подъячеек таблицы.

При отображении любой ячейки таблицы программа смотрит последовательно на (с убыванием приоритета):

·Атрибуты самой ячейки

·Атрибуты столбца, в котором лежит ячейка

·Атрибуты строки, в которой лежит ячейка

И использует их при отображении ячейки на экране. Если один и тот же атрибут задан, например, и для столбца и для ячейки, то будет использоваться тот что у ячейки и т.д.

Синтаксис для установки атрибутов строк/столбцов:

АТРИБУТЫ|АТРИБУТЫВ[!][<столбец или строка> [,<атрибут>]]

Здесь параметры

<столбец или строка>
задает координату строки или столбца, для которого задается атрибут. Для ключевого слова АТРИБУТЫ это столбец, а для АТРИБУТЫВ это строка

<атрибут>
задает требуемый атрибут строки или столбца. При помощи этого ключевого слова можно как получать значения указанных атрибутов, так и задавать их.

Атрибуты устанавливаются для существующих ячеек. Если указанная строка или столбец не существуют, программа выдаст сообщение об ошибке и работа алгоритма будет остановлена. Если указать ! (восклицательный знак), то ошибка будет проигнорирована и функция просто ничего не будет делать.

Следующие атрибуты могут устанавливаться для строк и столбцов:

атЦвет | задает цвет текста строки/столбца
атФон | задает цвет фона строки/столбца
атПусто | отображаемое значение пустых ячеек
атСекция | задает номер секции строки/столбца
атНазвание | задает название строки/столбца
атТочность | задает число знаков после запятой для чисел в строке/столбце
атВыравнивание | задает тип выравнивания в строке/столбце
атЕдиницы | задает единицы измерения для чисел в строке/столбце
атПрефикс | задает префикс для чисел в строке/столбце
атВозврат | задает параметр для передачи в вызываемый отчет
атВозвратНач | задает начальную дату вызываемого отчета
атВозвратКон | задает конечную дату вызываемого отчета
атЗапретПерехода | блокирует (скрывает) пункт меню "Перейти в журнал"
атФиксировано | задает принцип задания ширины столбца
атШирина | задает ширину колонки
атФиксКолонки | для многоуровневого отчета задает количество фиксированных колонок в подуровне
атПолныйВид | отображать согласно настройкам вывода названий
атСкрываемо | можно ли скрыть в подуровнях, если нет значений
атИтог | говорит программе, что строчка/столбец является итоговой
атГруппа | доступ к координате группы
атЗаголовокГруппы | доступ к добавочному заголовку группы
атСтатус | доступ к тексту статуса для строки/столбца
атПодсказка | доступ к тексту всплывающей подсказки для строки/столбца
атБезЛиний | определяет, будут ли рисоваться вертикальные линии для указанного столбца или строки

Синтаксис для установки атрибутов ячеек:

АТРИБУТЫ [!][<столбец>, <строка> [,<подъячейка>] [,<атрибут>]]

АТРИБУТЫВ[!][<строка>, <столбец> [,<подъячейка>] [,<атрибут>]]

Здесь

<столбец> и <строка>
задают координаты ячейки, для которой задается атрибут

<подъячейка>
определяет номер подъячейки. По умолчанию он равен 0. Не все атрибуты могут устанавливаться для подъячеек

<атрибут>
задает требуемый атрибут. При помощи этого ключевого слова можно как получать значения указанных атрибутов, так и задавать их. Атрибуты устанавливаются для существующих ячеек.

Если указанная ячейка не существуют, программа выдаст сообщение об ошибке и работа алгоритма будет остановлена. Если указать ! (восклицательный знак), то ошибка будет проигнорирована и функция просто ничего не будет делать.

Следующие атрибуты могут устанавливаться для ячеек:

атЦвет | задает цвет текста ячейки
атФон | задает цвет фона ячейки
атТочность | задает число знаков после запятой для числа в ячейке
атЕдиницы | задает единицы измерения ячеек
атПрефикс | задает префикс для числа в ячейке
атВыравнивание | задает тип выравнивания в ячейке
атНеСуммировать | запрещает суммирование ячейки при выполнении ГРУППА и ИТОГО
атСкрыта | ячейка скрыта или показывается
атСторно | определяет порядок суммирования ячейки при выполнении ГРУППА
атПодсказка | доступ к тексту всплывающей подсказки ячейки
атБезЛиний | определяет, будет ли рисоваться вертикальная линия справа от указанной ячейки
атОбъединить | объединяет указанную ячейку с ячейкой справа
атШрифт | устанавливает шрифт ячейки
атГистограмма | включает отображение гистограммы и задает верхний предел
атДопКолонки | связывает с ячейкой запись журнала для отображения дополнительных колонок
атЭтоРисунок | говорит программе что в ячейке содержится путь к файлу рисунка
атЭтоСчет | говорит программе что в ячейке содержится код счета
атЭтоСтатья | говорит программе что в ячейке содержится код статьи

См. также
АТРИБУТЫГР и АТРИБУТЫВГР


АТРИБУТЫГР и АТРИБУТЫВГР

Свойства АТРИБУТЫГР и АТРИБУТЫВГР

описание синтаксис для строк/столбцов синтаксис для ячеек

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойства АТРИБУТЫГР и АТРИБУТЫВГР аналогичны свойствам АТРИБУТЫ и АТРИБУТЫВ, но позволяют устанавливать атрибуты сразу для нескольких строк, столбцов или ячеек.

Синтаксис для установки атрибутов строк/столбцов:

АТРИБУТЫГР|АТРИБУТЫВГР[<шаблон строк/столбцов> [,<атрибут>]]

Здесь параметр

<шаблон строк/столбцов>
указывает шаблон строк/столбцов, для которых будет устанавливаться атрибут

<атрибут>
задает требуемый атрибут строки или столбца. При помощи этого ключевого слова можно задать значения указанных атрибутов.

Синтаксис для установки атрибутов ячеек:

АТРИБУТЫГР [<шаблон столбцов>, <шаблон строк>[,<атрибут>]]

АТРИБУТЫВГР[<шаблон строк>, <шаблон столбцов>[,<атрибут>]]

Здесь

<шаблон столбцов>
указывает шаблон столбцов

<шаблон строк>
задает шаблон строк ячеек

<атрибут>
задает требуемый атрибут ячейки.

Функции не выдают ошибку, если под шаблон не попадает ни одной ячейки.


атБезЛиний

Атрибут атБезЛиний

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атБезЛиний определяет, будут ли рисоваться вертикальные линии для указанного столбца или строки.

Пример.

АТРИБУТЫ[1,атБезЛиний] = ДА

См.также
атБезЛиний для ячеек


атБезЛиний

Атрибут атБезЛиний

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут ячейки атБезЛиний определяет, будет ли рисоваться вертикальная линия справа от указанной ячейки.

Пример.

АТРИБУТЫ[1,2,атБезЛиний] = ДА

См.также
атБезЛиний для строк/столбцов
атОбъединить для ячеек


атОбъединить

Атрибут атОбъединить

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут ячейки атОбъединить объединяет содержимое текущей ячейки с ячейкой справа. После объединения содержимое ячейки справа перестает отображаться.

Пример.

ЯЧЕЙКА[1,1] = "Объединение"
// обе ячейки должны существовать, создадим правую, присвоив пустую строку (с указанием «!»)
ЯЧЕЙКА![2,1] = ""
АТРИБУТЫ[1,2,атОбъединить] = ДА

См.также
атБезЛиний для ячеек


атВозврат

Атрибут атВозврат

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атВозврат — задает параметр, который будет передаваться в вызываемый (дочерний) отчет. По умолчанию программа передает координаты ячейки. Возвращаемый параметр должен быть строкового или объектного типа. В последнем случае он задает связанную со строкой/столбцом запись. Аналогично ВОЗВРАТ, ВОЗВРАТВ.

Пример.

АТРИБУТЫ[1,атВозврат] = "Первый"

См.также
Свойство ВОЗВРАТ
Свойство ВОЗВРАТВ


атВозвратКон

Атрибут атВозвратКон

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атВозвратКон — задает конечную дату, по которой будет строиться вызываемый (дочерний) отчет. По умолчанию эта дата равна НЕТ_ДАТЫ, что означает, что вызываемый отчет будет строиться по тому же отчетному периоду, что и исходный.

Пример.

АТРИБУТЫ[1,атВозвратКон] = ДАТА_КОН

См.продробнее
Работа с периодами в отчетах


атВозвратНач

Атрибут атВозвратНач

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атВозвратНач — задает начальную дату, по которой будет строиться вызываемый (дочерний) отчет. По умолчанию эта дата равна НЕТ_ДАТЫ, что означает, что вызываемый отчет будет строиться по тому же отчетному периоду, что и исходный.

Пример.

АТРИБУТЫ[1,атВозвратНач] = ДАТА_НАЧ

См.продробнее
Работа с периодами в отчетах


атВыравнивание

Атрибут атВыравнивание

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атВыравнивание — задает тип выравнивания в строке/столбце. Атрибут имеет строковый тип и может принимать значения "П" — выравнивание вправо, "Ц" — выравнивание по центру, "Л" — выравнивание влево. По умолчанию, программа выравнивает все числовые значения вправо, а остальные влево.

Пример.

АТРИБУТЫ[1,атВыравнивание] = "П"

Сравни Выравнивание в функции ВЫВЕСТИ


атВыравнивание

Атрибут ячейки атВыравнивание

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атВыравнивание — задает тип выравнивания в ячейке. Атрибут имеет строковый тип и может принимать значения "П" — выравнивание вправо, "Ц" — выравнивание по центру, "Л" — выравнивание влево. По умолчанию, программа выравнивает все числовые значения вправо, а остальные влево. Указание номера подъячейки игнорируется.

Пример.

АТРИБУТЫ[1,2,атВыравнивание] = "П"

Сравни Выравнивание в функции ВЫВЕСТИ


атГистограмма

Атрибут ячейки атГистограмма

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атГистограмма — включает отображение гистограммы для числовой ячейки и задает верхний предел. Чтобы отключить отображение гистограммы, достаточно передать 0-ое значение верхнего предела.

Пример.

АТРИБУТЫВ[1,2,атГистограмма] = 100


атГруппа

Атрибут атГруппа

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атГруппа — возвращает или устанавливает координату строки (столбца), в которую входит данная строчка (столбец) в качестве подгруппы.

Для пересчета итогов по созданным с помощью этого атрибута группам могут использоваться функции ГРУППА_ПЕРЕСЧЕТ и ГРУППАВ_ПЕРЕСЧЕТ.

Этот атрибут может использоваться вместо функций ГРУППА и ГРУППАВ для задания группы напрямую, однако программа не проверяет корректность группировки (например, взаимную вложенность), что может привести к неадекватному поведению программы.

Пример.

ЯЧЕЙКА["СУБ",АТРИБУТЫВ["Название",атГруппа]] ++


атДопКолонки

Атрибут атДопКолонки

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атДопКолонки строкового типа. Он определяет связанную с ячейкой запись журнала. Это позволит пользователю при работе с отчетом выводить дополнительные колонки из этого журнала. Аналогично функции ДОП_КОЛОНКИ.

Значение атрибута представлено строкой следующего вида:

"<идентификатор журнала>.<идентификатор ключевого поля>[:<вид журнала>]" + РР + "<значение>"

например:

"товары.код" + РР + "СТОЛ"

Строки подобного формата возвращает функция АНАЛИТИКА_ИНФО.

Пример.

АНАЛИТИКА_ИНФО(сч, инфо)

АТРИБУТЫ["Название", сч, атДопКолонки] = инфо!ВСЕГОМ(инфо)

См.также
Функция ДОП_КОЛОНКИ


атЕдиницы

Атрибут атЕдиницы

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атЕдиницы — задает единицы измерения для числовых значений в строке/столбце. Единицы измерения отображаются в ячейке отчета сразу за числом (отделяются от него одним пробелом) и никак не влияют на расчет.

Пример.

АТРИБУТЫ[1,атЕдиницы] = "шт"

См.также
атПрефикс


атЕдиницы

Атрибут ячейки атЕдиницы

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атЕдиницы задает единицы измерения ячеек. Может устанавливаться как для всей ячейки в целом, так и для указанной подъячейки. Тип значения ячеек не проверяется, как при задании единиц измерения для строк/столбцов.

Пример.

АТРИБУТЫ[1,2,атЕдиницы] = "шт"

См.также
атПрефикс


атЗаголовокГруппы

Атрибут атЗаголовокГруппы

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атЗаголовокГруппы — возвращает или устанавливает заголовок группы. Он будет добавляться к заголовку отчета при входе внутрь группы, чтобы было видно внутри какой группы находится пользователь. Например, если отчет называется «Отчет», а заголовок группы «Группа», то при входе внутрь в этой группы в заголовке окна будет показываться «Группа — Отчет».

Если атрибут не задавался, для формирования добавочного заголовка группы будут использованы стандартные подсказки. Такие подсказки формируются, если установлена опция Использовать стандартные подсказки в параметрах отчета (текст формируется на основе ячеек, имеющих атрибут атПолныйВид).

Если же и стандартные подсказки не заданы, добавочный заголовок формируется из названия строки, заданной атрибутом атНазвание или его координаты.

Пример.

ЯЧЕЙКА["001",атЗаголовокГруппы] = "Иванов Петр Сергеевич"


атЗапретПерехода

Атрибут атЗапретПерехода

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атЗапретПерехода — блокирует (скрывает) пункт меню "Перейти в журнал", который появляется автоматически у записи, связанной со строкой/столбцом ячейки с помощью ВОЗВРАТ, ВОЗВРАТВ или атрибута атВозврат.

Пример.

АТРИБУТЫ[1,атЗапретПерехода] = ДА


атИтог

Атрибут атИтог

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атИтог — устанавливается для того, чтобы сказать программе, что строчка (столбец) является итоговой. При установке этого параметра автоматически изменяются параметры атЦвет и атВозврат: цвет текста строки (столбца) изменяется на темно-синий, а возвращаемый параметр на "*". Этот атрибут может использоваться при добавлении итоговых строк (столбцов) без использования функций ИТОГО и ИТОГОВ.

Пример.

АТРИБУТЫВ["Итого",атИтог] = ДА


атНазвание

Атрибут атНазвание

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атНазвание — задает название строки/столбца. По умолчанию программа отображает в заголовке координаты ячеек. Аналогично ЯЧЕЙКАГОР, ЯЧЕЙКАВЕРТ.

Пример.

АТРИБУТЫ[1,атНазвание] = "Итого"


атНеСуммировать

Атрибут ячейки атНеСуммировать

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атНеСуммировать — запрещает суммирование ячейки при выполнении ГРУППА и ИТОГО. Может устанавливаться как для всей ячейки в целом, так и для указанной подъячейки.

Пример.

АТРИБУТЫВ[1,2,атНеСуммировать] = ДА


атПодсказка

Атрибут атПодсказка

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атПодсказка — возвращает или устанавливает текст всплывающей подсказки для строки (столбца). Она будет появляться при наведении мыши на ячейки из этой строки (столбца), не имеющие собственных подсказок (подсказка ячейки имеет более высокий приоритет).

По умолчанию, если установлена опция Использовать стандартные подсказки в параметрах отчета текст подсказок формируется на основе ячеек, имеющих атрибут атПолныйВид.

Пример.

АТРИБУТЫВ["50",атПодсказка] = "Касса"


атПодсказка

Атрибут ячейки атПодсказка

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атПодсказка — возвращает или устанавливает текст всплывающей подсказки для ячейки. Она будет появляться при наведении мыши на эту ячейку.

Помимо использования атрибутов подсказки могут формироваться обработчиком всплывающей подсказки.

Пример.

АТРИБУТЫ["Счет","50",атПодсказка] = "Касса"


атПолныйВид

Атрибут атПолныйВид

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атПолныйВид — столбцы (строки) с данным атрибутом отображаются согласно настройкам вывода названий в таблицах в меню «Установка | Настройки». Если переключатель установлен в режим "Названия не выводятся", то такие столбцы (строки) будут скрыты. Если переключатель установлен в режим "В зависимости от ширины таблицы", то ширина подгоняется исходя из общего размера таблицы на экране (как в атрибуте атФиксировано=НЕТ). Если переключатель установлен в режим "Выводятся полностью", то ширина постоянна и равняется максимальной ширине ячейки из этого столбца (как в атрибуте атФиксировано=ДА). Ячейки с этим атрибутом могут использоваться для отображения строки статуса и всплывающих подсказок.

Замечание!

Атрибут не действует, если у колонки задана ширина с помощью атрибута атШирина.

Пример.

АТРИБУТЫ[1,атПолныйВид] = ДА

См.также
атФиксировано
атШирина


атПрефикс (строка/столбец)

Атрибут атПрефикс

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атПрефикс — возвращает или устанавливает префикс для числовых значений в строке/столбце. Префикс отображается в ячейке отчета перед числом (и в отличие от единиц измерения не отделяется пробелом) и никак не влияет на расчет.

Пример.

АТРИБУТЫВ["Сумма",атПрефикс] = "НУ "

См.также
атЕдиницы


атПрефикс (ячейка)

Атрибут ячейки атПрефикс

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атПрефикс задает префикс ячейки. Может устанавливаться как для всей ячейки в целом, так и для указанной подъячейки. Тип значения ячеек не проверяется, как при задании префикса для строк/столбцов. Префикс отображается в ячейке отчета перед числом (и в отличие от единиц измерения не отделяется пробелом) и никак не влияет на расчет.

Пример.

АТРИБУТЫ["Сумма",2,Префикс] = "НУ "

См.также
атЕдиницы


атПусто

Атрибут атПусто

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атПусто — задает строку, которая будет отображаться по умолчанию, если ячейка не содержит значения. Обычно это просто пустая строка, однако при помощи этого атрибута можно изменить это значение.

Пример.

АТРИБУТЫ[1,атПусто] = "-"


атСекция

Атрибут атСекция

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атСекция — задает номер секции строки/столбца. При создании новых ячеек отчета, этот атрибут задается в качестве параметра в ключевых словах ЯЧЕЙКА, ЯЧЕЙКАГОР, ЯЧЕЙКАВЕРТ. Использование же ключевого слова АТРИБУТЫ позволяет задать секцию для уже существующих строк/столбцов, а также получить номер секции столбца/строки.

Пример.

АТРИБУТЫ[1,атСекция] = 1


атСкрываемо

Атрибут атСкрываемо

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атСкрываемо — говорит программе, можно ли скрыть указанный столбец (строку), если в нем нет значений (заполненных ячеек). Программа использует этот параметр при отображении таблицы многоуровневого отчета. При входе в подуровень в нем отображаются только строки (столбцы) из этого подуровня. Поэтому некоторые столбцы (строки) могут оказаться не заполненными, и программа их скрывает. По умолчанию все столбцы (строки) скрываемы. Для отчетов, являющихся многоуровневыми как по столбцам, так и по строкам, если столбец (строка) не может быть скрыта, то и группа, ее содержащая, также будет помечена программой как нескрываемая.

Пример.

АТРИБУТЫ[1,атСкрываемо] = НЕТ


атСкрыта

Атрибут ячейки атСкрыта

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атСкрыта — говорит о том, скрыта ячейка или нет. Атрибут имеет три возможных значения:

0 — ячейка показывается

1 — ячейка скрыта (не показывается)

2 — ячейка скрыта (не показывается), но в суммировании итогов учавствует.

Этот же атрибут можно задавать с помощью функции СКРЫТЬ_ЯЧЕЙКИ.

Пример.

АТРИБУТЫ[1,атСкрыта] = 1


атСтатус

Атрибут атСтатус

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атСтатус — возвращает или устанавливает текст статуса для строки (столбца). Только статус строки будет отображаться. Статус для столбца имеет смысл устанавливать только в том случае, если отчет будет перевернут.

По умолчанию, если установлена опция Использовать стандартную строку статуса в параметрах отчета текст статуса формируется на основе ячеек, имеющих атрибут атПолныйВид.

Пример.

АТРИБУТЫВ["50",атСтатус] = "Касса"


атСторно

Атрибут ячейки атСторно

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атСторно — определяет порядок суммирования ячейки при выполнении ГРУППА. При установленном флаге числовые значения участвуют со знаком "-". Может устанавливаться как для всей ячейки в целом, так и для указанной подъячейки. Атрибут атСторно игнорируется если установлен атрибут атНеСуммировать.

Пример.

АТРИБУТЫВ[1,2,атСторно] = ДА


атТочность

Атрибут ячейки атТочность

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атТочность — задает число знаков после запятой при отображении числовых значений. Может устанавливаться как для всей ячейки в целом, так и для указанной подъячейки.

Пример.

АТРИБУТЫ[1,1,атТочность] = 3

Замечание!

Это значение никак не влияет на округление в процессе расчета алгоритма — для таких случаев существует функция ОКРУГЛЕНИЕ.

См.также
Функции ЗНАК_СУМ, ЗНАК_ЦЕНА, ЗНАК_ВАЛ, ЗНАК_КОЛ


атТочность

Атрибут атТочность

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атТочность — задает число знаков после запятой для всех числовых значений в строке/столбце.

Пример.

АТРИБУТЫ[1,атТочность] = 3

Замечание!

Это значение никак не влияет на округление в процессе расчета алгоритма — для таких случаев существует функция ОКРУГЛЕНИЕ.

См.также
Функции ЗНАК_СУМ, ЗНАК_ЦЕНА, ЗНАК_ВАЛ, ЗНАК_КОЛ


атФиксировано

Атрибут атФиксировано

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атФиксировано — задает принцип задания ширины столбца. Если ширина фиксирована, то она постоянна и равняется максимальной ширине ячейки из этого столбца. Иначе — она подгоняется исходя из общего размера таблицы на экране. По умолчанию ширины колонок фиксированы.

Замечание!

Атрибут не действует, если у колонки задана ширина с помощью атрибута атШирина.

Пример.

АТРИБУТЫ[1,атФиксировано] = НЕТ

См.также
атШирина


атФиксКолонки

Атрибут атФиксКолонки

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атФиксКолонки — для многоуровневого отчета задает количество зафиксированных колонок в подгруппе — столбцов, которые программа выделяет цветом и фиксирует при печати. По умолчанию значение равно -1 (минус единицы), что означает, что параметры будут браться из настроек отчета (опция "Зафиксировать колонки слева" в диалоге параметров)

Пример.

АТРИБУТЫ[1,атФиксКолонки] = 2

См.также
парФиксКолонки


атФон

Атрибут ячейки атФон

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атФон — задает цвет фона ячейки. Указание номера подъячейки игнорируется.

Если для строки или столбца ячейки также задан цвет фона, то для отображения будет использоваться цвет фона ячейки, а не цвет фона столбца или строки. Задание цвета фона ячейки имеет более высокий приоритет при отображении. Чтобы убрать задание цвета фона ячейки, надо использовать значение цвета цвНет. После этого ячейка будет показываться цветом, указанным в строке или столбце.

Пример.

АТРИБУТЫ[1,атФон] = цвСерый

См.также
атЦвет для ячеек
атФон для строк/столбцов


атФон

Атрибут атФон

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атФон — задает цвет фона строки/столбца. Фон заголовка столбца и фиксированной части строки атрибут не устанавливает.

Чтобы убрать ранее заданный цвет фона строки/столбца, необходимо присвоить атрибуту значение цвНет.

Пример.

АТРИБУТЫ[1,атФон] = цвСерый

См.также
атЦвет для строк/столбцов
атФон для ячеек


атЦвет

Атрибут ячейки атЦвет

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атЦвет задает цвет текста ячейки. Указание номера подъячейки игнорируется. Атрибут не влияет на цвет заголовка столбца и фиксированной части строки. Для этого надо использовать соответствующий атрибут для строки/столбца.

Если для строки или столбца ячейки также задан цвет, то для отображения будет использоваться цвет ячейки, а не цвет столбца или строки. Задание цвета ячейки имеет более высокий приоритет при отображении. Чтобы убрать задание цвета ячейки, надо использовать значение цвета цвНет. После этого ячейка будет показываться цветом, указанным в строке или столбце.

Пример.

АТРИБУТЫ[1,1,атЦвет] = цвСерый

См.также
атФон для ячеек
атЦвет для строк/столбцов


атЦвет

Атрибут атЦвет

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атЦвет задает цвет текста строки/столбца. Цвет задается не только для самих ячеек, но и для заголовка столбца и фиксированной части строки.

В программе существуют определенные предустановленные правила задания цвета для ячеек. Так, для отрицательных числовых значений ячейка может использоваться красный цвет (если так указано в настройках форматов), а итоги выделяются темно-синим. После задания цвета строки/столбца предустановленные правила перестают действовать. Чтобы убрать ранее заданный цвет строки/столбца и восстановить действия предустановленных правил задания цвета для ячеек, необходимо присвоить атрибуту значение цвНет.

Пример.

АТРИБУТЫ[1,атЦвет] = цвСерый

См.также
атФон для строк/столбцов
атЦвет для ячеек


атШирина

Атрибут атШирина

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атШирина задает ширину колонки в процентах от 0 до 100.

Если у колонки ширина не задана, то ширина равняется максимальной ширине ячейки из этого столбца если атрибут атФиксировано = ДА или же она подгоняется исходя из общего размера таблицы на экране, если атрибут атФиксировано = НЕТ.

Если у колонки задана ширина, то она постоянна и не меняется в зависимости от содержимого ячеек. Но в этом случае у ячеек этой колонки включается автоопределение высоты. Высота ячеек будет рассчитываться так, чтобы содержимое поместилось в ячейку.

Пример.

АТРИБУТЫ[1,атШирина] = 30

См.также
атФиксировано


атШрифт

Атрибут ячейки атШрифт

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атШрифт позволяет задать шрифт ячейки. Параметру присваивается объект ШРИФТ.

По умолчанию все объекты ШРИФТ, созданные в отчете, инициализированы значением шрифта таблиц.

Пример.

ш ЭТО ШРИФТ
ш.размер ++
АТРИБУТЫВ[1,2,атШрифт] = ш


атЭтоРисунок

Атрибут ячейки атЭтоРисунок

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атЭтоРисунок — говорит программе что в ячейке содержится путь к файлу рисунка. Файл рисунка может быть файлом внутри базы данных или на диске компьютера.

Пример.

АТРИБУТЫВ[1,2,атЭтоРисунок] = ДА


атЭтоСтатья

Атрибут ячейки атЭтоСтатья

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атЭтоСтатья — говорит программе что в ячейке содержится код статьи. Данное сообщение позволяет обрабатывать такие ячейки по-своему, например, отображать всплывающие подсказки в виде названия статьи.

Пример.

АТРИБУТЫВ[1,2,атЭтоСтатья] = ДА


атЭтоСчет

Атрибут ячейки атЭтоСчет

Атрибуты

 Вернуться к началу раздела

Описание:

Атрибут атЭтоСчет — говорит программе что в ячейке содержится код счета. Данное сообщение позволяет обрабатывать такие ячейки по-своему, например, отображать всплывающие подсказки в виде названия счета.

Пример.

АТРИБУТЫВ[1,2,атЭтоСчет] = ДА


БД_ВСЕГО

Функция БД_ВСЕГО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание.

Функция БД_ВСЕГО (синоним ХМЛ_ВСЕГО) возвращает количество имеющихся записей в открытом XML или DBF файле.

Синтаксис:

БД_ВСЕГО

Результат — число.

Пример:

БД_ОТКРЫТЬ // открывается DBF-файл с именем бланка

ЕСЛИ БД_ВСЕГО > 0 ТО // Если в базе есть записи, то

Актив = БД_ПОЛЕ ("ACTIV") // переменной Актив присваивается значение из поля ACTIV 1-й записи

Пассив = БД_ПОЛЕ ("PASSIV") // переменной Пассив присваивается значение из поля PASSIV 1-й записи

КОНЕЦ_ЕСЛИ

БД_ЗАКРЫТЬ // закрывается DBF-файл

См. также
Метод ВСЕГО объекта БД


БД_ВЫБОР

Функция БД_ВЫБОР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_ВЫБОР (синоним ХМЛ_ВЫБОР) выводит диалоговое окно выбора записи XML или DBF файла в виде таблицы. При нажатии на кнопку ОК функция возвращает номер выбранной записи, а при нажатии на <Отмена> возвращает ноль.

Синтаксис:

БД_ВЫБОР [ ( [<имя объекта>] [, <заголовок>] [ [,<имя поля 1> [:<название 1>

[:<длина 1>] ] ] [, ...] ] ] [,<номер>] )],

где

<имя объекта>
идентификатор объекта БД, если не указан используется объект по-умолчанию

<заголовок>
заголовок окна выбора;

<имя поля n>
имя n-го поля;

<название n>
длина n-го поля в таблице;

<длина n>
название n-го поля в таблице;

<номер>
номер записи, на которую устанавливается курсор в таблице при запуске функции (по умолчанию 1).

Результат — номер выбранной записи в базе данных.

Пример:

Пусть имеется файл People.dbf, в котором содержатся фамилии, адреса, телефоны сотрудников. Покажем, как можно воспользоваться функцией БД_ВЫБОР простейшим образом:

БД_ОТКРЫТЬ ("People") // открываем файл People.dbf

ном=БД_ВЫБОР // в переменную ном заносится

ЕСЛИ ном > 0 ТО // номер выбранной записи

БД_ПЕРЕЙТИ (ном) // теперь эту запись можно

... // считать и т.д.

КОНЕЦ_ЕСЛИ

БД_ЗАКРЫТЬ

См. также
Функция БД_РЕДАКТОР
Графа с выбором из XML или DBF


БД_ЗАКРЫТЬ

Функция БД_ЗАКРЫТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание.

Функция БД_ЗАКРЫТЬ (синоним ХМЛ_ЗАКРЫТЬ) закрывает ранее открытый файл в формате XML или DBF с сохранением сделанных в нем изменений.

Эта функция используется, если необходимо закрыть один файл данных и перейти к работе с другим. Последняя измененная, но не сохраненная, запись будет добавлена к закрываемой базе данных. При завершении работы алгоритма, открытый XML или DBF файл закрывается автоматически.

Синтаксис:

БД_ЗАКРЫТЬ

Пример:

БД_СОЗДАТЬ ("TEST1") // создается DBF-файл с именем Test1.dbf

...

БД_ЗАКРЫТЬ // закрывается файл Test1.dbf

БД_СОЗДАТЬ ("TEST2") // создается DBF-файл с именем Test2.dbf

...

БД_ЗАКРЫТЬ // закрывается файл Test2.dbf

См. также
Метод ЗАКРЫТЬ объекта БД


БД_ЗАМЕНИТЬ

Функция БД_ЗАМЕНИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_ЗАМЕНИТЬ (синоним ХМЛ_ЗАМЕНИТЬ) заменяет (перезаписывает) текущую запись в XML или DBF файле после ее изменения. Предполагается, что вначале была вызвана функция БД_СЧИТАТЬ для считывания текущей записи, затем была вызвана один или несколько раз функция БД_ПОЛЕ для изменения полей текущей записи и затем БД_ЗАМЕНИТЬ.

Синтаксис:

БД_ЗАМЕНИТЬ

Пример:

БД_ОТКРЫТЬ ("TEST") // открывается файл Test.dbf и считывается первая запись

БД_ПОЛЕ ("NAME", "Иван") // в поле NAME заносится значение "Иван"

БД_ПОЛЕ ("AGE", 30) // в поле AGE заносится 30

БД_ЗАМЕНИТЬ // измененная запись записывается в базу данных вместо старой

БД_СЧИТАТЬ // считывается следующая запись

БД_ПОЛЕ ("NAME", "Петр") // изменяются поля во второй записи

БД_ПОЛЕ ("AGE", 25)

БД_ЗАМЕНИТЬ // измененная запись записывается в базу данных вместо старой

БД_ЗАКРЫТЬ // закрывается DBF-файл

См. также
Метод ЗАМЕНИТЬ объекта БД


БД_ЗАПИСАТЬ

Функция БД_ЗАПИСАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_ЗАПИСАТЬ (синоним ХМЛ_ЗАПИСАТЬ) добавляет текущую запись в конец XML или DBF файла.

После выполнения функции содержимое полей текущей записи не изменяется.

Синтаксис:

БД_ЗАПИСАТЬ

Пример:

БД_СОЗДАТЬ // создается DBF-файл с именем бланка, например, Balans.dbf

БД_ПОЛЕ ("ACTIV", Актив) // в поле ACTIV заносится значение переменной Актив бланка

БД_ПОЛЕ ("PASSIV", Пассив) // в поле PASSIV заносится значение переменной Пассив бланка

БД_ЗАПИСАТЬ // следующая запись

БД_ПОЛЕ ("ACTIV", Актив) // в поле ACTIV заносится значение переменной Актив бланка

БД_ПОЛЕ ("PASSIV", Пассив) // в поле PASSIV заносится значение переменной Пассив бланка

БД_ЗАКРЫТЬ // закрывается DBF-файл

См. также
Метод ЗАПИСАТЬ объекта БД


БД_ОТКРЫТЬ

Функция БД_ОТКРЫТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_ОТКРЫТЬ (синоним ХМЛ_ОТКРЫТЬ) открывает на чтение или дозапись файл в формате XML или DBF. Формат файла определяется программой автоматически. При открытии существующего файла автоматически считывается первая запись.

Синтаксис:

БД_ОТКРЫТЬ [ (<имя файла> [,<кодировка>] ) ]

где

<имя файла>
имя открываемого XML или DBF файла. Если имя файла не указано, создается файл с тем же именем, что и файл бланка.

<кодировка>
параметр логического типа, определяющий необходимость перекодировки символов (по умолчанию ДА — кодовая страница 866). Применяется только для файлов DBF.

Пример:

БД_ОТКРЫТЬ ("TEST") // открывается файл базы данных с именем Test.dbf

БД_ПОЛЕ ("ACTIV", Актив) // в поле ACTIV заносится значение переменной Актив

БД_ПОЛЕ ("PASSIV", Пассив) // в поле PASSIV заносится значение переменной Пассив

БД_ЗАПИСАТЬ

БД_ЗАКРЫТЬ // закрывается DBF-файл

См. также
Метод ОТКРЫТЬ объекта БД


БД_ПЕРЕЙТИ

Функция БД_ПЕРЕЙТИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Устаревшая функция БД_ПЕРЕЙТИ (синоним ХМЛ_ПЕРЕЙТИ) оставлена для совместимости с существующими разработками. Следующие два фрагмента кода являются идентичными:

БД_ПЕРЕЙТИ (<номер записи>)
БД_СЧИТАТЬ

и

БД_СЧИТАТЬ (<номер записи>)

См. также
Метод ПЕРЕЙТИ объекта БД


БД_ПОЛЕ

Функция БД_ПОЛЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_ПОЛЕ (синоним ХМЛ_ПОЛЕ) или возвращает значение поля текущей записи XML или DBF файла, или заносит новое значение в поле текущей записи.

Синтаксис (чтение):

Для получения значения из определенного поля текущей записи базы данных

БД_ПОЛЕ (<имя поля> [,<тип значения>] )

где

<имя поля>
имя поля в записи (до 10 букв латинского алфавита или цифр для файлов DBF, для XML не ограничено).

<тип значения>
необязательный параметр, определяющий тип значения; рекомендуется его указывать для контроля типов на этапе компиляции алгоритма.

Тип результата зависит от типа поля.

Синтаксис (запись):

Для занесения нового значения в поле текущей записи базы данных

БД_ПОЛЕ (<имя поля>,<знач.> [,<длина> [,<дес. знаков>] ] )

где

<имя поля>
выражение строкового типа — имя поля в записи до 10 букв латинского алфавита или цифр;

<знач.>
выражение соответствующего типа. Если это первое обращение к полю во вновь создаваемой базе данных, то тип поля будет определяться типом этого выражения;

<длина>
длина поля. Имеет значение только для полей типа строка и число при первом обращении к полю.

<дес. знаков>
количество десятичных знаков после запятой. Имеет смысл только для полей числового типа.

Функция БД_ПОЛЕ в этом режиме может, как добавлять поля в базу данных, так и изменять значения полей. Если файл XML или DBF только что создан, то БД_ПОЛЕ добавляет в него поле с указанным именем. Тип добавляемого поля определяется из записываемого значения. Поддерживаются следующие типы данных :

·Строковый тип — тогда дополнительный параметр <длина> определяет длину строкового поля, если длина не указана, то она полагается равной длине строки <значение>

·Числовой тип — в этом случае параметры <длина> и <точность> определяют длину числа и его точность. Если параметр <длина> не указан, то он полагается равным 15.

·Тип дата — без параметров

·Логический тип — без параметров

После закрытия только что созданной базы значения полей записываются и после этого их тип и длину изменять нельзя. В дальнейшем БД_ПОЛЕ работает только для изменения значений уже существующих полей. Дополнительные параметры игнорируются. После внесения изменений в поля текущей записи следует вызывать методы ЗАПИСАТЬ или ЗАМЕНИТЬ — только после этого действительно происходит изменения в базе данных. Значение полей с указанным именем изменяются в текущей записи.

Пример 1:

БД_ОТКРЫТЬ // открывается DBF-файл с именем бланка

Актив = БД_ПОЛЕ ("ACTIV") // переменной Актив присваивается значение из поля ACTIV первой записи

Пассив = БД_ПОЛЕ ("PASSIV") // переменной Пассив присваивается значение из поля PASSIV первой записи

БД_ЗАКРЫТЬ // закрывается DBF-файл

Пример 2:

БД_СОЗДАТЬ // создается DBF-файл с именем файла-бланка, например, Balans.dbf

БД_ПОЛЕ ("ACTIV", Актив, 10, 2) // в поле ACTIV заносится значение переменной Актив

// длина поля - 10 знаков, 2 знака после запятой

БД_ПОЛЕ ("PASSIV", Пассив, 10, 2) // в поле PASSIV заносится значение переменной Пассив

БД_ЗАПИСАТЬ

БД_ЗАКРЫТЬ // закрывается DBF-файл

См. также
Методы ЗАП_ПОЛЕ и ПОЛЕ объекта БД


БД_РЕДАКТОР

Функция БД_РЕДАКТОР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_РЕДАКТОР (синоним ХМЛ_РЕДАКТОР) выводит диалоговое окно редактирования файла в формате XML или DBF. Обращение в функции БД_РЕДАКТОР может осуществляться как для текущего определенного по умолчанию XML или DBF файла, так и по имени объекта БД.

Синтаксис:

БД_РЕДАКТОР [ ( [<имя объекта>,] [<заголовок>,]

[ [%] [<имя поля 1> [:<название 1> [:<длина 1>] ] ] [, ... ] ] ] [,<номер>]

[,<редактирование> [,<добавление> [,<удаление> [,<выбор записи>] ] ] ] ) ]

где

<имя объекта>
идентификатор объекта БД

<заголовок>
заголовок окна выбора;

%
указанное поле имеет атрибут "Только для чтения";

<имя поля n>
имя n-го поля;

<название n>
название n-го поля в таблице;

<длина n>
длина n-го поля в таблице;

<номер>
номер записи, на которую устанавливается курсор таблицы при запуске функции (по умолчанию 1);

<редактирование>
выражение логического типа, разрешающее редактировать значения полей записей базы данных по клавише F4 (по умолчанию ДА);

<добавление>
выражение логического типа, разрешающее добавлять новые записи в базу данных (по умолчанию ДА);

<удаление>
выражение логического типа, разрешающее удалять записи из базы данных (по умолчанию ДА).

<выбор записи>
выражение логического типа, указывающее на необходимость открытия окна редактирования при выборе записи (по умолчанию НЕТ).

Результат — номер выбранной записи.

Список отображаемых полей указывается в квадратных скобках. Функция БД_РЕДАКТОР по сути является расширенной версией функции БД_ВЫБОР. Добавлена возможность редактирования базы данных, разрешаемая (запрещаемая) тремя последними параметрами. Поэтому примеры вызова можно посмотреть в функции БД_ВЫБОР.

Пример:

Пусть имеется файл city.dbf.

Вызовем окно редактирования, где можно будет добавить новые записи и изменить существующие, а функция удаления будет заблокирована.

Файл = БД_ОТКРЫТЬ ("city") // создаем объект Файл и открываем файл

ном = БД_РЕДАКТОР (Файл, ДА, ДА, НЕТ) // в файле можно добавлять и редактировать записи,

СООБЩЕНИЕ ("Номер записи: "+СТР(ном)) // но нельзя удалять

Файл.ЗАКРЫТЬ // закрываем файл

Существует возможность вызова библиотечных функций при редактировании поля базы данных с помощью БД_РЕДАКТОР. Функция должна иметь такой же интерфейс, как и для графы с вызовом функции, т.е.

ФУНКЦИЯ ЛОГИКА : <имя> ( ПЕРЕМ СТРОКА : <имя переменной> )

Описание вызова может производиться для каждого редактируемого поля.

См. также
Объект БД
Графа с выбором из XML или DBF


БД_СОЗДАТЬ

Функция БД_СОЗДАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_СОЗДАТЬ (синоним ХМЛ_СОЗДАТЬ) создает новый файл в формате XML или DBF. Тип создаваемого файла определяется по расширению: если расширением XML, то будет создан XML-файл, если расширение DBF — будет создан DBF-файл. Если расширение не указано, то функция БД_СОЗДАТЬ создаст DBF-файл, а функция ХМЛ_СОЗДАТЬ создаст XML-файл.

Синтаксис:

БД_СОЗДАТЬ [ (<имя файла> [,<кодировка>] ) ]

где

<имя файла>
имя открываемого XML или DBF файла. Если имя файла не указано, создается файл с тем же именем, что и файл бланка.

<кодировка>
параметр логического типа, определяющий необходимость перекодировки символов ( по умолчанию ДА — кодовая страница 866 ). Применяется только для файлов DBF.

Пример:

БД_СОЗДАТЬ // создается DBF-файл с именем бланка, например, Balans.dbf

БД_ПОЛЕ ("ACTIV", Актив) // в поле ACTIV заносится значение переменной Актив

БД_ПОЛЕ ("PASSIV", Пассив) // в поле PASSIV заносится значение переменной Пассив

БД_ЗАПИСАТЬ // сохранить изменения в базе

БД_ЗАКРЫТЬ // закрывается DBF-файл

См. также
Метод СОЗДАТЬ объекта БД


БД_СОРТ

Функция БД_СОРТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_СОРТ (синоним ХМЛ_СОРТ) сортирует XML или DBF файл по указанным полям. Для осуществления сортировки файл должен быть открыт.

Синтаксис:

БД_СОРТ ( <поле 1> [, <поле 2> [, <поле 3>, ... ] ] ),

где

<поле n>
название n-го поля в базе данных.

Пример:

БД_ОТКРЫТЬ ("TEST") // открывается файл базы данных с именем Test.dbf

...

БД_СОРТ ("DATE") // сортируем по дате

...

БД_ЗАКРЫТЬ // закрывается DBF-файл

См. также
Метод СОРТИРОВКА объекта БД


БД_СЧИТАТЬ

Функция БД_СЧИТАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_СЧИТАТЬ (синоним ХМЛ_СЧИТАТЬ) считывает запись из XML или DBF файла.

Синтаксис:

БД_СЧИТАТЬ [ (<номер записи>) ]

где

<номер записи>
номер записи, которую надо считать;

Если номер записи не указан функция считывает следующую запись из файла в текущую запись. При открытии существующего файла, первая запись считывается автоматически.

Пример:

БД_ОТКРЫТЬ // открывается DBF-файл с именем бланка

Актив=БД_ПОЛЕ ("ACTIV") // переменной Актив присваивается значение из поля ACTIV 1-й записи

Пассив=БД_ПОЛЕ ("PASSIV") // переменной Пассив присваивается значение из поля PASSIV 1-й записи

БД_СЧИТАТЬ // считывается следующая запись

Актив=БД_ПОЛЕ ("ACTIV") // переменной Актив присваивается значение из поля ACTIV 2-й записи

Пассив=БД_ПОЛЕ ("PASSIV") // переменной Пассив присваивается значение из поля PASSIV 2-й записи

БД_ЗАКРЫТЬ // закрывается DBF-файл

См. также
Метод СЧИТАТЬ объекта БД


БД_ТЕКУЩАЯ

Функция БД_ТЕКУЩАЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БД_ТЕКУЩАЯ (синоним ХМЛ_ТЕКУЩАЯ) позволяет узнать номер текущей записи в открытом XML или DBF файле.

Синтаксис:

БД_ТЕКУЩАЯ

Результат — число, соответствующее номеру текущей записи в XML или DBF файле.

Пример:

БД_ОТКРЫТЬ // открывается DBF-файл с именем файла бланка

тек = БД_ТЕКУЩАЯ // переменной тек присваивается номер текущей записи

БД_ПЕРЕЙТИ (тек-1) // переход к предыдущей записи

БД_ЗАКРЫТЬ // закрывается DBF-файл

См. также
Метод ТЕКУЩАЯ объекта БД


БЕСПЛАТНАЯ_ВЕРСИЯ

Функция БЕСПЛАТНАЯ_ВЕРСИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БЕСПЛАТНАЯ_ВЕРСИЯ сообщает о том, что запущена бесплатная версия программы.

Синтаксис:

БЕСПЛАТНАЯ_ВЕРСИЯ

Результат — логика.

Пример:

ЕСЛИ БЕСПЛАТНАЯ_ВЕРСИЯ ТО

СООБЩЕНИЕ("В бесплатной версии программы эта функция не поддерживается")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

См.также
Функция ВЕРСИЯ


БИН_И

Функция БИН_И

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БИН_И осуществляет побитовое «И» с двумя целыми числами.

Синтаксис:

БИН_И (<число1>,<число2>)

где

<число1>, <число2>
целые числа.

Результат — число.

Пример:

знач = БИН_И (5, 2) // переменной знач присваивается значение 0

См.также
Функция БИН_ИЛИ
Функция БИН_ИСК
Функция БИН_НЕ


БИН_ИЛИ

Функция БИН_ИЛИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БИН_ИЛИ осуществляет побитовое «ИЛИ» с двумя целыми числами.

Синтаксис:

БИН_ИЛИ (<число1>,<число2>)

где

<число1>, <число2>
целые числа.

Результат — число.

Пример:

знач = БИН_ИЛИ (5, 2) // переменной знач присваивается значение 7

См.также
Функция БИН_И
Функция БИН_ИСК
Функция БИН_НЕ


БИН_ИСК

Функция БИН_ИСК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БИН_ИСК осуществляет побитовое «исключающее ИЛИ» с двумя целыми числами.

Синтаксис:

БИН_ИСК (<число1>,<число2>)

где

<число1>, <число2>
целые числа.

Результат — число.

Пример:

знач = БИН_ИСК (5, 2) // переменной знач присваивается значение 7

См.также
Функция БИН_ИЛИ
Функция БИН_И
Функция БИН_НЕ


БИН_НЕ

Функция БИН_НЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БИН_НЕ осуществляет осуществляет побитовое отрицание целого числа.

Синтаксис:

БИН_НЕ (<число>)

где

<число>
целое число.

Результат — число.

Пример:

знач = БИН_НЕ (0) // переменной знач присваивается значение -1

См.также
Функция БИН_ИЛИ
Функция БИН_И
Функция БИН_ИСК


БУФЕР_ОБМЕНА

Свойство БУФЕР_ОБМЕНА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство БУФЕР_ОБМЕНА позволяет считать и записывать информацию в текстовый буфер обмена.

Синтаксис:

БУФЕР_ОБМЕНА = <текст для копирования в буфер>

где

<текст для копирования в буфер>
строка, которая будет скопирована в буфер.

или

<содержимое буфера обмена> = БУФЕР_ОБМЕНА

где

<содержимое буфера обмена>
строковая переменная, которой будет присвоено содержимое текстового буфера обмена.

Так как буфер обмена может состоять из нескольких текстовых строк, то они отделаются символами РР (это может использоваться как при чтении, так и при записи в буфер).

Пример:

// Выводит содержимое буфера обмена на экран отладки

стр = БУФЕР_ОБМЕНА

ЦИКЛ ДЛЯ (и = 1, ВСЕГО_СЛОВ(стр, РР))

ОТЛАДКА(СЛОВО(и, стр, РР))

КОНЕЦ_ЦИКЛА


БЫЛИ_ИЗМЕНЕНИЯ

Функция БЫЛИ_ИЗМЕНЕНИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

С помощью функции БЫЛИ_ИЗМЕНЕНИЯ можно узнать, производились ли или нет какие-либо изменения в базе данных в процессе работы алгоритма (более точно: какие-либо изменения, выполненные в текущей транзaкции).

Синтаксис:

БЫЛИ_ИЗМЕНЕНИЯ

Результат — логика.

Замечание!

В процессе работы алгоритма могут быть обращения к журналам-процедурам, которые выполняют какие-либо изменения в базе данных, которые никак не диагностируются функцией БЫЛИ_ИЗМЕНЕНИЯ.

Пример

ЕСЛИ БЫЛИ_ИЗМЕНЕНИЯ И НЕ ВОПРОС("Были внесены изменения. Сохранить?") ТО

ОТМЕНИТЬ // Отменяет все произведенные изменения

КОНЕЦ_ЕСЛИ


БЮДЖЕТ

Функция БЮДЖЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция БЮДЖЕТ сообщает о том, что запущена бюджетная версия программы.

Синтаксис:

БЮДЖЕТ

Результат — логика.

Пример:

ЕСЛИ БЮДЖЕТ ТО

СООБЩЕНИЕ("В бюджетной версии программы эта функция не поддерживается")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

См.также
Функция ВЕРСИЯ


ВВЕСТИ_ЗНАЧЕНИЕ

Функция ВВЕСТИ_ЗНАЧЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

С помощью функции ВВЕСТИ_ЗНАЧЕНИЕ во время выполнения расчета можно запрашивать дополнительные данные, необходимые для расчета. Ввод значения производится в диалоговом окне.

Данная функция позволяет вводить значения следующих типов:

·строка;

·число;

·дата;

·время;

·логика;

·множество;

·выбор элемента массива;

При вводе числа можно воспользоваться встроенным калькулятором, нажав клавишу F2 или кнопку выбора [image] справа от поля.

При вводе даты, аналогично, можно использовать календарь, нажав клавишу F2 или кнопку выбора [image] справа от поля и переход к следующему и предыдущему дню с помощью кнопок [image] .

При вводе значений типа числа можно задать диапазон значений, а для строки — максимальную ширину.

Синтаксис:

ВВЕСТИ_ЗНАЧЕНИЕ ( <запрос> [,<исходное значение> [,<макс ширина> или <мин> [, <макс> ] ] ] [: <доп опции> ] )

где

<запрос>
строка, содержащая вопрос;

<исходное значение>
значение, которое будет предложено по умолчанию;

<макс. ширина>
значение ширины поля для ввода строки;

<мин>, <макс>
соответственно минимальное и максимальное значение для ввода числа. Если задан только один параметр, то он считается максимальным, а минимальное значение равно нулю.

<доп опции>
для числа — число знаков после запятой, если параметр не указан может быть введено число с любым числом знаков;
для даты и времени — возможность ввода пустой даты и пустого времени;

Функция позволяет задать для вводимого поля исходное значение. Тип вводимого значения определяется заданным в параметрах функции исходным значением. Если исходное значение не задано, предполагается запрос строки. Исходное значение может быть задано как:

·строка (например, ВВЕСТИ_ЗНАЧЕНИЕ("Введите назначение платежа", "Оплата за "));

·число (например, ВВЕСТИ_ЗНАЧЕНИЕ("Введите ставку налога", 20));

·дата (например, ВВЕСТИ_ЗНАЧЕНИЕ("Введите дату начала работы", 01.01.2010));

·время (например, ВВЕСТИ_ЗНАЧЕНИЕ("Во сколько прибыла машина", ВРЕМЯ_ТЕК));

·логика (например, ВВЕСТИ_ЗНАЧЕНИЕ("Делать свертку", ДА));

·множество (например, ВВЕСТИ_ЗНАЧЕНИЕ("НДС", ндсПлюс));

·массив (например, ВВЕСТИ_ЗНАЧЕНИЕ("Выберите вариант", ["Вариант1", "Вариант2", "Вариант3"])).

В случае массива номер исходного значения вводится через запятую после перечисленных вариантов.

Результат — введенное значение, тип которого соответствует типу исходного значения, заданного в параметрах функции. В случае массива результатом является номер выбранного варианта.

Замечание!

В зависимости от контекста, диалог выбора может содержать или кнопку "Стоп", или кнопку "Отмена". Кнопка "Отмена" появляется при выполнении обработчика, "Стоп" — в бланках и типовых операциях. При нажатии на "Стоп" алгоритм завершает работу. При нажатии на "Отмена" функция возвращает нулевое значение в режиме выбора из перечисленных значений и исходное значение при вводе числа, строки или даты.

Пример 1:

Ниже приведен пример, в котором с помощью функции ВВЕСТИ_ЗНАЧЕНИЕ вводится номер записи в базе данных, а затем осуществляется переход на эту запись. При выполнении функции на экране появится диалоговое окно, содержащее графу для ввода номера записи:

По умолчанию в графе будет установлено значение, заданное вторым аргументом функции (в данном случае 1). Третий и четвертый параметры ограничивают соответственно минимальный и максимальный номер записи (в данном случае 1 и БД_ВСЕГО). В переменную номер будет записано введенное в диалоговом окне значение.

номер = ВВЕСТИ_ЗНАЧЕНИЕ ("Введите номер колонки: ", 1, 1, колонки.ВСЕГО)

колонки.ПЕРЕЙТИ(номер)

Пример 2:

Ниже приведен пример, в котором при помощи функции ВВЕСТИ_ЗНАЧЕНИЕ предлагается выбрать один из предложенных вариантов. При выполнении функции на экране появится диалоговое окно, в котором будут перечислены варианты, заданные вторым параметром функции:

С левой стороны от каждого варианта располагается флажок переключателя. Для выбора варианта щелкните клавишей мыши по флажку переключателя перед требуемым пунктом, а затем нажмите клавишу <Enter> или щелкните клавишей мыши по кнопке <OK>.

Выбранным по умолчанию является пункт, заданный третьим параметром функции.

период_ид = ВВЕСТИ_ЗНАЧЕНИЕ("Выберите период",["День","Пять Дней","Неделя",

"Декада","Месяц","Квартал","Год"])

дата_нач = ПЕРИОД_НАЧ(ДАТА_НАЧ,период_ид)

дата_кон = ПЕРИОД_КОН(ДАТА_КОН,период_ид)

Набор вариантов можно также указать и с помощью переменной:

выбор!1 = "День"

выбор!2 = "Пять Дней"

выбор!3 = "Неделя"

выбор!4 = "Декада"

выбор!5 = "Месяц"

выбор!6 = "Квартал"

выбор!7 = "Год"

период_ид = ВВЕСТИ_ЗНАЧЕНИЕ("Выберите период",выбор)

дата_нач = ПЕРИОД_НАЧ(ДАТА_НАЧ,период_ид)

дата_кон = ПЕРИОД_КОН(ДАТА_КОН,период_ид)

В бланках и отчетах возможно использование функции ВВЕСТИ_ЗНАЧЕНИЕ!, которая не выводит диалога ввода. Вместо этого в контекстном меню бланка или диалоге параметров отчета, содержащего данную функцию, появляется опция, определяющая возвращаемый функцией результат.

Синтаксис:

ВВЕСТИ_ЗНАЧЕНИЕ! ( <запрос>, <тип> или <множество> или <список значений> )

где

<запрос>
строковая константа, содержащая вопрос;

<тип>
тип ввода, возможно СТРОКА, ЧИСЛО, ЛОГИКА, ДАТА, ВРЕМЯ;

<множество>
идентификатор множества;

<список значений>
список значений в квадратных скобках.

После восклицательного знака можно поставить условие на отображение опции.

Примеры:

ВВЕСТИ_ЗНАЧЕНИЕ!("Заключение комиссии", СТРОКА)

ВВЕСТИ_ЗНАЧЕНИЕ!("Анализ", ["Полный", "Частичный"])

ВВЕСТИ_ЗНАЧЕНИЕ!("Вид учета НДС", ндсПлюс)

См.также
Функция ВЫБРАТЬ_ЗНАЧЕНИЕ
Функция ВЫБОР


ВЕРСИЯ

Функция ВЕРСИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЕРСИЯ возвращает номер версии платформы Инфо-Предприятие, версии установленной конфигурации или версии Windows.

Синтаксис:

ВЕРСИЯ [ (<конфигурация>) ]

Результат — строка.

Если параметр <конфигурация> отсутствует, то функция возвращает версию платформы Инфо-Предприятие (версию исполняемого модуля).

Указав в строковом параметре <конфигурация> название конфигурации, можно получить версию этой конфигурации, если она установлена. Если указанная конфигурация не установлена, функция возвращает пустую строку.

Указав в строковом параметре <конфигурация> параметр РР, можно получить версию операционной системы.

Пример:

ЕСЛИ ВЕРСИЯ < "2.28" ТО

СООБЩЕНИЕ("Для запуска этого расчета нужна более свежая версия платформы (исполняемого модуля)")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

См.также
Функция ДЕМО_ВЕРСИЯ
Функция БЕСПЛАТНАЯ_ВЕРСИЯ
Функция ОБЛАЧНАЯ_ВЕРСИЯ


ВЕРХСЧ

Функция ВЕРХСЧ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЕРХСЧ возвращает код счета верхнего уровня для субсчета (субстатьи).

Синтаксис:

ВЕРХСЧ (<код счета>[, <уровень>] ),

где

<код счета>
код счета или статьи, для которого возвращается код счета или статьи верхнего уровня;

<уровень>
выражение числового типа, задающее уровень возвращаемого счета верхнего уровня

Результат — строка.

Если <уровень> равен нулю или больше уровня субсчета, то функция просто возвращает код этого субсчета.

Если <уровень> не указан, то выдается ближайший счет верхнего уровня.

Пример:

суб_сч = "10/01/03"

с1 = ВЕРХСЧ(суб_сч, 2) // Значение с1="10/01"

ЕСЛИ ВЕРХСЧ(суб_сч) = ПОДСЧ (суб_сч, 1) + "/" + ПОДСЧ (суб_сч, 2) ТО

СООБЩЕНИЕ("Тест верен")

КОНЕЦ_ЕСЛИ

с_ближ = ВЕРХСЧ(суб_сч) // Значение с_ближ="10/01"

См. также
Функция ПОДСЧ


ВЕРХ_УРОВЕНЬ

Функция ВЕРХ_УРОВЕНЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЕРХ_УРОВЕНЬ для кода счета с аналитикой, с аналитическими признаками, имеющими вид дерева возвращает код счета верхнего уровня с учетом иерархической структуры аналитики.

Синтаксис:

ВЕРХ_УРОВЕНЬ (<код счета> ),

где

<код счета>
код счета, для которого возвращается код счета верхнего уровня с учетом иерархической структуры аналитики;

Результат — строка. Если верхний уровень не существует, то возвращает пустую строку.

Пример:

т ЭТО товары

//...

верхний_уровень = ВЕРХ_УРОВЕНЬ ("04":т)

См. также
ЕСТЬ_ПОДУРОВНИ


ВИДИМОСТЬ

Функция ВИДИМОСТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВИДИМОСТЬ может использоваться в диалогах, типовых операциях и бланках внутри секции, начинающейся с ключевого слова ИЗМЕНЕНИЕ. С помощью нее можно изменить видимость полей ввода и элементов управления в процессе работы пользователя с диалогом.

Синтаксис (для одного поля):

ВИДИМОСТЬ [!] (<графа> [, <видимость>])

где

<графа>
графа ввода.

<видимость>
новое значение видимости графы;

Для обычных полей ввода, параметр <графа> = имя переменной.

Для кнопок, параметр <графа> = ~<текст кнопки>, где <текст кнопки> — строковая константа.

Для таблиц с выводом содержимого журнала или курсора <графа> = @<переменная>

где

<переменная>
соответствующая переменная типа ЖУРНАЛ или КУРСОР.

Для таблиц с выводом содержимого массива <графа> = $<переменная>

где

<переменная>
соответствующий массив.

Для таблиц с выводом содержимого XML или DBF файла <графа> = ^<переменная>

где

<переменная>
соответствующая переменная типа БД .

После имени функции может быть указан восклицательный знак — ВИДИМОСТЬ!. Это отключит вывод сообщения об ошибке в случае, если графа отсутствует.

Существует вариант функции с указанием нескольких граф ввода в квадратных скобках через запятую. Он используется для указания видимости сразу ко всем перечисленным графам:

Синтаксис (для нескольких полей):

ДОСТУП [!] ( [ <графа1> [, <графа2> [, <графа3> ... ] ] ] ,<видимость> )

где

<графа1>, <графа2>, <графа3>, ...
графы, для которых вызывается данная функция, указываются в квадратных скобках через запятую;

<видимость>
новое значение видимости графы;

Пример:

// Установка доступа для различных граф ввода

ДИАЛОГ Тест

$вкл("Включить")

$логика("Поле логика")

*строка*****************************

ИЗМЕНЕНИЕ

ВИДИМОСТЬ(логика, вкл) // Доступ к полю ввода "логика"

ВИДИМОСТЬ(строка, вкл) // Доступ к полю ввода "строка"

ВЫЧИСЛИТЬ

ВВЕСТИ

КОНЕЦ_ДИАЛОГА

См.также
Ключевое слово ИЗМЕНЕНИЕ
Ключевое слово ВВЕСТИ
Функция ДОСТУП
Функция ФОКУС


ВИЗАРД

Функция МАСТЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МАСТЕР модифицирует вид диалога с закладками так, что получается пошаговый диалог (мастер).

Синтаксис:

МАСТЕР(<вызов диалога> [,<текст завершающей кнопки>] [,<первая закладка>])

Результат — логическое выражение (ДА или НЕТ), которое вернул диалог.

Секция ПРОВЕРКА для пошагового диалога не доступна. Вместо неё доступны две другие секции, которых нет в обычных диалогах:

·СЛЕДУЮЩАЯ — срабатывает при переходе к следующему шагу (следующей закладке) и при нажатии "Готово".

·ПРЕДЫДУЩАЯ — срабатывает при переходе к предыдущему шагу (предыдущей закладке).

Внутри этих секций доступно свойство ЗАКЛАДКА, которое позволяет узнать, на какой закладке (на каком шаге) находится пользователь и при необходимости изменить ее.

Обе секции опциональны, могут быть или отсутствовать. Порядок следования секция СЛЕДУЮЩАЯ, ПРЕДЫДУЩАЯ и ИЗМЕНЕНИЕ может быть любым.

Параметр <текст завершающей кнопки> может быть использован для задания текста завершающей кнопки. Если он не указан, то текст кнопки будет "Готово".

Параметр <первая закладка> может быть указан для того, задать начальную закладку. По умолчанию, пошаговый диалог начинается с 1-ой закладки.

Оба этих параметра могут как отсутствовать, так и присутствовать в любой последовательности.

В пошаговом диалоге также доступна секция ЗАГРУЗКА. Она срабатывает после секции СЛЕДУЮЩАЯ перед самим отображением следующей закладки.

Пример:

ДИАЛОГ Мастер

ЗАКЛАДКА Шаг 1. Добро пожаловать

Для того чтобы приступить к настройке нажмите "Далее".

ЗАКЛАДКА Шаг 2. Введите строковый параметр

Строка *ы********************

ЗАКЛАДКА Шаг 3. А теперь введите остальные параметры

Строка *ф*************

Число &у&&&&&&&&&&&

Дата ~дата

КОНЕЦ_ДИАЛОГА

ВЫЧИСЛИТЬ

// Расчетная часть бланка

МАСТЕР(Мастер)

КОНЕЦ

См. также
Ключевое слово ЗАКЛАДКА
Ключевое слово ОПЕРАЦИЯ
Ключевое слово ДИАЛОГ
Функция ДИАЛОГ_НАСТРОЙКИ


ВКЛ_ДИАЛОГИ

Функция ВКЛ_ДИАЛОГИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВКЛ_ДИАЛОГИ позволяет временно отключать вывод диалоговых окон, производимых с помощью функций СООБЩЕНИЕ, ВОПРОС, ВВЕСТИ_ЗНАЧЕНИЕ и т.д..

Синтаксис:

ВКЛ_ДИАЛОГИ(<включить>)

Если параметр <включить> = НЕТ, вывод диалогов отключается.
Если параметр <включить> = ДА, вывод диалогов включается обратно.

Результат — строка. При включении диалогов обратно, функция возвращает текст всех диалоговых окон, которые не были выведены пользователю.

Такие функции, как ВОПРОС или ВВЕСТИ_ЗНАЧЕНИЕ в режиме отключения диалогов будут возвращать значение по умолчанию.

Пример:

ВКЛ_ДИАЛОГИ(НЕТ)
ЦИКЛ ПО ЖУРНАЛУ накладные накл
накл.ПРОВЕСТИ
КОНЕЦ_ЦИКЛА
СООБЩЕНИЕ(ВКЛ_ДИАЛОГИ(ДА))


ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ

Функция ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ включает или отключает обработку событий от HID-устройств. После вызова функции события от HID-устройств перенаправляются в обработчик Внешнее событие.

Синтаксис:

ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ(<шаблон>)

Строковый параметр <шаблон> задает шаблон устройств. Если в качестве параметра <шаблон> передать пустую строку, перенаправление отключается.

Перенаправлению подлежат цифры и буквы. Другие клавиши не перенаправляются (такие клавиши перестают приходить в качестве нажатий, но и в обработчик внешнего события не поступают). Обработчик внешнего события срабатывает не при каждом поступлении сигнала о нажатой клавиши, а только после нажатия на клавишу возврата каретки. Встретив клавишу возврата каретки программа отправляет в обработчик Внешнее событие строку из всех нажатых клавиш (цифр и букв). При этом:

·источник = "HID" (идентифицирует, что внешнее событие от HID-устройства)

·событие = название устройства

·данные = <получаемые данные>

Примером использования данной функции является работа со сканером, работающим в режиме эмуляции клавиатуры (PS/2). Такой сканер эмулирует нажатия клавиш на клавиатуре. После вызова функции ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ нажатия на клавиши перестают приходить в программу и вместо этого начинает срабатывать обработчик внешнего события.

На работу других программ вызов этой функции не влияет. От сканера будут поступать нажатия на клавиши, если переключиться на окно другой программы.

При работе в интерфейсе кассира перенаправление отключается (в интерфейсе кассира есть специальное поле ввода, предназначенное для штрих-кода и подобное перенаправление не требуется).

Функция не возвращает результат.

Пример:

ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ("*\HID*")


ВКЛ_ФИРМЫ

Свойство ВКЛ_ФИРМЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Служебное свойство ВКЛ_ФИРМЫ позволяет управлять функцией наложения условия на текущую фирму.

Если оно истинно, то все функции считаются только по текущей фирме.

Если ложно, то все функции считаются по всем фирмам вместе взятым. Опция Показывать операции всех фирм в диалоге выбора фирмы работает также.

Синтаксис:

ВКЛ_ФИРМЫ

Пример:

ВКЛ_ФИРМЫ = ДА

См.также
Функция ТЕК_ФИРМА
Функция ЕСТЬ_ФИРМЫ
Функция ВСЕ_ФИРМЫ


ВОЗВРАТ

Свойство ВОЗВРАТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

С помощью свойства ВОЗВРАТ можно получить доступ к возвращаемому параметру столбца.

Синтаксис:

ВОЗВРАТ[!][ [<столбец>] ]

Здесь

<столбец>
задает координату столбца, для которого задается возвращаемый параметр. Тип параметра строковый. Если параметр <столбец> не указан, свойство управляет возвращаемым значением координатного столбца.

Для возможности вызова одного отчета из другого необходимо передать вызываемому отчету параметры. Обычно вызываемый отчет раскрывает (расшифровывает, детализирует) содержимое ячейки исходного отчета. Поэтому за каждой строкой и столбцом закрепляется информация, которая будет передаваться вызываемому отчету. Для доступа к возвращаемому параметру столбца используются свойство ВОЗВРАТ.

Пример

ВОЗВРАТ[ИТОГОВ] = "*"

Если возвращаемый параметр столбца не был задан, то по умолчанию:

·Для обычных ячеек в вызываемый отчет передастся координата столбца.

·Для строк/столбцов добавленных при помощи ИТОГОВ и ячеек с установленным атрибутом атИтог передастся значение "*".

Если указанный столбец не существуют, программа выдаст сообщение об ошибке и работа алгоритма будет остановлена. Если указать ! (восклицательный знак), то ошибка будет проигнорирована и функция просто ничего не будет делать.

При помощи ВОЗВРАТ можно задать не только возвращаемый параметр, но и запись, связанную со столбцом. Для этого надо определить возвращаемый параметр как запись объекта ЖУРНАЛ. После этого появляется возможность редактировать столбцы, вызывая диалог редактирования записи, работать с буфером обмена и удалять записи из отчета. Если запись журнала была подсвечена цветом, то поменяется и цвет строки (столбца) отчета.

Внимание!

Если строка (столбец) были ранее выделены цветом, то цвет будет изменен на цвет записи.

Пример

и=1

ЦИКЛ ПО ЖУРНАЛУ бухпроводки п, бухоперации о

ЯЧЕЙКА[и,"Дата"] = о.дата

ЯЧЕЙКА[и,"Док"] = о.документ

ЯЧЕЙКА[и,"Дебет":2] = п.дебет

ЯЧЕЙКА[и,"Кредит":2] = п.кредит

ЯЧЕЙКА[и,"Сумма":2] = п.сумма

ЯЧЕЙКАГОР[и] = ""

ВОЗВРАТ[и] = о // При редактировании столбца вызовется

// диалог редактирования операции "о"

и++

КОНЕЦ_ЦИКЛА

При вызове диалога редактирования записи журнала он имеет тот вид, который был во время выполнения операции присвоения. При выполнении следующих строк разные строчки отчета будут вызывать записи журнала с разными видами:

н.ПРИМЕНИТЬ_ВИД("накладные")

ВОЗВРАТ[1] = н

н.ПРИМЕНИТЬ_ВИД("счета")

ВОЗВРАТ[2] = н

При вызове других справочников в процессе работы с диалогом редактирования записи они будут иметь вид, который был на момент завершения работы отчета.

Для того чтобы запретить вызывать отчеты или редактор записи из данного столбца надо присвоить возвращаемому параметру ПУСТО.

См. также
ВОЗВРАТВ
Атрибут атВозврат


ВОЗВРАТВ

Свойство ВОЗВРАТВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

С помощью свойства ВОЗВРАТВ можно получить доступ к возвращаемому параметру строки.

Синтаксис:

ВОЗВРАТВ[!][<строка>]

Здесь

<строка>
задает координату строки, для которой задается возвращаемый параметр. Тип параметра строковый.

Для возможности вызова одного отчета из другого необходимо передать вызываемому отчету параметры. Обычно вызываемый отчет раскрывает (расшифровывает, детализирует) содержимое строки или ячейки исходного отчета. Поэтому за каждой строкой и столбцом закрепляется информация, которая будет передаваться вызываемому отчету. Для доступа к возвращаемому параметру строки используются свойство ВОЗВРАТВ.

Пример

ВОЗВРАТВ[ИТОГО] = "*"

Если возвращаемый параметр строки не был задан, то по умолчанию:

·Для обычных ячеек в вызываемый отчет передастся координата строки.

·Для строк/столбцов добавленных при помощи ИТОГО и ячеек с установленным атрибутом атИтог передастся значение "*".

Если указанная строка не существуют, программа выдаст сообщение об ошибке и работа алгоритма будет остановлена. Если указать ! (восклицательный знак), то ошибка будет проигнорирована и функция просто ничего не будет делать.

При помощи ВОЗВРАТВ можно задать не только возвращаемый параметр, но и запись, связанную со строкой . Для этого надо определить возвращаемый параметр как запись объекта ЖУРНАЛ. После этого появляется возможность редактировать строки и ячейки, вызывая диалог редактирования записи, работать с буфером обмена и удалять записи из отчета.

Внимание!

Если строка (столбец) были ранее выделены цветом, то цвет будет изменен на цвет записи.

Пример

и=1

ЦИКЛ ПО ЖУРНАЛУ бухпроводки п, бухоперации о

ЯЧЕЙКА["Дата",и] = о.дата

ЯЧЕЙКА["Док",и] = о.документ

ЯЧЕЙКА["Содержание",и] = о.название

ЯЧЕЙКА["Дебет":2,и] = п.дебет

ЯЧЕЙКА["Кредит":2,и] = п.кредит

ЯЧЕЙКА["Сумма":2,и] = п.сумма

ЯЧЕЙКАВЕРТ[и] = ""

ВОЗВРАТВ[и] = о // При редактировании строки вызовется

// диалог редактирования операции "о"

и++

КОНЕЦ_ЦИКЛА

При вызове диалога редактирования записи журнала он имеет тот вид, который был во время выполнения операции присвоения. При выполнении следующих строк разные строчки отчета будут вызывать записи журнала с разными видами:

н.ПРИМЕНИТЬ_ВИД("накладные")

ВОЗВРАТВ[1] = н

н.ПРИМЕНИТЬ_ВИД("счета")

ВОЗВРАТВ[2] = н

При вызове других справочников в процессе работы с диалогом редактирования записи они будут иметь вид, который был на момент завершения работы отчета.

Для того чтобы запретить вызывать отчеты или редактор записи из данной строки надо присвоить возвращаемому параметру ПУСТО.

См. также
ВОЗВРАТ
Атрибут атВозврат


ВОЗМОЖЕН_РАЗРЫВ

Функция ВОЗМОЖЕН_РАЗРЫВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВОЗМОЖЕН_РАЗРЫВ, являясь по существу аналогом функции КОНЕЦ_СТРАНИЦЫ, позволяет указать место, в котором программа может сделать разрыв документа и перевести печать остальной части на другую страницу. Использование этой функции более предпочтительно, чем КОНЕЦ_СТРАНИЦЫ, так как позволяет при изменении форматов печати, таких как ориентация, отступы и т.п., оптимально расположить страницы документа. Функция же КОНЕЦ_СТРАНИЦЫ дает фиксированный вариант разбивки на страницы.

Синтаксис:

ВОЗМОЖЕН_РАЗРЫВ (<номер строки>),

где

<номер строки>
номер строки, перед которой возможно будет вставлен разрыв страницы.

Пример:

// Девятнадцатая строка документа, возможно, будет последней строкой на странице

ВОЗМОЖЕН_РАЗРЫВ (20)

// с 20-ой строки документа, возможно, начнется новая страница

См. также
Функция КОНЕЦ_СТРАНИЦЫ
Функция КОНЕЦ_ПЕЧАТИ
Функция НАЧАЛО_ПЕЧАТИ


ВОПРОС

Функция ВОПРОС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

С помощью функции ВОПРОС можно организовать интерфейс с пользователем во время выполнения алгоритма. При выполнении функции на экран будет выдано диалоговое окно, содержащее строку вопроса и две кнопки Да и Нет. При выборе кнопки Да функция вернет логическое значение ДА, при выборе кнопки Нет — логическое значение НЕТ. При нажатии клавиши <Enter> будет выбрано значение, установленное по умолчанию вторым параметром функции.

Синтаксис:

ВОПРОС ( <вопрос> [,<по умолчанию>]),

где

<вопрос>
строка, содержащая вопрос (к концу строки автоматически будет добавлен знак вопроса), она может быть отформатирована;

<по умолчанию>
указывает, где будет фокус — на кнопке Да или на кнопке Нет. При отсутствии параметра фокус будет на кнопке Да.

Результат — логическое значение (ДА или НЕТ).

Замечание!

При использовании в бланках и отчетах возможен вариант функции ВОПРОС! (с восклицательным знаком). При использовании этого варианта вопрос задаваться не будет. Просто в контекстном меню бланка или диалоге параметров отчета, содержащего эту функцию, появится опция, определяемая по параметру <вопрос>. В зависимости от активности этой опции функция ВОПРОС! будет возвращать или ДА или НЕТ. Параметр <вопрос> в этом случае должен быть строковой константой. После восклицательного знака можно поставить условие на отображение опции.

Пример:

В данном примере при заполнении бланка появится диалоговое окно с вопросом "Провести оплату?". Если нажать кнопку Да или клавишу <Enter>, то проводка будет сформирована. При нажатии кнопки Нет проводка делаться не будет.

ЕСЛИ ВОПРОС ( "Провести оплату" ) ТО

ПРОВОДКА (корр, "51", сумма_оплаты, "пп" + номер, дата, назначение_платежа)

КОНЕЦ_ЕСЛИ


ВРЕМЯ

Функция ВРЕМЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВРЕМЯ возвращает время по заданным в числовой форме часам, минутам и секундам.

Синтаксис:

ВРЕМЯ ( <час>, <минута>, <секунда>),

где

<час>,<минута>, <секунда>
числовые выражения, определяющие соответствующие параметры времени.

Результат — выражение типа время.

Пример:

час = 15

минута = 40

вр = ВРЕМЯ (час, минута, 30) // переменной вр присваивается время, равное 15:40:30


ВРЕМЯ_ТЕК

Функция ВРЕМЯ_ТЕК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВРЕМЯ_ТЕК возвращает текущее время, установленное в компьютере.

Синтаксис:

ВРЕМЯ_ТЕК

Пример:

Вр = ВРЕМЯ_ТЕК // Вр - переменная типа время

стр = СТР ( Вр ) // строка типа "10:45:15"

стр = СТР ( Вр, 5, 5 ) // строка типа "10:45"

См. также
Функция ПАУЗА


ВСЕ_ФИРМЫ

Свойство ВСЕ_ФИРМЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСЕ_ФИРМЫ возвращает строку-список доступных для пользователя фирм. Список настраивается при включении опции Показывать операции всех фирм в диалоге выбора фирмы (при ВКЛ_ФИРМЫ = НЕТ).

Синтаксис:

ВСЕ_ФИРМЫ

Пример:

ВСЕ_ФИРМЫ

См. также
Свойство ВКЛ_ФИРМЫ
Функция ТЕК_ФИРМА
Функция ЕСТЬ_ФИРМЫ


ВСЕГО_СЛОВ

Функция ВСЕГО_СЛОВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСЕГО_СЛОВ выдает кол-во слов в строке, считая, что слова разделены указанными символами.

Синтаксис:

ВСЕГО_СЛОВ[!](<строка> [,<разделители>] ),

где

<строка>
исходная строка;

<разделители>
строка, состоящая из символов-раделителей слов;

Результат — число.

Если не задан параметр <разделители>, используются разделители по умолчанию символы: " " (пробел), "," (запятая), ";" (точка с запятой), "." (точка) и РР. Это равносильно тому, что строка разделители была бы равна " ,.;" + РР.

Замечание2

Модификация функции ВСЕГО_СЛОВ! (с восклицательным знаком) принимает в расчет и пустые слова, например ВСЕГО_СЛОВ!("a,,,,b") вернет 5.

Пример:

кол1 = ВСЕГО_СЛОВ ("Во дворе трава, на траве дрова")

// кол1 = 6: "Во", "дворе", "трава", "на", "траве" и "дрова"

кол2 = ВСЕГО_СЛОВ ("Во дворе трава, на траве дрова", ",")

// кол2 = 2: "Во дворе трава" и " на траве дрова"

См. также
Функция СЛОВО
ЦИКЛ СЛОВА


ВСЕГОМ

Функция ВСЕГОМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСЕГОМ возвращает кол-во элементов в массиве.

Синтаксис:

ВСЕГОМ (<массив>[, <от>[, <до>]] [, <шаблон>])

где

<массив>
массив. Дополнительно можно указать числовые параметры

<от> и <до>
для получения кол-ва элементов в указанном диапазоне или строковый параметр

<шаблон>
для получения кол-ва элементов, индекс которых удовлетворяет шаблону.

Результат — число.

Пример:

м!1=1 м!2=2

с1=ВСЕГОМ (м) // переменной с1 присваивается 2

с2=ВСЕГОМ (["Инфо","-","Предприятие"]) // переменной с2 присваивается 3

с3=ВСЕГОМ (["Инфо","-","Предприятие"],"*и*") // переменной с3 присваивается 1

См.также
Функция МАКСМ
Функция МИНМ
Функция СУММАМ
Функция НАЙТИМ


ВСТАВИТЬ

Функция ВСТАВИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСТАВИТЬ вставляет подстроку внутрь строки начиная с выбранной позиции.

Синтаксис:

ВСТАВИТЬ (<подстрока>, <строка>, <нач. позиция> ),

где

<подстрока>
вставяемая подстрока;

<строка>
строка, в которую надо вставить подстроку;

<длина>
позиция вставки.

Функция не возвращает результата.

Пример:

стр = "123456789"

ВСТАВИТЬ("ABC",стр,5) // стр = "1234ABC56789"

См. также
Функция ПОДСТР


ВСТАВИТЬ_ОТЧЕТ

Функция ВСТАВИТЬ_ОТЧЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСТАВИТЬ_ОТЧЕТ предназначена для вставки одних отчетов внутрь других. При выполнении этой операции программа выполняет расчет указанного отчета и объединяет все ячейки существующего отчета с ячейками вызываемого и сортирует согласно их координатам и номерам секций. Вызываемый отчет получает доступ к ячейкам существующего отчета, а после завершения работы вызываемого отчета, в свою очередь текущий отчет получает доступ к ячейкам отработавшего вызванного отчета.

Синтаксис:

ВСТАВИТЬ_ОТЧЕТ(<имя файла отчета> [,<колонка>[,<строка>[,<ячейка>]]])

Здесь

<имя файла отчета>
задает имя файла (можно без расширения), а остальные параметры соответствуют параметрам вызываемого отчета указанным после ВЫЧИСЛИТЬ в его расчетной части.

Пример:

ВСТАВИТЬ_ОТЧЕТ("Registry1")

Вызываемый отчет наследует все параметры отчета (см. Создание собственных параметров отчета). Однако, если вызываемый отчет имеет свои собственные параметры, то они не становятся параметрами исходного отчета. Для того чтобы перенести эти параметры в исходный отчет, достаточно просто переопределить их в исходном отчете:

// Исходный отчет "Движение средств по счету":

ВЫЧИСЛИТЬ

ВОПРОС!("Развернутый расход")

// ...

ВСТАВИТЬ_ОТЧЕТ("Registry1",...)

КОНЕЦ

// Вызываемый отчет "Движение средств" (файл Registry1.rep):

ВЫЧИСЛИТЬ

развернуть = ВОПРОС!("Развернутый расход")

ЕСЛИ развернуть ТО

// ...

КОНЕЦ_ЕСЛИ

КОНЕЦ

Если в отчет вставляются два отчета, и оба имеют вывод итогов, то программа постарается их объединить в один. Если итоги все равно задваиваются, то надо сделать так: передать в вызываемые отчеты информацию о том, чтобы они не выводили итогов, а после вызова обоих отчетов вывести одни общие итоги.

См. также
СТАРТ_ОТЧЕТ


ВСТАВИТЬ_РАМКУ

Функция ВСТАВИТЬ_РАМКУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСТАВИТЬ_РАМКУ осуществляет вставку рамки или линии в указанное место бланка. Это происходит в процессе обработки расчетной части бланка.

Синтаксис:

ВСТАВИТЬ_РАМКУ ( <кол>, <стр>, <ширина>, <высота> [,<толщина>[,<цвет>]] ),

где

<стр>,<кол>
номер строки и колонки, определяющие верхний левый угол рамки;

<ширина>
ширина рамки в символах;

<высота>
высота рамки в строках;

<толщина>
необязательный параметр, определяющий толщину рамки (от 1 до 3).

<цвет>
необязательный параметр, определяющий цвет рамки.

Для того чтобы нарисовать вертикальную линию, надо вставить рамку с нулевой шириной, для горизонтальной линии нулевой должна быть высота.

Пример:

// В примере создается таблица, состоящая из пяти строк.

// В каждую строку таблицы выводится надпись "С Новым Годом"

s="С Новым Годом" // переменной s присваиваем строку "С Новым Годом"

ЦИКЛ ДЛЯ (и=1, 5) // цикл от 1 до 5

ВСТАВИТЬ_СТРОКУ (и) // вставляем новую строку

ВСТАВИТЬ_РАМКУ (1, и, 21, 1) // вставляем рамку

ВЫВЕСТИ (2, и, s, 20) // выводим строку в рамку

КОНЕЦ_ЦИКЛА

См. также
Функция ВЫВЕСТИ.


ВСТАВИТЬ_РИСУНОК

Функция ВСТАВИТЬ_РИСУНОК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСТАВИТЬ_РИСУНОК осуществляет вставку заданного рисунка в указанное место бланка. Это происходит в процессе обработки расчетной части бланка.

Синтаксис:

ВСТАВИТЬ_РИСУНОК ( <позиция>, <строка>, <ширина>, <высота>, <рисунок>

[,<растянуть>[,<сохран.пропор>[,<центрировать>]]] ),

где

<стр>,<кол>
номер строки и колонки, определяющие верхний левый угол рисунка;

<ширина>
ширина рисунка в символах;

<высота>
высота рисунка в строках;

<рисунок>
строка, определяющая файл существующего в базе данных рисунка

<растянуть>
растягивает изображение под заданные координаты — аналогична опции Масштабирование в параметрах рисунка, по умолчанию НЕТ.

<сохран.пропор>
сохраняет пропорции при растягивании — аналогична опции Сохранять пропорции в параметрах рисунка, по умолчанию НЕТ.

<центрировать>
располагает рисунок по центру относительно его координат — аналогична опции Центрирование в параметрах рисунка, по умолчанию ДА.

Файл может указываться без расширения, в этом случае предполагается расширение bmp. По умолчанию параметр <растянуть> = НЕТ, без него изображение центруется в указанном прямоугольнике.

Пример:

ВСТАВИТЬ_РИСУНОК(1, 1, 10, 10, "bitmap.bmp")


ВСТАВИТЬ_СТРОКУ

Функция ВСТАВИТЬ_СТРОКУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСТАВИТЬ_СТРОКУ вставляет пустые строки в указанном месте бланка. Все элементы бланка после указанной строки сдвинутся вниз.

Синтаксис:

ВСТАВИТЬ_СТРОКУ (<номер строки> [,<кол-во строк>] )

где

<номер строки>
порядковый номер строки, считая от первой строки документа, перед которой будет вставлена новая пустая строка;

<кол-во строк>
необязательный параметр, определяющий количество вставляемых строк. Если параметр отсутствует, то в указанное место будет вставлена одна строка.

Для удаления строк из бланка можно использовать функцию УДАЛИТЬ_СТРОКУ.

Пример:

ВСТАВИТЬ_СТРОКУ(10) // вставляем новую строку


ВСТАВИТЬ_ШТРИХКОД

Функция ВСТАВИТЬ_ШТРИХКОД

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСТАВИТЬ_ШТРИХКОД осуществляет вставку заданного штрих-кода в указанное место бланка. Это происходит в процессе обработки расчетной части бланка.

Синтаксис:

ВСТАВИТЬ_ШТРИХКОД ( <позиция>, <строка>, <ширина>, <высота>, <значение>

[,<тип> [,<контр.сумма> [,<текст> [,<поворот>] ] ] ] ),

где

<стр>,<кол>
номер строки и колонки, определяющие верхний левый угол рисунка;

<ширина>
ширина рисунка в символах;

<высота>
высота рисунка в строках;

<значение>
выражение, задающее штрих-код;

<тип>
тип штрихкода;

<контр.сумма>
подсчитывать или нет контрольную сумму, по умолчанию НЕТ;

<текст>
выводить или нет текст штрих-кода, по умолчанию НЕТ;

<поворот>
число, задающие поворот штрих-кода. Поворот может иметь значения: 0, 90, 180, 270. При передачи отличного от них значения, поворот округляется.

Пример:

ВСТАВИТЬ_ШТРИХКОД(1, 1, 15, 4, 1312312129991, bcEAN13)

См. также
Функция ВСТАВИТЬ_ДВУМ_ШТРИХКОД
Функция ВСТАВИТЬ_РИСУНОК


ВСТАВИТЬ_ДВУМ_ШТРИХКОД

Функция ВСТАВИТЬ_ДВУМ_ШТРИХКОД

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСТАВИТЬ_ДВУМ_ШТРИХКОД осуществляет вставку заданного QR кода в указанное место бланка. Это происходит в процессе обработки расчетной части бланка.

Синтаксис:

ВСТАВИТЬ_ДВУМ_ШТРИХКОД ( <позиция>, <строка>, <ширина>, <высота>, <значение>

[,<коррекция ошибок> ] ),

где

<стр>,<кол>
номер строки и колонки, определяющие верхний левый угол рисунка;

<ширина>
ширина рисунка в символах;

<высота>
высота рисунка в строках;

<значение>
выражение, задающее штрих-код;

<коррекция ошибок>
задает уровень коррекции ошибок (1-4);

Пример:

ВСТАВИТЬ_ДВУМ_ШТРИХКОД(1, 1, 15, 4, 1312312129991)

См. также
Функция ВСТАВИТЬ_ШТРИХКОД


ВСТАВИТЬ_ШАПКУ_ПОДВАЛ

Функция ВСТАВИТЬ_ШАПКУ_ПОДВАЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВСТАВИТЬ_ШАПКУ_ПОДВАЛ вставляет шапку и подвал в указанное место бланка. Это происходит в процессе обработки расчетной части бланка.

Синтаксис:

ВСТАВИТЬ_ШАПКУ_ПОДВАЛ ( <строка>, <высота_шапки>, <высота_таблицы> [,<высота_подвала> ] ),

где

<строка>
номер строки, в которую надо добавить шапку;

<высота_шапки>
высота шапки;

<высота_таблицы>
высота области бланка, для которой будет рисоваться шапка;

<высота_подвала>
высота подвала, если не указана, подвал не вставляется;

Если нужно вставить подвал, не вставляя шапку, укажите высоту шапки 0.

Пример:

ВСТАВИТЬ_ШАПКУ_ПОДВАЛ(1, 1, 15)

См. также
Шапка и подвал


ВЫБОР

Функция ВЫБОР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР используется для выбора пользователем строки из массива.

Синтаксис:

ВЫБОР(<массив> [:<множественный выбор>[:<хотя бы один>]]

[,<заголовок окна>[,<заголовок колонки>[,<номер>

[,<редактирование>[,<добавление>[,<удаление>[,<выбор записи>

[,<цвет текста>[,<цвет фона>] ] ] ] ] ] [:<текст кнопки выбора>] ] ] ] )

где

<массив>
массив, из которого происходит выбор

<множественный выбор>
логический массив, при указании которого появляется возможность множественного выбора

<хотя бы один>
логика, если указано ДА, то при использовании множественного выбора хотя бы один элемент будет выбран. Если указано НЕТ (по умолчанию), может не быть выбрано ни одного элемента.

<заголовок окна>
строка, заголовок диалога выбора

<заголовок колонки>
строка, заголовок колонки; возможно несколько колонок, тогда текст отделяется вертикальной чертой (см.ниже)

<номер>
число, номер текущей выделенной строки при открытии таблицы

<редактирование>
логика: разрешить редактирование элементов массива или
имя функции или диалога: редактирование разрешено, при редактировании вызывается функция (см.ниже)

<добавление>
логика: разрешить добавление элементов в массив или
имя функции или диалога: добавление разрешено, при добавлении вызывается функция (см.ниже)

<удаление>
логика, разрешить удаление элементов из массива

<выбор записи>
логика, если указано ДА, нажатие на <Enter> в диалоге приводит к вызову диалога редактирования элемента. Если указано НЕТ (по умолчанию), нажатие на <Enter> означает выбор записи.

<цвет текста>
логика, в массиве содержится информация о цвете текста строк

<цвет фона>
логика, в массиве содержится информация о цвете фона строк

<текст кнопки выбора>
строка, задающая текст кнопки выбора (обычно это или «Закрыть», или «Выбрать», в зависимости от параметра <выбор записи>), этот параметр может задать свой текст кнопки

Массив может иметь тип строка, число, дата и логика.

Если массив указан в виде переменной, то результат — строка — индекс выбранной записи. Если запись не была выбрана, то возвращает пустую строку.

Если массив указан в виде константы, то результат — значение выбранной записи массива. Если запись не была выбрана, то возвращает значение по умолчанию для указанного типа массива.

Значения элементов массива строк могут иметь разделители "|" (вертикальная черта). При отображении такого массива будет использована таблица с несколькими колонками. В таком виде программа сама определяет тип значения массива. Если значение имеет вид "Бульон Кнор|336" программа будет полагать, что первая колонка таблицы строковая, а вторая — числовая.

Параметр <заголовок колонки> также может иметь разделители "|", отделяющие заголовки колонок. После заголовка может следовать тип колонки (необязательно), ширина колонки в символах и точность числа, например, так "Товар:20|Кол-во:6:2" или так "Товар:СТРОКА:20|Кол-во:ЧИСЛО:6:2". Это означает, что для таблицы задается названия двух колонок: "Товар" и "Кол-во", первая должна иметь ширину не менее 20 символов, а вторая — ширину не менее 6 символов, а числа, расположенные в ней должны иметь два знака после запятой. Кроме того, перед названием колонки можно указать "%", что означает, что колонка будет недоступна для редактирования. Например, так: "%Товар:20|Кол-во:6:2". Если нужно не показывать колонку в таблице, а только в диалоге редактирования, то перед названием колонки надо указать "#", например "#Код товара:10|Товар:20".

Если указан параметр <цвет текста>, то для указания цвета текста используется число из крайней правой колонке, например "Колбаса|120.0|" + СТР(цвКрасный). Также можно указать цвет фона, а также оба цвета — и текста, и фона.

Помимо цвета, каждая ячейка таблицы может быть выделеная жирным шрифтом или наклонным шрифтом. Для выделения жирным шрифтом используются угловые скобки "<Внимание!>", для выделения наклонным шрифтом фигурные скобки "{Примечание}".

Если нужно, чтобы у каких-то ячеек не было вертикальной линии, добавьте в начало текста РР, например, РР + "Итого:".

При редактировании и добавлении может вызываться пользовательская функция или диалог, если она указана в параметрах <редактирование> или <добавление>. Заголовок функции должен быть строго определенного вида:

ФУНКЦИЯ ЛОГИКА :<имя> (ПЕРЕМ СТРОКА : <строка>)

или

ДИАЛОГ <имя> (ПЕРЕМ СТРОКА : <строка>)

В качестве параметра-переменной <строка> передается текущая редактируемая строка массива (значение элемента массива, а не его индекс). Действие после выхода из функции определяется возвращенным ей результатом. Если функция возвратила ДА, то строка массива заменяется на значение параметра-переменной <строка>, а если функция возвратила НЕТ, то все остается без изменений.

Пример 1:

// Простейший выбор из двух значений, функция вернет строку "Первый" или "Второй"

// При нажатии Отмена, вернет пустую строку

ВЫБОР(["Первый","Второй"])

Пример 2:

// Массив задан в виде переменной, значит функция вернет значение от 1 до 12

// - номер выбранной строки. При нажатии Отмена, вернет 0

ЦИКЛ ДЛЯ (и=1,12)

с!и=МЕСП(и)

КОНЕЦ_ЦИКЛА

ВЫБОР(с)

Пример 3:

Ниже приведен пример, в котором с помощью функции ВЫБОР на экран выводится таблица, содержащая код и название товара, а также обороты этого товара. При выполнении функции на экране появится следующее диалоговое окно:

Строки таблицы можно редактировать, добавлять или удалять. При редактировании строки появится диалог следующего вида:

При удалении строки программа запрoсит подтверждение у пользователя: Удалить строку?

ЦИКЛ ПО ЖУРНАЛУ товары т << СУММА(накладные_доп.колич) оборот

// Мы использовали здесь связку "<<" для того чтобы вывести все товары

// независимо от того, есть ли по ним движение или нет

// Заносим значение в строковый массив

м[т.код] = т.код + "|" + т.название + "|" + СТР(оборот)

КОНЕЦ_ЦИКЛА

// Значение 0 ширины колонки "Оборот" говорит лишь о том, что ширина не

// устанавливается. Она нам нужна только для того, чтобы указать точность 2

ВЫБОР(м,"Обороты товаров на складе","Код|Название|Оборот:ЧИСЛО:0:2",1,ДА,ДА,ДА)

См.также
Функция ВВЕСТИ_ЗНАЧЕНИЕ
Функция ВЫБРАТЬ_ЗНАЧЕНИЕ


ВЫБОР_АНАЛИТИКИ

Функция ВЫБОР_АНАЛИТИКИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_АНАЛИТИКИ выбирает вид аналитики и объект аналитического учета.

Синтаксис:

ВЫБОР_АНАЛИТИТКИ (<заголовок окна>, <переменная>)

где

<заголовок окна>
задает название окна выбора.

<переменная>
переменная типа ЖУРНАЛ, в которую будет считана аналитика.

Функция выводит диалог выбора вида и объекта аналитики. Значение помещается в переменную <переменная>. Функция возвращает логическое значение — нажал ли пользователь <OK> или отказался от выбора.

Выбор объекта необязателен. Проверить, выбрал ли пользователь объект можно узнать с помощью метода НОВАЯ.

Пример:

ЕСЛИ НЕ ВЫБОР_АНАЛИТИКИ("Выберите аналитику", аналитика) ТО

СООБЩЕНИЕ("Выбрана аналитика " + аналитика.название)

КОНЕЦ_ЕСЛИ

См.также
ЗАП_ВЫБОР_АНАЛИТИКИ
ВЫБОР_СЧЕТА


ВЫБОР_ГРУПП

Функция ВЫБОР_ГРУПП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_ГРУПП выводит диалоговое окно выбора одной или нескольких групп для журнала, представленного в виде дерева.

Синтаксис:

ВЫБОР_ГРУПП [!] (<переменная>, <строк.переменная> [, <заголовок окна>] )

где

<переменная>
переменная типа ЖУРНАЛ, в которую будет считана запись при выборе ее в диалоге. Она должна существовать и именно по ней определяется, из какого журнала происходит выбор.

<строк.переменная>
строковая переменная, в которую будет помещен перечень кодов записей (через точку с запятой). Если эта переменная заполнена кодами записей журнала перед вызовом функции ВЫБОР_ГРУПП, то все они будут отмечены в окне.

<заголовок окна>
задает название окна выбора. По умолчанию, или если указана пустая строка в заголовке отображается название журнала. Дополнительно, строка может иметь разделитель "|", в этом случае левая часть появится в заголовке окна, а правая будет названием корневого элемента.

Функция выводит диалог выбора одной или нескольких групп записей журнала, заданного переменной <переменная>, и возвращает значение логического типа, указывающее на то, выбрал пользователь запись журнала или нажал <Отмена> в диалоге. При выборе записи, она загружается в переменную <переменная>, отмеченные записи загружаются в переменную <строк.переменная> через точку с запятой.

Указание восклицательного знака ВЫБОР_ГРУППЫ! позволяет игнорировать условие фильтра, действующего на журнал.

Пример:

ЕСЛИ НЕ ВЫБОР_ГРУППЫ(товары) ТО

СООБЩЕНИЕ("Необходимо выбрать группу")

КОНЕЦ_ЕСЛИ

См.также
Функция ВЫБОР_ГРУППЫ


ВЫБОР_ГРУППЫ

Функция ВЫБОР_ГРУППЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_ГРУППЫ выводит диалоговое окно выбора группы для журнала, представленного в виде дерева.

Синтаксис:

ВЫБОР_ГРУППЫ [!] (<переменная> [, <заголовок окна>] )

где

<переменная>
переменная типа ЖУРНАЛ, в которую будет считана запись при выборе ее в диалоге. Она должна существовать и именно по ней определяется, из какого журнала происходит выбор.

<заголовок окна>
задает название окна выбора. По умолчанию, или если указана пустая строка в заголовке отображается название журнала. Дополнительно, строка может иметь разделитель "|", в этом случае левая часть появится в заголовке окна, а правая будет названием корневого элемента.

Функция выводит диалог выбора группы записей журнала, заданного переменной <переменная>, и возвращает значение логического типа, указывающее на то, выбрал пользователь запись журнала или нажал <Отмена> в диалоге. При выборе записи, она загружается в переменную <переменная>.

Указание восклицательного знака ВЫБОР_ГРУППЫ! позволяет игнорировать условие фильтра, действующего на журнал.

Пример:

ЕСЛИ НЕ ВЫБОР_ГРУППЫ(товары) ТО

СООБЩЕНИЕ("Необходимо выбрать группу")

КОНЕЦ_ЕСЛИ

См.также
Функция ВЫБОР_ГРУПП


ВЫБОР_ДИР

Функция ВЫБОР_ДИР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_ДИР выводит диалоговое окно выбора каталога.

Синтаксис:

ВЫБОР_ДИР [ (<нач. каталог> [, <заголовок окна>] ) ]

где

<нач. каталог>
каталог, с которого начинается просмотр. Пустая строка означает каталог по умолчанию;

<заголовок окна>
заголовок, появляющийся при выбор каталога. По умолчанию "Выберите каталог";

Результат — строка. При нажатии в диалоговом окне кнопки <OK> возвращает путь к папке, при нажатии <Отмена> возвращает пустую строку.

Пример:

ЕСЛИ НЕ ФАЙЛ_КОПИРОВАТЬ( ВЫБОР_ДИР + "/salebook.dbf",

ДИР_ДОКУМЕНТОВ + "/salebook.dbf")

ТО

СООБЩЕНИЕ("Файлы данных не найдены")

КОНЕЦ_ЕСЛИ

См.также
ВЫБОР_ФАЙЛА


ВЫБОР_ЗАПИСИ

Функция ЖУРНАЛ_ВЫБРАТЬ (ВЫБОР_ЗАПИСИ)

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЖУРНАЛ_ВЫБРАТЬ (другое название ВЫБОР_ЗАПИСИ) выводит диалог выбора записи из журнала или курсора.

Синтаксис (выбор записи журнала):

ВЫБОР_ЗАПИСИ (<переменная>[:<вид журнала>[:<вид диалога>]]

[(<парам.груп.выбора>)] [,<условие> [,<посл. уровень> ] ]
[,<приглашение> [,[<поля>:<возрастание>[,...]] [:<текущая закладка> [:<вид оглавления>]]]])

где

<переменная>
переменная типа ЖУРНАЛ, в которую будет загружена запись после выбора ее из соответствующего журнала и завершения работы функции. Если в нее загружена запись этого журнала перед вызовом функции ВЫБОР_ЗАПИСИ, то курсор в таблице выбора будет указывать на эту запись.

<условие>
определяет условие на поля журнала. В списке выбора будут только записи, удовлетворяющие этому условию. Условие может быть комбинированным на несколько журналов. Для журналов, которые имеют вид дерева условие раcпространяется записи, не являющиеся группами; на группы условие не действует, вместо этого на группы будет действовать условие: группа показывается, если в ней есть записи, попадающие под условие фильтра.

<посл. уровень>
если журнал имеет вид дерева, то это задает необходимость выбирать записи только последнего уровня (не группы). По умолчанию ДА.

<приглашение>
задает название окна выбора. По умолчанию, или если указана пустая строка в заголовке отображается название журнала.

<поля>
задает список полей сортировки (в случае выбора с условием)

<возрастание>
логическое выражение, определяющее порядок сортировки. Если ДА, то по возрастанию, если НЕТ, то по убыванию.

<вид журнала>
строковая константа, задает вид журнала (если журнал имеет несколько видов)

<вид диалога>
строковая константа, задает вид диалога редактирования записи (если журнал имеет несколько видов)

<парам.груп.выбора>
если надо, то в круглых скобках указываются параметры для вызова внутри обработчика групповой выбор;

<текущая закладка>
используется в случае, если журнал имеет свое оглавление. Позволяет указать закладку, на которой должен быть открыт журнал. Если параметр не указан или указана пустая строка, то журнал открывается на закладке, которая была выбрана в последний раз.

<вид оглавления>
используется в случае, если журнал имеет свое оглавление. Позволяет указать вид оглавления. Это строковый параметр, который передается в обработчик и может влиять на его работу.

Функция выводит диалог выбора записи из журнала, заданного переменной <переменная>, и возвращает значение логического типа, указывающее на то, выбрал пользователь запись журнала или нажал <Отмена> в диалоге. При выборе записи, она загружается в переменную <переменная>.

В случае выбора без условия появляются все записи, видимые в журнале. Если журнал отфильтрован, то появляются все отфильтрованные записи. Если журнал отсортирован по определенному списку полей, то записи будут также отсортированы. В процессе просмотра возможна сортировка по выбранной колонке, поиск записи или контекстный поиск записи по произвольной колонке.

В случае выбора с условием список записей для выбора состоит из тех и только из тех записей, что удовлетворяют условию, вне зависимости от установки фильтра журнала. В этом случае они никак не отсортированы, вне зависимости от сортировки журнала. Если необходимо выбрать записи, отсортированы по определенному порядку, то это определяется параметром <поля>, в котором пишется список полей, заключенный в квадратные скобки. После любого поля можно указывать тип сортировки — по возрастанию или по убыванию в виде логического выражения, отделенного от названия поля двоеточием.

Необязательный параметр <приглашение> строкового типа устанавливает название диалога выбора записи из журнала. Функция возвращает результат логического типа, означающий, был ли произведен выбор записи пользователем или была нажата клавиша <Отмена>. В случае успешного выбора записи в поля переменной загружаются поля записи.

При вызове из обработчика группового выбора возможно указание параметров связи. Они указываются в скобках после переменной журнал и имеют следующий вид:

(<поле_исх>=<поле_кон> [, <поле_исх>=<поле_кон> [,...]])

где

<поле исх>
поле журнала, из которого происходит выбор

<поле кон>
поле журнала, для которого вызывается обработчик

Условий связи может быть несколько, в этом случае они перечисляются через запятую.

В бланках и отчетах возможно использование функции ВЫБОР_ЗАПИСИ!, которая не выводит диалога ввода. Вместо этого в диалоге параметров отчета, содержащего данную функцию, появляется графа ввода с выбором записи журнала. После восклицательного знака можно поставить условие на отображение опции. Общий синтаксис функции при указании ! (восклицательного знака) следующий:

ВЫБОР_ЗАПИСИ! [ [<условие>] ] (<переменная> [,<посл. уровень>] ,<приглашение> )

При использовании ВЫБОР_ЗАПИСИ! вместе с оператором "?" для создания параметров отчета, она возвращает преобразованное к строке значение ключевого поля из выбранной записи. А проверить успешность выбора записи можно либо использовав метод НОВАЯ для передаваемой записи, либо сравнив возвращаемое значение со значением до вызова функции.

Пример 1

ВЫБОР_ЗАПИСИ(клиенты)

Пример 2.

ж ЭТО накладные

ЦИКЛ ПОКА (сумма_оплаты > 0)

ЕСЛИ ВЫБОР_ЗАПИСИ(ж, (опл_сумма > 0) И (клиенты.тип = типПоступ),

"Ввод накладной для оплаты",[дата])

ТО

мин = МИН(ж.опл_сумма, сумма_оплаты)

сумма_оплаты = сумма_оплаты - мин

ж.опл_сумма = ж.опл_сумма - мин

ж.ЗАПИСАТЬ!!

ИНАЧЕ

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

Пример 3.

ВЫЧИСЛИТЬ(СТРОКА: код_товара,строка,ячейка)

код_товара ?= ВЫБОР_ЗАПИСИ!(товар)

// Расчетная часть отчета

КОНЕЦ

Синтаксис (выбор по курсору):

ВЫБОР_ЗАПИСИ (<переменная> [:<вид диалога>] [(<парам.груп.выбора>)] [,<посл. уровень> ] [,<приглашение>] [,<настройки>])

где

<переменная>
переменная типа КУРСОР, определяющая выборку. Курсор может иметь дополнительные описания названия, формата, и подсветки полей. Также как и при выборе записи из журнала, если переменные типа ЖУРНАЛ, использующиеся курсором, были считаны перед вызовом функции ВЫБОР_ЗАПИСИ (также как и локальные переменные, в которые будет помещаться результат выбора записи курсора были проинициализированы значениями), то в таблице выбора будет выделена считанная запись. Программа ищет ее по значениям полей, составляющих первичный ключ этих журналов.

<вид диалога>
для редактируемых курсоров, строковая константа, задает вид диалога редактирования записи (если журнал, по которому построен курсор, имеет несколько видов)

<приглашение>
задает название окна выбора. Пустая строка означает название по умолчанию.

<парам.груп.выбора>
параметры для вызова внутри обработчика групповой выбор

<посл. уровень>
если первый используемый журнал имеет вид дерева, то это задает необходимость выбирать записи только последнего уровня (не группы). По умолчанию ДА.

<настройки>
необязательный параметр, задает имя, под которым сохраняются настройки (видимости колонок, порядка колонок, сортировки и т.д.)

Содержимое курсора можно редактировать, удалять и добавлять в него записи, пользоваться буфером обмена. При этом изменяться будет первый используемый в курсоре журнал. Для включения возможности редактирования курсора достаточно, чтобы курсор выбирал первичный ключ этого журнала. В противном случае курсор будет не доступен для изменения.

Внутри редактора доступны оглавления первого используемого в курсоре журнала. Выборка может и не содержать полей, на которые накладывает условие оглавления (однако в этом при переключении между оглавлениями не будет происходить перепозиционирование курсора на выбранную запись!).

Если первый используемый в курсоре журнал имеет вид дерева, курсор также может иметь вид дерева. Для этого необходимо, чтобы поля кол_подуровней и кол_подгрупп входили в выборку.

В процессе выполнения алгоритма курсор может принимать различные значения. Настройки окна, которые изменяет пользователь в процессе просмотра, например, настройки видимых колонок, изначально привязываются к первому используемому журналу. Если пользователь скроет какую-то колонку, программа запомнит это. Однако если при выполнении алгоритма курсор был построен иначе, в таблице будут отображаться совсем другие колонки и настройки пользователя будут бесполезны. Для устранения этой проблемы предназначен параметр <настройки>. Он должен определять различные строки для различных значений курсора, тогда настройки окна и, в частности, настройки видимых колонок будут разные.

При вызове из обработчика группового выбора возможно указание параметров связи. Синтаксис такой же как и при выборе из журнала, однако в качестве <поле исх> указывается переменная, в которую возвращается результат расчета выражения, например для курсора:

КУРСОР кур ПО ЖУРНАЛУ товары.код код, товары.название название (ДА)

синтаксис должен быть такой:

ВЫБОР_ЗАПИСИ(кур (код = код_товара) )

Будьте внимательны при использовании курсоров в групповом выборе, т.к. программа не проверяет корректность условий ссылок на этапе проверки синтаксиса. Сообщения об ошибках будут появляться во время выполнения алгоритма. Курсор, описанный в обработчике выбора значения должен соответствовать курсору, описанному в обработчике группового выбора (имена курсоров и имена переменных, в которые помещаются результаты расчета, дожны быть одинаковыми), в противном случае выдается сообщение об ошибке. Разумным решением использовать единую функцию для группового выбора и обработчика выбора значения.

Пример

КУРСОР кур ПО клиенты к << СУММА(накладные.сумма):"Оборот" (ДА)

к.НАЙТИ(код = 2) // Чтобы курсор в диалоге стоял на клиенте с кодом "2"

ВЫБОР_ЗАПИСИ(кур)

КУРСОР кур ПО клиенты.код код_клиента << СУММА(накладные.сумма): "Оборот" (ДА)

код_клиента = 2 // Чтобы курсор в диалоге стоял на клиенте с кодом "2"

ВЫБОР_ЗАПИСИ(кур)

См.также
Функция ВЫБОР_ЗАПИСЕЙ
Функция СТАРТ_ЖУРНАЛ
Метод ВЫБОР_ДЕТАЛИ


ВЫБОР_ЗАПИСЕЙ

Функция ВЫБОР_ЗАПИСЕЙ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_ЗАПИСЕЙ аналогична функции ВЫБОР_ЗАПИСИ, но позволяет выбрать несколько записей из журнала или курсора.

Синтаксис (выбор записей из журнала):

ВЫБОР_ЗАПИСЕЙ (<переменная>[:<вид журнала>[:<вид диалога>]], <строк.переменная>

[,<условие> [,<посл. уровень> ] ]
[,<приглашение> [,[<поля>:<возрастание>[,...]] [:<текущая закладка> [:<вид оглавления>]]]])

где

<переменная>
переменная типа ЖУРНАЛ, в которую будет загружена запись после выбора ее из соответствующего журнала и завершения работы функции. Если в нее загружена запись этого журнала перед вызовом функции ВЫБОР_ЗАПИСЕЙ, то курсор в таблице выбора будет указывать на эту запись.

<строк.переменная>
строковая переменная, в которую будет помещен перечень кодов записей (через точку с запятой). Если эта переменная заполнена кодами записей журнала перед вызовом функции ВЫБОР_ЗАПИСЕЙ, то все они будут отмечены в таблице.

<условие>
определяет условие на поля журнала. В списке выбора будут только записи, удовлетворяющие этому условию. Условие может быть комбинированным на несколько журналов. Для журналов, которые имеют вид дерева условие раcпространяется записи, не являющиеся группами; на группы условие не действует, вместо этого на группы будет действовать условие: группа показывается, если в ней есть записи, попадающие под условие фильтра.

<посл. уровень>
если журнал имеет вид дерева, то это задает необходимость выбирать записи только последнего уровня (не группы). По умолчанию ДА.

<приглашение>
задает название окна выбора. По умолчанию, или если указана пустая строка в заголовке отображается название журнала.

<поля>
задает список полей сортировки (в случае выбора с условием)

<возрастание>
логическое выражение, определяющее порядок сортировки. Если ДА, то по возрастанию, если НЕТ, то по убыванию.

<вид журнала>
строковая константа, задает вид журнала (если журнал имеет несколько видов)

<вид диалога>
строковая константа, задает вид диалога редактирования записи (если журнал имеет несколько видов)

<текущая закладка>
используется в случае, если журнал имеет свое оглавление. Позволяет указать закладку, на которой должен быть открыт журнал. Если параметр не указан или указана пустая строка, то журнал открывается на закладке, которая была выбрана в последний раз.

<вид оглавления>
используется в случае, если журнал имеет свое оглавление. Позволяет указать вид оглавления. Это строковый параметр, который передается в обработчик и может влиять на его работу.

Функция работает аналогично функции ВЫБОР_ЗАПИСИ, но позволяет выбрать несколько записей из журнала. При этом запись, возвращаемая с помощью параметра <переменная> может и не оказаться среди ключей, возвращаемых параметром <строк.переменная>. Например, в таблице было выбрано две записи, а потом курсор был переведен на третью запись, но она выбрана не была. А далее нажали <OK>.

В бланках и отчетах возможно использование функции ВЫБОР_ЗАПИСЕЙ!, которая не выводит диалога ввода.

Пример 1

ВЫБОР_ЗАПИСЕЙ(товары, список_товаров)

Синтаксис (выбор записей по курсору):

ВЫБОР_ЗАПИСЕЙ (<переменная>, <строк.переменная> [,<посл. уровень> ] [,<приглашение>] [,<настройки>])

где

<переменная>
переменная типа КУРСОР, определяющая выборку. Курсор может иметь дополнительные описания названия, формата, и подсветки полей. Также как и при выборе записи из журнала, если переменные типа ЖУРНАЛ, использующиеся курсором, были считаны перед вызовом функции ВЫБОР_ЗАПИСЕЙ (также как и локальные переменные, в которые будет помещаться результат выбора записи курсора были проинициализированы значениями), то в таблице выбора будет выделена считанная запись. Программа ищет ее по значениям полей, составляющих первичный ключ этих журналов.

<строк.переменная>
строковая переменная, в которую будет помещен перечень кодов записей (через точку с запятой). Под кодами программа понимает значения полей, составляющих первичные ключи журналов, входящих в курсор. Несколько значений отделяются символами РР. Если эта переменная заполнена кодами записей журнала перед вызовом функции ВЫБОР_ЗАПИСЕЙ, то все они будут отмечены в таблице.

<приглашение>
задает название окна выбора. Пустая строка означает название по умолчанию.

<посл. уровень>
если первый используемый журнал имеет вид дерева, то это задает необходимость выбирать записи только последнего уровня (не группы). По умолчанию ДА.

<настройки>
необязательный параметр, задает имя, под которым сохраняются настройки (видимости колонок, порядка колонок, сортировки и т.д.)

Функция работает аналогично функции ВЫБОР_ЗАПИСИ, но позволяет выбрать несколько записей из курсора. При этом запись, возвращаемая с курсором может и не оказаться среди ключей, возвращаемых параметром <строк.переменная>. Например, в таблице было выбрано две записи, а потом курсор был переведен на третью запись, но она выбрана не была. А далее нажали <OK>.

Структура переменной <строк.переменная> следующая:

<знач1> + РР + <знач2> + ... + РР + <значN> + ";" +

<знач1> + РР + <знач2> + ... + РР + <значN> + ";" +

...

Другими словами, одна запись от другой в параметре отделяется точкой с запятой. При этом если запись идентифицируется не одним ключом, а несколькими, то значения ключей отделяются символами РР.

Пример

КУРСОР кур ПО клиенты к << СУММА(накладные.сумма):"Оборот" (ДА)

к.НАЙТИ(код = 2) // Чтобы курсор в диалоге стоял на клиенте с кодом "2"

список_клиентов = "3;4" // Чтобы в таблице были отмечены две записи с кодом "3" и "4"

ВЫБОР_ЗАПИСЕЙ(кур, список_клиентов)

См.также
Функция ВЫБОР_ЗАПИСИ


ВЫБОР_ИЗ_ОТЧЕТА

Функция ВЫБОР_ИЗ_ОТЧЕТА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_ИЗ_ОТЧЕТА открывает диалоговое окно с отчетом и ждет от пользователя выбора строки или ячейки отчета.

Синтаксис:

ВЫБОР_ИЗ_ОТЧЕТА(<имя файла отчета> [,<колонка>[,<строка>[,<ячейка>]]])

Здесь

<имя файла отчета>
задает имя файла (можно без расширения), а остальные параметры соответствуют параметрам вызываемого отчета указанным после ВЫЧИСЛИТЬ в его расчетной части.

Результат — строка вида:

<колонка> + РР + <строка> + РР + <ячейка>

объединение выбранной колонки, строки и ячейки отчета. Поэтому, для того чтобы получить нужный параметр, например, выбранную строку, используется функция СЛОВО! (с восклицательным знаком). Для отчетов со строчным выделением <колонка> и <ячейка> будут пустой строкой. Если пользователь нажал <Отмена> в диалоге выбора, функция вернет пустую строку.

Пример:

результат = ВЫБОР_ИЗ_ОТЧЕТА("Registry1")

// В переменную "колонка" будет занесен индекс (или строка возврата) колонки, выбранной пользователем в отчете

колонка = СЛОВО!(1, результат, РР)

// В переменную "строка" будет занесен индекс (или строка возврата) строки, выбранной пользователем в отчете

строка = СЛОВО!(2, результат, РР)

// В переменную "ячейка" будет занесено содержимое ячейки, выбранной пользователем в отчете

ячейка = СЛОВО!(3, результат, РР)

См. также
СТАРТ_ОТЧЕТ


ВЫБОР_СЕРТИФИКАТА

Функция ВЫБОР_СЕРТИФИКАТА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_СЕРТИФИКАТА выводит диалог выбора сертификата электронной подписи. При выборе возвращает его отпечаток или какой-либо другой параметр.

Синтаксис:

ВЫБОР_СЕРТИФИКАТА [(<тип задания>)]

Результат — строка. Если параметр <тип задания> не указан возвращает отпечаток выбранного сертификата. Если параметр <тип задания> указан, возвращает указанный параметр сертификата. Если пользователь отказался от выбора возвращает пустую строку.

Выбор происходит из хранилища личных сертификатов.

Пример:

серт = ВЫБОР_СЕРТИФИКАТА

См. также
Функция СЕРТИФИКАТ_ИНФО
Функция СЕРТИФИКАТ_ПРОВЕРИТЬ
Функция ПОДПИСЬ_ДОБАВИТЬ
Функция ПОДПИСЬ_ПРОВЕРИТЬ
Функция ПОДПИСЬ_ШИФРОВАТЬ
Функция ПОДПИСЬ_РАСШИФРОВАТЬ


ВЫБОР_СТАТЬИ

Функция ВЫБОР_СТАТЬИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_СТАТЬИ выводит диалоговое окно выбора статьи налогового учета. При выборе статьи пользователем возвращает ее код, а при отмене пустую строку.

Синтаксис:

ВЫБОР_СТАТЬИ (<код статьи> [ ,<посл. уровень> ] )

где

<код статьи>
стартовое значение кода статьи;

<посл. уровень>
параметр логического типа, указывающий, требуется ли выбирать только статью последнего уровня. По умолчанию НЕТ.

Результат — строка.

Замечание!

В бланках и отчетах возможно использование функции ВЫБОР_СТАТЬИ!, которая не выводит диалога ввода. Вместо этого в диалоге параметров отчета, содержащего данную функцию, появляется графа ввода с выбором статьи. После восклицательного знака можно поставить условие на отображение опции.

Пример:

Статьи = ВЫБОР_СТАТЬИ ("ВД/")


ВЫБОР_СЧЕТА

Функция ВЫБОР_СЧЕТА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_СЧЕТА выводит диалоговое окно выбора счета из плана счетов. При выборе счета пользователем возвращает его код, а при отмене пустую строку.

Синтаксис:

ВЫБОР_СЧЕТА[ (<код счета> [:<шаблон счетов>] [ ,<посл. уровень> [ ,<аналитика>
[ ,<множественный выбор> [ ,<хотя бы один> [ ( <исключить> ) ] ] ] ]
[ ,<заголовок>] [,<настройки>] [,<параметр фильтра аналитик>] [ ,<дата остатка> [,<в дате>]]] ) ]

где

<код счета>
начальное значение кода счета;

<шаблон счетов>
необязательный параметр, строка, задающая шаблон (фильтр) отображаемых счетов;

<посл. уровень>
параметр логического типа, указывающий, требуется ли выбирать только счета последнего уровня. По умолчанию НЕТ.

<аналитика>
выбирать счет с аналитическими признаками. По умолчанию НЕТ.

<множественный выбор>
разрешается выбрать несколько счетов (множественный выбор). По умолчанию НЕТ.

<хотя бы один>
если указано ДА, то при использовании множественного выбора хотя бы один элемент будет выбран. Если указано НЕТ (по умолчанию), может не быть выбрано ни одного элемента.

<исключить>
указываются исключения на признаки целиком и условия на записи признаков

<заголовок>
заголовок окна выбора.

<настройки>
необязательный параметр, задает имя, под которым сохраняются настройки (видимости колонок, порядка колонок, сортировки и т.д.), используется только в настройке таблиц аналитик

<параметр фильтра аналитик>
строковый параметр, который передается во все обработчики фильтра аналитик

<дата остатка>
задает дату, на которую будет выведен остаток при установке соответствующей опции в виде плана счетов.

<в дате>
номер операции, если надо выводить остаток перед началом конкретной бухгалтерской операции.

Результат — строка — код счета, который выбрал пользователь. Если пользователь отказался от выбора, в окне был нажато <Отмена>, то:

·пустая строка, если множественный выбор не используется

·<код счета> (начальное значение кода счета) если используется множественный выбор

Если счет выбирается с аналитическими признаками, возвращается расширенный код счета в виде строки. Если в этом случае <посл. уровень> = НЕТ, то программа не требует указание аналитик. Если аналитик несколько, то возвращается расширенный код счета последовательно со всеми аналитиками, включая последнюю, на закладке которой пользователь нажал <OK>.

Если счет выбирается с аналитическими признаками, в параметре <исключить> можно через запятую указать:

·Признаки в виде объектов типа ЖУРНАЛ, которые будут исключены из выбора. Это означает что при выборе счета, имеющего аналитику, указанную в этом перечне, эта аналитика будет скрыта от выбора. В расширенном коде счета, который будет возвращен функцией исключенные аналитические признаки будут получаться из указанных объектов.

·Условия на аналитики в виде объектов ФИЛЬТР. При выборе счета, имеющего аналитику, соответствующую фильтру, выбор записей аналитики будет ограничен условиями фильтра. Если аналитика имеет вдобавок и обработчик фильтр аналитик, условия наложатся друг на друга.

Также в параметре <исключить> можно указать строку вида

"<идентификатор>:<код>;...;<идентификатор>:<код>"

где <идентификатор> — идентификатор журнала — аналитического признака, <код> — значение кода аналитики. Это равнозначно указанию объектов ЖУРНАЛ, но позволяет генерировать исключения динамически.

Параметр <шаблон счетов> позволяет отфильтровать план счетов по заданному шаблону. Шаблон задается в виде строки, например, строка "41;43;10" означает, что в плане счетов будут счета 41, 43, 10 и их субсчета. Строка "2*" означает, что будут счета, начинающиеся с 2-ки. Фильтр не жесткий, пользователь может отменить фильтрацию, если нажмет кнопку добавления нового счета.

Замечание!

В бланках и отчетах возможно использование функции ВЫБОР_СЧЕТА!, которая не выводит диалога ввода. Вместо этого в диалоге параметров отчета, содержащего данную функцию, появляется графа ввода с выбором счета. После восклицательного знака можно поставить условие на отображение опции.

Пример:

// Просто выбор счета

КодСч = ВЫБОР_СЧЕТА

// Выбор из ветки 41-ого счета, с возможностью выбора любого другого счета

КодТовара = ВЫБОР_СЧЕТА("41/", ДА, ДА, "Выберите товар")

// То же самое, но с указанием шаблона (фильтра) плана счетов

КодТМЦ = ВЫБОР_СЧЕТА("41/":"41;43;10", ДА, ДА, "Выберите ТМЦ")

// Выбор нескольких счетов

СписокТМЦ = ВЫБОР_СЧЕТА("41/", ДА, ДА, ДА, "Выберите товары")


ВЫБОР_ФАЙЛА

Функция ВЫБОР_ФАЙЛА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБОР_ФАЙЛА выводит диалоговое окно выбора файла.

Синтаксис:

ВЫБОР_ФАЙЛА [ (<каталог/файл> [, <заголовок окна> [, <тип файлов>, <расширение> [, <вариант> ] ] ] ) ]

где

<каталог/файл>
каталог, с которого начинается выбор файлов и имя файла по умолчанию;

<заголовок окна>
заголовок окна диалога;

<тип файлов>
строка в графе "Тип файлов";

<расширение>
расширение файлов; если надо перечислить несколько расширений, отделяйте их точкой с запятой;

<вариант>
логический параметр, определяющий вариант диалога;

Результат — строка. При нажатии в диалоговом окне кнопки <Отмена> возвращает пустую строку.

Если параметр <каталог/файл> указывает относительный путь, он будет откладываться от каталога выходных документов. Каталог должен существовать! Для того чтобы указать имя файла по умолчанию, надо передать его вместе с именем каталога, т.е. путь должен указывать на имя нового (или существующего) файла внутри существующего каталога.

Существуют два варианта выбора файла, которые различаются по тем действиям, которые будут происходить после выбора. Если <вариант> = НЕТ (по умолчанию), считается, что последующие действия будут считывать содержимое из файла. В таком случае, если файл не существует, будет выдано предупреждение. Если <вариант> = ДА, считается, что последующие действия будут записывать в файл. В этом случае, если файл существует, будет выдано подтверждение о перезаписи этого файла. Если <вариант> = НЕТ, имя файла по умолчанию будет использовано только один раз при первом запуске функции, все последующие вызовы будут использовать последнее использованное имя файла.

Для каждого типа файла можно указать несколько расширений. Для этого отделяйте их точкой с запятой.

Можно указать несколько типов файлов. Для этого отделяйте типы файлов и соответствующие им расширения разделителем РР. Кол-во фрагментов должно быть одинаковым. Каждому типу файлов должно соответствовать расширение (или несколько расширений через точку с запятой).

Пример:

файл = ВЫБОР_ФАЙЛА ( "BACKUP", // По умолчанию будет имя файла "BACKUP"

"Выбор файла для удаления", // Заголовок диалога

"Резервные копии файлов", // Как называются файлы с расширением BAK

"BAK") // Расширение BAK

ЕСЛИ файл <> "" ТО

успех = ФАЙЛ_УДАЛИТЬ ( файл )

КОНЕЦ_ЕСЛИ

См.также
ВЫБОР_ДИР


ВЫБРАТЬ_ЗНАЧЕНИЕ

Функция ВЫБРАТЬ_ЗНАЧЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫБРАТЬ_ЗНАЧЕНИЕ похожа на функцию ВВЕСТИ_ЗНАЧЕНИЕ с выбором из перечисленных значений, но позволяет выбирать сразу несколько элементов. Выбор значения производится в диалоговом окне, которое появляется при выполнении расчетной части бланка. Окно будет содержать список вариантов, слева от которых будет стоять:

— если вариант выбран.

— если не выбран.

Список вариантов никак не ограничен. Если вариантов много и они не умещаются на экране, список будет иметь полосу прокрутки.

Синтаксис:

ВЫБРАТЬ_ЗНАЧЕНИЕ ( <запрос>, <варианты>, <результат> [, <запретить менять>] )

где

<запрос>
строка, содержащая вопрос;

<варианты>
массив строк, задающий варианты;

<результат>
массив логических значений, означающий, выбран элемент или нет;

<запретить менять>
необязательный массив логических значений, означающий запрет изменения элемента;

Массив, задающий варианты должен состоять из строк, определяющих названия. Массив результатов состоит из логических значений, определяющих, выбран вариант или нет. При открытии диалога это задает значение опций в диалоге, при возврате из диалога по нему определяется новое, установленное пользователем, значение выбора.

Варианты могут иметь группы. Пользователь, включая или выключая группу, изменяет и состояние всех элементов этой группы. Если надо чтобы вариант входил в группу, его название должно начинаться с пробела.

Результат — логика, определяется по тому, были ли изменены варианты или пользователь нажал в диалоге выбора <Отмена>.

Пример 1:

Ниже приведен пример, в котором при помощи функции ВЫБРАТЬ_ЗНАЧЕНИЕ предлагается указать отображаемые колонки в таблице. При выполнении функции на экране появится диалоговое окно, в котором будут перечислены возможные колонки:

С левой стороны от каждого варианта располагается флажок переключателя. Для выбора варианта щелкните клавишей мыши по флажку переключателя перед требуемым пунктом, а затем нажмите клавишу <Enter> или щелкните клавишей мыши по кнопке <OK>.

ПЕРЕМ ЛОГИКА: спис_цен[]

ВЫЧИСЛИТЬ

ЕСЛИ ВЫБРАТЬ_ЗНАЧЕНИЕ("Выберите категории цен", ["Оптовые", "Мелкооптовые",

"pозничные"], спис_цен) ТО

ЕСЛИ спис_цен[1] ТО

// Оптовые выбраны

КОНЕЦ_ЕСЛИ

ЕСЛИ спис_цен[2] ТО

// Мелкооптовые выбраны

КОНЕЦ_ЕСЛИ

ЕСЛИ спис_цен[3] ТО

// pозничные выбраны

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ

См.также
Функция ВВЕСТИ_ЗНАЧЕНИЕ
Функция ВЫБОР


ВЫВЕСТИ

Функция ВЫВЕСТИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫВЕСТИ предназначена для вывода информации в бланке. Она может выводить как заранее подготовленный фрагмент бланка, заданный секцией, так и произвольное значение в указанную позицию и строку документа, используя необходимый шрифт и выравнивание.

Синтаксис:

ВЫВЕСТИ (<секция>)

или

ВЫВЕСТИ (<позиция в строке>, <номер строки>, <выводимое выражение>,

[ [<длина поля>[, <длина дробной части/количество строк>] ],

[ <шрифт> [, <выравнивание> [, <поворот> [, <автовысота>] ] ] ] ] ),

где

<секция>
секция, которую надо вывести;

<позиция в строке>
определяет позицию в строке, с какой будет выведено значение;

<номер строки>
определяет номер строки, начиная с первой строки документа, в которую будет выведено значение;

<выводимое выражение>
определяет выражение, значение которого будет выводиться на экран. Поддерживается любой простой тип

<длина поля>
определяет количество знакомест, отводимых для вывода значения;

<длина дроб. части/ количество строк>
параметр, определяющий количество знаков после запятой для числовых значений или количество строк отводимых для вывода символьных значений;

<шрифт>
переменная типа ШРИФТ. Обычно она совпадает с именем соответствующего шрифта бланка

<выравнивание>
строковое выражение, определяющее тип выравнивания. Строка может состоять из букв, определяющих соответствующее выравнивание.

<поворот>
поворт строки против часовой стрелки

<автовысота>
выполнить автомаческий перерасчет высоты после выполнения бланка (аналогично опции в настройках графы)

Возможны следующие типы выравнивания:

Горизонтальное выравнивание:

Л | определяет выравнивание наЛево, стандартное для строк
П | определяет выравнивание наПраво, стандартное для чисел
Ц | определяет выравнивание по Центру
Р | выводимая информация распределяется Равномерно по горизонтали

Вертикальное выравнивание:

В | определяет выравнивание вВерх
Н | определяет выравнивание вНиз
С | информация выводится по Середине графы
У | выводимая информация Усредняется по вертикали

Пример:

// Присваиваем переменным необходимые значения:

Строка = "С Новым Годом !"

Число = 100.23456

// Выводим, начиная с 10-позиции, в 5 строку содержимое переменной Строка,

// при этом, поле вывода ограничивается 20 знаками

ВЫВЕСТИ (10, 5, Строка, 20)

// В 40-ую позицию 5-ой строки выводим значение переменной Число,

// при этом под поле вывода будет выделено 6 знаков, а количество знаков

// после запятой будет ограничено двумя знаками.

ВЫВЕСТИ (40, 5, Число, 6, 2)

См. также
примеры ВЫВЕСТИ при помощи секций

Пример.

Для совместимости со старыми версиями программы существует еще один вариант синтаксиса функции ВЫВЕСТИ. В нем вместо объекта ШРИФТ указываются параметры шрифта внутри самой функции:

ВЫВЕСТИ (<позиция в строке>, <номер строки>, <выводимое выражение>

[ [<длина поля> [, <длина дробной части/количество строк>] ],

<жирный шрифт> [, <наклонный шрифт> [, <подчеркнутый шрифт>] ] ],

[<размер шрифта> [, <название шрифта> [, <выравнивание> [, <поворот>

[, <автовысота>] ] ] ] ] ),

где

<секция>
секция, которую надо вывести;

<позиция в строке>
определяет позицию в строке, с какой будет выведено значение;

<номер строки>
определяет номер строки, начиная с первой строки документа, в которую будет выведено значение;

<выводимое выражение>
определяет выражение, значение которого будет выводиться на экран. Поддерживается любой простой тип

<длина поля>
определяет количество знакомест, отводимых для вывода значения;

<длина дроб. части/ количество строк>
параметр, определяющий количество знаков после запятой для числовых значений или количество строк отводимых для вывода символьных значений;

<жирный шрифт>
параметр логического типа, позволяющий выводить текст полужирным шрифтом.

<наклонный шрифт>
параметр логического типа, позволяющий выводить текст наклонным шрифтом.

<подчеркнутый шрифт>
параметр логического типа, позволяющий выводить текст подчеркнутым шрифтом.

<размер шрифта>
число, определяющее размер шрифта. Должно быть в диапазоне от 1 до 255. Размер шрифта 255 определяет размер по умолчанию, равный размеру основного шрифта бланка.

<название шрифта>
строковое выражение, определяющее название шрифта.

<выравнивание>
строковое выражение, определяющее тип выравнивания. Строка может состоять из букв, определяющих соответствующее выравнивание.

<поворот>
поворт строки против часовой стрелки

<автовысота>
выполнить автомаческий перерасчет высоты после выполнения бланка


ВЫЗВАТЬ_ИЗМЕНЕНИЕ

Функция ВЫЗВАТЬ_ИЗМЕНЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Если в диалоге, типовой операции или бланке есть секция ИЗМЕНЕНИЕ и эту секцию надо принудительно выполнить, используется функция ВЫЗВАТЬ_ИЗМЕНЕНИЕ.

Синтаксис:

ВЫЗВАТЬ_ИЗМЕНЕНИЕ [(<имя переменной> [, <имя переменной>] [, ...])]

Внимание!

·Если внутри секции ИЗМЕНЕНИЕ используется функция ИЗМЕНЕНА, то она будет возвращать ДА в процессе выполнения этой функции. Изменить это поведение можно с помощью указания конкретных граф, для которых надо, чтобы ИЗМЕНЕНА возвращала ДА. Переменные, соответствующие этим графам, указываются в качестве параметров функции ВЫЗВАТЬ_ИЗМЕНЕНИЕ через запятую.

Примеры:

ОПЕРАЦИЯ Тест

.....

ИЗМЕНЕНИЕ

м = 2

ВЫЧИСЛИТЬ

//.....

м = 1

ОТЛАДКА(м) // Выведет значение "1"

ВЫЗВАТЬ_ИЗМЕНЕНИЕ // Вызов секции ИЗМЕНЕНИЕ

ОТЛАДКА(м) // Выведет значение "2"

//.....

КОНЕЦ


ВЫЗВАТЬ

Функция ВЫЗВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫЗВАТЬ вызывает функции из внешних динамических библиотек DLL.

Синтаксис:

ВЫЗВАТЬ (<библиотека>,<функция> : <описание параметров> : <описание результата>

[,<параметр1>[,<параметр2>[,...]]]),

где:

<библиотека>
имя библиотеки;

<функция>
имя функции;

<описание параметров>, <описание результата>
строковая константа, определяющая описание параметров и возвращаемого результата;

<параметр1> и т.д
дополнительные параметры: выражения (при передаче параметра) или переменные (при возврате параметра);

Результат — в зависимости от параметра <описание результата>. Описание состоит из перечисления через запятую или точку с запятой типов параметров. Таблица ниже содержит список типов и то, какие параметры (переменные) соответствуют им во внутреннем языке Инфо-Предприятия.

Во внутреннем языке | В описании параметров (результата), через черту — синонимы
СТРОКА | STRING WIDESTRING OLESTRING
ЧИСЛО | BYTE / UCHAR SMALLINT / SHORT INTEGER / INT WORD LONGWORD / DWORD / UINT INT64 / LONGLONG SINGLE DOUBLE LONGDOUBLE
ЛОГИКА | BOOLEAN / WORDBOOL
ДАТА | DATE
ОБЪЕКТ | DISPATCH

Типу может предшествовать символ "*" (звездочка). В этом случае параметр считается параметром-переменной. Например описание "INTEGER" определяет целый параметр, а "*STRING" параметр-переменную строкового типа.

Максимальный размер буфера для строковых переменных — 32767 символов.

Пример 1

// В вызовах используются параметры-значения и возврат результата
фокус = ВЫЗВАТЬ("User32.dll", "GetFocus": "": "INT")
дц = ВЫЗВАТЬ("User32.dll", "GetWindowDC": "INT": "INT", фокус)
ЦИКЛ ДЛЯ (и = 1, 300)
браш = ВЫЗВАТЬ("Gdi32.dll", "CreateSolidBrush": "LONGWORD": "INT", СЛУЧ_ЧИСЛО(256*256*256))
ргн = ВЫЗВАТЬ("Gdi32.dll", "CreateRectRgn": "INT;INT;INT;INT": "INT",
СЛУЧ_ЧИСЛО(700), СЛУЧ_ЧИСЛО(700), СЛУЧ_ЧИСЛО(1200), СЛУЧ_ЧИСЛО(1200))
ВЫЗВАТЬ("Gdi32.dll", "FillRgn": "INT;INT;INT": "", дц, ргн, браш)
ВЫЗВАТЬ("Gdi32.dll", "DeleteObject": "INT": "", браш)
ВЫЗВАТЬ("Gdi32.dll", "DeleteObject": "INT": "", ргн)
ПАУЗА(10)
КОНЕЦ_ЦИКЛА

Пример 2

// Параметр-переменная "заголовок окна" используется для получения заголовка окна
фокус = ВЫЗВАТЬ("User32.dll", "GetFocus": "": "INT")
родитель = ВЫЗВАТЬ("User32.dll", "GetParent": "INT": "INT", фокус)
ВЫЗВАТЬ("User32.dll", "GetWindowTextA": "INT,*STRING,INT": "INT", родитель, заголовок_окна, 1000)
СООБЩЕНИЕ(заголовок_окна)

Структурированные данные:

ВЫЗВАТЬ позволяет использовать в качестве параметров-значений и параметров-переменных структуры. Для их выделения используются прямые скобки "[" и "]". Структуры всегда передаются по ссылке. Если указывается "*" (звездочка) перед началом структуры, программа считает ее параметром-переменной и будет требовать указать переменные, а не выражения. В эти переменные загрузятся значения соответствующих элементов структуры после выполнения функции. Например, "[INT,INT]" задает параметр-значение, а "*[INT,INT]" определяет параметр-переменную.

Пример 3

// Функция получает размеры текущего окна и рисует красный прямоугольник по его центру
фокус = ВЫЗВАТЬ("User32.dll", "GetFocus": "": "INT")
// Получим размер клиентской области окна
ВЫЗВАТЬ("User32.dll", "GetClientRect": "INT;*[INT,INT,INT,INT]": "", фокус, х, у, х2, у2)
дц = ВЫЗВАТЬ("User32.dll", "GetWindowDC": "INT": "INT", фокус)
браш = ВЫЗВАТЬ("Gdi32.dll", "CreateSolidBrush": "LONGWORD": "INT", 255)
ргн = ВЫЗВАТЬ("Gdi32.dll", "CreateRectRgn": "INT;INT;INT;INT": "INT", х2 \ 3, у2 \ 3, х2 * 2 \ 3, у2 * 2 \ 3)
ВЫЗВАТЬ("Gdi32.dll", "FillRgn": "INT;INT;INT": "", дц, ргн, браш)
ВЫЗВАТЬ("Gdi32.dll", "DeleteObject": "INT": "", браш)
ВЫЗВАТЬ("Gdi32.dll", "DeleteObject": "INT": "", ргн)
СООБЩЕНИЕ("Готово")

Пример 4

фокус = ВЫЗВАТЬ("User32.dll", "GetFocus": "": "INT")
ВЫЗВАТЬ("User32.dll", "GetClientRect": "INT;*[INT,INT,INT,INT]": "", фокус, х1, у1, х2, у2)
ВЫЗВАТЬ("User32.dll", "MapWindowPoints": "INT;INT;*[INT,INT,INT,INT];UINT": "", фокус, 0, х1, у1, х2, у2, 2)
дх = 5 ду = 5
ЦИКЛ ПОКА (ДА)
ВЫЗВАТЬ("User32.dll", "GetCursorPos": "*[INT;INT]": "", х, у)
ЕСЛИ х > х2 - 5 ТО дх = - 5 ИНАЧЕ_ЕСЛИ х < х1 + 5 ТО дх = 5 КОНЕЦ_ЕСЛИ
ЕСЛИ у > у2 - 5 ТО ду = - 5 ИНАЧЕ_ЕСЛИ у < у1 + 5 ТО ду = 5 КОНЕЦ_ЕСЛИ
ВЫЗВАТЬ("User32.dll", "SetCursorPos": "INT;INT": "", х + дх, у + ду)
ПАУЗА(10)
КОНЕЦ_ЦИКЛА


ВЫЗОВ

Функция ВЫЗОВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫЗОВ предназначена для сторонних разработчиков. Она позволяет вызывать функции из внешних динамических библиотек DLL.

Замечание!

Функция оставлена для совместимости с существующими разработками. В программе есть другая функция — ВЫЗВАТЬ, обладающая большими возможностями.

Синтаксис:

ВЫЗОВ (<библиотека>,<функция>[,<параметр1>[,<параметр2>[,...]]]),

где:

<библиотека>
имя библиотеки;

<функция>
имя функции;

<параметр1> и т.д
дополнительные параметры;

Результат — логика. Означает успешность вызова функции.

Первым параметром пользовательской функции всегда должен быть дескриптор окна. Например, при вызове из бланка — это дескриптор окна бланка. Так, при отсутствии параметров функция библиотеки должна описываться следующим образом:

В Delphi: procedure <функция>(hWindow: HWND); stdcall;

В C: void WINAPI <функция> (HWND hWindow)

В присутствии параметров действует следующее преобразование типов

Инфо-Предприятие | Delphi | C
ПЕРЕМ СТРОКА : строка | str: PChar | PCSTR str
ПЕРЕМ ЧИСЛО : число | var value: extended | longdouble* value
ПЕРЕМ ЛОГИКА : логика | var bool: boolean | PBOOLEAN bool
ПЕРЕМ ДАТА : дата | var date: word | PWORD date

Максимальный размер буфера для строковых переменных — 32767 символов.

Пример (Delphi)

library TestDLL;

uses Windows;

procedure Func(Wnd: HWnd; Str: PChar); stdcall;

begin

MessageBox(Wnd,Str,'Сообщение',0);

end;

exports Func;

end.

ФУНКЦИЯ СООБ(СТРОКА: с)

ВЫЗОВ("TestDLL", "Func", с)

КОНЕЦ_ФУНКЦИИ


ВЫПОЛНИТЬ

Функция ВЫПОЛНИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫПОЛНИТЬ запускает внешнюю программу или запустить документ зарегистрированного в операционной системе типа.

Синтаксис:

ВЫПОЛНИТЬ (<имя файла> [ ,<рабочий каталог> ] [ ,<ждать завершения>] [ ,<скрыть окно>] ),

где

<имя файла>
имя исполняемого файла программы или документа.

<рабочий каталог>
имя рабочего каталога для программы (по умолчанию используется каталог, в котором находится файл программы).

<ждать завершения>
необязательный параметр, если он равен ДА, то выполнение расчета остановится до тех пор, пока не завершит работу внешняя программа. По умолчанию НЕТ.

<скрыть окно>
необязательный параметр, если он равен ДА, то главное окно вызываемой программы будет скрыто. По умолчанию НЕТ.

Результат не возвращается. Программе могут передаваться параметры. При запуске файла, путь которого содержит пробелы, его надо заключать в кавычки.

Пример:

ВЫПОЛНИТЬ ("notepad.exe")

ВЫПОЛНИТЬ ("readme.doc")

ВЫПОЛНИТЬ ("news.htm")

ВЫПОЛНИТЬ ("Отчет.xls")

// Запуск файла с параметрами

ВЫПОЛНИТЬ ("notepad.exe readme.txt")

// Запуск файла, путь которого содержит пробелы:

ВЫПОЛНИТЬ ("""c:\Program Files\Firebird\Firebird_1_5\bin\gbak""")


ВЫРАЖЕНИЕ

Функция ВЫРАЖЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание I:

Функция ВЫРАЖЕНИЕ вычисляет выражение с использованием переменных бланка или типовой операции.

Синтаксис I:

ВЫРАЖЕНИЕ ( <выражение> [, <результат> [, <тип выражения> [, <ошибка> [, <параметр1> [, ...] ] ]]] )

где

<выражение>
формула или выражение строкового типа;

<результат>
идентификатор переменной, куда будет помещен результат вычисления формулы.

<тип выражения>
необязательный параметр, определяющий тип выражения.

<ошибка>
необязательный параметр — строковая переменная, куда будет помещена строка с сообщением об ошибке.

<параметр1> и т.д
необязательные параметры — переменные типа ЖУРНАЛ

Результат — логическое выражение (ДА или НЕТ).

Параметр <выражение> определяет строку, которую необходимо вычислить. Переменная <результат> должна быть того же типа, что и вычисляемое выражение. При указании параметра <тип выражения> помимо успешности расчета проверяется и соответствие нужному типу результата вычисления. Функция возвращает значение ДА при успешном выполнении расчета, и НЕТ, если выражение содержит ошибку. При необходимости можно получить текст ошибки, передав переменную <ошибка>.

Чтобы передать внутрь исполняемого выражения объекты ЖУРНАЛ, их можно указать в виде дополнительных параметров <параметр1> и др. Внутри выражения должна вызываться функция ИЗ_ЖУРНАЛА, который загружает переданную запись.

Пример 1:

А = 4

Б = 5

ОПРЕДЕЛИТЬ ( "А", A )

ОПРЕДЕЛИТЬ ( "Б", Б )

успех = ВЫРАЖЕНИЕ ( "А+Б", результат ) // успех = ДА, результат = 9

ОПРЕДЕЛИТЬ ( "StdFunc" )

// Далее предполагается, что библиотека StdFunc содержит функцию КВАДРАТ

успех = ВЫРАЖЕНИЕ ( "КВАДРАТ (А)", результат ) // успех = ДА, результат = 16

успех = ВЫРАЖЕНИЕ ( "КВАДРАТ (А)", результат2, ЛОГИКА )

// успех = НЕТ, результат2 неопределен

Пример 2

// Библиотека funcs.lib

ФУНКЦИЯ ЛОГИКА: Редактировать

РЕЗУЛЬТАТ = (ИЗ_ЖУРНАЛА(товар) = 1) И товар.РЕДАКТИРОВАТЬ

КОНЕЦ_ФУНКЦИИ

// Основной алгоритм

ОПРЕДЕЛИТЬ("funcs") // Делаем видимыми внутри ВЫРАЖЕНИЕ все функции из библиотеки funcs.lib

товар.НАЙТИ(код = 4) // Ищем товар с кодом "4"

ВЫРАЖЕНИЕ ("Редактировать", результат, ЛОГИКА, ошибка, товар)

// Вызываем функцию Редактировать из библиотеки funcs.lib

Описание II:

Функция ВЫРАЖЕНИЕ может использоваться для внедрения внутрь условия цикла произвольной строки, содержимое которой определяется на этапе выполнения алгоритма.

См. раздел функция ВЫРАЖЕНИЕ в условии запроса.

См. также
Функция ОПРЕДЕЛИТЬ
Функция ОПРЕДЕЛИТЬ_ЗНАЧ


ВЫРАЖЕНИЕ_СТР

Функция ВЫРАЖЕНИЕ_СТР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫРАЖЕНИЕ_СТР аналогична функции ВЫРАЖЕНИЕ, но работает не с выражениями, а с обычными строками текста, которые могут содержать макро-выражения, определяемые как &[<выражение>]. Функция вычисляет все встретившиеся макро-выражения, преобразует их в строки и вставляет на то место, на котором они стояли в строке.

Синтаксис:

ВЫРАЖЕНИЕ_СТР ( <строка-выражение>)

где

<строка-выражение>
строка или выражение строкового типа;

Результат — строка.

Пример:

т=ВЫРАЖЕНИЕ_СТР("Перечисляется налог на прибыль за &[ПЕРИОД]")

// т="Перечисляется налог на прибыль за 9 мес. 2000" в зависимости от отчетного периода.

См. также
Функция ОПРЕДЕЛИТЬ


ВЫРОВНЯТЬ

Функция ВЫРОВНЯТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫРОВНЯТЬ устанавливает одинаковую ширину для конкретных указанных столбцов.

Синтаксис:

ВЫРОВНЯТЬ [!](<шаблон столбцов> [,<шаблон столбцов>[,...]]])

Здесь параметры <шаблон столбцов> указывают шаблоны столбцов, ширины которых будут выровнены.

Для иерархических отчетов ширины будут выровнены в пределах группы. Это значит, что если половина столбцов, попадающих под шаблон, будет в одной группе, а другая половина в другой, то их ширины могут различаться. Изменить это поведение может указание восклицательного знака после функции.

Замечание!

Опция Столбцы внутри секции имеют одну ширину в параметрах отчета выполняет аналогичные действия для всех столбцов всех секций.

Пример:

ВЫРОВНЯТЬ(1,2,3) // Столбцы с координатами 1, 2 и 3 будут иметь одну ширину

См. также
ВЫРОВНЯТЬВ


ВЫРОВНЯТЬВ

Функция ВЫРОВНЯТЬВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ВЫРОВНЯТЬВ устанавливает одинаковую ширину для конкретных указанных строк. Ширина имеет смысл только при переворачивании отчета при помощи ТРАНСПОНИРОВАТЬ.

Синтаксис:

ВЫРОВНЯТЬВ [!](<шаблон строк> [,<шаблон строк>[,...]]])

Здесь параметры <шаблон строк> указывают шаблоны строк, ширины которых будут выровнены.

Для иерархических отчетов ширины будут выровнены в пределах группы. Это значит, что если половина строк, попадающих под шаблон, будет в одной группе, а другая половина в другой, то их ширины могут различаться. Изменить это поведение может указание восклицательного знака после функции.

Замечание!

Опция Столбцы внутри секции имеют одну ширину в параметрах отчета выполняет аналогичные действия для всех строк всех секций.

Пример:

ВЫРОВНЯТЬВ(1,2,3) // Строки (т.е. столбцы) с координатами 1, 2 и 3 будут иметь одну ширину

ТРАНСПОНИРОВАТЬ

См. также
ВЫРОВНЯТЬ


ГОД

Функция ГОД

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ГОД выделяет год из даты.

Синтаксис:

ГОД [(<дата>)],

где

<дата>
выражение типа дата.

Результат — число от 1950 до 2049. Если параметр <дата> не указан, функция возвращает текущий год.

Пример:

нач_кв = 01.04.99

год1 = ГОД (нач_кв) // переменной год1 присваивается значение 1999

год2 = ГОД (01.01.49) // переменной год2 присваивается значение 2049

год3 = ГОД (01.01.50) // переменной год3 присваивается значение 1950


ГРУППА

Функция ГРУППА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ГРУППА предназначена для создания статических многоуровневых отчетов. Она позволяет группировать отображаемые данные по определенным признакам.

Синтаксис:

ГРУППА (<строка>[:<секция>] [:<добавочный заголовок>], <шаблон строк> [, <шаблон столбцов>

[,<первая подъячейка>] [,<последняя подъячейка>]])

Здесь параметр <строка> определяет координату строки, которая будет являться группой всех строк, указанных в параметре <шаблон строк>. При выполнении этой функции, строки, указанные в параметре <шаблон строк> будут помещены в подуровень, который будет появляться в строчке <строка>. Программа пропустит те строки, которые принадлежат другой группе. Если ни одна строка не попала в группу, функция не будет ничего делать. Если в отчете нет ячейки с координатой <столбец>, функция добавит ее. Программа установит цвет строки группы как темно-синий, если цвет не устанавливался ранее. Параметр <секция> задает номер горизонтальной или вертикальной секции добавленной ячейки, а параметр <добавочный заголовок> добавочный заголовок группы.

В процессе группировки программа автоматически суммирует числовые значения элементов группы и отображает сумму в заголовке группы.

В параметре <шаблон столбцов> можно указать, какие столбцы будут суммироваться. По умолчанию суммируются все числовые столбцы.

В параметрах <первая подъячейка> и <последняя подъячейка> указывается диапазон суммируемых подъячеек. По умолчанию первый параметр равен 0, а второй 2.

Пример

ЦИКЛ ЯЧЕЙКИВ (яч = "*")

ячгр = ВЕРХСЧ(яч, УРОВЕНЬ(яч) — 1)

ЯЧЕЙКА["Название", ячгр] = СТАТЬЯ(ячгр)

ГРУППА(ячгр, яч)

КОНЕЦ_ЦИКЛА

Вы можете применять группировку многократно. При этом каждый раз это приведет к тому, что в группу будут добавлены новые подъячейки. Если строка, помещенная в группу, сама является группой строк, то Вы получите двойную вложенность: Группа -> Подгруппа -> Строчки и т.д. Запрещается только тот случай, когда группа содержит строку, являющуюся группой для этой группы, т.е. группа содержит саму себя прямым или косвенным образом. При таком стечении обстоятельств программа выдает сообщение об ошибке.

Обычно группы создаются после выполнения основных расчетов и заполнения отчета в виде плоской таблицы. Итоги при помощи функции ИТОГО можно считать как до создания групп в отчете, так и после. Однако при расчете итогов после создания групп, программа к вызову ИТОГО по всему отчету добавит и расчет итогов по подгруппам. Поэтому общие итоги разумнее считать после задания групп. Промежуточные же итоги не рекомендуется вычислять после создания групп, так как ИТОГО в этом случае не будет работать "нарастающим итогом" в подгруппах.

Замечание!

Вместо функции ГРУППА можно использовать пару: атрибут атГруппа для создания групп и функцию ГРУППА_ПЕРЕСЧЕТ для пересчета итогов.

См.также
ГРУППА_ПЕРЕСЧЕТ
ГРУППАВ


ГРУППА_ПЕРЕСЧЕТ

Функция ГРУППА_ПЕРЕСЧЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ГРУППА_ПЕРЕСЧЕТ пересчитывает итоги по группам для статических многоуровневых отчетов.

Синтаксис:

ГРУППА_ПЕРЕСЧЕТ (<шаблон строк> [, <шаблон столбцов>[,<первая подъячейка>] [,<последняя подъячейка>]])

Для всех групп удовлетворяющих <шаблону строк> функция просуммирует числовые значения элементов группы и занесет получившуюся сумму в заголовке группы.

В параметре <шаблон столбцов> можно дополнительно указать, какие столбцы будут суммироваться. По умолчанию суммируются все числовые столбцы.

В параметрах <первая подъячейка> и <последняя подъячейка> указывается диапазон суммируемых подъячеек. По умолчанию первый параметр равен 0, а второй 2.

Замечание!

Функция не создает групп, она просто пересчитывает итоги по уже существующим группам. Создать группы можно с помощью атрибута атГруппа.

Пример

ГРУППА_ПЕРЕСЧЕТ("*", "*")

См.также
ГРУППАВ_ПЕРЕСЧЕТ
ГРУППА


ГРУППАВ

Функция ГРУППАВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ГРУППАВ предназначена для создания статических многоуровневых отчетов. Она позволяет группировать отображаемые данные по определенным признакам.

Синтаксис:

ГРУППАВ[!] (<столбец>, <шаблон столбцов> [, <шаблон строк>[,<первая подъячейка>]

[,<последняя подъячейка>]])

Здесь параметр <столбец> определяет координату столбца, которая будет являться группой всех столбцов, указанных в параметре <шаблон столбцов>. При выполнении этой функции, столбцы, указанные в параметре <шаблон столбцов> будут помещены в подуровень, который будет появляться в столбце <столбец>. Программа пропустит те столбцы, которые принадлежат другой группе. Если ни один столбец не попал в группу, функция не будет ничего делать. Если в отчете нет ячейки с координатой <столбец>, функция добавит ее. Программа установит цвет столбца как темно-синий, если цвет не устанавливался ранее.

В процессе группировки программа автоматически суммирует числовые значения элементов группы и отображает сумму в заголовке группы.

В параметре <шаблон строк> можно указать, какие строки будут суммироваться. По умолчанию суммируются все числовые строки.

В параметрах <первая подъячейка> и <последняя подъячейка> указывается диапазон суммируемых подъячеек. По умолчанию первый параметр равен 0, а второй 2.

Пример

ЦИКЛ ЯЧЕЙКИ (яч = "*")

ячгр = ВЕРХСЧ(яч, УРОВЕНЬ(яч) — 1)

ЯЧЕЙКА[ячгр, "Название"] = СТАТЬЯ(ячгр)

ГРУППАВ(ячгр, яч)

КОНЕЦ_ЦИКЛА

Вы можете применять группировку многократно. При этом каждый раз это приведет к тому, что в группу будут добавлены новые подъячейки. Если столбец, помещенный в группу, сам является группой столбцов, то Вы получите двойную вложенность: Группа -> Подгруппа -> Столбцы и т.д. Запрещается только тот случай, когда группа содержит столбец, являющуюся группой для этой группы, т.е. группа содержит саму себя прямым или косвенным образом. При таком стечении обстоятельств программа выдает сообщение об ошибке.

Обычно группы создаются после выполнения основных расчетов и заполнения отчета в виде плоской таблицы. Итоги при помощи функции ИТОГОВ можно считать как до создания групп в отчете, так и после. Однако при расчете итогов после создания групп, программа к вызову ИТОГОВ по всему отчету добавит и расчет итогов по подгруппам. Поэтому общие итоги разумнее считать после задания групп. Промежуточные же итоги не рекомендуется вычислять после создания групп, так как ИТОГОВ в этом случае не будет работать "нарастающим итогом" в подгруппах.

Если указать восклицательный знак "!" после функции ГРУППАВ программа проигнорирует опцию "Скрывать пустые итоги", заданную в параметрах отчета, и сумма всех колонок будет показана, в том числе и содержащие только нули.

Замечание!

Вместо функции ГРУППАВ можно использовать пару: атрибут атГруппа для создания групп и функцию ГРУППАВ_ПЕРЕСЧЕТ для пересчета итогов.

См.также
ГРУППАВ_ПЕРЕСЧЕТ
ГРУППА


ГРУППАВ_ПЕРЕСЧЕТ

Функция ГРУППАВ_ПЕРЕСЧЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ГРУППАВ_ПЕРЕСЧЕТ пересчитывает итоги по группам для статических многоуровневых отчетов.

Синтаксис:

ГРУППАВ_ПЕРЕСЧЕТ (<шаблон столбцов> [, <шаблон строк>[,<первая подъячейка>] [,<последняя подъячейка>]])

Для всех групп удовлетворяющих <шаблону столбцов> функция просуммирует числовые значения элементов группы и занесет получившуюся сумму в заголовке группы.

В параметре <шаблон строк> можно дополнительно указать, какие столбцы будут суммироваться. По умолчанию суммируются все числовые столбцы.

В параметрах <первая подъячейка> и <последняя подъячейка> указывается диапазон суммируемых подъячеек. По умолчанию первый параметр равен 0, а второй 2.

Замечание!

Функция не создает групп, она просто пересчитывает итоги по уже существующим группам. Создать группы можно с помощью атрибута атГруппа.

Пример

ГРУППАВ_ПЕРЕСЧЕТ("*", "*")

См.также
ГРУППА_ПЕРЕСЧЕТ
ГРУППАВ


ГУИД (GUID)

Функция ГУИД (GUID)

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ГУИД (альтернативное название GUID) возвращает глобальный уникальный идентификатор.

Синтаксис:

ГУИД

Результат — строка.

Вероятность того, что функция выдаст повторяющийся уникальный идентификатор на этом компьютере или еще на каком-либо другом компьютере очень низка.

Пример:

гуид = GUID


ДАННЫЕ_ДЛЯ_ПИСЬМА

Функция ДАННЫЕ_ДЛЯ_ПИСЬМА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДАННЫЕ_ДЛЯ_ПИСЬМА задает для текущего бланка данные, необходимые для работы функции отправки письма. При этом пользователь сможет отредактировать адрес получателя, тему и текст письма перед отправкой в окне отправки бланка по почте.

Синтаксис:

ДАННЫЕ_ДЛЯ_ПИСЬМА ( <получатель>, <тема>, <текст письма> )

где

<получатель>
электронный адрес получателя письма

<тема>
тема письма

<текст письма>
текст письма запроса (могут использоваться символы // для разделения строчек)

Если нужно задать только альтернативную печать или только альтернативный просмотр, то для этого достаточно в качестве текста другого меню передать пустую строку. В этом случае в библиотеке нужна только одна из вышеперечисленных функций.

Пример:

ДАННЫЕ_ДЛЯ_ПИСЬМА ("user@yandex.ru", "Акт сверки", "Здравствуйте!////Отправляем Вам акт сверки////С уважением, Ваш контрагент")

См.также
ОТПРАВИТЬ_ПИСЬМО


ДАТА

Функция ДАТА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДАТА возвращает дату по заданным в числовой или строковой форме дню, месяцу и году.

Синтаксис:

ДАТА (<день>,<месяц>,<год>),

где

<день>, <месяц>,<год>
числовые или строковые выражения, определяющие соответствующие параметры даты.

Результат — выражение типа дата.

Пример:

день = 15

д1 = ДАТА (день, 3, 99) // переменной д1 присваивается дата, равная 15.03.99

месяц = "04"

д2 = ДАТА (день, месяц, 99) // переменной д2 присваивается дата, равная 15.04.99


ДАТА_ЗАКР

Свойство ДАТА_ЗАКР

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Свойство ДАТА_ЗАКР предназначена для обозначения даты закрытого периода. Операции до этой даты не могут изменяться (или даже невидимы) обычными пользователями. Вы можете разрешить просмотр таких операций только если включите опцию Показывать операции из закрытого периода в настройках доступа и редактирование только если включите опцию Разрешить изменять операции в закрытом периоде.

Если у базе данных несколько фирм, то значение свойства зависит от фирмы, под которой работает пользователь. При переключении на другую фирму значение свойства меняется.

Синтаксис:

ДАТА_ЗАКР = <новая дата>

где

<новая дата>
новая дата закрытого периода.

или

<переменная> = ДАТА_ЗАКР

где

<переменная>
переменная, которой присваивается текущее значение даты закрытия.

Замечание!

Свойство недоступно для записи, если не установлена опция Разрешить изменять дату закрытого периода в настройках доступа.

Пример:

ДАТА_ЗАКР = дата_закрытия

См. также
ДАТА_ЗАКР_ПОЛЬЗОВАТЕЛЯ


ДАТА_ЗАКР_ПОЛЬЗОВАТЕЛЯ

Свойство ДАТА_ЗАКР_ПОЛЬЗОВАТЕЛЯ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Свойство ДАТА_ЗАКР_ПОЛЬЗОВАТЕЛЯ предназначена для обозначения даты закрытого периода. Операции до этой даты не могут изменяться (или даже невидимы) обычными пользователями. Вы можете разрешить просмотр таких операций только если включите опцию Показывать операции из закрытого периода в настройках доступа и редактирование только если включите опцию Разрешить изменять операции в закрытом периоде.

У каждого пользователя значение свойства будет разным.

Синтаксис:

ДАТА_ЗАКР_ПОЛЬЗОВАТЕЛЯ = <новая дата>

где

<новая дата>
новая дата закрытого периода.

или

<переменная> = ДАТА_ЗАКР_ПОЛЬЗОВАТЕЛЯ

где

<переменная>
переменная, которой присваивается текущее значение даты закрытия.

Пример:

ДАТА_ЗАКР_ПОЛЬЗОВАТЕЛЯ = дата_закрытия

См. также
ДАТА_ЗАКР


ДАТА_КОН

Свойство ДАТА_КОН

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ДАТА_КОН возвращает указанную пользователем дату окончания периода, за который формируется отчет, и изменить ее.

Синтаксис:

ДАТА_КОН

Результат — выражение типа дата.

Пример:

д1 = ДАТА_КОН - 7 // переменной д1 присваивается дата, меньшая на

// 7 дней, чем дата окончания отчетного периода

об = ОБД ("50", д1, ДАТА_КОН) // переменной об присваивается значение, равное

// обороту дебета счета 50 за последние 7 дней

// отчетного периода

о1 = ОСД ("51", ДАТА_КОН) // переменной о1 присваивается значение, равное

// дебетовому остатку счета 51 на конец отчетного

// периода (эквивалентно о1=ОСД ("51") )

См. также
Работа с периодами в отчетах
ДАТА_НАЧ


ДАТА_НАЧ

Свойство ДАТА_НАЧ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ДАТА_НАЧ возвращает указанную пользователем дату начала периода, за который формируется отчет, и изменить ее.

Синтаксис:

ДАТА_НАЧ

Результат — выражение типа дата.

Пример:

д1 = ДАТА_НАЧ+7 // переменной д1 присваивается дата, большая на

// 7 дней, чем дата начала отчетного периода

об = ОБД ("50", ДАТА_НАЧ, д1) // переменной об присваивается значение, равное

// обороту дебета счета 50 за первые 7 дней отчетного

// периода

о1 = ОСД ("51", ДАТА_НАЧ) // переменной о1 присваивается значение, равное

// дебетовому остатку счета 51 на начало отчетного

// периода (эквивалентно о1 = ОСДН ("51") )

См. также
Работа с периодами в отчетах
ДАТА_КОН


ДАТА_ТЕК, ДАТА_ТЕК_СИС

Функции ДАТА_ТЕК, ДАТА_ТЕК_СИС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДАТА_ТЕК возвращает текущую дату, установленную в настройках программы (графа Текущая дата).

Функция ДАТА_ТЕК_СИС возвращает текущую дату, установленную в операционной системе компьютера.

Синтаксис:

ДАТА_ТЕК

Результат — выражение типа дата.

Пример:

д1 = ДАТА_ТЕК - 1 // переменной д1 присваивается вчерашняя дата

об = ОБД ("50", ДАТА_ТЕК, ДАТА_ТЕК+1) // переменной об присваивается

// значение, равное обороту дебета

// счета 50 за текущий день


ДАТАП

Функция ДАТАП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДАТАП возвращает дату прописью.

Синтаксис:

ДАТАП [( <дата> )],

где

<дата>
выражение типа дата.

Результат — строка. Если параметр <дата> не указан, функция возвращает текущую дату прописью.

Пример:

дата = 01.04.99

дп = ДАТАП (дата) // переменной дп присваивается строка "1 апреля 1999 г."


ДАТАП0

Функция ДАТАП0

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДАТАП0 возвращает дату прописью. В отличие от функции ДАТАП, числа с 1 по 9 выводятся с нулем впереди.

Синтаксис:

ДАТАП0 [(<дата>)],

где

<дата>
выражение типа дата.

Результат — строка. Если параметр <дата> не указан, функция возвращает текущую дату прописью.

Пример:

дата = 01.04.99

дп = ДАТАП0 (дата) // переменной дп присваивается строка "01 апреля 1999 г."


ДЕКОДИРОВАТЬ

Функция ДЕКОДИРОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДЕКОДИРОВАТЬ производит декодирование строки из заданной кодировки.

Синтаксис:

ДЕКОДИРОВАТЬ (<данные> ,<кодировка> ),

где

<данные>
данные для декодирования;

<кодировка>
кодировка данных.

Результат — строка. Кодировка может задаваться следующими константами:

WIN — стандартная кодировка операционной системы Windows для русских букв (кодовая страница 1251)

DOS — кодировка операционной системы MSDOS для русских букв (кодовая страница 866)

UTF8 — кодировка UTF-8

UTF16 — кодировка UTF-16LE

MIME — кодировка BASE64

Пример:

// Декодирование данных

стр1 = ДЕКОДИРОВАТЬ (данные, WIN)

// Преобразование строки в BASE64

стр1 = ДЕКОДИРОВАТЬ(КОДИРОВАТЬ("Здравствуйте", WIN), MIME)

См.также
КОДИРОВАТЬ


ДЕМО_ВЕРСИЯ

Функция ДЕМО_ВЕРСИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДЕМО_ВЕРСИЯ сообщает о том, что запущена демонстрационная версия программы.

Синтаксис:

ДЕМО_ВЕРСИЯ

Результат — логика.

Пример:

ЕСЛИ ДЕМО_ВЕРСИЯ ТО

СООБЩЕНИЕ("В демо-версии программы эта функция не поддерживается")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

См.также
Функция ВЕРСИЯ


ДЕЛ

Функция ДЕЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДЕЛ осуществляет операцию деления с проверкой на результат.

Синтаксис:

ДЕЛ (<делимое>, <делитель>, <при переполнении>),

где

<делимое>, <делитель>
аргументы операции.

<при переполнении>
функция вернет это значение в случае, если в результате совершения операции произойдет деление на ноль или переполнение результата.

Результат — число.

Пример:

д = ДЕЛ (3,2,-1) // переменной д присваивается значение 1.5

д = ДЕЛ (3,0,-1) // переменной д присваивается значение -1


ДЕНЬ

Функция ДЕНЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДЕНЬ выделяет день недели из даты.

Синтаксис:

ДЕНЬ [(<дата>)]

где

<дата>
выражение типа дата.

Результат — число от 1 до 7. Если параметр <дата> не указан, функция возвращает текущий день недели.

Пример:

нач_кв = 23.06.99

д = ДЕНЬ (нач_кв) // переменной д присваивается значение 3 (среда)


ДЕНЬП

Функция ДЕНЬП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДЕНЬП возвращает день недели прописью.

Синтаксис:

ДЕНЬП (<день недели>)

где

<день недели>
выражение числового типа, имеющее значения от 1 до 7.

Результат — строка.

Пример:

нач_кв = 23.06.99

д = ДЕНЬ (нач_кв) // переменной д присваивается значение 3 (среда)

день_пр = ДЕНЬП (д) // переменной день_пр присваивается строка "Среда"


ДИАЛОГ_НАСТРОЙКИ

Функция ДИАЛОГ_НАСТРОЙКИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДИАЛОГ_НАСТРОЙКИ модифицирует вид диалога с закладками: закладки начинают отображаться слева от диалога в виде дерева.

Синтаксис:

ДИАЛОГ_НАСТРОЙКИ(<вызов диалога> [,<ширина дерева>])

Результат — логическое выражение (ДА или НЕТ), которое вернул диалог.

С помощью параметра <ширина дерева> можно задать ширину дерева, которое появляется слева от диалога.

Для создания иерархии используется вертикальная палка («|»). Нужное кол-во этих символов перед текстом задают нужный отступ. Она же используется для отделения текста списка от текста заголовка, если они различаются, например «Список|Заголовок». Если при разделении текста списка и текста заголовка ничего не указывать, например «Список|», то заголовок выводится не будет.

В этом типе диалогов доступна секция ЗАГРУЗКА. Она срабатывает перед отображением выбранной закладки.

Пример:

ДИАЛОГ Настройка

ЗАКЛАДКА Строковый параметр

Строка *ы:20

ЗАКЛАДКА Числовой параметр

Строка &ц:10:2

ЗАКЛАДКА |Дополнение

Строка *ф*************

Число &у&&&&&&&&&&&

Дата ~дата

КОНЕЦ_ДИАЛОГА

ВЫЧИСЛИТЬ

// Расчетная часть бланка

ДИАЛОГ_НАСТРОЙКИ(Настройка)

КОНЕЦ

См. также
Функция МАСТЕР


ДИР_ВРЕМЕННАЯ

Функция ДИР_ВРЕМЕННАЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДИР_ВРЕМЕННАЯ возвращает полный к временному каталогу (директории).

Синтаксис:

ДИР_ВРЕМЕННАЯ

Результат — строка.

Пример:

путь = ДИР_ВРЕМЕННАЯ // путь = "C:\TEMP" (зависит от версии и настроек Windows)


ДИР_ДОКУМЕНТОВ

Функция ДИР_ДОКУМЕНТОВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДИР_ДОКУМЕНТОВ возвращает полный путь к каталогу (директории) выходных документов. Именно в нем по-умолчанию создаются текстовые, XML и DBF файлы, сохраняются документы при импорте данных.

Синтаксис:

ДИР_ДОКУМЕНТОВ

Результат — строка.

Пример:

путь = ДИР_ДОКУМЕНТОВ // путь = "C:\IP2\OUTPUT"


ДИР_ТЕК

Функция ДИР_ТЕК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДИР_ТЕК (синоним ТЕК_ДИР) возвращает полный к текущему каталогу (директории).

Синтаксис:

ДИР_ТЕК

Результат — строка.

Пример:

путь = ДИР_ТЕК // путь = "C:\IP2\OUTPUT"


ДИР_ФАЙЛА

Функция ДИР_ФАЙЛА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДИР_ФАЙЛА выделяет из абсолютного имени файла путь к нему.

Синтаксис:

ДИР_ФАЙЛА (<имя файла>),

где

<имя файла>
выражение строкового типа.

Результат — строка.

Пример:

стр = ДИР_ФАЙЛА("C:\IP\OUTPUT\torg12.txt") // стр = "C:\IP\OUTPUT"

См. также
Функция ИМЯ_ФАЙЛА


ДЛИНА

Функция ДЛИНА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДЛИНА возвращает длину строки (размер данных).

Синтаксис:

ДЛИНА (<строка>)

где

<строка>
строковое выражение или выражение типа данные.

Результат — число.

Пример:

длина_стр = ДЛИНА ("ABCD") // длина_стр = 4


ДОБАВИТЬ_АНАЛИТИКУ

Функция ДОБАВИТЬ_АНАЛИТИКУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Служебная функция ДОБАВИТЬ_АНАЛИТИКУ подключает указанную аналитику к счету. Функция должна использоваться только в монопольном режиме с целью настройки программы под особенности учета.

Синтаксис:

ДОБАВИТЬ_АНАЛИТИКУ (<код счета>,<признак>[,<в начало>])

где

<код счета>
строка, соответствующая коду счета (без аналитики).

<признак>
переменная типа ЖУРНАЛ, по которой определяется добавляемый признак и значение которого будет использовано во всех существующих проводках с этим счетом.

<в начало>
необязательный параметр, имеет смысл в случае, если по счету уже ведется аналитический учет по другой аналитике. Определяет, куда по порядку будет добавлен аналитический признак: в начало или в конец. По умолчанию аналитика добавляется в конец.

Функция не возвращает результат. Второй аргумент нужен не только для того, чтобы указать на то, какую аналитику надо подключить к счету, но и для простановки значения по умолчанию для всех существующих проводок. При передаче переменной типа ЖУРНАЛ, которая не связана с записью журнала (не указано значение ключевого поля), будет выведен запрос у пользователя на выбор значения по умолчанию из этого справочника, которое будет проставлено всем существующим проводкам.

Замечание!

Фактическое добавление аналитики происходит не в момент выполнения функции, а уже после завершения работы алгоритма.

Пример:

ДОБАВИТЬ_АНАЛИТИКУ("60", клиенты)

См. также
Функция УДАЛИТЬ_АНАЛИТИКУ
Функция ЕСТЬ_АНАЛИТИКА


ДОБАВИТЬ_В_ПРОТОКОЛ

Функция ДОБАВИТЬ_В_ПРОТОКОЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДОБАВИТЬ_В_ПРОТОКОЛ добавляет произвольную информацию в протокол действий.

Синтаксис:

ДОБАВИТЬ_В_ПРОТОКОЛ (<тип события> [, <идентификатор события>] [ [<идентификатор детали>:<информация>, ...] ])

где

<тип события>
строка, определяющая тип события; она будет показываться в колонке Журнал (где показывается идентификатор журнала);

<идентификатор события>
строка, определяющая идентификатор события; она будет показываться в колонке Идентификатор (в которой показывается идентификатор записи журнала);

<идентификатор детали>
идентификатор детализирующей информации;

<информация>
информация, соответствующая идентификатору детали;

Пример:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : Стартовать
// Добавим в протокол информацию о том, что пользователь зашёл в программу
ДОБАВИТЬ_В_ПРОТОКОЛ("зашел")

Стартовать = ДА

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ЖУРНАЛ(накладные) Завершить

// Добавим в протокол информацию о том, что пользователь вышел из программы
ДОБАВИТЬ_В_ПРОТОКОЛ("вышел")

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ВЕБСЕРВЕР ВебСервер

// Добавляем в протокол все обращения к серверу
ДОБАВИТЬ_В_ПРОТОКОЛ("вебсервер",

["запрос_айпи":запрос_айпи,

"запрос_хост":запрос_хост,

"запрос_документ":запрос_документ,

"запрос_команда":запрос_команда,

"запрос_версия":запрос_версия,

"запрос_пользователь":запрос_пользователь,

"запрос_пароль":запрос_пароль,

"запрос_заголовки":запрос_заголовки,

"запрос_параметры":запрос_параметры])

// Реализуем обработку запроса

...

КОНЕЦ_ФУНКЦИИ


ДОБАВИТЬ_СВЯЗЬ

Функция ДОБАВИТЬ_СВЯЗЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДОБАВИТЬ_СВЯЗЬ связывает документ и бухгалтерскую операцию. Не используйте эту функцию без особой необходимости! Используйте метод ПРОВЕСТИ объекта ЖУРНАЛ для проведения документа в бухгалтерии или указывайте документ в параметре <связь> функции ПРОВОДКА.

Синтаксис:

ДОБАВИТЬ_СВЯЗЬ (<документ> [:<вид журнала>], <дата>, <номер>)

где

<документ>
переменная типа ЖУРНАЛ, определяющая документ, который будет связан с бухгалтерской операцией.

<вид журнала>
строковая константа, задает вид журнала (если журнал имеет несколько видов); этот вид будет использован при открытии диалога редактирования связанной записи журнала.

<дата>
дата бухгалтерской операции

<номер>
уникальный номер бухгалтерской операции в дате (см.бухоперации)

Пример:

ДОБАВИТЬ_СВЯЗЬ(накладные, дата, номер_операции)


ДОБАВИТЬ_СВЯЗЬ_ГР

Функция ДОБАВИТЬ_СВЯЗЬ_ГР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДОБАВИТЬ_СВЯЗЬ_ГР является аналогом функции ДОБАВИТЬ_СВЯЗЬ но используется при групповой обработке данных.


ДОБАВИТЬ_СЧЕТ

Функция ДОБАВИТЬ_СЧЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДОБАВИТЬ_СЧЕТ добавляет новый счет (субсчет) в план счетов.

Синтаксис:

ДОБАВИТЬ_СЧЕТ ( <код счета> [,<название счета> [,<раздел баланса>] ] )

где

<код счета>
строка, определяющая код вводимого счета или субсчета (например, 10/БАЛКИ);

<название счета>
строка, определяющая название вводимого счета или субсчета (например, "Балки ж/б ГОСТ 76443-3456 по ОСТ 4567 ТУ 235");

<раздел баланса>
может принимать следующие значения:
"Акт" или "А" — активный счет;
"Пас" или "П" — пассивный счет;
"А/П" — активно-пассивный счет;
"З/Б" — забалансовый счет.

Результат — строка — код счета, он может отличасться от параметра <код счета>, т.к. пользователь мог изменить его в диалоге. Параметры <код счета>, <название счета> и <раздел баланса> можно задавать пустыми строками (""), а также допустимо задавать только один параметр — <код счета>. В этом случае параметры, создаваемого счета или субсчета будут запрошены программой во время формирования документа.

Если не указать код счета или название счета, будет выведен диалог, в котором пользователь сможет указать их. Если пользователь в этом диалоге нажмет <Отмена>, добавление счета не произойдет, а алгоритм остановит свою работу.

После создания счета можно задать исходный остаток для него с помощью функции ЗАП_ИСХ_ОСТ.

Пример:

// Занести в план счетов новый субсчет 10/БАЛКИ к счету 10

// и установить начальный остаток по этому субсчету равным 5 000 000.00

ДОБАВИТЬ_СЧЕТ ( "10/БАЛКИ", "Балки ж/б ГОСТ 76443-3456", "АКТ", 5000000.00)

// Запрoсить все параметры вводимого счета при формировании документа

ДОБАВИТЬ_СЧЕТ ("")

См. также
ЗАП_ИСХ_ОСТ
ИЗМЕНИТЬ_СЧЕТ


ДОКУМЕНТ_ЗАПИСАТЬ

Функция ДОКУМЕНТ_ЗАПИСАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДОКУМЕНТ_ЗАПИСАТЬ сохраняет текущий бланк в качестве документа в базе данных. Сохраненный документ может быть вызван на просмотр и редактирование позже. Применяется для бланков отчетных документов. Вызов сохраненного ранее документа возможен из списка отчетных форм.

Синтаксис:

ДОКУМЕНТ_ЗАПИСАТЬ ( <номер корректировки> [:<название параметра корректировки>],

[<код филиала>,] <дата документа> [,<доп.файл>] [,<доп.файл>] [,...] )

где

<номер корректировки>
число, указывающее идентифицирующий параметр, например номер корректировки;

<название параметра корректировки>
строка, определяющая название предыдущего параметра в случае, если он не является корректировкой. Она влияет на текст сообщения, который появляется при перезаписи уже существующего документа. Здесь может указываться "номер реестра", "пачка №", "справка №" и др.;

<код филиала>
строка, определяющая кол филиала для форм, которые формируются по филиалам. Параметр может не указываться. Если он будет указан, то в списке отчетных форм появится отдельная колонка Филиал;

<дата документа>
дата формирования документа. Дата показывается в списке отчетных форм;

<доп.файл>
строка, указывающая на дополнительный файл, который также сохраняется вместе с документом. Файлов может быть несколько. Можно указывать их в виде одной строки, разделяя точкой с запятой или указывать несколько параметров при вызове функции.

Замечание!

Каждый бланк документа за выбранный период (месяц и год) может иметь только один сохраненный документ. Если документ за этот период уже есть, программа предложит переписать сформированный ранее за этот период документ.

Если нужно сохранить несколько документов за выбранный период (месяц и год), то используется параметр <номер корректировки>.

Внимание!

Функция может вызываться только для бланков отчетных документов, вызванных из списка отчетных форм, т.к. привязывается к выбранному отчетному месяцу и году.

Пример:

ДОКУМЕНТ_ЗАПИСАТЬ (0, ДАТА_ТЕК)

См.также
Функция ОТЧ_МЕС
Функция ОТЧ_ГОД
Функция ДОКУМЕНТ_СЧИТАТЬ


ДОКУМЕНТ_СЧИТАТЬ

Функция ДОКУМЕНТ_СЧИТАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДОКУМЕНТ_СЧИТАТЬ считывает информацию о сохраненном ранее с помощью функции ДОКУМЕНТ_ЗАПИСАТЬ документе.

Синтаксис:

ДОКУМЕНТ_СЧИТАТЬ ( <имя файла>, <название документа>)

где

<имя файла>
имя файла документа;

<название документа>
строковая переменная, в которую помещается название сохраненного ранее документа;

Функция возвращает логическое значение, которое зависит от того, удалось ли найти указанный документ или нет.

Имя файла документа должно иметь вид:

шаблон = "DB:\HISTORY\" + СТР(ТЕК_ФИРМА) + "_" + СТР(год) + "_" + СТР(месяц) + "*\*.FRM")

где

<год>
год формирования документа;

<месяц>
месяц, за который формируется документ. Если документ формируется за квартал, полугодие, 9 месяцев или год, то месяц принимает значение 3, 6, 9 или 12;

Если нужно считать документы по какому-то конкретному бланку, то вместо *.FRM указывается имя файла бланка.

Пример:

ЕСЛИ НЕ ДОКУМЕНТ_СЧИТАТЬ (имя_файла, название) ТО
СООБЩЕНИЕ("Документ не найден")
КОНЕЦ_ЕСЛИ

См.также
Функция ОТЧ_МЕС
Функция ОТЧ_ГОД


ДОП_КОЛОНКИ

Функция ДОП_КОЛОНКИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДОП_КОЛОНКИ определяет связанную с ячейкой запись журнала. Это позволит пользователю при работе с отчетом выводить дополнительные колонки из этого журнала.

Синтаксис:

ДОП_КОЛОНКИ[!](<столбец>, <строка>, <запись> [:<вид журнала>])

где

<столбец> и <строка>
задают координаты ячейки, для которой задается атрибут

<запись>
переменная типа ЖУРНАЛ, которая будет связана с ячейкой

<вид журнала>
определяет список отображаемых полей и их порядок.

Если указанная ячейка не существуют, программа выдаст сообщение об ошибке и работа алгоритма будет остановлена. Если указать ! (восклицательный знак), то ошибка будет проигнорирована и функция просто ничего не будет делать.

Для корректной работы функции достаточно, чтобы у переменной <запись> было заполнено лишь ключевое поле.

Пример:

// Выводим отчет со списком клиентов, с возможностью выводить дополнительные колонки

ЦИКЛ ПО ЖУРНАЛУ клиенты кл

ЯЧЕЙКА["Название", кл.код] = кл.название

ДОП_КОЛОНКИ("Название", кл.код, кл)

КОНЕЦ_ЦИКЛА

См. также
Атрибут атДопКолонки


ДОП_КОЛОНКИ_ИСКЛЮЧЕНИЯ

Функция ДОП_КОЛОНКИ_ИСКЛЮЧЕНИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДОП_КОЛОНКИ_ИСКЛЮЧЕНИЯ задает параметры дополнительных колонок (заданных с помощью атрибута атДопКолонки или функции ДОП_КОЛОНКИ), запрещая включать некоторые из них.

Синтаксис:

ДОП_КОЛОНКИ_ИСКЛЮЧЕНИЯ[!](<журнал> [ <поле> [ :<включено>] ] )

<журнал>
переменная типа ЖУРНАЛ определяет журнал с дополнительными колонками;
или строковая переменная, определяет идентификатор журнала с дополнительными колонками;

<поле>
одно или несколько полей, перечисленных через запятую.

<включено>
поле будет отображаться включенным или выключенным.

Если журнал задается переменной типа ЖУРНАЛ, происходит проверка существования указанных полей у журнала. Если журнал не имеет указанного в функции поля, будет выдано сообщение об ошибке.

Если журнал задается строкой, никакой диагностики на существование перечисленных полей у журнала не делается.

Пример:

// Сделаем, чтобы в окне настроек дополнительных колонок поля «код» и «название» были заблокированы

ДОП_КОЛОНКИ_ИСКЛЮЧЕНИЯ(товары, код, название)

См. также
Атрибут атДопКолонки


ДОСТУП

Функция ДОСТУП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДОСТУП может использоваться в диалогах, типовых операциях и бланках внутри секции, начинающейся с ключевого слова ИЗМЕНЕНИЕ. С помощью нее можно изменить доступность полей ввода и элементов управления в процессе работы пользователя с диалогом.

Синтаксис (для одного поля):

ДОСТУП [!] (<графа> [, <доступ>])

где

<графа>
графа ввода;

<доступ>
новое значение доступности графы;

Для обычных полей ввода, параметр <графа> = имя переменной.

Для кнопок, параметр <графа> = ~<текст кнопки>

где

<текст кнопки>
строковая константа.

Для таблиц с выводом содержимого журнала или курсора <графа> = @<переменная>,

где

<переменная>
соответствующая переменная типа ЖУРНАЛ или КУРСОР.

Для таблиц с выводом содержимого массива <графа> = $<переменная>

где

<переменная>
соответствующий массив.

Для таблиц с выводом содержимого XML или DBF файла <графа> = ^<переменная>

где

<переменная>
соответствующая переменная типа БД .

Начальные значения доступности полей ввода определяются функцией ВВЕСТИ.

После имени функции может быть указан восклицательный знак — ДОСТУП!. Это отключит вывод сообщения об ошибке в случае, если графа отсутствует.

Существует вариант функции с указанием нескольких граф ввода в квадратных скобках через запятую. Он используется для задания доступа сразу ко всем перечисленным графам:

Синтаксис (для нескольких полей):

ДОСТУП [!] ( [ <графа1> [, <графа2> [, <графа3> ... ] ] ] ,<доступ> )

где

<графа1>, <графа2>, <графа3>, ...
графы, для которых вызывается данная функция, указываются в квадратных скобках через запятую;

<доступ>
новое значение доступности графы;

Пример:

// Установка доступа для различных граф ввода

ДИАЛОГ Тест

$вкл("Включить")

$логика("Поле логика") #~Сохранить("", "СохранитьФайл"):20

*строка*****************************

#$(сс,"Месяц|Сумма:12:2"):30:12 #@(бухоперации):30:12 #^(о,ДА,ДА,ДА):30:12

ИЗМЕНЕНИЕ

ДОСТУП([логика, строка], вкл) // Доступ к полям ввода "логика" и "строка"

ДОСТУП(~"Сохранить", вкл) // Доступ к кнопке "Сохранить"

ДОСТУП($сс, вкл) // Доступ к таблице "сс"

ДОСТУП(@бухоперации, вкл) // Доступ к таблице "бухоперации"

ДОСТУП(^о, вкл) // Доступ к таблице "о"

ВЫЧИСЛИТЬ

ЦИКЛ ДЛЯ (и=1,12)

сс!и = МЕСП(и) + "|" + СТР(ОБК("90", ДАТА(1, и, ГОД), ДАТА(1, и + 1, ГОД)))

КОНЕЦ_ЦИКЛА

о = БД_СОЗДАТЬ("TEMP")

о.ЗАП_ПОЛЕ("Число",1,8,2)

о.ЗАП_ПОЛЕ("Дата",ДАТА_ТЕК)

ВВЕСТИ([вкл])

КОНЕЦ_ДИАЛОГА

См.также
Ключевое слово ИЗМЕНЕНИЕ.
Ключевое слово ВВЕСТИ
Функция ВИДИМОСТЬ
Функция ФОКУС


ДРОБ

Функция ДРОБ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ДРОБ выделяет из числа дробную часть.

Синтаксис:

ДРОБ (<число>),

где

<число>
числовое выражение.

Результат — число.

Пример:

д = ДРОБ (3.1415926) // переменной д присваивается значение 0.1415926


ЕДИН

Функция ЕДИН

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕДИН возвращает единицу измерения количественно-суммовой аналитики.

Синтаксис:

ЕДИН (<код счета>)

где

<код счета>
строка, соответствующая коду счета с аналитикой.

Результат — строка.

Пример:

Пусть к счету 10 прикреплена аналитика материлы, по которой ведется количественно-суммовой учет, а объект аналитики Тара имеет единицу измерения — штуки (шт.).

Тогда:

ед_изм=ЕДИН ("10/Тара") // ед_изм="шт."


ЕДИН_ДОП

Функция ЕДИН_ДОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕДИН_ДОП возвращает дополнительную единицу измерения по коду счета с аналитикой.

Синтаксис:

ЕДИН_ДОП (<код счета>)

где

<код счета>
строка, соответствующая коду счета с аналитикой.

Результат — строка.

Пример:

Пусть к счету 52 прикреплена аналитика валюты, по которой ведется дополнительный учет, а объект аналитики ДОЛЛАРЫ имеет единицу измерения — "USD".

Тогда:

ед_изм=ЕДИН_ДОП ("52/ДОЛЛАРЫ") // ед_изм="USD"


ЕДИНСТВЕННО

Функция ЕДИНСТВЕННО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕДИНСТВЕННО проверяет, что существует и единственна запись, удовлетворяющая условию. Функция возвращает ДА, если это так и НЕТ в противном случае.

Синтаксис:

ЕДИНСТВЕННО ( <условие на поля журналов> [, <игнорировать фильтр>]),

Результат — логическое выражение.

Пример:

ЕСЛИ НЕ ЕДИНСТВЕННО (клиенты.код = "ОДУВАНЧИК") ТО

СООБЩЕНИЕ ( "Фирма " + клиенты.код + " в справочнике повторяется")

КОНЕЦ_ЕСЛИ

См.также
Функция ЕДИНСТВЕННО в условии ЦИКЛ ПО ЖУРНАЛУ.


ЕСТЬ_АНАЛИТИКА

Функция ЕСТЬ_АНАЛИТИКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_АНАЛИТИКА проверяет наличие аналитических признаков у конкретного счета.

Синтаксис:

ЕСТЬ_АНАЛИТИКА [!] (<код счета> [ ( <кроме признаков> ) ] [,<признак>])

где

<код счета>
строка, соответствующая коду счета, для которого проверяется наличие аналитик. При передаче кода счета с аналитикой проверяет наличие дополнительных, не указанных в коде, аналитик. Если какая-либо аналитика, необходимая для этого счета, не указана, функция возвращает ДА. В противном случае НЕТ.

<кроме признаков>
после кода счета в скобках может указываться один или несколько через запятую объектов типа ЖУРНАЛ или идентификаторов журнала. При их указании проверяется наличие других аналитических признаков у счета, кроме указанных. При передаче кода счета с аналитикой проверяет наличие дополнительных, не указанных в коде и в квадратных скобках после счета, аналитик.

<признак>
объект ЖУРНАЛ или идентификатор журнала. При его указании проверяется наличие аналитического признака данного типа, т.е. функция отвечает на вопрос "А ведется ли аналитический учет по данному аналитическому признаку на этом счете?".

Результат — логическое выражение (ДА или НЕТ).

Пример:

// Проверяем наличие аналитик "вообще"

ЕСЛИ ЕСТЬ_АНАЛИТИКА ("04") ТО

стр = "Есть аналитика"

ИНАЧЕ

стр = "Аналитики нет"

КОНЕЦ_ЕСЛИ

// Проверяем наличие аналитик заданного типа

ЕСЛИ НЕ ЕСТЬ_АНАЛИТИКА("41", товары) ТО

СООБЩЕНИЕ("Учет ТМЦ на 41-ом счете не ведется !")

СТОП

КОНЕЦ_ЕСЛИ

// Узнаем, если у 41-ого счета еще аналитики, кроме "товары"

ЕСЛИ ЕСТЬ_АНАЛИТИКА("41" [товары]) ТО

СООБЩЕНИЕ("У 41-ого счета есть еще какие-то аналитики !")

СТОП

КОНЕЦ_ЕСЛИ

См. также
Функция ЕСТЬ_СУБСЧ
Функция КОД_СЧЕТА_ТОЛЬКО
Функция АНАЛИТИКА_СЧИТАТЬ


ЕСТЬ_ДОСТУП

Функция ЕСТЬ_ДОСТУП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_ДОСТУП проверяет наличие доступа к объекту.

Синтаксис:

ЕСТЬ_ДОСТУП ( <объект> )

где

<объект>
объект, для которого проверяется доступ, строка или идентификатор.

Результат — логическое выражение (ДА или НЕТ). При передаче идентификатора он считается идентификатором журнала. За ним может следовать точка и имя поля. При передаче строки расширение определяет характер объекта — бланк, отчет или типовая операция. Если журнал, поле журнала, бланк, отчет или типовая операция вообще отсутствуют, функция вернет НЕТ.

В версии Стандарт при передаче идентификатора журнала функция проверяет, выключен ли журнал или нет.

Пример:

ЕСТЬ_ДОСТУП (накладные) // Есть ли доступ на просмотр журнала "накладные"

ЕСТЬ_ДОСТУП (накладные.дата) // Есть ли доступ на просмотр поля "дата" журнала "накладные"

ЕСТЬ_ДОСТУП ("PLATPOR.FRM") // Есть ли доступ к бланку "PLATPOR.FRM"

ЕСТЬ_ДОСТУП ("OBOROT.REP") // Есть ли доступ к отчету "OBOROT.REP"

ЕСТЬ_ДОСТУП ("Банк : % банка") // Есть ли доступ к типовой операции "Банк : % банка"

См. также
ЕСТЬ_ВОЗМОЖНОСТЬ


ЕСТЬ_ВОЗМОЖНОСТЬ

Функция ЕСТЬ_ВОЗМОЖНОСТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_ВОЗМОЖНОСТЬ проверяет доступна ли данная возможность пользователю.

Синтаксис:

ЕСТЬ_ВОЗМОЖНОСТЬ ( <название возможности> )

где

<название возможности>
строка, соответствующая названию возможности.

Результат — логическое выражение (ДА или НЕТ). Для Администратора функция всегда возвращает ДА.

Пример:

ЕСТЬ_ВОЗМОЖНОСТЬ ("Базовый сервис") // Назначена ли пользователю возможность "Базовый сервис"

См. также
ЕСТЬ_ДОСТУП


ЕСТЬ_ОБОРОТЫ

Функция ЕСТЬ_ОБОРОТЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_ОБОРОТЫ проверяет использование конкретного счета (наличие оборотов, остатков на начало и конец) в отчетном периоде.

Синтаксис:

ЕСТЬ_ОБОРОТЫ [!] ( [<код счета>] [(<условие>)] [,<код корр. счета>]

[(<условие корр>)] [,<дата1>, <дата2>] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<код корр. счета>
строка, соответствующая коду корреспондирующего счета.

<условие корр>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки корреспондирующего счета.

<дата 1>,<дата 2>
даты, определяющие границы периода, за который проверяется наличие оборотов.

Результат — логическое выражение (ДА или НЕТ). Наличие оборотов еще не означает что они больше 0, например, при сторнировании проводки суммарный оборот будет равен 0.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ЕСТЬ_ОБОРОТЫ!, которая в такой ситуации будет просто возвращать НЕТ.

Пример:

// Проверяем наличие оборотов в текущем отчетном периоде

ЕСЛИ ЕСТЬ_ОБОРОТЫ ("50") ТО

стр = "Были операции"

ИНАЧЕ

стр = "Движения нет"

КОНЕЦ_ЕСЛИ

См. также
Функции получения оборотов


ЕСТЬ_ОПЕР

Функция ЕСТЬ_ОПЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_ОПЕР позволяет определить, сформирована ли какая-либо операция с помощью ПРОВОДКА.

Синтаксис:

результат = ЕСТЬ_ОПЕР

Результат — логика.

Пример:

есть = ЕСТЬ_ОПЕР // есть = НЕТ

ПРОВОДКА ("90", "20", 100 )

есть = ЕСТЬ_ОПЕР // есть = ДА

ЗАП_ОПЕР

есть = ЕСТЬ_ОПЕР // есть = НЕТ

ПРОВОДКА ("90", "20", ОСК ("20") )

есть = ЕСТЬ_ОПЕР // есть = ДА, если есть остаток по кредиту 20-ого счета

См.также
Функция УПАК_ОПЕР


ЕСТЬ_ПОДУРОВНИ

Функция ЕСТЬ_ПОДУРОВНИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_ПОДУРОВНИ для кода счета с аналитикой, с аналитическими признаками, имеющими вид дерева, проверяет, являются ли записи объектов аналитики записями конечного уровня, или нет.

Синтаксис:

ЕСТЬ_ПОДУРОВНИ [!] (<код счета>)

где

<код счета>
кода счета с аналитикой.

Результат — логическое выражение (ДА или НЕТ). Если указанный счет не имеет аналитики, или имеет аналитики, но они не имеют вид дерева, функция возвращает НЕТ. Наличие субсчетов у счета не влияет на результат функции, для таких целей используется функция ЕСТЬ_СУБСЧ.

Пример:

т ЭТО товары

//...

ЕСЛИ ЕСТЬ_ПОДУРОВНИ ("04":т) ТО

стр = "Есть подуровни"

ИНАЧЕ

стр = "Нет подуровней"

КОНЕЦ_ЕСЛИ

См. также
ВЕРХ_УРОВЕНЬ
ЕСТЬ_СУБСЧ


ЕСТЬ_СУБСТАТЬИ

Функция ЕСТЬ_СУБСТАТЬИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_СУБСТАТЬИ позволяет узнать, имеет ли статья подстатьи.

Синтаксис:

ЕСТЬ_СУБСТАТЬИ (<код статьи>)

где

<код статьи>
строка, соответствующая коду статьи.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

ЕСЛИ ЕСТЬ_СУБСТАТЬИ ("ВД") ТО

стр = "Подстатьи есть"

ИНАЧЕ

стр = "Подстатей нет"

КОНЕЦ_ЕСЛИ


ЕСТЬ_СУБСЧ

Функция ЕСТЬ_СУБСЧ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_СУБСЧ проверяет наличие субсчетов у конкретного счета. При передаче кода счета с аналитикой проверяет наличие субсчетов у такого счета.

Синтаксис:

ЕСТЬ_СУБСЧ [!] (<код счета>)

где

<код счета>
строка, соответствующая коду счета.

Результат — логическое выражение (ДА или НЕТ).

Пример:

ЕСЛИ ЕСТЬ_СУБСЧ ("04") ТО

стр = "Субсчета есть"

ИНАЧЕ

стр = "Субсчетов нет"

КОНЕЦ_ЕСЛИ

См. также
ЕСТЬ_АНАЛИТИКА
ЕСТЬ_ПОДУРОВНИ


ЕСТЬ_ТЕРМИНАЛ

Функция ЕСТЬ_ТЕРМИНАЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_ТЕРМИНАЛ проверяет, открыто ли окно терминала (с помощью функции СТАРТ_ТЕРМИНАЛ)

Синтаксис:

ЕСТЬ_ТЕРМИНАЛ

Результат — логическое выражение (ДА или НЕТ).

Пример:

ЕСЛИ ЕСТЬ_ТЕРМИНАЛ ТО

СООБЩЕНИЕ("Закройте окно терминала для продолжения")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

См. также
Функция СТАРТ_ТЕРМИНАЛ
Функция ОБНОВИТЬ_ТЕРМИНАЛ
Метод ВНУТРИ_ТЕРМИНАЛА


ЕСТЬ_УВЕДОМЛЕНИЕ

Функция ЕСТЬ_УВЕДОМЛЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_УВЕДОМЛЕНИЕ проверяет по идентификатору уведомления, есть ли оно в Центре уведомлений Windows (начиная с Windows 10 и в усеченном виде в Windows 8).

Синтаксис:

ЕСТЬ_УВЕДОМЛЕНИЕ (<идентификатор> )

где

<идентификатор>
строка, задающая идентификатор уведомления.

Результат — логическое выражение (ДА или НЕТ). Уведомление пропадает, когда пользователь закрывает его.

Пример:

// Выдает простейшее текстовое уведомление. Работает на всех версиях Windows, поддерживающих уведомления

есть = ЕСТЬ_УВЕДОМЛЕНИЕ ("test")

См. также
Обработчик внешнего события
Функция УДАЛИТЬ_УВЕДОМЛЕНИЕ
Функция ПОСЛАТЬ_УВЕДОМЛЕНИЕ


ЕСТЬ_ФИЛЬТР

Функция ЕСТЬ_ФИЛЬТР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_ФИЛЬТР проверяет, включена или нет опция "Фильтр действует на отчеты".

Синтаксис:

ЕСТЬ_ФИЛЬТР [ ( <журнал> ) ]

где

<журнал>
необязательный параметр, идентификатор журнала аналитики.

Результат — логическое выражение (ДА или НЕТ). При передаче идентификатора журнала проверяет опцию "Действие на отчеты" в фильтре журнала аналитики. Если идентификатор не передается, проверяет опцию "Фильтр действует на отчеты" фильтра журнала бухгалтерских операций.

Пример:

ЕСЛИ ЕСТЬ_ФИЛЬТР ТО

СООБЩЕНИЕ("Предупреждение! На отфильтрованном журнале алгоритм может работать неправильно")

КОНЕЦ_ЕСЛИ


ЕСТЬ_ФИРМЫ

Функция ЕСТЬ_ФИРМЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЕСТЬ_ФИРМЫ проверяет, есть ли в базе данных другие фирмы, кроме текущей.

Синтаксис:

ЕСТЬ_ФИРМЫ

Результат — логическое выражение (ДА или НЕТ).

Пример:

ЕСЛИ ЕСТЬ_ФИРМЫ И НЕ ВКЛ_ФИРМЫ ТО

СООБЩЕНИЕ("Для правильной работы отчета необходимо отключить " +

"опцию ""Показывать операции всех фирм"" в списке фирм")

КОНЕЦ_ЕСЛИ

См. также
Свойство ВКЛ_ФИРМЫ
Функция ТЕК_ФИРМА
Функция ВСЕ_ФИРМЫ


ЗАВЕРШЕНИЕ_РАБОТЫ

Функция ЗАВЕРШЕНИЕ_РАБОТЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАВЕРШЕНИЕ_РАБОТЫ завершает работу программы.

Синтаксис:

ЗАВЕРШЕНИЕ_РАБОТЫ

Завершение работы может быть приостановлено пользователем, если в программе есть не сохраненные документы.

Пример:

ЗАВЕРШЕНИЕ_РАБОТЫ


ЗАГЛ

Функция ЗАГЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАГЛ преобразует все прописные буквы строки в заглавные.

Синтаксис:

ЗАГЛ (<строка>)

где

<строка>
выражение строкового типа.

Результат — строка.

Пример:

ЗАГЛ ("Иванов") // Результат: "ИВАНОВ"

См. также
Функция СТРОЧ


ЗАКЛАДКА

Свойство ЗАКЛАДКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ЗАКЛАДКА доступна в диалогах, имеющих закладки (создаются с помощью ключевого слова ЗАКЛАДКА). Свойство при чтении позволяет определить текущую закладку, а при записи перейти к нужной закладке.

Свойство доступно в секциях ИЗМЕНЕНИЕ, СЛЕДУЮЩАЯ, ПРЕДЫДУЩАЯ, ПРОВЕРКА, ЗАГРУЗКА.

Синтаксис:

ЗАКЛАДКА

Результат — число.

Так как секция СЛЕДУЮЩАЯ срабатывает как при переходе к следующей закладке, так и при нажатии "Готово", а секция ПРЕДЫДУЩАЯ срабатывает при переходе к предыдущей закладке, то есть некоторые нюансы в работе свойства ЗАКЛАДКА:

·Если в мастере N закладок, то внутри секции СЛЕДУЮЩАЯ свойство ЗАКЛАДКА может принимать значение от 2 до N+1. Число 2 означает, что пользователь перешел с первой на вторую закладку. Число N+1 означает, что пользователь нажал "Готово" в мастере. В последнем случае, если при исполнении секции номер закладки не изменить, диалог закроется. Чтобы диалог не закрылся, надо внутри секции номер закладки уменьшить на единицу до N.

·Если в мастере N закладок, то внутри секции ПРЕДЫДУЩАЯ свойство ЗАКЛАДКА может принимать значение от 1 до N-1. Число 1 означает, что пользователь перешел со второй на первую закладку. Число N-1 означает, что пользователь перешел с закладки N на закладку N-1.

Для удобного доступа к номерам закладок номер можно прописывать в описании закладки (после ключевого слова ЗАКЛАДКА) в угловых скобках.

Пример:

// Секция СЛЕДУЮЩАЯ в диалоге, запущенном с помощью МАСТЕР

СЛЕДУЮЩАЯ

ЕСЛИ ЗАКЛАДКА = 2 ТО

// Пользователь нажал "Далее >" и перешел ко 2-ому шагу,

// проверим корректность заполнения 1-ого шага диалога и если надо вернемся

ЕСЛИ название = "" ТО

СООБЩЕНИЕ("Введите название")

ЗАКЛАДКА = 1

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

// ......

См.также
Свойство ПОСЛЕДНЯЯ_ЗАКЛАДКА
Ключевое слово ЗАКЛАДКА


ЗАМ

Функция ЗАМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАМ заменяет в строке указанный фрагмент подстроки на другой.

Синтаксис:

ЗАМ (<строка>,<исходный фрагмент>,<новый фрагмент> [, <разделители слева> [, <разделители справа>]] [,<игнорировать регистр>] ),

где

<строка>
строка, для которой выполняется замена;

<исходный фрагмент>
подстрока, которая будет заменяться

<новый фрагмент>
подстрока, на которую будет замена

<игнорировать регистр>
игнорировать ли регистр символов при поиске исходного фрагмента. По умолчанию регистр не игнорируется.

При необходимости можно указать список символов, которые допускаются слева и справа от исходного фрагмента. Это указывается в параметрах <разделители слева> и <разделители справа>. Если параметр <разделители справа> не задан, он полагается равным параметру <разделители слева>.

Функция возвращает строку — результат выполнения замены (параметр <строка> не меняется).

Пример:

стр = ЗАМ("10/СКЛ1/2","/","-") // стро = "10-СКЛ1-2"

См. также
Функция УДАЛ_СИМВ


ЗАМ_RTF

Функция ЗАМ_RTF

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Специальная функция ЗАМ_RTF заменяет в строке, являющейся содержимым RTF-файла, указанный фрагмент подстроки на другой.

Синтаксис:

ЗАМ_RTF (<строка>,<исходный фрагмент>,<новый фрагмент> [,<игнорировать регистр>] ),

где

<строка>
строка, для которой выполняется замена;

<исходный фрагмент>
подстрока, которая будет заменяться

<новый фрагмент>
подстрока, на которую будет замена

<игнорировать регистр>
игнорировать ли регистр символов при поиске исходного фрагмента. По умолчанию регистр не игнорируется.

Функция возвращает строку — результат выполнения замены (параметр <строка> не меняется).

Пример:

ф = ФАЙЛ_ОТКРЫТЬ(файл)

стр = ""

ЦИКЛ ПОКА (НЕ ф.КОНЕЦ_ФАЙЛА)

стр += ?(стр = "", "", СИМВ(13)) + ф.СЧИТАТЬ

КОНЕЦ_ЦИКЛА

стр = ЗАМ_RTF(стр, "Иванов", "Петров")

ф.ЗАКРЫТЬ


ЗАП_ВЫБОР_АНАЛИТИКИ

Функция ЗАП_ВЫБОР_АНАЛИТИКИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Вызов функции ЗАП_ВЫБОР_АНАЛИТИКИ запрещает последующий вызов функции ВЫБОР_АНАЛИТИКИ и устанавливает значение, которое она должна будет вернуть.

Синтаксис:

ЗАП_ВЫБОР_АНАЛИТИТКИ (<переменная> )

где

<переменная>
переменная типа ЖУРНАЛ — объект, который позже вернет ВЫБОР_АНАЛИТИКИ.

Последующие вызовы функции ВЫБОР_АНАЛИТИКИ не будут выводить диалог выбора. Вместо этого они будут возвращать установленное здесь значение. Значение запоминается до конца работы алгоритма. Если алгоритм — отчет, то значение будет влиять и на вызываемые из этого отчета другие отчеты.

Пример:

ВЫБОР_ЗАПИСИ(клиент)

ЗАП_ВЫБОР_АНАЛИТИКИ(клиент)

См.также
ВЫБОР_АНАЛИТИКИ


ЗАП_ИСХ_ОСТ

Функция ЗАП_ИСХ_ОСТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАП_ИСХ_ОСТ записывает в базу данных исходный остаток по счету. Если исходный остаток существует, он будет заменен новым значением, а если новое значение равно 0 исходный остаток будет удален.

Синтаксис:

ЗАП_ИСХ_ОСТ (<код счета>,<сумма остатка>[,<сумма остатка ну>[,<количество>[,<доп.показатель>]]])

где

<код счета>
код счета последнего уровня с аналитиками, для которого заносится исходный остаток.

<сумма остатка>
число, определяющее начальный (исходный) остаток;

<сумма остатка ну>
число, определяющее начальный (исходный) остаток по аналитическому счету как единице налогового учета. По умолчанию остаток по налоговому учету равен остатку по бухгалтерскому учету;

<количество>
число, задающее начальное количество для счетов, по которым ведется количественно-суммовой учет. По умолчанию оно равно нулю;

<доп.показатель>
дополнительный показатель при использовании дополнительного учета;

Пример:

// Установить начальный остаток по счету 10/БАЛКИ равным 5 000 000.00

ЗАП_ИСХ_ОСТ ( "10/БАЛКИ", 5000000.00)

См.также
Функция ИСХ_ОСТ
Функция ИСХ_ОСТ_К
Функция ИСХ_ОСТ_НУ
Функция ИСХ_ОСТ_ДОП


ЗАП_ИСХ_ОСТ_ГР

Функция ЗАП_ИСХ_ОСТ_ГР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАП_ИСХ_ОСТ_ГР является аналогом функции ЗАП_ИСХ_ОСТ но используется при групповой обработке данных.


ЗАП_НОМЕР

Функция ЗАП_НОМЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАП_НОМЕР применяется в паре с функцией НОМЕР для того чтобы подтвердить новый номер документа.

Синтаксис:

ЗАП_НОМЕР (<тип документа> [:<серия документа>] [:<фирма>] [,<номер>] [<связь>] )

где

<тип документа>
строка длиной не более 5 (по умолчанию) символов, определяющая тип документа.

<серия документа>
необязательный параметр, число, определяющая серию номеров документов

<фирма>
необязательный параметр, указывающий номер фирмы при использовании консолидированного учета, по умолчанию — текущая фирма, при указании -1 используется сквозная нумерация на все фирмы.

<номер>
номер документа, полученный при помощи НОМЕР

<связь>
переменная типа ЖУРНАЛ, если надо связать номер с записью.

Указание типа документа, серии и фирмы (если они есть) должны быть точно такими же, как и при получении номера при помощи НОМЕР

Если указан параметр <связь>, то при удалении этой записи журнала указанный номер встанет в резерв (может быть заново выдан функцией НОМЕР).

Замечание1

Подтверждение номера произойдет только в том случае, если алгоритм завершится без ошибок и транзaкция будет подтверждена.

При использовании функции НОМЕР для автонумерации документов в журнале бухгалтерских операций, вызывать функцию ЗАП_НОМЕР необязательно. Номер автоматически подтвердится при выполнении следующих условий:

·Параметр <тип документа> совпадает с типом документа

·Параметр <серия документа> совпадает с годом бухгалтерской операции

Пример:

номер=НОМЕР ("пп":ГОД) // Переменной номер будет присвоено текущий номер платежного

// поручения (документа с кодом "пп") в этом году (серия ГОД)

ПРОВОДКА("50","51",сумма, "пп " + СТР(номер))

Функцию ЗАП_НОМЕР можно использовать для организации автонумерации в журналах аналитики: Для этого в обработчике перед диалогомиспользуется НОМЕР для инициализации полей диалога текущим номером документа, а, затем в обработчике перед записью номер документа ЗАП_НОМЕР.

См.пример.

См. также
Функция НОМЕР
Свойство ТЕК_НОМЕР


ЗАП_ОПЕР

Функция ЗАП_ОПЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАП_ОПЕР применяется для разделения бухгалтерских операций при их формировании с использованием функции ПРОВОДКА.

По умолчанию, последовательно вводимые проводки добавляются к одной бухгалтерской операции. Функцию ЗАП_ОПЕР можно использовать при необходимости закончить формирование текущей бухгалтерской операции, а следующие проводки отнести к следующей бухгалтерской операции. При выполнении этой функции появляется диалог добавления новой бухгалтерской операции и если ЗАП_ОПЕР используется как функция, то возвращаемое ей логическое значение говорит об успешности добавления операции.

Синтаксис:

ЗАП_ОПЕР[ ( [<комментарий>] [<запись>] ) ]

или

результат = ЗАП_ОПЕР[ ( [<комментарий>] [<запись>] ) ]

Необязательный параметр <комментарий> задает комментарий к добавляемым операциям. При использовании в бланках использование комментария приводит к появлению опции в контекстном меню, определяющей необходимость делать проводки.

Вне бланков параметр <комментарий> игнорируется.

Параметр <комментарий> должен быть строковой константой.

Через необязательный параметр <запись> в функцию передается объект ЖУРНАЛ бухоперации. Если операция была успешно добавлена, поля объекта примут значение вновь добавленной операции.

Пример 1:

ПРОВОДКА ("90", "20", ОСД ("20") ) // Эти проводки попадут

ПРОВОДКА ("90", "26", ОСД ("90") ) // в 1-ю бухгалтерскую операцию

ЗАП_ОПЕР

ПРОВОДКА ("80", "90", ОСД ("90") ) // Эти проводки попадут

ПРОВОДКА ("90", "80", ОСК ("90") ) // во 2-ю бухгалтерскую операцию

ЗАП_ОПЕР

Пример 2:

ПРОВОДКА("62","51",сумма,"пп " + документ, дата, содержание)

ЕСЛИ ЗАП_ОПЕР(бухоперации) ТО

СТАРТ_БЛАНК("B_PLAT_POR.FRM",бухоперации)

КОНЕЦ_ЕСЛИ

См.также
Функция ЗАП_ОПЕР!
Функция УПАК_ОПЕР


ЗАП_ОПЕР!

Функция ЗАП_ОПЕР!

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАП_ОПЕР! аналогична ЗАП_ОПЕР, но в этом случае диалог редактирования бухгалтерской операции не выводится, и операция добавляется без дополнительных запросов.

Синтаксис:

ЗАП_ОПЕР!

Пример:

ПРОВОДКА ("46", "20", ОСД ("20") ) // Эти проводки попадут

ПРОВОДКА ("46", "26", ОСД ("26") ) // в 1-ю бух. операцию

ЗАП_ОПЕР!

ПРОВОДКА ("80", "46", ОСД ("46") ) // Эти проводки попадут

ПРОВОДКА ("46", "80", ОСК ("46") ) // во 2-ю бух. операцию

ЗАП_ОПЕР!

См.также
Функция ЗАП_ОПЕР


ЗАПРОС

Функция ЗАПРОС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАПРОС выводит диалоговое окно с сообщением и указанными пользователем кнопками. При появлении диалогового окна, расчет бланка приостанавливается до нажатия пользователем одной из указанных кнопок.

Синтаксис:

ЗАПРОС (<сообщение>,<кнопки> [,<тип сообщения>]),

где

<сообщение>
выражение строкового или любого другого типа;

<кнопки>
строка, содержащая названия кнопок через точку с запятой;

Если параметр <сообщение> на является строкой, он будет преобразован к строке. Строка может быть отформатирована.

Параметр <тип сообщения> может быть добавлен для указания вида сообщения. Он может принимать одно из следующих значений: типВопрос, типИнформация, типПредупреждение и типОшибка. Если параметр не указан, выводится сообщение вида типВопрос.

Внутри кнопки текст может содержать специальные символы:

·Если текст начинается с символа #, то кнопка будет выделена по умолчанию, например "Да;#Нет"

·Если текст начинается с символов //, то кнопка будет выведена с новой строки "Да;//Нет"

Функция возвращает число — номер выбранной кнопки.

Пример:

ЕСЛИ ЗАПРОС ("За этот период уже есть данные. Как поступить ?", "Перезаписать;#Пропустить") = 3 ТО

СТОП

КОНЕЦ_ЕСЛИ


ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ

Функция ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ используется для работы с объектами автоматизации, поддерживающими внешние события. Например, это могут быть драйвера каких-либо устройств. Функция нужна в тех случаях, когда необходимо получить ответ от устройства в определенном месте программы.

Возможны два варианта работы функции: с диалогом и с задержкой.

В первом случае при вызове функции выводится диалог с кнопкой <Отмена>. Работа программы приостанавливается до того момента как пользователь нажмет кнопку <Отмена> или возникнет внешнее событие. При этом, если имеются обработчики внешнего события, то они в этот момент вызываться не будут.

Во втором случае работа программы приостанавливается и продолжится в случае, если возникнет внешнее событие или истечет заданное время.

Синтаксис:

ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ (<заголовок>, <источник>, <событие>, <данные> [ , <обработка клавиш> ] [ , <таймаут> ] )

где

<заголовок>
текст, который появится в диалогом окне.

<источник>, <событие>, <данные>
переменные строкового типа, в которые будут загружена информация о внешнем событии, если оно возникло.

<обработка клавиш>
необязательный параметр логического типа; если равен ДА, то включается обработка клавиш; по умолчанию НЕТ.

<таймаут>
необязательный параметр числового типа, задает задержку в тысячных долях секунды; если параметр не указывается или равен нулю, будет первый вариант работы функции (с диалогом); если задержка указана и не равна нулю, второй вариант (с задержкой).

Функция возвращает результат логического типа. В режиме диалога функция возвращает НЕТ, если диалог закрылся нажатием на кнопку <Отмена> или на клавишу <Esc>. Если диалог закрылся при срабатывании внешнего события, то возвращает ДА. При этом в переменные <источник>, <событие>, <данные> будет загружена информация о внешнем событии.

Если включена обработка клавиш (<обработка клавиш> = ДА), то диалог также будет закрываться нажатием на клавишу <Enter>. Функция в этом случае вернет ДА, а в параметре <данные> будет передана строка из символов, набранных пользователем (параметры <источник>, <событие> будут пустыми строками).

Замечание!

Пример, когда режим обработки клавиш полезен, это обработка событий сканера штрих-кодов. В этом режиме будет не важно, работает ли сканер в режиме PS/2 или в режиме эмуляции COM.

В режиме задержки функция возвращает НЕТ, если событие не возникнет до указанного в функции времени.

Пример:

сработало=ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ ("Считайте штрих-код акцизной марки товара", источник, событие, данные)

ЕСЛИ сработало ТО

ОТЛАДКА(источник, событие, данные)

КОНЕЦ_ЕСЛИ

См. также
Обработчик внешнего события
ПОСЛАТЬ_СОБЫТИЕ


ЗВУК

Функция ЗВУК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗВУК издает сигнал через колонки или динамик компьютера (соответствующий звуку "Критическая ошибка" в звуковой схеме Windows).

Синтаксис:

ЗВУК

Функция не возвращает результат.

Пример:

ЕСЛИ НЕ ОбработкаШтрихкода ТО

ЗВУК

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ


ЗНАК_ВАЛ

Функция ЗНАК_ВАЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗНАК_ВАЛ выдает кол-во знаков после запятой в валютных суммах.

Синтаксис:

ЗНАК_ВАЛ

Результат — число.

Функция ЗНАК_ВАЛ возвращает значение в зависимости от опции Десят.знаков в валюте в настройках форматов программы. В случае, если эта опция имеет значение "любое", ЗНАК_ВАЛ вернет значение 255, что для всех функций вывода и преобразования чисел означает, что число не округляется.

Пример:

ВЫВЕСТИ(1,1,сумма_вал,10,ЗНАК_ВАЛ)

См. также
Функция ЗНАК_СУМ, ЗНАК_ЦЕНА, ЗНАК_КОЛ


ЗНАК_КОЛ

Функция ЗНАК_КОЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗНАК_КОЛ выдает кол-во знаков после запятой в количестве.

Синтаксис:

ЗНАК_КОЛ

Результат — число.

Функция ЗНАК_КОЛ возвращает значение в зависимости от опции Десят.знаков в кол-ве в настройках форматов программы. В случае, если эта опция имеет значение "любое", ЗНАК_КОЛ вернет значение 255, что для всех функций вывода и преобразования чисел означает, что число не округляется.

Пример:

ВЫВЕСТИ(1,1,вес,10,ЗНАК_КОЛ)

См. также
Функция ЗНАК_СУМ, ЗНАК_ЦЕНА, ЗНАК_ВАЛ


ЗНАК_СУМ

Функция ЗНАК_СУМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗНАК_СУМ выдает кол-во знаков после запятой в сумме.

Синтаксис:

ЗНАК_СУМ

Результат — число.

Функция ЗНАК_СУМ может возвращать два значения 0 или 2, в зависимости от установленной опции Показывать копейки в настройках форматов программы.

Пример:

ВЫВЕСТИ(1,1,сумма,10,ЗНАК_СУМ)

См. также
Функция ЗНАК_ЦЕНА, ЗНАК_ВАЛ, ЗНАК_КОЛ


ЗНАК_ЦЕНА

Функция ЗНАК_ЦЕНА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗНАК_ЦЕНА выдает кол-во знаков после запятой в цене.

Синтаксис:

ЗНАК_ЦЕНА

Результат — число.

Функция ЗНАК_ЦЕНА возвращает значение в зависимости от опции Десят.знаков в цене в настройках форматов программы. В случае, если эта опция имеет значение "любое", ЗНАК_ЦЕНА вернет значение 255, что для всех функций вывода и преобразования чисел означает, что число не округляется.

Пример:

ВЫВЕСТИ(1,1,цена,10,ЗНАК_ЦЕНА)

См. также
Функция ЗНАК_СУМ, ЗНАК_ВАЛ, ЗНАК_КОЛ


ЗНАЧ

Функция ЗНАЧ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗНАЧ преобразует строку (или любой другой тип) в число (или любой другой тип).

Синтаксис:

ЗНАЧ (<выражение> [,<тип>] [,<по умолчанию>] ),

где

<выражение>
преобразовываемое выражение;

<тип>
тип, в который надо преобразовать строку (по умолчанию — число);

<по умочанию>
выражение того типа, в который происходит преобразование;

Результат — тип, в который происходит преобразование.

Функция ЗНАЧ преобразует <выражение> в число или любой другой указанный тип. Если это невозможно, а параметр <по умолчанию> отсутствует, возвращается 0 для числа, НЕТ_ДАТЫ для даты, ПУСТО для времени, НЕТ для логики. Если задан параметр <по умочанию>, то возвращается он.

Перед преобразованием в число функция отсекает пробелы и убирает разделители разрядов. Также, для преобразования в число возможно использование функции ЗНАЧ! (с восклицательным знаком). В таком случае функция преобразует строку в число до тех пор, пока строка состоит из цифр, пробелов и разделителей разрядов. Если с самого начала строка содержит буквы, возвращает 0, а если задан параметр <по умочанию>, то возвращается он.

Пример:

// Преобразование в число

ЗНАЧ ("34") // Результат: 34

ЗНАЧ ("1 000.25") // Результат: 1000.25

ЗНАЧ ("-10") // Результат: -10

ЗНАЧ ("127АВ") // Результат: 0

ЗНАЧ ("127АВ",1) // Результат: 1

ЗНАЧ!("127АВ",1) // Результат: 127

ЗНАЧ!("номер",1) // Результат: 1

// Другие преобразования

ЗНАЧ("01.01.2007",ДАТА) // Результат: 01.01.2007

ЗНАЧ("01:00",ВРЕМЯ) // Результат: 01:00:00

ЗНАЧ("ДА",ЛОГИКА) // Результат: ДА

ЗНАЧ(0,ЛОГИКА) // Результат: НЕТ

ЗНАЧ(1,ЛОГИКА) // Результат: ДА

ЗНАЧ(2,ЛОГИКА,ДА) // Результат: ДА

См. также
Функция ЗНАЧ_ТЕСТ


ЗНАЧ_СИС

Функция ЗНАЧ_СИС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗНАЧ_СИС преобразует целое число из заданной системы счисления в десятичную систему счисления.

Синтаксис:

ЗНАЧ_СИС (<выражение> ,<система> ),

где

<выражение>
целое число в указанной системе счисления (представленное строкой);

<система>
значение от 2 до 36, задающее систему счисления;

Результат — строка, содержащая число в десятичной системе счисления.

Для записи числа в заданной системе счисления используются цифры 0..9 и латинские буквы A..Z, всего максимум 36 символов. Так, для записи числа в двоичной системе счисления используются цифры 0 и 1. Для записи числа в 16-ричной системе счисления используются цифры 0..9 и буквы A, B, C, D, E и F.

Внимание!

Числа, как на входе функции, так и на выходе, представлены в виде строк.

Пример:

// Преобразование в десятичное число

ЗНАЧ_СИС ("34", 8) // Результат: "28"

ЗНАЧ_СИС ("FFFF",16) // Результат: "65535"

ЗНАЧ_СИС ("100000000",2) // Результат: "256"

ЗНАЧ_СИС ("ZZZZ",36) // Результат: "1679615"

См. также
Функция ЗНАЧ_ТЕСТ


ЗНАЧ_ТЕСТ

Функция ЗНАЧ_ТЕСТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЗНАЧ_ТЕСТ проверяет возможность преобразования строки в число или какой-либо другой тип с помощью функции ЗНАЧ.

Синтаксис:

ЗНАЧ_ТЕСТ (<строка> [,<тип>]),

где

<строка>
выражение строкового типа.

<тип>
тип, в который надо преобразовать строку (по умолчанию — число);

Результат — логическое выражение: ДА, если преобразование возможно, НЕТ, если преобразование невозможно.

Пример:

В данном примере производится преобразование переменной стр в число. Полученное число записывается в переменную число. С помощью функции ЗНАЧ_ТЕСТ осуществляется проверка строки, содержащейся в переменной стр. Если строку невозможно преобразовать в число, то на экран будет выведено сообщение, заданное параметром функции СООБЩЕНИЕ, а переменной число присвоится значение 0.

ЕСЛИ ЗНАЧ_ТЕСТ (стр) ТО // Проверка строки

число=ЗНАЧ (стр) // Преобразование строки в число

ИНАЧЕ // Вывод сообщения

СООБЩЕНИЕ ("Ошибка! Будет взято нулевое значение.")

число=0 // Переменная число равна нулю

КОНЕЦ_ЕСЛИ

См. также
Функция ЗНАЧ


ИЗ_ЖУРНАЛА

Функция ИЗ_ЖУРНАЛА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИЗ_ЖУРНАЛА считывает текущую запись из журнала, если на экране находится окно редактирования этого журнала. Если окно редактора не открыто, или курсор не стоит ни на одной записи журнала, то функция ничего не делает.

Синтаксис:

ИЗ_ЖУРНАЛА(<переменная>[,<переменная>] [,...] [:<исключая_курсоры>])

Тип результата — число.

Если функция имеет один аргумент, она вернет 1, если запись удачно считана, в противном случае 0.

Если функция имеет два и более аргументов, она считает записи всех журналов, которые открыты на экране. При этом она вернет номер того журнала в списке аргументов, который находится над всеми остальными в списке окон. А если ни один журнал не открыт, вернет 0.

Параметр <исключая_курсоры> логического типа влияет на то, будет ли учитывать функция курсоры или нет. Если <исключая_курсоры> = НЕТ (по умолчанию), то окно с курсором, построенным на основе журнала, также будет считаться окном журнала. Если <исключая_курсоры> = ДА, то курсоры пропускаются.

Функция ИЗ_ЖУРНАЛА может использоваться также для

·Доступа к редактируемой записи диалога (как к чтению, так и к записи) в процессе работы с диалогом

·Для передачи параметра типа ЖУРНАЛ в алгоритмы

Рассмотрим эти варианты использования по-подробнее.

Доступ к редактируемой записи диалога

Если типовая операция или бланк (без вводных граф, см.примечания ниже), которые вызываются из контекстного меню в диалоге редактирования записи журнала по кнопке, вызовут функцию ИЗ_ЖУРНАЛА для редактируемой записи, они получат с помощью неё доступ к содержимому диалога. Они смогут изменять как саму «шапку» диалога, так и его детализацию (добавлять, удалять или изменять записи детализации). Изменения в самой записи, отразятся в диалоге редактирования после вызова метода ЗАПИСАТЬ, работа которого в этом случае изменяется: при вызове этого метода вместо фактической записи изменений в базу данных производится изменение содержимого диалога.

Внимание!

Бланки, вызываемые из контекстного меню в диалоге редактирования записи журнала по кнопке не должны иметь вводных граф, либо не должны считывать запись при помощи ИЗ_ЖУРНАЛА. В противном случае при расчете бланка будет считываться не измененная в диалоге запись, а существующая в базе данных запись журнала.

Передача в качестве параметра

Функции СТАРТ_ОПЕРАЦИЯ, СТАРТ_БЛАНК позволяют передавать в вызываемую типовую операцию и бланк переменные типа ЖУРНАЛ. Чтобы получить доступ к ним используется функция ИЗ_ЖУРНАЛА. Такой же механизм действует и в функции, вызываемые внутри обработки выражения с помощью функции ВЫРАЖЕНИЕ.

Пример:

жур ЭТО накладные

ЕСЛИ ИЗ_ЖУРНАЛА(жур) = 0 ТО

// Если не удалось считать запись из журнала, то считываем последнюю

жур.ПОСЛЕДНЯЯ

КОНЕЦ_ЕСЛИ

См. также
ЦИКЛ ИЗ ЖУРНАЛА
Функция СТАРТ_БЛАНК
Функция СТАРТ_ОПЕРАЦИЯ


ИЗМЕНЕНА

Функция ИЗМЕНЕНА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИЗМЕНЕНА может использоваться в диалогах и типовых операциях внутри секции, начинающейся с ключевого слова ИЗМЕНЕНИЕ. С помощью него можно определить, какая какая графа ввода изменилась. Также функция доступна внутри обработчика при изменении полей, где с помощью нее можно узнать, какое поле изменилось.

Синтаксис:

ИЗМЕНЕНА [!] (<графа>)

где

<графа>
графа ввода (имя переменной).

Результат — логика.

После имени функции может быть указан восклицательный знак — ИЗМЕНЕНА!. Это отключит вывод сообщения об ошибке в случае, если графа отсутствует.

Пример:

// Установка доступа для различных граф ввода

ЕСЛИ ИЗМЕНЕНА(цена) ИЛИ ИЗМЕНЕНА(кол) ТО

сумма = цена * кол

ИНАЧЕ // Изменилась сумма

цена = сумма / кол

КОНЕЦ_ЕСЛИ

См.также
Ключевое слово ИЗМЕНЕНИЕ.


ИЗМЕНИТЬ_СЧЕТ

Функция ИЗМЕНИТЬ_СЧЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИЗМЕНИТЬ_СЧЕТ позволяет во время выполнения расчета изменять счета в плане счетов.

Синтаксис:

ИЗМЕНИТЬ_СЧЕТ ( <код счета>, <новый код счета> [,<новое название счета> [,<новый раздел баланса>] ] )

где

<код счета>
строка, определяющая код изменяемого счета или субсчета (например, 10/БАЛКИ);

<новый код счета>
строка, определяющая новый код счета;

<новое название счета>
строка, определяющая новое название счета или субсчета (например, "Балки ж/б ГОСТ 76443-3456 по ОСТ 4567 ТУ 235");

<новый раздел баланса>
строка, определяющая новый раздел баланса счета, может принимать следующие значения:
"Акт" — активный счет (можно сократить до "А");
"Пас" — пассивный счет (можно сократить до "П");
"А/П" — активно-пассивный счет;
"З/Б" — забалансовый счет.

Если параметры <новое название счета> или <новый раздел баланса> не указаны, то они меняться не будут. Функция выдает запрос у пользователя на изменение счета. Если запрос выдавать не надо, используется функция ИЗМЕНИТЬ_СЧЕТ! (с восклицательным знаком).

Функция возвращает логическое значение, означающее разрешил ли пользователь изменить счет или нет (в варианте с запросом).

Замечание!

Переименование кода субсчета какого-либо счета возможно только на субсчет того же счета.

Пример:

// Изменить счет 10/БАЛКИ на счет 10/76443-3456

ИЗМЕНИТЬ_СЧЕТ ( "10/БАЛКИ", "10/76443-3456")

См. также
ЗАП_ИСХ_ОСТ
ДОБАВИТЬ_СЧЕТ


ИКОНКА

Свойство ИКОНКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ИКОНКА позволяет обратиться и изменить иконку окна документа, отчета и таблицы журнала.

Синтаксис:

ИКОНКА = <новая иконка>

где

<новая иконка>
строка, задающая новую иконку; при присвоении пустой строки будет использована иконка по умолчанию.

или

<переменная> = ИКОНКА

где

<переменная>
переменная, которой присваивается значение ранее заданной иконки; если иконка не задавалась, возвращает пустую строку.

Замечание!

Просмотреть и отредактировать список доступных иконок можно при редактировании меню.

К свойству можно обращаться из расчетной части бланка документа, отчета или обработчика вид журнала.

Пример:

ИКОНКА = "FORM"


ИМПОРТ_ОПЕР

Функция ИМПОРТ_ОПЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Служебная функция ИМПОРТ_ОПЕР загружает данные журнала бухгалтерских операций, плана счетов, статей налогового учета и корректных проводок из файла внутреннего формата.

Синтаксис:

ИМПОРТ_ОПЕР ( <файл> [, <не загружать операции>] [, <изменять структуру аналитик>] ),

где

<файл>
имя файла для загрузки,

<не загружать операции>
бухгалтерские операции загружаться не будут. По умолчанию НЕТ.

<изменять структуру аналитик>
при загрузке плана счетов структура аналитик в текущей базе данных будет изменена, чтобы соответствовать структуре аналитик в загружаемом плане счетов. По умолчанию ДА. Если опцию не включать, при загрузке будут появляться дополнительные запросы выбора аналитики. Например, если в загружаемых проводках нет аналитики по договорам, а в текущей базе она есть, появится запрос выбора договора в проводке.

Результат — логическое выражение. При успешном завершении возвращает ДА.

Внимание!

В процессе загрузки функция подтверждает транзакцию (аналогично вызову ПОДТВЕРДИТЬ), в которой происходит добавление записей.

Пример:

// Загрузка данных из файла

успех = ИМПОРТ_ОПЕР("c:\temp\ip.dat")

См.также
Функция ЭКСПОРТ_ОПЕР


ИМЯ_ФАЙЛА

Функция ИМЯ_ФАЙЛА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИМЯ_ФАЙЛА выделяет из пути к файлу его имя (вместе с расширением).

Синтаксис:

ИМЯ_ФАЙЛА (<полный путь>),

где

<полный путь>
выражение строкового типа.

Результат — строка.

Пример:

стр = ИМЯ_ФАЙЛА("C:\IP\OUTPUT\torg12.txt") // стр = "torg12.txt"

См. также
Функция ДИР_ФАЙЛА


ИНТЕРНЕТ_ЗАПРОС

Функция ИНТЕРНЕТ_ЗАПРОС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИНТЕРНЕТ_ЗАПРОС выполняет POST и другие виды HTTP-запросов и возвращает результат в виде файла.

Синтаксис:

ИНТЕРНЕТ_ЗАПРОС ( [ <метод> : ] <источник> [ ( <заголовки> ) ] [ :<параметры>], <приемник>
[, <текст ошибки>] [, <заголовки ответа>]),

где

<источник>
строка, имя источника

<заголовки>
строка, заголовки, используемые при подключении к источнику

<параметры>
тип — строка или данные (см.ниже), передаваемые данные, параметры

<приемник>
строка, имя файла, куда помещается результат выполнения запроса.

<текст ошибки>
переменная, куда помещается текст ошибки в случае неудачи

<заголовки ответа>
переменная, куда помещается заголовки ответа

Результат — логическое выражение. При успешной обработке возвращает ДА. Функция использует настройки соединения из реестра. Изменить эти настройки можно в панели управления Windows.

Переменная <параметры> может быть строкой, тогда параметры передаются в кодировке UTF8, либо типом данные.

Если нужно вызвать метод, отличный от POST, указывается параметр <метод>. Это строка, например, "POST", "DELETE" и т.д. Если этот параметр не указан — будет POST запрос.

Пример:

{ Пример запрашивает логин и пароль и подключается к серверу для получения данных }

ОПЕРАЦИЯ ПолучениеОбновлений

Логин : *логин:30

Пароль : *пароль:10

ВЫЧИСЛИТЬ

ВВЕСТИ

{ Подключимся к серверу обновлений }

ИНТЕРНЕТ_ЗАПРОС ("http://www.real-soft.ru/cgi-bin/usr_in.pl"

{ Укажем доп.параметры, например Referer - откуда идет переход на страницу }

("Referer: http://www.real-soft.ru/cgi-bin/h.pl?usrlogin"),

{ Передадим наш логин и пароль }

"ulog=" + логин + "&" +

"pswd=" + пароль + "&" +

{ Указываем другие дополнительные параметры }

"loc=http://www.real-soft.ru/cgi-bin/h.pl?usrlogin&act=in",

{ Результат сохраняем в файле out.html }

"out.html")

ВЫПОЛНИТЬ("out.html")

КОНЕЦ

См.также
Функции для работы с Интернет
Функция ИНТЕРНЕТ_СЧИТАТЬ
Функция ФАЙЛ_КОПИРОВАТЬ


ИНТЕРНЕТ_ПРОКСИ

Функция ИНТЕРНЕТ_ПРОКСИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИНТЕРНЕТ_ПРОКСИ задает параметры прокси-сервера.

Синтаксис:

ИНТЕРНЕТ_ПРОКСИ ( <сервер>, <логин>, <пароль>),

где

<сервер>
адрес сервера (включая номер порта через двоеточие);

<логин>
логин или пустая строка, если авторизация не нужна;

<пароль>
пароль для авторизации

После выполнения функции все дальнейшие вызовы функций для работы с Интернет будут идти через заданный прокси-сервер. Отключить использования прокси-сервера можно вызвав повторно функцию ИНТЕРНЕТ_ПРОКСИ с передачей пустых строк.

Функция не возвращает результата.

Пример:

{ Задаем прокси-сервер }
ИНТЕРНЕТ_ПРОКСИ("10.10.10.10:80", "", "")

{ ... }

{ Вызываем необходимые функции }

{ ... }
{ Отключаем прокси-сервер }
ИНТЕРНЕТ_ПРОКСИ("", "", "")

См.также
Функции для работы с Интернет


ИНТЕРНЕТ_СЧИТАТЬ

Функция ИНТЕРНЕТ_СЧИТАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИНТЕРНЕТ_СЧИТАТЬ выполняет GET HTTP-запрос и возвращает результат в виде строки.

Синтаксис:

ИНТЕРНЕТ_СЧИТАТЬ ( [ <метод> : ] <источник> [ ( <заголовки> ) ] [:<параметры>], <приемник>
[, <текст ошибки>] [, <заголовки ответа>] ),

где

<источник>
строка, имя источника

<заголовки>
строка, заголовки, используемые при подключении к источнику

<параметры>
тип — строка или данные (см.ниже), параметры запроса

<приемник>
переменная типа строка или данные (см.ниже), куда помещается результат выполнения запроса.

<текст ошибки>
переменная, куда помещается текст ошибки в случае неудачи

<заголовки ответа>
переменная, куда помещается заголовки ответа

Результат — логическое выражение. При успешном чтении возвращает ДА. Функция использует настройки соединения из реестра. Изменить эти настройки можно в панели управления Windows.

Параметр <параметры> может быть строкой, тогда параметры передаются в кодировке UTF8, либо типом данные. Тип возвращаемого результата в <приемник> может быть строкой, тогда результат перекодируется из кодировки UTF8, либо типом данные. По умолчанию строка (т.е. если переменная не объявлена ранее, то вновь созданная переменная с результатом запроса будет строковой).

Если нужно вызвать метод, отличный от GET, указывается параметр <метод>. Это строка, например, "POST", "DELETE" и т.д. Если этот параметр не указан — будет GET запрос.

Замечание!

Вместо функции ИНТЕРНЕТ_СЧИТАТЬ можно использовать ФАЙЛ_КОПИРОВАТЬ, которая считывает данные и помещает их в файл.

Пример:

{ Подключимся к серверу обновлений }

ИНТЕРНЕТ_СЧИТАТЬ ("http://egrul.nalog.ru/#"

{ Параметры запроса }

"r=new_captcha",

{ Результат сохраняем в строке }

результат)

См.также
Функции для работы с Интернет
Функция ИНТЕРНЕТ_ЗАПРОС
Функция ФАЙЛ_КОПИРОВАТЬ


ИНТЕРФЕЙС_ПОЛЬЗОВАТЕЛЯ

Функция ИНТЕРФЕЙС_ПОЛЬЗОВАТЕЛЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИНТЕРФЕЙС_ПОЛЬЗОВАТЕЛЯ возвращает название интерфейса пользователя, работающего с программой. Тип результата — строка.

Синтаксис:

ИНТЕРФЕЙС_ПОЛЬЗОВАТЕЛЯ

Результат — строка.

Пример:

ЕСЛИ ИНТЕРФЕЙС_ПОЛЬЗОВАТЕЛЯ = "Бухгалтерия" ТО

// ...

КОНЕЦ_ЕСЛИ

См. также
Функция ПОЛЬЗОВАТЕЛЬ


ИНФОРМАЦИЯ

Функция ИНФОРМАЦИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИНФОРМАЦИЯ выводит информацию в окно сообщений.

Синтаксис:

ИНФОРМАЦИЯ ( <сообщение> [,<тип сообщения>] )

где

<сообщение>
выражение строкового или любого другого типа;

Если параметр <сообщение> на является строкой, он будет преобразован к строке.

Параметр <тип сообщения> может быть добавлен для указания вида сообщения. Он может принимать одно из следующих значений: типИнформация, типПредупреждение и типОшибка. Если параметр не указан, выводится сообщение вида типПредупреждение.

Пример:

ИНФОРМАЦИЯ("Информационное сообщение")

См.также
Функция СООБЩЕНИЕ


ИСХ_ОСТ

Функция ИСХ_ОСТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИСХ_ОСТ возвращает исходный остаток по счету в суммовом выражении.

Синтаксис:

ИСХ_ОСТ (<код счета>)

где

<код счета>
код счета последнего уровня с аналитиками, для которого возвращается исходный остаток.

Пример:

остаток = ИСХ_ОСТ ( "10/БАЛКИ") // Результат: 50000.00

См.также
Функция ИСХ_ОСТ_К
Функция ИСХ_ОСТ_НУ
Функция ИСХ_ОСТ_ДОП
Функция ЗАП_ИСХ_ОСТ


ИСХ_ОСТ_К

Функция ИСХ_ОСТ_К

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИСХ_ОСТ_К возвращает исходный остаток в количественном выражении по счету.

Синтаксис:

ИСХ_ОСТ_К (<код счета>)

где

<код счета>
код счета последнего уровня с аналитиками, для которого возвращается исходный остаток.

Пример:

Остаток = ИСХ_ОСТ_К ("10/БАЛКИ") // Результат: 20

См.также
Функция ИСХ_ОСТ
Функция ИСХ_ОСТ_НУ
Функция ИСХ_ОСТ_ДОП
Функция ЗАП_ИСХ_ОСТ


ИСХ_ОСТ_ДОП

Функция ИСХ_ОСТ_ДОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИСХ_ОСТ_ДОП возвращает исходный остаток в дополнительных единицах по счету.

Синтаксис:

ИСХ_ОСТ_ДОП (<код счета>)

где

<код счета>
код счета последнего уровня с аналитиками, для которого возвращается исходный остаток в дополнительных единицах.

Пример:

ОстатокВалюты = ИСХ_ОСТ_ДОП ("52/USD") // Результат: 5$

См.также
Функция ИСХ_ОСТ
Функция ИСХ_ОСТ_НУ
Функция ИСХ_ОСТ_К
Функция ЗАП_ИСХ_ОСТ


ИСХ_ОСТ_НУ

Функция ИСХ_ОСТ_НУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ИСХ_ОСТ_НУ возвращает исходный остаток по аналитическому счету как единице налогового учета.

Синтаксис:

ИСХ_ОСТ_НУ (<код счета>)

где

<код счета>
код счета последнего уровня с аналитиками, для которого возвращается исходный остаток.

Пример:

Остаток = ИСХ_ОСТ ("02/СТОЛ") // Результат: 300

Остаток_ну = ИСХ_ОСТ_НУ ("02/СТОЛ") // Результат: 150

См.также
Функция ИСХ_ОСТ
Функция ИСХ_ОСТ_К
Функция ИСХ_ОСТ_ДОП
Функция ЗАП_ИСХ_ОСТ


ИТОГО

Функции ИТОГО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

C помощью функции ИТОГО можно посчитать итог по строкам и добавить строку с итогом в конец отчета.

Синтаксис:

ИТОГО[!][([<номер подъячейки>[,<номер подъячейки>],]

[<текст>[,<шаблон столбцов>[,<шаблон строк>[,<секция>]]]])]

Здесь параметр <текст> указывает заголовок строки, которая добавится к отчету. По умолчанию <текст> = "Итого". Перед текстом можно указать через запятую перечень подъячеек, для которых будут подсчитываться итоги. Если номера не указывать, то итоги будут считаться для всех подъячеек. Программа подсчитает итоги и добавит итоговую строку в конец отчета.

Примеры

ИТОГО

ИТОГО(1,2)

ИТОГО("Итого за день")

Если надо считать итоги не для всех колонок, то в параметре <шаблон столбцов> указывается шаблон, по которому будут отбираться колонки.

Внимание!

При повторном вызове функции ИТОГО будут суммироваться только те ячейки, которые не суммировались ранее. Если ячейка уже суммировалась, и после ее значение было изменено, то итоги учтут это изменение. Так, например, если попытаться вызвать ИТОГО дважды, то второй вызов просто ничего не будет делать, т.к. все итоги уже подсчитаны и выведены. Это используется для вывода промежуточных итогов.

Примеры

// Заполняем ячейки отчета

ИТОГО // Выводит итог по всем заполненным ячейкам

ИТОГО // Ничего не сделает, т.к. все итоги уже подсчитаны

Второй шаблон, участвующий в подсчете итогов задает те строчки которые будут суммироваться. При указании этого шаблона итоги считаются по указанным ячейкам и никак не влияют друг на друга. Если функция ИТОГО имеет второй фильтр, то будем ее называть ИТОГО с шаблоном.

Внимание!

При указании второго дополнительного фильтра функция итогов работает по-другому: она всегда суммирует указанные в фильтре ячейки и не зависит от того, суммировались ли указанные ячейки или нет.

Фактически ИТОГО с шаблоном и ИТОГО без него — совершенно разные функции. Хотя они и называются одинаково, но работают совершенно по-разному. Первая требует больше ручной работы, связанной с указанием суммируемых строк (столбцов), тогда как ИТОГО без шаблона следит за этим самостоятельно. Функция ИТОГО с шаблоном медленная, т.к. анализирует переданные условия шаблона и дополнительно пробегает все указанные ячейки. Функция ИТОГО без шаблона выводит итоги мгновенно по сальдо колонки. С другой стороны, ИТОГО с шаблоном более универсальная функция и может применяться там, где итоги обычным способом подсчитать не удается.

Пример

ИТОГО("Итого","*",2) // Указываем номер секции

Замечание!

В использовании ИТОГО без шаблона в многоуровневых отчетах есть особенности. При подсчете общего итога, функция не учитывает ячейки, входящие внутрь какой-либо группы. Если функция ИТОГО вызывается после функции ГРУППА, то она добавляет как общий итог к отчету, так и итоги ко всем существующим подгруппам. Если этого не требуется, вызывайте ИТОГО перед созданием уровней.

Функция ИТОГО возвращают результат, соответствующий координате строки, в который были добавлены итоги. Его можно использовать для модификации полученных этой функцией значений, добавления дополнительных ячеек в итоги или изменения атрибутов строки или ячеек итогов.

Однако, что будет, если включена опция Скрывать пустые итоги и итогам нечего суммировать? Так как строчка не добавляется в отчет, то функция возвращает значение ПУСТО. А запись и, вообще, обращение к любым ячейкам, одна из координат которых равна ПУСТО, игнорируется, а считывание из ячеек, одна из координат которых равна ПУСТО, всегда возвращает пустое значение. Поэтому отчет будет работать правильно вне зависимости от того, выводятся итоги или нет.

При необходимости установить атрибуты для всех итоговых строк можно воспользоваться константой МАСКА_ИТОГОВ. Она может использоваться в шаблоне при групповом задании атрибутов или в переборе ячеек в цикле.

При использовании ИТОГО с шаблоном добавляемая строка имеет номер секции равный максимальному номеру секций ячеек попадающих под шаблон и участвующих в суммировании. При использовании ИТОГО без шаблона добавляемая строка имеет номер секции равный максимальному номеру секции, использованному в ячейках до вызова функции ИТОГО. Если же есть необходимость задать другой номер секции, то его можно передать через параметр <секция> при вызове функции.

Пример

АТРИБУТЫВ[ИТОГО("Итого доход","*",1), атВозврат] = исходная_статья + ";1"

ЦИКЛ ЯЧЕЙКИВ (яч = МАСКА_ИТОГОВ)

АТРИБУТЫВ[яч, атФон] = цвКрасный

КОНЕЦ_ЦИКЛА

Если указать восклицательный знак "!" после функции ИТОГО программа проигнорирует опцию "Скрывать пустые итоги" и итоги будут выведены для всех ячеек, в том числе и нулевых.

См.также
ИТОГОВ


ИТОГОВ

Функции ИТОГОВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

C помощью функции ИТОГОВ можно посчитать итоги по столбцам и добавить столбец с итогами в конец отчета.

Синтаксис:

ИТОГОВ[!][([<номер подъячейки>[,<номер подъячейки>],]

[<текст>[,<шаблон строк>[,<шаблон столбцов>[,<секция>]]]])]

Здесь параметр <текст> указывает заголовок столбца, который добавится к отчету. По умолчанию <текст> = "Итого". Перед текстом можно указать через запятую перечень подъячеек, для которых будут подсчитываться итоги. Если номера не указывать, то итоги будут считаться для всех подъячеек. Программа подсчитает итоги и добавит итоговый столбец в конец отчета.

Примеры

ИТОГОВ

ИТОГОВ(1,2)

ИТОГОВ("Итого за день")

Если надо считать итоги не для всех строк, то в параметре <шаблон строк> указывается шаблон, по которому будут отбираться строчки

Внимание!

При повторном вызове функции ИТОГОВ будут суммироваться только те ячейки, которые не суммировались ранее. Если ячейка уже суммировалась, и после ее значение было изменено, то итоги учтут это изменение. Так, например, если попытаться вызвать ИТОГОВ дважды, то второй вызов просто ничего не будет делать, т.к. все итоги уже подсчитаны и выведены. Это используется для вывода промежуточных итогов.

Примеры

// Заполняем ячейки отчета

ИТОГОВ // Выводит итог по всем заполненным ячейкам

ИТОГОВ // Ничего не сделает, т.к. все итоги уже подсчитаны

Второй шаблон, участвующий в подсчете итогов задает те столбцы, которые будут суммироваться. При указании этого шаблона итоги считаются по указанным ячейкам и никак не влияют друг на друга. Если функция ИТОГОВ имеет второй фильтр, то будем ее называть ИТОГОВ с шаблоном.

Внимание!

При указании второго дополнительного фильтра функция итогов работает по-другому: она всегда суммирует указанные в фильтре ячейки и не зависит от того, суммировались ли указанные ячейки или нет.

Фактически ИТОГОВ с шаблоном и ИТОГОВ без него — совершенно разные функции. Хотя они и называются одинаково, но работают совершенно по-разному. Первая требует больше ручной работы, связанной с указанием суммируемых столбцов, тогда как ИТОГОВ без шаблона следит за этим самостоятельно. Функция ИТОГОВ с шаблоном медленная, т.к. анализирует переданные условия шаблона и дополнительно пробегает все указанные ячейки. Функция ИТОГОВ без шаблона выводит итоги мгновенно по сальдо строки. С другой стороны, ИТОГОВ с шаблоном более универсальная функция и может применяться там, где итоги обычным способом подсчитать не удается.

Пример

ИТОГОВ("Итого","*",2) // Указываем номер секции

Замечание!

В использовании ИТОГОВ без шаблона в многоуровневых отчетах есть особенности. При подсчете общего итога, функция не учитывает ячейки, входящие внутрь какой-либо группы. Если функция ИТОГОВ вызывается после функции ГРУППАВ, то она добавляет как общий итог к отчету, так и итоги ко всем существующим подгруппам. Если этого не требуется, вызывайте ИТОГОВ перед созданием уровней.

Функция ИТОГОВ возвращает результат, соответствующий координате столбца, в который были добавлены итоги. Его можно использовать для модификации полученных этой функции значений, добавления дополнительных ячеек в итоги или изменения атрибутов столбца/ячеек итогов.

Однако, что будет, если включена опция Скрывать пустые итоги и итогам нечего суммировать? Так как столбец не добавляются в отчет, то функция возвращает значение ПУСТО. А запись и, вообще, обращение к любым ячейкам, одна из координат которых равна ПУСТО, игнорируется, а считывание из ячеек, одна из координат которых равна ПУСТО, всегда возвращает пустое значение. Поэтому отчет будет работать правильно вне зависимости от того, выводятся итоги или нет.

При необходимости установить атрибуты для всех итоговых столбцов можно воспользоваться константой МАСКА_ИТОГОВ. Она может использоваться в шаблоне при групповом задании атрибутов или в переборе ячеек в цикле.

При использовании ИТОГОВ с шаблоном добавляемая строка имеет номер секции равный максимальному номеру секций ячеек попадающих под шаблон и участвующих в суммировании. При использовании ИТОГОВ без шаблона добавляемая строка имеет номер секции равный максимальному номеру секции, использованному в ячейках до вызова функции ИТОГОВ. Если же есть необходимость задать другой номер секции, то его можно передать через параметр <секция> при вызове функции.

Пример

АТРИБУТЫ[ИТОГОВ("Итого доход","*",1), атВозврат] = исходная_статья + ";1"

ЦИКЛ ЯЧЕЙКИ (яч = МАСКА_ИТОГОВ)

АТРИБУТЫ[яч, атФон] = цвКрасный

КОНЕЦ_ЦИКЛА

Если указать восклицательный знак "!" после функции ИТОГОВ программа проигнорирует опцию "Скрывать пустые итоги" и итоги будут выведены для всех ячеек, в том числе и нулевых.

См.также
ИТОГО


КВАРТАЛ

Функция КВАРТАЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КВАРТАЛ возвращает номер квартала по дате.

Синтаксис:

КВАРТАЛ [(<дата>)]

где

<дата>
выражение типа дата.

Результат — число от 1 до 4. Если параметр <дата> не указан, функция возвращает текущий квартал.

Пример:

нач_кв = 01.04.2000

к = КВАРТАЛ (нач_кв) // переменной к присваивается значение 2


КОД_СИМВ

Функция КОД_СИМВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОД_СИМВ возвращает ASCII-код символа.

Синтаксис:

КОД_СИМВ (<символ>)

где

<символ>
выражение строкового типа.

Результат — число.

Пример:

КОД_СИМВ (" ") // Результат: 32 (код пробела)

КОД_СИМВ ("PRICE") // Результат: 80 (код буквы "P")

См. также
Функция СИМВ


КОД_СЧЕТА

Функция КОД_СЧЕТА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОД_СЧЕТА формирует код счета с аналитиками в виде строки из кода счета указанного в виде объектов.

Синтаксис:

КОД_СЧЕТА (<код счета>)

где

<код счета>
расширенный код счета

Результат — строка.

Замечание!

Если у данного счета нет такой аналитики, будет выдавать ошибку. Если в качестве кода счета будет передан расширенных код счета с указанием аналитических признаков, она добавит к нему коды указанных аналитик. Если же в этом расширенном коде счета уже содержатся указанные аналитики, их коды будут заменены указанными объектами аналитики. На результат работы функции влияет функция РАБОЧИЕ_ОБЪЕКТЫ.

Пример:

клиенты.НАЙТИ(код = "ИВАНОВ")

сч = КОД_СЧЕТА("60":клиенты) // сч = "60/ИВАНОВ"

клиенты.НАЙТИ(код = "ПЕТРОВ")

сч = КОД_СЧЕТА(сч:клиенты) // Заменит на ПЕТРОВ, сч = "60/ПЕТРОВ"

См. также
Функция АНАЛИТИКА_СЧИТАТЬ
Функция КОД_СЧЕТА_ТОЛЬКО


КОД_СЧЕТА_ТОЛЬКО

Функция КОД_СЧЕТА_ТОЛЬКО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОД_СЧЕТА_ТОЛЬКО позволяет из кода счета с аналитикой заданного в виде строки выделить собственно код счета.

Синтаксис:

КОД_СЧЕТА_ТОЛЬКО (<код счета>)

где

<код счета>
строка, соответствующая коду счета с аналитикой.

Результат — строка

Пример:

сч = КОД_СЧЕТА_ТОЛЬКО("60/ИВАНОВ") // Если 60 - счет последнего уровня, а ИВАНОВ - код аналитики

// то сч = "60"

См. также
Функция ЕСТЬ_АНАЛИТИКА
Функция АНАЛИТИКА_СЧИТАТЬ
Особенности работы со счетами и статьями в ЦИКЛе ПО ЖУРНАЛУ


КОДИРОВАТЬ

Функция КОДИРОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОДИРОВАТЬ производит преобразование строки в данные по заданной кодировке.

Синтаксис:

КОДИРОВАТЬ (<строка> , <кодировка> ),

где

<строка>
исходная строка;

<кодировка>
кодировка, к которой надо преобразовать.

Результат — данные. Кодировка может задаваться следующими константами:

WIN — стандартная кодировка операционной системы Windows для русских букв (кодовая страница 1251)

DOS — кодировка операционной системы MSDOS для русских букв (кодовая страница 866)

UTF8 — кодировка UTF-8

UTF16 — кодировка UTF-16LE

MIME — кодировка BASE64

Пример:

данные = КОДИРОВАТЬ ("Спасибо за покупку", WIN)

См.также
ДЕКОДИРОВАТЬ


КОЛОНТИТУЛ

Свойство КОЛОНТИТУЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство КОЛОНТИТУЛ позволяет обратиться и изменить содержимое колонтитула и заголовка окна документа, отчета, таблицы журнала, диалога редактирования записи, диалога типовой операции и пользовательского диалога.

Синтаксис:

КОЛОНТИТУЛ = <новый колонтитул>

где

<новый колонтитул>
строка, задающая новый колонтитул.

или

<переменная> = КОЛОНТИТУЛ

где

<переменная>
переменная, которой присваивается значение колонтитула по умолчанию.

К свойству можно обращаться из расчетной части бланка, отчета или обработчика журнала аналитики.

Внутри обработчика вид журнала она задает заголовок окна редактора журнала, внутри обработчика перед диалогом заголовок редактирования или добавления записи журнала.

Внутри документа или отчета задает заголовок окна. В этом случае задаваемый колонтитул фактически является названием документа (таблицы) и появляется в тех колонтитулах, которые используют название документа (переменная документ). Подробнее см. задание колонтитула.

Внутри типовой операции и пользовательского диалога задает заголовок диалога. Изменение заголовка может происходить как в основном алгоритме, так и, например, в секции ИЗМЕНЕНИЕ.

Свойство всегда возвращает значение колонтитула по умолчанию, вне зависимости от присвоенного ей значения.

Пример:

КОЛОНТИТУЛ += " за" + ПЕРИОД (01.01.2001, 01.01.2002)

// Если колонтитул был "Журнал товарных операций",

// то получится "Журнал товарных операций за год 2001"


КОМПЬЮТЕР

Функция КОМПЬЮТЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОМПЬЮТЕР возвращает имя компьютера, с которого запущена программа. Тип результата — строка.

Синтаксис:

КОМПЬЮТЕР

Результат — строка.

Пример:

ЕСЛИ КОМПЬЮТЕР <> "GLAVBUH" ТО

СООБЩЕНИЕ("Данный отчет можно запускать только с компьютера главного бухгалтера")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

См. также
Функция ПОЛЬЗОВАТЕЛЬ


КОНЕЦ_ГР

Функция КОНЕЦ_ГР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОНЕЦ_ГР завершает групповые операции. После вызова функции все произведенные групповыми функциями и методами изменения будут применены. Перечень групповых функций и методов:

Методы объекта ЖУРНАЛ
ДОБАВИТЬ_ГР | групповое добавление записей
ЗАПИСАТЬ_ГР | групповое изменение записей
УДАЛИТЬ_ГР | удаление записи из базы данных
ИЗМЕНИТЬ_ГР | групповое изменение нескольких записей или групповое преобразование данных
Функции
ДОБАВИТЬ_СВЯЗЬ_ГР | связывает документ и бухгалтерскую операцию
ЗАП_ИСХ_ОСТ_ГР | записывает в базу данных исходный остаток по счету

Синтаксис:

КОНЕЦ_ГР[(<ошибочные операции>)]

где

<ошибочные операции>
строковый массив, который заполняется ключами, если не удалось выполнить какие-либо операции.

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

Групповые методы ДОБАВИТЬ_ГР, ЗАПИСАТЬ_ГР, УДАЛИТЬ_ГР, ИЗМЕНИТЬ_ГР имеют необязательный строковый параметр <ключ>. Он будет использован при заполнении массива <ошибочные операции>. Если операцию не удалось выполнить, программа добавит в массив запись с индексом <ключ>, а значением будет текст ошибки. Если методы ДОБАВИТЬ_ГР, ЗАПИСАТЬ_ГР, УДАЛИТЬ_ГР, ИЗМЕНИТЬ_ГР вызывались с восклицательным знаком (работают быстрее при наличии ошибок), то текст ошибки не возвращается, а значение записи массива будет равно её индексу, т.е. полю <ключ>.

Пример

КОНЕЦ_ГР

См.также
Функция ПРИМЕНИТЬ
Функция ОТМЕНИТЬ


КОНЕЦ_ПЕЧАТИ

Функция КОНЕЦ_ПЕЧАТИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОНЕЦ_ПЕЧАТИ используется для указания конца документа. Все графы и текст, которые следуют за концом документа, не будут отображаться при печати бланка.

Синтаксис:

КОНЕЦ_ПЕЧАТИ (<номер строки>),

где

<номер строки>
номер строки, перед которой будет вставлен признак конца документа.

Пример:

// Девятнадцатая строка будет последней строкой в этом документе

КОНЕЦ_ПЕЧАТИ (20)

// все остальные строки отображаться не будут

См. также
Функция КОНЕЦ_СТРАНИЦЫ
Функция ВОЗМОЖЕН_РАЗРЫВ
Функция НАЧАЛО_ПЕЧАТИ


КОНЕЦ_СТРАНИЦЫ

Функция КОНЕЦ_СТРАНИЦЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОНЕЦ_СТРАНИЦЫ вставляет разрыв страницы в произвольное место бланка. Данная функция может быть использована для разбивки документа на несколько страниц при его создании с помощью функций ВЫВЕСТИ, ВСТАВИТЬ_РАМКУ и др.

Функция КОНЕЦ_СТРАНИЦЫ применяется для указания безусловного окончания страницы документа, что не всегда удобно. Жесткая схема разбивки делает ограничения на форму вывода документа, ориентацию бумаги и т.п. Все эти проблемы решаются аналогичной функцией ВОЗМОЖЕН_РАЗРЫВ, которая делает разрыв страницы, только если в этом есть необходимость.

Синтаксис:

КОНЕЦ_СТРАНИЦЫ (<номер строки>),

где

<номер строки>
номер строки, перед которой будет вставлен разрыв страницы.

Пример:

// Девятнадцатая строка документа будет последней строкой на странице

КОНЕЦ_СТРАНИЦЫ (20)

// с 20-ой строки документа начнется новая страница

См. также
Функция ВОЗМОЖЕН_РАЗРЫВ
Функция КОНЕЦ_ПЕЧАТИ
Функция НАЧАЛО_ПЕЧАТИ


КОНТРОЛЬНАЯ_СУММА

Функция КОНТРОЛЬНАЯ_СУММА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОНТРОЛЬНАЯ_СУММА возвращает контрольную сумму (CRC32) данных.

Синтаксис:

КОНТРОЛЬНАЯ_СУММА (<данные> ),

где

<данные>
данные, для которых считается контрольная сумма;

Результат — число.

Контрольная сумма является инструментом, с помощью которого можно контролировать изменения в данных (в строке). Если в данных произошли изменения, то контрольная сумма меняется. Таким образом для проверки того, есть изменения в данных или нет, можно сравнивать контрольные суммы, а не все данные целиком.

Пример:

//

данные = ...

проверка = КОНТРОЛЬНАЯ_СУММА (данные)


КОНТРОЛЬНАЯ_СУММА_ФАЙЛА

Функция КОНТРОЛЬНАЯ_СУММА_ФАЙЛА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОНТРОЛЬНАЯ_СУММА_ФАЙЛА возвращает контрольную сумму (CRC32) файла.

Синтаксис:

КОНТРОЛЬНАЯ_СУММА_ФАЙЛА (<имя файла> ),

где

<имя файла>
имя файла, для которого считается контрольная сумма;

Результат — число.

Контрольная сумма является инструментом, с помощью которого можно контролировать изменения в данных (в файле). Если в данных произошли изменения, то контрольная сумма меняется. Таким образом для проверки того, есть изменения в данных или нет, можно сравнивать контрольные суммы, а не все данные целиком.

Функция может работать как с файлами, расположенными на диске, так и с файлами, расположенными в базе данных. С файлами, расположенными в Интернете, функция не работает.

Пример:

//

проверка = КОНТРОЛЬНАЯ_СУММА_ФАЙЛА ("c:\temp\out.dat")


КОП

Функция КОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОП возвращает число копеек в указанной сумме.

Синтаксис:

КОП (<сумма>),

где

<сумма>
числовое выражение.

Результат — число.

Пример:

к = КОП (73.85) // переменной к присваивается значение 85


КОПП

Функция КОПП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОПП возвращает слово "копейка" в нужном склонении (склонение определяется по сумме).

Синтаксис:

КОПП (<сумма>),

где

<сумма>
числовое выражение.

Результат — строка.

Пример:

с1=КОПП (25) // переменной с1 присваивается "копеек"

с2=КОПП (1) // переменной с2 присваивается "копейка"

с3=КОПП (4) // переменной с3 присваивается "копейки"


ЛОГ

Функция ЛОГ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЛОГ возвращает натуральный логарифм числа.

Синтаксис:

ЛОГ (<выражение>),

где

<выражение>
константа или выражение числового типа. Значение этого выражения должно быть больше нуля.

Результат — число.

Пример:

а=ЛОГ (1) // переменной а присваивается значение 0


МАКС

Функция МАКС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МАКС возвращает большее значение из двух (или более) чисел, более позднюю дату из двух (или более) дат или большую строку из двух (или более) строк.

Синтаксис:

МАКС (<выражение 1> [, <выражение 2> [, <выражение 3> [, ... ] ] ] ),

где

<выражение 1>
константы или выражения числового типа, типа дата или строкового типа.

<выражение 2>
Тип 1-го выражения должен совпадать с типом 2-го выражения.

и т.д.....

Результат — число, дата или строка, в зависимости от типа выражений. Значения ПУСТО игнорируются.

Пример:

а_макс = МАКС (2, 5-1) // переменной а_макс присваивается значение 4

дм = МАКС (01.05.99, 31.04.99) // переменной дм присваивается значение даты 01.05.99

м = МАКС (1, МАКС (2,3) ) // переменной м присваивается значение 3

м = МАКС (-100, ПУСТО) // переменной м присваивается значение -100

м = МАКС (ПУСТО, ПУСТО) // переменной м присваивается значение ПУСТО


МАСКА_СУБСЧЕТОВ

Функция МАСКА_СУБСЧЕТОВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МАСКА_СУБСЧЕТОВ возвращает шаблон счетов и переставляет аналитики счета.

Синтаксис:

МАСКА_СУБСЧЕТОВ(<счет>,<вариант выбора>)

где

<счет>
строка, соответствующая коду счета в плане счетов или расширенному коду счета

<вариант выбора>
логика, определяет вариант выбора аналитики

Функция МАСКА_СУБСЧЕТОВ на основе кода счета возвращает шаблон субсчетов этого счета. Если счет является счетом последнего уровня, возвращает его. Если счет последнего уровня имеет одну аналитику — добавляет шаблон для выбора этой аналитики. Если счет последнего уровня имеет несколько аналитик — работает в зависимости от параметра <вариант выбора>.

Если <вариант выбора> = НЕТ, то предлагает пользователю выбрать аналитику счета. При выборе аналитики она переставляется на первое место. Последующий вызов функции для этого счета будет работать также, только при выборе аналитик уже переставленная аналитика предлагаться не будет. Все последующие вызовы функций будут переставлять аналитики до тех пор, пока не останется одна. После чего функция ничего не будет переставлять — будет просто выдавать следующий шаблон. Информация о перестановке аналитик запоминается до момента завершения текущей транзaкции. Во всех открытых окнах расширенные коды счетов будут отображаться в этом порядке. Такой вариант выбора используется, например, в оборотной ведомости. Там, каждый раз заходя в подуровни аналитики, программа предлагает для разворачивания одну из свободных аналитик до тех пор, пока они не кончатся.

Если <вариант выбора> = ДА, то предлагается сразу определить порядок следования аналитик. Последующие вызовы этой функции не будут ничего переставлять — функция будет просто выдавать следующий шаблон. Такой вариант выбора используется в материальном отчете. Там при запуске надо определить, как будут развернуты аналитики.

Пример:

счет_шаб = МАСКА_СУБСЧЕТОВ(счет)


МАСКА_СЧЕТОВ_АНАЛИТИКИ

Функция МАСКА_СЧЕТОВ_АНАЛИТИКИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МАСКА_СЧЕТОВ_АНАЛИТИКИ по аналитике возвращает шаблон счетов, использующих эту аналитику.

Синтаксис:

МАСКА_СЧЕТОВ_АНАЛИТИКИ[!](<аналитика1> [, <аналитика2> [, ...] ] )

где

<аналитикаNN>
объект ЖУРНАЛ или идентификатор журнала аналитики

Результат — строка.

Замечание!

Возможно указание после имени функции восклицательного знака. В этом случае шаблон счетов будет содержать только те счета, которые реально используются в бухгалтерских проводках.

Пример:

ф = бухпроводки.ФИЛЬТР(дебет = МАСКА_СЧЕТОВ_АНАЛИТИКИ(сотрудники))

См.также
Особенности работы со счетами и статьями в ЦИКЛе ПО ЖУРНАЛУ


МЕС

Функция МЕС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МЕС выделяет номер месяца из даты.

Синтаксис:

МЕС [(<дата>)],

где

<дата>
выражение типа дата.

Результат — число от 1 до 12. Если параметр <дата> не указан, функция возвращает текущий месяц.

Пример:

нач_кв = 01.04.99

мес = МЕС (нач_кв) // переменной мес присваивается значение 4 (апрель)


МЕСП

Функция МЕСП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МЕСП возвращает название месяца прописью.

Синтаксис:

МЕСП (<месяц>)

где

<месяц>
выражение числового типа от 1 до 12.

Результат — строка.

Пример:

нач_кв = 01.10.99

мес = МЕС (нач_кв) // переменной мес присваивается значение 10

мес_пр = МЕСП (м) // переменной мес_пр присваивается строка "Октябрь"


МИН

Функция МИН

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МИН возвращает меньшее значение из двух (или более) чисел, более раннюю дату из двух (или более) дат или меньшую строку из двух (или более) строк.

Синтаксис:

МИН (<выражение 1> [, <выражение 2> [, <выражение 3> [, ... ] ] ] ),

где

<выражение 1>
константы или выражения числового типа, типа дата или строкового типа.

<выражение 2>
Тип 1-го выражения должен совпадать с типом 2-го выражения.

и т.д.....

Результат — число, дата или строка, в зависимости от типа выражений. Значения ПУСТО игнорируются.

Пример:

а_мин = МИН (2, 5-1) // переменной а_мин присваивается значение 2

дм = МИН (01.01.99, 01.04.99) // переменной дм присваивается дата 01.01.99

м = МИН (1, МИН (2,3) ) // переменной м присваивается значение 1

м = МИН (20, ПУСТО) // переменной м присваивается значение 20

м = МИН (ПУСТО, ПУСТО) // переменной м присваивается значение ПУСТО


МИНМ, МАКСМ

Функция МИНМ, МАКСМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МИНМ (МАКСМ) возвращает значение наименьшего (наибольшего) элемента в массиве.

Синтаксис:

МИНМ (<массив>[, <от>[, <до>]] [, <шаблон>])

МАКСМ (<массив>[, <от>[, <до>]] [, <шаблон>])

где

<массив>
массив.

Дополнительно можно указать числовые параметры <от> и <до> для получения кол-ва элементов в указанном диапазоне или строковый параметр <шаблон> для получения значения наименьшего (наибольшего) элемента, среди тех, индекс которых удовлетворяет шаблону.

Результат зависит от типа массива.

Пример:

м!1=1 м!2=2

с1=МИНМ (м) // переменной с1 присваивается 1

с2=МАКСМ (м) // переменной с2 присваивается 2

См.также
Функция ВСЕГОМ
Функция СУММАМ
Функция НАЙТИМ


МИНУТЫ

Функция МИНУТЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МИНУТЫ выделяет минуты из времени.

Синтаксис:

МИНУТЫ [(<время>)],

где

<время>
выражение типа время.

Результат — число от 0 до 59. Если параметр <время> не указан, функция возвращает текущую минуту.

Пример:

время1 = 00:05

мин1 = МИНУТЫ (время1) // переменной мин1 присваивается значение 5

время2 = 19:35:50

мин2 = МИНУТЫ (время2) // переменной мин2 присваивается значение 35


МНОГО

Функция МНОГО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МНОГО проверяет, что существует две или более записей, удовлетворяющих условию. Функция возвращает ДА, если это так и НЕТ в противном случае.

Синтаксис:

МНОГО ( <условие на поля журналов> [, <игнорировать фильтр>] ),

Результат — логическое выражение.

Пример:

ЕСЛИ МНОГО (склады.код <> ПУСТО) ТО

СООБЩЕНИЕ ( "В базе данных много складов")

КОНЕЦ_ЕСЛИ

См.также
Функция СУЩ.
Функция ЕДИНСТВЕННО.


МНОЖЕСТВО

Функции МНОЖЕСТВО, МНОЖЕСТВО_СОКР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция МНОЖЕСТВО возвращает по идентификатору (коду) элемента множества его название. Коды образуются слиянием кодов множества и элемента.

Синтаксис:

МНОЖЕСТВО (<множество>)

где

<множество>
идентификатор множества

Результат — строка. Если параметр <множество> равен ПУСТО или пустой строке, функция возвращает пустую строку.

Некоторые множества имеют два названия — полное и сокращенное (отделяются вертикальной чертой — | ). В этом случае МНОЖЕСТВО возвращает полное название, а для получения сокращенного названия используется МНОЖЕСТВО_СОКР.

Замечание!

В старых конфигурациях можно встретить устаревший синтаксис идентификатора (кода) элемента множества вида "<код множества>.<код поля>". Не используйте такой синтаксис.

Пример:

оплата = МНОЖЕСТВО(оплБезнал) // оплата = "Безналичные"


НАЗВ

Функция НАЗВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция НАЗВ возвращает название счета или аналитики.

Синтаксис:

НАЗВ [!] (<код счета> [, <игнор_осн>])

где

<код счета>
строка, соответствующая коду счета с аналитикой.

<игнор_осн>
игнорировать опцию Основная аналитика в параметрах аналитики.

Результат — строка.

Пример:

назв_счет = НАЗВ ("50") // назв_счет = "Касса"

См.также
функция НАЗВ_ПОЛН


НАЗВ_ПОЛН

Функция НАЗВ_ПОЛН

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция НАЗВ_ПОЛН возвращает по коду счета с аналитикой полное название счета со всеми аналитиками.

Синтаксис:

НАЗВ_ПОЛН [!] (<код счета> [, <вывод_названий>])

где

<код счета>
строка, соответствующая коду счета с аналитикой.

<вывод_названий>
меняет режим вывода на альтернативный с выводом названий аналитик

Результат — строка — если <вывод_названий> = НЕТ или не указано, то полное название счета в виде строки, состоящей из названия счета и названия всех составляющих его аналитик, разделенный строкой "//".

Если <вывод_названий> = ДА, то полное название счета в виде строки, состоящей из названия счета, далее название аналитики, двоеточие и значение аналитики в угловых скобках.

Пример:

// Если счет 41 "Товары" имеет аналитику по складам и товарам, ОСН - код склада "Основной"

// в справочнике складов, КОМП - код товара "Компьютер" в справочнике товаров, то

назв_счет = НАЗВ_ПОЛН ("41/ОСН/КОМП") // назв_счет = "Товары//Основной//Компьютер"

назв_счет = НАЗВ_ПОЛН ("41/ОСН/КОМП", ДА) // назв_счет = "Товары//Склад: <Основной>//Товар: <Компьютер>"

См.также
функция НАЗВ


НАЙТИМ

Функция НАЙТИМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция НАЙТИМ ищет первый элемент в массиве, индекс которого удовлетворяет шаблону или попадает в диапазон, и возвращает индекс этого элемента.

Синтаксис:

НАЙТИМ (<массив>[, <от>[, <до>]] [, <шаблон>])

где

<массив>
массив. Дополнительно можно указать числовые параметры

<от> и <до>
для поиска элемента в указанном диапазоне или строковый параметр

<шаблон>
для поиска элемента, индекс которого удовлетворяет шаблону.

Результат — строка. Если ни одного элемента не найдено, возвращает пустую строку.

Пример:

м!1=1 м!2=2

с1=НАЙТИМ (м) // переменной с1 присваивается "00001" (строковое представление индекса 1, то же самое, что и СТРМ(1))

с2=НАЙТИМ (["Инфо","-","Предприятие"]) // переменной с2 присваивается "-" (первая по алфавиту строка из перечисленных)

с3=НАЙТИМ (["Инфо","-","Предприятие"],"*и*") // переменной с3 присваивается "Предприятие" (строка, содержащая символ "и")

См.также
Функция МАКСМ
Функция МИНМ
Функция СУММАМ
Функция ВСЕГОМ


НАСТРОИТЬ_ПОРЯДОК

Функция НАСТРОИТЬ_ПОРЯДОК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция НАСТРОИТЬ_ПОРЯДОК вызывает диалог настройки порядка следования элементов массива. При вызове функции появится окно, в котором будут перечислены элементы массивы. Окно будет содержать кнопки <Вверх> и <Вниз>, с помощью которых можно переставлять местами его элементы.

Синтаксис:

НАСТРОИТЬ_ПОРЯДОК ( <заголовок>, <массив> [, <ширина>] [, <высота>] )

где

<заголовок>
строка, содержащая заголовок окна;

<массив>
массив строк, порядок элементов которого надо настроить;

<ширина>, <высота>
необязательные параметры, позволяют указать ширину и высоту окна;

Если массив на входе имеет числовой индекс, начинающийся с 1-ы, то после перестановки массив будет содержать те же значения, но с другими индексами.

Замечание!

Массив может иметь не числовой индекс. При возврате из функции в случае перестановки элементов массив будет содержать те же значения с числовым индексом, начинающимся с 1-ы.

Результат — логика, определяется по тому, нажал ли пользователь кнопку <ОК> в диалоге.

Пример 1:

Ниже приведен пример, в котором при помощи функции НАСТРОИТЬ_ПОРЯДОК предлагается настроить порядок следования позиций. При выполнении функции на экране появится диалоговое окно:

Справа настраиваемые варианты. Выделив нужный (один или несколько) и нажав кнопку <Вверх> его можно переместить вверх, а нажав кнопку <Вниз> переместить вниз. По завершению перестановок нажмите клавишу <Enter> или щелкните клавишей мыши по кнопке <OK>.

порядок!1 = "Первый"

порядок!2 = "Второй"

НАСТРОИТЬ_ПОРЯДОК("Настроить", порядок)

ЦИКЛ ДЛЯ (и ИЗ порядок)

ОТЛАДКА(порядок!и)

КОНЕЦ_ЦИКЛА

См.также
Функция ВЫБРАТЬ_ЗНАЧЕНИЕ
Функция ПОДОБРАТЬ_ЗНАЧЕНИЯ


НАЧАЛО_ПЕЧАТИ

Функция НАЧАЛО_ПЕЧАТИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция НАЧАЛО_ПЕЧАТИ используется совместно с функцией КОНЕЦ_ПЕЧАТИ для выделения удаляемых из документа страниц.

Синтаксис:

НАЧАЛО_ПЕЧАТИ (<номер строки>),

где

<номер строки>
номер строки, перед которой будет вставлен признак начала документа.

Пример:

// Удалить из документа все строки с 10-ой до 20-ой

КОНЕЦ_ПЕЧАТИ(10)

НАЧАЛО_ПЕЧАТИ (20)

См. также
Функция КОНЕЦ_СТРАНИЦЫ
Функция ВОЗМОЖЕН_РАЗРЫВ
Функция КОНЕЦ_ПЕЧАТИ


НЕ_ПУСТО

Функция НЕ_ПУСТО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция НЕ_ПУСТО проверяет значение выражения на ПУСТО. Если оно равно ПУСТО, оно заменяется другим.

Синтаксис:

НЕ_ПУСТО (<проверяемое_выражение> [, <замена> [ , <замена2> [, ...] ] ] )

Результат зависит от типа используемых выражений. Функция равносильна следующему выражению:

?(<проверяемое_выражение>=ПУСТО, <замена>, <проверяемое_выражение>)

Возможно не одна, а несколько значений для замены: <замена>, <замена2> и т.д. Тогда программа будет перебирать их всех пока не найдет не пустое значение.

Если <проверяемое_выражение> является переменной или полем журнала, то можно не указывать ни одного варианта <замена>. В этом случае функция вернет значение по умолчанию: для строки — пустую строку, для числа — 0, для даты — минимальную дату, для времени — полночь, для логики — НЕТ, для других типов выдаст ошибку.

Результат — число, дата или строка, в зависимости от типа выражений. Значения ПУСТО игнорируются

Пример:

ЦИКЛ ПО ЖУРНАЛУ бухпроводки б

сумма_ну = б.сумма + НЕ_ПУСТО(б.сумма_кор,0)

//...

КОНЕЦ_ЦИКЛА


НОМЕР

Функция НОМЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция НОМЕР возвращает новый номер указанного документа. Используется для автонумерации документов и генерации уникальных кодов. Номера, возвращаемые свойством НОМЕР, гарантировано уникальны.

Синтаксис:

НОМЕР ( <тип документа>[:<серия документа>][:<фирма>] )

где

<тип документа>
строка длиной не более 5 (по умолчанию, но может быть изменено) символов, определяющая тип документа.

<серия документа>
необязательный параметр, число, определяющая серию номеров документов

<фирма>
необязательный параметр, указывающий номер фирмы при использовании консолидированного учета, по умолчанию — текущая фирма, при указании -1 используется сквозная нумерация на все фирмы. Если серия документов не нужна, но надо указать номер фирмы, в серии указывается 0.

Тип — число.

При считывании свойство выдает новый номер документа. Первым номером будет 1. Все номера далее будут идти по порядку: 2, 3, 4,..., но в рамках серии номеров. Серия формируется из:

·типа документа

·серии документа

·фирмы

В другой серии будут другая последовательность номеров.

Последующие вызовы функции будут возвращать то же самое значение, потому что полученный номер надо подтвердить с помощью функции ЗАП_НОМЕР.

Пример:

номер=НОМЕР ("пп":ГОД) // Переменной номер будет присвоен новый номер для платежного

// поручения (документа с кодом "пп") в этом году (серия ГОД)

ЗАП_НОМЕР ("пп":ГОД, номер) // Подтверждаем номер

См. также
ЗАП_НОМЕР
Использование автоинкрементных полей


ОБД

Функция ОБД

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБД вычисляет величину оборота по дебету счета за определенный период времени.

Если код счета пропущен, выдается сумма дебетовых оборотов всех балансовых счетов.

Если корр. счет не указан, то оборот рассчитывается в корреспонденции со всеми счетами.

Если даты не указаны, то оборот рассчитывается за период с ДАТА_НАЧ до ДАТА_КОН.

Синтаксис:

ОБД[!] ( [<код счета>] [(<условие>)] [,<код корр. счета>] [(<условие корр>)] [,<дата1>, <дата2>[,<в дате>]] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<код корр. счета>
строка, соответствующая коду корреспондирующего счета.

<условие корр>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки корреспондирующего счета.

<дата 1>,<дата 2>
даты, определяющие границы периода, за который рассчитывается оборот.

<в дате>
номер операции, если надо посчитать обороты перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку если счет(а) не существует(ют). Можно ипользовать ОБД!, которая в такой ситуации будет просто возвращать 0.

Пример:

об51 = ОБД ("51") // переменной об51 присваивается значение,

// равное обороту дебета счета 51

// за отчетный период

об51_26 = ОБД ("51","26") // переменной об51_26 присваивается

// значение, равное обороту дебета

// счета 51 в корреспонденции

// со счетом 26 за отчетный период

а1_10 = ОБД ("51",01.04.98,11.04.99) // переменной а1_10 присваивается

// значение, равное обороту дебета

// счета 51 за 1-ю декаду апреля 1999

б1_10 = ОБД("51","26",01.04.98,11.04.99) // переменной б1_10 присваивается

// значение, равное обороту дебета

// счета 51 в корреспонденции со счетом 26

// за 1-ю декаду апреля 1999 года

ВЫБОР_ЗАПИСИ(товары) // Выбираем товар из справочника "товары"

оборот = ОБД("41":товары) // переменной оборот присваивается значение

// равное дебетовому обороту по выбранному

// товару в отчетном периоде

об3 = ОБД("01"(оснсредства.группа = 3))

// переменной ос3 присваивается значение

// равное обороту дебета счета "01" на дату

// конца отчетного периода по основным средствам

// 3-ей группы


ОБД_К

Функция ОБД_К

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБД_К вычисляет величину оборота по дебету счета за определенный период времени в количественном выражении.

Если корреспондирующий счет не указан, оборот рассчитывается в корреспонденции со всеми счетами.

Если даты не указаны, то оборот рассчитывается за период с ДАТА_НАЧ до ДАТА_КОН.

Синтаксис:

ОБД_К[!] (<код счета> [(<условие>)] [,<код корр. счета>] [(<условие корр>)]

[,<дата 1>, <дата 2>[,<в дате>]]),

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<код корр. счета>
строка, соответствующая коду корреспондирующего счета.

<условие корр>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки корреспондирующего счета.

<дата 1>,<дата 2>
даты, определяющие границы периода, за который рассчитывается оборот.

<в дате>
номер операции, если надо посчитать обороты перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку если счет(а) не существует(ют). Можно использовать ОБД_К!, которая в такой ситуации будет просто возвращать 0.

Пример:

приход = ОБД_К ("10/БАЛКИ")


ОБД_ДОП

Функция ОБД_Д

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБД_ДОП вычисляет величину оборота по дебету счета за определенный период времени в дополнительных единицах.

Если корреспондирующий счет не указан, оборот рассчитывается в корреспонденции со всеми счетами.

Если даты не указаны, то оборот рассчитывается за период с ДАТА_НАЧ до ДАТА_КОН.

Синтаксис:

ОБД_ДОП[!] (<код счета> [(<условие>)] [,<код корр. счета>] [(<условие корр>)]

[,<дата 1>, <дата 2>[,<в дате>]] ),

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<код корр. счета>
строка, соответствующая коду корреспондирующего счета.

<условие корр>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки корреспондирующего счета.

<дата 1>,<дата 2>
даты, определяющие границы периода, за который рассчитывается оборот.

<в дате>
номер операции, если надо посчитать обороты перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку если счет(а) не существует(ют). Можно использовать ОБД_ДОП!, которая в такой ситуации будет просто возвращать 0.

Пример:

приход = ОБД_ДОП ("10/БАЛКИ")


ОБД_НУ

Функция ОБД_НУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Функция ОБД_НУ вычисляет величину оборота по дебету счета как единицы налогового учета за определенный период времени. Она аналогична функции ОБД, только обрабатывает сумму налогового учета проводок.

Замечание!

Если статья налогового учета не указана (поле "Сумма учета" в проводке недоступно для изменения), то такая проводка в расчете оборотов не участвует.


ОБК

Функция ОБК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБК вычисляет величину оборота по кредиту счета за определенный период времени.

Если код счета пропущен, выдается сумма кредитовых оборотов всех балансовых счетов.

Если корр. счет не указан, оборот рассчитывается в корреспонденции со всеми счетами.

Если даты не указаны, то оборот рассчитывается за период с ДАТА_НАЧ до ДАТА_КОН.

Синтаксис:

ОБК[!] ([<код счета>] [(<условие>)] [,<код корр. счета>] [(<условие корр>)]

[,<дата1>, <дата2>[,<в дате>]] ),

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<код корр. счета>
строка, соответствующая коду корреспондирующего счета.

<условие корр>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки корреспондирующего счета.

<дата 1>,<дата 2>
даты, определяющие границы периода, за который рассчитывается оборот.

<в дате>
номер операции, если надо посчитать обороты перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку если счет(а) не существует(ют). Можно использовать ОБК!, которая в такой ситуации будет просто возвращать 0.

Пример:

об51 = ОБК ("51") // переменной об51 присваивается значение,

// равное обороту кредита счета 51

// за отчетный период

об51_26 = ОБК ("51", "26") // переменной об51_26 присваивается

// значение, равное обороту кредита счета 51

// в корреспонденции со счетом 26

// за отчетный период

а1_10 = ОБК ("51", 01.04.99, 11.04.99) // переменной а1_10 присваивается значение,

// равное обороту кредита счета 51

// за 1-ю декаду апреля 1999 года

б1_10 = ОБК ("51","26", 01.04.98, 11.04.99) // переменной б1_10 присваивается значение,

// равное обороту кредита счета 51

// в корреспонденции со счетом 26

// за 1-ю декаду апреля 1999 года

ВЫБОР_ЗАПИСИ(товары) // Выбираем товар из справочника "товары"

оборот = ОБК("41":товары) // переменной оборот присваивается значение

// равное кредитовому обороту по выбранному

// товару в отчетном периоде

об3 = ОБК("01"(оснсредства.группа = 3))

// переменной ос3 присваивается значение

// равное обороту кредита счета "01" на дату

// конца отчетного периода по основным средствам

// 3-ей группы


ОБК_К

Функция ОБК_К

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБК_К вычисляет величину оборота по кредиту счета за определенный период времени в количественном выражении.

Если корр. счет не указан, то оборот рассчитывается в корреспонденции со всеми счетами.

Если даты не указаны, то оборот рассчитывается за период с ДАТА_НАЧ до ДАТА_КОН.

Синтаксис:

ОБК_К[!] (<код счета> [(<условие>)] [,<код корр. счета>] [(<условие корр>)] [,<дата1>,<дата2>[,<в дате>]] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<код корр. счета>
строка, соответствующая коду корреспондирующего счета.

<условие корр>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки корреспондирующего счета.

<дата 1>,<дата 2>
даты, определяющие границы периода, за который рассчитывается оборот.

<в дате>
номер операции, если надо посчитать обороты перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку если счет(а) не существует(ют). Можно использовать ОБК_К!, которая в такой ситуации будет просто возвращать 0.

Пример:

расход = ОБК_К ("10/БАЛКИ")


ОБК_ДОП

Функция ОБК_ДОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБК_ДОП вычисляет величину оборота по кредиту счета за определенный период времени в дополнительных единицах.

Если корр. счет не указан, то оборот рассчитывается в корреспонденции со всеми счетами.

Если даты не указаны, то оборот рассчитывается за период с ДАТА_НАЧ до ДАТА_КОН.

Синтаксис:

ОБК_ДОП[!] (<код счета> [(<условие>)] [,<код корр. счета>] [(<условие корр>)] [,<дата1>,<дата2>[,<в дате>]] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<код корр. счета>
строка, соответствующая коду корреспондирующего счета.

<условие корр>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки корреспондирующего счета.

<дата 1>,<дата 2>
даты, определяющие границы периода, за который рассчитывается оборот.

<в дате>
номер операции, если надо посчитать обороты перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку если счет(а) не существует(ют). Можно использовать ОБК_ДОП!, которая в такой ситуации будет просто возвращать 0.

Пример:

расход = ОБК_ДОП ("10/БАЛКИ")


ОБК_НУ

Функция ОБК_НУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБК_НУ вычисляет величину оборота по кредиту счета как единицы налогового учета за определенный период времени. Она аналогична функции ОБК, только обрабатывает сумму налогового учета проводок.

Замечание!

Если статья налогового учета не указана (поле "Сумма учета" в проводке недоступно для изменения), то такая проводка в расчете оборотов не участвует.


ОБЛАЧНАЯ_ВЕРСИЯ

Функция ОБЛАЧНАЯ_ВЕРСИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБЛАЧНАЯ_ВЕРСИЯ сообщает о том, что запущена облачная версия программы.

Синтаксис:

ОБЛАЧНАЯ_ВЕРСИЯ

Результат — логика.

Пример:

ЕСЛИ ОБЛАЧНАЯ_ВЕРСИЯ ТО

СООБЩЕНИЕ("В облачной версии программы эта функция не поддерживается")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

См.также
Функция ВЕРСИЯ


ОБНОВИТЬ_МЕНЮ

Функция ОБНОВИТЬ_МЕНЮ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБНОВИТЬ_МЕНЮ вызывает обработчик вид главного меню и обновляет главное меню.

Синтаксис:

ОБНОВИТЬ_МЕНЮ

Функция не возвращает результата.

Примеры:

// Вызываем функцию если поменялись настройки

ЕСЛИ изменились_настройки ТО

ОБНОВИТЬ_МЕНЮ

КОНЕЦ_ЕСЛИ


ОБНОВИТЬ_ОТЧЕТ

Функция ОБНОВИТЬ_ОТЧЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБНОВИТЬ_ОТЧЕТ обновляет окно отчета из обработчика при выборе ячейки.

Синтаксис:

ОБНОВИТЬ_ОТЧЕТ

Функция не возвращает результата.

Пример:

ФУНКЦИЯ ЛОГИКА: Выбор(СТРОКА: колонка, строка)
клиент.ДОБАВИТЬ // Добавляем нового клиента в справочник
ОБНОВИТЬ_ОТЧЕТ // Обновляем отчет чтобы в нем появилась информация о добавленном клиенте

КОНЕЦ_ФУНКЦИИ


ОБНОВИТЬ_СПИСОК

Функция ОБНОВИТЬ_СПИСОК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБНОВИТЬ_СПИСОК может использоваться в диалогах и типовых операциях внутри секции, начинающейся с ключевого слова ИЗМЕНЕНИЕ. С помощью нее можно обновить список графы ввода с вызовом функции и типом выбора выбСписок, выбРедСписок или выбЛист.

Функция имеет три варианта синтаксиса: для одной графы, для нескольких граф и обновление всех граф с заданной функцией.

Синтаксис I (для одного поля):

ОБНОВИТЬ_СПИСОК (<графа>)

где

<графа>
графа ввода = имя переменной;

Существует вариант функции с указанием нескольких граф ввода в квадратных скобках через запятую. Он используется для задания доступа сразу ко всем перечисленным графам:

Синтаксис II (для нескольких полей):

ОБНОВИТЬ_СПИСОК [!] ( [ <графа1> [, <графа2> [, <графа3> ... ] ] ] )

где

<графа1>, <графа2>, <графа3>, ...
графы, для которых вызывается данная функция, указываются в квадратных скобках через запятую;

Наконец, третий вариант функции обновляет все графы, у которых для формирования списка используется заданная функция.

Синтаксис III (задание полей именем функции):

ОБНОВИТЬ_СПИСОК (<имя функции>)

где

<имя функции>
строковая константа, определяющая имя функции;

Пример:

// Функция, заполняющая список

ПЕРЕМ Всего = 2

ФУНКЦИЯ Список

ЦИКЛ ДЛЯ (и = 1, Всего)

м!СТР0(и, 5) = СТР(и)

КОНЕЦ_ЦИКЛА

ВВЕСТИ_ЗНАЧЕНИЕ("", м)

КОНЕЦ_ФУНКЦИИ

ДИАЛОГ Тест

*~детал("", "Список", выбСписок):15

&Всего:2:0

ИЗМЕНЕНИЕ

// Вызов функции ОБНОВИТЬ_СПИСОК обеспечивает изменение списка в графе "детал"

ЕСЛИ ИЗМЕНЕНА(Всего) ТО

ОБНОВИТЬ_СПИСОК(детал)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ДИАЛОГА

Вместо ОБНОВИТЬ_СПИСОК(детал) можно написать ОБНОВИТЬ_СПИСОК([детал]) или ОБНОВИТЬ_СПИСОК("Список"). Эффект будет одинаковый.

См.также
Ключевое слово ИЗМЕНЕНИЕ.


ОБНОВИТЬ_ТЕРМИНАЛ

Функция ОБНОВИТЬ_ТЕРМИНАЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБНОВИТЬ_ТЕРМИНАЛ обновляет содержимое окна терминала (см функцию СТАРТ_ТЕРМИНАЛ)

Синтаксис:

ОБНОВИТЬ_ТЕРМИНАЛ

Вызов данной функции потребуется в том случае, если в процессе работы алгоритма изменилось значение глобальных переменных, используемых в элементах окна терминала. Без вызова этой функции содержимое окна не обновится.

Пример:

ОБНОВИТЬ_ТЕРМИНАЛ

См. также
Функция СТАРТ_ТЕРМИНАЛ
Функция ЕСТЬ_ТЕРМИНАЛ
Метод ВНУТРИ_ТЕРМИНАЛА


ОБНУ

Функция ОБНУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБНУ вычисляет величину оборота по статье налогового учета за определенный период времени. Если даты не указаны, то оборот рассчитывается за период с ДАТА_НАЧ до ДАТА_КОН.

Синтаксис:

ОБНУ[!] ( [<код статьи>] [,<дата1>, <дата2>] )

где

<код статьи>
строка, соответствующая коду статьи налогового учета;

<дата 1>,<дата 2>
даты, определяющие границы периода, за который рассчитывается оборот.

Результат — число.

Замечание!

Функция выдает ошибку если, статья не существует. Указание ! после имени функции отключает такую проверку, и в такой ситуации функция будет просто возвращать 0.

Пример:

доходы = ОБНУ ("Д") // переменной доходы присваивается значение,

// равное обороту по статье "Д"

// за отчетный период

расходы = ОБНУ ("Р",01.04.04,11.04.04) // переменной расходы присваивается

// значение, равное обороту по статье "Р"

// за 1-ю декаду апреля 2004 г


ОБНУ_К

Функция ОБНУ_К

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБНУ_К вычисляет величину оборота по статье налогового учета за определенный период времени в количественном выражении. Если даты не указаны, то оборот рассчитывается за период с ДАТА_НАЧ до ДАТА_КОН.

Синтаксис:

ОБНУ_К[!] ( [<код статьи>] [,<дата1>, <дата2>] )

где

<код статьи>
строка, соответствующая коду статьи налогового учета;

<дата 1>,<дата 2>
даты, определяющие границы периода, за который рассчитывается оборот.

Результат — число.

Замечание!

Функция выдает ошибку, если статья не существует. Указание ! после имени функции отключает такую проверку, и в такой ситуации функция будет просто возвращать 0.

Пример:

списано_матер = ОБНУ_К ("МР/М/ПТ") // переменной доходы присваивается значение,

// равное обороту по статье "МР/М/ПТ"

// в количественном выражении за отчетный период

списано_матер_1 = ОБНУ_К ("Р", // переменной расходы присваивается

01.04.04,11.04.04) // значение, равное обороту по статье "Р"

// в количественном выражении за 1-ю декаду апреля 2004 г


ОБНУ_ДОП

Функция ОБНУ_ДОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБНУ_ДОП вычисляет величину оборота по статье налогового учета за определенный период времени в дополнительных единицах. Если даты не указаны, то оборот рассчитывается за период с ДАТА_НАЧ до ДАТА_КОН.

Синтаксис:

ОБНУ_ДОП[!] ( [<код статьи>] [,<дата1>, <дата2>] )

где

<код статьи>
строка, соответствующая коду статьи налогового учета;

<дата 1>,<дата 2>
даты, определяющие границы периода, за который рассчитывается оборот.

Результат — число.

Замечание!

Функция выдает ошибку, если статья не существует. Указание ! после имени функции отключает такую проверку, и в такой ситуации функция будет просто возвращать 0.

Пример:

списано_матер = ОБНУ_ДОП ("МР/М/ПТ") // переменной доходы присваивается значение,

// равное обороту по статье "МР/М/ПТ"

// в дополнительных единицах за отчетный период

списано_матер_1 = ОБНУ_ДОП ("Р", // переменной расходы присваивается

01.04.04,11.04.04) // значение, равное обороту по статье "Р"

// в дополнительных единицах за 1-ю декаду апреля 2004 г


ОБНУЛИТЬ

Функция ОБНУЛИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБНУЛИТЬ обнуляет (очищает) массив, удаляя все его элементы.

Синтаксис:

ОБНУЛИТЬ (<массив>[,<массив2>[,...]] [:<маска>[:<только нулевые>]])

где

<массив>
массив (может быть один или несколько, перечисленных через запятую).

<маска>
позволяет при необходимости удалить не все элементы, а только те, что удовлетворяют маске ( шаблону).

<только нулевые>
удаляет только нулевые элементы (пустая строка — у строковых массивов, 0 — у числовых массивов, и т.д.).

Функция не возвращает результат.

Замечание!

Изначально, после запуска типовой операции или бланка без предрасчетной части, любой массив не содержит ни одного элемента. Если бланк имеет предрасчетную часть, массив не содержит ни одного элемента перед началом выполнения предрасчетной части. Перед началом выполнения основной части массив содержит только те элементы, которые были занесены в него в предрасчетной части. Их значение может изменяться внутри расчетной части и эти изменения будут сохраняться между запусками бланка.

Если элементы массива используются в качестве переменных во вводных графах бланка или типовой операции, то перед началом выполнения введенные пользователем значения граф заносятся в элементы массива. Это выполняется как при выполнении предрасчетной части бланка, так и при выполнении основной части.

Замечание!

Вызов ОБНУЛИТЬ внутри цикла ЦИКЛ ИЗ для того же массива, по которому проходят итерации цикла, может приводить к тому,что цикл пройдет не по всем записям массива.

Пример 1:

м!1=10 м!2=-10

ф1=1 ИЗ м // значение ф1 истинно

ОБНУЛИТЬ (м) // переменной с1 присваивается 0

ф2=1 ИЗ м // значение ф2 ложно

Пример 2:

м!"а1"=1

м!"б2"=2

ф1="а" ИЗ м // значение ф1 истинно

ОБНУЛИТЬ (м:"а*") // удаляем элементы, начинающиеся на а

ф2="а" ИЗ м // значение ф2 ложно

См. также
ОБНУЛИТЬ_ЖЕЛТЫЕ


ОБНУЛИТЬ_ЖЕЛТЫЕ

Функция ОБНУЛИТЬ_ЖЕЛТЫЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБНУЛИТЬ_ЖЕЛТЫЕ используется в бланках, она обнуляет содержимое переменных, указанных в графах с опцией Желтый цвет фона в графах.

Синтаксис:

ОБНУЛИТЬ_ЖЕЛТЫЕ [ (<графа>[,<графа2>[,...]]) ]

где

<графа>, <графа2>
можно перечислить графы-исключения, значения которых не будет обнуляться.

Пример:

ОБНУЛИТЬ_ЖЕЛТЫЕ

См. также
Опции граф ввода-вывода
ОБНУЛИТЬ


ОБОРОТЫ

Функция ОБОРОТЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Смотрите Ключевое слово ЦИКЛ ОБОРОТЫ

Описание:

Функция ОБОРОТЫ оптимизирует расчет оборотов, например, доступ к прямым оборотам счетов (оборотам счетов в корреспонденции со всеми счетами). После вызова ОБОРОТЫ функции доступа к прямым оборотам и остаткам счетов, а также ЦИКЛ ОБОРОТЫ для прямых оборотов, работают быстрее для указанных счетов.

Синтаксис:

ОБОРОТЫ (<шаблон>),

где

<шаблон>
шаблон счетов

Замечание!

Чем меньше счетов попадает под шаблон, тем функция работает эффективней. Указание "*" (звездочки) не приведет к какому-либо эффекту.

Пример:

// Нам надо подсчитать остаток кассы на текущую дату

// С функцией ОБОРОТЫ это работает значительно быстрее

ОБОРОТЫ ("50")

остаток = ОСД("50", ДАТА_ТЕК)


ОКРУГЛЕНИЕ

Функция ОКРУГЛЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Функция ОКРУГЛЕНИЕ в зависимости от числа переданных параметров решает две разные задачи:

·Когда используется результат функции она используется для округление переданного числа до заданной точности.

·Когда результат функции не используется, она управляет режимом автоматического округления.

Описание (вариант 1, округление числа):

Когда используется результат функции ОКРУГЛЕНИЕ она округляет переданное числа до нужного кол-ва знаков после запятой.

Синтаксис:

ОКРУГЛЕНИЕ (<число> [, <дес. знаков>] ),

где

<число>
исходное число;

<дес. знаков>
количество десятичных знаков при округлении (-9...9).

Допускается передавать в параметре <дес. знаков> отрицательные значения. Значение -1 означает округление до целых десятков, значение -2 до целых сотен, значение -3 до целых тысяч и т.д.

Если параметра <дес. знаков> нет, то выполняется округление по умолчанию, т.е.

·до 2-х десятичных знаков, если не использовалась функция ОКРУГЛЕНИЕ во 2-ом варианте;

·до параметра, заданного в последнем вызове функции ОКРУГЛЕНИЕ во 2-ом варианте.

Пример:

ОКРУГЛЕНИЕ(4) // Устанавливает режим округления (см. вариант 2 ниже)
число = 1983.141593

а = ОКРУГЛЕНИЕ (число) // а = 1983.1416 округление до 4-х знаков после запятой

а = ОКРУГЛЕНИЕ (число, 2) // а = 1983.14 округление до 2-х знаков после запятой

а = ОКРУГЛЕНИЕ (число, -3) // а = 2000, округление до целых тысяч

Описание (вариант 2, управление автоматическим округлением):

Когда результат функции не используется ОКРУГЛЕНИЕ применяется для задания автоматического округления значений, присваиваемых переменным числового типа.

Округление действует с момента появления данной функции до окончания работы алгоритма или до задания другого округления.

Синтаксис:

ОКРУГЛЕНИЕ (<кол-во знаков>),

где

<кол-во знаков>
выражение числового типа, определяющее количество десятичных знаков после запятой (-9...9).

Пример 1:

а = 12375/1000 // а = 12.375

б = 12% // б = 0.12

ОКРУГЛЕНИЕ (1)

а = 12375/1000 // а = 12.4

б = 12% // б = 0.1

Режим автоматического округления позволяет избежать несоответствия выведенных в поля вывода бланка значений, округляемых в соответствии с форматом поля. Например, в случае, если какая-либо графа является суммой некоторых других.

Пример 2:

Пусть графы вывода сумма1, сумма2 и итого имеют по два десятичных знака после запятой. Тогда, при обработке типовой операции:

ОПЕРАЦИЯ Неправильно

Сумма1: #сумма1:10:2

Сумма2: #сумма2:10:2

Итого: #итого:10:2

ВЫЧИСЛИТЬ

сумма1 = 3.48*1% // сумма1 = 0.0348

сумма2 = 2.41*1% // сумма2 = 0.0241

итого = сумма1 + сумма2 // итого = 0.0589

ВВЕСТИ
КОНЕЦ

Будет выведено:

Сумма 1: 0.03

Сумма 2: 0.02

Итого: 0.06 (!).

Чтобы избежать несоответствия, надо вызвать в начале расчета функцию ОКРУГЛЕНИЕ:

ОПЕРАЦИЯ Правильно

Сумма1: #сумма1:10:2

Сумма2: #сумма2:10:2

Итого: #итого:10:2

ВЫЧИСЛИТЬ

ОКРУГЛЕНИЕ(2)

сумма1 = 3.48*1% // сумма1 = 0.0348

сумма2 = 2.41*1% // сумма2 = 0.0241

итого = сумма1 + сумма2 // итого = 0.0589

ВВЕСТИ
КОНЕЦ

Будет выведено:

Сумма 1: 0.03

Сумма 2: 0.02

Итого: 0.05.


ОПРЕДЕЛИТЬ

Функция ОПРЕДЕЛИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОПРЕДЕЛИТЬ задает имя, под которым переменная будет известна функции ВЫРАЖЕНИЕ, или указать библиотеку, которая будет подключаться при выполнении функции ВЫРАЖЕНИЕ.

Синтаксис:

ОПРЕДЕЛИТЬ ( <строковое выражение>, <переменная> )

для задания имени переменной, здесь <строковое выражение> должно определять правильное имя переменной.

ОПРЕДЕЛИТЬ ( <строковое выражение> )

для подключения библиотеки, здесь <строковое выражение> должно определять название билиотеки.

Пример:

// Задание имени переменной

А = 4

Б = 5

ОПРЕДЕЛИТЬ ("А", A)

ОПРЕДЕЛИТЬ ("Б", Б )

успех = ВЫРАЖЕНИЕ ( "А+Б", результат ) // успех = ДА , результат = 9

// А теперь просто изменим значение переменной

А = 8

успех = ВЫРАЖЕНИЕ ( "А+Б", результат ) // успех = ДА , результат = 13

// Подключение билиотеки

ОПРЕДЕЛИТЬ ("StdFunc")

// Теперь можно использовать все функции из библиотеки StdFunc, например

// Функцию СуммаНДС

успех = ВЫРАЖЕНИЕ ( "СуммаНДС(1000,ндсВТомЧисле)", результат )

См.также
Функция ОПРЕДЕЛИТЬ_ЗНАЧ


ОПРЕДЕЛИТЬ_ЗНАЧ

Функция ОПРЕДЕЛИТЬ_ЗНАЧ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОПРЕДЕЛИТЬ_ЗНАЧ задает значение, которое будет иметь переменная внутри функции ВЫРАЖЕНИЕ.

Синтаксис:

ОПРЕДЕЛИТЬ_ЗНАЧ ( <строковое выражение>, <значение> )

где

<строковое выражение>
должно определять правильное имя переменной

Пример:

// Задание имени переменной

ОПРЕДЕЛИТЬ_ЗНАЧ ("А", 4)

ОПРЕДЕЛИТЬ_ЗНАЧ ("Б", 5 )

успех = ВЫРАЖЕНИЕ ( "А+Б", результат ) // успех = ДА , результат = 9

См.также
Функция ОПРЕДЕЛИТЬ


ОПРЕДЕЛИТЬ_СБРОС

Функция ОПРЕДЕЛИТЬ_СБРОС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОПРЕДЕЛИТЬ_СБРОС очищает список значений, заданных ранее с помощью функций ОПРЕДЕЛИТЬ и ОПРЕДЕЛИТЬ_ЗНАЧ.

Синтаксис:

ОПРЕДЕЛИТЬ_СБРОС

Пример:

// Задание имени переменной

ОПРЕДЕЛИТЬ_ЗНАЧ ("А", 4)

ОПРЕДЕЛИТЬ_ЗНАЧ ("Б", 5 )

успех = ВЫРАЖЕНИЕ ( "А+Б", результат ) // успех = ДА , результат = 9

ОПРЕДЕЛИТЬ_СБРОС

успех = ВЫРАЖЕНИЕ ( "А+Б", результат ) // успех = НЕТ

См.также
Функция ОПРЕДЕЛИТЬ
Функция ОПРЕДЕЛИТЬ_ЗНАЧ


ОСД

Функция ОСД

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСД вычисляет величину дебетового остатка счета на определенный момент времени.

Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.

Если дата не указана, остаток рассчитывается на конец отчетного периода.

Синтаксис:

ОСД[!] ( [<код счета>] [(<условие>)] [,<дата>[,<в дате>]] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<дата>
дата, определяющая день, на начало которого рассчитывается остаток счета.

<в дате>
номер операции, если надо посчитать остаток перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСД!, которая в такой ситуации будет просто возвращать 0.

Пример:

ост51 = ОСД ("51") // переменной ост51 присваивается значение,

// равное дебетовому остатку счета 51

// на конец отчетного периода

а15 = ОСД ("51", 01.04.99) // переменной а15 присваивается значение,

// равное дебетовому остатку

// счета 51 на 1 апреля 1999 года

ос3 = ОСД("01"(оснсредства.группа = 3))

// переменной ос3 присваивается значение

// равное дебетовому остатку счета "01" на дату

// конца отчетного периода по основным средствам

// 3-ей группы


ОСД_К

Функция ОСД_К

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСД_К вычисляет величину дебетового остатка счета на определенный момент времени, в количественном измерении.

Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.

Если дата не указана, остаток рассчитывается на конец отчетного периода.

Синтаксис:

ОСД_К[!] ( [<код счета>] [(<условие>)] [,<дата>[,<в дате>]] ),

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<дата>
дата, определяющая день, на начало которого рассчитывается остаток счета.

<в дате>
номер операции, если надо посчитать остаток перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСД_К!, которая в такой ситуации будет просто возвращать 0.

Пример:

колич1 = ОСД_К ("10/БАЛКИ")

колич2 = ОСД_К ("10/БАЛКИ", 15.04.99)


ОСД_ДОП

Функция ОСД_ДОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСД_ДОП вычисляет величину дебетового остатка счета на определенный момент времени, в дополнительных единицах.

Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.

Если дата не указана, остаток рассчитывается на конец отчетного периода.

Синтаксис:

ОСД_ДОП[!] ( [<код счета>] [(<условие>)] [,<дата>[,<в дате>]] ),

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<дата>
дата, определяющая день, на начало которого рассчитывается остаток счета.

<в дате>
номер операции, если надо посчитать остаток перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСД_ДОП!, которая в такой ситуации будет просто возвращать 0.

Пример:

колич1 = ОСД_ДОП ("10/БАЛКИ")

колич2 = ОСД_ДОП ("10/БАЛКИ", 15.04.99)


ОСД_НУ

Функция ОСД_НУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСД_НУ вычисляет величину дебетового остатка счета как единицы налогового учета на определенный момент времени. Она аналогична функции ОСД, только обрабатывает сумму налогового учета проводок.

Замечание!

Если статья налогового учета не указана (поле "Сумма учета" в проводке недоступно для изменения), то такая проводка в расчете оборотов не участвует.


ОСДН

Функция ОСДН

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСДН вычисляет величину дебетового остатка счета на начало отчетного периода.

Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.

Синтаксис:

ОСДН[!] ( [<код счета>] [(<условие>)] ),

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно ипользовать ОСДН!, которая в такой ситуации будет просто возвращать 0.

Пример:

ост51=ОСДН ("51") // переменной ост51 присваивается значение, равное

// дебетовому остатку счета 51 на начало отчетного периода


ОСДН_К

Функция ОСДН_К

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСДН_К вычисляет величину дебетового остатка счета на начало отчетного периода в количественном измерении.

Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.

Синтаксис:

ОСДН_К[!] ( [<код счета>] [(<условие>)] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСДН_К!, которая в такой ситуации будет просто возвращать 0.

Пример:

колич = ОСДН_К ("10/БАЛКИ")


ОСДН_ДОП

Функция ОСДН_ДОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСДН_ДОП вычисляет величину дебетового остатка счета на начало отчетного периода в дополнительных единицах.

Если код счета пропущен, выдается сумма дебетовых остатков всех балансовых счетов.

Синтаксис:

ОСДН_ДОП[!] ( [<код счета>] [(<условие>)] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСДН_ДОП!, которая в такой ситуации будет просто возвращать 0.

Пример:

колич = ОСДН_ДОП ("10/БАЛКИ")


ОСДН_НУ

Функция ОСДН_НУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСДН_НУ вычисляет величину дебетового остатка счета как единицы налогового учета на начало отчетного периода. Она аналогична функции ОСДН, только обрабатывает сумму налогового учета проводок.

Замечание!

Если статья налогового учета не указана (поле "Сумма учета" в проводке недоступно для изменения), то такая проводка в расчете оборотов не участвует.


ОСК

Функция ОСК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСК вычисляет величину кредитового остатка счета на определенный момент времени.

Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.

Если дата не указана, остаток рассчитывается на конец отчетного периода.

Синтаксис:

ОСК[!] ( [<код счета>] [(<условие>)] [,<дата>[,<в дате>]] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<дата>
дата, определяющая день, на начало которого рассчитывается остаток счета.

<в дате>
номер операции, если надо посчитать остаток перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСК!, которая в такой ситуации будет просто возвращать 0.

Пример:

ост85 = ОСК ("85") // переменной ост85 присваивается значение, равное

// кредитовому остатку счета 85 на конец отчетного периода

а15 = ОСК ("85", 05.04.99) // переменной а15 присваивается значение, равное

// кредитовому остатку счета 85 на 05 апреля 1999

ос3 = ОСК("02"(оснсредства.группа = 3))

// переменной ос3 присваивается значение

// равное кредитовому остатку счета "02" на дату

// конца отчетного периода по основным средствам

// 3-ей группы


ОСК_К

Функция ОСК_К

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСК_К вычисляет величину кредитового остатка счета на определенный момент времени в количественном измерении.

Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.

Если дата не указана, остаток рассчитывается на конец отчетного периода.

Синтаксис:

ОСК_К[!] ( [<код счета>] [(<условие>)] [,<дата>[,<в дате>]] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<дата>
дата, определяющая день, на начало которого рассчитывается остаток счета.

<в дате>
номер операции, если надо посчитать остаток перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСК_К!, которая в такой ситуации будет просто возвращать 0.

Пример:

колич1 = ОСК_К ("02/1/25/02")

колич2 = ОСК_К ("02/1/25/02", 15.04.99)


ОСК_ДОП

Функция ОСК_ДОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСК_ДОП вычисляет величину кредитового остатка счета на определенный момент времени в дополнительных единицах.

Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.

Если дата не указана, остаток рассчитывается на конец отчетного периода.

Синтаксис:

ОСК_ДОП[!] ( [<код счета>] [(<условие>)] [,<дата>[,<в дате>]] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

<дата>
дата, определяющая день, на начало которого рассчитывается остаток счета.

<в дате>
номер операции, если надо посчитать остаток перед началом конкретной бухгалтерской операции.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСК_ДОП!, которая в такой ситуации будет просто возвращать 0.

Пример:

колич1 = ОСК_ДОП ("02/1/25/02")

колич2 = ОСК_ДОП ("02/1/25/02", 15.04.99)


ОСК_НУ

Функция ОСК_НУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСK_НУ вычисляет величину кредитового остатка счета как единицы налогового учета на определенный момент времени. Она аналогична функции ОСК, только обрабатывает сумму налогового учета проводок.

Замечание!

Если статья налогового учета не указана (поле "Сумма учета" в проводке недоступно для изменения), то такая проводка в расчете оборотов не участвует.


ОСКН

Функция ОСКН

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСКН вычисляет величину кредитового остатка счета на начало отчетного периода.

Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.

Синтаксис:

ОСКН[!] ( [<код счета>] [(<условие>)] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСКН!, которая в такой ситуации будет просто возвращать 0.

Пример:

ост85 = ОСКН ("85") // переменной ост85 присваивается значение, равное

// кредитовому остатку счета 85 на начало отчетного периода


ОСКН_К

Функция ОСКН_К

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСКН_К вычисляет величину кредитового остатка счета на начало отчетного периода в количественном измерении.

Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.

Синтаксис:

ОСКН_К[!] ( [<код счета>] [(<условие>)] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСКН_К!, которая в такой ситуации будет просто возвращать 0.

Пример:

колич = ОСКН_К ("02/1/25/02")


ОСКН_ДОП

Функция ОСКН_ДОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСКН_ДОП вычисляет величину кредитового остатка счета на начало отчетного периода в дополнительных единицах.

Если код счета пропущен, выдается сумма кредитовых остатков всех балансовых счетов.

Синтаксис:

ОСКН_ДОП[!] ( [<код счета>] [(<условие>)] )

где

<код счета>
строка, соответствующая коду счета;

<условие>
выражение логического типа, содержащее поля справочников, определяющее произвольное условие на аналитические признаки счета.

Результат — число.

Замечание!

Функция выдает ошибку, если счет не существует. Можно использовать ОСКН_ДОП!, которая в такой ситуации будет просто возвращать 0.

Пример:

колич = ОСКН_ДОП ("02/1/25/02")


ОСКН_НУ

Функция ОСКН_НУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСKН_НУ вычисляет величину кредитового остатка счета как единицы налогового учета на начало отчетного периода. Она аналогична функции ОСКН, только обрабатывает сумму налогового учета проводок.

Замечание!

Если статья налогового учета не указана (поле "Сумма учета" в проводке недоступно для изменения), то такая проводка в расчете оборотов не участвует.


ОСТ

Функция ОСТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОСТ выдает остаток от деления двух целых чисел.

Синтаксис:

ОСТ (<число1>,<число2>)

где

<число1>
делимое

<число2>
делитель числа.

Результат — число.

Пример:

ост = ОСТ (5, 2) // переменной ост присваивается значение 1


ОТЛАДКА

Функция ОТЛАДКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОТЛАДКА выводит произвольную отладочную информацию в окно сообщений.

Синтаксис:

ОТЛАДКА ( <выражение> [,<выражение> [ ,... ]] ),

где
<выражение>
выражение произвольного типа.

Внимание!

Функция будет проигнорирована, если в настройках транслятора не включеня опция вывода отладки.

Пример:

ЦИКЛ ДЛЯ (и=1,12)

ОТЛАДКА ("и="+СТР(и))

КОНЕЦ_ЦИКЛА

См.также
Функция СЛЕДИТЬ
Встроенный отладчик


ОТМЕНИТЬ

Функция ОТМЕНИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОТМЕНИТЬ отменяет действия, выполненные в текущей транзaкции.

Синтаксис:

ОТМЕНИТЬ

Вне зависимости от использования этой функции, при успешном завершении работы алгоритма транзaкция подтверждается, а при прерывании работы алгоритма пользователем или по ошибке транзaкция отменяется.

Пример

накладные.ОЧИСТИТЬ(дата < ДАТА_НАЧ)

ОТМЕНИТЬ // Отменяет удаление записей

См.также
ПОДТВЕРДИТЬ


ОТПРАВИТЬ_ПИСЬМО

Функция ОТПРАВИТЬ_ПИСЬМО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОТПРАВИТЬ_ПИСЬМО отправляет письмо адресату. Функция вызывает почтовую программу, установленную на компьютере по умолчанию. Но если в настройках отправки почты указан режим отправки почты напрямую, письмо будет отправляться напрямую.

Синтаксис:

ОТПРАВИТЬ_ПИСЬМО ( <получатель>, <тема>, <текст письма> [, <файл>[, <файл>] [, ...]]])

где

<получатель>
электронный адрес получателя письма

<тема>
тема письма

<текст письма>
текст письма запроса (могут использоваться символы // для разделения строчек)

<файл>
один или несколько файлов могут быть вложены в письмо; в одном строковом параметре можно указать несколько файлов, отделяя их точкой с запятой.

Результат — логическое выражение. При успешном формировании письма возвращает ДА.

Пример:

{ Отправим тестовое письмо }

ОТПРАВИТЬ_ПИСЬМО ("tech@infop.ru", "Тестирую функцию", "Здравствуйте!////Это тестовое письмо. Вы можете не отвечать")

См.также
ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ
Функции для работы с Интернет
ДАННЫЕ_ДЛЯ_ПИСЬМА


ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ

Функция ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ отправляет письмо через почтовый сервер (в обход почтовых программ).

Синтаксис:

ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ ( <сервер> [:<порт>], <соединение>, <пользователь>, <пароль>,
<отправитель>, <получатель>, <тема>, <текст письма> [, <файл>[, <файл>] [, ...]]] [:<ошибки>])

где

<сервер>
адрес SMTP-сервера, например "smtp.mail.ru"

<порт>
необязательный параметр, номер порта, по умолчанию 25 для обычного соединения и STARTTLS и 465 для SSL/TLS

<соединение>
вариант соединения: 0 — обычное, 1 — STARTTLS, 2 — SSL/TLS;

<пользователь>, <пароль>
имя пользователя и его пароль для авторизации на сервере

<отправитель>
электронный адрес отправителя письма

<получатель>
электронный адрес получателя письма

<тема>
тема письма

<текст письма>
текст письма запроса

<файл>
один или несколько файлов могут быть вложены в письмо; в одном строковом параметре можно указать несколько файлов, отделяя их точкой с запятой

<ошибки>
строковая переменная, в которую помещается текст ошибки при невозможности отправить письмо.

Результат — логическое выражение. При успешном формировании письма возвращает ДА.

Текст письма можно задать обычным текстом. В этом случае могут использоваться символы // для разделения строчек. Также в качестве текста письма можно передать HTML-строку.

Пример:

{ Отправим тестовое письмо через почтовый ящик Yandex }

ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ ("smtp.yandex.ru", 2, "user", "password", "user@yandex.ru",

"tech@infop.ru", "Тестирую функцию", "Здравствуйте!////Это тестовое письмо. Вы можете не отвечать")

{ Отправим тестовое письмо через почтовый ящик Mail }

ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ ("smtp.mail.ru", 2, "user", "password", "user@mail.ru",

"tech@infop.ru", "Тестирую функцию", "Здравствуйте!////Это тестовое письмо. Вы можете не отвечать")

См.также
ОТПРАВИТЬ_ПИСЬМО
Функции для работы с Интернет


ОТЧ_МЕС

Свойство ОТЧ_МЕС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ОТЧ_МЕС возвращает номер отчетного месяца, установленного в списке отчетных форм.

Синтаксис:

ОТЧ_МЕС

Результат — число от 1 до 12. Если, например, в списке выбран Сентябрь, то ОТЧ_МЕС возвращает 9.

Функция используется в бланках отчетных документов (бланках документах, у которых в параметрах указана категория Отчетные документы) для получения текущего выбранного отчетного периода.

Пример:

м = ОТЧ_МЕС

См.также
Функция ОТЧ_ГОД
Функция СОХРАНИТЬ_ДОКУМЕНТ


ОТЧ_ГОД

Свойство ОТЧ_ГОД

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ОТЧ_ГОД возвращает год, который был выбран в списке отчетных форм.

Синтаксис:

ОТЧ_ГОД

Результат — число.

Функция используется в бланках отчетных документов (бланках документах, у которых в параметрах указана категория Отчетные документы) для получения текущего выбранного отчетного периода.

Пример:

г = ОТЧ_ГОД

См.также
Функция ОТЧ_МЕС
Функция СОХРАНИТЬ_ДОКУМЕНТ


ОШИБКА

Свойство ОШИБКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ОШИБКА внутри секций ЗАВЕРШЕНИЕ и ИСКЛЮЧЕНИЕ выдает текст ошибки в случае завершения работы алгоритма по ошибке. В случае присвоения значения, генерирует ошибку с указанным текстом.

Синтаксис:

ОШИБКА

Результат — строка

Пример 1:

ПОПЫТКА

и = 1 / 0

ИСКЛЮЧЕНИЕ

СООБЩЕНИЕ(ОШИБКА) // Выведет "Деление на ноль"

КОНЕЦ_ПОПЫТКИ

Пример 2:

ПОПЫТКА

и = 1 / 0

ИСКЛЮЧЕНИЕ

ОШИБКА = "Так делить нельзя" // Прекратит работу алгоритма с текстом ошибки "Так делить нельзя"

КОНЕЦ_ПОПЫТКИ

См. также
Ключевое слово ПОПЫТКА


ПАРАМЕТР_ЗАПУСКА

Функция ПАРАМЕТР_ЗАПУСКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПАРАМЕТР_ЗАПУСКА возвращает нужный параметр командной строки, с которым запущена программа. Это может быть как стандартный параметр, так и какой-нибудь свой.

Синтаксис (для счетов):

ПАРАМЕТР_ЗАПУСКА (<параметр>)

Где

<параметр>
строка, буква, которая соответствует параметру. При передачи пустой строки, возвращает путь подключения к базе данных.

Результат — строка.

Параметр может указываться в ярлыка запуска программы или при выполнении командного (bat) файла.

Пример:

// Предполагаем что программа запущена с параметром "-Xc:\temp"

ОТЛАДКА(ПАРАМЕТР_ЗАПУСКА("X")) // Функция вернет c:\temp


ПАРАМЕТРЫ

Свойство ПАРАМЕТРЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ПАРАМЕТРЫ позволяет управлять параметрами отчета из внутреннего языка

Синтаксис:

ПАРАМЕТРЫ [<параметр>]

При помощи этого ключевого слова можно как получать значения указанных параметров, так и задавать их. Возможны следующие значения параметров:

парВысотаРисунков | Задает высоту рисунков
парЕдиницы | Единицы измерения по-умолчанию
парЗакладкиПоПериодам | Управляет выводом закладок по периодам
парКоордКолонка | Показывать координатную колонку
парНомерКолонка | Показывать или нет колонку "N п/п"
парПоказВыкл | Показывать выключенные проводки
парПоказНазвСчетов | Показывать названия счетов
парПоказНедоступ | Показывать доступность записей
парПоказОтчПериод | Управляет доступом к настройке периода формирования отчета
парПоказСумДок | Показывать сумму документа
парПоказПольз | Показывать пользователя операции
парРавныеШирины | Столбцы внутри секции имеют одну ширину
парРаскрГоризГруппы | Способ раскрытия горизонтальных групп
парСтрочное | Управляет типом выбора: строка или ячейка
парФиксКолонки | Кол-во фиксированных колонок
парЯчейкаЕдиницы | Номер подъячейки для единиц измерения

См.также
Параметры отчета


ПАРАМЕТРЫ_ПЕЧАТИ

Функция ПАРАМЕТРЫ_ПЕЧАТИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПАРАМЕТРЫ_ПЕЧАТИ позволяет изменить для текущего бланка параметры печати.

Синтаксис:

ПАРАМЕТРЫ_ПЕЧАТИ ( <ширина>, <высота> [, <масштаб>] [, <принтер>] )

где

<ширина>, <высота>
размер бумаги, под которую формируется бланк (параметры Ширина, см и Высота, см в диалоге настройки печати);

<масштаб>
масштаб в процентах (параметр Масштаб, % в диалоге настройки печати), если не указывается, то масштаб не меняется;
<принтер>
принтер, который надо использовать при печати;

Если нужно задать масштаб, не меняя размер бумаги, в параметрах <ширина> и <высота> указывается 0 (ноль).

Пользователь может изменить параметры печати самостоятельно после окончательного расчета бланка. И тогда бланк распечатается с теми параметрами, которые указал пользователь. Пользователь может нажать кнопку сохранения настройки печати в окне предварительного просмотра. Настройки сохранятся и будут использованы при следующем запуске бланка. Но как только в алгоритме бланка будет вызвана функция ПАРАМЕТРЫ_ПЕЧАТИ, она сможет изменить эти настройки.

Пример:

ПАРАМЕТРЫ_ПЕЧАТИ (21, 29.7, 100)

См.также
Функция АЛЬТЕРНАТИВНАЯ_ПЕЧАТЬ
Свойство ПРИНТЕР


парВысотаРисунков

Параметр парВысотаРисунков

Параметры

 Вернуться к началу раздела

Описание:

Параметр парВысотаРисунков - задает высоту рисунков в отчетах. Используется вместе с атрибутом атЭтоРисунок. По умолчанию высота рисунков равна 10.

Пример.

ПАРАМЕТРЫ[парВысотаРисунков] = 10


парЕдиницы

Параметр парЕдиницы

Параметры

 Вернуться к началу раздела

Описание:

Параметр парЕдиницы - управляет единицей измерения по умолчанию (опция "Единицы измерения" в диалоге параметров)

Пример.

ПАРАМЕТРЫ[парЕдиницы] = "шт"


парКоордКолонка

Параметр парКоордКолонка

Параметры

 Вернуться к началу раздела

Описание:

Параметр парКоордКолонка - управляет выводом координатной колонки (опция "Показывать координатную колонку" в диалоге параметров)

Пример.

ПАРАМЕТРЫ[парКоордКолонка] = ДА


парЗакладкиПоПериодам

Параметр парЗакладкиПоПериодам

Параметры

 Вернуться к началу раздела

Описание:

Параметр парЗакладкиПоПериодам - управляет выводом закладок по периодам (опция Использовать закладки по периодам в диалоге параметров)

Внимание!

Закладки с помощью этого параметра могут быть только отключены. Включать их можно только в диалоге параметров.

Пример.

ПАРАМЕТРЫ[парЗакладкиПоПериодам] = НЕТ


парНомерКолонка

Параметр парНомерКолонка

Параметры

 Вернуться к началу раздела

Описание:

Параметр парНомерКолонка - управляет выводом колонки "N п/п" (с номером строки по порядку) (опция "Показывать колонку с номером п/п" в диалоге параметров)

Пример.

ПАРАМЕТРЫ[парНомерКолонка] = ДА


парПоказВыкл

Параметр парПоказВыкл

Параметры

 Вернуться к началу раздела

Описание:

Параметр парПоказВыкл - возвращает флаг учета выключенных проводок (в настройках программы)

Пример.

учитыв = ПАРАМЕТРЫ[парПоказВыкл] ИЛИ НЕ пров.выкл


парПоказНазвСчетов

Параметр парПоказНазвСчетов

Параметры

 Вернуться к началу раздела

Описание:

Параметр парПоказНазвСчетов - возвращает флаг вывода названия счетов (в настройках программы).

Пример.

ЕСЛИ ПАРАМЕТРЫ[парПоказНазвСчетов] ТО

ЯЧЕЙКА["Название",и] = НАЗВ(п.дебет)

КОНЕЦ_ЕСЛИ


парПоказНедоступ

Параметр парПоказНедоступ

Параметры

 Вернуться к началу раздела

Описание:

Параметр парПоказНедоступ - возвращает ДА, если включена функция Разрешить делать недоступными некоторые записи в параметрах базы.

Пример.

ЕСЛИ ПАРАМЕТРЫ[парПоказНедоступ] ТО

ЯЧЕЙКА["Недоступна",и] = о.недоступна

КОНЕЦ_ЕСЛИ


парПоказОтчПериод

Параметр парПоказОтчПериод

Параметры

 Вернуться к началу раздела

Описание:

Параметр парПоказОтчПериод - управляет доступом к настройке периода формирования отчета (опция "Открыть доступ к периоду отчета" в диалоге параметров). Если доступ есть, значит отчет формируется за какой-то заданный период и пользователь может его настраивать.

Пример.

ПАРАМЕТРЫ[парПоказОтчПериод] = ДА


парПоказСумДок

Параметр парПоказСумДок

Параметры

 Вернуться к началу раздела

Описание:

Параметр парПоказСумДок - возвращает флаг вывода суммы документа (в настройках программы).

Пример.

ЕСЛИ ПАРАМЕТРЫ[парПоказСумДок] ТО

ЯЧЕЙКА["Сумма",и] = о.сумма

КОНЕЦ_ЕСЛИ


парПоказПольз

Параметр парПоказПольз

Параметры

 Вернуться к началу раздела

Описание:

Параметр парПоказПольз - возвращает флаг вывода пользователя операции (в настройках программы).

Пример.

ЕСЛИ ПАРАМЕТРЫ[парПоказПольз] ТО

ЯЧЕЙКА["Создал",и] = о.пользователь

КОНЕЦ_ЕСЛИ


парРавныеШирины

Параметр парРавныеШирины

Параметры

 Вернуться к началу раздела

Описание:

Параметр парРавныеШирины - управляет режимом выравнивания ширин столбцов внутри одной секции (опция "Столбцы внутри секции имеют одну ширину" в диалоге параметров)

Пример.

ПАРАМЕТРЫ[парРавныеШирины] = ДА


парРаскрГоризГруппы

Параметр парРаскрГоризГруппы

Параметры

 Вернуться к началу раздела

Описание:

Параметр парРаскрГоризГруппы - управляет режимом раскрытия горизонтальных групп (опция Раскрывать гориз. группы вместо входа внутрь в диалоге параметров)

Пример.

ПАРАМЕТРЫ[парРаскрГоризГруппы] = ДА


парСтрочное

Параметр парСтрочное

Параметры

 Вернуться к началу раздела

Описание:

Параметр парСтрочное - управляет типом выбора: строка или ячейка (опция "Использовать строчное выделение" в диалоге параметров)

Пример.

ПАРАМЕТРЫ[парСтрочное] = ДА


парФиксКолонки

Параметр парФиксКолонки

Параметры

 Вернуться к началу раздела

Описание:

Параметр парФиксКолонки - управляет кол-вом колонок, которые программа выделяет цветом и фиксирует при печати (опция "Зафиксировать колонки слева" в диалоге параметров)

Пример.

ПАРАМЕТРЫ[парФиксКолонки] = 2

См.также
атФиксКолонки


парЯчейкаЕдиницы

Параметр парЯчейкаЕдиницы

Параметры

 Вернуться к началу раздела

Описание:

Параметр парЯчейкаЕдиницы - управляет номером подъячейки для отображения единиц измерения (опция "Только в подъчейках" в диалоге параметров).

Пример.

ПАРАМЕТРЫ[парЯчейкаЕдиницы] = 1


ПАУЗА

Свойство ПАУЗА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПАУЗА приостанавливает выполнение алгоритма на заданное количество миллисекунд.

Синтаксис:

ПАУЗА(<задержка> )

где

<задержка>
число, определяющее величину задержки в миллисекундах (1/1000 секунды);

Пример 1:

ПАУЗА(1000) // Задержит алгоритм на 1 секунду

См. также
Функция ВРЕМЯ_ТЕК


ПЕРЕНОС_ПРОВОДОК

Функция ПЕРЕНОС_ПРОВОДОК / ПЕРЕНОС_ПРОВОДОК_НУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Служебная функция ПЕРЕНОС_ПРОВОДОК делает перенос проводок:

·с одного счета на другой (в том числе с аналитиками)

·с одной статьи налогового учета на другую

·с одной записи журнала на другую запись,

как если бы Вы вызвали пункт меню «Операции | Перенос проводок». Функция чаще используется в алгоритмах преобразования данных (конверторах).

Синтаксис (для счетов):

ПЕРЕНОС_ПРОВОДОК (<исходный счет>,<конечный счет>)

Где

<исходный счет> и <конечный счет>
строки, соответствующие коду счета (если у счетов есть аналитики, то без их указания) — для переноса проводок со счета на счет. Если счета имеют аналитики, то они должны быть одинаковыми. Другой вариант: расширенный код счета конечного уровня (с указанием всех аналитик, если они есть) — для переноса с одного счета конечного уровня на другой. Функция завершается с ошибкой, если перенести проводки не удалось, например, когда проводки с исходным счетом редактируются другим пользователем и их изменение невозможно. Если у Вас нет доступа к операции переноса проводок, функция также выдаст ошибку. При использовании консолидированного учета перенос осуществляется только для текущей фирмы.

Синтаксис (для статей):

ПЕРЕНОС_ПРОВОДОК_НУ (<исходная статья>,<конечная статья>)

Где

<исходная статья> и <конечная статья>
строки, соответствующие коду статьи. Функция завершается с ошибкой, если заменить код статьи не удалось, например, когда проводки с исходной статьей редактируются другим пользователем и их изменение невозможно. Если у Вас нет доступа к операции переноса проводок, функция также выдаст ошибку. При использовании консолидированного учета перенос осуществляется только для текущей фирмы.

Синтаксис (для журналов):

ПЕРЕНОС_ПРОВОДОК (<исходная запись>,<конечная запись>)

Где

<исходная запись> и <конечная запись>
выражения типа ЖУРНАЛ, определяющие записи одного и того же журнала. В процессе выполнения функции произойдет замена ссылок на исходную запись ссылками на конечную запись во всех журналах, ссылающихся на этот журнал, включая замену аналитик в бухгалтерских проводках. Функция завершается с ошибкой, если заменить объект не удалось, например, когда операции с исходной записью редактируются другим пользователем и их изменение невозможно. Если у Вас нет доступа к операции переноса проводок, функция также выдаст ошибку.

Пример:

// Перенос проводок со счета на счет

ПЕРЕНОС_ПРОВОДОК("46","90")

// Перенос проводок со статьи на статью

ПЕРЕНОС_ПРОВОДОК_НУ("Д/Д/ВСП","Д/Д/ВТП")

// Замена операций с одной записью на другую

исх ЭТО товар

кон ЭТО товар

ВЫБОР_ЗАПИСИ(исх, "Заменить товар:")

ВЫБОР_ЗАПИСИ(кон, "На товар:")

ПЕРЕНОС_ПРОВОДОК(исх, кон)


ПЕРЕСЕЧЕНИЕ

Функция ПЕРЕСЕЧЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПЕРЕСЕЧЕНИЕ определяет, пересекаются ли два диапазона или нет. Работает для диапазона дат и для диапазона чисел.

Синтаксис:

ПЕРЕСЕЧЕНИЕ [(<датанач_1>,<датакон_1>,<датанач_2>,<датакон_2> [,<датанач_рез>,<датакон_рез>,])]

где

<датанач_1>,<датакон_1>
даты или числа, определяющие первый диапазон.

<датанач_2>,<датакон_2>
даты или числа, определяющие второй диапазон.

Если дата начала или дата конца диапазона не определена, передается значение ПУСТО.

Функция возвращает ДА, если диапазоны пересекаются и НЕТ, если не пересекаются.

Функция может вернуть диапазон, являющийся пересечением диапазонов. Для этого надо указать параметры-переменные <датанач_рез> и <датакон_рез>. Если функция возвращает НЕТ (диапазоны не пересекаются), переменные примут значение ПУСТО.

Пример:

пер = ПЕРЕСЕЧЕНИЕ(ДАТА_ТЕК,ДАТА_ТЕК,ДАТА_ТЕК,ДАТА_ТЕК) // пер = ДА

пер = ПЕРЕСЕЧЕНИЕ(01.01.2001,11.01.2002,10.05.2001,01.01.2003,а,б) // пер = ДА, а = 10.05.2001, б = 11.01.2002

пер = ПЕРЕСЕЧЕНИЕ(01.01.2001,ПУСТО,ПУСТО,01.01.2003,а,б) // пер = ДА, а = 01.01.2001, б = 01.01.2003

пер = ПЕРЕСЕЧЕНИЕ(01.01.2001,ПУСТО,01.01.2003,ПУСТО,а,б) // пер = ДА, а = 01.01.2003, б = ПУСТО

пер = ПЕРЕСЕЧЕНИЕ(01.01.2002,11.01.2002,10.05.2002,01.01.2003,а,б) // пер = НЕТ, а = ПУСТО, б = ПУСТО

пер = ПЕРЕСЕЧЕНИЕ(-1,1000,ПУСТО,3,а,б) // пер = ДА, а = -1, б = 3

См. также
Значения ПУСТО.


ПЕРЕСЕЧЕНИЕМ

Функция ПЕРЕСЕЧЕНИЕМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПЕРЕСЕЧЕНИЕМ сообщает, есть ли у двух массивов элементы с одинаковым индексом. Также, функция может вернуть все такие элементы в виде третьего массива.

Синтаксис:

ПЕРЕСЕЧЕНИЕМ (<массив1>, <массив1> [, <пересечение>])

где

<массив1>, <массив2>
исходные массивы;

<пересечение>
необязательный параметр, массив, в который будет помещены общие элементы;

Результат — логика, сообщает, есть ли пересечение.

При указании третьего аргумента <пересечение> он будет заполнен элементами, которые есть в обоих массивах. Значение элементов будут равны значениями из первого массива.

Пример 1:

м!1=1

м!2=2

н!2=2

н!3=3

пер=ПЕРЕСЕЧЕНИЕМ (м, н, результат) // «пер» будет равно ДА, а массив «результат» будет состоять из одного элемента р!2 = 2

Пример 2:

м!1=10

м!2=20

н!2=2

н!3=3

пер=ПЕРЕСЕЧЕНИЕМ (м, н, результат) // «пер» будет равно ДА, а массив «результат» будет состоять из одного элемента р!2 = 20

Пример 3:

м!1=1

м!2=2

н!3=3

н!4=4

пер=ПЕРЕСЕЧЕНИЕМ (м, н, результат) // «пер» будет равно НЕТ, а массив «результат» будет пустым

См.также
Функция ОБЪЕДИНЕНИЕМ


ОБЪЕДИНЕНИЕМ

Функция ОБЪЕДИНЕНИЕМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ОБЪЕДИНЕНИЕМ по двум массивам формирует третий, состоящий из всех элементов первого и второго массивов.

Синтаксис:

ОБЪЕДИНЕНИЕМ (<массив1>, <массив1>, <объединение>)

где

<массив1>, <массив2>
исходные массивы

<объединение>
массив, в который будет помещены

Результат — логика. Если <массив1> и <массив2> состоят из одних и тех же элементов, вернет ДА.

Если элемент есть в обоих массивах, то его значение будет взято из первого массива.

Пример 1:

м!1=1

м!2=2

н!2=2

н!3=3

ОБЪЕДИНЕНИЕМ (м, н, результат) // массив «результат» будет состоять из элементов р!1 = 1, р!2 = 2, р!3 = 3

Пример 2:

м!1=10

м!2=20

н!2=2

н!3=3

ОБЪЕДИНЕНИЕМ (м, н, результат) // массив «результат» будет состоять из элементов р!1 = 10, р!2 = 20, р!3 = 3

См.также
Функция ПЕРЕСЕЧЕНИЕМ


ПЕРИОД

Функция ПЕРИОД

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПЕРИОД возвращает название диапазона дат.

Синтаксис:

ПЕРИОД [(<датанач>,<датакон>)]

Функция смотрит, задает ли диапазон дат целый квартал, полугодие, 9 месяцев или год и если так, то возвращает соответствующую строку. Также, функция понимает, когда диапазон дат является:

·днем

·декадой

·месяцем

·кварталом

·годом

Во всех остальных случаях функция возвращает строку вида "от ... до ...". Как и везде в программе, дата конца периода должна быть следующей датой.

Если параметры <датанач> и <датакон> не заданы, то функция основывается на дате начала и конца периода отчета (от ДАТА_НАЧ до ДАТА_КОН).

Пример:

текст = ПЕРИОД(01.01.2002,11.01.2002) // текст = "I.01.2002", это декада

текст = ПЕРИОД(01.01.2002,01.02.2002) // текст = "01.2002", это месяц

текст = ПЕРИОД(01.04.2002,01.07.2002) // текст = "II кв.2002"

текст = ПЕРИОД(01.01.2002,01.07.2002) // текст = "полугодие 2002"

текст = "Оборотная ведомость за " + ПЕРИОД // выведет название отчетного периода

См. также
ПЕРИОД_НАЧ, ПЕРИОД_КОН


ПЕРИОД_КОН

Функция ПЕРИОД_КОН

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПЕРИОД_КОН возвращает дату конца периода по заданной детализации.

Синтаксис:

ПЕРИОД_КОН (<дата>,<детализация>)]

Функция на основе указанного параметра <детализация> определяет, в какой период попадает <дата>. Функция возвращает дату конца этого периода.

Пример:

дата_нач1 = ПЕРИОД_КОН(ДАТА_ТЕК, детГод)

дата_нач2 = ДАТА(1,1,ГОД + 1)

// дата_нач1 = дата_нач2

См. также
Функция ПЕРИОД_НАЧ


ПЕРИОД_НАЧ

Функция ПЕРИОД_НАЧ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПЕРИОД_НАЧ возвращает дату начала периода по заданной детализации.

Синтаксис:

ПЕРИОД_НАЧ (<дата>,<детализация>)]

Функция на основе указанного параметра <детализация> определяет, в какой период попадает <дата>. Функция возвращает дату начала этого периода.

Пример:

дата_нач1 = ПЕРИОД_НАЧ(ДАТА_ТЕК, детГод)

дата_нач2 = ДАТА(1,1,ГОД)

// дата_нач1 = дата_нач2

См. также
Функция ПЕРИОД_КОН


ПОДОБРАТЬ_ЗНАЧЕНИЯ

Функция ПОДОБРАТЬ_ЗНАЧЕНИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОДОБРАТЬ_ЗНАЧЕНИЯ вызывает диалог с двумя списками: списком возможных значений и списком подобранных значений. Для этого в функцию передаются два массива. С помощью кнопок перемещения можно перекидывать значения из одного списка в другой. Также окно может содержать кнопки <Вверх> и <Вниз>, с помощью которых можно переставлять местами элементы массива подобранных значений.

Синтаксис:

ПОДОБРАТЬ_ЗНАЧЕНИЯ ( <левый заголовок>, <правый заголовок>, <левый массив>, <правый массив>

[, <переставлять>] [, <ширина>] [, <высота>] )

где

<левый заголовок>
строка, содержащая заголовок списка возможных значений;

<правый заголовок>
строка, содержащая заголовок списка подобранных значений;

<левый массив>
массив строк, задающий список возможных значений;

<правый массив>
массив строк, задающий список подобранных значений;

<переставлять>
необязательный параметр, включающий возможность перестановки списка подобранных значений;

<ширина>, <высота>
необязательные параметры, позволяют указать ширину и высоту окна;

В случае <переставлять> = ДА если правый массив на входе имеет числовой индекс, начинающийся с 1-ы, то в случае перестановки строк массив будет содержать те же значения, но с другими индексами.

Замечание!

Также в случае <переставлять> = ДА правый массив может иметь не числовой индекс. При возврате из функции в случае перестановки элементов массив будет содержать те же значения с числовым индексом, начинающимся с 1-ы.

Результат — логика, определяется по тому, нажал ли пользователь кнопку <ОК> в диалоге.

Пример 1:

Ниже приведен пример, в котором при помощи функции ПОДОБРАТЬ_ЗНАЧЕНИЯ предлагается настроить список отображаемых колонок прайс-листа, а также их порядок следования. При выполнении функции на экране появится диалоговое окно:

Слева отображаются возможные категории цен, а справа — цены, которые показываются в прайс-листе. С помощью кнопок перемещения можно перебрасывать строки между левым и правым списком. Выделив в левом списке нужную цену (или несколько цен) и нажав кнопку <Вверх> их можно переместить вверх (а нажав кнопку <Вниз> переместить вниз). Таким образом можно настроить и порядок следования цен. По завершению настройки нажмите клавишу <Enter> или щелкните клавишей мыши по кнопке <OK>.

скрыть!1 = "Мелкооптовая"

скрыть!2 = "Оптовая"

показать!1 = "Розничная"

ПОДОБРАТЬ_ЗНАЧЕНИЯ("Категории цен:", "Показать в прайс-листе:", скрыть, показать)

ЦИКЛ ДЛЯ (и ИЗ скрыть)

ОТЛАДКА("Скрыты", скрыть!и)

КОНЕЦ_ЦИКЛА

ЦИКЛ ДЛЯ (и ИЗ показать)

ОТЛАДКА("Показываются", показать!и)

КОНЕЦ_ЦИКЛА

См.также
Функция ВЫБРАТЬ_ЗНАЧЕНИЕ
Функция НАСТРОИТЬ_ПОРЯДОК


ПОДПИСЬ_ДОБАВИТЬ

Функция ПОДПИСЬ_ДОБАВИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОДПИСЬ_ДОБАВИТЬ подписывает строку, используя указанный сертификат электронной подписи.

Синтаксис:

ПОДПИСЬ_ДОБАВИТЬ [!](<строка>,<сертификат> [:<тип задания>] [,<ошибка>])

где

<строка>
строка для подписи в кодировкe MIME;

<сертификат>
строка, определяющая нужный сертификат;
<тип задания>
необязательный параметр, указывающий на то, что указано в параметре <сертификат>;
<ошибка>
необязательный параметр, строковая переменная, в которую возвращается текст ошибки при неудаче;

Результат — подписанная строка (данные плюс подпись, а при указании восклицательного знака ! только подпись) в кодировкe MIME. Если подписать не удалось, возвращает пустую строку. Передав строковую переменную в параметре <ошибка> можно узнать причину, по которой это не удалось.

Сертификат определяется параметром <сертификат>. По умолчанию это отпечаток ключа, но сертификат можно определить и по другим параметрам: идентификатору, названию субъекта. Для этого после строки ставится двоеточие и тип задания сертификата.

Если в качестве сертификата передать пустую строку, появится диалог выбора сертификата и если пользователь выберет нужный сертификат, то функция использует его для подписи. Если пользователь откажется от выбора, функция вернет пустую строку.

Пример:

ф = ФАЙЛ_ОТКРЫТЬ(ВЫБОР_ФАЙЛА) // Выбрать и открыть файл для подписи

стр = ф.СЧИТАТЬ_ВСЕ // Считать содержимое файла в строку «стр»

стр = ДЕКОДИРОВАТЬ(КОДИРОВАТЬ(стр, WIN), MIME) // Перекодировать строку в кодировку «MIME»

стр = ПОДПИСЬ_ДОБАВИТЬ(стр, "") // Запросить у пользователя сертификат и подписать

стр = ДЕКОДИРОВАТЬ(КОДИРОВАТЬ(стр, MIME), WIN) // Перекодировать строку из кодировки «MIME»

ф_подп = ФАЙЛ_СОЗДАТЬ(ф.ФАЙЛ+".sign") // Создать новый файл для подписи

ф_подп.ЗАПИСАТЬ!(стр) // Записать результат

См. также
Функция ПОДПИСЬ_ПРОВЕРИТЬ
Функция ПОДПИСЬ_ШИФРОВАТЬ
Функция ПОДПИСЬ_РАСШИФРОВАТЬ
Функция ВЫБОР_СЕРТИФИКАТА
Функция СЕРТИФИКАТ_ИНФО
Функция СЕРТИФИКАТ_ПРОВЕРИТЬ


ПОДПИСЬ_ПРОВЕРИТЬ

Функция ПОДПИСЬ_ПРОВЕРИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОДПИСЬ_ПРОВЕРИТЬ проверяет подписанную ранее строку.

Синтаксис:

ПОДПИСЬ_ПРОВЕРИТЬ (<строка> [,<ошибка>])

где

<строка>
подписанная ранее строка в кодировкe MIME;

<ошибка>
необязательный параметр, строковая переменная, в которую возвращается текст ошибки при неудаче;

Результат — исходная строка в кодировкe MIME. Если проверить не удалось, возвращает пустую строку. Передав строковую переменную в параметре <ошибка> можно узнать причину, по которой это не удалось.

Пример:

ф = ФАЙЛ_ОТКРЫТЬ(ВЫБОР_ФАЙЛА) // Выбрать и открыть файл с подписанной строкой

стр = ф.СЧИТАТЬ_ВСЕ // Считать содержимое файла в строку «стр»

стр = ДЕКОДИРОВАТЬ(КОДИРОВАТЬ(стр, WIN), MIME) // Перекодировать строку в кодировку «MIME»

стр = ПОДПИСЬ_ПРОВЕРИТЬ(стр, ошибка) // Проверить

ЕСЛИ стр = "" ТО // Вывести сообщение об ошибке, если проверить не удалось

СООБЩЕНИЕ(ошибка)

КОНЕЦ_ЕСЛИ(стр)

См. также
Функция ПОДПИСЬ_ДОБАВИТЬ
Функция ПОДПИСЬ_ШИФРОВАТЬ
Функция ПОДПИСЬ_РАСШИФРОВАТЬ
Функция ВЫБОР_СЕРТИФИКАТА
Функция СЕРТИФИКАТ_ИНФО
Функция СЕРТИФИКАТ_ПРОВЕРИТЬ


ПОДПИСЬ_ШИФРОВАТЬ

Функция ПОДПИСЬ_ШИФРОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОДПИСЬ_ШИФРОВАТЬ шифрует строку, используя указанный сертификат электронной подписи.

Синтаксис:

ПОДПИСЬ_ШИФРОВАТЬ (<строка>,<сертификат> [:<тип задания>] [,<ошибка>])

где

<строка>
строка для подписи в кодировкe MIME;

<сертификат>
строка, определяющая нужный сертификат;
<тип задания>
необязательный параметр, указывающий на то, что указано в параметре <сертификат>;
<ошибка>
необязательный параметр, строковая переменная, в которую возвращается текст ошибки при неудаче;

Результат — зашифрованная строка в кодировкe MIME. Если зашифровать не удалось, возвращает пустую строку. Передав строковую переменную в параметре <ошибка> можно узнать причину, по которой это не удалось.

Сертификат определяется параметром <сертификат>. По умолчанию это отпечаток ключа, но сертификат можно определить и по другим параметрам: идентификатору, названию субъекта. Для этого после строки ставится двоеточие и тип задания сертификата.

Если в качестве сертификата передать пустую строку, появится диалог выбора сертификата и если пользователь выберет нужный сертификат, то функция использует его для подписи. Если пользователь откажется от выбора, функция вернет пустую строку.

Пример:

ф = ФАЙЛ_ОТКРЫТЬ(ВЫБОР_ФАЙЛА) // Выбрать и открыть файл для шифрации

стр = ф.СЧИТАТЬ_ВСЕ // Считать содержимое файла в строку «стр»

стр = ДЕКОДИРОВАТЬ(КОДИРОВАТЬ(стр, WIN), MIME) // Перекодировать строку в кодировку «MIME»

стр = ПОДПИСЬ_ШИФРОВАТЬ(стр, "") // Запросить у пользователя сертификат и зашифровать

стр = ДЕКОДИРОВАТЬ(КОДИРОВАТЬ(стр, MIME), WIN) // Перекодировать строку из кодировки «MIME»

ф_подп = ФАЙЛ_СОЗДАТЬ(ф.ФАЙЛ+".encoding") // Создать новый файл с зашифрованными данными

ф_подп.ЗАПИСАТЬ!(стр) // Записать результат

См. также
Функция ПОДПИСЬ_ДОБАВИТЬ
Функция ПОДПИСЬ_ПРОВЕРИТЬ
Функция ПОДПИСЬ_РАСШИФРОВАТЬ
Функция ВЫБОР_СЕРТИФИКАТА
Функция СЕРТИФИКАТ_ИНФО
Функция СЕРТИФИКАТ_ПРОВЕРИТЬ


ПОДПИСЬ_РАСШИФРОВАТЬ

Функция ПОДПИСЬ_РАСШИФРОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОДПИСЬ_РАСШИФРОВАТЬ расшифровывает строку, используя указанный сертификат электронной подписи.

Синтаксис:

ПОДПИСЬ_РАСШИФРОВАТЬ (<строка>,<сертификат> [:<тип задания>] [,<ошибка>])

где

<строка>
строка для подписи в кодировкe MIME;

<сертификат>
строка, определяющая нужный сертификат;
<тип задания>
необязательный параметр, указывающий на то, что указано в параметре <сертификат>;
<ошибка>
необязательный параметр, строковая переменная, в которую возвращается текст ошибки при неудаче;

Результат — расшифрованная строка в кодировкe MIME. Если расшифровать не удалось, возвращает пустую строку. Передав строковую переменную в параметре <ошибка> можно узнать причину, по которой это не удалось.

Сертификат определяется параметром <сертификат>. По умолчанию это отпечаток ключа, но сертификат можно определить и по другим параметрам: идентификатору, названию субъекта. Для этого после строки ставится двоеточие и тип задания сертификата.

Если в качестве сертификата передать пустую строку, появится диалог выбора сертификата и если пользователь выберет нужный сертификат, то функция использует его для подписи. Если пользователь откажется от выбора, функция вернет пустую строку.

Пример:

ф = ФАЙЛ_ОТКРЫТЬ(ВЫБОР_ФАЙЛА) // Выбрать и открыть файл для расшифровки

стр = ф.СЧИТАТЬ_ВСЕ // Считать содержимое файла в строку «стр»

стр = ДЕКОДИРОВАТЬ(КОДИРОВАТЬ(стр, WIN), MIME) // Перекодировать строку в кодировку «MIME»

стр = ПОДПИСЬ_РАСШИФРОВАТЬ(стр, "") // Запросить у пользователя сертификат и расшифровать

стр = ДЕКОДИРОВАТЬ(КОДИРОВАТЬ(стр, MIME), WIN) // Перекодировать строку из кодировки «MIME»

ОТЛАДКА(стр) // Вывести в окно сообщений

См. также
Функция ПОДПИСЬ_ДОБАВИТЬ
Функция ПОДПИСЬ_ПРОВЕРИТЬ
Функция ПОДПИСЬ_ШИФРОВАТЬ
Функция ВЫБОР_СЕРТИФИКАТА
Функция СЕРТИФИКАТ_ИНФО
Функция СЕРТИФИКАТ_ПРОВЕРИТЬ


ПОДСТР

Функция ПОДСТР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОДСТР выделяет подстроку из строки.

Синтаксис:

ПОДСТР (<строка> ,<нач. позиция> [,<длина>] ),

где

<строка>
исходная строка;

<нач. позиция>
начальная позиция подстроки в исходной строке;

<длина>
длина выделяемой подстроки.

Результат — строка.

Начальная позиция <нач. позиция> начинается с 1 (единицы). Если <нач. позиция> отрицательная, возвращаемая подстрока начинается с позиции, отстоящей на <нач. позиция> символов от конца строки.

Если параметр <длина> не указан, то выделяется подстрока от начальной позиции до конца исходной строки. Параметр <длина> тоже может быть отрицательным, тогда будет отброшено указанное этим аргументом число символов с конца строки.

Пример:

стр1 = ПОДСТР ("12345678", 5) // стр1 = "5678"

стр2 = ПОДСТР ("12345678", 5, 2) // стр2 = "56"

стр3 = ПОДСТР ("12345678", -3) // стр3 = "678"

стр4 = ПОДСТР ("12345678", -3, 1) // стр4 = "6"

стр5 = ПОДСТР ("12345678", 5, -1) // стр5 = "567"

стр6 = ПОДСТР ("12345678", -3, -1) // стр6 = "67"

См. также
Функция УДАЛ


ПОДСЧ

Функция ПОДСЧ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОДСЧ выделяет подсчет (подстатью) заданного уровня из полного кода счета (статьи).

Синтаксис:

ПОДСЧ (<код счета>, [, <уровень>] ),

где

<код счета>
полный код счета, в котором коды субсчетов отделяются символами "/";

<уровень>
выражение числового типа, задающее уровень; если он не указан, то выдается подсчет последнего уровня

Результат — строка.

Уровень начинается с 1 (единицы).

Пример:

суб_сч = "10/01/03"

сч_1 = ПОДСЧ (суб_сч,1) // переменной сч_1 присваивается строка "10"

сч_2 = ПОДСЧ (суб_сч,2) // переменной сч_2 - "01"

сч_3 = ПОДСЧ (суб_сч,3) // переменной сч_3 - "03"

сч_посл = ПОДСЧ (суб_сч) // переменной сч_3 - "03"

См. также
Функция ВЕРХСЧ


ПОДТВЕРДИТЬ

Функция ПОДТВЕРДИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функции ПОДТВЕРДИТЬ подтверждает действия, выполненные в текущей транзaкции.

Синтаксис:

ПОДТВЕРДИТЬ

Вызов функции не является необходимым. При успешном завершении работы алгоритма транзaкция подтверждается, а при прерывании работы алгоритма пользователем или по ошибке транзaкция отменяется.

Применение функции

В отличие от большинства функций, функции запуска алгоритмов СТАРТ_... (такие как СТАРТ_ЖУРНАЛ, СТАРТ_БЛАНК и др.) стартуют в отдельной транзaкции. Поэтому изменения, выполненные в текущем алгоритме, им будут не видны. Вызов функции ПОДТВЕРДИТЬ исправляет эту ситуацию.

Пример

накладные.ОЧИСТИТЬ(дата < ДАТА_НАЧ)

ПОДТВЕРДИТЬ

СТАРТ_ЖУРНАЛ(накладные)

См.также
ОТМЕНИТЬ


ПОЗ

Функция ПОЗ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОЗ ищет подстроку в строке и возвращает ее позицию. Если подстрока в строке не найдена, то функция возвращает нуль.

Синтаксис:

ПОЗ (<подстрока>, <строка> [, <разделители слева> [, <разделители справа>]] [, <начинать>]),

где

<подстрока>, <строка>
выражения строкового типа.

Результат — число.

При необходимости можно указать список символов, которые допускаются слева и справа от искомой строки. Это указывается в параметрах <разделители слева> и <разделители справа>. Если параметр <разделители справа> не задан, он полагается равным параметру <разделители слева>.

Также, при необходимости, можно указать параметр <начинать>, чтобы поиск шёл не с начала строки, а с заданной позиции. Возможна и любая комбинация параметров поиска, указание как разделителей (одного или двух), так и начальной позиции, в любом порядке.

Пример:

поз = ПОЗ ("ГОСТ", "Балки ГОСТ 76443-3456") // поз = 7

поз = ПОЗ ("ПОД", "ПОДСТРОКА;ПОДКОВА;ПОДАРОК;ПОД",";") // поз = 27

поз = ПОЗ ("ГОСТ", "Балки ГОСТ 76443-3456", 8) // поз = 0

См. также
Функция ПОДСТР
Функция ПОЗ_ОБР


ПОЗ_ОБР

Функция ПОЗ_ОБР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОЗ_ОБР ищет подстроку в строке и возвращает ее позицию. Если подстрока в строке не найдена, то функция возвращает нуль. Поиск происходит с конца строки.

Синтаксис:

ПОЗ_ОБР (<подстрока>, <строка> [, <разделители слева> [, <разделители справа>]] [, <позиция>]),

где

<подстрока>, <строка>
выражения строкового типа.

Результат — число.

При необходимости можно указать список символов, которые допускаются слева и справа от искомой строки. Это указывается в параметрах <разделители слева> и <разделители справа>. Если параметр <разделители справа> не задан, он полагается равным параметру <разделители слева>.

Также, при необходимости, можно указать параметр <позиция>, чтобы поиск шёл не с конца строки, а с указанной позиции. Если подстрока будет найдена, то она будет лежать в пределах указанного параметра <позиция> (т.е. и начинаться слева от позиции и заканчиваться слева от позиции, конец строки за позицию уходить не будет). Возможна и любая комбинация параметров поиска, указание как разделителей (одного или двух), так и позиции, в любом порядке.

Пример:

поз = ПОЗ_ОБР ("ГОСТ", "Балки ГОСТ 76443-3456") // поз = 7

поз = ПОЗ_ОБР ("ПОД", "ПОДСТРОКА;ПОДКОВА;ПОДАРОК;ПОД") // поз = 27

поз = ПОЗ_ОБР ("ПОД", "ПОДСТРОКА;ПОДКОВА;ПОДАРОК;ПОД",";") // поз = 27

поз = ПОЗ_ОБР ("ГОСТ", "Балки ГОСТ 76443-3456", 8) // поз = 0

См. также
Функция ПОДСТР
Функция ПОЗ


ПОЛЬЗОВАТЕЛЬ

Функция ПОЛЬЗОВАТЕЛЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОЛЬЗОВАТЕЛЬ возвращает имя (идентификатор) пользователя, работающего с программой. Это имя вводится при входе в программу и определяет под собой определенные права, настройку меню и функций журналов. Тип результата — строка.

Синтаксис:

ПОЛЬЗОВАТЕЛЬ

Результат — строка.

Пример:

ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "Администратор" ТО

ж ЭТО накладные

ЕСЛИ НЕ ж.ОЧИСТИТЬ! ТО СТОП КОНЕЦ_ЕСЛИ

ж.ИМПОРТ("BACKUP\old_ver.jrn")

КОНЕЦ_ЕСЛИ

См. также
Функция КОМПЬЮТЕР


ПОРЯДОК_АНАЛИТИК

Функция ПОРЯДОК_АНАЛИТИК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОРЯДОК_АНАЛИТИК переставляет аналитики счета.

Синтаксис:

ПОРЯДОК_АНАЛИТИК(<счет>, <аналитика1> [...,<аналитика2>])

где

<счет>
строка, соответствующая коду счета в плане счетов или нескольким счетам, перечисленным через точку с запятой

<аналитикаN>
идентификатор журнала или объект ЖУРНАЛ

Функция ПОРЯДОК_АНАЛИТИК изменяет порядок следования аналитик у счета. Информация о перестановке аналитик запоминается до момента завершения текущей транзaкции. Во всех открытых окнах расширенные коды счетов будут отображаться в этом порядке.

Пример:

ПОРЯДОК_АНАЛИТИК("10", склады, товары)

ЦИКЛ ОБОРОТЫ(сч = "10/*")

ОТЛАДКА(сч)

КОНЕЦ_ЦИКЛА


ПОСЛАТЬ_СОБЫТИЕ

Функция ПОСЛАТЬ_СОБЫТИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОСЛАТЬ_СОБЫТИЕ принудительно посылает внешнее событие. После вызова этой функции сработает обработчик внешнего события.

Синтаксис:

ПОСЛАТЬ_СОБЫТИЕ (<источник>, <событие>, <данные> [ , <таймаут> ] )

где

<источник>, <событие>, <данные>
параметры строкового типа, с которыми будет вызван обработчик внешнего события.

<таймаут>
задержка вызова события в миллисекундах, по умолчанию 0.

Обработчик внешнего события не будет вызван сразу в момент выполнения функции ПОСЛАТЬ_СОБЫТИЕ даже если указать <таймаут> = 0. Обработчик будет вызван после окончания работы алгоритма или в момент вызова интерфейсных функций (т.е. диалогов СООБЩЕНИЕ, ВОПРОС, ВЫБОР и т.д.).

При нескольких вызовах функции с одинаковым значением <таймаут> обработчик сначала вызовется для события, вызванного первым вызовом функции, потом вторым и т.д.

Пример:

ПОСЛАТЬ_СОБЫТИЕ ("test", "", "")

См. также
Обработчик внешнего события
Функция ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ
Функция УДАЛИТЬ_СОБЫТИЯ


ПОСЛАТЬ_УВЕДОМЛЕНИЕ

Функция ПОСЛАТЬ_УВЕДОМЛЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОСЛАТЬ_УВЕДОМЛЕНИЕ посылает уведомление в Центр уведомлений Windows (начиная с Windows 10 и в усеченном виде в Windows 8).

Синтаксис:

ПОСЛАТЬ_УВЕДОМЛЕНИЕ (<идентификатор>, <текст> )

где

<идентификатор>
строка, задающая идентификатор уведомления.

<текст>
строка, определяющая уведомление.

Есть два способа задать текст уведомления. Текстом может быть:

·Простая строка. При этом строка может содержать "|" (вертикальную строку), отделяющую заголовок и текст уведомления

·Строка XML. Структура строки XML, определяющей уведомление, описана в документации по Windows.

Уведомление, заданное строкой XML, может содержать не только различный текст и картинки, но и элементы управления: кнопки, меню, списки и т.д. Пользователь, совершая действия, например нажимая кнопку на уведомлении, будет инициировать вызов обработчика Внешнее событие (если программа в этот момент еще работает). При этом:

·источник = "Toast" (идентифицирует, что внешнее событие от действия в Центре уведомлений Windows)

·событие = <идентификатор>

·данные = параметры, описываются в строке XML

Если программа завершит работу до того, как пользователь сделает какое-либо действие, событие не придет.

Пример 1:

// Выдает простейшее текстовое уведомление. Работает на всех версиях Windows, поддерживающих уведомления

ПОСЛАТЬ_УВЕДОМЛЕНИЕ ("test", "Привет!|Это уведомление из Инфо-Предприятия")

Пример 2:

// Выдает текстовое уведомление. Когда пользователь нажмет на него сработает обработчик внешнего события

// с параметром "это текст для внешнего события". Данный пример будет работать в Windows 10

ПОСЛАТЬ_УВЕДОМЛЕНИЕ ("test",

"<toast launch=""это текст для внешнего события"">" + // Атрибут launch содержит строку, которая передается в обработчик внешнего события

" <visual>" +

" <binding template=""ToastGeneric"">" +

" <text>Привет!</text>" +

" <text>Это уведомление из Инфо-Предприятия</text>" +

" </binding>" +

" </visual>" +

"</toast>")

Пример 3:

// Выдает текстовое уведомление. Когда пользователь нажмет на него сработает обработчик внешнего события

// с параметром "это текст для внешнего события". Данный пример будет работать в Windows 8 и Windows Server 2012

ПОСЛАТЬ_УВЕДОМЛЕНИЕ ("test",

"<toast launch=""это текст для внешнего события"">" + // Атрибут launch содержит строку, которая передается в обработчик внешнего события

" <visual>" +

" <binding template=""ToastText02"">" +

" <text id=""1"">Привет!</text>" +

" <text id=""2"">Это уведомление из Инфо-Предприятия</text>" +

" </binding>" +

" </visual>" +

"</toast>")

Пример 4:

// Уведомление с кнопками, списком. Нажатие первой кнопки выполняет предустановленное действие, второй

// открывает интернет-браузер, третья шлет уведомление в программу. Данный пример будет работать в Windows 10

ПОСЛАТЬ_УВЕДОМЛЕНИЕ ("test",

"<toast scenario=""reminder"">" +

" <visual>" +

" <binding template=""ToastGeneric"">" +

" <text>Напоминание о встрече</text>" +

" <text>ООО Одуванчик, Петр Семенович</text>" +

" <text>Позвонить по поводу аренды и договориться о встрече</text>" +

" </binding>" +

" </visual>" +

" <actions>" +

" <input id=""snoozeTime"" type=""selection"" defaultInput=""15"">" +

" <selection id=""1"" content=""1 минуту""/>" +

" <selection id=""15"" content=""15 минут""/>" +

" <selection id=""60"" content=""1 час""/>" +

" <selection id=""240"" content=""4 часа""/>" +

" <selection id=""1440"" content=""1 день""/>" +

" </input>" +

" <action activationType=""system"" arguments=""snooze"" hint-inputId=""snoozeTime"" content="""" />" +

" <action content=""Сделано!"" activationType=""protocol"" arguments=""http://www.google.com"" />" +

" <action content=""Отменено!"" activationType=""background"" hint-inputId=""tbCancel"" arguments=""отмена"" />" +

" </actions>" +

"</toast>")

См. также
Обработчик внешнего события
Функция УДАЛИТЬ_УВЕДОМЛЕНИЕ
Функция ЕСТЬ_УВЕДОМЛЕНИЕ


ПОСЛЕДНЯЯ_ЗАКЛАДКА

Свойство ПОСЛЕДНЯЯ_ЗАКЛАДКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ПОСЛЕДНЯЯ_ЗАКЛАДКА доступна в диалогах запущенных с помощью МАСТЕР. С помощью нее можно и узнать общее число закладок в мастере в секциях СЛЕДУЮЩАЯ и ПРЕДЫДУЩАЯ, и установить последнюю закладку принудительно. Последняя закладка вместо "Далее >" содержит кнопку "Готово".

Синтаксис:

ПОСЛЕДНЯЯ_ЗАКЛАДКА

Результат — число.

Пример:

// Секция СЛЕДУЮЩАЯ в диалоге, запущенном с помощью МАСТЕР

СЛЕДУЮЩАЯ

// В зависимости от условия, число шагов в мастере будет разным

ЕСЛИ выбор = 2 ТО

ПОСЛЕДНЯЯ_ЗАКЛАДКА = 3

ИНАЧЕ

ПОСЛЕДНЯЯ_ЗАКЛАДКА = 5

КОНЕЦ_ЕСЛИ

// ......

См.также
Свойство ЗАКЛАДКА


ПОХОЖЕСТЬ

Функция ПОХОЖЕСТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПОХОЖЕСТЬ определяет насколько одна строка похожа на другую.

Синтаксис:

ПОХОЖЕСТЬ (<строка 1> ,<строка 2> ),

где

<строка 1>, <строка 2>
сравниваемые строки;

Результат — число, определяющее расстояние Левенштейна между строками. Чем оно больше, тем больше различий.

Пример:

схожесть = ПОХОЖЕСТЬ ("Бензонасос", "Ручной насос") // схожесть = 6


ПРАЗДНИК

Функция ПРАЗДНИК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПРАЗДНИК проверяет, является ли указанная дата праздником.

Синтаксис:

ПРАЗДНИК ( <дата> )

где

<дата>
день, который надо проверить

Результат — логика. Для правильной работы функции необходимо настроить праздничные дни в программе.

Как настроить праздничные дни в программе

Для этого необходимо создать функцию, которая возвращает для заданного года строку, состоящую из перечня дат через точку с запятой, например:

ФУНКЦИЯ СТРОКА: НерабочиеДни(ЧИСЛО: год)
РЕЗУЛЬТАТ = ЗАМ("01.01.*;08.03.*", "*", СТР(год))
КОНЕЦ_ФУНКЦИИ

Далее в специальной таблице системных обработчиков IP$COMMONEVENTS надо добавить запись с вызовом этой функции:

ID = 0
COMMAND = ["library"].НерабочиеДни

Здесь ID = 0 определяет номер записи в этой таблице, для функции вызываемой для получения праздников, номер равен нулю. Далее COMMAND = ["library"].НерабочиеДни содержит ссылку на созданную функцию, находящуюся в библиотеке "library".

Пример:

ЕСЛИ ПРАЗДНИК(ДАТА_ТЕК) ТО

СООБЩЕНИЕ("Поздравляем")

КОНЕЦ_ЕСЛИ


ПРИНТЕР

Свойство ПРИНТЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ПРИНТЕР позволяет узнать или изменить текущий выбранный для печати принтер.

Синтаксис:

ПРИНТЕР = <путь к принтеру>

где

<путь к принтеру>
строка, задающая новый путь к текущему принтеру.

или

<путь к принтеру> = ПРИНТЕР

где

<путь к принтеру>
переменная, которой присваивается значение текущего выранного принтера.

Пример:

ПРИНТЕР = "\\COMPUTER\HP Laser Jet 2000"

// Печатаем накладную на сетевом принтере "HP Laser Jet 2000" с компьютера "COMPUTER"

СТАРТ_БЛАНК("NAKLADN.frm",ДА)

ПРИНТЕР = "Godex EZ-1100 Plus"

// Печатаем этикетки на специализированном принтере этикеток,

СТАРТ_БЛАНК("ETIKETKI.frm",ДА)

См.также
Функция ПАРАМЕТРЫ_ПЕЧАТИ


ПРОВОДКА

Функция ПРОВОДКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПРОВОДКА применяется для записи в базу данных программы новой бухгалтерской операции (проводки).

Синтаксис:

ПРОВОДКА ( <счет дебета>, <счет кредита>, <сумма>

[,<количество>] [,<доп.показатель>] [,<вкл>] [,<номер документа>] [,<дата>]

[,<содержание 1> [,<содержание 2>]][<связь>:<вид>] )

где

<счет дебета>, <счет кредита>
строка, соответствующая коду счета в плане счетов или расширенный код счета;

<сумма>, <количество>, <доп.показатель>
выражения числового типа, определяющие сумму проводки, количество для количественно-суммовой проводки и доп.показатель при использовании дополнительных единиц;

<вкл>
выражение типа логика, для добавления выключенной проводки (<вкл> = НЕТ)

<номер документа>
выражение строкового типа;

<дата>
выражение типа дата;

<содержание 1>, <содержание 2>
выражения строкового типа, определяющие содержание операции.

<связь>
переменная типа ЖУРНАЛ, означающая, что проводки связаны с заданной записью журнала.

<вид>
вид журнала для <связь>

Коды счетов дебета и кредита должны быть конечного уровня и содержать указание на все аналитические признаки этих счетов. Если это не так, счет конеченого уровня и недостающие аналитики будут запрошены у пользователя. Для того чтобы делать проводки без указания аналитик счетов, можно воспользоваться функцией ПРОВОДКАГР.

Если не указан номер документа, то в графу "Документ" заносится сокращенное наименование бланка (первые буквы слов) и значение поля НОМЕР бланка. По умолчанию для типовой операции графа остается пустой.

Если дата не указана, принимается текущая дата.

Если опущено содержание, то в графу "Содержание операции" заносится наименование бланка или типовой операции.

При использовании параметра <связь> объектная переменная типа ЖУРНАЛ должна быть существующей записью в журнале. Только одна запись журнала может соответствовать бухгалтерской операции и только одна бухгалтерская операция соответствовать записи журнала. Если журнал имеет несколько видов, текущий используемый вид программа запомнит и будет использовать при редактировании связанной операции из журнала бухгалтерских операций. Вид можно указать как при помощи параметра <вид>, так и вызвав метод ПРИМЕНИТЬ_ВИД для связываемой записи.

Последующие (в пределах текущего расчета) проводки добавляются к бухгалтерской операции, сформированной вместе с первой проводкой. Новая бухгалтерская операция формируется, если у очередной проводки дата, номер рабочего места или номер документа отличается от предыдущей проводки, а также при использовании функции ЗАП_ОПЕР.

Для округления суммы или количества можно использовать функцию ОКРУГЛЕНИЕ. Если округление не было предварительно задано, то сумма округляется до целого или до двух знаков после запятой, в зависимости от признака "Копейки" на закладке Отчеты меню «Установка | Настройки».

Пример:

ПРОВОДКА ("51", "50", 1000)

субсч = "01"

сумма = 2000

ЕСЛИ субсч="01" ТО

ФИО="Иванову И.И."

ИНАЧЕ

ЕСЛИ субсч="02" ТО

ФИО="Степанову С.С"

ИНАЧЕ

ФИО="Петрову П.П"

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

ПРОВОДКА ( "71/"+субсч, "50", сумма, ДАТА_ТЕК, "В подотчет " + ФИО )

Замечание!

Возможно использование функции ПРОВОДКА! (с восклицательным знаком). При использовании аналитических признаков это отключает проверку существования аналитик. Такой вариант работает быстрее, однако использовать его можно только если гарантировано все аналитики существуют!

См.также
Настройка связи в журналах аналитики
Функция ПРОВОДКАГР
Функция РАБОЧИЕ_ОБЪЕКТЫ


ПРОВОДКА_НУ

Функция ПРОВОДКА_НУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПРОВОДКА_НУ применяется для добавления новой налоговой проводки. Однако, так как налоговые проводки программа делает автоматически на основе установок корректных проводок, то функция фактически используется только для изменения суммы или статьи учета проводки, сформированной при помощи ПРОВОДКА.

Синтаксис:

ПРОВОДКА_НУ ( [<статья учета>] [,<сумма учета>] )

где

<статья учета>
строка, соответствующая коду статьи учета;

<сумма>
выражения числового типа;

Функция может вызываться только после вызова функции ПРОВОДКА, а значения статьи и суммы относятся к последнему вызову этой функции.

Проводка может содержать новую сумму налоговой проводки, новую статью учета или оба этих параметра.

Статья должна быть в списке возможных статей учета для бухгалтерской проводки. Если это не так, будет выдан вопрос "Разрешить указывать статью налогового учета ... для проводки ... <-> ...". Если пользователь ответит Да, статья будет добавлена к списку возможных, если ответит Нет, будет использована статья по умолчанию для данной проводки.

Если в настройках программы активна опция "Не использовать статьи налогового учета" или "Не использовать корректные проводки", указанная в функции статья учета будет все равно использована в проводке (даже если статья не видна). Если статья не находится в списке возможных, будет использована статья по умолчанию для данной проводки без запроса к пользователю.

Пример:

ПРОВОДКА("20","02/ГР03/КОМП",сумма)

ПРОВОДКА_НУ(сумма_ну)


ПРОВОДКАГР

Функция ПРОВОДКАГР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПРОВОДКАГР аналогична функции ПРОВОДКА, но позволяет добавлять проводки в журнал бухгалтерских операций без указания аналитических признаков. Функция добавляет несколько проводок по всем комбинациям аналитических признаков указанных счетов.

Синтаксис:

ПРОВОДКАГР( <счет дебета>, <счет кредита>, <сумма>

[,<количество>] [,<доп.показатель>] [,<вкл>] [,<номер документа>] [,<дата>]

[,<содержание 1> [,<содержание 2>]][<связь>:<вид>] )

где

<счет дебета>, <счет кредита>
строка, соответствующая коду счета в плане счетов или расширенный код счета;

<сумма>, <количество>, <доп.показатель>
выражения числового типа, содержащее вызовы функций расчета оборотов и остатков; они определяют сумму проводки, количество для количественно-суммовой проводки и доп.показатель при использовании дополнительных единиц;

<вкл>
выражение типа логика, для добавления выключенной проводки (<вкл> = НЕТ)

<номер документа>
выражение строкового типа;

<дата>
выражение типа дата;

<содержание 1>, <содержание 2>
выражения строкового типа, определяющие содержание операции.

<связь>
переменная типа ЖУРНАЛ, означающая, что проводки связаны с заданной записью журнала.

<вид>
вид журнала для <связь>

Внутри формулы, рассчитывающей сумму проводки, должны использоваться функции расчета оборотов и остатков. Тогда, при формировании проводки по каждому счету с аналитиками, сам код счета в параметре функции будет заменен на расширенный код счета. Вне зависимости от количества аналитик у счета, будут перебраны все комбинации аналитик, имеющие ненулевую сумму формулы и по ним будут сделаны проводки.

Пример:

ПРОВОДКАГР ("90", "99/РЕАЛ", ОСК ("90"), дата, "Расчет прибыли")

Аналогично последовательности:

ПРОВОДКА ("90/1", "99/РЕАЛ", ОСК ("90/1"), дата, "Расчет прибыли")

ПРОВОДКА ("90/2", "99/РЕАЛ", ОСК ("90/2") )

ПРОВОДКА ("90/3", "99/РЕАЛ", ОСК ("90/3") )

где 1, 2, 3 — коды аналитик счета 90

Замечание!

В предыдущих версиях программы функция ПРОВОДКАГР имела другой смысл — она добавляла проводки по всем субсчатам счета. Теперь для этого надо использовать цикл СЧЕТА или ОБОРОТЫ, внутри которых вызывать функцию ПРОВОДКА.

См. также
ПРОВОДКА


ПРОФИЛЬ

Свойство ПРОФИЛЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ПРОФИЛЬ позволяет получить доступ к профилю пользователя. Профиль пользователя — это хранилище настроек, привязанных к конкретному пользователю. Профиль хранится в базе данных и доступен этому пользователю каждый раз при подключении к ней.

Синтаксис:

ПРОФИЛЬ [<название опции> [, <по умолчанию>] ]

где

<название опции>
произвольная строка, определяющая название опции.

<по умолчанию>
задает значение по умолчанию.

Тип — любой. Свойству можно присваивать значения, считывать и выполнять над ним любые арифметические операторы.

Если указано значение по умолчанию оно возвращается при чтении свойства, если настройка в профиле не найдена. Оно может использоваться при записи для оптимизации ресурсов: если присваиваемое значение равно значению по умолчанию, профиль опции вместо сохранения удаляется.

Если при чтении свойства указано значение по умолчанию и тип сохраненного в профиле значения отличается от типа значения по умолчанию, такое сохраненное значение считается ошибочным, оно отбрасывается и вместо него будет возвращено значение по умолчанию.

Рекомендуется указывать значение по умолчанию, т.к. в этом случае контроль типов происходит на этапе компиляции программы.

Пример:

ПРОФИЛЬ ["Детализировать приход"] = ДА // Задаем значение параметра

// Где-то в другом месте

ЕСЛИ ПРОФИЛЬ ["Детализировать приход"] ТО

/// ...

КОНЕЦ_ЕСЛИ

Замечание!

Если название опции начинается с символа РР, он будет заменен на название бланка или отчета, например ПРОФИЛЬ[РР + "/а"] преобразуется внутри бланка "Бланк" в ПРОФИЛЬ["Бланк/а"].

См.также
ПРОФИЛЬ_ВРЕМ
ХРАНИТЬ


ПРОФИЛЬ_ВРЕМ

Свойство ПРОФИЛЬ_ВРЕМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ПРОФИЛЬ_ВРЕМ позволяет получить доступ к временному профилю. Временный профиль — это хранилище настроек, доступное в текущем сеансе работы с программой. После завершения работы все данные из профиля теряются.

Синтаксис:

ПРОФИЛЬ_ВРЕМ [<название опции> [, <по умолчанию>] ]

где

<название опции>
произвольная строка, определяющая название опции.

<по умолчанию>
задает значение по умолчанию.

Тип — любой. Свойству можно присваивать значения, считывать и выполнять над ним любые арифметические операторы.

Если указано значение по умолчанию оно возвращается при чтении свойства, если настройка в профиле не найдена. Оно может использоваться при записи для оптимизации ресурсов: если присваиваемое значение равно значению по умолчанию, профиль опции вместо сохранения удаляется.

Если при чтении свойства указано значение по умолчанию и тип сохраненного в профиле значения отличается от типа значения по умолчанию, такое сохраненное значение считается ошибочным, оно отбрасывается и вместо него будет возвращено значение по умолчанию.

Рекомендуется указывать значение по умолчанию, т.к. в этом случае контроль типов происходит на этапе компиляции программы.

Пример:

// Установка временного параметра в бланке

ПРОФИЛЬ_ВРЕМ ["Первый лист кассовой книги"] ++

// Формула для колонтитула этого бланка использует этот параметр

стр &[страница + ПРОФИЛЬ_ВРЕМ ["Первый лист кассовой книги"]]

Замечание!

Если название опции начинается с символа РР, он будет заменен на название бланка или отчета, например ПРОФИЛЬ[РР + "/а"] преобразуется внутри бланка "Бланк" в ПРОФИЛЬ["Бланк/а"].

См.также
ПРОФИЛЬ


ПУТЬ_МЕНЮ

Функция ПУТЬ_МЕНЮ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ПУТЬ_МЕНЮ возвращает строку с полным названием пункта меню (главного или контекстного).

Синтаксис (главное меню):

ПУТЬ_МЕНЮ ( <команда> )

где

<команда>
выражение строкового типа, определяющее команду пункта меню. Для бланков и отчетов это имя файла бланка и отчета, для типовых операций — название типовой операции, для журнала — идентификатор журнала.

Синтаксис (контекстное меню):

ПУТЬ_МЕНЮ ( <журнал>, <команда> )

где

<идентификатор>
идентификатор журнала, определяющего контекстное меню;

<команда>
выражение строкового типа, определяющее команду пункта меню. Для бланков и отчетов это имя файла бланка и отчета, для типовых операций — название типовой операции, для журнала — идентификатор журнала.

Функция возвращает строку. Функция выдает предупреждение при компиляции и ошибку при выполнении, если не находит бланк, отчет, журнал или типовую операцию среди пунктов главного или контекстного меню.

Примеры:

СООБЩЕНИЕ(ФОРМАТ("Для печати счета воспользуйтесь пунктом меню <*>", ПУТЬ_МЕНЮ("SCHET.FRM"))

См.также
Функция УБРАТЬ_МЕНЮ
Метод ДОСТУПНО_МЕНЮ


РАБОТАЕТ_ПОЛЬЗОВАТЕЛЕЙ

Функция РАБОТАЕТ_ПОЛЬЗОВАТЕЛЕЙ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция РАБОТАЕТ_ПОЛЬЗОВАТЕЛЕЙ возвращает количество пользователей, работающих в данный момент.

Синтаксис:

РАБОТАЕТ_ПОЛЬЗОВАТЕЛЕЙ,

Результат — число.

Пример:

ЕСЛИ РАБОТАЕТ_ПОЛЬЗОВАТЕЛЕЙ > 1 ТО

СООБЩЕНИЕ("Процедура может быть выполнена только в монопольном режиме")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ


РАБОЧИЕ_ОБЪЕКТЫ

Функция РАБОЧИЕ_ОБЪЕКТЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция РАБОЧИЕ_ОБЪЕКТЫ задает перечень значений аналитик, которые будут использоваться при формировании проводок с помощью функции ПРОВОДКА, КОД_СЧЕТА.

Синтаксис (вариант 1):

РАБОЧИЕ_ОБЪЕКТЫ[(<аналитика1> [ ,<аналитика2> [ ,... ] ] ) ]

где

<аналитика1>, <аналитика2>
объекты типа ЖУРНАЛ, задающие значение аналитического признака используемых далее счетов.

Синтаксис (вариант 2):

РАБОЧИЕ_ОБЪЕКТЫ[(<строка параметров>) ]

где

<строка параметров>
строка вида "<идентификатор журнала>:<значение>;<идентификатор журнала>:<значение>;...".

Функция РАБОЧИЕ_ОБЪЕКТЫ заменяет существующий перечень аналитик. Если функция вызывается без аргументов, она очищает перечень.

Если был установлен перечень, то при формировании проводок с помощью функции ПРОВОДКА можно не указывать аналитики счетов. Программа будет использовать в этом случае значения объектов аналитик, установленное функцией РАБОЧИЕ_ОБЪЕКТЫ. Использование функции полностью равносильно указанию объектов ЖУРНАЛ в расширенном коде счета, определяющем дебет и кредит проводки, но и не исключает такую возможность задания объектов. Также как и без использования функции РАБОЧИЕ_ОБЪЕКТЫ, если при выполнении функции ПРОВОДКА не указан какой-либо аналитический признак, он будет запрошен у пользователя.

Пример 1:

скл ЭТО склады

тов ЭТО товары

кл ЭТО клиенты

ВЫБОР_ЗАПИСИ(скл) // Выбираем конкретный склад

ВЫБОР_ЗАПИСИ(тов) // Выбираем конкретный товар

ВЫБОР_ЗАПИСИ(кл) // Выбираем конкретного клиента

РАБОЧИЕ_ОБЪЕКТЫ(скл, тов, кл) // Теперь будем их использовать в проводках

ПРОВОДКА("62", "90/В", сумма)

ПРОВОДКА("90/НДС", "68", сумма * НДС / (1 + НДС))

ПРОВОДКА("90/С", "41", себест)

Если в плане счетов ведется аналитика по 41-ому счету по складам и товарам, а по 62-ому по клиентам, проводки будут преобразованы программой так:

// ...

ПРОВОДКА("62":кл, "90/В", сумма)

ПРОВОДКА("90/НДС", "68", сумма * НДС / (1 + НДС))

ПРОВОДКА("90/С", "41":скл:тов, себест)

Если в плане счетов по 41-ому счету аналитика ведется только по товарам, а по 90-ому ведется аналитика по складам, проводки будут преобразованы программой так:

// ...

ПРОВОДКА("62":кл, "90/В":скл, сумма)

ПРОВОДКА("90/НДС":скл, "68", сумма * НДС / (1 + НДС))

ПРОВОДКА("90/С":скл, "41":тов, себест)

Пример 2:

// Пример вызова РАБОЧИЕ_ОБЪЕКТЫ со 2-ым вариантом синтаксиса. Делает то же самое, что и предыдущий пример

скл ЭТО склады

тов ЭТО товары

кл ЭТО клиенты

ВЫБОР_ЗАПИСИ(скл) // Выбираем конкретный склад

ВЫБОР_ЗАПИСИ(тов) // Выбираем конкретный товар

ВЫБОР_ЗАПИСИ(кл) // Выбираем конкретного клиента

РАБОЧИЕ_ОБЪЕКТЫ("с_склады:" + скл.код + ";с_товары:" + тов.код + ";с_склиенты:" + кл.код) // Теперь будем их использовать в проводках

// .....

// .....

// .....


РАЗБОР

Функция РАЗБОР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция РАЗБОР разбирает строку и выделяет из нее нужные фрагменты для последующей обработки.

Синтаксис:

РАЗБОР (<строка> ,<шаблон> [,<пар1>[:<индекс1>] [,<пар2>[:<индекс2>]] [,...] ] ),

где

<строка>
исходная строка, которая будет разбираться;

<шаблон>
строка, которая задает шаблон, определяющий порядок разбора;

<пар1>, <пар2>..
строковые переменные, куда в результате разбора будут помещены фрагменты строки.

<индекс1>, <индекс2>..
числовые переменные, куда в результате разбора будет помещена позиция начала фрагмента.

Строка <шаблон> должна содержать в тех местах, которые надо выделить символ * (звездочку). Число параметров <пар1>, <пар2> должно в точности соответствовать числу таких фрагментов, т.е. числу звездочек в тексте шаблона. Если это не так, будет выдана ошибка.

Если какие-то фрагменты в результате разбора не нужны, то для их выделения в шаблоне используется ** (две звездочки).

Результат — логика. Если строку разобрать удалось, возвращает ДА, а строковые переменные заполняются выделенными фрагментами. Если строку не удалось разобрать, возвращает НЕТ.

Пример 1:

РАЗБОР("<td width=30>Дата</td>", "<td *>*</td>", ширина, ячейка)

ОТЛАДКА(ширина) // Будет выведена строка "width=30"

ОТЛАДКА(ячейка) // Будет выведена строка "Дата"

Пример 2:

РАЗБОР("<td width=30>Дата</td>", "<td **>*</td>", ячейка:позиция)

ОТЛАДКА(ячейка) // Будет выведена строка "Дата", первый шаблон будет проигнорирован

ОТЛАДКА(позиция) // Будет выведено 14 - позиция, с которой начинается фрагмент "Дата"

См. также
Функция ФОРМАТ


РАЗВЕРНУТЬ

Функция РАЗВЕРНУТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция РАЗВЕРНУТЬ позволяет развернуть многоуровневый отчет таким образом, что подуровни отображаются вместе со своими группами.

Синтаксис:

РАЗВЕРНУТЬ(<уровень>)

Здесь параметр <уровень> определяет уровень вложенности строк. Если <уровень> = 1 то вызов функции задаст обычный режим отображения: на верху группы, в них подуровни. Если <уровень> = 2, то вместе с группами отобразится и их содержимое. Если группа имеет подгруппы, то их содержимое не будет видно. Чтобы увидеть записи из подгрупп надо будет войти внутрь этих подгрупп. Если <уровень> = 3 то вместе с группами будут подгруппы и подподгруппы и т.д.

При таком "плоском" отображении подуровней они располагаются в отчете сразу после своих групп. Их местоположение фиксируется так, как если бы это были секции. Функция РАЗВЕРНУТЬ работает только со статическими многоуровневыми отчетами. Функция РАЗВЕРНУТЬ действует не только на строки, но и на столбцы (если отчет был перевернут при помощи ТРАНСПОНИРОВАТЬ). В последнем случае это приводит просто к раскрытию столбцов.

Пример:

РАЗВЕРНУТЬ(ВВЕСТИ_ЗНАЧЕНИЕ!("Развернуть план счетов до",["1","2","3","4","5","6","7","8","9"]))

См. также
РАЗВЕРНУТЬВ


РАЗВЕРНУТЬВ

Функция РАЗВЕРНУТЬВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция РАЗВЕРНУТЬВ позволяет развернуть многоуровневый отчет, перевернутый при помощи ТРАНСПОНИРОВАТЬ, таким образом, что подуровни отображаются вместе со своими группами. Если отчет не перевернут, она просто раскрывает группы столбцов.

Синтаксис:

РАЗВЕРНУТЬВ(<уровень>)

Здесь параметр <уровень> определяет уровень вложенности строк. Если <уровень> = 1 то вызов функции задаст обычный режим отображения: на верху группы, в них подуровни. Если <уровень> = 2, то вместе с группами отобразится и их содержимое. Если группа имеет подгруппы, то их содержимое не будет видно. Чтобы увидеть записи из подгрупп надо будет войти внутрь этих подгрупп. Если <уровень> = 3 то вместе с группами будут подгруппы и подподгруппы и т.д.

При таком "плоском" отображении подуровней они располагаются в отчете сразу после своих групп. Их местоположение фиксируется так, как если бы это были секции. Функция РАЗВЕРНУТЬВ работает только со статическими многоуровневыми отчетами.

Пример:

РАЗВЕРНУТЬВ(ВВЕСТИ_ЗНАЧЕНИЕ!("Развернуть план счетов до",["1","2","3","4","5","6","7","8","9"]))

См. также
РАЗВЕРНУТЬ


РАСКРЫВАЕМО

Функция РАСКРЫВАЕМО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функции РАСКРЫВАЕМО используется для создания динамических многоуровневых отчетов. С помощью нее указывается, какие строки будут группами, и как программа может получить ячейки из этой группы.

Синтаксис:

РАСКРЫВАЕМО[!](<яч>[:<имя файла отчета>] [,<колонка>[,<строка>[,<ячейка>]]])

Здесь <яч> определяет координату строки, которая будет являться группой. Строка должна существовать на момент выполнения функции, иначе будет выдана ошибка. Указание "!" позволяет избежать ошибки — для несуществующих координат вызов функции будет просто проигнорирован. Далее следуют последовательно параметры отчета: <колонка>, <строка> и <ячейка>, которые определяют параметры вызова этого же отчета. Необходимо указать такое же кол-во параметров и в том же порядке, что они указаны в ВЫЧИСЛИТЬ. Программа будет вызывать отчет с указанными значениями параметров. При необходимости вызвать другой отчет, отличный от вызываемого, его можно указать в параметре <имя файла отчета>.

При входе пользователя внутрь группы ячеек (т.е. внутрь строки), помеченных функцией РАСКРЫВАЕМО, программа запустит на выполнение указанный отчет, а все сформированные им ячейки поместит внутрь указанной группы.

Замечание!

Программа запоминает все ячейки при вызове отчета из группы, поэтому при повторном входе отчет не вызывается.

Вызываемый из группы отчет будет использовать те же значения входных параметров отчета, что и исходный. Если у строки задан свой отчетный период (при помощи атВозвратНач и атВозвратКон), то он используется при вызове такого отчета.

Если внутри вызываемого отчета устанавливается колонтитул при помощи свойства КОЛОНТИТУЛ, он будет отображаться в заголовке отчета при входе внутрь этой конкретной группы. При выходе из нее заголовок отчета вернется с исходное состояние.

Пример

РАСКРЫВАЕМО(1:"regitry3") // Строка с координатой 1 становится группой, при входе в эту группу

// запускается отчет registry3, все что этот отчет получил будет содержаться

// в этой группе

См.также
РАСКРЫВАЕМОВ


РАСКРЫВАЕМОВ

Функция РАСКРЫВАЕМОВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функции РАСКРЫВАЕМОВ используется для создания динамических многоуровневых отчетов. С помощью нее указывается, какие столбцы будут группами, и как программа может получить ячейки из этой группы.

Синтаксис:

РАСКРЫВАЕМОВ[!](<яч>[:<имя файла отчета>] [,<колонка>[,<строка>[,<ячейка>]]])

Здесь <яч> определяет координату столбца, которая будет являться группой. Столбец должен существовать на момент выполнения функции, иначе будет выдана ошибка. Указание "!" позволяет избежать ошибки — для несуществующих координат вызов функции будет просто проигнорирован. Далее следуют последовательно параметры отчета: <колонка>, <строка> и <ячейка>, которые определяют параметры вызова этого же отчета. Необходимо указать такое же кол-во параметров и в том же порядке, что они указаны в ВЫЧИСЛИТЬ. Программа будет вызывать отчет с указанными значениями параметров. При необходимости вызвать другой отчет, отличный от вызываемого, его можно указать в параметре <имя файла отчета>.

При входе пользователя внутрь группы ячеек (т.е. внутрь столбца), помеченных функцией РАСКРЫВАЕМОВ, программа запустит на выполнение указанный отчет, а все сформированные им ячейки поместит внутрь указанной группы.

Замечание!

Программа запоминает все ячейки при вызове отчета из группы, поэтому при повторном входе отчет не вызывается.

Вызываемый из группы отчет будет использовать те же значения входных параметров отчета, что и исходный. Если у столбца задан свой отчетный период (при помощи атВозвратНач и атВозвратКон), то он используется при вызове такого отчета.

Пример

РАСКРЫВАЕМОВ(1:"regitry3") // Строка с координатой 1 становится группой, при входе в эту группу

// запускается отчет registry3, все что этот отчет получил будет содержаться

// в этой группе

См.также
РАСКРЫВАЕМО


РЕЕСТР

Свойство РЕЕСТР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Служебное свойство РЕЕСТР позволяет получить доступ к реестру Windows: чтение и запись значений.

Синтаксис:

РЕЕСТР [<название раздела реестра> [:<параметр>] [, <корневой элемент>] ]

где

<название раздела реестра>
произвольная строка, определяющая название раздела реестра.

<параметр>
произвольная строка, определяющая название параметра реестра.

<корневой элемент>
задает корневой элемент. Возможные значения:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA

При отсутствии показателя по умолчанию используется HKEY_CURRENT_USER.

Тип — строка или число. Если параметр не найден, возвращается ПУСТО. Свойству можно присваивать значения, считывать и выполнять над ним любые арифметические операторы.

Пример:

// Выведет путь к wav-файлу, проигрываемому Windows при ошибках

СООБЩЕНИЕ(РЕЕСТР ["\AppEvents\Schemes\Apps\.Default\SystemHand\.Current"])

Внимание!

Внесение изменений в реестр Windows может привести к неправильной работе компьютера!

См. также
РЕЕСТР_КЛЮЧИ


РЕЕСТР_КЛЮЧИ

Функция РЕЕСТР_КЛЮЧИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция РЕЕСТР_КЛЮЧИ возвращает список параметров из заданной ветки реестра Windows. Получив параметры можно считать

Синтаксис:

РЕЕСТР_КЛЮЧИ (<результат>, <название раздела реестра> [, <корневой элемент>] )

где

<результат>
массив, в который помещается список параметров.

<название раздела реестра>
произвольная строка, определяющая название раздела реестра.

<корневой элемент>
задает корневой элемент. Возможные значения:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA

При отсутствии показателя по умолчанию используется HKEY_CURRENT_USER.

Тип — логика. Если ни один параметр не был считан, возвращает НЕТ, иначе ДА. После того как параметры получены, к ним можно обратиться с помощью свойства РЕЕСТР.

Пример:

ПЕРЕМ СТРОКА: принтеры!

РЕЕСТР_КЛЮЧИ(принтеры, "\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts")

ЦИКЛ ДЛЯ (ии ИЗ принтеры)

// Выведет список принтеров и портов подключения

ОТЛАДКА (принтеры!ии, РЕЕСТР["\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts":принтеры!ии])

КОНЕЦ_ЦИКЛА

См. также
РЕЕСТР


РЕЗЕРВНОЕ_КОПИРОВАНИЕ

Функция РЕЗЕРВНОЕ_КОПИРОВАНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Служебная функция РЕЗЕРВНОЕ_КОПИРОВАНИЕ делает резервную копию базы данных. Функция выполняет резервное копирование так, будто это было сделано при помощи пункта меню «Файлы | Обслуживание базы | Архивировать», но не выводит никаких сообщений.

Синтаксис:

РЕЗЕРВНОЕ_КОПИРОВАНИЕ (<файл>)

где

<файл>
файл для резервной копии. По умолчанию он имеет расширение FBK. Если имя файла содержит указание пути — это путь на сервере. Если путь не указан — файл создается в том же каталоге, где лежит база данных. Если файл резервной копии существует, программа заменит его. Если указана пустая строка, файл будет называться также как и файл базы данных (только с раширением FBK).

Если в процессе резервного копирования произошла ошибка, алгоритм завершит свою работу.

Функция чаще используется в алгоритмах преобразования данных (конверторах). Она позволяет пользователю сделать откат в случае неудачи преобразования.

Пример:

// Имя файла копии по-умолчанию

РЕЗЕРВНОЕ_КОПИРОВАНИЕ("")

// Имя файла построено по текущей дате

РЕЗЕРВНОЕ_КОПИРОВАНИЕ(ЗАМ(СТР(ДАТА_ТЕК),".","_"))


РИМ

Функция РИМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция РИМ выдает римское написание числа.

Синтаксис:

РИМ (<сумма>),

где

<сумма>
числовое выражение от 1 до 3999.

Результат — строка.

Пример:

с1 = РИМ (12) // переменной с1 присваивается "XII"

с2 = РИМ (1999) // переменной с2 присваивается "MCMXCIX"


РУБ

Функция РУБ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция РУБ возвращает число рублей в указанной сумме.

Синтаксис:

РУБ (<сумма>),

где

<сумма>
числовое выражение.

Результат — число.

Пример:

р1 = РУБ (73.85) // переменной р1 присваивается значение 73


РУБП

Функция РУБП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция КОПП возвращает слово "рубль" в нужном склонении (склонение определяется по сумме).

Синтаксис:

РУБП (<сумма>),

где

<сумма>
числовое выражение.

Результат — строка.

Пример:

с1 = РУБП (75) // переменной с1 присваивается "рублей"

с2 = РУБП (2) // переменной с2 присваивается "рубля"

с3 = РУБП (1) // переменной с3 присваивается "рубль"


САЛЬДО

Свойство САЛЬДО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

С помощью свойства САЛЬДО можно получить доступ к сальдо столбца.

Синтаксис:

САЛЬДО[!][<столбец> [,<подъячейка>]]

Здесь

<столбец>
задает координату столбца, к сальдо которого необходимо обратиться.

Параметр <подъячека>
определяет номер соответствующей подъячейки. Если указанный столбец не существуют, программа выдаст сообщение об ошибке и работа алгоритма будет остановлена. Если указать ! (восклицательный знак), то ошибка будет проигнорирована и функция просто ничего не будет делать.

При помощи САЛЬДО можно не только считывать, но и изменять сальдо столбца, влияя тем самым на результаты расчетов ИТОГО (без шаблона).

Пример:

// Отчет состоит из колонки "Сумма", в которую помещается сумма накладных

// и колонки "Сальдо", в которую помещается сальдо колонки "Сумма", т.е. сумма

// всех накладных до этой строчки включительно

и = 1

ЦИКЛ ПО ЖУРНАЛУ накладные н

ЯЧЕЙКА["Сумма",и] = н.сумма

ЯЧЕЙКА["Сальдо",и] = САЛЬДО["Сумма"]

и++

КОНЕЦ_ЦИКЛА

См. также
САЛЬДОВ


САЛЬДОВ

Свойство САЛЬДОВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

С помощью свойства САЛЬДОВ можно получить доступ к сальдо строки.

Синтаксис:

САЛЬДОВ[!][<строка> [,<подъячейка>]]

Здесь

<строка>
задает координату строки, к сальдо которой необходимо обратиться.

Параметр <подъячека>
определяет номер соответствующей подъячейки. Если указанная строка не существуют, программа выдаст сообщение об ошибке и работа алгоритма будет остановлена. Если указать ! (восклицательный знак), то ошибка будет проигнорирована и функция просто ничего не будет делать.

При помощи САЛЬДОВ можно не только считывать, но и изменять сальдо строки, влияя тем самым на результаты расчетов ИТОГОВ (без шаблона).

Пример:

ЯЧЕЙКА[1, "Сумма"] = 2000

ЯЧЕЙКА[2, "Сумма"] = 3000

ЯЧЕЙКА[3, "Сальдо"] = САЛЬДОВ["Сумма"] // Присвоим значение 5000

См. также
САЛЬДО


СЕКУНДЫ

Функция СЕКУНДЫ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЕКУНДЫ выделяет секунды из времени.

Синтаксис:

СЕКУНДЫ [(<время>)],

где

<время>
выражение типа время.

Результат — число от 0 до 59. Если параметр <время> не указан, функция возвращает текущую секунду.

Пример:

время1 = 00:05

сек1 = СЕКУНДЫ (время1) // переменной сек1 присваивается значение 0

время2 = 19:35:50

сек2 = СЕКУНДЫ (время2) // переменной сек2 присваивается значение 50


СЕРВЕР_ОТПРАВИТЬ

Функция СЕРВЕР_ОТПРАВИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЕРВЕР_ОТПРАВИТЬ отправляет данные потоковому серверному сокету.

Синтаксис:

СЕРВЕР_ОТПРАВИТЬ ( <данные>, <кодировка> ),

где

<данные>
строка данных.

<кодировка>
кодировка, в которой будет отправлена указанная строка данных.

Результат — логическое выражение. При успешной обработке возвращает ДА.

Для отправки необходимо, чтобы программа была подключена к сокету с помощью функции СЕРВЕР_ПОДКЛЮЧИТЬ.

Пример 1:

{ Подключаемся к серверу }

СЕРВЕР_ПОДКЛЮЧИТЬ("SERVER:4000")

{ Ожидание ответа }

ПАУЗА(100)

{ Отправка данных }

СЕРВЕР_ОТПРАВИТЬ("отправляем вам данные")

Пример 2:

{ Подключаемся к HTTP-серверу, 80-ый порт }

СЕРВЕР_ПОДКЛЮЧИТЬ("www.infop.ru:80")

{ Ожидание ответа }

ПАУЗА(100)

{ Отправка данных в формате HTTP }

СЕРВЕР_ОТПРАВИТЬ("GET / HTTP/1.1" + СИМВ(13) + СИМВ(10) + "Host: infop.ru" + СИМВ(13) + СИМВ(10) + СИМВ(13) + СИМВ(10))

{ Ответ от сервера будет в формате HTTP и должен вернуть содержимое страницы сайта }

ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ ("Ожидаем ответ", источник, событие, данные)

ОТЛАДКА(данные)

Пример 3:

{ Подключаемся к FTP-серверу, 21-ый порт }

СЕРВЕР_ПОДКЛЮЧИТЬ("test.ru:21")

{ Ожидание ответа }

ПАУЗА(100)

{ Отправка данных в формате FTP }

СЕРВЕР_ОТПРАВИТЬ(

"USER login" + СИМВ(13) + СИМВ(10) +

"PASS password" + СИМВ(13) + СИМВ(10) +

"PASV" + СИМВ(13) + СИМВ(10) +

"CWD temp" + СИМВ(13) + СИМВ(10))

{ Ответ от сервера придет в обработчик внешнего события }

См.также
Функция СЕРВЕР_ПОДКЛЮЧИТЬ


СЕРВЕР_ПОДКЛЮЧЕН

Функция СЕРВЕР_ПОДКЛЮЧЕН

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЕРВЕР_ПОДКЛЮЧЕН возвращает строку с адресом и портом серверного сокета, к которому ранее подключились с помощью функции СЕРВЕР_ПОДКЛЮЧИТЬ.

Синтаксис:

<адрес> = СЕРВЕР_ПОДКЛЮЧЕН

Результат — строка: адрес и порт сервера.

Пример:

{ Подключаемся к серверу }

ЕСЛИ СЕРВЕР_ПОДКЛЮЧЕН = "" ТО

СООБЩЕНИЕ("Нет подключения к серверу")

КОНЕЦ_ЕСЛИ

См.также
Функция СЕРВЕР_ПОДКЛЮЧИТЬ
Функция СЕРВЕР_ОТПРАВИТЬ


СЕРВЕР_ПОДКЛЮЧИТЬ

Функция СЕРВЕР_ПОДКЛЮЧИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЕРВЕР_ПОДКЛЮЧИТЬ подключается к потоковому серверному сокету (или отключается, если в качестве адреса передается пустая строка).

Синтаксис:

СЕРВЕР_ПОДКЛЮЧИТЬ ( <адрес>, <кодировка> ),

где

<адрес>
адрес сокета в виде строки, состоящей из имени сервера или его IP-адреса и номера порта, отделенного двоеточием, например "localhost:4000". При передаче пустой строки отключается от сервера.

<кодировка>
кодировка, которая будет использована для интерпретации входящих данных (см. ниже параметр <получаемые данные>).

Результат — логическое выражение. При успешной обработке возвращает ДА.

Замечание!

Недоступность сервера в момент выполнения функции СЕРВЕР_ПОДКЛЮЧИТЬ не проверяется. Вместо этого через определенное время в списке ошибок будет выведено сообщение об ошибке "TCPClient: Connection timed out". Оно означает, что соединение с сервером не было установлено.

Получение данных.

После подключения к серверу прием данных от сервера осуществляется с помощью обработчика Внешнее событие. При этом:

·источник = "TCPClient" (идентифицирует, что внешнее событие от серверного сокета)

·событие = <адрес сервера>

·данные = <получаемые данные>

Для разделения данных на фрагменты может быть использован символ с нулевым кодом. Тогда на каждый фрагмент будет вызов обработчика внешнего события. Если разделителя нет, то отправляемые сервером данные могут быть склеены, даже если отправлены несколькими командами.

Ожидание ответа от сервера также можно осуществить с помощью функции ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ.

Отправка данных

Для отправки используется функция СЕРВЕР_ОТПРАВИТЬ.

Пример:

{ Подключаемся к серверу по имени }

СЕРВЕР_ПОДКЛЮЧИТЬ("SERVER:4000")

{ Подключаемся к серверу по IP-адресу }

СЕРВЕР_ПОДКЛЮЧИТЬ("93.158.134.3:80")

См.также
Функция СЕРВЕР_ПОДКЛЮЧЕН
Функция СЕРВЕР_ОТПРАВИТЬ


СЕРТИФИКАТ_ПРОВЕРИТЬ

Функция СЕРТИФИКАТ_ПРОВЕРИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЕРТИФИКАТ_ПРОВЕРИТЬ проверяет, действует ли указанный сертификат электронной подписи.

Синтаксис:

СЕРТИФИКАТ_ПРОВЕРИТЬ (<сертификат> [:<тип задания>] [,<дата> [,<ошибка>]] )

где

<сертификат>
строка, определяющая нужный сертификат;
<тип задания>
необязательный параметр, указывающий на то, что указано в параметре <сертификат>;
<дата>
необязательный параметр, дата, на которую надо проверить сертификат;
<ошибка>
необязательный параметр, строковая переменная, в которую возвращается текст ошибки при неудаче;

Результат — логика. Функция проверяет, действует ли сертификат на текущую дату (или на заданную дату, если передан параметр <дата>).

Сертификат определяется параметром <сертификат>. По умолчанию это отпечаток ключа, но сертификат можно определить и по другим параметрам: идентификатору, названию субъекта. Для этого после строки ставится двоеточие и тип задания сертификата.

Пример:

серт = ВЫБОР_СЕРТИФИКАТА // Запросить сертификат у пользователя, сохранить отпечаток в строке «серт»

ОТЛАДКА(СЕРТИФИКАТ_ПРОВЕРИТЬ(серт)) // Выдает ДА, если сертификат действителен на текущую дату

См. также
Функция ВЫБОР_СЕРТИФИКАТА
Функция СЕРТИФИКАТ_ИНФО
Функция ПОДПИСЬ_ДОБАВИТЬ
Функция ПОДПИСЬ_ПРОВЕРИТЬ
Функция ПОДПИСЬ_ШИФРОВАТЬ
Функция ПОДПИСЬ_РАСШИФРОВАТЬ


СЕРТИФИКАТ_ИНФО

Функция СЕРТИФИКАТ_ИНФО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЕРТИФИКАТ_ИНФО выдает нужную информацию по указанному сертификату электронной подписи.

Синтаксис:

СЕРТИФИКАТ_ИНФО (<сертификат> [:<тип задания>], <тип информации> [,<ошибка>])

где

<сертификат>
строка, определяющая нужный сертификат;
<тип задания>
необязательный параметр, указывающий на то, что указано в параметре <сертификат>;
<тип информации>
какую информацию надо выдать;
<ошибка>
необязательный параметр, строковая переменная, в которую возвращается текст ошибки при неудаче;

Результат — строка.

Сертификат определяется параметром <сертификат>. По умолчанию это отпечаток ключа, но сертификат можно определить и по другим параметрам: идентификатору, названию субъекта. Для этого после строки ставится двоеточие и тип задания сертификата.

Пример:

серт = ВЫБОР_СЕРТИФИКАТА // Запросить сертификат у пользователя, сохранить отпечаток в строке «серт»

ОТЛАДКА(СЕРТИФИКАТ_ИНФО(серт, сертВсе)) // Вывести информацию по выбранному сертификату

См. также
Функция ВЫБОР_СЕРТИФИКАТА
Функция СЕРТИФИКАТ_ПРОВЕРИТЬ
Функция ПОДПИСЬ_ДОБАВИТЬ
Функция ПОДПИСЬ_ПРОВЕРИТЬ
Функция ПОДПИСЬ_ШИФРОВАТЬ
Функция ПОДПИСЬ_РАСШИФРОВАТЬ


СИМВ

Функция СИМВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СИМВ возвращает строку из одного символа по его коду.

Синтаксис:

СИМВ (<код>)

где

<код>
выражение числового типа.

Результат — строка.

Пример:

стр = СИМВ (42) // стр = "*"

См. также
Функция КОД_СИМВ


СИСТЕМА_НАЛОГООБЛОЖЕНИЯ

Свойство СИСТЕМА_НАЛОГООБЛОЖЕНИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство СИСТЕМА_НАЛОГООБЛОЖЕНИЯ возвращает краткое название текущей системы налогообложения (системы налогообложения текущей выбранной фирмы). Отредактировать список систем налогообложения можно в диалоге выбора фирмы.

Синтаксис:

СИСТЕМА_НАЛОГООБЛОЖЕНИЯ

Пример:

ЕСЛИ СИСТЕМА_НАЛОГООБЛОЖЕНИЯ = "УСН" ТО

СООБЩЕНИЕ("Декларация по налогу на прибыль не считается при упрощенной системе налогообложения")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

Замечание!

Свойство может использоваться и на запись. При этом изменяется система налогообложения текущей фирмы. После изменения системы налогообложения фирмы необходимо запустить мастер постановки налогового учета.


СКРЫТЬ_НУЛЕВЫЕ_ЗНАЧЕНИЯ

Функция СКРЫТЬ_НУЛЕВЫЕ_ЗНАЧЕНИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СКРЫТЬ_НУЛЕВЫЕ_ЗНАЧЕНИЯ работает в бланках в паре с опцией Скрывать нулевые значения в графах. Функция осуществляет скрытие строк бланка по определенному алгоритму.

Синтаксис:

СКРЫТЬ_НУЛЕВЫЕ_ЗНАЧЕНИЯ

Пример:

СКРЫТЬ_НУЛЕВЫЕ_ЗНАЧЕНИЯ

См. также
Опции граф ввода-вывода


СКРЫТЬ_ЯЧЕЙКИ

Функция СКРЫТЬ_ЯЧЕЙКИ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СКРЫТЬ_ЯЧЕЙКИ позволяет скрыть группу ячеек.

Синтаксис:

СКРЫТЬ_ЯЧЕЙКИ(<шаблон столбцов>,<шаблон строк> [,<подъячейка>] [,<продолжать суммировать>])

Здесь параметры <шаблон столбцов> и <шаблон строк> указывает шаблон строк/столбцов, которые будут удаляться. Необязательный параметр <подъячейка> задает номер подъячеек, которые будут скрыты. Если он не указан, ячейка скрывается полностью, иначе скрываются только указанные подъячейки. При этом все следующие подъячейки при отображении сдвигаются.

Функция не удаляет ячейки, они продолжают существовать и к ним можно обращаться для считывания и записи данных. Однако они не участвуют в расчете итогов и не видны. Если надо чтобы они участвовали в расчете итогов, необходмо указать <продолжать суммировать> = ДА.

Результат — число — кол-во ячеек, которые были скрыты.

Пример:

СКРЫТЬ_ЯЧЕЙКИ("*","*") // Скроем все ячейки отчета

См.также
Атрибут атСкрыта.


СЛЕДИТЬ

Функция СЛЕДИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЛЕДИТЬ следит за тем, когда в переменную (элемент массива) заносится или считывается значение. Останавливает выполнение алгоритма в случае чтения или изменения переменной и запускает отладчик.

Синтаксис:

СЛЕДИТЬ ( <переменная> [, <запись>] ),

где

<переменная>
переменная, за которой надо следить.

<запись>
за чем следить: за записью или за чтением, по умолчанию ДА, т.е. следить за записью значения; если следить надо и за записью, и за чтением, функция вызывается дважды с <запись> = ДА и НЕТ.

Внимание!

Функция будет проигнорирована, если в настройках транслятора не включеня опция вывода отладки.

Пример:

ПЕРЕМ ЧИСЛО: м!

СЛЕДИТЬ(м!15)

ЦИКЛ ДЛЯ (и = 1, 100)

м!и = и // при и = 15 будет выведено отладочное сообщение "Запись переменной 00015"

КОНЕЦ_ЦИКЛА

См.также
Функция ОТЛАДКА
Встроенный отладчик


СЛОВО

Функция СЛОВО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЛОВО выделяет слово из строки по его номеру.

Синтаксис:

СЛОВО[!](<номер>, <строка> [,<разделители>] [,<позиция>] ),

где

<номер>
номер слова;

<строка>
исходная строка;

<разделители>
строка, состоящая из символов-разделителей слов;

<позиция>
числовая переменная, в которую функция помещает позицию слова;

Результат — строка.

Если не задан параметр <разделители>, используются разделители по умолчанию символы: " " (пробел), "," (запятая), ";" (точка с запятой), "." (точка) и РР. Это равносильно тому, что строка разделители была бы равна " ,.;" + РР.

Номер слова <номер> начинается с 1 (единицы). Если <номер> отрицательный, возвращаемое слово отсчитывается от конца строки.

Замечание2

Модификация функции СЛОВО! (с восклицательным знаком) принимает в расчет и пустые слова, например СЛОВО!(5,"a,,,,b") вернет "b".

Пример:

стр = "Во дворе трава, на траве дрова"

стр1 = СЛОВО (1, стр) // стр1 = "Во"

стр2 = СЛОВО (2, стр) // стр2 = "дворе"

стр3 = СЛОВО (-1, стр) // стр3 = "дрова"

ЦИКЛ ДЛЯ (и = 1, ВСЕГО_СЛОВ(стр))

ОТЛАДКА(СЛОВО(и,стр))

КОНЕЦ_ЦИКЛА

См. также
Функция ВСЕГО_СЛОВ
ЦИКЛ СЛОВА


СЛОВА

Функция СЛОВА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЛОВА разбивает строку на слова и заносит их в массив.

Синтаксис:

СЛОВА[!](<массив>, <строка> [,<разделители>] ),

где

<массив>
строковый массив;

<строка>
исходная строка;

<разделители>
строка, состоящая из символов-разделителей слов;

Результат — число, кол-во слов. Оно же равно будет кол-ву элементов в массиве.

Если не задан параметр <разделители>, используются разделители по умолчанию символы: " " (пробел), "," (запятая), ";" (точка с запятой), "." (точка) и РР. Это равносильно тому, что строка разделители была бы равна " ,.;" + РР.

Замечание2

Модификация функции СЛОВА! (с восклицательным знаком) принимает в расчет и пустые слова.

Пример 1:

// Разбивает предложение на слова

СЛОВА(строки, "Во дворе трава, на траве дрова")

ЦИКЛ ДЛЯ (ии ИЗ строки)

ОТЛАДКА(строки!ии)

КОНЕЦ_ЦИКЛА

Пример 2:

ф = ФАЙЛ_ОТКРЫТЬ("c:\content.txt")

// Считывает содержимое файла в массив строк

СЛОВА(строки, ф.СЧИТАТЬ_ВСЕ, СИМВ(13) + СИМВ(10))

ЦИКЛ ДЛЯ (ии ИЗ строки)

ОТЛАДКА(строки!ии)

КОНЕЦ_ЦИКЛА

См. также
Функция ВСЕГО_СЛОВ
Функция СЛОВО
ЦИКЛ СЛОВА


СЛУЧ_ЧИСЛО

Функция СЛУЧ_ЧИСЛО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЛУЧ_ЧИСЛО возвращает псевдослучайное целое число в диапазоне от 0 до N-1,

где N — значение аргумента функции.

Синтаксис:

СЛУЧ_ЧИСЛО ( <диапазон> ),

где

<диапазон>
диапазон значений, в котором будет генерироваться случайное число.

Результат — число.

Пример:

а = СЛУЧ_ЧИСЛО ( 2 ) // переменная а получает значение 0 или 1


СОЗДАТЬ

Функция СОЗДАТЬ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Функция-конструктор СОЗДАТЬ используется для создания объектных переменных любых типов и является устаревшей версией оператора ЭТО. В новых разработках лучше использовать последний, а, по возможности, предопределенные объектные переменные.


СОЗДАТЬ_ДИР

Функция СОЗДАТЬ_ДИР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СОЗДАТЬ_ДИР создает нужный каталог на диске.

Синтаксис:

СОЗДАТЬ_ДИР (<каталог>[, <текст ошибки>]),

где

<каталог>
строковый параметр, определяющий имя создаваемого каталога

Функция создает все необходимые каталоги верхнего уровня, если они не существуют (для локальных каталогов, для каталогов на FTP-сервере только каталог нижнего уровня). Результат — логическое выражение.

Функция может работать с FTP-ресурсами. Для этого имя каталога должно начинаться с "ftp://", и в этом случае возможно указание необязательного параметра <текст ошибки>, в который помещается текст ошибки в случае неудачи.

Пример:

СОЗДАТЬ_ДИР("c:\DemoSf\Data")

См.также
УДАЛИТЬ_ДИР


СООБЩЕНИЕ

Функция СООБЩЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СООБЩЕНИЕ выводит произвольное сообщение на экран. Сообщение будет появляться в небольшом диалоговом окне, в нижней части которого расположена кнопка <OK>. При появлении сообщения, расчет бланка приостанавливается до нажатия клавиши <Enter> или <Esc> или выбора с помощью мыши кнопки <OK>.

Синтаксис:

СООБЩЕНИЕ (<сообщение>[,<тип сообщения>]),

где

<сообщение>
выражение строкового или любого другого типа;

Если параметр <сообщение> на является строкой, он будет преобразован к строке. Строка может быть отформатирована.

Параметр <тип сообщения> может быть добавлен для указания вида сообщения. Он может принимать одно из следующих значений: типИнформация, типПредупреждение и типОшибка. Если параметр не указан, выводится сообщение вида типПредупреждение.

Пример:

СООБЩЕНИЕ ("Внимание!")


СОРТИРОВАТЬ

Функция СОРТИРОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СОРТИРОВАТЬ используется для сортировки строк отчета.

Когда отчет рассчитан, пользователь может сортировать данные по любому выбранному столбцу. Для этого достаточно выбрать столбец, нажав на его заголовок, и использовать кнопку на панели инструментов или соответствующий пункт контекстного меню. Если сортировка отсутствует, то ячейки таблицы отсортированы по умолчанию. Однако в программе есть возможность сортировать строки на основании произвольного критерия, заданного на этапе выполнения алгоритма. Это делается при помощи функции СОРТИРОВАТЬ.

Внимание!

Вне зависимости от сортировки либо пользователем при просмотре таблицы, либо заданной на этапе выполнения алгоритма последовательность секций не меняется. Сортировка влияет только на порядок записей внутри каждой секции.

Синтаксис:

СОРТИРОВАТЬ (<функция сравнения> [,<шаблон>])

Здесь параметр

<функция сравнения>
задает функцию сравнения. Функция сравнения может быть либо встроенной, либо пользовательской, описанной внутри отчета либо в какой-либо библиотеке, однако она должна иметь следующий вид:
ФУНКЦИЯ ЧИСЛО: <имя>(ТИП_СТРОКА: <строка1>,<строка2>)
Функция должна отвечать на вопрос, что больше <строка1> или <строка2>.
Если <строка1> больше <строка2>, то функция возвращает 1.
Если <строка1> меньше <строка2>, то функция возвращает — 1.
Если <строка1> равна <строка2>, то функция возвращает 0.

При этом, функция должна обладать тем свойством, что если <строка1> меньше (с точки зрения функции сравнения) <строка2>, то также и <строка2> больше (с точки зрения функции сравнения) <строка1>. И все это должно выполнятся для любых строк из отчета, например:

ФУНКЦИЯ ЧИСЛО: СРАВ_ЧИСЛА(ТИП_СТРОКА: с1,с2)

ЕСЛИ ЗНАЧ(с1) < ЗНАЧ(с2) ТО

РЕЗУЛЬТАТ = - 1

ИНАЧЕ ЕСЛИ ЗНАЧ(с1) > ЗНАЧ(с2) ТО

РЕЗУЛЬТАТ = 1

ИНАЧЕ

РЕЗУЛЬТАТ = 0

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Внимание!

Программа не контролирует выполнение перечисленного выше условия, и если функция ему не удовлетворяет, это может привести к различным негативным последствиям, в том числе и зависанию программы.

Параметры <строка1> и <строка2> всегда имеют строковый тип. Если строки имеют тип, отличный от строкового, то он преобразуется к строке.

Внимание!

Если, например, строки имеют числовые координаты, то в функцию сравнения они передаются преобразованными в строки. Теперь, если внутри функции надо обратиться к ячейке отчета, координаты следует преобразовать обратно в число. Короче говоря, не надо забывать, что ЯЧЕЙКА[1,1] и ЯЧЕЙКА["1", "1"] — это разные ячейки.

Сортировка может раcпространяться не на все строки, а только на часть. Для этого необходимо указать в параметре <шаблон> шаблон строк, на которые раcпространяется сортировка. Например, можно отсортировать часть строк отчета по одному критерию, а часть по другому. Строки, не попавшие под шаблон, будут выстраиваться по умолчанию. В функцию сравнения будут передаваться такие пары координат, у которых хотя бы одна координата подпадает под шаблон. Все строки попавшие под два и более критерия сортировки (при нескольких вызовах СОРТИРОВАТЬ с пересекающимися шаблонами строк или вовсе без указания шаблонов) будут вначале сортироваться по первому критерию, и если в результате сравнения они окажутся равными по второму критерию и т.д.

Существуют следующие встроенные функции сравнения, которые могут применяться при сортировке отчета:

СРАВ_СЧЕТА — функция, сравнивающая два кода счета. Она обеспечивает стандартную сортировку для счетов, как они отображаются в плане счетов.

СРАВ_ЗНАЧ — функция, преобразующая строки в числа как при помощи функции ЗНАЧ! и сравнивающая их.

Пример:

СОРТИРОВАТЬ(СРАВ_СЧЕТА)

Замечание!

Необходимо отметить, что сортировка отчета никак не влияет на последовательность выборки ячеек в цикле ЯЧЕЙКИ. Более того, сортировка не выполняется непосредственно во время выполнения алгоритма. Вместо этого программа запоминает, для каких ячеек, какая сортировка должна использоваться, и вызывает ее уже после выполнения отчета.


СОРТИРОВАТЬВ

Функция СОРТИРОВАТЬВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СОРТИРОВАТЬВ используется для сортировки столбцов отчета.

Если сортировка отсутствует, то ячейки таблицы отсортированы по умолчанию. Однако в программе есть возможность сортировать столбцы на основании произвольного критерия, заданного на этапе выполнения алгоритма. Это делается при помощи функции СОРТИРОВАТЬВ.

Внимание!

Последовательность секций при сортировке не меняется. Сортировка влияет только на порядок записей внутри каждой секции.

Синтаксис:

СОРТИРОВАТЬВ (<функция сравнения> [,<шаблон>])

Здесь параметр

<функция сравнения>
задает функцию сравнения. Функция сравнения может быть либо встроенной, либо пользовательской, описанной внутри отчета либо в какой-либо библиотеке, однако она должна иметь следующий вид:

ФУНКЦИЯ ЧИСЛО: <имя>(СТРОКА: <столбец1>,<столбец2>)

Функция должна отвечать на вопрос, что больше <столбец1> или <столбец2>.

Если <столбец1> больше <столбец2>, то функция возвращает 1.

Если <столбец1> меньше <столбец2>, то функция возвращает - 1.

Если <столбец1> равна <столбец2>, то функция возвращает 0.

При этом, функция должна обладать тем свойством, что если <столбец1> меньше (с точки зрения функции сравнения) <столбец2>, то также и <столбец2> больше (с точки зрения функции сравнения) <столбец1>. И все это должно выполнятся для любых столбцов из отчета, например:

ФУНКЦИЯ ЧИСЛО: СРАВ_ЧИСЛА(СТРОКА: с1,с2)

ЕСЛИ ЗНАЧ(с1) < ЗНАЧ(с2) ТО

РЕЗУЛЬТАТ = - 1

ИНАЧЕ ЕСЛИ ЗНАЧ(с1) > ЗНАЧ(с2) ТО

РЕЗУЛЬТАТ = 1

ИНАЧЕ

РЕЗУЛЬТАТ = 0

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Внимание!

Программа не контролирует выполнение перечисленного выше условия, и если функция ему не удовлетворяет, это может привести к различным негативным последствиям, в том числе и зависанию программы.

Параметры <столбец1> и <столбец2> всегда имеют строковый тип. Если столбцы имеют тип, отличный от строкового, то он преобразуется к строке.

Внимание!

Если, например, строки имеют числовые координаты, то в функцию сравнения они передаются преобразованными в строки. Теперь, если внутри функции надо обратиться к ячейке отчета, координаты следует преобразовать обратно в число. Короче говоря, не надо забывать, что ЯЧЕЙКА[1,1] и ЯЧЕЙКА["1", "1"] — это разные ячейки.

Сортировка может раcпространяться не на все столбцы, а только на часть. Для этого необходимо указать в параметре <шаблон> шаблон столбцов, на которые раcпространяется сортировка. Например, можно отсортировать часть столбцов отчета по одному критерию, а часть по другому. Столбцы, не попавшие под шаблон, будут выстраиваться по умолчанию. В функцию сравнения будут передаваться такие пары координат, у которых хотя бы одна координата подпадает под шаблон. Все столбцы, попавшие под два и более критерия сортировки (при нескольких вызовах СОРТИРОВАТЬВ с пересекающимися шаблонами столбцов или вовсе без указания шаблонов), будут вначале сортироваться по первому критерию, и если в результате сравнения они окажутся равными по второму критерию и т.д.

Существуют следующие встроенные функции сравнения, которые могут применяться при сортировке отчета:

СРАВ_СЧЕТА — функция, сравнивающая два кода счета. Она обеспечивает стандартную сортировку для счетов, как они отображаются в плане счетов.

СРАВ_ЗНАЧ — функция, преобразующая строки в числа как при помощи функции ЗНАЧ! и сравнивающая их.

Пример:

СОРТИРОВАТЬВ(СРАВ_СЧЕТА)

Замечание!

Необходимо отметить, что сортировка отчета никак не влияет на последовательность выборки ячеек в цикле ЯЧЕЙКИ. Более того, сортировка не выполняется непосредственно во время выполнения алгоритма. Вместо этого программа запоминает, для каких ячеек, какая сортировка должна использоваться, и вызывает ее уже после выполнения отчета.


СПРАВКА

Функция СПРАВКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СПРАВКА вызывает встроенную справочную систему.

Синтаксис:

СПРАВКА (<ключевое слово>)

где

<ключевое слово>
строка, ключевое слово, по которому вызывается справка (A-Link).

Функция не возващает результата.

Пример:

СПРАВКА ("накладные") // Вызывает описание журнала "накладные"


СРАВ_ЗНАЧ

Функция СРАВ_ЗНАЧ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СРАВ_ЗНАЧ преобразует строки в числа как при помощи функции ЗНАЧ! и сравнивает их. Она обеспечивает сортировку чисел при использовании в СОРТИРОВАТЬ и СОРТИРОВАТЬВ.

Синтаксис:

СРАВ_ЗНАЧ(<строка1>,<строка2>),

где

<строка1>,<строка2>
выражение строкового типа.

Результат — число:

1, если <строка1> > <строка2>

-1, если <строка1> < <строка2>

0, если <строка1> = <строка2>

Пример:

СОРТИРОВАТЬ(СРАВ_ЗНАЧ)

См.также
Функция СРАВ_СЧЕТА


СРАВ_СЧЕТА

Функция СРАВ_СЧЕТА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СРАВ_СЧЕТА сравнивает два кода счета. Она обеспечивает стандартную сортировку для счетов, при использовании в СОРТИРОВАТЬ и СОРТИРОВАТЬВ, как они отображаются в плане счетов.

Синтаксис:

СРАВ_СЧЕТА(<счет1>,<счет2>),

где

<счет1>,<счет2>
выражение строкового типа.

Результат — число:

1, если <счет1> > <счет2>

-1, если <счет1> < <счет2>

0, если <счет1> = <счет2>

Пример:

СОРТИРОВАТЬ(СРАВ_СЧЕТА)

См.также
Функция СРАВ_ЗНАЧ


СТАРТ_БЛАНК

Функция СТАРТ_БЛАНК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАРТ_БЛАНК запускает на выполнение бланк по названию файла бланка.

Синтаксис I:

СТАРТ_БЛАНК[!] (<имя файла> [, <параметр1> [, ...] ] [, <только печать>] [, <файл экспорта> [: <ширина рисунка> [: <автовысота рисунка>] ] ])

где

<имя файла>
строка, задающая имя файла бланка;

<параметр1> и т.д.
параметры - переменные типа ЖУРНАЛ;

<только печать>
переменная логического типа, означающая что бланк не будет выводиться на экран, а будет сразу печататься;

<файл экспорта>
переменная типа строка, задающая файл в который будет экспортироваться бланк;

<ширина рисунка>
при экспорте в рисунок (расширение файла PNG) указывается ширина рисунка;
если параметр не указан, берется из настроек программы (опция Ширина (качество) рисунков);

<автовысота рисунка>
при экспорте в рисунок (расширение файла PNG) позволяет включить режим автоматического расчета высоты рисунка;
если параметр не указан или его значение равно НЕТ, высота будет равна высоте формата листа;

Возможны три варианта запуска бланка:

1). В отсутствие параметра <только печать> или когда он равен НЕТ. Тогда функция запускает бланк на выполнение. Если бланк не содержит вводных полей, то ждет, пока бланк рассчитается, и затем возвращает управление. Если бланк содержит вводные поля, то просто выводит на экран бланк и продолжает выполнение без расчета бланка.

2). Когда параметр <только печать> равен ДА, то функция рассчитывает бланк, не выводя его на экран, а затем сразу же его печатает.

3). Когда указан параметр <файл экспорта>, функция рассчитывает бланк, не выводя его на экран, а затем сразу же его экспортирует в указанный файл. Параметр <только печать> в этом случае указываться не должен. Тип файла определяется по расширению. Возможны различные форматы экспорта. Если вместо имени файла передана пустая строка или расширение не указано, будет выведен диалог сохранения файла.

Некоторые бланки используются для вывода информации на основе текущей, выбранной записи в журнале. Для этого внутри них вызывается функция ИЗ_ЖУРНАЛА, который загружает выбранную запись. Если такой бланк запустить при помощи функции СТАРТ_БЛАНК и передать в качестве параметра переменную типа ЖУРНАЛ, то вместо текущей записи ИЗ_ЖУРНАЛА вернет этот параметр.

Замечание!

Передача переменных типа ЖУРНАЛ работает только когда бланк не имеет входных граф.

Указание ! после имени функции предотвращает остановку расчета при ошибке старта бланка. Во 2-ом и 3-ем варианте запуска функция стартует в рамках транзaкции исходного алгоритма, а в 1-ом — в отдельной транзaкции.

Синтаксис II:

СТАРТ_БЛАНК[!] (бухоперации)

Запускает бланк, соответствующий бухгалтерской операции (по префиксу). Если операции соответствуют несколько бланков, выводится запрос выбора запускаемого бланка.

Примеры:

// Запустим бланк platpor.frm

СТАРТ_БЛАНК("platpor.frm")

накладные.РЕДАКТИРОВАТЬ // Отредактируем накладную

СТАРТ_БЛАНК("nakl", накладные, ДА) // И напечатаем ее

ЕСЛИ ИЗ_ЖУРНАЛА(накладные) = 1 ТО // Считаем текущую запись

// Сохраним накладную в формате Microsoft Excel

СТАРТ_БЛАНК("nakl",накладные,"nakl" + накладные.номер + ".xls")

КОНЕЦ_ЕСЛИ

См.также
Функция СТАРТ_ОПЕРАЦИЯ
Функция СТАРТ_ОТЧЕТ


СТАРТ_БРАУЗЕР

Функция СТАРТ_БРАУЗЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАРТ_БРАУЗЕР отображает на экране Веб-страницу. Без указания на протокол "http://" считается, что страница расположена в базе данных.

Синтаксис:

СТАРТ_БРАУЗЕР (<адрес> [,<заголовок окна>] [,<вид окна>])

или

СТАРТ_БРАУЗЕР! (<строка> [,<заголовок окна>] [,<вид окна>])

где

<адрес>
строка, задающая адрес Веб-страницы

<строка>
HTML-строка, которую надо отобразить в окне

<заголовок окна>
заголовок окна (если нужно)

<вид окна>
числовая константа, определяющая вид окна; если указано окноВнутреннее (по умолчанию), то веб-страница откроется в основном окне программы, если окноДиалог, то будет открыто отдельное диалоговое окно, если окноВнешнее, то будет открыто отдельное окно на весь экран.

Одновременно только одно окно указанного типа может быть на экране. Если при вызове функции окно уже открыто, оно будет обновлено.

Пример:

{ открываем Веб-страницу }

СТАРТ_БРАУЗЕР("dirinfo.html")

{ выводим окно с гипер-текстом }

СТАРТ_БРАУЗЕР!("<h1>Привет</h1>", окноДиалог)

См.также
СТАРТ_БЛАНК


СТАРТ_ЖУРНАЛ

Функция СТАРТ_ЖУРНАЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАРТ_ЖУРНАЛ открывает на редактирование нужный журнал по идентификатору. Функция лишь открывает окно редактора и после продолжает выполнение. Если необходимы какие-либо действия от пользователя, например выбор записи в журнале, необходимо использовать функцию ВЫБОР_ЗАПИСИ. Она приостанавливает выполнение вычислений на время работы с журналом.

Синтаксис (открытие редактора журнала):

СТАРТ_ЖУРНАЛ (<журнал>[:<вид журнала>[:<вид диалога>]] [,<условие>]

[,<заголовок>[,[<поля>:<возрастание>[,...]]] [:<текущая закладка> [:<вид оглавления>]]])

где

<журнал>
идентификатор журнала или переменная типа ЖУРНАЛ.

<вид журнала>
строковая константа, задает вид журнала (если журнал имеет несколько видов)

<вид диалога>
строковая константа, задает вид диалога редактирования записи (если журнал имеет несколько видов)

<условие>
выражение логического типа, определяющее условие на отображаемые записи. Только записи журнала, удовлетворяющие этому условию будут отображаться в окне.Условие может быть комбинированным на несколько журналов. Для журналов, которые имеют вид дерева условие раcпространяется записи, не являющиеся группами; на группы условие не действует, вместо этого на группы будет действовать условие: группа показывается, если в ней есть записи, попадающие под условие фильтра.

<заголовок>
задает заголовок окна. Указанное здесь значение имеет наибольший приоритет. Пустая строка означает заголовок по умолчанию.

<поля>
задает список полей сортировки (в случае выбора с условием)

<возрастание>
логическое выражение, определяющее порядок сортировки. Если ДА, то по возрастанию, если НЕТ, то по убыванию.

<текущая закладка>
используется в случае, если журнал имеет свое оглавление. Позволяет указать закладку, на которой должен быть открыт журнал. Если параметр не указан или указана пустая строка, то журнал открывается на закладке, которая была выбрана в последний раз.

<вид оглавления>
используется в случае, если журнал имеет свое оглавление. Позволяет указать вид оглавления. Это строковый параметр, который передается в обработчик и может влиять на его работу.

Без указания вида, если журнал имеет несколько видов, программа использует текущий (последний использовавшийся) вид, так что рекомендуется в этом случае в функции СТАРТ_ЖУРНАЛ указывать используемый вид или использовать метод ПРИМЕНИТЬ_ВИД. Этот же метод необходим для указания вида в случае подчиненных журналов детализации.

Если переменная <журнал> типа ЖУРНАЛ была считана из этого журнала перед вызовом функции СТАРТ_ЖУРНАЛ, то курсор в таблице редактора будет указывать на эту запись.

Возможно использование функции СТАРТ_ЖУРНАЛ! (с восклицательным знаком). Если окно с журналом уже открыто на экране, функция СТАРТ_ЖУРНАЛ не будет открывать второй экземпляр окна, а только лишь сделает его активным. Указание восклицательного знака принуждает каждый раз открывать новое окно редактора журнала.

Синтаксис (открытие выборки курсора):

СТАРТ_ЖУРНАЛ(<курсор> [:<вид диалога>] [,<заголовок>] [,<настройки>] [,<справка> ])

где

<курсор>
переменная типа КУРСОР. Курсор может иметь дополнительные описания названия, формата, и подсветки полей.

<вид диалога>
для редактируемых курсоров, строковая константа, задает вид диалога редактирования записи (если журнал, по которому построен курсор, имеет несколько видов)

<заголовок>
задает заголовок окна. Указанное здесь значение имеет наибольший приоритет. Пустая строка означает заголовок по умолчанию.

<настройки>
необязательный параметр, задает имя, под которым сохраняются настройки

<справка>
строка, определяющая ключевое слово для справочной системы

Также как и при выборе записи из журнала, если переменные типа ЖУРНАЛ, использующиеся курсором, были считаны перед вызовом функции СТАРТ_ЖУРНАЛ, то в таблице редактора будет выделена считанная запись. Программа ищет ее по значениям полей, составляющих первичный ключ этих журналов.

Внутри редактора доступны оглавления первого используемого в курсоре журнала. Выборка может и не содержать полей, на которые накладывает условие оглавления (однако в этом при переключении между оглавлениями не будет происходить перепозиционирование курсора на выбранную запись).

В процессе выполнения алгоритма курсор может принимать различные значения. Настройки окна, которые изменяет пользователь в процессе просмотра, например, настройки видимых колонок, изначально привязываются к первому используемому журналу. Если пользователь скроет какую-то колонку, программа запомнит это. Однако если при выполнении алгоритма курсор был построен иначе, в таблице будут отображаться совсем другие колонки и настройки пользователя будут бесполезны. Для устранения этой проблемы предназначен параметр <настройки>. Он должен определять различные строки для различных значений курсора, тогда настройки окна и, в частности, настройки видимых колонок будут разные.

Пример 1:

СТАРТ_ЖУРНАЛ(накладные) // Отображаем журнал накладные

Пример 2:

// Накладные только после указанной даты

СТАРТ_ЖУРНАЛ(накладные, дата > ДАТА_НАЧ )

// Операции по банку

СТАРТ_ЖУРНАЛ(бухоперации, бухпроводки.дебет = "51" ИЛИ бухпроводки.дебет = "51", "Банк")

Пример 3:

// Создаем курсор

// (предполагается, что "клиенты" связаны с "накладные", например так:

// клиенты.код = накладные.клиент)

КУРСОР кур ПО ЖУРНАЛУ клиент[код, название] к, СУММА(накладные.сумма):"Сумма" (ДА)

// Отобразим таблицу с тремя колонками: Код, Название и Сумма

СТАРТ_ЖУРНАЛ(кур)

См.также
Функция СТАРТ_БЛАНК
Функция ВЫБОР_ЗАПИСИ


СТАРТ_ОПЕРАЦИЯ

Функция СТАРТ_ОПЕРАЦИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАРТ_ОПЕРАЦИЯ запускает на выполнение нужную типовую операцию по ее названию. После завершения работы возвращает управление.

Синтаксис:

СТАРТ_ОПЕРАЦИЯ[!](<название операции>[,<параметр1>[,...]])

где

<название операции>
строка, задающая название типовой операции.

<параметр1> и т.д.
параметры - переменные типа ЖУРНАЛ

Функция возвращает логическое значение. Если пользователь нажал в диалоге редактирования операции <Отмена>, функция вернет НЕТ. Если пользователь нажал в диалоге <OK> или типовая не содержит диалог редактирования, функция вернет ДА.

Функция не передает никаких параметров операции и не возвращает никаких параметров.

Если внутри типовой вызывается функция ИЗ_ЖУРНАЛА, а при вызове СТАРТ_ОПЕРАЦИЯ передана в качестве параметра переменная типа ЖУРНАЛ, то вместо текущей записи журнала функция ИЗ_ЖУРНАЛА вернет переданный параметр.

Указание ! (восклицательного знака) после имени функции предотвращает остановку расчета при ошибке старта операции. Операция всегда стартует в рамках транзaкции исходного алгоритма.

Пример:

СТАРТ_ОПЕРАЦИЯ("Товары : Расчет себестоимости")

См.также
Функция СТАРТ_БЛАНК
Функция СТАРТ_ОТЧЕТ


СТАРТ_ОТЧЕТ

Функция СТАРТ_ОТЧЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАРТ_ОТЧЕТ запускает на выполнение отчет по названию файла отчета.

Синтаксис:

СТАРТ_ОТЧЕТ[!](<имя файла отчета> [ : <файл экспорта>] [,<колонка>[,<строка>[,<ячейка>]]])

Здесь

<имя файла отчета>
задает имя файла (можно без расширения), а остальные параметры соответствуют параметрам вызываемого отчета указанным после ВЫЧИСЛИТЬ в его расчетной части.

<файл экспорта>
переменная типа строка, задающая файл в который будет экспортироваться отчет

Возможно использование функции СТАРТ_ОТЧЕТ! (с восклицательным знаком). Если окно с отчетом уже открыто на экране, функция СТАРТ_ОТЧЕТ не будет открывать второй экземпляр окна, а только лишь сделает его активным. Указание восклицательного знака принуждает каждый раз открывать новое окно отчета.

Когда указан параметр <файл экспорта>, функция рассчитывает отчет, не выводя его на экран, а затем сразу же его экспортирует в указанный файл. Тип файла определяется по расширению. Возможны различные форматы экспорта.

Замечание!

Отчетный период, за который формируется отчет, соответствует отчетному периоду на момент вызова СТАРТ_ОТЧЕТ (свойства ДАТА_НАЧ и ДАТА_КОН в отчете вернут значения, действующие на момент вызова функции)

Пример:

СТАРТ_ОТЧЕТ("Oborot")

См.также
ВСТАВИТЬ_ОТЧЕТ


СТАРТ_ТЕРМИНАЛ

Функция СТАРТ_ТЕРМИНАЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАРТ_ТЕРМИНАЛ открывает окно терминала ввода данных. Окно терминала ввода отличается от классического окна редактирования записи журнала. Оно предназначено для организации работы кассира, оператора, и т.д. Окно терминала не содержит обычных полей редактирования записи, их заменяют графы ввода и вывода, представленные глобальными переменными. Если журнал имеет детализацию, то в окне терминала будет окно детализации. Внизу окна терминала отображается строка статуса, содержимое которой определяется обработчиком строки статуса. Для поддержки сенсорных экранов окно терминала может иметь кнопки.

При вызове СТАРТ_ТЕРМИНАЛ появляется окно терминала ввода данных и алгоритм продолжит свою работу.

Синтаксис:

СТАРТ_ТЕРМИНАЛ( <журнал>[:<вид журнала>]

[<графа вывода> [, <графа вывода> [, ...]]],

[<графа ввода> [, <графа ввода> [, ...]]],

[<кнопка> [, <кнопка> [, ...]]],

[ ,<размещение окна> ]

[ ,<клавиша добавления>] [ ,<клавиша закрытия>]

[ ,<клавиша "Да">] [ ,<"клавиша "Нет">]

[ ,<клавиша "Вверх">] [ ,<клавиша "Вниз">]

[ ,<шрифт таблицы> [: <цвет фона таблицы>] ] [ ,<шрифт диалогов> ]

[ ,<справка> ] [ ,<номер интерфейса> ] [ ,<заголовок окна> ] )

<графа вывода> := <текст> [: <ширина>] [: <шрифт> [: <цвет фона>] ] [: <выравнивание>] [: <высота>]

<графа ввода> := <переменная> [: <ширина>] [: <шрифт> [: <цвет фона>] ]

<кнопка> := <текст> : <команда> [: <ширина>] [: <шрифт> [: <цвет фона>] ] [: <горячая клавиша>] [: <высота>]

где:

<журнал>
идентификатор журнала или переменная типа ЖУРНАЛ.

<вид журнала>
строковая константа, задает вид журнала (если журнал имеет несколько видов)

<текст>
текст графы вывода, может быть:
1) строковой константой строкового типа
2) глобальной переменной строкового типа
подробнее см.ниже раздел Текст графы

<переменная>
содержимое графы ввода, глобальная переменная строкового типа

<ширина>
ширина графы (ввода или вывода) в процентах от ширины всего окна терминала (0..100%), при указании 0 (нуля), ширина будет вычисляться по фактической ширине выводимой строки

<высота>
высота графы (ввода или вывода) в процентах от высоты всего окна терминала (0..100%), при указании 0 (нуля), ширина будет вычисляться по фактической высоте выводимой строки

<шрифт>
выражение типа шрифт, задающее шрифт графы (ввода или вывода), а для графы вывода и ее цвет, если шрифт не указан по умолчанию используется шрифт диалогов

<цвет фона>
цвет фона граф вывода, ввода и кнопок

<выравнивание>
выражение логического типа, указывающее на то, что графа вывода должна быть выровнена направо (по умолчанию = НЕТ, т.е. налево)

<команда>
строка, определяющее команду для кнопок (см.ниже раздел Команды)

<размещение окна>
число, определяющее вариант размещения окна (см.ниже Размещение)

<клавиша добавления>
строка, определяющая клавишу или комбинацию клавиш, при нажатии на которую будет происходить добавление записи

<клавиша закрытия>
строка, определяющая клавишу или комбинацию клавиш, при нажатии на которую будет происходить закрытие окна. Если <обычное окно> = НЕТ, то это будет единственный способ закрытия окна диалога. Если <обычное окно> = ДА, то окно можно будет закрыть и обычным способом: по кнопке "X".

<клавиша "Да">
если внутри окна терминала будут появляться диалоговые окна с вопросами, то при нажатии на указанную клавишу будет происходить выбор кнопки "Да" ("Yes") или "Ок"

<клавиша "Нет">
если внутри окна терминала будут появляться диалоговые окна с вопросами, то при нажатии на указанную клавишу будет происходить выбор кнопки "Нет" ("No") или <Отмена>

<клавиша "Вверх">
строка, определяющая клавишу или комбинацию клавиш, при нажатии на которую будет скроллироваться вверх таблица детализации

<клавиша "Вниз">
строка, определяющая клавишу или комбинацию клавиш, при нажатии на которую будет скроллироваться вниз таблица детализации

<шрифт таблицы>
выражение типа шрифт, задающее шрифт таблицы детализации, если шрифт не указан по умолчанию используется шрифт диалогов

<цвет фона таблицы>
цвет фона таблицы детализации

<шрифт диалогов>
выражение типа шрифт, задающий шрифт для всех диалогов, которые будут открываться в процессе работы с терминалом

<справка>
строка, определяющая ключевое слово для справочной системы

<номер интерфейса>
номер интерфейса при наличии нескольких окон ввода; к этому номеру привязываются настройки элементов интерфейса, граф, выполненные в процессе настройки

<заголовок окна>
позволяет переопределить заголовок окна; по умолчанию в заголовке будет написано — интерфейс кассира.

Если журнал имеет несколько видов (а вид влияет на отображение детализации), то желательно указать конкретный используемый вид в параметре <вид журнала>. Без указания вида программа использует текущий (последний использовавшийся) вид.

Внутри окна терминала доступны горячие клавиши контекстного меню основного журнала, для которого вызывается СТАРТ_ТЕРМИНАЛ, и горячие клавиши его детализации. В алгоритмах, которые вызываются при нажатии клавиш, редактируемая запись доступна после вызова функции ИЗ_ЖУРНАЛА. Любые изменения в детализации полученной при помощи ИЗ_ЖУРНАЛА переменной, отразятся в таблице детализации окна терминала. А любые изменения глобальных переменных, отразятся в содержимом граф вывода.

Также, при запуске терминала и при любом изменении в данных программа вызывает обработчик строки статуса, как для получения содержимого строки статуса окна, так и для получения содержимого всех граф вывода. Изменять содержимое граф вывода можно изменяя соответствующие глобальные переменные.

Расположение граф в окне терминала может настраиваться. После завершения настройки необходимо выбрать в контекстном меню пункт "Закрепить панели". Выполненные настройки сохраняются при выходе из программы. Они привязаны к номеру интерфейса, указываемому в параметре <номер интерфейса>.

Команды

При нажатии кнопок окна терминала срабатывает команда, заданная строковым параметром <команда>. В качестве команды может выступать:

·Название типовой операции, которая будет вызвана;

·Строка "#". Она определяет кнопку добавления записи в окне терминала;

·Строка начинающаяся с "#" вида "#" + РР + <название типовой> также определяет кнопку добавления записи, но означает, что сначала будет вызвана типовая операция, а потом произойдет добавление записи;

Замечание!

Может возникнуть ситуация, когда после выполнения типовой операции необходимо отказаться от добавления (например, в процессе интерфейса с пользователем и его отказе от добавления). В этом случае необходимо завершить типовую операцию функцией СТОП_ВСЕ.

·Строка начинающаяся с "#" вида "#" +<символ> — определяет команду подстановки указанного символа в окно ввода, например "#0" — поставит цифру 0 в окно ввода, а "#" + СИМВ(8) равнозначно нажатию клавиши <Backspace> на клавиатуре, т.е. удаление символа в окне ввода.

Текст графы

Текст графы может содержать дополнительные параметры, которые передаются в одной строковой переменной. Синтаксис:

<собственно текст графы> + РР + <цвет текста> + РР + <цвет фона> + РР + <картинка>

Параметр <собственно текст графы> определяет отображаемый на экране текст. В нём можно использовать угловые скобки для выделения текста жирным, например "<Здесь жирный текст>".

Здесь параметры <цвет текста> и <цвет фона> переопределяют заданные при старте окна терминала цвет текста и фона при каждом изменении переменной. Чтобы вернуть исходные цвета достаточно передать пустую строку или СТР(цвНет).

Параметр <картинка> определяет путь к файлу картинки. Картинка может располагаться как на диске, так и внутри базы данных. Если графа не имеет отображаемого текста, картинка будет занимать её полностью. Если текст задан, он будет отображаться над картинкой. Картинка отображается только если <обычное окно> = НЕТ (окно терминала на весь экран).

Размещение

<размещение окна>

С помощью специальных констант можно указать вариант размещения окна терминала:

термНаВесьЭкран (по умолчанию) — окно терминала будет распахнуто на весь экран, главное меню программы, панель управления и т.д. будут не видны;

термВОкне — окно терминала будет обычным окном программы с возможностью переключения между ним и другими окнами;

термВЛевомОкне, термВПравомОкне — окно терминала будет закреплено слева или справа, можно будет открывать другие окна;

Пример:

Пример демонстрирует, как надо создавать окно терминала и как окно терминала обменивается информацией с обработчиком строки статуса и типовой операцией, вызываемой по горячей клавише в окне. Пример состоит из трех файлов:

1) "Terminal" — библиотеке, где объявлены глобальные переменные и находятся функции для работы с терминалом

2) Библиотеке обработчиков журнала "чеки"

3) Файле типовых операций

// Текст библиотеки Terminal для работы с терминалом ввода

// Переменные, через которые происходит обмен информацией с окном терминала

ГЛОБАЛ ПЕРЕМ СТРОКА : ТермИтого, ТермТекТовар, ТермТекПозиция, ТермТекСумма, ТермВвод,

ТермТекКод, ТермТекКол, ТермТекЦена

// Создает окно терминала

ФУНКЦИЯ СтартТерминал

итого_шрифт ЭТО ШРИФТ

ДЛЯ итого_шрифт

имя = "Arial"

размер = 140

цвет = цвТемноЗеленый

КОНЕЦ_ДЛЯ

обычный_шрифт ЭТО ШРИФТ

ДЛЯ обычный_шрифт

имя = "Arial"

размер = 30

КОНЕЦ_ДЛЯ

увеличенный_шрифт ЭТО ШРИФТ

ДЛЯ увеличенный_шрифт

имя = "Arial"

размер = 30

КОНЕЦ_ДЛЯ

ввод_шрифт ЭТО ШРИФТ

ДЛЯ ввод_шрифт

имя = "Courier New"

размер = 20

полужирный = ДА

КОНЕЦ_ДЛЯ

СТАРТ_ТЕРМИНАЛ (чеки,

[ТермТекКод:20:увеличенный_шрифт,
ТермТекТовар:80:увеличенный_шрифт,
"Поз":20:обычный_шрифт,ТермТекПозиция:20:увеличенный_шрифт,
"Кол":20:обычный_шрифт,ТермТекКол:20:увеличенный_шрифт,
"Цена":20:обычный_шрифт,ТермТекЦена:20:увеличенный_шрифт,
"Сумма":40:обычный_шрифт,ТермТекСумма:40:увеличенный_шрифт,
ТермИтого:100:итого_шрифт:ДА],
[ТермВвод:20:ввод_шрифт], ДА, "F7", "F12", "Y", "N", "Up", "Down", обычный_шрифт)

КОНЕЦ_ФУНКЦИИ

// Функция по коду ищет товар в справочнике и добавляет его в детализацию

// Функция, вызываемая из типовой операции контекстного меню,

// изменяет глобальные переменные для изменения содержимого окна терминала

ФУНКЦИЯ ПоискПоКоду

ЕСЛИ НЕ товары.НАЙТИ(код_стр = ТермВвод) ТО

СООБЩЕНИЕ("Товар с кодом <" + ТермВвод + "> не найден")

СТОП

КОНЕЦ_ЕСЛИ

ИЗ_ЖУРНАЛА(чеки)

доп ЭТО чеки_доп

доп.код_товара = товары.код

доп.цена = товары.цена_розн

доп.кол = 1

доп.сумма = доп.цена * доп.кол

чеки.ЗАП_ДЕТАЛЬ(доп)

// Часть глобальных переменных изменяется в этой типовой

ТермТекКод = товары.код_стр

ТермТекТовар = товары.название

ТермТекПозиция = СТР(чеки.КОЛ_ДЕТАЛЕЙ)

ТермТекСумма = СТРФ(доп.сумма,255,2)

ТермТекЦена = СТРФ(доп.цена,255,2)

ТермТекКол = СТРФ(доп.кол)

КОНЕЦ_ФУНКЦИИ

//-------------------------------------------------------------------------------------

// Текст библиотеки обработчиков для журнала "чеки"

// Обработчик изменяет глобальные переменные для изменения содержимого окна терминала

ФУНКЦИЯ ЖУРНАЛ СТРОКА: Статус ДЛЯ_ЖУРНАЛА(чеки)

// Выдаем строку статуса при просмотре журнала "чеки"

// Подсчитываем сумму чека

итого = 0

ЦИКЛ ДЛЯ (б = 1, КОЛ_ДЕТАЛЕЙ)

о = ДЕТАЛИЗАЦИЯ(б)

итого += о.сумма

КОНЕЦ_ЦИКЛА

// Переменная ТермИтого изменяется в строке статуса, так удобнее

ТермИтого = СТРФ(итого,255,2)

Статус = "" // Если надо сформируем какую строку статуса

КОНЕЦ_ФУНКЦИИ

//-------------------------------------------------------------------------------------

// Типовые операции для работы с терминалом ввода

// Операция запускает окно терминала

ОПЕРАЦИЯ СтартТерминал

ВЫЧИСЛИТЬ

ИСПОЛЬЗОВАТЬ("terminal")

СтартТерминал

КОНЕЦ

// Операция прописана в контекстном меню журнала чеки и вызывается

// при нажатии горячей клавиши, соответствующей этому пункту меню

ОПЕРАЦИЯ ПоискПоКоду

ВЫЧИСЛИТЬ

ИСПОЛЬЗОВАТЬ("terminal")

ПоискПоКоду

КОНЕЦ

Результат работы (после расстановки граф):

См.также
Функция ЕСТЬ_ТЕРМИНАЛ
Функция ОБНОВИТЬ_ТЕРМИНАЛ
Метод ВНУТРИ_ТЕРМИНАЛА
Метод СТАРТ_ЗАПИСЬ


СТАТУС

Функция СТАТУС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАТУС выдает информационную строку о текущих вычислениях в строке статуса или по центру экрана.

Синтаксис:

СТАТУС(<информационная строка> [,<по-центру>])

Строка <информационная строка> по умолчанию отображается слева в строке статуса, заменяя текст "Выполняются вычисления...". С помощью дополнительного параметра <по-центру>, она может быть выведена по центру экрана.

Замечание!

Программа, чтобы не замедлять работу алгоритма, меняет статус не чаще чем 10 раз в секунду, даже если функция вызывается чаще. Можно использовать функцию СТАТУС! (с восклицательным знаком) чтобы убрать это ограничение.

Пример:

ЦИКЛ СЧЕТА ( сч="70/*" )

// ...

СТАТУС("Обрабатывается "+НАЗВ(сч))

КОНЕЦ_ЦИКЛА

См.также
Функция СТАТУС_ГЛОБАЛ


СТАТУС_ГЛОБАЛ

Функция СТАТУС_ГЛОБАЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАТУС_ГЛОБАЛ добавляет информацию в строку статуса главного окна программы.

Синтаксис:

СТАТУС_ГЛОБАЛ(<код> , <текст> [, <типовая операция>] )

где

<код>
строка, уникальный идентификатор элемента строки статуса.

<текст>
строка, текст информации

<типовая операция>
имя типовой операции, которая будет вызываться, если кликнуть по надписи в строке статуса

Параметр <код> определяет уникальный идентификатор элемента строки статуса. Повторный вызов функции СТАТУС_ГЛОБАЛ с тем же кодом заменит эту строку на новую. Повторный вызов с тем же кодом и пустым текстом (параметр <текст> = "") удалит элемент строки статуса. Вызов функции с другим кодов добавит второй элемент строки статуса.

Пример:

СТАТУС_ГЛОБАЛ("обмен", "Обмен завершен "+СТР(ВРЕМЯ_ТЕК))

См.также
Функция СТАТУС


СТАТЬИ

Функция СТАТЬИ

Ключевые слова и функции от А до Я Ключевые слова

 Вернуться к началу раздела

Смотрите Ключевое слово ЦИКЛ СТАТЬИ

Описание:

Функция СТАТЬИ оптимизирует доступ к указанным статьям налогового учета. После вызова СТАТЬИ функции для работы со статьями налогового учета работают значительно быстрее.

Синтаксис:

СТАТЬИ (<шаблон> [,<уровень>]),

где

<шаблон1>
шаблон статей

<уровень>
необязательный параметр, указывающий максимальный уровень субстатей;

Замечание!

Так как сама функция СТАТЬИ выполняется достаточно медленно, ее имеет смысл применять в том случае, если функции доступа к статьям вызываются многократно.

Пример:

// Оптимизируем доступ к некоторым статьям

СТАТЬИ ("МР/*;ПР/*;ОТ/*")

// Вызываем функции для этих статей

ЕСЛИ СТАТЬЯ_РАСХ("МР/М") И НЕ СТАТЬЯ_КОСВ("МР/М") ТО

прям += ОБНУ("МР/М")

КОНЕЦ_ЕСЛИ


СТАТЬЯ

Функция СТАТЬЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАТЬЯ выдает по коду статьи учета ее полное название.

Синтаксис:

СТАТЬЯ (<код статьи>)

где

<код статьи>
строка, соответствующая коду статьи.

Результат — строка.

Пример:

а1 = СТАТЬЯ ("ВД") // а1 = "Внереализационные доходы"


СТАТЬЯ_ВЕРНА

Функция СТАТЬЯ_ВЕРНА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАТЬЯ_ВЕРНА проверяет, может ли использоваться указанная статья в данной проводке (согласно настройкам корректных проводок).

Синтаксис:

СТАТЬЯ_ВЕРНА (<дебет>,<кредит>,<статья>)

где

<дебет>
строка, соответствующая коду дебета проводки.

<кредит>
строка, соответствующая коду кредита проводки.

<статья>
строка, соответствующая коду проверяемой статьи.

Результат — логика.

Пример:

// Делаем налоговую проводку только если статья подходит, т.е. без выдачи запроса

// о возможности использования указанной статьи в проводке

ПРОВОДКА(дебет, кредит, сумма)

ЕСЛИ СТАТЬЯ_ВЕРНА(дебет, кредит, статья) ТО

ПРОВОДКА_НУ(статья)

КОНЕЦ_ЕСЛИ


СТАТЬЯ_ДОХ

Функция СТАТЬЯ_ДОХ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАТЬЯ_ДОХ позволяет определить, является ли указанная статья доходом.

Синтаксис:

СТАТЬЯ_ДОХ (<код статьи>)

где

<код статьи>
строка, соответствующая коду статьи.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

а1 = СТАТЬЯ_ДОХ ("ВД") // а1 = ДА


СТАТЬЯ_КОРР

Функция СТАТЬЯ_КОРР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАТЬЯ_КОРР выдает соответствующую проводке статью по умолчанию, которая или задана в таблице корректных проводок, или указана в аналитике счета дебета или кредита.

Синтаксис:

СТАТЬЯ_КОРР (<дебет>,<кредит>)

где

<дебет>, <кредит>
строка, соответствующая коду счета в плане счетов или расширенный код счета.

Результат — строка — код статьи. Если статья не задана, возвращает пустую строку.

Пример:

а1 = СТАТЬЯ_КОРР ("20/У","70") // а1 = "ОТ/ЗП"


СТАТЬЯ_КОСВ

Функция СТАТЬЯ_КОСВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАТЬЯ_КОСВ позволяет проверить, является ли указанная статья расхода косвенной или прямой.

Синтаксис:

СТАТЬЯ_КОСВ (<код статьи>)

где

<код статьи>
строка, соответствующая коду статьи.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

а1 = СТАТЬЯ_КОСВ ("МР/М") // а1 = НЕТ


СТАТЬЯ_РАСХ

Функция СТАТЬЯ_РАСХ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАТЬЯ_РАСХ позволяет определить, является ли указанная статья расходом.

Синтаксис:

СТАТЬЯ_РАСХ (<код статьи>)

где

<код статьи>
строка, соответствующая коду статьи.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

а1 = СТАТЬЯ_РАСХ ("ВД") // а1 = НЕТ


СТАТЬЯ_СУЩ

Функция СТАТЬЯ_СУЩ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТАТЬЯ_СУЩ позволяет определить, существует ли статья с заданным кодом.

Синтаксис:

СТАТЬЯ_СУЩ (<код статьи>)

где

<код статьи>
строка, соответствующая коду статьи.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

а1 = СТАТЬЯ_СУЩ ("ВД") // а1 = ДА


СТЕК

Функция СТЕК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТЕК возвращает строку с отладочной информацией. Строка содержит последовательность вызовов функций до момента вызова функции СТЕК.

Синтаксис:

СТЕК

Результат — строка.

Пример:

ОТЛАДКА (СТЕК)

См.также
Функция СЛЕДИТЬ
Встроенный отладчик


СТОРНО_КОРР

Функция СТОРНО_КОРР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТОРНО_КОРР проверяет, будет ли сумма по налоговому учету в данной проводке (согласно настройкам корректных проводок) сторнироваться (в настройках корректных проводок опция Сумма образуется как стоит в значении Сторно суммы).

Синтаксис:

СТОРНО_КОРР (<дебет>,<кредит>)

где

<дебет>
строка, соответствующая коду дебета проводки.

<кредит>
строка, соответствующая коду кредита проводки.

Результат — логика.

Пример:

// Определяем сумму для налоговой проводки

ПРОВОДКА(дебет, кредит, сумма)

ЕСЛИ СТОРНО_КОРР(дебет, кредит) ТО

ПРОВОДКА_НУ(-сумма)

КОНЕЦ_ЕСЛИ


СТР

Функция СТР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТР преобразует число в строку в заданном формате (неиспользуемые позиции перед числом заполняются пробелами). Также, функция преобразует к строке любой другой тип.

Синтаксис:

СТР ( <значение> [,<длина поля> [,<знаков после запятой>] ] ),

или

СТР ( <значение>:<знаков после запятой> )

где

<значение>
число или выражение произвольного типа;

<длина поля>
общая длина поля, включая десятичную точку;

<знаков после запятой>
количество десятичных знаков после запятой для чисел.

Результат — строка.

Замечание!

Если длина поля не задана, то выводится столько цифр, сколько нужно для отображения всего числа. Если длина поля задана, но не задано количество знаков после запятой, программа будет оставлять такое кол-во знаков, чтобы не пришлось округлять.

Пример:

// Преобразование чисел

СТР (3/4) // Результат: "0.75"

СТР (100*100) // Результат: "10000"

СТР (5,3) // Результат: " 5"

СТР (5,5,2) // Результат: " 5.00"

СТР (3/4,5,1) // Результат: " 0.8"

// Преобразование других типов

СТР (01.01.2001) // Результат: "01.01.2001"

СТР (ДА) // Результат: "ДА"

СТР (ПУСТО) // Результат: ""

СТР (клПокуп) // Результат: "кл.Покуп"

См. также
Функция СТР0
Функция СТРФ


СТР0

Функция СТР0

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТР0 преобразует число в строку в заданном формате (неиспользуемые позиции перед числом заполняются нулями).

Синтаксис:

СТР0 ( <число> [,<длина поля> [,<знаков после запятой>] ] ),

где

<число>
выражение числового типа;

<длина поля>
общая длина поля, включая десятичную точку;

<знаков после запятой>
количество десятичных знаков после запятой.

Результат — строка.

Замечание!

Если длина поля не задана, то выводится столько цифр, сколько нужно для отображения всего числа. Если длина поля задана, но не задано количество знаков после запятой, программа будет оставлять такое кол-во знаков, чтобы не пришлось округлять.

Пример:

СТР0 (3/4) // Результат: "0.75"

СТР0 (100*100) // Результат: "10000.00"

СТР0 (5,3) // Результат: "005"

СТР0 (9,5) // Результат: "00009"

СТР0 (3/4,5,1) // Результат: "000.8"

См. также
Функция СТР
Функция СТРФ


СТРОЧ

Функция СТРОЧ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТРОЧ преобразует заглавные буквы строки в строчные.

Синтаксис:

СТРОЧ (<строка>)

где

<строка>
выражение строкового типа.

Результат — строка.

Пример:

стр = СТРОЧ ("АРМАТУРА №15") // стр = "арматура №15"

См. также
Функция ЗАГЛ


СТРОКА_СИМВ

Функция СТРОКА_СИМВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТРОКА_СИМВ возвращает строку, состоящую из повторения заданного символа.

Синтаксис:

СТРОКА_СИМВ (<символ>, <повторений>)

где

<символ>
символ, который надо повторять.

<повторений>
общее количество повторений символа.

Результат — строка.

Вместо символа можно передавать и строку символов, тогда повторяться будут все они.

Пример:

стр = СТРОКА_СИМВ ("0", 10) // стр = "0000000000"
стр = СТРОКА_СИМВ ("+", 5) // стр = "+++++"
стр = СТРОКА_СИМВ ("01", 3) // стр = "010101"

См. также
Функция ЗАГЛ


СТРФ

Функция СТРФ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СТРФ аналогична функции СТР, но при выводе чисел если установлена опция "выделение тысяч в документах" на закладке "форматы" в общих настройках программы (или опция "выделение тысяч в документах" на закладке "форматы" в параметрах бланка) будет отделять тысячи разделителем.

Синтаксис:

СТРФ ( <число> [,<длина поля> [,<знаков после запятой>] ] ),

или

СТРФ ( <число> : <знаков после запятой> ),

где

<число>
выражение числового типа;

<длина поля>
общая длина поля, включая десятичную точку;

<знаков после запятой>
количество десятичных знаков после запятой.

Результат — строка.

Замечание!

Если длина поля не задана, то выводится столько цифр, сколько нужно для отображения всего числа. Если длина поля задана, но не задано количество знаков после запятой, программа будет оставлять такое кол-во знаков, чтобы не пришлось округлять.

Пример:

СТРФ (1000) // Результат: "1 000" если опция выделения тысяч активна

СТРФ (1000000) // Результат: "1 000 000" если опция выделения тысяч активна

См. также
Функция СТР0
Функция СТР


СУБСЧЕТ

Функция СУБСЧЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СУБСЧЕТ проверяет, является ли счет субсчетом для счета.

Синтаксис:

СУБСЧЕТ (<код субсчета>, <код счета> ),

где

<код субсчета>
расширенный код счета для проверки;

<код счета>
расширенный код счета верхнего уровня, для которого проверяется субсчет;

Результат — логика.

Непосредственно для счетов из плана счетов функция бесполезна, т.к. проверить, что счет является субсчетом, просто:

субсчет = счет + "/*"

Однако, функция СУБСЧЕТ проверяет не только счета из плана счетов, но и расширенные коды счетов с аналитическими признаками, имеющими древовидную структуру. Если у счета одна аналитика, то функция возвращает ДА когда эта аналитика у <код субсчета> входит в группу аналитики у <код счета>. Если аналитик у счета несколько, то функция возвращает ДА когда хотя бы одна аналитика у <код субсчета> входит в группу аналитики у <код счета>, а все оставшиеся коды аналитик либо совпадают, либо у <код счета> они не указаны.

Пример:

а = СУБСЧЕТ("10","20") // а = НЕТ

а = СУБСЧЕТ("10","10") // а = НЕТ

а = СУБСЧЕТ("10/М","10") // а = ДА

// Если у 10/М есть аналитика по материалам и справочник материалов имеет древовидную структуру, то:

а = СУБСЧЕТ("10/М/Стол","10/М/Мебель") // а = ДА, если "Стол" входит в группу материалов "Мебель"

// Если у 10/М есть аналитика по материалам и складам, а справочник материалов имеет древовидную структуру, то:

а = СУБСЧЕТ("10/М/Стол/Склад","10/М/Мебель") // а = ДА, если "Стол" входит в группу материалов "Мебель"

а = СУБСЧЕТ("10/М/Стол/Склад","10/М/Мебель/Склад") // а = ДА, если "Стол" входит в группу материалов "Мебель"


СУММАМ

Функция СУММАМ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СУММАМ возвращает сумму числового или строкового массива.

Синтаксис:

СУММАМ (<массив>[, <от>[, <до>]] [, <шаблон>] [, <разделитель>])

где

<массив>
массив. Дополнительно можно указать числовые параметры <от> и <до> для суммирования массивов в указанном диапазоне или строковый параметр <шаблон> для суммирования всех элементов, индекс которых удовлетворяет шаблону. При суммировании строкового массива, после указания шаблона можно указать <разделитель>, тогда при объединении строк, они будут отделяться разделителем.

Результат зависит от типа массива.

Пример:

м!1=10 м!2=-10

с!1="Как" с!2=" дела"

с1=СУММАМ (м) // переменной с1 присваивается 0

с2=СУММАМ (с) // переменной с2 присваивается "Как дела"

с3=СУММАМ (["Инфо","-","Предприятие"]) // переменной с3 присваивается "Инфо-Предприятие"

с4=СУММАМ (м, 2, 2) // переменной с4 присваивается -10

с5=СУММАМ (["A","B","C","D"],"*",";") // переменной с5 присваивается "A;B;C;D"

См.также
Функция МАКСМ
Функция МИНМ
Функция ВСЕГОМ
Функция НАЙТИМ


СУММАП

Функция СУММАП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СУММАП возвращает число прописью.

Синтаксис:

СУММАП (<сумма>)

где

<сумма>
числовое выражение.

Результат — строка.

Замечание!

Функция СУММАП округляет сумму до целого числа. При необходимости получить прописью всю сумму, с учетом и рублей, и копеек, используйте функцию СУММАПРОП.

Пример:

с1=СУММАП (75) // переменной с1 присваивается строка "Семьдесят пять"

с2=СУММАП (105.90) // переменной с2 присваивается строка "Сто шесть"

с3=СУММАП (РУБ (105.90) ) // переменной с3 присваивается строка "Сто пять"


СУММАП_АНГЛ

Функция СУММАП_АНГЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СУММАП_АНГЛ возвращает сумму прописью на английском языке.

Синтаксис:

СУММАП_АНГЛ (<сумма>)

где

<сумма>
числовое выражение.

Результат — строка.

Замечание!

Функция СУММАП_АНГЛ округляет сумму до целого числа. При необходимости получить прописью только рубли, используйте функцию РУБ.

Пример:

с1=СУММАП_АНГЛ (75) // переменной с1 присваивается

// строка "Seventy five"

с2=СУММАП_АНГЛ (105.20) // переменной с2 присваивается

// строка "One hundred and five"

с3=СУММАП_АНГЛ (РУБ (106.40) ) // переменной с3 присваивается

//строка "One hundred and six"


СУММАПРОП

Функция СУММАПРОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СУММАПРОП является производной от функции СУММАП и выдает сумму прописью с учетом и рублей, и копеек.

Синтаксис:

СУММАПРОП (<сумма>)

где

<сумма>
числовое выражение.

Результат — строка. Функция эквивалентна выражению:

СУММАП(РУБ(<сумма>)) + РУБП(РУБ(<сумма>)) + " " +

СТР0(АБС(КОП(<сумма>)),2) + " " + КОПП(КОП(<сумма>))

Пример:

с2=СУММАПРОП (105.90) // переменной с2 присваивается строка

// "Сто пять рублей 90 копеек"

с1=СУММАПРОП (0.01) // переменной с1 присваивается строка

// "Ноль рублей 01 копейка"


СУММА_ЯЧЕЕК

Функция СУММА_ЯЧЕЕК, МИН_ЯЧЕЕК, МАКС_ЯЧЕЕК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СУММА_ЯЧЕЕК позволяет получить сумму, МИН_ЯЧЕЕК минимальное значение и МАКС_ЯЧЕЕК максимальное значение указанных ячеек.

Синтаксис:

СУММА_ЯЧЕЕК(<шаблон столбцов>,<шаблон строк> [,<подъячейка>] [,<включая скрытые>])

Здесь параметры <шаблон столбцов> и <шаблон строк> указывает шаблон строк/столбцов, которые будут суммироваться или по которым будет вычисляться минимальное/максимальное значение. Необязательный параметр <подъячейка> задает номер подъячеек, которые будут учитываться. Если он не указан, учитываются все подъячейки.

Функция пропускает ячейки, в которых не содержатся числовые значения.

При подсчете минимального значения функция пропускает ячейки, в которых ничего не содержится.

Функция по умолчанию не учитывает скрытые ячейки (скрытые с помощью функции СКРЫТЬ_ЯЧЕЙКИ или атрибута атСкрыта). Если же они все же нужны, можно использовать параметр <включая скрытые> = ДА.

Результат — число.

Пример:

сумма = СУММА_ЯЧЕЕК("*","*") // Подсчитаем сумму всех ячеек отчета


СУЩ

Функция СУЩ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СУЩ проверяет, есть ли записи, удовлетворяющие условию. Функция возвращает ДА, если это так и НЕТ в противном случае.

Синтаксис:

СУЩ ( <условие на поля журналов> [, <игнорировать фильтр>]),

Результат — логическое выражение.

Пример:

ЕСЛИ НЕ СУЩ (клиенты.долг > 0) ТО

СООБЩЕНИЕ ( "Нам никто не должен" )

КОНЕЦ_ЕСЛИ

ф = товары.ФИЛЬТР(цена < 1000000)

ЕСЛИ НЕ СУЩ(ф) ТО

СООБЩЕНИЕ("Дешевыми товарами мы не торгуем")

КОНЕЦ_ЕСЛИ

См.также
Функция СУЩ в условии ЦИКЛ ПО ЖУРНАЛУ.


СУЩ_ФАЙЛ

Функция СУЩ_ФАЙЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СУЩ_ФАЙЛ проверяет наличие на диске указанного файла или каталога. При наличии файла позволяет получить его дату и размер.

Синтаксис:

СУЩ_ФАЙЛ ( <имя файла> [, <текст ошибки>] [, <дата файла>] [, <размер файла>] ),

где

<имя файла>
имя проверяемого файла.

<дата файла>
если файл найден, то можно узнать время последнего изменения файла.

<размер файла>
если файл найден, то можно узнать размер файла.

Результат — логическое выражение.

Диск с именем "db:" определяет файл в базе данных. Файлы, начинающиеся с "http://", "https://" или "ftp://" определяют файлы, находящиеся в сети Интернет, и в этом случае возможно указание необязательного параметра <текст ошибки>, в который помещается текст ошибки в случае неудачи.

Если указан относительный путь — считается, что файл находится в каталоге выходных документов.

Замечание!

Для получения даты и размера файла, находящегося на http-ресурсе, функция использует заголовки Last-Modified и Content-Length.

Пример:

ЕСЛИ СУЩ_ФАЙЛ ("MyText.txt") ТО

ф = ФАЙЛ_ОТКРЫТЬ ("MyText.txt" )

...

ИНАЧЕ

СООБЩЕНИЕ ( "Не найден текстовый файл MyText.txt" )

КОНЕЦ_ЕСЛИ


СЧЕТ_АКТ

Функция СЧЕТ_АКТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_АКТ позволяет проверить активность счета. При передаче кода счета с аналитикой проверяет активность такого счета.

Синтаксис:

СЧЕТ_АКТ [!] (<код счета>)

где

<код счета>
строка, соответствующая коду счета.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

а1 = СЧЕТ_АКТ ("50") // а1 = ДА (50 - активный счет)

а2 = СЧЕТ_АКТ ("02") // а2 = НЕТ (02 - пассивный счет)

а3 = СЧЕТ_АКТ ("76") // а3 = ДА (76 - активно-пассивный счет)


СЧЕТ_ДОСТУПЕН

Функция СЧЕТ_ДОСТУПЕН

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_ДОСТУПЕН проверяет, разрешено ли получение остатков и прямых оборотов по указанному счету пользователю. Если передается счет с аналитикой, то функция также проверяет доступность на просмотр аналитических признаков.

Синтаксис:

СЧЕТ_ДОСТУПЕН ( <счет> )

где

<счет>
код счета, который надо проверить.

Результат — логика.

Замечание!

Разрешено ли получение оборотов по счету, запрещено ли, оборотные функции всегда возвращают результат независимо от доступа к счету. Разрешать или запрещать вывод результата в зависимости от доступа — вот роль функции СЧЕТ_ДОСТУПЕН.

Пример:

ЕСЛИ СЧЕТ_ДОСТУПЕН(счет) ТО

СООБЩЕНИЕ("Остаток:" + СТР(ОСД(счет))

ИНАЧЕ

СООБЩЕНИЕ("Счет недоступен")

КОНЕЦ_ЕСЛИ


СЧЕТ_ИСПОЛЬЗУЕТСЯ

Функция СЧЕТ_ИСПОЛЬЗУЕТСЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_ИСПОЛЬЗУЕТСЯ проверяет, используется ли указанный счет в проводках, или нет.

Синтаксис:

СЧЕТ_ИСПОЛЬЗУЕТСЯ [!] ( <счет> )

где

<счет>
код счета, который надо проверить.

Результат — логика.

Пример:

ЕСЛИ СЧЕТ_ИСПОЛЬЗУЕТСЯ(счет) ТО

СООБЩЕНИЕ("Остаток:" + СТР(ОСД(счет))

ИНАЧЕ

СООБЩЕНИЕ("Проводок по счету нет")

КОНЕЦ_ЕСЛИ


СЧЕТ_КОЛ

Функция СЧЕТ_КОЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_КОЛ проверяет, ведется ли по аналитике количественно-суммовой учет.

Синтаксис:

СЧЕТ_КОЛ [!] ( <код счета> )

где

<код счета>
строка, соответствующая коду счета с аналитикой.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

ЕСЛИ СЧЕТ_КОЛ ("10/БАЛКИ") ТО

колич = ОСД_К ("10/БАЛКИ")

ИНАЧЕ

колич = 0

КОНЕЦ_ЕСЛИ


СЧЕТ_ДОП

Функция СЧЕТ_ДОП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_ДОП проверяет, ведется ли по аналитике дополнительный учет.

Синтаксис:

СЧЕТ_ДОП [!] ( <код счета> [ ,<название показателя>] [ ,<название стоимости>] [ ,<точность показателя>] [ ,<точность стоимости>] )

где

<код счета>
строка, соответствующая коду счета с аналитикой.

<название показателя>, <название стоимости>
необязательные строковые переменные, в которые возвращаются названия показателей, заданные в диалоге настройки аналитики..

<точность показателя>, <точность стоимости>
необязательные числовые переменные, в которые возвращается точность показателей, заданная в диалоге настройки аналитики..

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

ЕСЛИ СЧЕТ_ДОП ("10/БАЛКИ") ТО

колич = ОСД_ДОП ("10/БАЛКИ")

ИНАЧЕ

колич = 0

КОНЕЦ_ЕСЛИ


СЧЕТ_ПАС

Функция СЧЕТ_ПАС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_ПАС позволяет узнать, является ли указанный счет пассивным. При передаче кода счета с аналитикой проверяет пассивность такого счета.

Синтаксис:

СЧЕТ_ПАС [!] (<код счета>),

где

<код счета>
строка, соответствующая коду счета.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

а1 = СЧЕТ_ПАС ("50") // а1 = НЕТ (50 - активный счет)

а2 = СЧЕТ_ПАС ("02") // а2 = ДА (02 - пассивный счет)

а3 = СЧЕТ_ПАС ("76") // а3 = ДА (76 - активно-пассивный счет)


СЧЕТ_СВЕР

Функция СЧЕТ_СВЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_СВЕР проверяет, активна ли опция Свернутое сальдо субсчетов в параметрах счета. При передаче кода счета с аналитикойпроверяет опцию у такого счета.

Синтаксис:

СЧЕТ_СВЕР [!] (<код счета>)

где

<код счета>
строка, соответствующая коду счета в плане счетов.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

а1 = СЧЕТ_СВЕР ("90") // а1 = ДА (на 90 -ом обычно сворачивают обороты)

а2 = СЧЕТ_СВЕР ("60") // а2 = НЕТ (на 60 -ом обычно разворачивают обороты)


СЧЕТ_СКРЫТЬ_ДОСТУП

Функция СЧЕТ_СКРЫТЬ_ДОСТУП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_СКРЫТЬ_ДОСТУП анализирует расширенный код счета с аналитикой и, если код содержит недоступные из-за ограничений прав доступа аналитические признаки, заменяет их коды на строки "???".

Синтаксис:

СЧЕТ_СКРЫТЬ_ДОСТУП ( <счет> )

где

<счет>
расширенный код счета, который надо проверить.

Результат — логика.

Пример:

// Если доступа к справочнику "клиенты" нет, то следующая строка выведет надпись "60/???"

// В противном случае будет выведена строка типа "60/ОДУВ", где "ОДУВ" - код клиента, указанного

// в переменной "клиенты"

клиенты.код = "ОДУВ"

СООБЩЕНИЕ(СЧЕТ_СКРЫТЬ_ДОСТУП(КОД_СЧЕТА("60":клиенты)))


СЧЕТ_БЮДЖЕТ

Функция СЧЕТ_БЮДЖЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_БЮДЖЕТ преобразует расширенный код счета с аналитикой к коду счету, используемому в бюджетной версии программы.

Синтаксис:

СЧЕТ_БЮДЖЕТ ( <счет> )

где

<счет>
расширенный код счета, который надо проверить.

Результат — логика.

Пример:

СООБЩЕНИЕ(СЧЕТ_БЮДЖЕТ(счет))


СЧЕТ_СУЩ

Функция СЧЕТ_СУЩ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция СЧЕТ_СУЩ проверяет наличие счета в плане счетов. При передаче кода счета с аналитикой проверяет и наличие указанных аналитик.

Синтаксис:

СЧЕТ_СУЩ (<код счета>)

где

<код счета>
строка, соответствующая коду счета в плане счетов.

Результат — логическое выражение ( ДА или НЕТ ).

Пример:

ЕСЛИ СЧЕТ_СУЩ ("04") ТО

а = ОСД ("04")

ИНАЧЕ

а = 0

КОНЕЦ_ЕСЛИ


СЧЕТА

Функция СЧЕТА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Смотрите Ключевое слово ЦИКЛ СЧЕТА

Описание:

Функция СЧЕТА оптимизирует доступ к указанным счетам и аналитикам. После вызова СЧЕТА функции для работы со счетами работают значительно быстрее.

Синтаксис:

СЧЕТА (<шаблон> [,<уровень>]),

где

<шаблон1>
шаблон счетов

<уровень>
необязательный параметр, указывающий максимальный уровень субсчетов (план счетов, функция СУБСЧЕТ);

Замечание!

Так как сама функция СЧЕТА выполняется достаточно медленно, ее имеет смысл применять в том случае, если функции доступа к счетам вызываются многократно.

Пример:

// оптимизируем доступ к субсчетам счетов 01 и 02

СЧЕТА ("01/*;02/*")

// Работаем с функциями

акт = СЧЕТ_АКТ("01/1")

пас = СЧЕТ_ПАС("02/1")

назв = НАЗВ("01/1")


ТЕК

Функция ТЕК

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ТЕК возвращает текущую строку текущей секции и может использоваться только:

·для граф ввода/вывода, находящихся внутри секций

·из функций, вызываемых из граф ввода, находящихся внутри секции.

·из функций, вызываемых при нажатии кнопки, находящихся внутри секции.

При попытке использовать функцию в других случаях выдается соответствующее сообщение об ошибке.

Функция принимает последовательные значения индекса массива внутри секции. Функция может применяться для секций ввода и секций вывода при выводе массивов.

Синтаксис:

ТЕК

Пример 1:

// Графа вывода значения массива "массив" внутри секции

массив!ТЕК

Пример 2:

// Пусть в бланке есть три графы: одна - для ввода кода товара с вызовом

// функции ВыборТовара, и две - для вывода "название" и "цена" c опцией

// "Обновлять при вызове функций". Нам надо чтобы при выборе товара

// подставлялись значения названия и цены:

объект секция

графа ввода (код) [image] графы вывода (название, цена)

// Внутри бланка пишем:

ПЕРЕМ СТРОКА: название! // массивы название и цена должны быть

ПЕРЕМ ЧИСЛО: цена! // общими для обновления информации

ФУНКЦИЯ ЛОГИКА: ВыборТовара(ПЕРЕМ СТРОКА: код)

товары.код = ЗНАЧ(код) // Присвоим начальное значение (чтобы курсор в

// таблице был на нужной строке)

РЕЗУЛЬТАТ = ВЫБОР_ЗАПИСИ(товары)

ЕСЛИ РЕЗУЛЬТАТ ТО

// Изменим код товара - это происходит через параметр-переменную "код"

код = СТР(товары.код)

// Изменим название и цену - это происходит из-за того что используются общие массивы

// и графы обновляются при вызове функций

название!ТЕК = товары.название

цена!ТЕК = товары.цена

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

ВЫЧИСЛИТЬ

ВВЕСТИ

секция.ОБНУЛИТЬ
ЕСЛИ ВВЕСТИ_ЗНАЧЕНИЕ("Что делать", ["Шаг 1. Заполнить", "Шаг 2. Обработать"]) = 1 ТО

// Выполняем расчет, заполняем таблицу

товары.ПЕРВАЯ

код!1 = СТР(товары.код)

название!1 = товары.название

цена!1 = товары.цена

товары.СЛЕДУЮЩАЯ

код!2 = СТР(товары.код)

название!2 = товары.название

цена!2 = товары.цена

ВЫВЕСТИ(секция)

// Останавливаем работу, чтобы пользователь мог изменить данные в бланке

СТОП

КОНЕЦ_ЕСЛИ

// Перебираем введенные товары, код, цена, название - массивы

ЦИКЛ ДЛЯ (коды ИЗ код)

// Обработка введенных товаров

КОНЕЦ_ЦИКЛА

КОНЕЦ

// Бланк будет выглядеть так:

См. также
Объект СЕКЦИЯ


ТЕК_НОМЕР

Свойство ТЕК_НОМЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ТЕК_НОМЕР возвращает/задает текущий номер документа. Свойство используется для доступа к текущим номерам.

Синтаксис:

ТЕК_НОМЕР [ <тип документа>[:<серия документа>] [:<фирма>] ]

где

<тип документа>
строка длиной не более 3 (по умолчанию) символов, определяющая тип документа.

<серия документа>
необязательный параметр, число, определяющая серию номеров документов

<фирма>
необязательный параметр, указывающий номер фирмы при использовании консолидированного учета, по умолчанию — текущая фирма, при указании -1 используется сквозная нумерация на все фирмы.

Функция возвращает ПУСТО, если номера заданного типа и серии не использовались. В противном случае функция возвращает число.

При присвоении свойство устанавливает текущий номер документа. При попытке установить номер документа в момент его использования, как другими пользователями, так и внутри самого алгоритма при помощи функции НОМЕР, выдается ошибка блокировки.

Внимание!

Не используйте для автонумерации свойство ТЕК_НОМЕР! Используйте для этого функцию НОМЕР.

Пример:

// Если номера тип "пп" и серией с номером текущего года не использовались

номер = ТЕК_НОМЕР["пп":ГОД] // номер = ПУСТО

номер = НОМЕР("пп":ГОД) // номер = 1

номер = ТЕК_НОМЕР["пп":ГОД] // номер = 1 (но может быть и 2, и 3,.. если алгоритм работает в сети

// с несколькими пользователями и между выполнением 2-ой строчки и 3-ей строчки

// алгоритма номер был зарезервирован с другого компьютера)

ТЕК_НОМЕР["пп":ГОД] = 14 // Задаем новый номер

См. также
НОМЕР
ЗАП_НОМЕР
УДАЛИТЬ_НОМЕР


ТЕК_ФИРМА

Свойство ТЕК_ФИРМА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Служебное свойство ТЕК_ФИРМА может использоваться для получения и изменения уникального идентификатора фирмы, под которой работает пользователь.

Синтаксис:

ТЕК_ФИРМА

Пример:

фирма=ТЕК_ФИРМА

См. также
Свойство ВКЛ_ФИРМЫ
Функция ЕСТЬ_ФИРМЫ
Функция ВСЕ_ФИРМЫ


ТИП

Функция ТИП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ТИП возвращает название типа выражения.

Синтаксис:

ТИП (<выражение>)

где

<выражение>
выражение или переменная, тип которой надо узнать

Результат — строка.

Пример 1:

тип = ТИП(1) // тип = "ЧИСЛО"

тип = ТИП("1") // тип = "СТРОКА"

Пример 2

// Создаем объект для доступа к Excel

о = СОЗДАТЬ_ОБЪЕКТ("Excel.Application")

// Узнаем, что возвращает "Workbooks"

СООБЩЕНИЕ(ТИП(о.Workbooks))

См. также
Объект ОБЪЕКТ
Метод ТИП_ПОЛЯ


ТРАНСПОНИРОВАТЬ

Функция ТРАНСПОНИРОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ТРАНСПОНИРОВАТЬ переворачивает отчет таким образом, что столбцы становятся строками, а строки столбцами. Повторный вызов функции возвращает в исходное положение.

Синтаксис:

ТРАНСПОНИРОВАТЬ

Функция влияет только на вид отчета на экране. Одни и те же координаты до вызова этой функции и после определяют одну и ту же ячейку. От нее абсолютно не зависит работа всех других функций, и она может вызываться в любом месте отчета.

Пример:

ТРАНСПОНИРОВАТЬ


УБР_ПРОБ, УБР_ПРОБ_ЛЕВ, УБР_ПРОБ_ПРАВ

Функция УБР_ПРОБ, УБР_ПРОБ_ЛЕВ, УБР_ПРОБ_ПРАВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УБР_ПРОБ удаляет в строке справа и слева пробелы и управляющие символы. Функция УБР_ПРОБ_ЛЕВ удаляет только слева, а УБР_ПРОБ_ПРАВ только справа.

Синтаксис:

УБР_ПРОБ (<строка>),

где

<строка>
исходная строка;

Результат — строка.

Замечание!

Комбинация символов "//" удаляется также, так как считается указанием на перевод строки.

Пример:

стр1 = УБР_ПРОБ (" Проведено ") // стр1 = "Проведено"

стр2 = УБР_ПРОБ ("Не проведено"+СИМВ(13)+" ") // стр2 = "Не проведено"


УБРАТЬ_МЕНЮ

Функция УБРАТЬ_МЕНЮ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УБРАТЬ_МЕНЮ отключает пункт контекстного меню. Может использоваться только в обработчиках вид контекстного меню и вид главного меню.

Синтаксис:

УБРАТЬ_МЕНЮ ( <команда> [, <условие>] [, <режим кнопок>] [, <флажок>] [, <название>] ),

где

<команда>
выражение строкового типа, определяющее команду пункта меню. Для бланков и отчетов это имя файла бланка и отчета, для типовых операций — название типовой операции, для журнала — идентификатор журнала.

<условие>
условие, при котором убирается пункт меню. По умолчанию оно равно ДА.

<режим кнопок>
определяет, как пункт контекстного меню по умолчанию выносится в кнопки частых действий. См.таблицу:

менюСтандарт | Стандартное поведение пунктов меню. Изначально пункт меню не вынесен в кнопки частых действий. Если пользователь часто пользуется этим пунктом меню, то программа перенесет его в кнопки частых действий. Данное значение параметра является значением по умолчанию.
менюКнопкаПоУмолчанию | По умолчанию пункт меню будет вынесен в кнопки частых действий. Вынесенный по умолчанию пункт контекстного меню может со временем удален из кнопок частых действий в случае, если пользователь его редко использует.
менюКнопкаВсегда | Пункт меню всегда будет присутствовать среди кнопок частых действий, вне зависимости от того, пользуется ли этой кнопкой пользователь или нет.
менюКнопкаНикогда | Пункт меню никогда не будет выноситься в кнопки частых действий, даже если пользователь часто им пользуется.

<флажок>
Если истинно, то слева от пункта меню появится флажок. По умолчанию считается равным НЕТ.

<название>
Позволяет переопределить название пункта меню. При передачи пустой строки возвращает исходное название, заданное в настройках при создании пункта меню.

Функция не возвращает результата. Функция выдает ошибку, если не находит бланк, отчет, журнал или типовую операцию среди пунктов контекстного меню.

Замечание!

Функция может работать только с пользовательскими пунктами меню. Доступность встроенных пунктов меню программа регулирует самостоятельно.

Примеры:

ЕСЛИ тип_оплаты <> оплБезнал ТО

УБРАТЬ_МЕНЮ("TS_PLAT.FRM") // Убираем платежное поручение

ИНАЧЕ

УБРАТЬ_МЕНЮ("TS_PRICH.FRM") // Убираем приходный кассовый ордер

КОНЕЦ_ЕСЛИ

// Следующие строки делают то же самое

УБРАТЬ_МЕНЮ("TS_PLAT.FRM",тип_оплаты <> оплБезнал) // Убираем платежное поручение

УБРАТЬ_МЕНЮ("TS_PRICH.FRM",тип_оплаты <> оплНал) // Убираем приходный кассовый ордер

См.также
Функция ПУТЬ_МЕНЮ
Метод ДОСТУПНО_МЕНЮ


УДАЛ

Функция УДАЛ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УДАЛ удаляет из строки подстроку начиная с выбранной позиции.

Синтаксис:

УДАЛ (<строка>,<нач. позиция> [,<длина>] ),

где

<строка>
строка, из которой надо удалить символы;

<нач. позиция>
начальная позиция удаляемой подстроки в строке;

<длина>
длина удаляемой подстроки.

Функция не возвращает результата.

Замечание!

Если не задан параметр длина, то из строки удаляется подстрока от начальной позиции и до конца.

Пример:

стр = "Балки ГОСТ 76443-3456"

УДАЛ(стр,7,5) // удалит слово ГОСТ и пробел после него
ОТЛАДКА(стр) // стр = "Балки 76443-3456"

См. также
Функция ПОДСТР


УДАЛ_СИМВ

Функция УДАЛ_СИМВ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УДАЛ_СИМВ удаляет из строки заданные символы или заменяет их на указанный символ.

Синтаксис:

УДАЛ_СИМВ(<строка>, <символы> [,<замена>] ),

где

<строка>
исходная строка;

<символы>
строка, состоящая из символов, которые надо удалить из строки;

<замена>
символ для замены; если он не указан то происходит просто удаление;

Результат — строка.

Пример:

стр = УДАЛ_СИМВ("1 2 3", " ") // стр = "123"

стр = УДАЛ_СИМВ("1 2 3", " ", "-") // стр = "1-2-3"

См. также
Функция ЗАМ
Функция УДАЛ


УДАЛИТЬ_АНАЛИТИКУ

Функция УДАЛИТЬ_АНАЛИТИКУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Служебная функция УДАЛИТЬ_АНАЛИТИКУ отключает указанную аналитику у счета. Функция должна использоваться только в монопольном режиме с целью настройки программы под особенности учета.

Синтаксис:

УДАЛИТЬ_АНАЛИТИКУ (<код счета>,<признак>)

где

<код счета>
строка, соответствующая коду счета (без аналитики).

<признак>
переменная типа ЖУРНАЛ, по которой определяется удаляемый признак.

Функция не возвращает результат. Если по счету есть проводки, будет выведен запрос у пользователя на возможность удаления аналитики из этих проводок.

Замечание!

Фактическое удаление аналитики происходит не в момент выполнения функции, а уже после завершения работы алгоритма.

Пример:

ЕСЛИ ЕСТЬ_АНАЛИТИКА("60", клиенты) ТО

УДАЛИТЬ_АНАЛИТИКУ("60", клиенты)

КОНЕЦ_ЕСЛИ

См. также
Функция ДОБАВИТЬ_АНАЛИТИКУ
Функция ЕСТЬ_АНАЛИТИКА


УДАЛИТЬ_ГРАФУ

Функция УДАЛИТЬ_ГРАФУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УДАЛИТЬ_ГРАФУ используется в бланках и осуществляет в процессе обработки расчетной части бланка удаление графы ввода.

Синтаксис:

УДАЛИТЬ_ГРАФУ (<графа>)

где

<графа>
графа ввода. Для обычных полей ввода, параметр <графа> = имя переменной.

Пример:

// Удаление графы ввода "массив!1"

УДАЛИТЬ_ГРАФУ (массив!1)


УДАЛИТЬ_ДИР

Функция УДАЛИТЬ_ДИР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УДАЛИТЬ_ДИР удаляет каталог, все его подкаталоги и файлы вместе с ними (для локальных каталогов, для каталогов на FTP-сервере только пустой каталог нижнего уровня).

Синтаксис:

УДАЛИТЬ_ДИР (<каталог>[, <текст ошибки>]),

где

<каталог>
строковый параметр, определяющий имя удаляемого каталога

Функция может работать с FTP-ресурсами. Для этого имя каталога должно начинаться с "ftp://", и в этом случае возможно указание необязательного параметра <текст ошибки>, в который помещается текст ошибки в случае неудачи.

Пример:

УДАЛИТЬ_ДИР("c:\DemoSf\Data")

См.также
СОЗДАТЬ_ДИР


УДАЛИТЬ_НОМЕР

Функция УДАЛИТЬ_НОМЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УДАЛИТЬ_НОМЕР используется для обнуления нумерации документов, сгенерированных функцией НОМЕР. После обнуления, функция НОМЕР будет возвращать 1.

Синтаксис:

УДАЛИТЬ_НОМЕР (<тип документа> [:<серия документа>] [:<фирма>] )

где

<тип документа>
строка, определяющая тип документа или шаблон номеров документов.

<серия документа>
строка, определяющая шаблон серии номеров документов, если он не указан, то удаляются номера с неуказанной серией;

<фирма>
необязательный параметр, указывающий номер фирмы при использовании консолидированного учета, по умолчанию — текущая фирма, при указании -1 используется сквозная нумерация на все фирмы.

Обнулить номер можно другим способом: присвоить номеру нулевое значение с помощью функции ТЕК_НОМЕР. Однако ТЕК_НОМЕР, во-первых, не поддерживает шаблоны и, во-вторых, фактически создает номера, если они не существуют.

Пример:

УДАЛИТЬ_НОМЕР("*") // Удаляет все номера текущей фирмы с неуказанной серией

УДАЛИТЬ_НОМЕР("*":"0") // То же самое, удаляет все номера текущей фирмы с неуказанной серией

УДАЛИТЬ_НОМЕР("*":"*") // Удаляет все номера текущей фирмы, если для них указана серия

УДАЛИТЬ_НОМЕР("пп") // Удаляет все номера платежных поручений текущей фирмы

УДАЛИТЬ_НОМЕР("пп":"*") // Удаляет все номера платежных поручений текущей фирмы

УДАЛИТЬ_НОМЕР("пп":"2008") // Удаляет номер платежных поручений текущей фирмы текущей серии

УДАЛИТЬ_НОМЕР("*":"*":-1) // Удаляет все сквозные (общие на все фирмы) номера

Чтобы удалить абсолютно все номера, надо сначала удалить сквозные номера, а затем все номера для каждой фирмы. Если в базе данных только одна фирма, то следующие строки удалят все номера:

УДАЛИТЬ_НОМЕР("*":"*")

УДАЛИТЬ_НОМЕР("*":"0")

УДАЛИТЬ_НОМЕР("*":"*":-1)

УДАЛИТЬ_НОМЕР("*":"0":-1)

См. также
НОМЕР
ТЕК_НОМЕР


УДАЛИТЬ_СОБЫТИЯ

Функция УДАЛИТЬ_СОБЫТИЯ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УДАЛИТЬ_СОБЫТИЯ удаляет события по указанному источнику, предотвращая вызов обработчика внешнего события.

Синтаксис:

УДАЛИТЬ_СОБЫТИЯ (<источник> )

где

<источник>
параметр строкового типа, указывающий на источник внешнего события.

Если до вызова функции УДАЛИТЬ_СОБЫТИЯ было послано событие, но обработчик внешнего события еще не был вызван, событие будет удалено и вызова обработчика не произойдет.

Пример:

УДАЛИТЬ_СОБЫТИЯ ("test")

См. также
Функция ПОСЛАТЬ_СОБЫТИЕ


УДАЛИТЬ_УВЕДОМЛЕНИЕ

Функция УДАЛИТЬ_УВЕДОМЛЕНИЕ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УДАЛИТЬ_УВЕДОМЛЕНИЕ удаляет ранее посланное уведомление из Центра уведомлений Windows (начиная с Windows 10 и в усеченном виде в Windows 8).

Синтаксис:

УДАЛИТЬ_УВЕДОМЛЕНИЕ (<идентификатор> )

где

<идентификатор>
строка, задающая идентификатор уведомления.

Уведомление ищется по своему идентификатору, указанному при его создании функцией ПОСЛАТЬ_УВЕДОМЛЕНИЕ.

Пример:

УДАЛИТЬ_УВЕДОМЛЕНИЕ ("test_13")

См. также
Функция ПОСЛАТЬ_УВЕДОМЛЕНИЕ
Функция ЕСТЬ_УВЕДОМЛЕНИЕ


УДАЛИТЬ_СТРОКУ

Функция УДАЛИТЬ_СТРОКУ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УДАЛИТЬ_СТРОКУ удаляет строки из указанного места бланка. Все элементы бланка после указанной строки сдвинутся вверх.

Синтаксис:

УДАЛИТЬ_СТРОКУ ( <номер строки> [,<кол-во строк>] ),

где

<номер строки>
порядковый номер удаляемой строки;

<кол-во строк>
необязательный параметр, определяющий количество удаляемых строк. Если параметр отсутствует, то в указанном месте будет удалена только одна строка.

Для вставки новой строки в бланк, можно использовать функцию ВСТАВИТЬ_СТРОКУ.

Пример:

ЕСЛИ высота=0 ТО

УДАЛИТЬ_СТРОКУ (тек);

ИНАЧЕ

ВЫВЕСТИ (2 + поз, тек, высота, поз - 1, 2)

тек = тек + 1

КОНЕЦ_ЕСЛИ


УДАЛИТЬ_СЧЕТ

Функция УДАЛИТЬ_СЧЕТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УДАЛИТЬ_СЧЕТ удаляет указанный счет из плана счетов.

Синтаксис:

УДАЛИТЬ_СЧЕТ (<код счета>, [<запрос>] ),

где

<код счета>
код удаляемого счета последнего уровня.

<запрос>
выражение логического типа, указывающее на необходимость выдачи подтверждения удаления счета.

Пример:

результат = УДАЛИТЬ_СЧЕТ ( "10/БАЛКИ", НЕТ ) // Удалить счет 10/БАЛКИ без запроса

// подтверждения на удаление

СООБЩЕНИЕ ("Счет 10/БАЛКИ удален: "+ СТР (результат) )


УПАК_ОПЕР

Функция УПАК_ОПЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УПАК_ОПЕР применяется для упаковки бухгалтерских проводок сформированных при помощи функции ПРОВОДКА.

Синтаксис:

УПАК_ОПЕР(<сортировать>)

Упаковка означает, что проводки с одинаковыми значениями дебета, кредита и статьи будут объединены в одну. Суммы и количества при объединении сложатся.

Если указать <сортировать> = ДА, то помимо упаковки программа пересортирует проводки так, чтобы проводки с одинаковыми синтетическими счетами (счетами без учета аналитики) оказались рядом.

Пример:

ПРОВОДКА ("51", "50", 1 ) // Первая проводка

ПРОВОДКА ("51", "50", 2 ) // Вторая проводка

УПАК_ОПЕР (НЕТ) // Упаковать

ЗАП_ОПЕР (НЕТ) // Будет добавлена операция с одной проводкой

// Д51 - К50 на сумму 3 руб

См.также
Функция ЗАП_ОПЕР
Функция ЕСТЬ_ОПЕР


УРЛ_КОДИРОВАТЬ

Функция УРЛ_КОДИРОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УРЛ_КОДИРОВАТЬ производит URL-кодирование строки. Эта функция удобна, когда закодированная строка будет использоваться в запросе, как часть URL.

Синтаксис:

УРЛ_КОДИРОВАТЬ (<строка> ),

где

<строка>
исходная строка;

Результат — строка.

Возвращает строку, в которой все не цифробуквенные символы заменяются знаком процента (%), за которым следует два шестнадцатеричных числа.

Пример:

стр = УРЛ_КОДИРОВАТЬ ("И-П") // стр = "%D0%98%2D%D0%9F"


УРЛ_ДЕКОДИРОВАТЬ

Функция УРЛ_ДЕКОДИРОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УРЛ_ДЕКОДИРОВАТЬ производит декодирование URL-кодированной строки. Эта функция удобна, когда закодированная строка будет использоваться в запросе, как часть URL.

Синтаксис:

УРЛ_ДЕКОДИРОВАТЬ (<строка> ),

где

<строка>
URL-кодированая строка;

Результат — строка.

Пример:

стр = УРЛ_ДЕКОДИРОВАТЬ ("%D0%98%2D%D0%9F") // стр = "И-П"


УРОВЕНЬ

Функция УРОВЕНЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция УРОВЕНЬ возвращает уровень (порядок) счета (статьи).

Синтаксис:

УРОВЕНЬ (<код счета>),

где

<код счета>
полный код субсчета, в котором коды субсчетов отделяются символами "/".

Результат — число.

Пример:

у_1 = УРОВЕНЬ ("70") // у_1 = 1

у_2 = УРОВЕНЬ ("70/ШТ") // у_2 = 2

у_3 = УРОВЕНЬ ("70/ШТ/ИАГ") // у_3 = 3


ФАЙЛ_КОПИРОВАТЬ

Функция ФАЙЛ_КОПИРОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ФАЙЛ_КОПИРОВАТЬ копирует один файл в другой с проверкой на существование исходного файла.

Синтаксис:

ФАЙЛ_КОПИРОВАТЬ ( <источник>, <приемник>),

или

ФАЙЛ_КОПИРОВАТЬ ( <источник> [ ( <заголовки> ) ] [ :<параметры>], <приемник> [, <текст ошибки>] ),

где

<источник>
строка, имя файла-источника,

<приемник>
строка имя файла-приемника.

<параметры>
используются при работе с файлами в сети Интернет (см.ниже), тип — строка или данные, параметры запроса

<заголовки>, <текст ошибки>
используются при работе с файлами в сети Интернет (см.ниже).

Результат — логическое выражение. При успешном копировании возвращает ДА.

Наличие файла-приемника функция не проверяет — если файл существует, он будет заменен файлом-источником. Проверить существование файла перед выполнением функции можно с помощью СУЩ_ФАЙЛ.

Диск с именем "db:" определяет файл в базе данных. Файлы, начинающиеся с "http://", "https://" или "ftp://" определяют файлы, находящиеся в сети Интернет, и в этом случае возможно указание необязательного параметра <текст ошибки>, в который помещается текст ошибки в случае неудачи. Переменная <параметры> может быть строкой, тогда параметры передаются в кодировке UTF8, либо типом данные.

Если файл-источник начинается с "http://" или "https://", то в скобках после имени файла может быть указан один или несколько HTTP-заголовков (см.пример), а через двоеточие параметры запроса.

Замечание!

При необходимости считывать данные из Интернет, можно использовать также функцию ИНТЕРНЕТ_СЧИТАТЬ, которая вместо записи данных в файл возвращает строку с данными.

Пример:

// Копируем файл на диске

успех = ФАЙЛ_КОПИРОВАТЬ ("DATA\MyData.dbf", "DATA\MyData.bak")

// Загружаем файл в базу данных

успех = ФАЙЛ_КОПИРОВАТЬ("out.dbf", "db:\out.dbf")

// Запрос к серверу www.server.ru с http-авторизацией (заданным логином и паролем),

// сохранение данных во временном файле, при возникновении ошибки - выводим сообщение

логин = "login"

пароль = "password"

успех = ФАЙЛ_КОПИРОВАТЬ("http://"+ логин + ":" + пароль + "@www.server.ru" ("Authorization: Basic " +

ДЕКОДИРОВАТЬ(КОДИРОВАТЬ(логин + ":" + пароль, WIN), MIME))), ДИР_ВРЕМЕННАЯ + "\out.txt", ошибка)

ЕСЛИ НЕ успех ТО

СООБЩЕНИЕ(ошибка)

КОНЕЦ_ЕСЛИ

См.также
Функция ФАЙЛ_ПЕРЕИМЕНОВАТЬ
Функция ФАЙЛ_УДАЛИТЬ
ЦИКЛ ФАЙЛЫ


ФАЙЛ_ПЕРЕИМЕНОВАТЬ

Функция ФАЙЛ_ПЕРЕИМЕНОВАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ФАЙЛ_ПЕРЕИМЕНОВАТЬ переименовывает файл с проверкой на существование исходного файла.

Синтаксис:

ФАЙЛ_ПЕРЕИМЕНОВАТЬ ( <источник>, <приемник> [, <текст ошибки>] ),

где

<источник>
имя старого файла,

<приемник>
имя нового файла.

Результат — логическое выражение. При успешном переименовании возвращает ДА.

Диск с именем "db:" определяет файл в базе данных. Файлы, начинающиеся с "ftp://" определяют файлы, находящиеся в сети Интернет, и в этом случае возможно указание необязательного параметра <текст ошибки>, в который помещается текст ошибки в случае неудачи. Файлы должны быть из одного источника, в противном случае будет выдано сообщение об ошибке.

Пример:

// Файлы на компьютере

успех = ФАЙЛ_ПЕРЕИМЕНОВАТЬ ( "Old.txt", "New.txt" )

// Файлы в базе данных

успех = ФАЙЛ_ПЕРЕИМЕНОВАТЬ ( "db:\Old.txt", "db:\New.txt" )

// Файлы в интернете

успех = ФАЙЛ_ПЕРЕИМЕНОВАТЬ ( "ftp://login:password@home.site.ru/www/old.txt", "/www/new.txt" )

См.также
Функция ФАЙЛ_КОПИРОВАТЬ
Функция ФАЙЛ_УДАЛИТЬ
ЦИКЛ ФАЙЛЫ


ФАЙЛ_УДАЛИТЬ

Функция ФАЙЛ_УДАЛИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ФАЙЛ_УДАЛИТЬ удаляет файл с проверкой на существование.

Синтаксис:

ФАЙЛ_УДАЛИТЬ ( <имя удаляемого файла> [, <текст ошибки>] )

Результат — логическое выражение. При успешном удалении возвращает ДА.

Диск с именем "db:" определяет файл в базе данных. Файлы, начинающиеся с "ftp://" определяют файлы, находящиеся в сети Интернет, и в этом случае возможно указание необязательного параметра <текст ошибки>, в который помещается текст ошибки в случае неудачи.

Пример:

результат = ФАЙЛ_УДАЛИТЬ ( "Temp.txt" )

См.также
Функция ФАЙЛ_ПЕРЕИМЕНОВАТЬ
Функция ФАЙЛ_КОПИРОВАТЬ
ЦИКЛ ФАЙЛЫ


ФОКУС

Функция ФОКУС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ФОКУС может использоваться в диалогах, типовых операциях и бланках как внутри основного расчета, так и (для диалогов и типовых операций) внутри секции, начинающейся с ключевого слова ИЗМЕНЕНИЕ. С помощью него можно установить текущую графу, в которой находится курсор ввода.

Синтаксис:

ФОКУС [!] (<графа>)

где

<графа>
графа ввода.

Для обычных полей ввода, параметр <графа> = имя переменной.

Для кнопок, параметр <графа> = ~<текст кнопки>

где

<текст кнопки>
строковая константа.

Для таблиц с выводом содержимого журнала или курсора <графа> = @<переменная>

где

<переменная>
соответствующая переменная типа ЖУРНАЛ или КУРСОР.

Для таблиц с выводом содержимого массива <графа> = $<переменная>

где

<переменная>
соответствующий массив.

Для таблиц с выводом содержимого XML или DBF файла <графа> = ^<переменная>

где

<переменная>
соответствующая переменная типа БД .

После имени функции может быть указан восклицательный знак — ФОКУС!. Это отключит вывод сообщения об ошибке в случае, если графа отсутствует.

Пример:

// Установка фокуса перед появлением диалога типовой операции

ОПЕРАЦИЯ ЖУРНАЛА Тест

Сумма : &сумма&&&&&&&&

Дата : ~дата

ВЫЧИСЛИТЬ

ФОКУС(дата)

ВВЕСТИ

// Расчетная часть

КОНЕЦ

// Операция осуществляет ввод даты с переносом фокуса между графами

ОПЕРАЦИЯ Ввод даты

*день:2 *месяц:2 *год:4

ИЗМЕНЕНИЕ

ЕСЛИ ИЗМЕНЕНА(день) И ДЛИНА(день) = 2 ТО

ФОКУС(месяц)

КОНЕЦ_ЕСЛИ

ЕСЛИ ИЗМЕНЕНА(месяц) ТО

ЕСЛИ ДЛИНА(месяц) = 0 ТО

ФОКУС(день)

ИНАЧЕ ЕСЛИ ДЛИНА(месяц) = 2 ТО

ФОКУС(год)

КОНЕЦ_ЕСЛИ КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

ЕСЛИ ИЗМЕНЕНА(год) ТО

ЕСЛИ ДЛИНА(год) = 0 ТО

ФОКУС(месяц)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

ВЫЧИСЛИТЬ

ВВЕСТИ

КОНЕЦ

См.также
Функция ДОСТУП


ФОРМАТ

Функция ФОРМАТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ФОРМАТ размещает одно или несколько значений внутри форматируемой строки на месте специального символа.

Синтаксис:

ФОРМАТ( <строка> [,<параметр> [,<параметр> [, ... ] ] ] ),

или (с форматированием чисел)

ФОРМАТ( <строка> [,<параметр> [:<знаков после запятой>] [,<параметр> [:<знаков после запятой>] [, ... ] ] ] ),

где

<строка>
форматируемая строка, она включает символ форматирования данных — * (звездочка);

<параметр>
значение простого типа, которое будет преобразовано в строку и размещено внутри форматируемой строки;

<знаков после запятой>
количество десятичных знаков после запятой для чисел.

Результат — строка. Если число знаков после запятой у числа указано, то число будет форматироваться с выделением тысяч, как это делает функция СТРФ.

Пример:

всего = 100

стр = ФОРМАТ("Будут удалены операции с * по *", 1, всего)

// стр = "Будут удалены операции с 1 по 100"

См. также
Функция СТР
Функция РАЗБОР


Функции для работы с Интернет

Программа Инфо-Предприятие содержит функции, необходимые для работы в сети Интернет. Алгоритмы на внутреннем языке могут скачивать файлы из Интернета и закачивать их в Интернет, выполнять HTTP-запросы, делать различные файловые операции на FTP-серверах и т.д.

Для задания местоположения файлов на других серверах сети Интернет используется URL (Uniform Resource Locator). URL включает в себя:

·Протокол доступа (HTTP, FTP и др.) — это некоторый набор правил и ключевых знаков, предназначенный для общения компьютеров между собой.

·Сетевой адрес ресурса (имя хост-машины и домена)

·Полный путь к файлу на сервере

В общем виде формат URL выглядит так:

<протокол>://<адрес сервера>[:<порт>][/<путь>]/<имя файла>

Пример

http://www.yandex.ru/index.html

имя файла

адрес сервера

протокол

Для выполнения операций с ресурсами сети Интернет программа Инфо-Предприятие поддерживает три протокола:

HTTP протокол (Hypertext Transfer Protocol) — основной протокол используемый в Интернет. Несмотря на то что протокол называется протоколом передачи гипертекста (т.е. HTML), на самом деле HTTP протокол может использоваться (и используется) для передачи практически любых данных в сети. Это передача и текста, и изображений, и файлов. Чаще всего HTTP используется для передачи данных от клиента к серверу.

HTTPS — защищенный HTTP протокол.

FTP протокол (File Transfer Protocol). Главное его назначение — это пересылать (копировать, передавать) файлы. Для FTP протокола URL выглядит так:

ftp://[<пользователь>:<пароль>@]<адрес сервера>[:<порт>][/<путь>]/<имя файла>

где <пользователь> и <пароль> необязательны и при их отсутствии подключение считается анонимным.

Для работы с Интернет предусмотрены следующие функции

ФАЙЛ_КОПИРОВАТЬ — для скачивания из Интернета или загрузки файла в Интернет. Функция работает с любыми протоколами.

ФАЙЛ_УДАЛИТЬ — для удаления файла на FTP-сервере.

ФАЙЛ_ПЕРЕИМЕНОВАТЬ — для переименования файла на FTP-сервере.

СУЩ_ФАЙЛ — для проверки существования файла в Интернете. Функция работает с любыми протоколами.

ЦИКЛ ФАЙЛЫ — для перебора по шаблону файлов, находящихся на FTP-сервере

СОЗДАТЬ_ДИР — для создания каталогов на FTP-сервере.

УДАЛИТЬ_ДИР — для удаления каталогов на FTP-сервере.

ИНТЕРНЕТ_СЧИТАТЬ — для выполнения GET и других видов HTTP-запроса.

ИНТЕРНЕТ_ЗАПРОС — для выполнения POST и других видов HTTP-запросов.

Перечисленные выше функции могут работать с использованием прокси-сервера. Для этого достаточно вызвать функцию ИНТЕРНЕТ_ПРОКСИ.

См.также
Объект ФАЙЛ.


ФУНКЦИЯ_ВЫБРАТЬ!

Функция ФУНКЦИЯ_ВЫБРАТЬ!

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ФУНКЦИЯ_ВЫБРАТЬ! — добавляет графу с вызовом функции или диалога в параметры отчета.

Синтаксис:

ФУНКЦИЯ_ВЫБРАТЬ!(<имя функции>, <заголовок>[, <по умолчанию> [, <тип выбора>] ] )

Здесь параметр

<имя функции>
задает имя функции, которая будет вызываться в графе параметра отчета. Функция должна иметь вид:
ФУНКЦИЯ ЛОГИКА <название>(ПЕРЕМ СТРОКА: <параметр>)

<заголовок>
определяет текст графы

<по умолчанию>
определяет значение по умолчанию для графы

Если указан параметр <тип выбора>, то графа изменяется на список, редактируемый список или листбокс.

выбРедактор

выбСписок

выбРедСписок

текстовая графа — этот вид будет по умолчанию

список

редактируемый список

После восклицательного знака можно поставить условие на отображение опции.

Пример:

ФУНКЦИЯ ЛОГИКА: ВыборСчета(ПЕРЕМ СТРОКА: счет_шаб)

выбор = ВЫБОР_СЧЕТА(счет_шаб, НЕТ, ДА)

ЕСЛИ выбор <> "" ТО

и = ДЛИНА(счет_шаб)

ЦИКЛ ПОКА (и > 0 И ПОДСТР(счет_шаб, и, 1) <> ";")

и--

КОНЕЦ_ЦИКЛА

УДАЛ(счет_шаб, и + 1)

счет_шаб += выбор

ВыборСчета = ДА

ИНАЧЕ

ВыборСчета = НЕТ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

ВЫЧИСЛИТЬ(СТРОКА: корр_счет,счет)

счет ?= ФУНКЦИЯ_ВЫБРАТЬ!(ВыборСчета,"По счетам") // Добавляем графу "По счетам"

// с вызовом функции ВыборСчета

// Остальная часть отчета

См. также
Создание собственных входных параметров


ХРАНИТЬ

Функция ХРАНИТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ХРАНИТЬ заставляет хранить содержимое указанных переменных в профиле пользователя.

Синтаксис:

ХРАНИТЬ ( <переменная> [, <переменная> [, ... ] ] [:<имя профиля>] )

где

<переменная>
одна или несколько переменных через запятую, которые надо хранить.

<имя профиля>
необязательный параметр, строка, задающая имя профиля.

Загрузка значения переменных из профиля происходит в момент выполнения функции ХРАНИТЬ. После удачного завершения алгоритма значения переменных, указанных в ХРАНИТЬ сохраняются в профиле пользователя.

Параметр <имя профиля> используется когда надо чтобы одни и те же переменные в разных алгоритмах (типовых операциях, бланках и т.д.) хранились в одном месте.

Пример 1:

ХРАНИТЬ (а, б) // Значения переменных "а" и "б" будут сохранятся в профиле

// Следующий фрагмент делает то же самое, если запускается в бланке с именем Бланк

а = ПРОФИЛЬ ["Бланк\а"]

б = ПРОФИЛЬ ["Бланк\б"]

// ......

// Основной расчет

// ......

// Сохраняем значения

ПРОФИЛЬ ["Бланк\а"] = а

ПРОФИЛЬ ["Бланк\б"] = б

Пример 2:

ХРАНИТЬ (а, б: "Общ") // Значения переменных "а" и "б" будут сохранятся в профиле "Общ"

// Следующий фрагмент делает то же самое

а = ПРОФИЛЬ ["Общ\а"]

б = ПРОФИЛЬ ["Общ\б"]

// ......

// Основной расчет

// ......

// Сохраняем значения

ПРОФИЛЬ ["Общ\а"] = а

ПРОФИЛЬ ["Общ\б"] = б

См. также
Свойство ПРОФИЛЬ


ЦЕНА

Функция ЦЕНА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЦЕНА вычисляет цену единицы измерения количественно-суммовой аналитики. Цена рассчитывается по формуле:

цена = сумма / количество

Синтаксис:

ЦЕНА (<код> [,<дата> [,<в дате>]] ),

где

<код>
строка, соответствующая коду счета с аналитикой;

<дата>
дата, на начало которой производится расчет цены. Если значение даты не задано, то цена рассчитывается на дату окончания отчетного периода.

<в дате>
номер операции, если надо посчитать остаток перед началом конкретной бухгалтерской операции.

Результат — число. Если количество = 0 или количественно-суммовой учет не ведется возвращает ноль.

Пример:

Пусть к счету 10 прикреплена аналитика материалы, по которой ведется количественно-суммовой учет, а объект аналитики Тара имеет единицу измерения — штуки (шт.). Пусть на 22.04.2004 года остатки по данному объекту аналитики составляют в суммовом выражении — 5000.00, в количественном выражении — 100 шт.

Тогда:

цена = ЦЕНА ("10/Тара", 22.04.2004) // цена= 50.00


ЧАС

Функция ЧАС

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЧАС выделяет часы из времени.

Синтаксис:

ЧАС [(<время>)],

где

<время>
выражение типа время.

Результат — число от 0 до 23. Если параметр <время> не указан, функция возвращает текущий час.

Пример:

время1 = 00:05

час1 = ЧАС (время1) // переменной час1 присваивается значение 0

время2 = 19:35:50

час2 = ЧАС (время2) // переменной час2 присваивается значение 19


ЧИСЛО

Функция ЧИСЛО

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЧИСЛО выделяет число из даты.

Синтаксис:

ЧИСЛО [(<дата>)]

где

<дата>
выражение типа дата.

Результат — число от 1 до 31. Если параметр <дата> не указан, функция возвращает текущее число.

Пример:

нач_кв = 01.04.98

ч = ЧИСЛО (нач_кв) // переменной ч присваивается значение 1


ЭКСП

Функция ЭКСП

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЭКСП возвращает экспоненту числа.

Синтаксис:

ЭКСП (<выражение>)

где

<выражение>
константа или выражение числового типа.

Результат — число.

Пример:

а = ЭКСП (1) // переменной а присваивается значение 2.71828...


ЭКСПОРТ_ОПЕР

Функция ЭКСПОРТ_ОПЕР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЭКСПОРТ_ОПЕР выгружает данные журнала бухгалтерских операций, плана счетов, статей налогового учета и корректных проводок в файл внутреннего формата.

Синтаксис:

ЭКСПОРТ_ОПЕР ( <файл> ),

где

<файл>
имя файла для выгрузки,

Результат — логическое выражение. При успешном завершении возвращает ДА.

Пример:

// Выгружает данные в файл

успех = ЭКСПОРТ_ОПЕР("c:\temp\ip.dat")

См.также
Функция ИМПОРТ_ОПЕР


ЯЧЕЙКА

Свойство ЯЧЕЙКА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Свойство ЯЧЕЙКА используется для доступа к ячейкам таблицы. С помощью него можно считывать, задавать и изменять (при помощи арифметических операторов) содержимое ячеек отчета.

Синтаксис:

ЯЧЕЙКА[!][<столбец>[:<секция>],<строка>[:<секция>][,<подъячейка>]]

Здесь параметры

<столбец>
определяет горизонтальную координату ячейки

<строка>
вертикальную. Координата может быть выражением одного из типов:

·Строка

·Число

·Дата

·Время

·Логика

·Журнал

Параметр <секция> задает номер горизонтальной или вертикальной секции. Он используется только при присвоении значения ячейки. Внутри секции или если секции не используются, строчки и столбцы отсортированы по порядку. Это означает следующее:

·Вначале идут строковые координаты. Все строковые координаты отсортированы в алфавитном порядке.

·Потом идут числа. Они отсортированы в порядке возрастания.

·Потом идут даты. Они отсортированы по возрастанию.

·Потом идут координаты типа время, отсортированные по возрастанию.

·Потом идут координаты логического типа, сначала с нет, потом с да.

·Потом объектные координаты.

Замечание!

Указанный алгоритм следования записей можно изменить. Для этого используется ключевое слово СОРТИРОВАТЬ. Но изменение порядка следования секций не произойдет.

Внимание!

Секция не является дополнением к координате ячейки, поэтому если Вы напишете:

ЯЧЕЙКА["Название":1,1] = 1

ЯЧЕЙКА["Название":2,1] = 1

То программа поймет, что Вы обращались к одной и той же ячейке. При этом, номер секции при втором вызове ЯЧЕЙКА будет проигнорирован — просто программа устанавливает номер секции при добавлении ячейки в таблицу и далее его не меняет. Номер секции при вызове ЯЧЕЙКА лишь указывает секцию для вновь задаваемых ячеек, так что указывать его при чтении из ячейки не надо. Также секцию ячеек можно указывать не сразу, а установить ее уже после выполнения основного расчета при помощи задания атрибутов ячеек.

Параметр <подъячейка> указывает номер подъячейки, к которой надо обратиться. У ячейки может быть максимум три подъячейки. Для обращения к ним надо указать 0, 1 или 2 в качестве номера. По умолчанию подъячейки не используются, что означает 0.

Если активна опция Скрывать пустые строчки (колонки), то программа скроет строчки и столбцы отчета, целиком состоящие из пустых ячеек, в том числе и тех, которые содержат 0 или пустую строку. Если после ключевого слова ЯЧЕЙКА указать ! (восклицательный знак) при занесении значения в ячейку, то она будет считаться непустой вне зависимости от значения и не будет скрыта. Соответственно, если опция Скрывать пустые строчки (колонки) не активна, то восклицательный знак после ЯЧЕЙКА игнорируется и ячейки добавляются всегда.

Запись и, вообще, любое обращение к ячейкам, одна из координат которых равна ПУСТО, игнорируется, а считывание из ячеек, одна из координат которых равна ПУСТО, всегда возвращает пустое значение.

Пример:

ЯЧЕЙКА[1,1] = 3.14159 // в ячейку с координтами [1, 1] заносится значение 3.14159

ЯЧЕЙКА["Название",1] = "Валенки" // в ячейку с координатами ["Название", 1] заносится значение "Валенки"

ЯЧЕЙКА[1,1,1] = "- число Пи" // в 1 - ую подъячейку ячейки с координатами [1, 1] заносится значение

// "- число Пи"

ЯЧЕЙКА[2,2] = ЯЧЕЙКА[1,1] + 1 // в ячейку с координтами [2, 2] заносится значение ячейки с координатами

// [1, 1] плюс 1

ЯЧЕЙКА[2,2] ++ // Увеличиваем значение ячейки с координатами [2, 2]

Чтобы посмотреть номер секции или номер координаты в уже сформированном отчете можно воспользоваться отладочным режимом, если нажать <Ctrl>+<Shift>+<D>.


ЯЧЕЙКА_СУЩ

Функция ЯЧЕЙКА_СУЩ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЯЧЕЙКА_СУЩ используется для проверки существования ячейки или столбца таблицы. Ячейка существует, когда в нее было внесено значение. Но не всегда, если включена опция Скрывать пустые строчки (колонки), то после присвоения нулевого значения, ячейка все равно не будет существовать. Столбец существует, когда в нем есть хотя бы одна ячейка.

Синтаксис:

ЯЧЕЙКА_СУЩ(<столбец>[,<строка>[,<подъячейка>]])

Когда функция имеет только один параметр, то он означает столбец, который надо проверить на существование. Функция в этом случае вернет ДА, если в столбце есть хотя бы одна ячейка.

Когда функция имеет более одного параметра, то первый означает столбец, а второй строку ячейки, которую надо проверить на существование. Параметр <подъячейка> может устанавливаться для проверки нужной подъячейки.

Пример:

ЯЧЕЙКА_СУЩ(1) // Проверим наличие столбца 1

ЯЧЕЙКА_СУЩ(1,1) // Проверим наличие ячейки (1,1)

ЯЧЕЙКА_СУЩ(1,1,1) // Проверим наличие подъячейки 1 ячейки (1,1)

См.также
ЯЧЕЙКАВ_СУЩ


ЯЧЕЙКАВ_СУЩ

Функция ЯЧЕЙКАВ_СУЩ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция ЯЧЕЙКАВ_СУЩ используется для проверки существования ячейки или строки таблицы. Ячейка существует, когда в нее было внесено значение. Но не всегда, если включена опция Скрывать пустые строчки (колонки), то после присвоения нулевого значения, ячейка все равно не будет существовать. Строка существует, когда в ней есть хотя бы одна ячейка.

Синтаксис:

ЯЧЕЙКАВ_СУЩ(<строка>[,<столбец>[,<подъячейка>]])

Когда функция имеет только один параметр, то он означает строку, которую надо проверить на существование. Функция в этом случае вернет ДА, если в строке есть хотя бы одна ячейка.

Когда функция имеет более одного параметра, то первый означает строку, а второй столбец ячейки, которую надо проверить на существование. Параметр <подъячейка> может устанавливаться для проверки нужной подъячейки.

Пример:

ЯЧЕЙКАВ_СУЩ(1) // Проверим наличие строки 1

ЯЧЕЙКАВ_СУЩ(1,1) // Проверим наличие ячейки (1,1)

ЯЧЕЙКАВ_СУЩ(1,1,1) // Проверим наличие подъячейки 1 ячейки (1,1)

См.также
ЯЧЕЙКА_СУЩ


ЯЧЕЙКАВЕРТ

Свойство ЯЧЕЙКАВЕРТ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

По умолчанию, в левой фиксированной колонке отчета отображаются вертикальные координаты ячеек. Но можно заменить этот текст при отображении его на экране. Для этого используется свойство ЯЧЕЙКАВЕРТ.

Синтаксис:

ЯЧЕЙКАВЕРТ[!][<столбец>[:<секция>]]

Здесь параметр <столбец>
задает координату столбца, для которого задается текст. Если указанная строка не существуют, программа выдаст сообщение об ошибке и работа алгоритма будет остановлена. Если указать ! (восклицательный знак), то ошибка будет проигнорирована и функция просто ничего не будет делать

В параметре <секция>
можно установить номер секции, если он не задавался ранее.

Замечание!

Этот же текст в многоуровневом отчете отобразится в колонтитуле при входе внутрь группы.

Пример:

ЯЧЕЙКА[1,1] = 3.14159 // в ячейку с координтами 1, 1 заносится значение 3.14159

ЯЧЕЙКАВЕРТ[1] = "Число Пи:" // задаем название строки с координатой 1 "Число Пи"

См. также
ЯЧЕЙКАГОР
Атрибут атНазвание.


ЯЧЕЙКАГОР

Свойство ЯЧЕЙКАГОР

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

По умолчанию, в заголовке колонок таблицы отчета отображаются горизонтальные координаты ячеек. Но можно заменить этот текст при отображении его на экране. Для этого используется свойство ЯЧЕЙКАГОР.

Синтаксис:

ЯЧЕЙКАГОР[!][[<столбец>] [:<секция>]]

Здесь

<столбец>
задает координату столбца, для которого задается текст. Если указанный столбец не существуют, программа выдаст сообщение об ошибке и работа алгоритма будет остановлена. Если указать ! (восклицательный знак), то ошибка будет проигнорирована и функция просто ничего не будет делать

в параметре <секция>
можно установить номер секции, если он не задавался ранее.

Если не указан ни столбец, ни секция, свойство управляет текстом в заголовке координатного столбца.

Замечание!

Этот же текст в многоуровневом отчете отобразится в колонтитуле при входе внутрь группы.

Пример:

ЯЧЕЙКА[1,1] = 3.14159 // в ячейку с координтами 1, 1 заносится значение 3.14159

ЯЧЕЙКАГОР[1] = "Число Пи" // задаем название колонки с координатой 1 "Число Пи"

ЯЧЕЙКАГОР[] = "Дата" // в левом вехнем углу таблицы будет написано "Дата"

См. также
ЯЧЕЙКАВЕРТ
Атрибут атНазвание.


JSON_СЧИТАТЬ

Функция JSON_СЧИТАТЬ

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Функция JSON_СЧИТАТЬ разбирает строку JSON формата и преобразует её в массив.

Синтаксис:

JSON_СЧИТАТЬ ( <строка>, <массив>),

где

<строка>
строка формата JSON, содержащая входные данные

<массив>
массив, в который загружаются данные

Возвращает логическое значение. При ошибке разбора НЕТ. При удачном разборе ДА.

Пример:

{ Заполним массив результат }

JSON_СЧИТАТЬ ("{""1"":""first"",""2"":""second""}", результат)

ЦИКЛ ДЛЯ (ии ИЗ результат)

ОТЛАДКА(ии, результат!ии)

КОНЕЦ_ЦИКЛА


Ключевые слова и функции от А до Я

A

АБС | функция
АВТОЗАПУСК | функция
АЛЬТЕРНАТИВНАЯ_ПЕЧАТЬ | функция
АНАЛИТИКА | функция
АНАЛИТИКА_ИНФО | функция
АНАЛИТИКА_СЧИТАТЬ | функция
АРХИВ | свойство
АРХИВ_ЗАПИСАТЬ | функция
АРХИВ_СЧИТАТЬ | функция
АТРИБУТЫ | свойство
АТРИБУТЫВ | свойство
АТРИБУТЫГР | свойство
АТРИБУТЫВГР | свойство

Б

БД | ключевое слово
БД_ВСЕГО | функция
БД_ВЫБОР | функция
БД_ЗАКРЫТЬ | функция
БД_ЗАМЕНИТЬ | функция
БД_ЗАПИСАТЬ | функция
БД_ОТКРЫТЬ | функция
БД_ПЕРЕЙТИ | функция
БД_ПОЛЕ | функция
БД_РЕДАКТОР | функция
БД_СОЗДАТЬ | функция
БД_СОРТ | функция
БД_СЧИТАТЬ | функция
БД_ТЕКУЩАЯ | функция
БЕСПЛАТНАЯ_ВЕРСИЯ | функция
БИН_И | функция
БИН_ИЛИ | функция
БИН_ИСК | функция
БИН_НЕ | функция
БУФЕР_ОБМЕНА | свойство
БЫЛИ_ИЗМЕНЕНИЯ | функция
БЮДЖЕТ | функция

В

ВВЕСТИ | ключевое слово
ВВЕСТИ_ЗНАЧЕНИЕ | функция
ВЕБСЕРВЕР | ключевое слово
ВЕРСИЯ | функция
ВЕРХСЧ | функция
ВЕРХ_УРОВЕНЬ | функция
ВИДИМОСТЬ | функция
ВИЗАРД | функция
ВКЛ_ДИАЛОГИ | функция
ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ | функция
ВКЛ_ФИРМЫ | свойство
ВМЕСТО | ключевое слово
ВОЗВРАТ | свойство
ВОЗВРАТВ | свойство
ВОЗМОЖЕН_РАЗРЫВ | функция
ВОПРОС | функция
ВРЕМЯ | ключевое слово
ВРЕМЯ | функция
ВРЕМЯ_ТЕК | функция
ВСЕ_ФИРМЫ | функция
ВСЕГО_СЛОВ | функция
ВСЕГОМ | функция
ВСТАВИТЬ | функция
ВСТАВИТЬ_ДВУМ_ШТРИХКОД | функция
ВСТАВИТЬ_ОТЧЕТ | функция
ВСТАВИТЬ_РАМКУ | функция
ВСТАВИТЬ_РИСУНОК | функция
ВСТАВИТЬ_СТРОКУ | функция
ВСТАВИТЬ_ШАПКУ_ПОДВАЛ | функция
ВСТАВИТЬ_ШТРИХКОД | функция
ВЫБОР | функция
ВЫБОР_АНАЛИТИКИ | функция
ВЫБОР_ГРУПП | функция
ВЫБОР_ГРУППЫ | функция
ВЫБОР_ДИР | функция
ВЫБОР_ЗАПИСЕЙ | функция
ВЫБОР_ЗАПИСИ | функция
ВЫБОР_ИЗ_ОТЧЕТА | функция
ВЫБОР_СЕРТИФИКАТА | функция
ВЫБОР_СЧЕТА | функция
ВЫБОР_СТАТЬИ | функция
ВЫБОР_ФАЙЛА | функция
ВЫБРАТЬ | ключевое слово
ВЫБРАТЬ_ЗНАЧЕНИЕ | функция
ВЫВЕСТИ | функция
ВЫЗВАТЬ | функция
ВЫЗВАТЬ_ИЗМЕНЕНИЕ | функция
ВЫПОЛНИТЬ | функция
ВЫРАЖЕНИЕ | функция
ВЫРАЖЕНИЕ_СТР | функция
ВЫРОВНЯТЬ | функция
ВЫРОВНЯТЬВ | функция
ВЫХОД | ключевое слово
ВЫЧИСЛИТЬ | ключевое слово

Г

ГЛОБАЛ | ключевое слово
ГОД | функция
ГРУППА | функция
ГРУППА_ПЕРЕСЧЕТ | функция
ГРУППАВ | функция
ГРУППАВ_ПЕРЕСЧЕТ | функция
ГУИД | функция

Д

ДА | ключевое слово
ДАННЫЕ_ДЛЯ_ПИСЬМА | функция
ДАТА | ключевое слово
ДАТА | функция
ДАТА_ЗАКР | свойство
ДАТА_КОН | свойство
ДАТА_НАЧ | свойство
ДАТА_ТЕК | функция
ДАТА_ТЕК_СИС | функция
ДАТАП | функция
ДАТАП0 | функция
ДЕКОДИРОВАТЬ | функция
ДЕЛ | функция
ДЕМО_ВЕРСИЯ | функция
ДЕНЬ | функция
ДЕНЬП | функция
ДЕТАЛИ | ключевое слово
ДИАГРАММА | ключевое слово
ДИАЛОГ | ключевое слово
ДИАЛОГ_НАСТРОЙКИ | функция
ДИР_ВРЕМЕННАЯ | функция
ДИР_ДОКУМЕНТОВ | функция
ДИР_ТЕК | функция
ДИР_ФАЙЛА | функция
ДЛИНА | функция
ДЛЯ | ключевое слово
ДЛЯ_ЖУРНАЛА | ключевое слово
ДОБАВИТЬ_В_ПРОТОКОЛ | функция
ДОБАВИТЬ_АНАЛИТИКУ | функция
ДОБАВИТЬ_СЧЕТ | функция
ДОБАВИТЬ_СВЯЗЬ | функция
ДОБАВИТЬ_СВЯЗЬ_ГР | функция
ДОКУМЕНТ_ЗАПИСАТЬ | функция
ДОКУМЕНТ_СЧИТАТЬ | функция
ДОП_КОЛОНКИ | функция
ДОП_КОЛОНКИ_ИСКЛЮЧЕНИЯ | функция
ДОСТУП | функция
ДРОБ | функция

Е

ЕДИН | функция
ЕДИН_ДОП | функция
ЕДИНСТВЕННО | функция
ЕСЛИ | ключевое слово
ЕСТЬ_АНАЛИТИКА | функция
ЕСТЬ_ВОЗМОЖНОСТЬ | функция
ЕСТЬ_ДОСТУП | функция
ЕСТЬ_ОБЪЕКТ | функция
ЕСТЬ_ОПЕР | функция
ЕСТЬ_ПОДУРОВНИ | функция
ЕСТЬ_СУБСЧ | функция
ЕСТЬ_СУБСТАТЬИ | функция
ЕСТЬ_ТЕРМИНАЛ | функция
ЕСТЬ_УВЕДОМЛЕНИЕ | функция
ЕСТЬ_ФИЛЬТР | функция
ЕСТЬ_ФИРМЫ | функция

Ж

ЖУРНАЛ | ключевое слово
ЖУРНАЛ_ВЫБРАТЬ | функция
ЖУРНАЛУ | ключевое слово

З

ЗАВЕРШЕНИЕ | функция
ЗАВЕРШЕНИЕ_РАБОТЫ | функция
ЗАГЛ | функция
ЗАГРУЗКА | ключевое слово
ЗАКЛАДКА | ключевое слово
ЗАКЛАДКА | функция
ЗАМ | функция
ЗАМ_RTF | функция
ЗАП_ВЫБОР_АНАЛИТИКИ | функция
ЗАП_ИСХ_ОСТ | функция
ЗАП_ИСХ_ОСТ_ГР | функция
ЗАП_НОМЕР | функция
ЗАП_ОПЕР | функция
ЗАПРОС | функция
ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ | функция
ЗВУК | функция
ЗНАК_ВАЛ | функция
ЗНАК_КОЛ | функция
ЗНАК_СУМ | функция
ЗНАК_ЦЕНА | функция
ЗНАЧ | функция
ЗНАЧ_ТЕСТ | функция

И

И | ключевое слово
ИЗ | ключевое слово
ИЗ_ЖУРНАЛА | функция
ИЗМЕНЕНА | функция
ИЗМЕНЕНИЕ | ключевое слово
ИЗМЕНИТЬ_СЧЕТ | функция
ИКОНКА | свойство
ИЛИ | ключевое слово
ИМПОРТ_ОПЕР | функция
ИМЯ_ФАЙЛА | функция
ИНАЧЕ | ключевое слово
ИНАЧЕ_ЕСЛИ | ключевое слово
ИНФОРМАЦИЯ | функция
ИНТЕРНЕТ_ЗАПРОС | функция
ИНТЕРНЕТ_ПРОКСИ | функция
ИНТЕРНЕТ_СЧИТАТЬ | функция
ИНТЕРФЕЙС_ПОЛЬЗОВАТЕЛЯ | функция
ИСКЛЮЧЕНИЕ | функция
ИСПОЛЬЗОВАТЬ | ключевое слово
ИСХ_ОСТ | функция
ИСХ_ОСТ_К | функция
ИСХ_ОСТ_ДОП | функция
ИСХ_ОСТ_НУ | функция
ИТОГО | функция
ИТОГОВ | функция

К

КВАРТАЛ | функция
КНОПКА | ключевое слово
КОД_СИМВ | функция
КОД_СЧЕТА | функция
КОД_СЧЕТА_ТОЛЬКО | функция
КОДИРОВАТЬ | функция
КОЛОНТИТУЛ | свойство
КОМПЬЮТЕР | функция
КОНЕЦ | ключевое слово
КОНЕЦ_ДИАЛОГА | ключевое слово
КОНЕЦ_ДЛЯ | ключевое слово
КОНЕЦ_ЕСЛИ | ключевое слово
КОНЕЦ_ПЕЧАТИ | функция
КОНЕЦ_ПОПЫТКИ | ключевое слово
КОНЕЦ_СТРАНИЦЫ | функция
КОНЕЦ_ТРАНЗАКЦИИ | ключевое слово
КОНЕЦ_ФУНКЦИИ | ключевое слово
КОНЕЦ_ЦИКЛА | ключевое слово
КОНСТ | ключевое слово
КОНТРОЛЬНАЯ_СУММА | функция
КОНТРОЛЬНАЯ_СУММА_ФАЙЛА | функция
КОП | функция
КОПП | функция
КУРСОР | ключевое слово

Л

ЛОГ | функция
ЛОГИКА | ключевое слово

М

МАКС | функция
МАКСМ | функция
МАКС_ЯЧЕЕК | функция
МАСКА_СУБСЧЕТОВ | функция
МАСКА_СЧЕТОВ_АНАЛИТИКИ | функция
МАСТЕР | функция
МЕС | функция
МЕСП | функция
МИН | функция
МИНМ | функция
МИН_ЯЧЕЕК | функция
МИНУТЫ | функция
МНОГО | функция
МНОЖЕСТВО | ключевое слово
МНОЖЕСТВО | функция
МНОЖЕСТВО_СОКР | функция

Н

НАЗВ | функция
НАЗВ_ПОЛН | функция
НАСТРОИТЬ_ПОРЯДОК | функция
НАЧАЛО_ПЕЧАТИ | функция
НЕ | ключевое слово
НЕ_ПУСТО | функция
НЕТ | ключевое слово
НЕТ_ДАТЫ | ключевое слово
НОМЕР | функция

О

ОБД | функция
ОБД_К | функция
ОБД_ДОП | функция
ОБД_НУ | функция
ОБК | функция
ОБК_К | функция
ОБК_ДОП | функция
ОБК_НУ | функция
ОБЛАЧНАЯ_ВЕРСИЯ | функция
ОБНОВИТЬ_МЕНЮ | функция
ОБНОВИТЬ_ОТЧЕТ | функция
ОБНОВИТЬ_СПИСОК | функция
ОБНОВИТЬ_ТЕРМИНАЛ | функция
ОБНУ | функция
ОБНУ_К | функция
ОБНУ_ДОП | функция
ОБНУЛИТЬ_ЖЕЛТЫЕ | функция
ОБНУЛИТЬ | функция
ОБОРОТЫ | функция
ОБОРОТЫ_УСЛОВИЕ | функция
ОБЪЕДИНЕНИЕМ | функция
ОКРУГЛЕНИЕ | функция
ОПЕРАЦИЯ | ключевое слово
ОПРЕДЕЛИТЬ | функция
ОПРЕДЕЛИТЬ_ЗНАЧ | функция
ОПРЕДЕЛИТЬ_СБРОС | функция
ОСД | функция
ОСД_К | функция
ОСД_ДОП | функция
ОСД_НУ | функция
ОСДН | функция
ОСДН_К | функция
ОСДН_ДОП | функция
ОСДН_НУ | функция
ОСК | функция
ОСК_К | функция
ОСК_ДОП | функция
ОСК_НУ | функция
ОСКН | функция
ОСКН_К | функция
ОСКН_ДОП | функция
ОСКН_НУ | функция
ОСТ | функция
ОТЛАДКА | функция
ОТМЕНИТЬ | функция
ОТПРАВИТЬ_ПИСЬМО | функция
ОТПРАВИТЬ_ПИСЬМО_НАПРЯМУЮ | функция
ОТЧ_ГОД | функция
ОТЧ_МЕС | функция
ОШИБКА | свойство

П

ПАРАМЕТРЫ | свойство
ПАРАМЕТРЫ_ПЕЧАТИ | функция
ПАРАМЕТР_ЗАПУСКА | функция
ПАУЗА | функция
ПЕРЕД | ключевое слово
ПЕРЕМ | ключевое слово
ПЕРЕНОС_ПРОВОДОК | функция
ПЕРЕНОС_ПРОВОДОК_НУ | функция
ПЕРЕСЕЧЕНИЕ | функция
ПЕРЕСЕЧЕНИЕМ | функция
ПЕРИОД | функция
ПЕРИОД_КОН | функция
ПЕРИОД_НАЧ | функция
ПОДОБРАТЬ_ЗНАЧЕНИЯ | функция
ПОДПИСЬ_ДОБАВИТЬ | функция
ПОДПИСЬ_ПРОВЕРИТЬ | функция
ПОДПИСЬ_РАСШИФРОВАТЬ | функция
ПОДПИСЬ_ШИФРОВАТЬ | функция
ПОДСТР | функция
ПОДСЧ | функция
ПОДТВЕРДИТЬ | функция
ПОЗ | функция
ПОЗ_ОБР | функция
ПОКА | ключевое слово
ПОЛЬЗОВАТЕЛЬ | функция
ПОЛЯ | ключевое слово
ПОПЫТКА | функция
ПОРЯДОК_АНАЛИТИК | функция
ПОСЛАТЬ_СОБЫТИЕ | функция
ПОСЛАТЬ_УВЕДОМЛЕНИЕ | функция
ПОСЛЕ | ключевое слово
ПОСЛЕДНЯЯ_ЗАКЛАДКА | свойство
ПОХОЖЕСТЬ | функция
ПРАЗДНИК | функция
ПРИНТЕР | свойство
ПРОВЕРКА | ключевое слово
ПРОВОДКА | функция
ПРОВОДКАГР | функция
ПРОВОДКА_НУ | функция
ПРОДОЛЖИТЬ | ключевое слово
ПРОФИЛЬ | свойство
ПРОФИЛЬ_ВРЕМ | свойство
ПУТЬ_МЕНЮ | функция

Р

РАБОТАЕТ_ПОЛЬЗОВАТЕЛЕЙ | функция
РАБОЧИЕ_ОБЪЕКТЫ | функция
РАЗБОР | функция
РАЗВЕРНУТЬ | функция
РАЗВЕРНУТЬВ | функция
РАСКРЫВАЕМО | функция
РАСКРЫВАЕМОВ | функция
РЕЕСТР | свойство
РЕЕСТР_КЛЮЧИ | функция
РЕЗЕРВНОЕ_КОПИРОВАНИЕ | функция
РЕЗУЛЬТАТ | ключевое слово
РИМ | функция
РУБ | функция
РУБП | функция

С

САЛЬДО | функция
САЛЬДОВ | функция
СЕКУНДЫ | функция
СЕКЦИЯ | ключевое слово
СЕРВЕР_ОТПРАВИТЬ | функция
СЕРВЕР_ПОДКЛЮЧЕН | функция
СЕРВЕР_ПОДКЛЮЧИТЬ | функция
СЕРТИФИКАТ_ИНФО | функция
СЕРТИФИКАТ_ПРОВЕРИТЬ | функция
СИМВ | функция
СИСТЕМА_НАЛОГООБЛОЖЕНИЯ | свойство
СКРЫТЬ_ЯЧЕЙКИ | функция
СКРЫТЬ_НУЛЕВЫЕ_ЗНАЧЕНИЯ | функция
СЛЕДИТЬ | функция
СЛОВА | ключевое слово
СЛОВА | функция
СЛОВО | функция
СЛОЖНЫЙ_ФИЛЬТР | функция
СЛУЧ_ЧИСЛО | функция
СОЗДАТЬ | функция
СОЗДАТЬ_ДИР | функция
СООБЩЕНИЕ | функция
СОРТИРОВАТЬ | функция
СОРТИРОВАТЬВ | функция
СПРАВКА | функция
СРАВ_СЧЕТА | функция
СРАВ_ЗНАЧ | функция
СТАРТ_БЛАНК | функция
СТАРТ_БРАУЗЕР | функция
СТАРТ_ЖУРНАЛ | функция
СТАРТ_ОПЕРАЦИЯ | функция
СТАРТ_ОТЧЕТ | функция
СТАРТ_ТЕРМИНАЛ | функция
СТАТУС | функция
СТАТУС_ГЛОБАЛ | функция
СТАТЬИ | ключевое слово
СТАТЬЯ | функция
СТАТЬЯ_ВЕРНА | функция
СТАТЬЯ_ДОХ | функция
СТАТЬЯ_КОРР | функция
СТАТЬЯ_КОСВ | функция
СТАТЬЯ_РАСХ | функция
СТАТЬЯ_СУЩ | функция
СТЕК | функция
СТОП | ключевое слово
СТОП_ВСЕ | ключевое слово
СТОРНО_КОРР | функция
СТР | функция
СТР0 | функция
СТРФ | функция
СТРОКА | ключевое слово
СТРОКА_СИМВ | функция
СТРОЧ | функция
СУБСЧЕТ | функция
СУММАМ | функция
СУММАП | функция
СУММАПРОП | функция
СУММАП_АНГЛ | функция
СУММА_ЯЧЕЕК | функция
СУЩ | функция
СУЩ_ФАЙЛ | функция
СЧЕТ_АКТ | функция
СЧЕТ_БЮДЖЕТ | функция
СЧЕТ_ДОП | функция
СЧЕТ_ДОСТУПЕН | функция
СЧЕТ_ИСПОЛЬЗУЕТСЯ | функция
СЧЕТ_КОЛ | функция
СЧЕТ_ПАС | функция
СЧЕТ_СКРЫТЬ_ДОСТУП | функция
СЧЕТ_СУЩ | функция
СЧЕТ_СВЕР | функция
СЧЕТА | ключевое слово

Т

ТЕК_НОМЕР | свойство
ТЕК_ФИРМА | свойство
ТИП | функция
ТО | ключевое слово
ТРАНЗАКЦИЯ | ключевое слово
ТРАНСПОНИРОВАТЬ | функция

У

УБР_ПРОБ | функция
УБРАТЬ_МЕНЮ | функция
УДАЛ | функция
УДАЛ_СИМВ | функция
УДАЛИТЬ_АНАЛИТИКУ | функция
УДАЛИТЬ_ГРАФУ | функция
УДАЛИТЬ_ДИР | функция
УДАЛИТЬ_НОМЕР | функция
УДАЛИТЬ_СОБЫТИЯ | функция
УДАЛИТЬ_СТРОКУ | функция
УДАЛИТЬ_СЧЕТ | функция
УДАЛИТЬ_УВЕДОМЛЕНИЕ | функция
УПАК_ОПЕР | функция
УРЛ_ДЕКОДИРОВАТЬ | функция
УРЛ_КОДИРОВАТЬ | функция
УРОВЕНЬ | функция

Ф

ФАЙЛ | ключевое слово
ФАЙЛ_КОПИРОВАТЬ | функция
ФАЙЛ_ПЕРЕИМЕНОВАТЬ | функция
ФАЙЛ_УДАЛИТЬ | функция
ФИЛЬТР | ключевое слово
ФОКУС | ключевое слово
ФОРМАТ | функция
ФУНКЦИЯ | ключевое слово

Ц

ЦЕНА | функция
ЦИКЛ | ключевое слово

Ч

ЧАС | функция
ЧИСЛО | ключевое слово
ЧИСЛО | функция

Ш

ШРИФТ

ключевое слово

Э

ЭКСП | функция
ЭКСПОРТ_ОПЕР | функция
ЭТО | ключевое слово

Я

ЯЧЕЙКА | свойство
ЯЧЕЙКА_СУЩ | функция
ЯЧЕЙКАВ_СУЩ | функция
ЯЧЕЙКАГОР | свойство
ЯЧЕЙКАВЕРТ | свойство

..

? (вопр. знак) | функция
* (звездочка) | ключевое слово
JSON_СЧИТАТЬ | функция


Выбор бланка

Таблица выбора бланка появляется при вызове списка бланков на редактирование из меню «Разработка | Бланки».

Все бланки в программе Инфо-Предприятие разделены на разделы. Список бланков представляет собой таблицу с закладками, соответствующими разделам бланков. При выборе нужной закладки на экране появится список бланков из выбранного раздела. Если все разделы не помещаются на экране, то справа от закладок появятся кнопки [image] , с помощью которых можно перелистывать закладки. Перемещаться между закладками можно и при помощи клавиатуры, нажимая клавиши Я и а.

После выбора бланка Вы перейдете к его редактированию. Кроме того, при работе со списком бланков можно выполнять следующие действия, используя клавиатуру, контекстное меню или панель управления:

Создание нового бланка — происходит при добавлении записи в таблицу. После чего появится диалог редактирования заголовка нового бланка. После задания заголовка и нажатия <OK> новый бланк будет добавлен к списку и можно будет приступить к его редактированию.

Также можно воспользоваться пунктом меню Создать копию для создания копии бланка, на котором находится курсор.

Удаление бланка — происходит при удалении записи из таблицы. Перед удалением появится подтверждение: Удалить бланк такой-то ?. Нажмите Да для удаления.

Редактирование заголовка бланка — происходит при редактировании записи таблицы. Появится диалог редактирования заголовка бланка. Там можно изменить название бланка, раздел, к которому он принадлежит и т.п.

Переместить бланк вверх или вниз в списке — можно при помощи перемещении строк таблицы. Порядок бланков внутри раздела может быть произвольным.

Изменить название текущего раздела — можно при помощи пункта Название раздела контекстного меню. Появится диалог, в котором указывается новое имя раздела. Если будет указано имя существующего раздела, программа поместит все бланки в этот раздел.

Удалить текущий раздел — можно при помощи пункта Удалить раздел контекстного меню. Программа спросит: Удалить раздел из списка ?. Нажмите Да для удаления.

Внимание!

Все бланки из текущего раздела будут удалены.

Список бланков при редактировании вдобавок к названию бланка содержит имя файла, содержащего бланк, идентификатор журнала, а также дату последнего изменения.

Найти текст в бланках — позволяет отыскать нужный текст среди всего списка бланков.

Показать скрытые бланки — включает отображение бланков, не поддерживаемых лицензией на программу.

Настроить лицензии — для данного выбранного бланка позволяет указать, в каких конфигурациях (модулях) он должен показываться, а в каких нет. Опция доступна только под Администратором программы.

Если Вы не можете отыскать бланк или не знаете в каком он разделе, то лучше воспользоваться поиском, не забыв указать в опциях поиска по всем закладкам. Но помните, что поиск в списке первичных документов будет искать бланк только среди бланков первичных документов. А поиск в списке отчетных только среди отчетных. Часть бланков может быть скрыта в данной конфигурации программы. Чтобы показать все бланки, включая и скрытые, воспользуйтесь пунктом контекстного меню Показать скрытые бланки.

Можно воспользоваться импортом/экспортом файла бланка. Для этого, находясь в списке, выберите пункт меню «Файлы | Импорт из...» или «Файлы | Экспорт в...». Это бывает удобно для быстрой переброски файлов между базами данных. Кроме импорта собственно файлов, внутри редактора бланка возможен импорт и экспорт содержимого бланков в другие форматы.

См. также
Выбор бланка отчетной формы
Работа с таблицами


Заголовок бланка, отчета

В диалоге редактирования заголовка бланка (отчета) можно задать следующие параметры бланка (отчета).

Название бланка (отчета) — задает название бланка (отчета), под которым он будет отображаться в списке.

Название раздела — задает название раздела, к которому относится бланк (отчет). По умолчанию в строке содержится имя текущего раздела. Для выбора существующих разделов можно воспользоваться списком.

Категория — определяет категорию (мега раздел) для бланков документов. Это влияет на то, при выборе какого меню будет отображаться бланк. Существует две основные категории:

·Отчетные документы — отображаются при выборе пункта меню «Операции | Отчетные формы»,

·Первичные документы — отображаются при выборе пункта меню «Операции | Первичные формы».

Если в категории стоит Нет, бланк не будет ни в одном списке. Зато его можно вызывать отдельно из главного меню, контекстно или из внутреннего языка. То же самое раcпространяется и на бланки из раздела Системные.

Позиция сортировки в списке — указанное здесь число влияет на сортировку бланков. Порядок бланков можно менять и переставляя их местами в списке бланков, однако позиция имеет больший приоритет.

Имя файла бланка — файл бланка. Если файла с таким именем не существует, то он будет создан. Двух файлов бланков одной категории быть не может.

Вызывать вместо бланка (отчета) — если указать здесь какой-либо бланк (отчет), то текущий бланк будет вызываться вместо него. Вы можете разработать свою версию какого-либо стандартного бланка (отчета) и указать в его параметрах данную опцию. Тогда вместо стандартного бланка будет вызываться ваша версия. При последующих обновлениях программы и, соответственно, стандартного варианта бланка (отчета) по-прежнему будет вызываться ваша версия бланка (отчета).

Бланки и отчеты имеют и другие параметры, они задаются:

Параметры бланка внутри редактора бланка

Параметры отчета внутри редактора отчета


Создание копии бланка, отчета

При доработке программы «под себя» могут возникать определенные проблемы при установки последующих обновлений.

Если создать свой бланк или отчет он не потеряется при обновлении. Если же в процессе доработки требуется не добавить, а изменить уже существующий типовой бланк или отчет, то после установки обновления на такую переработанную версию программы внесенные правки могут потеряться (заменяются на стандартные). Такое произойдет, если обновление также будет содержать обновленную версию этого бланка или отчета.

Для решения этой проблемы в программе есть средства, позволяющие менять бланки и отчеты так, что при обновлении программы изменения не терялись.

Самый простой вариант воспользоваться пунктом меню Создать копию в списке бланков или списке отчетов. При выборе этого пункта откроется диалог со следующими полями:

Имя файла бланка — файл создаваемого бланка или отчета. Имя файла не должно совпадать с именем файла уже существующего бланка или отчета.

Вызывать копию вместо исходного бланка — при включении этого флажка, в параметрах создаваемой копии бланка или отчета будет заполнено поле Вызывать вместо бланка (отчета). В нем будет указано имя исходного бланка (отчета), на основе которого эта копия была сделана. Таким образом копия будет вызываться везде вместо исходного бланка (отчета).

Последующее обновление программы перезатрет исходный бланк (отчет). Но копия как была, так и останется. И она по-прежнему будет вызываться вместо исходного бланка (отчета).

Второй вариант — создать новый бланк вручную самостоятельно. А затем у нового бланка заполнить поле Вызывать вместо бланка (отчета) в параметрах.

См. также
Заголовок бланка, отчета


Редактор бланков

Редактор бланков предназначен для редактирования существующих и создания новых бланков в программе Инфо-Предприятие. Редактор позволяет создавать документы очень высокого качества. Размеры элементов документа могут определяться с точностью до сотых долей миллиметра с сохранением размеров при отображении вне зависимости от устройств печати, установленной операционной системы и набора установленных шрифтов.

Для редактирования бланка надо выбрать его в списке бланков из меню «Разработка | Бланки».

Для создания нового бланка необходимо добавить его заголовок к списку бланков, а затем отредактировать вновь созданный бланк. Для этого надо перейти в тот раздел, в котором должен создаваться бланк. Можно создать бланк в новом разделе или выбрать раздел из списка в заголовке бланка. При добавлении нового бланка вначале появится диалог редактирования заголовка нового бланка. После нажатия <OK> пустой бланк будет создан, и можно приступать к его редактированию.

Бланк состоит из двух частей — Формы, в которой определяется внешний вид бланка и Расчетной части (формульного раздела), в котором на внутреннем языке Инфо-Предприятия пишется алгоритм расчета бланка. Для переключения между ними используются закладки в левом углу строки статуса редактора:

Также, для переключения между Формой и Расчетной частью можно воспользоваться клавишей <Ctrl>+<F2>, клавишами <Ctrl>+<PgDn> или <Ctrl>+<PgUp> или же соответствующим пунктом контекстного меню.

Форма бланка обычно имеет линейку, в которой отображаются размеры редактируемых объектов:

(Щелкните мышкой для получения информации об элементах линейки).

В окне редактора формы бланка в контекстное меню добавляются следующие пункты:

Масштаб редактора — определяет масштаб, в котором бланк будет отображаться в редакторе.

Линейка — позволяет скрыть/показать линейку.

Сетка — позволяет скрыть/показать координатную сетку.

Параметры бланка — редактирование параметров бланка

Разметка страницы — установка параметров страницы бланка, ориентации, отступов, масштаба и т.п.

Настраиваемая обработка (только под Администратором) — позволяет обработать форму с помощью пользовательской функции.

Настроить права доступа (только под Администратором) — позволяет настроить права доступа к бланку.

Проверить синтаксис — проверить расчетную часть бланка на синтаксические ошибки (вызывается по <Ctrl>+<F9>)

Таблица элементов — открывает таблицу элементов (вызывается по <F2>) для групповой обработки элементов бланка.

Расчетная часть — перейти в расчетную часть бланка (вызывается по <Ctrl>+<F2>)

Изменяя форму бланка, Вы можете вводить и редактировать любую текстовую информацию, при этом работа с текстом в редакторе бланков похожа на работу с текстом во встроенном редакторе текстов с небольшими отличиями. Кроме текстовой информации, форма бланка может содержать следующие элементы:

Элемент | Клавиша | Назначение
Рамка | <Ctrl>+<1> | Представляет собой прямоугольную рамку или прямоугольник, используется для создания таблиц
Графа | <Ctrl>+<2> | Используется для ввода значения в определенную переменную перед расчетом и вывода значения после расчета
Опция | <Ctrl>+<3> | Используется для ввода значения в переменную типа логика при заполнении бланка
Кнопка | <Ctrl>+<4> | Предназначены для организации интерфейса с пользователем при заполнении бланка
Рисунок | <Ctrl>+<5> | Предназначен для вставки в бланк произвольных рисунков, например логотипов, эмблем и т.п.
Диаграмма | <Ctrl>+<6> | Диаграммы и графики являются средством наглядного представления данных
Штрихкод | <Ctrl>+<7> | Предназначен для вставки в бланк штрих-кода.
QR-код | <Ctrl>+<8> | Предназначен для вставки в бланк QR-кода
Секция | <Ctrl>+<9> | Задает повторяющийся фрагмент бланка, верхний и нижний колонтитул и т.д.
Разрыв страницы | <Ctrl>+<0> | Решают разные задачи управления страницами, включая удаление части бланка после расчета
Непечатная область |  | Определяет фрагмент бланка, который будет виден на экране, но не будет выводиться на печать

Можно добавлять, копировать, перемещать и удалять перечисленные выше элементы, а также изменять их размеры и параметры.

Основные функции редактора формы бланка:

·Рисование линий

·Добавление нового элемента

·Перемещение и изменение размеров элемента

·Редактирование параметров элемента

·Удаление элемента из бланка

·Групповая обработка элементов бланка

·Настраиваемая обработка

Форму бланка можно подготовить в другой программе, а потом просто импортировать из нее. Для этого в программу встроена поддержка следующих форматов:

·Бланк документа — считывает бланки всех предыдущих версий программы Инфо-Предприятие

·Импорт бланка из Microsoft Word

·Импорт бланка из Microsoft Excel

·Импорт бланка из формата RTF

Чтобы загрузить форму бланка, выберите пункт меню «Файлы | Импорт из...». Появится диалог импорта файла. Выберите в нем нужный файл и нажмите Открыть.

Для экспорта формы бланка во внешний файл выберите пункт меню «Файлы | Экспорт в...». Если стоит задача перебрoсить файл в другую базу данных, выберите тип файла Бланк документа.

См. также
Пример бланка
Расчетная часть
Поиск и замена строки
Переход к нужной строке
Редактор текста


Строка статуса редактора

В строке статуса окна редактора содержится следующая информация:

·Закладки переключения между формой бланка и его расчетной частью. Переключаться также можно с помощью комбинации клавиш <Ctrl>+<F2> (другой вариант — <Ctrl>+<PgUp> на форму и <Ctrl>+<PgDn> на расчетную часть).

·Текущая позиция курсора (строка : колонка) или краткая информация о выделенной графе в редакторе бланков. При двойном щелчке мышью появляется диалог перехода к нужной строке бланка.

·Имя редактируемого файла. При двойном щелчке в редакторе бланков появляется диалог параметров бланка.

·Признак внесения изменений в документ. Если были внесены какие-нибудь изменения, то в строке статуса появляется надпись Изменен.

·Указатель режима выделения текста БЛК. Если надпись активна, то используется блочное выделение текста, иначе строчное. Строчный режим удобен, когда надо выделить несколько строк, расположенных одна под другой, а блочный режим позволяет выделять прямоугольные фрагменты текста. Переключиться между строчным и блочным выделением можно с помощью комбинации клавиш <Ctrl>+<Б> ( <Ctrl>+<<> ) или двойного щелчка мышью по надписи.

·Указатель режима выбора элемента бланка ЧСТ. Если надпись активна то при выделении объекта он будет выделяться весь, даже если область выделения захватывает его частично. В противном случае для выделения объекта он должен целиком попасть в область выделения. Переключиться между этими режимами можно с помощью комбинации клавиш <Shift>+<Ctrl>+<Б> ( <Shift>+<Ctrl>+<<> ) или двойного щелчка мышью по надписи

·Указатель режима автонумерации граф ввода АВТ. В этом режиме при вставке из буфера обмена графы ввода элемента массива программа будет последовательно увеличивать индекс массива. Для включения/отключения этого режима можно воспользоваться комбинацией клавиш <Ctrl>+<Shift>+<Ю> ( <Ctrl>+<Shift>+<>> ).

·Толщина линий при рисовании рамок. При двойном щелчке увеличивает толщину.

·Указатель режима вставки текста ЗАБ. Если эта надпись активна, то при набивании текста он будет замещать существующие символы. Активизируется и отменяется при помощи нажатия <Ins> или двойного щелчка по надписи.

·Состояние клавиш Num Lock (дополнительные клавиши работают как цифровые) — <NUM> и Caps Lock (клавиатура переведена в верхний регистр) — <CAPS>. Активизируются и отменяются при нажатии соответствующих клавиш или по двойному щелчку.


Расчетная часть бланка

В расчетной части бланка располагается алгоритм расчета бланка. Его задача обработать данные, в том числе и из вводных полей и вывести результат в визуальную часть бланка. Расчетная часть описывается с помощью внутреннего языка программы Инфо-Предприятие и выполняется при выполнении бланка документа.

Внутри расчетной части содержатся как формулы основного алгоритма, так и различные функции, участвующие в подстановке значений во вводные графы визуальной части.

Расчетную часть бланка можно просмотреть и изменить в редакторе бланка, если сделать одно из следующих действий:

·выбрать пункт главного меню «Правка | Расчетная часть»

·нажать <Ctrl>+<F2> или выбрать пункт контекстного меню Расчетная часть

При создании нового бланка программа создаст скелет его расчетной части:

// Описания общих переменных и функций

ВЫЧИСЛИТЬ

// Предрасчетная часть бланка

ВВЕСТИ

// Расчетная часть бланка

КОНЕЦ

Здесь и далее за "//" располагаются комментарии, и используется подсветка, т.е. определенные конструкции выделяются цветом, например по умолчанию комментарии выделяются зеленым, а ключевые слова жирным шрифтом. Настроить подсветку можно в пункте меню «Установка | Настройки», вызвав настройку редактора. См. подробнее в редакторе формул.

Бланк состоит их двух частей: предрасчетной и расчетной. Они отделяются ключевым словом ВВЕСТИ. Предрасчетная часть бланка используется, если бланк имеет хотя бы одно вводное поле. Если бланк не имеет вводных полей, то предрасчетная часть будет проигнорирована программой.

Процесс работы с бланком, содержащим хотя бы одно вводное поле, можно условно разделить на два этапа: сначала пользователь вводит нужные данные во входные графы бланка, потом пользователь запускает бланк на выполнение, бланк рассчитывается и выводит результат. До того, как пользователь начнет вводить данные, бланк выполняется предрасчетная часть, а когда пользователь закончит ввод и запустит бланк, то выполнится расчетная часть.

Если бланк имеет предрасчетную часть и графы ввода, то она будет вызываться в следующих случаях:

·При открытии бланка

·При очистке бланка (например, при помощи <F8> или кнопки [image] панели).

Фактически, когда программа натыкается на ВВЕСТИ, она приостанавливает выполнение бланка и ждет пока пользователь не запустит бланк. Таким образом, все изменения в переменных в предрасчетной части доступны и в расчетной.

Расчетная часть бланка, содержащая основной алгоритм рассчитывается, когда пользователь запускает бланк, например, при помощи <F9> или кнопки [image] на панели управления.

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

Если внутри бланка нет ВВЕСТИ, то он не имеет предрасчетной части.

Пример:

// Описания общих переменных и функций

ВЫЧИСЛИТЬ

// Расчетная часть бланка

КОНЕЦ

В таком случае перед открытием бланка какого-либо расчета не выполняется. Бланк может не иметь внутри себя ВЫЧИСЛИТЬ и вообще расчетной части. В этом случае он просто ничего не делает.

Бланк, имеющий графы ввода с вызовом функции могут содержать эти функции у себя внутри, в разделе описания общих переменных и функций. Для этого при указании библиотеки в графе надо указать пустую строку.

Вызов функции из графы ввода работает так: сначала содержимое всех вводных полей помещается в соответствующие общие переменные. После завершения выполнения функции в те графы, у которых включена опция Обновлять графу при вызове функций будет помещены результаты вычисления функции.

Бланк может иметь секцию ИЗМЕНЕНИЕ, срабатывающую, когда пользователь изменит содержимое какого-либо поля бланка и перейдет к редактированию следующего.

Бланк, сохраняющий содержимое вводных полей в журнале бухгалтерских операций, может иметь секцию ЗАГРУЗКА, в которой описывается алгоритм загрузки, срабатывающий при вызове бланка на основе бухгалтерской операции.

См. также
Пример расчетной части
Редактор бланков
Общие сведения о внутреннем языке
Ключевые слова
Встроенные функции


Перемещение и изменение размеров элемента бланка

Для перемещения и изменения размеров элемента необходимо его сначала выделить. Выделить с помощью мыши можно, если, наведя курсор на требуемый элемент, щелкнуть левой кнопкой мыши. С клавиатуры элемент выделяется, если навести на него текстовый курсор или перейти от другого элемента с помощью <Tab>. После выделения вокруг элемента появится красная рамка:

Для перемещения и изменения размеров элемента бланка можно использовать как мышь, так и клавиатуру.

С помощью мыши

Для изменения размеров элемента бланка с помощью мыши выполните следующие действия:

1.Установите указатель мыши на один из квадратиков рамки поля, находящегося в режиме редактирования. При этом указатель мыши превратится в двунаправленную стрелку.

2.Нажмите левую кнопку мыши и, удерживая кнопку, раздвиньте границу поля до требуемых размеров. При этом рядом с курсором мыши появится окошко с размерами графы. Сверху будут размеры в ячейках, ниже — размеры в миллиметрах.

Если при изменении размера удерживать клавишу <Shift>, размеры поменяются и у всех прилежащих элементов, в зависимости от стратегии объединения объектов.

Для перемещения элемента бланка с помощью мыши надо:

1.Установите указатель мыши на область выделения. При этом указатель мыши примет вид ладошки.

2.Нажмите левую кнопку мыши и, удерживая кнопку, переместите объект в нужное место. При этом рядом курсором появится окошко с координатами объекта. Сверху будут координаты в ячейках, ниже — координаты в миллиметрах.

Если при перемещении удерживать клавишу <Shift>, перемещаться будут и все прилежащие элементы, в зависимости от стратегии объединения объектов.

Чтобы отказаться от перемещения или изменения размеров элемента достаточно нажать на клавиатуре <Esc>.

С помощью клавиатуры

Для изменения положения и размеров элемента бланка с помощью клавиатуры, переведите поле в режим редактирования и нажмите <Shift>+<Enter> или <Ctrl>+<Enter>. Рамка поля станет пунктирной.

Теперь для перемещения элемента можно использовать клавиши управления курсором.

Чтобы изменять размеры элемента, можно использовать комбинацию клавиши <Shift> с клавишами управления курсором — изменение правого и нижнего края, или комбинацию клавиши <Ctrl> с клавишами управления курсором — изменение левого и верхнего края.

Закончив перемещение и установку размеров поля, нажмите клавишу <Enter> внесения изменений или <Esc> для отмены.


Удаление элемента из бланка

Чтобы удалить элемент из бланка, выполните следующие действия:

1. Выделите удаляемый элемент. Выделить с помощью мыши можно, если, наведя курсор на требуемый элемент, щелкнуть левой кнопкой мыши. С клавиатуры элемент выделяется, если навести на него текстовый курсор. После выделения вокруг элемента появится красная рамка:

2. Далее выполните одно из следующих действий:

·нажмите кнопку [image] на панели инструментов;

·выберите пункт «Правка | Удалить» контекстного меню;

·нажмите клавишу Del или <F8>;

Для удаления нескольких элементов воспользуйтесь выделением элементов.


Изменение параметров элемента бланка

Элементы бланка помимо расположения и размеров могут иметь и дополнительные параметры. Для изменения этих параметров элемента его необходимо сначала выделить. Выбрать с помощью мыши можно, если, наведя курсор на требуемый элемент, щелкнуть левой кнопкой мыши. С клавиатуры элемент выделяется, если навести на него текстовый курсор. После выделения вокруг элемента появится красная рамка:

Для изменения параметров элемента надо выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Изменить» контекстного меню;

·щелкнуть левой клавишей мыши по элементу;

·нажать клавишу <Enter> или <F4>;

Для каждого типа элементов имеется свой набор параметров:

·Рамка

·Графа

·Опция

·Кнопка

·Рисунок

·Диаграмма

·Штрихкод

·QR-код

·Секция

·Разрыв страницы

·непечатная область — не имеет параметров

Диалог настройки параметров позволяет вносить изменения в один выбранный элемент. Если нужно вносить изменения в параметры одновременно нескольких элементов бланка, используется таблица элементов.


Добавление нового элемента бланка

Стандартное меню

Способ 1.

Для добавления элемента надо нажать комбинацию клавиш <Ctrl>+<номер> (здесь <номер> — это цифровая клавиша на клавиатуре, соответствующая конкретному элементу). Например, <Ctrl>+<1> — добавляет рамку. Параметры добавляемого элемента запоминаются, и в следующий раз программа добавит такой же объект. Чтобы указать размеры добавляемого элемента, можно выделить блок — программа вставит новый элемент внутрь выделенного блока. Для граф программа дополнительно перенесет текст из блока в текст графы.

Способ 2.

Также добавить новый элемент бланка можно с помощью следующих действий:

1. Установить текстовый курсор в то место бланка, где предполагаете добавить новый элемент. Текстовый курсор можно перемещать с помощью клавиш управления курсором или при помощи мыши.

2. Далее выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Добавить» контекстного меню;

·дважды щелкнуть левой клавишей мыши по тому месту, где надо поместить новый элемент;

·нажать клавишу <Ins> или <F7>;

3. В появившемся диалоговом окне Новый элемент выбрать тип объекта и нажать клавишу <Enter> или кнопку <OK>. Нажав клавишу <Esc> или кнопку <Отмена>, Вы можете отказаться от добавления нового элемента в форму бланка.

Способ 3.

Для добавления рамок предусмотрен режим рисования линий.


Рисование линий

Чтобы нарисовать линию в редакторе достаточно нажать <Ctrl> и перемещать курсор при помощи стрелок <Я> <б> <в> <а>. Программа начнет рисовать линию от того места, на котором стоял курсор до нового положения курсора. Вертикальные линии рисуются слева от курсора.

В процессе рисования линии будут объединяться в рамки, поэтому их можно всегда переместить, поменять размер или параметры, после чего продолжить рисование.

Тип линии, цвет и толщина определяется по последней отредактированной или добавленной рамки. Изменить толщину линий можно при помощи комбинации клавиш <Ctrl>+<Shift>+<Ц> ( <Ctrl>+<Shift>+<W> ) или двойным щелчком по строке статуса бланка по метке с толщиной линии.


Таблица элементов

Таблица элементов предназначена для обзора всех элементов бланка и их групповой обработки (массового изменения параметров элементов).

Чтобы открыть таблицу элементов выберите контекстный пункт меню «Таблица элементов» в редакторе бланков или нажмите клавишу <F2>.

Таблица разбита на закладки по типам элементов. Так как на каждой закладке свой тип элементов, то и столбцы таблицы при перемещении между закладками будут разными. Столбцы соответствуют параметрам текущего выбранного типа элементов.

Как и в любой другой таблице, записи таблицы элементов могут быть отредактированы. Например, нажав клавишу <F4> можно открыть диалог параметров выбранного элемента. Если кликнуть мышью по выбранной строке таблицы или нажать клавишу <Enter> вместо открытия диалога параметров программа перейдет в редактор бланков, где выделит выбранный элемент. В редакторе уже можно будет и отредактировать его параметры, и переместить или изменить размеры элемента.

Внимание!

Любые изменения в таблице элементов сохраняются только в тот момент, когда сохраняется сам бланк. При закрытии бланка программа закроет и окно с таблицей элементов этого бланка.

Чтобы начать работать с нужными элементами бланка в таблице предусмотрена сортировка и фильтрация. А для группового изменения выбранных элементов поиск и замена.

Сортировка

Отсортировать таблицу элементов можно по любому выбранному столбцу или нескольким столбцам. Для этого достаточно выбрать столбец, нажав на его заголовок, и использовать кнопку на панели инструментов или соответствующий пункт контекстного меню.

Фильтрация

Для фильтрации необходимо кликнуть по колонке таблицы правой кнопкой мыши и в контекстном меню колонки выбрать Фильтр колонки. Или с помощью клавиш <Ctrl>+<Я> или <Ctrl>+<а> выбрать нужную колонку, а далее нажать <Ctrl>+<Alt>+<F10> для вызова ее контекстного меню.

Программа выведет все существующие комбинации значений этой колонки. Отметив флажками нужные нажмите <OK>.

При необходимости можно перейти к следующей колонке и отфильтровать таблицу еще по какому-либо условию. Можно изменять условия фильтрации выбирая всё тот же пункт меню Фильтр колонки.

Если на колонку наложено условие, в заголовке будет надпись (фил). Чтобы отменить условие фильтрации надо в контекстном меню колонки выбрать Сброс фильтра. Сбросится только ограничение, которое есть для выбранной колонки. Если есть еще колонки, для которых указывались условия фильтрации, таблица всё ещё будет отфильтрована. О наличии хотя бы одного условия фильтрации говорит надпись в строке статуса Отфильтровано.

Поиск-замена

Для быстрого перехода к нужной графе можно использовать контекстный поиск. Возможен обычный, не контекстный поиск. Для этого необходимо выделить столбец для поиска при помощи мыши или клавиш <Ctrl>+<Я> или <Ctrl>+<а> и вызвать диалог поиска.

С помощью замены записи в таблице происходит массовое изменение опций в параметрах элементов. Для этого необходимо выделить столбец при помощи мыши или клавиш <Ctrl>+<Я> или <Ctrl>+<а> и вызвать диалог замены.

При использовании функции замены надо помнить, что некоторые опции связаны друг с другом. Например, у графы на закладке Выравнивание есть опция Авто. Если её включить опции выравнивания по горизонтали и вертикали станут не доступными (сбросятся в значение по умолчанию). А, значит, при выполнении операции замены на Авто = Да, поменяются и значения в колонках По горизонтали и По вертикали.

Копирование в буфер

В таблице можно выбрать один или несколько элементов. После того как элементы выбраны их можно скопировать в буфер обмена. Скопированные элементы нельзя вставить в таблицу, но можно вставить в редакторе бланков. Это может быть как редактируемый бланк, так и любой другой.


Настраиваемая обработка

В программе есть настраиваемые средства обработки исходного кода. Они позволяют решать широкий спектр задач связанный с форматированием исходного кода, рефакторинга, анализа и диагностики текста алгоритмов, помощников ввода кода.

Инструментарий, решающий необходимые задачи, создается программистом самостоятельно. Для этого надо написать функцию обработки кода следующего вида:

ФУНКЦИЯ ЛОГИКА: Обработка(ПЕРЕМ СТРОКА: стр)
// Текст обработки
КОНЕЦ_ФУНКЦИИ

Её задача — реализовать нужную обработку исходного кода. В качестве параметра в неё будет передаваться текст алгоритма или текст графы бланка. Если в процессе обработки текста произошли изменения она возвращает значение ДА. В противном случае значение НЕТ.

Для вызова обработки используется контекстный пункт меню Настраиваемая обработка. В диалоге настройки надо указать библиотеку, а, затем, выбрать нужную функцию обработки (функций обработки может быть много). Обработка пройдется либо по всему тексту файла, либо по выделенной его части. Обработка может обрабатывать и визуальную часть бланка, либо его выделенную часть. Включив опцию Пропускать строковые константы можно заставить программу исключать из обработки содержимое строк.

Обработка не сохраняет файл, она просто меняет содержимое в редакторе. С помощью функции отмены последнего действия в редакторе можно отменить сделанные обработкой изменения. Можно выйти и не сохранить файл, тогда не сохранятся никакие изменения.

Пример:

// Данная функция помогает переработать код так, чтобы вместо нескольких
// вызовов функций СЛОВО был единократный вызов функции СЛОВА
ГЛОБАЛ ПЕРЕМ СТРОКА: назв_массива

ФУНКЦИЯ ЛОГИКА: Обработка(ПЕРЕМ СТРОКА: стр)
РЕЗУЛЬТАТ = ДА
ЕСЛИ РАЗБОР(стр, "*СЛОВА**(*,**,**)*", перед, пар1, после) ТО
назв_массива = пар1
ВЫХОД
КОНЕЦ_ЕСЛИ
ЕСЛИ РАЗБОР(стр, "*СЛОВО**(*,**,**)*", перед, пар1, после) ТО
стр = перед + назв_массива + "!" + пар1 + после
КОНЕЦ_ЕСЛИ
ЕСЛИ РАЗБОР(стр, "*СЛОВО**(*,**)*", перед, пар1, после) ТО
стр = перед + назв_массива + "!" + пар1 + после
КОНЕЦ_ЕСЛИ
КОНЕЦ_ФУНКЦИИ

Далее допустим есть исходный код, содержащий многократный вызов функции СЛОВО.

доп_поля = ЗНАЧ(СЛОВО!(1, строка_настроек, РР), ЛОГИКА, НЕТ)
заголовок1 = СЛОВО!(2, строка_настроек, РР)
заголовок2 = СЛОВО!(3, строка_настроек, РР)
заголовок3 = СЛОВО!(4, строка_настроек, РР)
заголовок4 = СЛОВО!(5, строка_настроек, РР)
шрифт_длина = ЗНАЧ(СЛОВО!(6, строка_настроек, РР), ЧИСЛО, 1)
строка_лев1 = СЛОВО!(7, строка_настроек, РР)
строка_лев2 = СЛОВО!(8, строка_настроек, РР)

Нам надо переработать этот код на вызов функции СЛОВА. Для этого допишем вначале кода вызов функции СЛОВА.

СЛОВА(настройки, строка_настроек, РР)
доп_поля = ЗНАЧ(СЛОВО!(1, строка_настроек, РР), ЛОГИКА, НЕТ)
......

Теперь выделим весь фрагмент, включая добавленную строку с функцией СЛОВА и запустим нашу обработку. В результате код изменится и примет следующий вид:

СЛОВА(настройки, строка_настроек, РР)
доп_поля = ЗНАЧ(настройки!1, ЛОГИКА, НЕТ)
заголовок1 = настройки!2
заголовок2 = настройки!3
заголовок3 = настройки!4
заголовок4 = настройки!5
шрифт_длина = ЗНАЧ(настройки!6, ЧИСЛО, 1)
строка_лев1 = настройки!7
строка_лев2 = настройки!8

Такой код имеет ряд преимуществ по сравнению с исходным: он компактнее, быстрее работает и, главное, у него нет проблемы потенциальной ошибки, когда в функцию СЛОВО забывается передать разделитель РР.


Импорт бланка из Excel

Импорт из формата XLS позволяет загрузить в редактор бланков документ, подготовленный с помощью какого-либо редактора электронных таблиц (например, Microsoft Excel) или полученный из различных правовых систем (таких как «Гарант» или «Консультант Плюс»).

Для загрузки необходимого файла выберите пункт меню «Файлы | Импорт из...». Появится диалог загрузки бланка. В списке Тип файлов выберите Документ Microsoft Excel (*.xls). Выберите файл, который требуется загрузить, и нажмите кнопку Открыть. Появится диалоговое окно с опциями импортирования.

Нестандартная сетка — позволяет задать размеры сетки при импортировании файла. При включении этой опции Вы можете указать ширину и высоту ячейки новой сетки. Уменьшение этих значений приводит к более качественному (близкому к оригинальному) импортированию файла, но затрудняет дальнейшее редактирование бланка.

Опции импорта — настройки, влияющие на обработку всего текста.

Выполнять обработку шаблонов — при включенной опции текст, начинающийся со специальных символов, будет заменяться графами ввода/вывода следующим образом:

первый символ * — графа Ввода, тип ввода — строка;

первый символ & — графа Ввода, тип ввода — число;

первый символ # — графа Вывода.

и другие форматы ввода.

Именем переменной будет являться текст, следующий за управляющим символом.

Выберите лист(ы) для импортирования — Вы можете выбрать для импортирования только необходимые листы книги, пометив их в списке.


Импорт бланка из Word

Импорт из формата RTF позволяет загрузить в редактор бланков документ, подготовленный с помощью какого-либо текстового редактора (например, Microsoft Word) или полученный из различных правовых систем (таких как «Гарант» или «Консультант Плюс»).

Для загрузки необходимого файла выберите пункт меню «Файлы | Импорт из...». Появится диалог загрузки бланка. В списке Тип файлов выберите Текст в формате RTF (*.rtf) или Документ Microsoft Word (*.doc). Выберите файл, который требуется загрузить, и нажмите кнопку Открыть. Появится диалоговое окно с опциями импортирования.

Нестандартная сетка — позволяет задать размеры сетки при импортировании файла. При включении этой опции Вы можете указать ширину и высоту ячейки новой сетки. Уменьшение этих значений приводит к более качественному (близкому к оригинальному) импортированию файла, но затрудняет дальнейшее редактирование бланка.

Опции импорта — настройки, влияющие на обработку всего текста.

Выполнять обработку шаблонов — при включенной опции текст, начинающийся со специальных символов, будет заменяться графами ввода/вывода следующим образом:

первый символ * — графа Ввода, тип ввода — строка;

первый символ & — графа Ввода, тип ввода — число;

первый символ # — графа Вывода.

и другие форматы ввода.

Именем переменной будет являться текст, следующий за управляющим символом.

Опции импорта таблиц — настройки, влияющие только на обработку текста, находящегося в ячейках таблицы.

Игнорировать интервалы перед абзацем и после него — при включенной опции интервалы перед абзацем и после него не будут учитываться при обработке абзацев в ячейке таблицы. Отключение этой опции может привести к излишнему увеличению высоты ячейки таблицы.

Игнорировать левый отступ абзаца — левый отступ всех абзацев в ячейке таблицы не будет принят во внимание при включенной опции. Отключение этой опции может привести к излишнему увеличению ширины ячейки таблицы.

Объединять текст в ячейке таблицы в одну графу — при включении этой опции многострочный текст, находящийся в ячейке таблицы и имеющий одинаковое форматирование (шрифт, размер, начертание и подчеркивание), будет преобразован в одну графу.

Замечание!

Автофигуры, используемые для рисования диаграмм в Word при импорте не переносятся.


Элементы редактора

Новый элемент

Выберите из списка объект, который Вы хотите вставить в бланк.

Элемент | Клавиша | Назначение
Рамка | <Ctrl>+<1> | Представляет собой прямоугольную рамку или прямоугольник, используется для создания таблиц
Графа | <Ctrl>+<2> | Используется для ввода значения в определенную переменную перед расчетом и вывода значения после расчета
Опция | <Ctrl>+<3> | Используется для ввода значения в переменную типа логика при заполнении бланка
Кнопка | <Ctrl>+<4> | Предназначены для организации интерфейса с пользователем при заполнении бланка
Рисунок | <Ctrl>+<5> | Предназначен для вставки в бланк произвольных рисунков, например логотипов, эмблем и т.п.
Диаграмма | <Ctrl>+<6> | Диаграммы и графики являются средством наглядного представления данных
Штрихкод | <Ctrl>+<7> | Предназначен для вставки в бланк штрих-кода.
QR-код | <Ctrl>+<8> | Предназначен для вставки в бланк QR-кода
Секция | <Ctrl>+<9> | Задает повторяющийся фрагмент бланка, верхний и нижний колонтитул и т.д.
Разрыв страницы | <Ctrl>+<0> | Решают разные задачи управления страницами, включая удаление части бланка после расчета
Непечатная область |  | Определяет фрагмент бланка, который будет виден на экране, но не будет выводиться на печать

Нажмите кнопку <OK> или клавишу <Enter> для вставки нового элемента в позицию курсора. <Отмена> позволяет отказаться от добавления элемента. Добавленный элемент будет иметь параметры по умолчанию.

См. также
Редактор бланков
Добавление элемента бланка


Рамка

Элементы редактора

Рамка используется для создания таблиц, рисования линий. Она представляет собой прямоугольную рамку или прямоугольник.

Вы можете произвольно изменять положение и размеры рамки, а также задавать дополнительные параметры, например, толщину линий, которыми рисуется рамка.

Если в параметрах рамки закраска не указана, рамка будет внутри полой. При указании закраски рамка превратится в прямоугольник, т.е. будет рамка закрашенная внутри нужным цветом.

Параметры рамки могут быть отредактированы с помощью клавиатуры и/или мыши. Для перехода в режим редактирования параметров рамки, подведите к ней текстовый курсор, либо щелкните левой клавишей мыши по этой рамке. Вокруг рамки, находящейся в режиме редактирования, появляется обрамление красного цвета с квадратиками по углам и сторонам рамки. Теперь Вы можете изменить положение и размеры рамки, а также ее параметры.

Для быстрого рисования рамок воспользуйтесь режимом рисования.

См. также
Параметры рамки
Функция ВСТАВИТЬ_РАМКУ


Параметры рамки

Здесь задаются параметры рамки.

Цвет — укажите здесь цвет линии. Для печати документов, содержащих цветные линии, необходим цветной принтер. В противном случае, такие линии будут отображаться серым или черным цветом в зависимости от настроек.

Тип линии — выберите здесь тип линии.

Толщина линий — это значение определяет толщину линий, которыми отображается рамка. Оно находится в диапазоне от 0 до 3. Толщина линий является относительной величиной. На толщину линий при печати влияет также глобальный параметр Насыщенность линий в настройках печати. Толщина 0 применяется при использовании закраски, см.ниже.

Закраска (%) — при указании здесь значения большего нуля рамка превращается в прямоугольник. Внутренняя область будет закрашена цветом. Будет взят цвет линии и умножен на указанный здесь процент прозрачности. Если указать 100%, то цвет области будет равен цвету рамки. Чтобы убрать рамку, в графе Толщина линий укажите 0.


Графа

Графа ввода/вывода

Элементы редактора

 Вернуться к началу раздела

Графы в зависимости от их типа (ввод или вывод) используются для ввода значения в определенную переменную при заполнении бланка или вывода значения после его расчета.

Ввод. Графа ввода может быть расположена в любом месте бланка. Размер графы ввода может быть установлен произвольно, но иногда это ограничивается соответствующим форматом ввода. Графа ввода может иметь произвольный шрифт, выравнивание и ориентацию, но эти атрибуты будут отображаться только при печати. При вводе данных будет использован основной шрифта бланка, стандартное выравнивание и ориентация.

Каждой графе ввода соответствует уникальная переменная, тип которой определяется форматом графы. В графу могут подставляться значения из справочников, из графы может вызываться произвольная функция также с целью подстановки значения. Содержимое граф ввода может быть сохранено в журнале документа и в дальнейшем считано из него.

Вывод. Графа вывода может быть расположена в любом месте бланка и иметь произвольные размеры, шрифт, ориентацию и т.п.. Тип информации определяется типом переменной или выражения, выводимого в данную графу. Заполнение граф вывода происходит по окончании расчета бланка либо при выполнении функций подстановки значения, когда графа имеет атрибут Обновлять графу при вызове функций. Содержимое граф вывода не сохраняется в журнале документа.

См. также
Параметры графы
Функция ВЫВЕСТИ
Функция УДАЛИТЬ_ГРАФУ


Параметры графы

Диалог редактирования параметра графы содержит закладки:

·Графа — задает имя графы, комментарий, тип и т.п.

·Опции — задает дополнительные параметры графы

·Выравнивание — тип выравнивания, поворот графы

·Шрифт — шрифт графы


Графа

Закладка Графа

Параметры графы

 Вернуться к началу раздела

Имя переменной — уникальное имя, по которому данная переменная доступна в расчетном разделе для полей ввода и переменная или выражение, которое будет вычислено и подставлено в графу вывода.

Для полей ввода перед выполнением расчетного раздела бланка вводимое в это поле значение будет занесено в переменную с указанным именем. Для полей вывода после выполнения формульного раздела бланка значение указанной переменной или выражения будет выведено в поле вывода.

Подсказка — задает дополнительную информацию, поясняющую назначение данной графы. Введенная здесь строка появится в виде всплывающей подсказки при наведении курсора на эту графу и в виде строки статуса при ее заполнении.

Строка может содержать вставки вида &[<здесь вставка>], называемые макросами. Макросы являются выражениями на внутреннем языке программы Инфо-Предприятие и при выводе подсказки на экран будут вычислены, а их результат будет преобразован в строку и помещен на это место.

Тип — данный параметр определяет тип графы. Графа может быть графой ввода или графой вывода. В графы ввода пользователь вводит данные при заполнении бланка. В графы вывода выводится информация программой при расчете бланка. Для граф ввода дополнительно необходимо установить тип вводимого в поле Тип ввода.

Тип ввода — определяет тип ввода для полей ввода. Он должен соответствовать типу переменой, используемой в расчетной части бланка. Программа поддерживает следующие типы ввода:

·строка — ввод строки. Максимальное количество символов определяется, как произведение количества символов на количество строк.

·число — ввод числа. В дальнейшем, при заполнении бланка, Вы сможете воспользоваться калькулятором для ввода значения в эту графу, вызвав его клавишей <F2>.

·дата — ввод даты. При заполнении такой графы бланка можно воспользоваться календарем, вызвав его с помощью клавиши <F2>.

·время — ввод времени.

·счет — последовательность символов, удовлетворяющая требованиям, налагаемым на код счета. При заполнении бланков Вы сможете подставить в поле ввода типа счет код требуемого счета из плана счетов по клавише <F2>.

·функция — графа, позволяющая вызвать функцию, результат выполнения будет подставлен в качестве значения.

·поле журнала — графа, предназначенная для выбора записи из журнала. Для этой графы дополнительно задаются журнал и поле, значение которого надо подставить в графу.

·множество — графа с выбором и подстановкой элемента множества. Для графы дополнительно задаются множество и требуемый элемент.

Десятичные знаки — определяет количество знаков после запятой. Этот параметр доступен только для графы типа число. Опция влияет на отображение и возможность ввода чисел в графу. Если установлена опция Округлять переменные граф ввода в параметрах бланка, то также влияет и на расчет.

По умолчанию — определяет вариант значения по умолчанию: «Текущая» и «Пустая» для граф типа дата и время.

Библиотека / Журнал / Множество — определяет дополнительные параметры для некоторых граф ввода: для Функции — имя библиотеки, для Поля журнала — идентификатор журнала (и, при необходимости, его вид, записанный после идентификатора через двоеточие, например операции:"накладные"), для Множества — требуемое множество (оставьте это поле пустым для выбора из списка вариантов).

Воспользуйтесь кнопкой выбора для подстановки значения. Для Функции, когда надо задать функцию, хранящуюся в самом бланке, оставьте эту графу пустой.

Функция / Поле / Элемент — определяет дополнительные параметры для некоторых граф ввода: для Функции — имя функции, для Поля журнала — поле (и, при необходимости поле-заменитель, записанный после через двоеточие, например код:название), для Множества — элемент множества по умолчанию (при выборе из списка вариантов, здесь указываются варианты выбора, например ["квартал", "полугодие", "9 мес", "год"] ).

Воспользуйтесь кнопкой выбора для подстановки значения (только перед этим не забудьте указать параметр Библиотека / Журнал / Множество, чтобы программа знала, откуда выбирать).

См.также
Графа с вызовом функции
Графа с подстановкой поля журнала
Графа с выбором из списка


Опции

Закладка Опции

Параметры графы

 Вернуться к началу раздела

Отображение при печати — если опция не установлена, то значение графы игнорируется при выводе на печать. Такая графа может понадобиться, если требуется ввести или вывести информацию, которая после расчета не должна выводиться на печать.

Сохранять содержимое — если бланк сохраняет содержимое граф ввода в журнале (или журнале документов, или журнале бухгалтерских операций), то графа ввода будет сохраняться в нем. По умолчанию эта опция активна, т.е. все графы ввода по умолчанию сохраняются.

Если эта опция не активна, но бланк сохраняет содержимое других граф ввода в журнале, то при открытии бланка в этой графе будут последние введенные значения.

Только последнего уровня — используется только для графы ввода типа Счет и Поле журнала. В первом случае, в такую графу можно ввести код счета только последнего уровня. Во втором, если журнал имеет вид дерева, можно выбрать только запись последнего уровня (не группу).

Запрашивать аналитику — используется только для графы ввода типа счет. При заполнении бланка, в такую графу можно ввести код счета со всеми аналитиками этого счета.

Необходимо ввести значение — определяет, будет ли программа контролировать введенное значение. Для графы ввода типа счет проверяется наличие указанного счета, для графы с подстановкой поля журнала — наличие выбранной записи в журнале (только если подставляемое поле является индексным). Пока пользователь не введет требуемое значение в такую графу ввода, расчетная часть бланка не начнет выполняться. Если эта опция не активна, допустимым значением является пустая строка. Любая непустая строка по-прежнему контролируется.

Для полей типа дата выключенное значение опции означает разрешение ввода пустой даты в этой графе. Для ввода пустой даты пользователю достаточно очистить содержимое поля.

Огран. диапазоном — для графы с вводом числа определяет диапазон, в котором должно находиться число. Если число лежит вне диапазона выводиться предупреждающее сообщение и расчет бланка приостанавливается.

Нули слева — показывает, нужно ли выводить слева от числа нули. Это может быть необходимо, например, при выводе суммы, в которой существуют только копейки: 0.56 (ноль рублей пятьдесят шесть копеек).

Обновлять графу при вызове функций — определяет, будет ли изменяться текст графы при выполнении каких-либо функций, обрабатывающих подстановку значений в графу. Например, при вводе получателя в платежном поручении считываются его реквизиты и сразу же отображаются в документе. Для граф ввода определяющая переменная автоматически становится общей. Для граф вывода, для того чтобы их содержимое обновлялось, все используемые переменные должны быть определены как общие.

Автоматический расчет высоты — высота графы будет рассчитываться автоматически после расчета бланка таким образом, чтобы выводной текст полностью уместился. Высота графы может, как увеличится, так и уменьшится. При изменении высоты автоматически изменится высота всех элементов бланка, находящихся на одной линии с этой графой и подвинутся все элементы, находящиеся за ней. Если в строке расположены несколько граф с указанным атрибутом, размер будет подсчитан как максимум размеров всех этих граф.

Скрывать нулевые значения — опция опция работает в паре с функцией СКРЫТЬ_НУЛЕВЫЕ_ЗНАЧЕНИЯ. При вызове этой функции в бланке будет выполнения следующая обработка:

Если в строке есть графа с этим флагом, и она содержит нулевое значение (строковая — пустую строку, числовое — ноль или минимальное значение диапазона), программа отметит этот факт для себя. Если в строке нет других граф ввода, либо все другие графы ввода также отмечены этим флагом и содержат нулевое значение, программа удалит всю эту строку из бланка. Если со строкой пересекаются какие-либо графы вывода, то они также будут удалены вместе со строками, которые они занимают. После этого меняется размер других элементов (например, рамок), пересекающихся с удаленными строками, и происходит сдвиг всех элементов, находящихся за ними.

Желтый цвет фона — графа ввода будет иметь желтый цвет фона. Так выделяются графы, которые программа заполняет автоматически, однако пользователь может изменить автоматически подсчитанное значение на другое.

Отрицательные значения в скобках — установка признака означает, что отрицательное числовое значение в бланке будет отображаться в скобках.

Пример:

С включенной опцией: | (1200.00) | 4000
Без нее: | -1200.00 | 4000

Положительные значения в скобках — установка признака означает, что положительное числовое значение в бланке будет отображаться в скобках.

Пример:

С включенной опцией: | -1200.00 | (4000)
Без нее: | -1200.00 | 4000

Если включены обе опции, то любое значение кроме нуля будет отображаться в скобках.

Отключить обработку «//» — отключает обработку последовательности «//» как переход к следующей строке.

Рассчитывать графу при печати — содержимое графы будет пересчитываться при печати и предварительном просмотре бланка. Внутри такой графы для расчета будут доступны две служебные переменные:

·страница — возвращает текущую страницу, на которой оказалась графа

·страниц — возвращает общее кол-во страниц в документе


Выравнивание

Закладка Выравнивание

Параметры графы

 Вернуться к началу раздела

Здесь указывается выравнивание и поворот текста в графе. Они могут указываться как для граф вывода, так и для граф ввода. Однако графы ввода будут использовать указанные здесь параметры только при печати. На вид графы в процессе заполнения бланка пользователем, выравнивание и поворот не влияют.

По горизонтали — задает выравнивание по горизонтали внутри пространства, занимаемого графой. Возможные значения: налево, направо, по центру, равномерно.

По вертикали — задает выравнивание по вертикали внутри пространства, занимаемого графой. Возможные значения: вверх, вниз, по середине, усреднено.

Поворот — определяет поворот текста в градусах. Возможные значения 0°, 90°, 180°, 270°.

По сетке — для многострочных граф означает, что выравнивание по вертикали привязывается к сетке, т.е. сколько строк в высоту имеет графа, столько и строк текста будет выведено, а внутри каждой строки текст будет выровнен вниз. Поворот в этом случае недоступен.

Авто — при включенной опции все параметры выравнивания определяются программой автоматически. При этом поворот равен 0°, выравнивание по вертикали вверх, а по горизонтали зависит от типа поля. Для полей типа число выравнивание направо, а для остальных налево.

Пример:

Пример отображения текста при выбранном типе выравнивания и поворота.


Шрифт

Закладка Шрифт

Параметры графы

 Вернуться к началу раздела

Здесь указывается шрифт текста в графе. Он может указываться как для граф вывода, так и для граф ввода. Однако графы ввода будут использовать указанный здесь шрифт только при печати. В процессе заполнения бланка пользователем, будет использован основной шрифт бланка.

Список указанных здесь шрифтов определяется в параметрах бланка. Вы можете выбрать любой из предлагаемых шрифтов. Если ни один шрифт не подходит, надо закрыть диалог редактирования графы, зайти в параметры бланка и добавить новый шрифт к списку.

Пример:

Пример отображения текста при выбранном типе выравнивания и поворота.

Замечание!

При выборе Основного шрифта изменяется принцип вертикального выравнивания текста внутри графы. Для него программа будет предполагать, что высота текста равна высоте элемента сетки.

См.также
Объект ШРИФТ


Опция

Элементы редактора

Опции предназначены для ввода значения в переменную типа логика при заполнении бланка. В этом опции схожи с графами ввода. Они могут иметь два состояние: включена (активна) или нет.

Опция может быть расположена в любом месте бланка и иметь различный размер на экране. Каждой опции соответствует уникальная переменная логического типа. Содержимое опций может быть сохранено в журнале документов и в дальнейшем считано из него.

Опции могут объединяться в группы. В этом случае пользователь может активизировать только одну опцию из группы. Другие опции при этом будут выключаться.

См. также
Параметры опции


Параметры опции

Здесь задаются параметры для опции.

Имя переменной — уникальное имя, по которому данная переменная доступна в расчетном разделе. Перед выполнением расчетного раздела бланка вводимое в это поле значение будет занесено в переменную с указанным именем.

Подсказка — задает дополнительную информацию, поясняющую назначение данной опции. Введенная здесь строка появится в виде всплывающей подсказки при наведении курсора на эту опцию и в виде строки статуса при ее заполнении.

Рисунок — задает тип рисунка активной опции.

Номер группы — здесь при необходимости указывается номер группы. Если надо указать номер существующей группы, он может быть выбран из выпадающего списка. При использовании групп опции начинают работать по-другому. При включении одной из опций группы пользователем, другие опции автоматически выключаются. Таким образом, из группы опций пользователь сможет выбрать только одну.

Опции — задает дополнительные опции для "опции":

Отображение при печати — если опция не установлена, то "опция" игнорируется при выводе на печать. Такая "опция" может понадобиться, если Вам требуется ввести необходимые для расчета бланка данные, которые после расчета не требуется выводить на печать.

Сохранять содержимое — если бланк сохраняет содержимое граф ввода в журнале (или журнале документов, или журнале бухгалтерских операций), то "опция" будет сохраняться в нем. По умолчанию это так, т.е. все "опции" по умолчанию сохраняются.

Если опция не активна, но бланк сохраняет содержимое других граф ввода в журнале, то при открытии бланка в "опции" будут последние введенные значения.

Обновлять при вызове функций — определяет, будет ли изменяться состояние "опции" при выполнении каких-либо функций, обрабатывающих подстановку значений в графу. В этом случае определяющая переменная автоматически становится общей.

Скрывать нулевые значения — опция опция работает в паре с функцией СКРЫТЬ_НУЛЕВЫЕ_ЗНАЧЕНИЯ. При вызове этой функции в бланке будет выполнения следующая обработка:

Если в строке есть опция с этим флагом, и она выключена, программа отметит этот факт для себя. Если в строке нет других граф ввода и опций, либо все другие графы ввода также отмечены этим флагом и содержат нулевое значение или выключены, программа удалит всю эту строку из бланка. Если со строкой пересекаются какие-либо графы вывода, то они также будут удалены вместе со строками, которые они занимают. После этого меняется размер других элементов (например, рамок), пересекающихся с удаленными строками, и происходит сдвиг всех элементов, находящихся за ними.

Желтый цвет фона — графа ввода будет иметь желтый цвет фона.


Кнопка

Кнопка в бланке

Элементы редактора

 Вернуться к началу раздела

Кнопки предназначены для организации интерфейса с пользователем при заполнении бланка.

Кнопка может быть расположена в любом месте бланка и иметь произвольные размеры. Основная роль кнопок — выполнять какую-либо функцию или диалог при нажатии пользователем на нее. Функция или диалог могут изменить содержимое других граф, опций или рисунков внутри бланка, если они имеют атрибут Обновлять графу при вызове функций.

Кнопки никогда не отображаются при печати документа.

См. также
Параметры кнопки
Кнопка в диалоге


Параметры кнопки

Здесь задаются параметры для кнопки.

Текст — текст кнопки. Текст можно изменять при помощи выполняемой функции.

Подсказка — задает дополнительную информацию, поясняющую назначение данной кнопки. Введенная здесь строка появится в виде всплывающей подсказки при наведении курсора на эту графу и в виде строки статуса в момент, когда на кнопке находится фокус.

Библиотека — определяет имя библиотеки. Воспользуйтесь кнопкой выбора для подстановки значения. Когда надо задать функцию, хранящуюся в самом бланке, оставьте эту графу пустой.

Функция — имя функции или диалога. Воспользуйтесь кнопкой выбора для подстановки значения (только перед этим не забудьте указать параметр Библиотека, чтобы программа знала, откуда выбирать).

Вызываемая функция должна быть строго определенного вида:

ФУНКЦИЯ ЛОГИКА :<имя> ( ПЕРЕМ СТРОКА :<строка>)

В качестве параметра-переменной <строка> передается текст кнопки. Действие после выхода из функции определяется возвращенным ей результатом. Если функция возвратила ДА и параметр <строка> изменился, текст кнопки заменяется новым значением параметра-переменной <строка>, а если функция возвратила НЕТ или <строка> не изменилась, то текст кнопки остается без изменений.

Для вызова диалога, его заголовок должен быть следующего вида:

ДИАЛОГ<имя> ( ПЕРЕМ СТРОКА :<строка>)

В качестве параметра-переменной <строка> передается текст кнопки. Если пользователь в диалоге нажал <OK> и параметр <строка> изменился, текст кнопки заменяется новым значением параметра-переменной <строка>, а если пользователь нажал <Отмена> или <строка> не изменилась, то текст кнопки остается без изменений.

Шрифт. Задает шрифт текста кнопки. Список указанных здесь шрифтов определяется в параметрах бланка. Вы можете выбрать любой из предлагаемых шрифтов. Если ни один шрифт не подходит, надо закрыть диалог редактирования графы, зайти в параметры бланка и добавить новый шрифт к списку.

См. пример
Кнопки в диалогах


Рисунок

Элементы редактора

Предназначен для вставки в бланк произвольных рисунков, например логотипов, эмблем и т.п. Рисунки могут быть статичными и задаваться единожды при создании бланка, но также могут задаваться из расчетной части. Более того, рисунки могут изменяться «на ходу», в процессе заполнения бланка.

Программа работает с рисунками следующих форматов: bmp, jpg, gif, png, wmf и emf. Это основные форматы, в которых обычно хранятся рисунки. Для отображения рисунка иного формата воспользуйтесь графическим редактором для преобразования его к одному из перечисленных форматов.

Можно задать дополнительные атрибуты рисунка, такие как растяжение, обрамление и т.п.

См. также
Параметры рисунка
Функция ВСТАВИТЬ_РИСУНОК


Параметры рисунка

Здесь задаются параметры рисунка.

Файл рисунка — определяет файл, содержащий рисунок. Для указания существующего в базе данных файла воспользуйтесь выбором из списка. Если требуемый рисунок не содержится в списке, его можно добавить в него. С помощью кнопок справа от поля ввода список рисунков может быть отредактирован. Воспользуйтесь для этого следующими кнопками:

— для добавления нового рисунка в список из файла

— для сохранения рисунка из списка в файл

— для удаления рисунка

Рисунки могут считываться и записываться в файлы с расширениями bmp, gif, jpg, jpeg, png, wmf, emf.

В данной графе можно указывать не только файл, но и переменную или строковое выражение внутреннего языка. Файл может не только располагаться в базе данных, но и находиться во внешнем файле.

Примеры

Chess.jpg // прямое указание рисунка

"Stop.jpg" // выражение, задающее рисунок

рисунок // переменная "рисунок" определяется в расчетной части бланка (см.ниже)

Если в качестве имени указана переменная внутреннего языка, то в процессе расчета бланка в эту переменную заносится значение — путь к файлу рисунка. При этом действуют правила:

·если файл рисунка указан без пути, то считается, что этот файл берется из базы данных

·если переменной присвоено значение ПУСТО, то рисунок не выводится

Примеры

// Предполагаем, что в визуальной части бланка создан рисунок, в котором в качестве
// имения файла указана переменная "рисунок" (см.выше). Тогда в формульной части можно написать:

рисунок = "Stop.jpg" // рисунок будет браться из файла Stop.jpg, находящегося в базе данных

рисунок = "c:\bitmaps\Stop.jpg" // рисунок будет браться из файла Stop.jpg, находящегося на локальном диске

рисунок = ПУСТО // рисунок не будет выводиться

Следующие опции определяют вид рисунка в документе:

Обрамление — позволяет получить рамку вокруг рисунка.

Центрирование — располагает рисунок по центру относительно его границ (по умолчанию). При отсутствии этого параметра рисунок располагается относительно левого верхнего края границы.

Масштабирование — рисунок растягивается/сжимается до размеров его границ.

Сохранять пропорции — при масштабировании пропорции рисунка сохраняются

Автоматический расчет высоты — высота рисунка в бланке рассчитается автоматически. Относительно начального расположения рисунка в редакторе, его высота может, как увеличится, так и уменьшится. Если файл рисунка не найден, он будет удален из бланка. При изменении высоты автоматически изменится высота всех элементов бланка, находящихся на одной линии с рисунком и подвинутся все элементы, находящиеся за ним. Если в строке расположены несколько рисунков с указанным атрибутом, размер будет подсчитан как максимум размеров их всех.

Отображение при печати — если опция не установлена, то рисунок не отображается при выводе на печать.

Обновлять при вызове функций — определяет, будет ли изменяться файл рисунка при выполнении каких-либо функций, обрабатывающих подстановку значений в графу. Переменная, определяющая рисунок должна быть определена как общая.


Диаграмма в бланке

Элементы редактора

Вы можете использовать диаграммы в бланках. Для этого предназначен соответствующий объект. Бланк может анализировать данные и строить на основе них графики и диаграммы. В отличие от встроенных диаграмм, которые получают данные на основе отчетов, алгоритм расчета диаграммы в бланке может быть каким угодно, а программа может черпать данные из любого источника. Бланк может иметь сколько угодно диаграмм.

Настраивать диаграмму можно как в процессе создания бланка, так и в процессе работы с бланком. При щелчке по элементу диаграммы или по легенде в процессе работы с диаграммой в бланке откроется диалог редактирования диаграммы.

Диалог параметров диаграммы состоит из четырех закладок:

·Тип диаграммы — выбирается тип диаграммы

·Параметры — задаются опции отображения диаграммы.

·Оси — задаются параметры осей диаграммы.

При редактировании диаграммы в процессе работы с бланком будет отображена еще одна закладка:

·Ряды — задаются параметры отображения рядов данных.

Параметры диаграммы, измененные в процессе работы с бланком, сохраняются до закрытия бланка. Параметры рядов диаграммы сохраняются до следующего пересчета бланка.

При создании объекта диаграмма в бланке создается и объект ДИАГРАММА во внутреннем языке, с помощью которого и происходит заполнение диаграммы данными в процессе расчета бланка.

См. также
Объект ДИАГРАММА


Закладка Тип диаграммы

Диаграмма

На закладке Тип диаграммы задается имя переменной, а также выбирается тип и вид диаграммы.

Имя переменной — указывает имя графического объекта (переменной типа ДИАГРАММА), который будет использоваться в расчетной части бланка (это поле есть только в диалоге, вызванном из редактора бланков).

В списке Тип Вы можете легко выбрать нужный тип диаграммы. У каждого стандартного типа диаграммы есть несколько подтипов (видов), которые отображаются в окне Вид. В поле под этим окном дается описание выбранной разновидности диаграммы.

Чтобы увидеть, как будет выглядеть диаграмма, выберите любой подтип диаграммы, а затем нажмите кнопку Просмотр результата.


Закладка Параметры

Диаграмма

На закладке Параметры задаются следующие опции отображения диаграммы:

Заголовки — здесь задаются различные заголовки диаграммы:

Название — указывает название графика, которое отображается над диаграммой.

Ось X — задает название оси X.

Ось Y — задает название оси Y.

Дополнительная ось Y — задает название дополнительной оси Y. Если значения различных рядов данных на диаграмме значительно отличаются друг от друга или если на диаграмме представлены данные различных типов, целесообразно вывести один или несколько рядов данных на дополнительной оси Y. Выбрать ось для построения ряда можно на закладке Ряды.

Общие — задает общие параметры диаграммы:

Шрифт — задает шрифт, используемый для отображения диаграммы. Для изменения шрифта нажмите кнопку [image]. Появится стандартный диалог выбора шрифта (его вид зависит от операционной системы), в котором можно установить такие параметры как название шрифта, его начертание, размер и набор символов.

При указании шрифта диаграммы в редакторе бланков воспользуйтесь списком доступных шрифтов.

Цвет фона — задает цвет фона диаграммы (недоступно при вызове диалога из редактора бланков).

Ряды в — определяет, где находятся ряды данных в исходной таблице: в строках или в столбцах. Недоступна, если все данные в одном столбце или в одной строке.

Включить в подписи данных — задает режим отображения значений в секторах круговой и кольцевой диаграмм (для других диаграмм недоступна):

Название ряда — отображать название ряда.

Значение — отображать значение.

Процент — отображать процент от общей суммы.

Легенда — управляет параметрами отображения легенды:

Положение — задает расположение легенды относительно диаграммы: слева, справа, вверху или внизу.

Рамка — включает отображение рамки вокруг легенды.

Цвет фона — задает цвет фона легенды (недоступно при вызове диалога из редактора бланков).


Закладка Ряды

Диаграмма

На закладке Ряды можно настроить параметры отображения рядов данных.

Ряды — показывает список рядов, для которых возможна настройка параметров. Порядок рядов можно изменить при помощи кнопок:

— для перемещения выбранного ряда вниз.

— для перемещения выбранного ряда вверх.

Название ряда — позволяет изменить название ряда, которое будет отображаться в легенде.

Цвет — задает цвет, которым будет отображаться ряд.

Линия — позволяет задать Тип и Толщину линии.

Маркер — позволяет задать Тип и Размер маркера.

Построить ряд — позволяет выбрать ось Y (основную или дополнительную), по которой будет построен выбранный ряд.


Закладка Оси

Диаграмма

На закладке Оси задаются следующие параметры осей диаграммы:

Ось X — определяет опции отображения оси X:

Сетка — отображать сетку, при включенной опции Вы можете выбрать цвет линий сетки.

Метки на оси — отображать метки на оси.

Значения — отображать значения.

Значения на оси X(Y) — управляет выводом значений по оси X(Y):

Вертикальный текст — значения по оси выводятся вертикально.

Расположить в шахматном порядке — значения по оси располагаются в двух строках в шахматном порядке.

Ось Y и Дополнительная ось Y — определяют опции отображения оси Y и дополнительной оси Y соответственно:

Сетка — отображать сетку, при включенной опции Вы можете выбрать цвет линий сетки.

Метки на оси — отображать метки на оси.

Значения — отображать значения.

Откладывать от нуля — выводить все значения по оси, начиная с нулевого.

Логарифмический масштаб — выводить значения по оси в логарифмическом масштабе, при включенной опции можно задать основание логарифма в поле Основание.


Штрихкод

Элементы редактора

Предназначен для вставки в бланк штрих-кода. Штрих-код может быть статичным и задаваться единожды при создании бланка, но также может задаваться из расчетной части. Более того, штрих-код может добавляться «на ходу», в процессе заполнения бланка.

Программа Инфо-Предприятие поддерживает 23 типа штрихкодов. Кроме того штрих-код имеет ряд дополнительных параметров, таких как подсчет контрольной суммы, вывод текста и др.

Особенностью рализации штрих-кода в программе Инфо-Предприятие является то, что при его печати на любом устройстве соблюдаются необходимые пропорции между линиями кода. Это устраняет проблемы считывания штрих-кода.

См. также
Параметры штрихкода
Функция ВСТАВИТЬ_ШТРИХКОД


Параметры штрихкода

Здесь задаются параметры штрих-кода.

Имя переменной — переменная или выражение, которое будет вычислено для получения штрих-кода. Выражение вычисляется после основного расчета бланка и должно быть строкового или числового типа.

Тип штрихкода — тип штрих-кода.

Поворот — определяет поворот штрих-кода в градусах. Возможные значения 0°, 90°, 180°, 270°.

Опции — здесь задаются дополнительные параметры штрих-кода.

Контрольная сумма — подсчитывает и добавляет к коду контрольную сумму. Поддерживается не для всех типов штрих-кодов.

Вывести текст — отображает код штрих-кода текстом.

Обновлять при вызове функций — определяет, будет ли изменяться штрих-код при выполнении каких-либо функций, обрабатывающих подстановку значений в графу.

Пример:

При вводе товара будет считываться его штрих-код и сразу же отображаться в документе. Для того чтобы содержимое штрих-кода обновлялось, используемая переменная должна быть определена как общая.

Автоматический расчет высоты — если штрих-код не задан (передана пустая строка), то высота графы будет установлена равной нулю. При изменении высоты автоматически изменится высота всех элементов бланка, находящихся на одной линии со штрих-кодом и подвинутся все элементы, находящиеся за ним. Если в строке расположены несколько граф с указанным атрибутом, высота будет подсчитана как максимум высот всех этих граф.


QR-код

Элементы редактора

Предназначен для вставки в бланк QR-кода (от английского quick response — быстрый отклик). QR-код может быть статичным и задаваться единожды при создании бланка, но также может задаваться из расчетной части. Более того, QR-код может добавляться «на ходу», в процессе заполнения бланка.

Для улучшения читабельности QR-кода применяется избыточное шифрование (код Рида-Соломона с 8-битным кодовым словом). Есть четыре уровня избыточности: 7, 15, 25 и 30 %.

См. также
Параметры QR-кода
Функция ВСТАВИТЬ_ДВУМ_ШТРИХКОД


Параметры QR-кода

Здесь задаются параметры QR-кода.

Имя переменной — переменная или выражение, которое будет вычислено для получения QR-кода. Выражение вычисляется после основного расчета бланка и должно быть строкового или числового типа.

Коррекция ошибок — задает один из 4-ех уровней коррекции ошибок (избыточность шифрования) от Минимальной (7%) до Высокой (30%).

Опции — здесь задаются дополнительные параметры штрих-кода.

Обновлять при вызове функций — определяет, будет ли изменяться штрих-код при выполнении каких-либо функций, обрабатывающих подстановку значений в графу.

Пример:

При вводе товара будет считываться его штрих-код и сразу же отображаться в документе. Для того чтобы содержимое штрих-кода обновлялось, используемая переменная должна быть определена как общая.

Автоматический расчет высоты — если QR-код не задан (передана пустая строка), то высота графы будет установлена равной нулю. При изменении высоты автоматически изменится высота всех элементов бланка, находящихся на одной линии с QR-кодом и подвинутся все элементы, находящиеся за ним. Если в строке расположены несколько граф с указанным атрибутом, высота будет подсчитана как максимум высот всех этих граф.


Секция

Элементы редактора

Секции задают фрагмент в визуальной части бланка, который потом будет особым образом использоваться. Например определяют повторяющиеся фрагменты бланков, верхние и нижние колонтитулы и т.д.

Существуют следующие типы секций: Повторение, Субповторение, Шапка и Подвал.

I. Секция Повторения. Секция Повторение определяют область бланка, которая будет повторяться. Этот тип секции определяют объект СЕКЦИЯ внутреннего языка. Остальное зависит от того, какого типа элементы будут располагаться в этой области. Секция повторения называется секцией ввода, если она содержит хотя бы один элемент ввода (см.таблицу ниже). Если секция содержит только элементы вывода, она называется секцией вывода.

Элемент | Ввод / Вывод | Переменная / Массив
Рамка | вывод | -
Графа | вывод или ввод | Имя переменной
Опция | ввод | Имя переменной
Кнопка | ввод | -
Рисунок | вывод | Файл рисунка
Диаграмма | - | -
Штрихкод | вывод | Имя переменной
QR-код | вывод | Имя переменной
Секция | - | -
Разрыв страницы | вывод | Условие (необязательно)
Непечатная область | - | -

Как секция ввода, так и секция вывода выводятся в расчетной части бланка с помощью ВЫВЕСТИ.

Вывод. Переменные, используемые внутри выражений, определяющих элементы вывода, могут быть как массивами, так и локальными переменными (см.таблицу, колонку «Переменная / массив» для элементов вывода). Если хотя бы одна переменная является массивом, однократный вызов ВЫВЕСТИ выводит столько строк секций, сколько элементов в массиве. Если в массиве не содержится ни одного элемента, секция не будет выведена ни разу.

Пример секции вывода

Если секция вывода не была ни разу выведена из расчетного раздела бланка, она не будет отображаться после расчета.

Ввод. Все определенные в графах ввода или опций переменные будут видны внутри расчетного раздела как массивы (см.таблицу, колонку «Переменная / массив» для элементов ввода). Для их перебора используется ЦИКЛ ИЗ. Функции, вызываемые из граф ввода внутри секции с подстановкой значения из функции и кнопок, могут получить текущее положение курсора внутри секций при помощи функции ТЕК и выводить значения в графы вывода секции ввода. При помощи метода ОБНУЛИТЬ объекта СЕКЦИЯ можно очистить содержимое граф ввода секции.

Если секция ввода не была ни разу выведена из расчетного раздела бланка, она появится в бланке в единичном экземпляре или в том количестве, которое было при последнем запуске бланка (кол-во добавленных секций ввода, а также содержимое всех их граф, сохраняется в архиве бланка).

Секция ввода не предусматривает добавление строк в процессе редактирования бланка пользователем. Сколько строк секции было выведено в бланке, столько и будет доступно для редактирования.

Пример секции ввода

II. Секция Субповторение. Секция Субповторение должна идти непосредственно перед секцией Повторение. Для каждого вывода секции Повторение секция Субповторение может быть в свою очередь выведена какое-то кол-во раз. В остальном секция полностью аналогична секции Повторение. Секция Субповторение может идти и перед другой секцией Субповторение. В этом случае она определяет фрагмент следующего порядка детализации. Секция субповторения может содержать только элементы вывода (см.таблицу выше).

III. Секции Шапка и Подвал. Секции Шапка и Подвал являются дополнением к секции Повторение. Они определяют области бланка, которые будут выводиться на каждой странице, содержащей секцию Повторение. Секция Шапка выводится вверху каждой страницы, секция Подвал внизу каждой страницы. Секции Шапка и Подвал могут содержать только элементы вывода (см.таблицу выше). См. подробнее Шапка и подвал

Секции не могут пересекаться или находиться одна внутри другой.

Замечание!

Разрывы страниц исключаются из секций, если находятся на нижней границе секции и добавляют закладку.

См. также
Параметры секции


Параметры секции

Тип секции — задает тип секции.

Имя переменной — указывает имя объекта, переменной типа СЕКЦИЯ, который будет использоваться в расчетной части бланка. Имя переменной задается только для секции Повторение.


Шапка и подвал

Секции Шапка и Подвал являются дополнением к секции Повторение. Они определяют области бланка, которые будут выводиться на каждой странице, содержащей секцию Повторение. Секция Шапка выводится вверху каждой страницы, секция Подвал внизу каждой страницы.

Так как секций Повторение может быть несколько, программа определяет, что секция Шапка относится к конкретной секции Повторение, если она располагается над ней, и что секция Подвал относится к конкретной секции Повторение, если она располагается после нее. Секции Шапка и Подвал всегда должны относится к какой-нибудь секции Повторение.

Графам вывода, находящимся внутри этих секций дополнительно доступны следующие переменные:

Переменная | Значение при расчете | Тип
страница | ПУСТО | ЧИСЛО
страниц | ПУСТО | ЧИСЛО
строка_нач | 1 | ЧИСЛО
строка_кон | Кол-во строк в соответствующей секции Повторение | ЧИСЛО

В процессе предварительного просмотра или печати документа переменные принимают значения исходя из текущей страницы, а содержимое граф вывода в секциях Шапка и Подвал обновляется:

Переменная | Значение при печати | Тип
страница | Текущая страница | ЧИСЛО
страниц | Общее кол-во страниц | ЧИСЛО
строка_нач | Начальная строка секции Повторение на странице | ЧИСЛО
строка_кон | Конечная строка секции Повторение на странице | ЧИСЛО

Примеры:

Выражений в графах вывода бланка ("сумма" — массив):

"Лист " + СТР(страница)

// На странице будет, например, надпись "Лист 3"

"Итого на странице " + СУММАП(строка_кон - строка_нач + 1) + " порядковых номеров" +

"на сумму " + СУММАПРОП(СУММАМ(сумма, строка_нач, строка_кон))

// На странице будет, например, надпись

// "Итого на странице Одиннадцать порядковых номеров на сумму Сорок рублей 24 коп."

Замечание!

Секции Шапка и Подвал никак не связаны с колонтитулами бланка. Верхний колонтитул всегда отображается над шапкой, а нижний колонтитул всегда под подвалом.

Замечание!

В секциях Шапка и Подвал вставленных в бланк с помощью функции ВСТАВИТЬ_ШАПКУ_ПОДВАЛ не доступны вышеуказанные переменные.

См. также
Секции
Параметры секции


Разрыв страницы

Элементы редактора

В зависимости от типа разрыва решают разные задачи управления страницами, включая удаление части бланка после расчета. Тип разрыва и другие свойства указываются в параметрах разрыва страницы.

Существуют четыре типа разрыва страницы:

·Разрыв страницы — позволяет принудительно завершить текущую страницу и начать печать с новой страницы; отображается в виде штрих пунктирной линии с двумя точками;

·Возможный разрыв — используется для указания программе, как лучше производить разбивку по страницам; отображается в виде короткой пунктирной линии;

·Конец печати — используется для указания конца документа, расположенные за ним элементы будут удалены из исходного документа при заданном условии; отображается в виде линии со штриховкой над ней;

·Начало печати — используется совместно с «Конец печати» для выделения страниц документа, удаляемых при определенном условии из него; отображается в виде линии со штриховкой под ней;

Замечание!

Редактор бланков производит разбиение бланка по страницам автоматически, но использование разрывов, таких как возможный разрыв, позволяет улучшить качество этого разбиения.

Кроме всего прочего разрыв может быть использован для смены ориентации страницы для части документа.

Для перемещения разрыва страницы вверх или вниз по тексту бланка, нужно перевести его в режим редактирования, подведя к нему курсор. Затем нужно переместить его, действуя так же, как и при перемещении других элементов.

См. также
Параметры разрыва страницы
Функция КОНЕЦ_СТРАНИЦЫ
Функция ВОЗМОЖЕН_РАЗРЫВ
Функция КОНЕЦ_ПЕЧАТИ
Функция НАЧАЛО_ПЕЧАТИ


Параметры разрыва страницы

Здесь задаются параметры разрыва страницы.

Тип разрыва задает тип разрыва страницы. Возможные варианты:

Разрыв страницы — задает разрыв страницы. При печати документа следующая за разрывом часть документа будет выведена на следующей странице.

Возможный разрыв страницы — задает программе место, где можно сделать разрыв страницы. При печати программа будет обрабатывать этот элемент следующим образом: если часть документа от него и до следующего разрыва или конца документа умещается на текущей странице, то программа не будет разрывать страницу и эта часть разместится на текущей странице, как если бы разрыва вообще не было. Иначе, программа перенесет непомещающуюся часть на следующую страницу.

Вообще, возможный разрыв только лишь указывает программе, где удобнее всего сделать разрыв страницы и непосредственно разрыва не делает. И только при печати программа, анализируя размеры страницы и параметры печати, будет разбивать документ по страницам, используя возможные разрывы.

Конец печати — определяет конец документа. Все строки и элементы за концом печати (если не используются разрывы типа начала печати) на принтер выводиться не будут.

Начало печати — определяет начало документа, прерванного при помощи конца печати. Если началу печати не предшествует никакой конец печати, игнорируется,

Ориентация — активна только для разрыва страницы. Если эта опция включена, можно установить новую ориентацию страницы: книжную или альбомную. Новая ориентация будет действовать со следующей за разрывом страницы до конца документа или нового указания ориентации.

Поля бланка зеркально меняются при смене ориентации бланка. Колонтитулы при смене ориентации не «переворачиваются», они всегда будут либо сверху листа, либо снизу.

Добавить закладку — если надо чтобы бланк имел несколько закладок, здесь указывается текст закладки, которая начинается с этого разрыва. Текст самой первой закладки указывается в параметрах бланка.

Условие (необязательно) — выражение внутреннего языка, определяющее условие действия разрыва. Если оно ложно, разрыв страницы будет удален после расчета бланка. Если условие не указано, действует всегда.


Непечатная область

Элементы редактора

Непечатная область определяет фрагмент в визуальной части бланка, который будет виден на экране при работе с бланком, но не будет выводиться на печать (включая отображение при предварительном просмотре).

Другие элементы редактора должны целиком лежать в непечатной области или не пересекаться с ней. Такой ситуации, что элемент частично лежит в непечатной области, а частично снаружи, быть не должно.

Отличие от опции «отображение при печати»

У некоторых элементов, например, графах, опциях, есть опция Отображение при печати. Включение этой опции аналогично размещению элементов в непечатной области. Но есть и отличие — при печати непечатная область удаляется из бланка со смещением всех нижестоящих строк бланка. А опция Отображение при печати просто скрывает конкретный элемент без какого-либо смещения.

Отличие от разрывов «конец» и «начало» печати

С помощью специальных типов разрывов страницы «начало печати» и «конец печати» можно выделить страницы документа, удаляемые при определенных обстоятельствах из него. Такие страницы не будут видны ни на печати, ни на экране при работе с бланком.

См. также
Параметры непечатной области


Параметры непечатной области

Параметры секции

Условие (необязательно) — выражение внутреннего языка, определяющее условие действия непечатной области. Если оно ложно, непечатная область не действует. Если условие не указано, действует всегда.


Параметры бланка

Диалог редактирования параметров состоит из четырех закладок:

Общие — задает название, раздел бланка и т.д.

Журнал — делает настройку журнала бланка

Форматы — переопределяет настройки форматов для конкретного бланка

Шрифты — настройка шрифтов бланка

Кнопка Пароль определяет настройку доступа к бланку и нужен только для разработчиков бланков.


Общие

Закладка Общие

Параметры бланка

 Вернуться к началу раздела

Название бланка — задает название бланка, под которым он будет отображаться в списке.

Название раздела — задает название раздела, к которому относится бланк. Для выбора существующих разделов можно воспользоваться списком.

Формула доступности бланка — здесь указывается формула на внутреннем языке. Результат расчета формулы может быть логикой или датой. Если формула возвращает логику, это означает будет ли виден бланк или нет. Если формула возвращает дату — эта дата будет определяться как последний день сдачи данного отчетного бланка. Если в результате расчета формулы дата попадает на субботу или воскресенье, то дата изменится на число понедельника. Внутри формулы могут использоваться переменные:

·М — выбранный месяц

·Г — выбранный год

Формула указывается только для отчетных бланков.

Вызывать вместо бланка — если указать здесь какой-либо бланк, то текущий бланк будет вызываться вместо него. Вы можете разработать свою версию какого-либо стандартного бланка и указать в его параметрах данную опцию. Тогда вместо стандартного бланка будет вызываться ваша версия. При последующих обновлениях программы и, соответственно, стандартного варианта бланка по-прежнему будет вызываться ваша версия бланка.

Текущая редакция бланка — используется для отчетных бланков с тем, чтобы привязать список сохраненных документов (с помощью функции ДОКУМЕНТ_ЗАПИСАТЬ) к этой редакции бланка.

Начало действия, Окончание — задает период действия бланка. Указывается только для отчетных бланков.

Добавить закладку — если бланк будет иметь несколько закладок, то здесь указывается текст первой из них. Текст последующих закладок указывается в разрывах страниц.

Нестандартная сетка — задает сетку бланка требуемых размеров. Сетка определяет, как пересчитываются координаты элементов бланка в реальные размеры. Здесь же справочно может отображаться масштаб, если он отличен от 100% (изменить масштаб можно в параметрах печати). При смене сетки программа предложит пересчитать координаты объектов согласно новым размерам сетки. Если координаты не пересчитывать, бланк растянется пропорционально размерам. При пересчете размеров возможны искажения пропорций некоторых элементов.

Изменить такие параметры, как имя файла бланка или его категорию можно в диалоге редактирования заголовка бланка.


Журнал

Закладка Журнал

Параметры бланка

 Вернуться к началу раздела

На закладке Журнал можно указать вариант хранения содержимого вводных граф бланка и настроить их.

Графы ввода сохранять в журнале — здесь указывается, где сохраняются графы ввода бланка.

Нет — программа не сохраняет графы ввода, ни в каком журнале, но запоминает последние введенные значения, и при следующем запуске бланка этим же пользователем он будет содержать те же значения вводных полей, которые были в прошлый раз.

Следующие варианты работают на графах, отмеченных опцией Сохранять содержимое:

Бухгалтерских операций — бланки, формирующие бухгалтерские проводки, могут сохранять содержимое вводных граф, которое было на момент формирования проводок, в бухгалтерской операции, которая получилась в результате вычислений. Позже на основе бухгалтерской операции можно будет получить документ. Для этого документу необходимо сопоставить префикс, а бланк зарегистрировать в типах документов.

Внутри бланка, который сохраняет графы ввода в журнале бухгалтерских операций возможно использование секции ЗАГРУЗКА и свойства АРХИВ.

Документов — программа сохраняет графы в отдельном журнале документов. Следующие опции позволяют настроить журнал документов.

Отображаемые колонки — В журнале документов хранится содержимое всех вводных полей бланка на момент сохранения в журнале. Однако в таблице, при выборе документа из журнала появляются лишь некоторые из них. На этой закладке указываются поля, которые будут отображаться в таблице. Они же будут доступны при обработке журнала из внутреннего языка.

Для идентификации документов можно использовать время занесения документа в журнал. Для этого включите Время заполнения бланка в списке отображаемых колонок. Под «временем» здесь понимается как дата заполнения бланка, так и его время одновременно.

Уникальная колонка — указывает ту отображаемую колонку, значение которой будет уникально. В журнале не будет двух записей с одинаковым значением этой колонки. Для выбора колонки воспользуйтесь списком.

Журнал — здесь указывается идентификатор журнала. Он не может совпадать с идентификатором какого-либо журнала аналитики. Оставьте это поле пустым, чтобы не вести журнал документов.

Внутри расчетного раздела с журналом документов можно работать также как и с обычными журналами аналитики. Поля задаваемого здесь журнала будут определяться по отображаемым колонкам. Например, если идентификатор журнала называется платежки, и в отображаемых колонках есть графа номер, то для того чтобы считать информацию из журнала для этой графы, надо обратиться платежки.номер.

Внутри расчетного раздела помимо основного журнала аналитики, доступны также и подчиненные журналы, созданные по секциям ввода, содержащимся в бланке. Если секция имеет идентификатор состав, а журнал документа — идентификатор накладные, то подчиненный журнал будет иметь идентификатор накладные_состав.

См. также
Ошибки при изменении структуры журнала документов.
Журнал документов


Форматы

Закладка Форматы

Параметры бланка

 Вернуться к началу раздела

При выполнении расчетов и отображении бланка используются параметры форматов, установленные в настройках программы. Однако на закладке Форматы можно изменить установленные параметры для этого конкретного бланка. Все опции на этой закладке могут иметь конкретное значение или говорить о том, что это значение берется из общих форматов программы.

Параметры — позволяет изменить значения одноименных опций в настройках форматов программы. Все опции имеют три значения: включено, выключено или не установлено. В последнем случае опция не изменяет значение, установленное в общих настройках.

Округлять переменные граф ввода — при присвоении значения переменной, представленной графой ввода с установленным в параметрах округлением, оно будет округляться до указанной в графе точности.

Пример:

г = 2.5 // "г" - графа ввода в бланке с параметром "Десятичные знаки" равным нулю

СООБЩЕНИЕ(г) // Выведет "2"

Десят.знаков в кол-ве — переопределяет кол-во десятичных знаков в количестве.

Десят.знаков в цене — переопределяет кол-во десятичных знаков в цене.

Десят.знаков в валюте — переопределяет кол-во десятичных знаков для сумм в валюте.

В последних опциях выбор в форматах говорит о том, что значение берется из общих настроек программы.


Шрифты

Закладка Шрифты

Параметры бланка

 Вернуться к началу раздела

Здесь настраивается список шрифтов, используемых бланком. Все шрифты определяются своими названиями. Название однозначно определяет шрифт.

Бланк всегда имеет хотя бы один шрифт. Этот шрифт называется Основной. Основной шрифт нельзя удалить. Размер основного шрифта устанавливается программой автоматически на основе сетки бланка, таким образом, что каждая буква основного шрифта занимает одну ячейку сетки. Основной шрифт используется в качестве шрифта для граф ввода и текста непосредственно в самом бланке.

Для управления списком шрифтов используются следующие кнопки:

— для добавления нового шрифта к списку. Добавленный шрифт имеет название «Шрифт...». Для изменения этого названия воспользуетесь соответствующей графой.

— позволяет изменить настройки выбранного шрифта и может вызываться также и двойным щелчком мыши по выбранному шрифту. Название здесь изменить нельзя. Для изменения названия шрифта воспользуетесь соответствующей графой.

— для удаления шрифта. Если удаляемый шрифт используется хотя бы в одной графе бланка, программа сообщит об этом:

Шрифт используется некоторыми графами. Выберите шрифт на замену.

Выберите шрифт-заменитель или нажмите <Отмена> для отказа от удаления шрифта.

Загрузить шрифты из другого бланка — позволяет добавить к списку существующих шрифтов шрифты из другого бланка. При нажатии программа предложит выбрать бланк, из которого будут загружены шрифты. Надо нажать <OK> для загрузки и <Отмена> — для отказа от выполнения действия.

Удалить неиспользуемые шрифты — позволяет удалить шрифты, не используемые в графах бланка. Перед удалением программа выведет список неиспользуемых шрифтов, в котором можно выделить один или несколько шрифтов на удаление.

Внимание!

Для корректной печати документа, необходимо использовать шрифты, слева от которых стоит значок [image] или [image]. Растровые шрифты, такие как System, Small Fonts и др. искажаются при печати.

Список представленных здесь шрифтов доступен из расчетного раздела в виде объектов ШРИФТ (если только название шрифта является правильным идентификатором). Шрифты можно изменять в процессе расчета, можно создавать новые и использовать их для вывода текста при помощи функции ВЫВЕСТИ.


Блокировка бланка

Диалог задает параметры бланка для сторонних разработчиков бланков и обычно не требуется.

Закладка Пароль определяет пароль для доступа к бланку. Если бланк имеет пароль, то его надо ввести прежде, чем изменять другие параметры защиты бланка.

Закладка Установки задает параметры защиты бланка.

Рекомендуемые параметры для позволяет быстро установить параметры, которые необходимы для конкретного использования защиты бланков. Здесь предусмотрены настройки параметров для демо-версий бланков, коммерческих бланков, коммерческих бланков с ограниченным периодом работы.

Возможны следующие степени защиты:

Защита визуальной формы и Защита расчетной части защищают бланк паролем. При попытке доступа к соответствующим элементам бланка запрашивается пароль.

Контроль версии говорит, что бланк будет работать только в выбранной версии. При активизации этой опции необходимо указать, в какой конкретно версии бланк должен работать.

Ограничение по времени до ограничивает работу бланка до указанного срока.

Сообщение при старте позволяет выводить произвольное сообщение при старте бланка. Текст сообщения указывается на закладке Сообщения.

Защита ключом серии позволяет привязать бланк к ключу определенной серии. Ключи определенной серии могут предоставляться по договоренности с производителем.

Привязка к коду ключа привязывает бланк к конкретному ключу. С другим ключом этот бланк работать не будет.

Платное обновление после ограничивает работу бланка на версиях Инфо-Предприятия вышедших до этой даты.

На закладке Сообщения можно указать сообщение, которое будет выводиться при запуске бланка.

В графе Сведения можно указать также дополнительные сведения о бланке. Этот текст будет появляться при нажатии правой кнопки мыши на графу Сведения справа снизу в бланке при заполнении.


Ошибки при изменении структуры архива

Ошибки при изменении структуры журнала документов

Следующие ошибки могут выводиться при редактировании бланка, сохраняющего свои поля ввода в журнале документов.

Идентификатор секции ... имеет слишком большую длину — имя секции используется для создания имени подчиненного журнала детализации к журналу документа. Он предназначен для хранения строк секции. А так как длина идентификатора журнала ограничена, программа не может создать требуемый журнал.

Уменьшите либо идентификатор журнала документа, либо идентификатор секции.

Невозможно сделать ... уникальной, т.к. она содержит повторяющиеся значения — при попытке создать уникальную колонку для журнала документа программа обнаружила, что в журнале уже есть записи и одна или несколько строчек содержат одинаковые значения указанной колонки.

Удалите такие строки перед тем, как устанавливать уникальную колонку.

Ошибка изменения структуры журнала — может возникать в самых разных случаях. Чаще всего это возникает по причине того, что с журналом кто-нибудь работает или он используется в открытом документе или отчете.

Ошибка создания журнала ... — возможно журнал с этим идентификатором уже существует или его имя совпадает с идентификатором существующего журнала аналитики.


Тестовое заполнение

Под Администратором программы доступна функция тестового заполнения бланка. Для этого надо запустить бланк и далее в контекстном меню выбрать пункт Тестовое заполнение. Перед выполнением заполнения программа запросит подтверждение у пользователя: «Вы действительно хотите заполнить поля ввода случайными значениями ?». Если вы соглашаетесь, графы ввода бланка будут последовательно заполнены строками и числами.

Тестовое заполнение позволяет отладить работу бланка.


Отладочная информация

Под Администратором программы доступен вывод отладочной информации при заполнении бланка. Для этого надо запустить бланк и далее в контекстном меню выбрать один из подпунктов пункта Отладочная информация.

В результате в графах ввода и вывода вместо содержимых граф будет показываться выбранная отладочная информация. Вернуть бланк в привычный режим можно выбрав подпункт <Нет> (самый первый).

Для переключения в режим отображения отладочной информации также можно использовать комбинацию клавиш <Ctrl>+<Alt>+D.

См. также
Режим разработчика


Редактор отчетов

Редактор отчетов основан на редакторе формул. В нем располагается алгоритм расчета отчета. Его задача обработать данные и вывести результат в виде ячеек таблицы. Алгоритм описывается с помощью внутреннего языка программы Инфо-Предприятие и выполняется при выполнении бланка документа.

Внутри алгоритма содержатся как формулы основного расчета, так и пользовательские функции, участвующие в основном алгоритме расчета либо в формировании диалога параметров.

Редактор отчета вызывается после выбора списка отчетов из пункта меню «Разработка | Отчеты». Перейти в редактор отчетов можно и из режима просмотра отчета, если сделать одно из следующих действий:

·выбрать пункт главного меню «Правка | Редактировать»

·нажать <Ctrl>+<F2> или выбрать пункт контекстного меню Редактировать

Создание нового отчета происходит при добавлении записи в список. После чего появится диалог редактирования заголовка нового отчета. После задания заголовка и нажатия <OK> новый бланк будет добавлен к списку и можно будет приступить к его редактированию. При создании нового отчета программа создаст скелет его алгоритма:

// Описания общих переменных и функций

ВЫЧИСЛИТЬ(СТРОКА: колонка,строка,ячейка)

// Алгоритм расчета отчета

КОНЕЦ

Через параметры "строка", "столбец", "ячейка" программа передает координаты и содержимое ячейки при вызове этого отчета из других отчетов (связь отчетов). Один или даже все параметры могут отсутствовать, но порядок их должен быть сохранен:

ВЫЧИСЛИТЬ(СТРОКА: колонка, строка)

ВЫЧИСЛИТЬ

Здесь и далее за "//" располагаются комментарии и используется подсветка, т.е. определенные конструкции выделяются цветом, например по умолчанию комментарии выделяются зеленым, а ключевые слова жирным шрифтом. Настроить подсветку можно в пункте меню «Установка | Настройки», вызвав настройку редактора.

В процессе заполнения отчета пользователь сначала указывает входные параметры, после чего отчет начинает выполняться, и в результате получатся таблица выходных данных. Входные параметры в отчет добавляются при помощи специальных функций. См. подробнее Создание собственных входных параметров.

Чтобы запустить отчет из редактора, достаточно нажать <F9> (пункт меню «Сервис | Пересчитать») или кнопку [image] панели управления.

См. также
Простейший отчет
Встроенные отчеты


Параметры отчета

Диалог редактирования параметров состоит из трех закладок:

Общие — задает название, раздел отчета, режим отображения линий и т.д.

Вызов из отчетов — настройка вызова отчетов (связь отчетов)

Опции — атрибуты отчета

Обработчики — обработчики (функции, которые вызываются в ответ на действия пользователя)


Общие

Параметры отчета

На закладке Общие расположены следующие опции:

Название отчета — здесь указывается название отчета. Это может быть любая строка.

Название раздела — задает раздел (группу), в котором располагается отчет. Здесь можно ввести новый раздел или выбрать раздел из списка существующих.

Имя файла отчета — имя файла, в котором будет располагаться отчет. Изменить его можно в диалоге редактирования заголовка отчета.

Вызывать вместо отчета — если указать здесь какой-либо отчет, то текущий отчет будет вызываться вместо него. Вы можете разработать свою версию какого-либо стандартного отчета и указать в его параметрах данную опцию. Тогда вместо стандартного отчета будет вызываться ваша версия. При последующих обновлениях программы и, соответственно, стандартного варианта отчета по-прежнему будет вызываться ваша версия отчета.

Проводить в таблицах — указывает необходимость проводить в таблице вертикальные и горизонтальные линии. Если опции установлены в нейтральное положение (серые), это значит, что настройки вида таблиц берутся из основных настроек программы.


Вызов из отчетов

Параметры отчета

На закладке Вызов из отчетов расположены следующие опции:

Закладка доступна только для Администратора. Позволяет настроить вызов одних отчетов из других.

Вызывать другой отчет — указывает на список других отчетов, которые будут вызываться программой при выборе ячейки этого отчета. В вызываемый отчет будут передаваться координаты выбранной ячейки и ее значение.

Вызывать из других отчетов — указывает на список других отчетов, из которых при выборе ячейки будет вызываться этот отчет. В вызываемый отчет будут передаваться координаты выбранной ячейки и ее значение.

Опция Показать параметры отчетов заставляет программу показывать параметры отчетов в списке. Параметры показываются в угловых скобках, например: <счет_шаб, статья_шаб>.

Кнопка Порядок позволяет настроить порядок следования отчетов при появлении их в диалоге выбора.

Если из отчета вызывается несколько других отчетов, то на экран будет выведен диалог выбора отчета, который надо сформировать в контексте выбранной записи.


Опции

Параметры отчета

Использовать строчное выделение — означает, что в отчете можно будет выбирать только строку, а не конкретную ячейку.

Столбцы внутри секции имеют одну ширину — заставляет программу выравнивать ширину столбцов внутри одной секции. Некоторым отчетам это придает более читабельный вид.

Скрывать пустые строчки (колонки) — означает, что программа не будет отображать строчки/колонки, в которых значения всех ячеек нулевые или являются пустыми строками (в зависимости от типа данных ячейки)

Скрывать пустые итоги — то же самое, но и для итогов. Так как промежуточные итоги могут иногда оказываться пустыми, то в этом случае они не будут выводиться.

Точность по умолчанию — задает число знаков после запятой, которые будут отображаться для числовых ячеек. Этот параметр никак не влияет на точность вычислений и может быть переопределен внутри алгоритма как для всего отчета в целом, так и для выбранных строк/колонок или даже конкретных ячеек.

Единицы измерения — задает единицы измерения, в которых будут измеряться числовые показатели отчета. Этот параметр также доступен для корректировки из внутреннего языка как для всего отчета в целом, так и для выбранных строк/колонок.

Только в подъчейках — говорит, что только числовые показатели в указанных подъячейках будут измеряться в этих единицах измерения. Требуется указать номер подъячейки.

Зафиксировать колонки слева — задает кол-во колонок, которые программа выделяет цветом и фиксирует при печати.

Показывать координатную колонку — определяет, нужно ли показывать левую колонку с координатами строк.

Показывать колонку с номером п/п — определяет, нужно ли показывать колонку с номером по порядку.

Открыть доступ к периоду отчета — определяет, нужно ли показывать отчетный период, по которому был построен отчет, в его заголовке.

Смещать позицию поиска в подуровнях — инкрементальный поиск (когда на клавиатуре последовательно набираются буквы искомой фразы) в подуровнях отчета будет идти не с первой буквы, а со смещением. Смещение определяется исходя из длины координаты верхнего уровня.

Пример:

В оборотной ведомости поиск в подуровне счета 60, чтобы найти строку 60/ПОСТ достаточно последовательно набирать П, О, и т.д. начало строки 60/ будет игнорироваться программой.

Раскрывать гориз. группы вместо входа внутрь — влияет на работу с многоуровневыми отчетами.

·Если опция включена, то содержимое группы раскрывается на том же уровне. Можно видеть как содержимое группы, так и все остальные записи таблицы.

·Если выключена, то происходит вход внутрь группы, что подразумевает, что будет видно только содержимое этой группы.

Запрещать открытие второго окна отчета — пользователю будет недоступен пункт меню «Окна | Новое окно».

Выделать недоступные для изменения ячейки — может использоваться для редактируемых отчетов (у которых есть обработчик При выборе ячейки). Опция позволяет визуально отличать редактируемые ячейки от не редактируемых. Установка атрибута атВозврат в ПУСТО делает ячейку не редактируемой.

Использовать закладки по периодам — отображает закладки, соответствующие отчетным периодам, по которым можно строить отчет. Позволяет быстро переключаться с одного отчетного периода на другой. Пользователь может добавлять и удалять закладки в процессе просмотра отчета.

Использовать стандартную строку статуса — генерирует строку статуса на основе содержимого ячеек, имеющих атрибут атПолныйВид. Кроме стандартной строки статуса можно использовать атрибут атСтатус.

Использовать стандартные подсказки — генерирует текст всплывающих подсказок на основе содержимого ячеек, имеющих атрибут атПолныйВид. Кроме стандартных подсказок можно использовать атрибут атПодсказка для строк (столбцов) и атПодсказка для ячеек, а также обработчик всплывающей подсказки.

Использовать сохранение настроек — добавляет в диалог входных параметров отчетасписок с предустановленными параметрами. Пользователь может сохранять настройки выбранных параметров отчета под каким-либо именем и при необходимости загружать их. Опция полезна в случае, если отчет имеет много входных параметров.


Обработчики

Параметры отчета

На этой закладке описываются обработчики — функции, которые вызываются в ответ на действия пользователя.

Функции-обработчики должны располагаться внутри отчета. Функции вызываются как отдельные алгоритмы после расчета отчета и поэтому обмениваться данными могут только с помощью глобальных переменных, общие переменные отчета в обработчиках не видны.

Предусмотрены следующие обработчики:

·При выборе ячейки

·При закрытии отчета

·Всплывающая подсказка

·Вид курсора мыши

·Свое меню

·Вставка из буфера обмена

При выборе ячейки — обработчик, который вызывается при выборе ячейки отчета. Функция может иметь один из следующих видов:

ФУНКЦИЯ ЛОГИКА: Выбор(СТРОКА: колонка, строка, ячейка)

ФУНКЦИЯ ЛОГИКА: Выбор(СТРОКА: колонка, строка)

ФУНКЦИЯ ЛОГИКА: Выбор(СТРОКА: колонка)

Функции передается координаты колонки, строки выбранной ячейки и ее содержимое. Если для ячейки указан параметр возврата с помощью атрибута атВозврат или свойств ВОЗВРАТ и ВОЗВРАТВ, то вместо координат передается параметр возврата.

Внутри обработчика можно изменять содержимое отчета с помощью стандартных свойств ЯЧЕЙКА, АТРИБУТЫ и др.

Пример:

ФУНКЦИЯ ЛОГИКА: Выбор(СТРОКА: колонка, строка)
ЯЧЕЙКА[колонка, строка] = ВВЕСТИ_ЗНАЧЕНИЕ("Введите значение", ЯЧЕЙКА[колонка, строка])
РЕЗУЛЬТАТ = ДА
КОНЕЦ_ФУНКЦИИ

Замечание!

Координаты ячейки могут быть и не строковыми, но их надо преобразовать к нужному типу при изменении ячейки, например ЯЧЕЙКА[ЗНАЧ(колонка), ЗНАЧ(строка)].

При закрытии отчета — обработчик, который вызывается при закрытии окна отчета. Функция должна иметь следующий вид:

ФУНКЦИЯ ЛОГИКА: Закрытие

Функция возвращает логическое значение. Если оно ложно, окно отчета не закроется.

Пример:

ФУНКЦИЯ ЛОГИКА: Закрытие

ЕСЛИ БЫЛИ_ИЗМЕНЕНИЯ И НЕ ВОПРОС("Сохранить изменения цен") ТО

ОТМЕНИТЬ

КОНЕЦ_ЕСЛИ

РЕЗУЛЬТАТ = ДА

КОНЕЦ_ФУНКЦИИ

Замечание!

Все обработчики выполняются в рамках одной транзaкции — той же, в которой был рассчитан и сам отчет. Подтверждение транзaкции происходит при закрытии окна отчета.

Всплывающая подсказка — обработчик, который вызывается для определения текста всплывающей подсказки. Всплывающие подсказки появляются как для ячеек, так и для заголовка таблицы отчета.

ФУНКЦИЯ СТРОКА: Подсказка(СТРОКА: колонка, строка, ячейка)

ФУНКЦИЯ СТРОКА: Подсказка(СТРОКА: колонка, строка)

Функции передается координаты колонки, строки выбранной ячейки и ее содержимое. Если для ячейки (колонки, столбца) указана всплывающая подсказка с помощью атрибута атПодсказка, то вместо координат передается текст, заданный этим атрибутом.

Если функция вернет пустую строку, будет использоваться стандартный способ получения строки подсказки.

Пример:

ФУНКЦИЯ СТРОКА: Подсказка(СТРОКА: колонка, строка, ячейка)
РЕЗУЛЬТАТ = ?(СЧЕТ_СУЩ(колонка), НАЗВ(колонка), "")
КОНЕЦ_ФУНКЦИИ

Замечание!

Координаты ячейки могут быть и не строковыми, но их надо преобразовать к нужному типу при изменении ячейки, например ЯЧЕЙКА[ЗНАЧ(колонка), ЗНАЧ(строка)].

Вид курсора мыши — обработчик, который вызывается для определения вида курсора мыши.

ФУНКЦИЯ ЧИСЛО: Курсор(СТРОКА: колонка, строка, ячейка)

ФУНКЦИЯ ЧИСЛО: Курсор(СТРОКА: колонка, строка)

Функции передается координаты колонки, строки выбранной ячейки и ее содержимое.

Для возврата используются значения констант вида курсора. Функция может вернуть значение курПоУмолчанию, если нужно, чтобы обработку вида курсора программа сделала самостоятельно.

Пример:

ФУНКЦИЯ ЧИСЛО: Курсор(СТРОКА: колонка, строка, ячейка)
РЕЗУЛЬТАТ = ?(АТРИБУТЫ(колонка, атСекция) > 30, курЛупа, курПоУмолчанию)
КОНЕЦ_ФУНКЦИИ

Замечание!

Координаты ячейки могут быть и не строковыми, но их надо преобразовать к нужному типу при изменении ячейки, например ЯЧЕЙКА[ЗНАЧ(колонка), ЗНАЧ(строка)].

Свое меню — обработчик, позволяющий создать контекстное меню для отчета.

ФУНКЦИЯ СТРОКА: СвоеМеню(ЛОГИКА: выдать_варианты; СТРОКА: меню)

Сначала обработчик вызывается с <выдать_варианты> = ДА. В этом случае он должен вернуть строку с пунктами контекстного меню. Один пункт отделяется от другого с помощью константы РР. Если пользователь выберет один из пунктов меню, функция вызовется повторно с <выдать_варианты> = НЕТ. Параметр <меню> в этом случае будет содержать название выбранного пункта меню.

Пример:

ФУНКЦИЯ СТРОКА: СвоеМеню(ЛОГИКА: выдать_варианты; СТРОКА: меню)
ЕСЛИ выдать_варианты ТО
// Возвращаем список закладок
РЕЗУЛЬТАТ = "Сделать скидку/наценку" + РР + "Скопировать цены из..." + РР + "Заполнить значением..."
ИНАЧЕ
РЕЗУЛЬТАТ = ""
ЕСЛИ меню = "Сделать скидку/наценку" ТО
//.....
ИНАЧЕ_ЕСЛИ меню = "Заполнить значением..." ТО
//.....
ИНАЧЕ_ЕСЛИ меню = "Скопировать цены из..." ТО
//.....
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЕСЛИ
КОНЕЦ_ФУНКЦИИ

Вставка из буфера обмена — обработчик, обрабатывающий вставку из буфера обмена в отчет.

ФУНКЦИЯ ЛОГИКА: ВставкаИзБуфера

Обработчик срабатывает при попытке вставить содержимое буфера обмена в отчет. Функция возвращает ДА, если она обработала вставку, и НЕТ в противном случае. Если функция вернула НЕТ, то срабатывает стандартная обработка вставки из буфера обмена: если с отчетом связаны какие-то записи журнала (связь делается с помощью свойства ВОЗВРАТ или атрибута атВозврат), то будет отрабатываться вставка в эти журналы.

Для доступа к буферу обмена можно использовать свойство БУФЕР_ОБМЕНА.

Пример:

ФУНКЦИЯ ЛОГИКА: ВставкаИзБуфера
ЕСЛИ БУФЕР_ОБМЕНА = "" ТО
СООБЩЕНИЕ("Нет данных для вставки")
ИНАЧЕ
//.....
КОНЕЦ_ЕСЛИ
КОНЕЦ_ФУНКЦИИ


Простейший отчет

Создадим простейший отчет, который будет выводить на экран таблицу умножения. Для этого зайдем в пункт меню «Разработка | Отчеты» и вызовем список отчетов. Новый отчет создается при добавлении записи в таблицу. После чего появится диалог редактирования заголовка нового отчета. Укажите в нем Название отчета "Таблица умножения", Имя файла отчета "FIRST" и нажмите <OK>. Новый отчет добавился к списку.

Теперь предстоит задача написать текст алгоритма отчета. Для этого выберем отчет и перейдем в редактор отчетов.

Итак, цель работы алгоритма — заполнение таблицы отчета. Таблица отчета состоит из ячеек, программа может обращаться к ним, записывать и считывать из них информацию. Для доступа к ячейке используются координаты. Координатами могут быть любые значения. Самый простой случай, когда координаты — числа. Тогда для того чтобы обратиться к ячейке таблицы, надо указать два числа: горизонтальную координату и вертикальную. Следующий пример выведет на экран таблицу умножения:

ЦИКЛ ДЛЯ (и=1,10)

ЦИКЛ ДЛЯ (й=1,10)

ЯЧЕЙКА[и,й] = и * й

КОНЕЦ_ЦИКЛА

КОНЕЦ_ЦИКЛА

Для обращения к ячейкам из внутреннего языка существует ключевое слово ЯЧЕЙКА. Внешне, работа с ним похожа на работу с массивом, но при указании элемента такого массива надо указывать не одну, а две координаты. В указанном примере мы при каждой итерации записываем в ячейку с координатами [и,й] числовое значение и * й. Еще одно отличие от массива, что значения координат у ячеек могут быть практически произвольного типа, а значения самих ячеек вообще любого типа.

При отображении такого отчета на экране появится таблица следующего вида:

Серые клетки показывают координаты ячеек, белые — их значения.

См. также
Редактор отчетов


Шаблон в отчетах

Шаблон используется для определения группы ячеек и задается различными способами. Первый — при помощи задания номера секции. Второй — при помощи задания маски, по которой будут отбираться колонки или строчки. При сравнении с шаблоном все не строковые значения будут преобразованы в строку, и будут сравниваться по маске как строки.

Примеры.

ИТОГО("Всего",2)

// Указываем номер секции

ИТОГО("Всего за день","Дебет*")

// Задаем шаблон для индекса

Третий способ, когда шаблон содержит условия сразу и на секцию, и на координаты. Для этого после указанной маски надо поставить : (двоеточие) и указать номер секции.

Пример.

ИТОГО("Итого дебет:","Дебет*":2)

// Задаем шаблон для индекса и номер секции

Следует аккуратно использовать маску для чисел и дат. Число преобразуется к строке согласно установкам точности для колонки (строки). При этом нулевые значения могут быть преобразованы в прочерк.

Можно исключать из условий шаблона какие-либо ячейки. Для этого после указанной маски и секции надо поставить : (двоеточие) и указать маску и/или секцию. Если секцию указывать не надо, ставьте -1 в качестве ее номера, например "50":-1:....

Пример.

СКРЫТЬ_ЯЧЕЙКИ("*", "*" : -1 : "50;51")

// Скроет все ячейки, кроме тех, что имеют координаты 50 и 51

СКРЫТЬ_ЯЧЕЙКИ("*", "*" : 1 : "50;51")

// Скроет все ячейки из секции 1, кроме тех, что имеют координаты 50 и 51

СКРЫТЬ_ЯЧЕЙКИ("*", "*" : -1 : 1)

// Скроет все ячейки, кроме тех, что находятся в секции 1


Создание собственных входных параметров

Отчет может иметь собственные входные параметры, которые будут запрашиваться у пользователя перед запуском отчета. Для того чтобы создать такой диалог используются встроенные функции:

ВОПРОС! | для добавления параметра логического типа.
ВВЕСТИ_ЗНАЧЕНИЕ! | для добавления списка (перечисления).
ВЫБОР_СЧЕТА! | для добавления графы с выбором счета из плана счетов.
ВЫБОР_СТАТЬИ! | для добавления графы с выбором статьи.
ВЫБОР_ЗАПИСИ! | для добавления графы с выбором из журнала.
ФУНКЦИЯ_ВЫБРАТЬ! | для добавления графы с вызовом функции.

Примеры.

итогдеб = ВОПРОС!("Итоговый оборот по дебету")

детализ = ВВЕСТИ_ЗНАЧЕНИЕ!("Детализация",

["Операция", "День", "Пять дней", "Неделя", "Декада",

"Месяц", "Квартал", "Год"])

статья_шаб = ВЫБОР_СТАТЬИ!("",НЕТ,"По статье")

Вызовы этих функций сформируют диалог входных параметров, в котором запрашиваемые параметры следуют один за другим в порядке их описания в расчетной части:

Диалог входных параметров выводится перед выполнением отчета. Программа запоминает значения введенных параметров и в следующий раз предложит последние введенные.

При вызове одного отчета из другого все входные параметры наследуются. Такое происходит при:

·Вызове ВСТАВИТЬ_ОТЧЕТ

·Вызове отчета из ячейки, отмеченной функцией РАСКРЫВАЕМО

·Вызове отчета из ячейки.

Это значит, что значения таких параметров будут по умолчанию равны значениям входных параметров в отчете, из которого они были вызваны. Т.к. вызов отчета из ячейки, вдобавок, имеет возможность изменять параметры отчета, то эти изменения наследованных параметров коснутся исходного отчета при следующем его вызове. Более того, если отчеты, которые вызываются указанными способами из других отчетов, имеют свои собственные входные параметры, их значение по умолчанию будет запоминаться в контексте вызова из того, другого отчета. Т.е. если такие параметры изменить, то программа запомнит выбранное значение и воспроизведет его при следующем запуске этого отчета из того же исходного отчета. В частном случае, если вызываемый отчет имеет параметр, совпадающий по имени с параметром основного отчета, он будет принимать по умолчанию то же значение что и в исходном отчете. Это дает возможность синхронизировать режимы работы отчетов.

Операция "?"

Пусть какой либо отчет вызывается при выборе ячейки другого отчета. Например, он раскрывает (детализирует) содержимое этой ячейки. Если теперь запустить этот отчет самостоятельно, то нам потребуется запрoсить у пользователя дополнительные параметры.

Пример.

Есть отчет, который выводит движение средств по счету. Он вызывается при выборе строки из оборотной ведомости и выводит движение по выбранному в ней счету. По какому счету выводить движение известно на момент выполнения отчета. Однако, при запуске движения средств самостоятельно, он должен запрoсить у пользователя нужный счет.

Для того чтобы выделить такие параметры отчета, которые игнорируются и не запрашиваются у пользователя при вызове его из других отчетов, используется операция ?=. Операция имеет следующий синтаксис:

<параметр> ?= <выражение>

где <параметр> является параметром отчета, указанным в ВЫЧИСЛИТЬ, а <выражение> — выражение, состоящее из функций ВОПРОС!, ВВЕСТИ_ЗНАЧЕНИЕ!, ВЫБОР_СЧЕТА! и др.

Пример.

ВЫЧИСЛИТЬ(СТРОКА: счет_шаб)

счет_шаб ?= ВЫБОР_СЧЕТА!("",НЕТ,"По счету")

В этом примере при вызове этого отчета из другого программа не будет добавлять параметр "По счету" в диалог настройки отчета. Когда же отчет вызывается самостоятельно (а счет_шаб в этом случае будет пустой строкой), то параметр добавится к отчету.

При использовании функции ВЫБОР_ЗАПИСИ! вместе с оператором ?= для создания параметров отчета, она возвращает преобразованное к строке значение ключевого поля из выбранной записи. А проверить успешность выбора записи можно либо использовав метод НОВАЯ для передаваемой записи, либо сравнив возвращаемое значение со значением до вызова функции.

Если <параметр> не является параметром отчета, то операция ?= имеет свой обычный смысл "присвоение при нулевом значении".

См. также
Простейший отчет
Встроенные отчеты


Создание многоуровневых отчетов

Многоуровневые отчеты предоставляют гибкое средство для отображения данных. Такой отчет представляет собой сводную таблицу, в которой при необходимости получить более детальный анализ по строке (столбце) пользователь нажимает на заголовок строки (столбца) и входит в подуровень отчета.

В зависимости от реализации уровни бывают статические и динамические, а в зависимости от отображения уровней вертикальные и горизонтальные.

Статические многоуровневые отчеты работают так: алгоритм отчета заполняет таблицу, а затем группирует строки (колонки) по определенным признакам. При использовании статических многоуровневых отчетов программа выполняет суммирование числовых ячеек и отображает итоговые суммы в итоговой строке (столбце) группы.

Динамические многоуровневые отчеты работают иначе: алгоритм отчета заполняет не всю таблицу, а только верхний уровень, а потом указывает какие строки (столбцы) являются группами и что надо сделать для отображения ячеек из этой группы. Действие может быть вызовом этого же отчета, но с другими параметрами или любого другого отчета.

Горизонтальные многоуровневые отчеты имеют группы — строки. Для входа в группу надо нажать иконку папки [image] слева от строки. При входе в группу будут отображаться только ячейки из этой группы.

Пример:

Вернуться обратно к верхнему уровню можно, нажав на кнопку [image] в левом верхнем углу таблицы.

Вертикальные многоуровневые отчеты имеют группы — столбцы. Для входа в группу надо нажать на плюс [image] в заголовке столбца. При входе в группу на месте ячеек группы появятся ячейки подгруппы, а плюс [image] в заголовке отчета поменяется на минус [image]. Ячейки из группы будут скрыты.

Пример:

Вернуться обратно к просмотру группы можно, нажав на минус [image] в заголовке. Те же действия можно делать и с клавиатуры, воспользовавшись клавишами <Ctrl>+<+> (плюс) и Ctr+- (минус).

Все способы отображения уровней и способы реализации групп могут произвольным образом комбинироваться внутри одного отчета, однако одна и та же группа может быть либо статической, либо динамической, но не одновременно.

Для создания статических многоуровневых отчетов используется атрибут атГруппа и функции ГРУППА_ПЕРЕСЧЕТ и ГРУППАВ_ПЕРЕСЧЕТ (новый вариант) или функции ГРУППА и ГРУППАВ (старый вариант).

Динамические отчеты создаются при помощи функций РАСКРЫВАЕМО и РАСКРЫВАЕМОВ.


Работа с периодами в отчетах

При запуске отчета, для которого в параметрах указана опция Открыть доступ к периоду отчета, из меню или выборе его из списка, программа использует период, заданный пользователем. Этот период запрашивается перед открытием отчета или может быть изменено позже в специальном окне в панели управления.

Свойства ДАТА_НАЧ и ДАТА_КОН возвращают даты начала и конца этого периода. Эти же свойства, при необходимости, позволяют изменить даты начала и конца.

Если один отчет вызывается из другого, то он строится за тот период, за который бы построен исходный отчет. Это происходит в следующих случаях:

·При использовании функции ВСТАВИТЬ_ОТЧЕТ

·При вызове отчета из ячейки, отмеченной функцией РАСКРЫВАЕМО

·При вызове отчета, указанного в списке вызываемых отчетов, при щелчке пользователем по ячейке исходного отчета.

Если нужно, чтобы вызываемый отчет был построен за иной период, в исходном отчете используются атрибуты атВозвратНач и атВозвратКон. Задание этих атрибутов переопределяет результат, возвращаемый функциями ДАТА_НАЧ и ДАТА_КОН соответственно внутри вызываемого отчета. Если период задан и в столбце и в строке ячейки, то результат будет получен пересечением диапазонов дат. Для удобной работы с периодами в отчетах существует ряд функций:

·ПЕРИОД_НАЧ — возвращает дату начала периода по заданной дате и детализации.

·ПЕРИОД_КОН — возвращает дату конца периода по заданной дате и детализации.

·ПЕРИОД — возвращает название диапазона дат

См. также
Создание собственных входных параметров
Создание многоуровневых отчетов


Сформировать отчет в контексте

Программа предлагает сформировать перечисленные отчеты на основе выбранной строки или ячейки текущего отчета. Выберите тот, который Вам нужен. Если отчет имеет входные параметры нажмите Настройка. Вы попадете в диалог настройки входных параметров отчета, из которого можно вернуться назад, нажав <OK> для сохранения изменений или <Отмена> — для выхода без изменений. Также в нем можно нажать <Рассчитать> для выполнения выбранного отчета.

Новые отчет будет сформирован на основе тех же данных, которые использовались и в текущем отчете. Он будет использовать тот же период, что и текущий.


Функции для работы с редактором

Функции для работы с редактором


Отладочная информация

Под Администратором программы доступен вывод отладочной информации при заполнении бланка. Для этого надо запустить отчет и далее в контекстном меню выбрать один из подпунктов пункта Отладочная информация.

В результате в графах ввода и вывода вместо содержимых граф будет показываться выбранная отладочная информация. Вернуть бланк в привычный режим можно выбрав подпункт <Нет> (самый первый).

Для переключения в режим отображения отладочной информации также можно использовать комбинацию клавиш <Ctrl>+<Alt>+D.

См. также
Режим разработчика


Редактор формул

С редактором формул пользователь сталкивается в разных ситуациях:

·При редактировании типовых операций в пункте меню «Разработка | Типовые операции»;

·При редактировании библиотек функций в пункте меню «Разработка | Библиотеки функций»;

·При редактировании алгоритма отчета в пункте меню «Разработка | Отчеты»;

И всегда при этом используется встроенный редактор текста. Однако для более удобного редактирования формул в редакторе используется так называемая подсветка. Просто различные фрагменты текста, слова или фразы подсвечиваются цветом или выделяются отдельным шрифтом для отражения их сути. Например, жирным шрифтом выделяются ключевые слова и функции, серым цветом поля журналов, бордовым реквизиты и определения, а зеленым курсивом комментарии. Параметры подсветки можно изменить при настройке редактора.

Редактирование типовых операций и библиотек имеет еще одни особенности. Во-первых, в редакторе можно использовать оглавление типовых операций и функций соответственно. Для вызова оглавления надо выполнить одно из следующих действий:

·выбрать пункт «Правка | Оглавление» главного или Оглавление контекстного меню;

·нажать клавишу <F2>;

Появится диалог, где можно выбрать нужную операцию или функцию и перейти к ней.

В редакторе формул можно дополнительно использовать следующие команды:

Клавиша | Меню, Кнопка панели | Функция
<F2> | «Правка | Оглавление» | Для типовых операций и библиотек вызов оглавления
<Ctrl>+<F2> |  | Для библиотек функций вызов подробного оглавления
<Ctrl>+<PgDn> или <F6> |  | Переместиться к следующей закладке
<Ctrl>+<PgUp> или <Shift>+<F6> |  | Переместиться к предыдущей закладке
<Alt>+<F3> | «Правка | Закрыть редактор» | Убрать текущую закладку (закрыть файл)
<F9> | «Правка | Пересчитать» | Запустить на выполнение бланк, отчет или типовую операцию (при запуске типовой операции может потребоваться сохранение файла)
<Ctrl>+<F9> | Проверить синтаксис | Проверяет синтаксис бланка или отчета
 | «Файлы | Создать» | Создать новую библиотеку функций или операций
 | «Файлы | Открыть» | Настроить список редактируемых файлов
 | «Файлы | Открыть/Удалить» | Удалить файл(ы)
 | Настроить права доступа | Настроить права доступа к типовой операции, отчету, бланку
 | Мастер создания операции | Только для типовых операций: создание типовой операции на основе существующей
<Ctrl>+<пробел> |  | Получить подсказку по параметрам функции, списку полей журнала и т.п. Курсор при этом должен стоять: внутри параметров функции, если нужно вывести подсказку по параметрам; после точки за объектной переменной, если нужно вывести список полей объекта.
<Ctrl>+<T> | Добавить задачу | Добавить задачу в алгоритм. Задачи выведутся при проверке конфигурации.

также в редакторе формул можно выполнять все команды текстового редактора.

Получение информации о ключевых словах. В редакторе можно быстро получить справку по встроенной функции или ключевому слову. Для этого надо, установив курсор на нужное слово, нажать <Ctrl>+<F1>.

При нажатии этой комбинации клавиш на слове, являющимся пользовательской функцией программа перейдет к редактированию этой функции.

При нажатии <Ctrl>+<F1> на слове, являющемся определением, реквизитом или множеством программа откроет редактор, соответственно, определений, реквизитов или множеств. Курсор при этом будет стоять на выделенном слове.

При нажатии <Ctrl>+<F1> на слове, являющемся журналом аналитики, программа откроет редактор функций журнала. Курсор при этом будет стоять на выделенном журнале.

При нажатии <Ctrl>+<F1> на слове, являющемся идентификатором счета, программа откроет план счетов. Курсор будет стоять на счете, для которого определен этот идентификатор.

При нажатии <Ctrl>+<F1> на слове, являющемся именем файла библиотеки, будет открыт формульный редактор этой библиотеки.

Встроенный отладчик.

В программе есть встроенный отладчик. В процессе отладки доступны свои команды и клавиши.

Настраиваемая обработка

Функция доступна только под Администратором. Она позволяет обработать текст формул с помощью пользовательской функции.

См. также
Расчетная часть бланка
Редактор бланков
Общие сведения о внутреннем языке
Ключевые слова
Встроенные функции


Выбор файла

Диалог выбора файла используется для открытия файлов документов в редакторе с закладками или для быстрого перехода к требуемой закладке редактора.

Диалог содержит список доступных в базе данных файлов конкретного типа. Слева от имени файла стоит опция [image]. Открытые в редакторе файлы отмечены опцией [image]. Устанавливая и сбрасывая значения опций можно установить требуемый список файлов. После нажатия <OK> редактор будет содержать закладки с выбранными файлами.

Кнопка Удалить предназначена для удаления файла из базы данных. После ее нажатия программа попрoсит подтвердить указанное действие. Файл удаляется сразу, последующее нажатие кнопки <Отмена> не приведет к отказу от удаления файла.

С помощью окна также можно перемещаться между закладками. После нажатия <OK> Вы перейдете к закладке редактирования выбранного файла.

См.также
Редактор формул


Новый файл

Укажите имя нового файла. После нажатия <OK> программа создаст новый файл.

Удалить файл можно из диалога выбора файла, который вызывается при выборе пункта меню «Файлы | Открыть».

См.также
Редактор формул


Подробное оглавление

Нажав в редакторе библиотеки функций клавишу <Ctrl>+<F2>, а при редактировании бланка или отчета клавишу <F2> можно открыть подробное оглавление библиотеки.

Оглавление содержит список функций, содержащихся в библиотеке, их параметров, типа результата. Для методов также показывается тип объекта (последняя колонка).

С помощью этого окна можно выбрать функцию библиотеки и перейти к её редактированию.


Типовые операции

Типовые операции предназначены для реализации алгоритмов, выполняющихся при выборе пользователем пункта главного или контекстного меню. Они так называются потому, что изначально описывали типовой сценарий ввода данных о хозяйственной операции и формирования проводок бухгалтерского учета.

Каждая типовая операция — это отдельный алгоритм, решающий какую-либо задачу. Программа хранит типовые операции в библиотеках типовых операций, представляющих собой обычные текстовые файлы. Каждая библиотека может содержать одну или несколько типовых операций, которые описываются с помощью внутреннего языка программы Инфо-Предприятие. Каждая типовая операция является законченным алгоритмом, все типовые операции независимы друг от друга и могут запускаться в любой момент времени прямо из редактора типовых операций.

Большинство типовых операций представляет собой диалог, в котором у пользователя запрашиваются входные параметры. Именно на основе этих входных параметров и работает алгоритм типовой операции.

Выбрав пункт «Разработка | Типовые операции» главного меню, Вы можете отредактировать содержимое файла типовых операций с помощью встроенного редактора. Для перехода к нужной типовой операции можно воспользоваться оглавлением типовых операций. Это можно сделать с помощью одного из следующих действий:

·нажать клавишу F2;

·выбрать пункт контекстного меню Оглавление

Типовые операции можно создавать и не зная внутреннего языка. Для этого имеется возможность создавать типовую операцию на основе существующей операции из журнала. Это удобно, если приходиться часто вводить одну и ту же схему проводок, заменяя в ней сумму или какой-либо счет.

Замечание!

Кроме вызова операции из пункта главного и контекстного меню, она может быть запущена при помощи функции СТАРТ_ОПЕРАЦИЯ.

См. также
Структура библиотеки типовых операций
Форматы ввода и вывода
Пример типовой операции


Структура библиотеки типовых операций

Файл библиотеки типовых операций состоит из одной или нескольких операций. Описание операции начинается с ключевого слова ОПЕРАЦИЯ, за которым следует название операции. Далее идет описание полей формы. Алгоритм расчета начинается с ключевого слова ВЫЧИСЛИТЬ. Конец типовой операции обозначается ключевым словом КОНЕЦ.

Внимание!

1. Ключевые слова ОПЕРАЦИЯ, ВЫЧИСЛИТЬ и КОНЕЦ должны быть первыми в строке (не обязательно с первой позиции). Объясняется это тем, что библиотека типовых операций при обновлении программы будет объединена с новыми версиями операций. При таком объединении сохраняются пользовательские операции внутри библиотеки, включая варианты с модификаторами.

2. Чтобы отобразилась форма необходимо вызвать функцию ВВЕСТИ.

За словом ОПЕРАЦИЯ может следовать слово ЖУРНАЛА, которое означает, что данная операция будет предлагаться пользователю при добавлении новой операции в журнал бухгалтерских операций. В список выбора входят только операции, объявление которых начинается с ОПЕРАЦИЯ ЖУРНАЛА. Ключевое слово ЖУРНАЛА говорит программе, что операцию надо показывать в списке бухгалтерских типовых операций. После того как пользователь выберет типовую операцию, она запуститься и начнет работать. Результатом ее работы, как правило, является новая бухгалтерская операция с проводками, полученными после выполнения алгоритма.

В окне выбора типовой операции в журнале бухгалтерских операций операции могут быть представлены в виде иерархии: объединяться в разделы, подразделы и т.д. Чтобы сделать так, надо в названии операции использовать символ : (двоеточие). Если раздел не указывается операция появится на первом уровне при выборе ее из списка. Более сложное деление будет выглядеть так: <Раздел> : <Подраздел> : <Операция>.

ОПЕРАЦИЯ <Раздел> : <Операция 1>

<описание формы>

ВЫЧИСЛИТЬ

<алгоритм расчета>

КОНЕЦ

ОПЕРАЦИЯ <Раздел> : <Операция 2>

<описание формы>

ВЫЧИСЛИТЬ

<алгоритм расчета>

КОНЕЦ

.....

За словом ОПЕРАЦИЯ может следовать слово-модификатор ВМЕСТО, если указанная операция заменяет исходную.

Типовая операция может содержать алгоритм, срабатывающий каждый раз, когда пользователь изменят содержимое какого-либо поля диалога типовой операции. Этот алгоритм должен начинаться с ключевого слова ИЗМЕНЕНИЕ и находиться перед ВЫЧИСЛИТЬ.

См. также
Форматы полей ввода
Пример типовой операции


Форматы ввода и вывода

Форматы ввода и вывода используются в диалогах и типовых операциях. Они позволяют задавать вид вводимых в поля ввода диалоговой формы значений, добавлять элементы управления в диалоговую форму. Форматы представляют собой специальный символ (или пару символов) — признак поля, за которым следуют параметры.

Поля ввода

Можно использовать два варианта описания форматов полей ввода:

·С заданием формата ввода по маске

Пример:

&налог&&&&

заполнитель маски (то же, что и признак поля)

переменная

признак поля

·И, более полный, с числовым заданием длины полей ввода:

Пример:

для числа — минимальное значение (по умолчанию ограничения нет)

для числа — макимальное значение (по умолчанию ограничения нет)

&сумма:10:3:0:100

для числа — количество знаков после запятой (по умолчанию - сколько необходимо);

для строки — кол-во строк

общая ширина поля

переменная

признак поля

Замечание!

При вводе числовой переменной по маске количество знаков после запятой зависит от признака «Копейки» в закладке Отчеты пункта «Установка | Настройки» главного меню.

Существуют следующие признаки полей ввода различных типов данных (слева — признак поля, справа — тип переменной и вид поля ввода):

& | Число. Если число знаков после запятой — 0 или длина графы 1 или 2 символа, будет отображаться кнопка [image] , в противном случае справа будет кнопка вызова калькулятора [image] )
* | Строка
~ | Дата. Длина графы — 8 или 10 позиций в зависимости от опции четыре цифры в записи года)
~~ | Время. Длина графы — 10 позиций
$ | Логика. За именем переменной может следовать строка в скобках, определяющая текст опции. Переключение может осуществляться как при нажатии на саму опцию, так и при нажатии на текст.
^ | Код счета (строка, длина по умолчанию — 20 позиций) при заполнении такого поля можно пользоваться кнопкой выбора [image] для подстановки кода счета из плана счетов
^^ | Код счета без аналитик
** | Строка ввода пароля (вместо вводимых символов отображается зведочка)
*~ | Строка с возможностью вызова библиотечной функции с помощью кнопки выбора [image] . Подробнее о графе такого типа смотрите Графа с вызовом функции
*@ | Строка с возможностью подстановки значения из журнала с помощью кнопки выбора [image] . Подробнее о графе такого типа смотрите Графа с подстановкой поля журнала
*$ | Список (лист, радиогруппа) с перечислением значений (число) или множество. Подробнее о графе такого типа смотрите Графа с выбором из списка
*^ | Строка с возможностью подстановки значения из XML или DBF файла с помощью кнопки выбора [image] . Подробнее о графе такого типа смотрите Графа с выбором из XML и DBF

Сразу после формата может следовать ? (вопросительный знак). При его указании поведение графы изменяется следующим образом:

*? **? *~? | Разрешается строка любой длины. Без него вводимая строка не будет длиннее графы.
~? | Дата может быть пустой (для ввода такого значение поле очищается). Переменная в этом случае имеет значение НЕТ_ДАТЫ (или ПУСТО).
~~? | Время может быть пустым (для ввода такого значение поле очищается). Переменная в этом случае имеет значение ПУСТО.
^? | Разрешается ввод счета не последнего уровня
^^? | Разрешается ввод счета без аналитики не последнего уровня
*@? | Допускается, чтобы графа содержала пустую строку.
$? | Логика станет принимать три значения: НЕТ, ДА и ПУСТО. Последний вариант может трактоваться как «неопределенность выбора».

Для полей ввода число, дата и код счета может быть задана возможность вызова библиотечной функции с помощью кнопки выбора [image].

Примеры.

Поля ввода с заданием формата ввода по маске
&сумма&&& | ввод числа «сумма» (длина поля 9 символов)
*коммент************ | ввод строковой переменной «коммент» (длина поля — 20 символов)
Поля ввода с числовым заданием длины полей
&сумма:9:2 | ввод числовой переменной «сумма» (9 позиций, 2 знака после запятой)
*коммент:40 | ввод строковой переменной «коммент» (длина поля — 40 символов)
$Проверка("Выполнять проверку") | ввод переменной типа логика «проверка», справа будет текст "Выполнять проверку"
^счет | ввод строковой переменной кода счета «счет» (длина — 20 символов)
~нач_кв | ввод переменной «нач_кв» типа дата (длина всегда 8/10 позиций: дд.мм.гг/гггг, в зависимости от опции «Четыре цифры в записи года»)

Поля вывода и элементы управления

Также как и поля ввода, поля вывода могут задаваться двумя способами:

·С заданием формата вывода по маске:

Пример:

#сумма*налог/100#####

заполнитель маски

выражение произвольного типа

признак поля

·И, более полный, с числовым заданием длины полей вывода

Пример:

#сумма:10:3

для числа — количество знаков после запятой (по умолчанию — сколько необходимо);

общая ширина поля

выражение произвольного типа

признак поля

Внимание!

Выражения в графах вывода вычисляются в момент выполнения функции ВВЕСТИ.

Существуют следующие признаки полей вывода (слева — признак поля, справа — вид поля вывода):

# | Вывод результата вычисления произвольного выражения. Подробнее смотрите Поля вывода в диалоге
#? | Аналогично, но результат вычисления выводится в многострочную скроллируемую графу.
#& | Вывод содержимого HTML-файла
#&? | Вывод содержимого HTML-строки
#~ | Кнопка. Подробнее о кнопках смотрите Кнопка в диалоге
#@ | Таблица с выводом содержимого журнала или курсора. Подробнее о таблицах такого типа смотрите Таблица редактора журнала
#$ | Таблица с выводом содержимого массива. Подробнее о таблицах такого типа смотрите Таблица редактора массива
#^ | Таблица с выводом содержимого XML или DBF файла. Подробнее о таблицах такого типа смотрите Таблица редактора XML и DBF

Диалоги могут содержать одну или несколько закладок. Для этого используется ключевое слово ЗАКЛАДКА.

На общую линию вместе с кнопками <OK> и <Отмена> можно добавлять свои кнопки с помощью ключевого слова КНОПКА.

Для форматирования простого текста в диалоге операции могут использоваться символы

| | Для начала нового фрагмента текста
-- | Для отображения горизонтальной линии (длина >= 2 символов)
<...> | Для обозначения текста, выделенного жирным шрифтом
{...} | Для обозначения текста, выделенного наклонным шрифтом
` | Смещать по-вертикали последующие графы и текст


Поля вывода в форме

Форматы вывода

Поля вывода позволяют вывести значение переменной или результат вычисления выражения в типовой операции или диалоге. Частные случаи и примеры полей вывода можно посмотреть в общем описании форматов вывода. Общий же вид полей вывода задается следующей строкой:

для числа количество знаков после запятой (по умолчанию — сколько необходимо);

высота поля (по умолчанию - 1)

#сумма:шрифт:10:3:1

общая ширина поля

переменная типа ШРИФТдля задания шрифта графы (может быть пропущена)

переменная или выражение произвольного типа

признак поля

Параметр <шрифт> может быть пропущен. Остальные параметры не могут пропускаться, поэтому если, например, надо задать высоту графы вывода, то указывается и количество знаков после запятой, например 0.

Пример:

ОПЕРАЦИЯ Настройка шрифта

&размер:3:0 *$шрифт(["Arial","Times","Courier","Tahoma","Verdana"]):20

$полужирный("Полужирный") Пример

$наклонный("Наклонный") #строка:ш:40:0:3

$подчеркнутый("Подчеркнутый")

$зачеркнутый("Зачеркнутый")

ИЗМЕНЕНИЕ

ш ЭТО ШРИФТ

ш.размер = размер

ш.полужирный = полужирный

ш.подчеркнутый = подчеркнутый

ш.зачеркнутый = зачеркнутый

ш.наклонный = наклонный

ш.имя = СЛОВО(шрифт, "Arial;Times New Roman;Courier New;Tahoma; Verdana",";")

ш.цвет = цвСиний

ВЫЧИСЛИТЬ

размер = 20

строка = "Жили-были"

ВВЕСТИ

КОНЕЦ


Графа с вызовом функции

Для подстановки различных строковых значений в поля ввода бланка, типовой операции или диалога существует специальный тип графы. При нажатии на клавишу F2 или мышью на кнопку [image], происходит вызов указанной функции или диалога из указанной библиотеки.

В типовых операциях поле ввода с вызовом функции из библиотеки определяется следующей строкой:

*~<имя переменной>( <имя файла библиотеки>, <имя функции> [, <тип выбора>] )

за которой могут следовать символы * или описатель формата.

Заголовок функции для вызова из графы должен быть строго определенного вида:

ФУНКЦИЯ ЛОГИКА :<имя> (ПЕРЕМ СТРОКА : <строка>)

или

ДИАЛОГ <имя> (ПЕРЕМ СТРОКА : <строка>)

В качестве параметра-переменной <строка> передается текущее значение поля ввода. Действие после выхода из функции определяется возвращенным ей результатом. Если функция возвратила ДА, то в поле ввода подставляется значение параметра-переменной <строка>, а если функция возвратила НЕТ, то значение поля ввода остается без изменений.

Если указан параметр <тип выбора>, то графа изменяется на список, редактируемый список или листбокс.

выбРедактор

выбСписок

выбРедСписок

выбЛист

текстовая графа — этот вид будет по умолчанию

список

редактируемый список

листбокс

Замечание!

Список, редактируемый список или листбокс заполняются один раз при открытии диалога. Если по каким-то причинам список надо заполнить повторно, вызывается функция ОБНОВИТЬ_СПИСОК.

Пример:

имя функции

символы, определяющие длину поля

*~Назв("Ts_Main.lib","ВыборФирмы")***************

имя библиотеки функций

имя строковой переменной

описатель типа входного поля

а в библиотеке Ts_Main.lib функция ВыборФирмы описана, к примеру, так:

ФУНКЦИЯ ЛОГИКА: ВыборФирмы (ПЕРЕМ СТРОКА: код_фирмы)

ВыборФирмы = НЕТ // По умолчанию не выбрали

фильтр = клиенты.ФИЛЬТР

ЕСЛИ ВКЛ_КЛИЕНТ_АТРИБУТ ТО // Наложим дополнительное условие

фильтр.УСЛОВИЕ(атрибут = клиентФирма)

КОНЕЦ_ЕСЛИ

ЕСЛИ ВКЛ_ФИРМЫ ТО

ЕСЛИ ВЫБОР_ЗАПИСИ(клиенты: "фирмы", фильтр, "Наши фирмы") ТО

ВыборФирмы = ДА // Выбор был удачен - возвращаем ДА

код_фирмы = СТР(клиенты.код)

КОНЕЦ_ЕСЛИ

ИНАЧЕ

ВЫБРАТЬ клиенты.код код_фрм (фильтр)

код_фирмы = СТР(код_фрм) // Преобразуем к строке

ВыборФирмы = ДА // Выбор должен вернуть ДА

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Заголовок диалога для вызова из графы должен быть следующего вида:

ДИАЛОГ<имя> ( ПЕРЕМ СТРОКА :<строка>)

В качестве параметра-переменной <строка> передается текущее значение поля ввода. Если пользователь в диалоге нажал <OK>, то в поле ввода подставляется значение параметра-переменной <строка>, а если пользователь нажал <Отмена>, то значение поля ввода остается без изменений.

Если в процессе работы функции или диалога, обрабатывающих нажатие на кнопку, были изменены значения общих переменных и эти общие переменные используются в графах ввода или вывода диалога, произойдет обновление информации в таких графах.

Вызов функции может быть сделан не только у строковых полей, но также и у полей ввода числа, даты и кода счета. Синтаксис в этом случае такой:

&<имя переменной>(<имя файла библиотеки>, <имя функции>)
Число с возможностью вызова библиотечной функции

~<имя переменной>(<имя файла библиотеки>, <имя функции> )
Дата с возможностью вызова библиотечной функции

^<имя переменной>(<имя файла библиотеки>, <имя функции>)
Код счета с возможностью вызова библиотечной функции

У таких граф ввода полностью сохраняется присущие им свойства (у числа — контроль ввода числа, обработка разделителя разрядов, поведения точки, отделяющей дробную часть; у даты — обработка формата даты; у кода счета — контроль существования счета и т.д.). Но функция подстановки значения заменяется на вызов пользовательской функции или диалога.

Пример:

имя функции

длина поля

^Назв("OS.lib","ВыборСчетаОС"):20

имя библиотеки функций

имя строковой переменной

описатель типа входного поля (код счета)

Для того чтобы создать поле ввода с вызовом функции в бланке, необходимо создать графу. В параметрах графы задать тип ввода — функция, а в дополнительных параметрах — имя библиотеки и имя функции (диалога).

См. также
Графа с подстановкой поля журнала


Графа с выбором из XML и DBF

В типовых операциях и диалогах можно создавать вводные поля с подстановкой значения из внешнего XML или DBF файла. Вне зависимости от типа поля в файле, результат выбора подставляется в строковом виде.

Поле ввода с подстановкой из XML или DBF файла определяется следующей строкой:

*^<имя переменной>( <имя файла>, <имя поля> ),

за которой могут следовать символы * или описатель формата.

Пример:

Для иллюстрации воспользуемся базой данных People.dbf.

Тогда для подстановки фамилий и имен сотрудников в строковую переменную Сотр надо описать поле:

название поля, значение которого будет подставляться

символы, определяющие длину поля

*^Сотр ("PEOPLE", "FIO")***************

имя DBF-файла

имя строковой переменной

описатель типа входного поля

В заголовке окна выбора из базы данных при подстановке во входное поле будет находиться имя строковой переменной, а столбцы таблицы будут содержать все поля XML или DBF файла и называться в соответствии с именами полей.

См. также
Функция БД_ВЫБОР
Функция БД_РЕДАКТОР


Графа с подстановкой поля журнала

Для использования окна выбора из журнала при заполнении входных полей бланка, типовой операции или диалога существует графа с подстановкой поля журнала. При нажатии на клавишу F2 или мышью на кнопку [image], вызывается диалог выбора записи из указанного журнала аналитики, и значение указанного поля подставляется в графу.

В типовых операциях поле ввода с выбором из журнала определяется следующей строкой:

*@<имя переменной>( <идентификатор журнала>[:<вид>], <идентификатор поля>[:<поле-заменитель>] [,<тип выбора>] ),

за которой могут следовать символы * или описатель формата.

Замечание!

Поддерживается и старый синтаксис, когда <идентификатор журнала> и <идентификатор поля> заключены в двойные кавычки.

Здесь:

<идентификатор журнала>
идентификатор журнала, из которого происходит выбор

<вид>
при необходимости можно указать вид указанного журнала через двоеточие

<идентификатор поля>
поле журнала, значение которого будет подставляться в переменную

<поле-заменитель>
при необходимости можно указать поле, отображаемое в диалоге

Если указан параметр <тип выбора>, то графа изменяется на список, редактируемый список или листбокс.

выбРедактор

выбСписок

выбРедСписок

выбЛист

текстовая графа — этот вид будет по умолчанию

список

редактируемый список

листбокс

Пример:

Для иллюстрации воспользуемся журналом товары, который имеет поле код. Тогда для подстановки кода товара в строковую переменную Код надо описать поле:

идентификатор поля

символы, определяющие длину поля

*@Код (товары,код)***************

идентификатор журнала

имя строковой переменной

описатель типа входного поля

Для того чтобы в бланке создать поле ввода с выбором из журнала, необходимо создать графу. В параметрах графы задать тип ввода — поле журнала, а в дополнительных параметрах — идентификатор журнала и поля.


Графа с выбором из списка

При необходимости выбора из списка вариантов в бланке, типовой операции или диалоге можно воспользоваться соответствующей графой. Список может задаваться здесь же при помощи перечисления возможных значений, либо с указанием множества для выбора элемента множества.

Выбор из списка вариантов. В типовых операциях поле ввода с выбором из списка вариантов определяется следующей строкой:

*$<имя переменной>( [<вариант1> [,<вариант2> [,...]]] [, <тип выбора> [, <заголовок>] ] ),

за которой могут следовать символы * или описатель формата, например, ширина и высота графы. По умолчанию ширина равна самому широкому значению варианта. Переменная <имя переменной> должно иметь тип число. Через него передается номер выбранного варианта.

Необязательный параметр <тип выбора> задает тип графы выбора. Оно может иметь следующие значения:

выбСписок

выбРадио

выбРадиоГор

выбЛист

выбор из списка вариантов (комбобокс) — этот вид графы будет по умолчанию

радиогруппа, варианты выбора по-вертикали

радиогруппа, варианты выбора по-горизонтали

листбокс

Для вариантов выбРадио и выбРадиоГор может дополнительно указываться параметр <заголовок> — он задает заголовок группы.

Пример:

формат, определяющий длину поля

*$детал ( ["День", "Неделя", "Месяц", "Квартал"] ):15

варианты, из которых будет выбор

имя переменной типа множество или строка

описатель типа входного поля

При открытии диалога поле ввода будет содержать значение по умолчанию "День" (если переменной детал не будет присвоено другое значение перед ВВЕСТИ).

Для того чтобы в бланке создать поле ввода выбором из списка, необходимо создать графу. В параметрах графы задать тип ввода — множество, в первом дополнительном параметре указать пустую строк, а во втором — список вариантов.

Выбор элемента множества. В типовых операциях поле ввода с выбором элемента множества определяется следующей строкой:

*$<имя переменной>( <значение множества> [, <тип выбора> [, <заголовок>] ] ),

за которой могут следовать символы * или описатель формата, например, ширина и высота графы. По умолчанию ширина равна самому широкому значению элемента множества. Здесь по <значение множества> программе сообщается, элемент какого множества надо выбирать и какое значение поле должно иметь по умолчанию. Переменная <имя переменной> должно иметь тип множество или строка.

Необязательный параметр <тип выбора> задает тип графы выбора. Оно может иметь следующие значения:

выбСписок

выбРадио

выбРадиоГор

выбЛист

выбор из списка вариантов (комбобокс) — этот вид графы будет по умолчанию

радиогруппа, варианты выбора по-вертикали

радиогруппа, варианты выбора по-горизонтали

листбокс

Для вариантов выбРадио и выбРадиоГор может дополнительно указываться параметр <заголовок> — он задает заголовок группы.

Пример:

Пусть имеется множество ндс, оно имеет следующие значения:

ндсВТомЧисле "НДС в том числе",

ндсПлюс "Плюс НДС",

ндсБез "Без НДС".

Тогда для выбора значения множества надо описать поле:

символы, определяющие длину поля

*$ндс (ндсВТомЧисле)***************

элемент множества

имя переменной типа множество или строка

описатель типа входного поля

При открытии диалога поле ввода будет содержать значение по умолчанию "НДС в том числе" (если переменной ндс не будет присвоено другое значение перед ВВЕСТИ)

Для того чтобы создать поле ввода с выбором элемента множества в бланке, необходимо создать графу. В параметрах графы задать тип ввода — множество, а в дополнительных параметрах — идентификатор множества и значение по умолчанию.


Кнопка в диалоге

Кнопки предназначены для организации интерфейса пользователя при работе с типовой операцией или диалогом. При нажатии на кнопку, происходит вызов указанной функции или диалога из указанной библиотеки. Кнопку можно создать внутри диалога и на линии кнопок <OK> и <Отмена>.

Кнопка внутри диалога

В типовых операциях кнопка задается следующей строкой:

#~<текст кнопки>( <имя файла библиотеки>, <имя функции или диалога> )

за которой могут следовать символы # или описатель формата. Если ни описателя формата, ни символов # нет, ширина кнопки устанавливается по ширине текста кнопки.

Заголовок функции для вызова должен быть строго определенного вида:

ФУНКЦИЯ ЛОГИКА :<имя> ( ПЕРЕМ СТРОКА :<строка>)

В качестве параметра-переменной <строка> передается текст кнопки. Если функция возвратила ДА и параметр <строка> изменился, изменится и текст кнопки.

Заголовок диалога для вызова из графы должен быть следующего вида:

ДИАЛОГ<имя> ( ПЕРЕМ СТРОКА :<строка>)

В качестве параметра-переменной <строка> передается текст кнопки. Если пользователь в диалоге нажал <OK> и параметр <строка> изменился, изменится и текст кнопки.

Пример:

имя функции

#~Провести в бухгалтерии("Ts_Main.lib","Проводки")

имя библиотеки функций

текст кнопки

описатель типа входного поля

а в библиотеке Ts_Main.lib функция Проводки описана, к примеру, так:

ФУНКЦИЯ ЛОГИКА: Проводки(ПЕРЕМ СТРОКА: с)

ЕСЛИ сумОпер = 0 ТО

СООБЩЕНИЕ("Введите сумму")

ИНАЧЕ

ПРОВОДКА("51", "62", сумОпер)

КОНЕЦ_ЕСЛИ

ЗАП_ОПЕР // Добавим проводки

Проводки = ДА

КОНЕЦ_ФУНКЦИИ

Если в процессе работы функции или диалога, обрабатывающих нажатие на кнопку, были изменены значения общих переменных и эти общие переменные используются в графах ввода или вывода диалога, произойдет обновление информации в таких графах.

Кнопка на линии кнопок ОК и Отмена

Другим способом создать кнопку в диалоге является использование ключевого слова КНОПКА. Кнопка, создаваемая таким способом, располагается на общей линии вместе с кнопками <OK> и <Отмена> в диалоге. Синтаксис ключевого слова КНОПКА (оно должно быть в начале строки):

КНОПКА <текст кнопки> ( <имя файла библиотеки>, <имя функции или диалога> )

Синтаксис функции и порядок её работы точно такой же, как при создании кнопки внутри диалога.

Пример:

ДИАЛОГ Настройки

.....................................поля..ввода..................................................

имя функции

КНОПКА По умолчанию("Ts_Main.lib","ПоУмолчанию")

имя библиотеки функций

текст кнопки

КОНЕЦ_ДИАЛОГА

См.также
Кнопка в бланке


Графа с текстом HTML

Выводная графа с текстом HTML позволяет выводить содержимое HTML-файла или HTML-строки в нужной части типовой операцией или диалога. Такая веб-страница может содержать гиперссылки с вызовами библиотечных функций или встроенных функций.

Замечание!

Библиотечные функции, вызываемые из гипертекстового файла, никак не связаны с основным алгоритмом. В них не видны ни локальные, ни общие переменные основного алгоритма (но могут быть видны глобальные переменные).

Замечание!

Для граф с HTML-строкой после вызова функций из гипертекстового файла происходит вызов секции ИЗМЕНЕНИЕ диалога (если таковая есть). Если внутри секции произойдет изменение HTML-строки, графа перерисуется. Для граф с HTML-файлом это не действует.

Вывод содержимого HTML-файла

Задается следующей строкой:

#&<путь к файлу>

за которой могут следовать символы # или описатель формата. Если ни описателя формата, ни символов # нет, ширина графы устанавливается по ширине текста. Путь к файлу — строковое выражение. Путь может быть абсолютный. Если путь относительный, предполагается, что файл располагается внутри базы данных, в каталоге db:\html.

После добавления графы с выводом файла текст диалога заменяется на белый. Если этого не нужно, используйте вывод HTML-строки (см.ниже).

Пример:

#&"start_setup_buh.htm"
#&файл_заставки

Вывод содержимого HTML-строки

Задается следующей строкой:

#&?<строка>

за которой могут следовать символы # или описатель формата. Если ни описателя формата, ни символов # нет, ширина графы устанавливается по ширине текста.

Содержимое строки не обязательно должно начинаться с тега "<html>". Если тег не указан, программа добавит его автоматически.

Пример:

#&?"<b>И</b>нфо-<b>П</b>редприятие"
#&?строка_гипертекста

См.также
Веб-страницы


Таблица редактора журнала

Для добавления таблицы редактора журнала или курсора в типовую операциюили диалог существует специальное описание:

#@( <переменная>[,<вид журнала>[,<вид диалога>]] ):<ширина>:<высота>

где:

<переменная>
переменная типа ЖУРНАЛ или КУРСОР, по которой определяется, из какого журнала или курсора происходит выбор.

<вид журнала>
строковая константа, задает вид журнала (если журнал имеет несколько видов)

<вид диалога>
строковая константа, задает вид диалога редактирования записи (если журнал имеет несколько видов)

<ширина>
ширина таблицы (по умолчанию равна ширине диалога)

<высота>
высота таблица (по умолчанию 5)

Параметр <вид журнала> указывается только для редактора журнала. Параметр <вид диалога> может быть указан, как для редактора журнала, так и для редактора курсора. В последнем случае оно используется для редактируемых курсоров. Если журнал, по которому построен курсор, имеет несколько видов, то указанный здесь вид будет использован для диалога редактирования записи курсора.

Пример:

Следующий пример создает диалог с таблицей, построенной по курсору и содержащей колонки: Дата, Док, Дебет, Кредит и Сумма, полученные из журнала бухгалтерских операций.

ДИАЛОГ Таблица

#@(кур):72:10

ВЫЧИСЛИТЬ

КУРСОР кур ПО ЖУРНАЛУ

бухоперации.дата:"Дата", бухоперации.документ:"Док",

бухпроводки[дебет,кредит,сумма] п

ВВЕСТИ

КОНЕЦ_ДИАЛОГА

См.также
ВЫБОР_ЗАПИСИ
Графа с подстановкой поля журнала


Таблица редактора массива

Для добавления таблицы редактора массива в типовую операцию или диалог существует специальное описание:

#$[<имя переменной>] (<массив> [:<множественный выбор>] [,<заголовок колонки>[,<редактирование>[,<добавление>
[,<удаление>[,<выбор записи>] ] ] ] ] ):<ширина>:<высота>

где:

<имя переменной>
необязательный параметр, переменная, которая содержит текущий номер записи

<массив>
массив, из которого происходит выбор

<множественный выбор>
логический массив, при указании которого появляется возможность множественного выбора

<заголовок колонки>
дополнительный заголовок колонки

<редактирование>
разрешить редактирование элементов массива

<добавление>
разрешить добавление элементов в массив

<удаление>
разрешить удаление элементов из массива

<выбор записи>
если указано ДА, нажатие на <Enter> в диалоге приводит к вызову диалога редактирования элемента. Если указано НЕТ (по умолчанию), нажатие на <Enter> означает выбор записи.

<ширина>
ширина таблицы (по умолчанию равна ширине диалога)

<высота>
высота таблица (по умолчанию 5)

Подробнее о работе с такой таблицей.

Пример:

Следующий пример создает диалог с таблицей, построенной по массиву и содержащей колонки: Месяц и Сумма.

ДИАЛОГ Выручка

<Выручка по месяцам>

#$(сс,"Месяц|Сумма:12:2"):40:12

ВЫЧИСЛИТЬ

ЦИКЛ ДЛЯ (и=1,12)

сс!и = МЕСП(и) + "|" + СТР(ОБК("90", ДАТА(1, и, ГОД), ДАТА(1, и + 1, ГОД)))

КОНЕЦ_ЦИКЛА

ВВЕСТИ

КОНЕЦ_ДИАЛОГА

См.также
ВЫБОР
Графа с выбором из списка


Таблица редактора XML и DBF

Для добавления таблицы редактора XML или DBF файла в типовую операцию или диалог существует специальное описание:

#^ [ ( [<имя объекта>,] [<заголовок>,]

[ [%] [<имя поля 1> [:<название 1> [:<длина 1>] ] ] [, ... ] ] ]

[,<редактирование> [,<добавление> [,<удаление> ] ] ] ) ]:<ширина>:<высота>

где:

<имя объекта>
идентификатор объекта БД

%
указанное поле имеет атрибут "Только для чтения";

<имя поля n>
имя n-го поля;

<название n>
название n-го поля в таблице;

<длина n>
длина n-го поля в таблице;

<редактирование>
выражение логического типа, разрешающее редактировать значения полей записей базы данных по клавише F4 (по умолчанию ДА)

<добавление>
выражение логического типа, разрешающее добавлять новые записи в базу данных (по умолчанию ДА);

<удаление>
выражение логического типа, разрешающее удалять записи из базы данных (по умолчанию ДА).

<ширина>
ширина таблицы (по умолчанию равна ширине диалога)

<высота>
высота таблица (по умолчанию 5)

См. подробнее о работе с такой таблицей.

Пример:

Следующий пример создает диалог с таблицей, построенной по массиву и содержащей колонки: Месяц и Сумма.

ДИАЛОГ Таблица

#^(ДА,ДА,ДА):100:10

ВЫЧИСЛИТЬ

БД_СОЗДАТЬ("TEMP")

БД_ПОЛЕ("Число",1,8,2)

БД_ПОЛЕ("Строка","",100)

БД_ПОЛЕ("Дата",ДАТА_ТЕК)

ВВЕСТИ

КОНЕЦ_ДИАЛОГА

См.также
БД_РЕДАКТОР
Графа с выбором из XML и DBF


Пример типовой операции

Алгоритм типовой операции (пример)

 Вернуться к началу раздела

Приведем текст алгоритма типовой операции из примера:

ОПЕРАЦИЯ ЖУРНАЛА Материалы : приобретение

Счет материала: ^счетМатериала

Счет поставщика: ^счетПоставщика

Счет оплаты: ^счетОплаты

количество

(для кол—сум учета): &колич:10

Сумма (с НДС и НСП): &сумОпер&&&&&&&&

в том числе

НДС: *$ставкаНДС(["18","10","Без НДС"])

Документ: *пн*****

Дата: ~датаОпер

ВЫЧИСЛИТЬ

счетМатериала="10/"

счетПоставщика="60/"

счетОплаты="51"

пн="нак "

ВВЕСТИ

ндс = ЗНАЧ(СЛОВО(ставкаНДС,"18 10 0"))

сндс = сумОпер * ндс/(100 + ндс)

ПРОВОДКА(счетПоставщика,счетОплаты,сумОпер,пн,датаОпер,"Покупка: "+НАЗВ(счетМатериала),

"/ "+НАЗВ(счетПоставщика))

ПРОВОДКА(счетМатериала,счетПоставщика,сумОпер-сндс,колич)

ПРОВОДКА("19/"+ПОДСЧ(счетМатериала,1),счетПоставщика,сндс)

ПРОВОДКА("68/НДС","19/"+ПОДСЧ(счетМатериала,1),сндс)

КОНЕЦ

Здесь после слова ОПЕРАЦИЯ идет название операции. Следующие строчки вплоть до строки ВЫЧИСЛИТЬ это шаблоны полей ввода — именно эта часть типовой операции определяет внешний вид диалога параметров.

После слова ВЫЧИСЛИТЬ и до слова ВВЕСТИ — так называемая предрасчетная часть. Она выполняется перед тем как диалог с параметрами появится на экране. Именно из-за этой части поля в диалоге были уже заполнены значениями.

От ВВЕСТИ и до слова КОНЕЦ — находится основной алгоритм расчета операции. Именно здесь программа вычисляет различные суммы, выделяет налоги и, затем, делает проводки, используя функцию ПРОВОДКА.

См.также
Работа с таблицами
Ключевые слова и функции от А до Я
Структура библиотеки типовых операций
Создание типовой операции на основе существующей


Журналы аналитики

Для организации различных форм учета предприятия, создания конфигураций, в полной мере отражающих специфику работы фирмы в программе Инфо-Предприятие есть возможность создавать собственные справочники и журналы. Такие справочники и журналы называются журналами аналитики. В отличие от бухгалтерского журнала операций, состоящего из бухгалтерских проводок, операции этих журналов служат для контроля и анализа внутрихозяйственной деятельности предприятия не связанной напрямую с бухгалтерией.

Журналы аналитики в Инфо-Предприятии делятся на три группы: журналы-таблицы, журналы-представления и журналы-процедуры. Только журналы-таблицы могут создаваться и редактироваться непосредственно в самой программе Инфо-Предприятие. Другие типы журналов создаются и редактируются внешними программами при разработке серверной части прикладной конфигурации.

Журналы-таблицы. Такие журналы аналитики представляют собой линейные таблицы. Структура таких таблиц может изменяться в процессе работы, могут добавляться новые поля и атрибуты или удаляться существующие. При этом модификация структуры журнала происходит без модификации алгоритмов, отчетов и бланков программы, что придает конфигурации с использованием журнала должную степень гибкости. Данные, находящиеся в структуре журнала при этом не теряются, так что изменение структуры данных можно делать «на ходу», в процессе непосредственной работы программы.

Журналы-представления. Создаются из склейки данных нескольких таблиц. Получившийся журнал имеет поля, соответствующие полям тех таблиц, из которых представление выбирает данные. Журналы-представления могут быть модифицируемыми или нет, в зависимости от того, является ли модифицируемым соответствующее представление.

Журналы-процедуры. Получаются на основе алгоритма (процедуры), работающего на сервере. Получившийся журнал имеет поля, соответствующие результату, возвращаемому процедурой. Журналы-процедуры могут иметь входные параметры, которые указываются каждый раз, когда с ним начинают работать.

Замечание!

Типы журналов соответствуют типам объектов в SQL-сервере, журналы-таблицы получаются из таблиц на сервере (TABLE), журналы-представления из представлений на сервере (VIEW), а журналы-процедуры из хранимых процедур (PROCEDURE)

Программа может иметь неограниченное кол-во журналов, журнал, в свою очередь, может иметь неограниченное количество полей. Список журналов задается в конфигурации, а для доступа к журналам аналитики применяется объект ЖУРНАЛ.

На основе журналов могут выписываться первичные документы, получаться отчеты и выходные формы. В комбинации с ЦИКЛом ПО ЖУРНАЛУ по записям, введенным в журнал можно получать любые необходимые отчеты в любом разрезе, производить анализ данных. Журналы-справочники могут выступать в роли аналитик счетов бухгалтерского учета.

Журналы могут быть связаны друг с другом. Эта связь определяется наличием в одном журнале поля с подстановкой значения из другого журнала (ссылочная целостность). Связь может быть обязательно или нет. Если связь обязательная, то для любой записи первого журнала указанное поле должно ссылаться на поле из второго журнала. Если связь необязательная, поле может содержать и пустое значение также. Связь однозначно контролируется на уровне сервера и управляется программой (для таблиц, созданных при помощи внешних программ, при удалении или изменении кода объекта, на который ссылается запись, реакция может быть различной: может происходить каскадное удаление или изменение всех записей, ссылающихся на объект или удаление ссылок на него).

Пример1.

Журнал накладных имеет поле клиент. Оно подставляется из справочника клиентов. Не может быть накладной с неуказанным клиентом. Программа контролирует различные аспекты этой связи: будет требовать указания клиента при вводе накладной, а при попытке удалить клиента, которому выписывались накладные предлагать перенести накладные на другого клиента либо удалить их.

Пример2.

Журнал накладных имеет поле договор. Оно ссылается на справочник договоров. При отгрузке товара оно может ссылаться на конкретный договор или быть пустым (когда отгрузка идет без заключения договора). Если договор указан, программа будет также контролировать связь, как и в первом примере. Если договор не указан, никакой связи нет, и никаких проверок не делается.

Журналы-представления строятся на основе других таблиц. Это может быть одна или несколько таблиц. Включаемые в выборку поля этих таблиц могут иметь ссылки на какие-либо другие таблицы. Программа будет считать такие поля журналов-представлений полями с подстановкой значения из журналов, на таблицы которых ссылаются эти поля. Более того, это относится не только к таблицам, но и к представлениям. Получается, что поля журналов-представлений могут ссылаться на значения полей других журналов-представлений. Таким образом, описывая ссылочную целостность для журналов-таблиц, Вы получаете и ссылочную целостность и для представлений.

Вид диалога и поведение его в процессе ввода и редактирования записи определяется на основе работы обработчиков. Они представляют собой библиотечные методы объекта ЖУРНАЛ, которые выполняются программой каждый раз, когда пользователь выполняет какие-либо действия. Например, обработчик перед удалением срабатывает, когда пользователь пытается удалить запись данного журнала.

Поля журнала с подстановкой значения в диалогах имеют кнопку [image] слева. С помощью нее или нажав клавишу <F2>, пользователь может выбирать значения поля из соответствующего журнала.

Может получиться так, что поле ссылается на несколько журналов. Такое получается при использовании журналов-представлений в следующих случаях:

·Существует журнал-представление, построенный на основе таблицы, которая также подключена как журнал.

·Два и более журнала-представления, использующие одну и ту же таблицу, подключены как журналы.

В этом случае, если исходный журнал имеет поле с подстановкой из этой таблицы, получается, что для него возможна и подстановка из журнала-представления. В программе предусмотрена следующая логика работы в данной ситуации: если имеется журнал-таблица, из которого можно подставлять значение, отдается предпочтение ему. Если же выбор возможен только из журналов-представлений, рекомендуется написать обработчик при выборе значения для соответствующего поля.

При отображении в диалогах журналы могут разбиваться на основные и подчиненные. Понятие подчиненности определяется тем, что одна или несколько записей одного журнала должны быть привязаны к записи другого. Эта связь определяется наличием в подчиненном журнале поля с подстановкой значения из основного журнала. В программе связи основной — подчиненный могут быть любыми. Журнал может иметь несколько подчиненных и быть подчинен нескольким основным, любой подчиненный журнал может иметь другой подподчиненный журнал и т.д.

Пример.

Строки накладных имеют ссылку на журнал накладных. При отображении накладной отображаются ее строки. У каждой накладной есть ее номер, дата, основание, контрагент и др., а у товаров в накладной есть поля наименование, количество, цена и др. Накладная, как запись основного журнала, может содержать товары по накладной — подчиненные записи журнала детализации.

При отображении в диалоге подчиненный журнал отображается в виде таблицы детализации к основной записи. Пользователь редактирует эту таблицу (или несколько таблиц, если детализаций несколько).

См. также
Редактирование журнала аналитики
Настройка журналов
Функции журналов
Журнал документов


Настройка журналов

Для редактирования списка журналов аналитики и редактирования их структуры нужно войти в пункт меню «Разработка | Журналы аналитики». В появившейся таблице будет отображены все журналы, описанные в программе. Иконка слева от журналов показывает, к какому типу относится тот или иной журнал:

— для журналов-таблиц

— для журналов-представлений

— для журналов-процедур

Также, для удобства, журналы могут быть разбиты на закладки по типам журналов: Таблицы, Представления и Процедуры. Колонки в таблице показывают название журнала, его идентификатор (код) и объект базы данных, который представляет журнал: таблицу, представление или процедуру.

В списке журналов можно выполнять следующие операции:

Добавление журнала — происходит при добавлении записи в таблицу. После чего появится диалог подключения журнала. Из указанного диалога для журналов-таблиц возможно также создания нового журнала. После описания параметров и структуры журнала и нажатия <OK> он будет создан и добавлен в таблицу.

Удаление журнала — происходит при удалении записи из таблицы. Перед удалением журнала появится подтверждение: Удалить журнал такой-то ?. Нажмите Да для удаления.

Удаление журнала означает удаление его из списка. Сам объект базы данных остается, но не используется программой. Его можно будет подключить потом.

Редактирование структуры журнала — происходит при редактировании записи таблицы. Появится диалог изменения структуры журнала, где можно изменить структуру и атрибуты журнала.

Настройка функций журнала — вызывается при нажатии <Ctrl>+<Shift>+<Enter> на выбранном журнале. На экране появится окно функций журнала, где задаются такие параметры, как видимость и доступность колонок, заголовки и отображения диалогов и проч.

Настроить права доступа — выбор одноименного пункта меню позволяет настроить права доступа к журналу в разрезе возможностей.

Настроить лицензии — пункт меню для разработчиков собственных конфигураций (модулей), позволяет настроить доступ к журналу при наличии конкретной лицензии, прошитой на электронном ключе.

Показывать журналы документов — при выборе пункта меню Журналы документов к списку журналов аналитики добавятся журналы документов. Пункт действует как переключатель — повторное нажатие уберет их.

Показывать недоступные журналы — при выборе пункта меню Недоступные журналы к списку журналов аналитики добавятся те, которые недоступны в данной версии программы (только для версии Стандарт). Пункт действует как переключатель — повторное нажатие уберет их.

Просмотр — вызывается при нажатии <Ctrl>+<F2> на выбранном журнале. На экране появится окно редактирования данных выбранного журнала.

В дополнение к журналам из списка, в программе из внутреннего языка доступны системные журналы:

бухоперации — для доступа к таблице бухгалтерских операций

бухпроводки — для доступа к таблице проводок.

бухобороты — для прямого доступа к оборотам.

и журналы документов, построенные на основе соответствующих бланков документов.

Для того чтобы просмотреть содержимое получившегося журнала, надо нажать клавишу <Ctrl>+<F2>, после чего откроется окно редактирования журнала. В дальнейшем вызов журнала лучше добавить в главное меню, откуда его будут вызывать пользователи.

В версии Стандарт отключенные журналы выделяются синим, справа от них пишется Выкл. Журналы, недоступные в данной версии программы, в случае если включена опция Показать недоступные журналы, отображаются серым. В строке статуса отображается количество журналов, которые можно еще добавить в программу. Например: Осталось добавить: 5. Если в процессе редактирования списка журналов произошел выход за ограничения лицензии, в строке статуса отображается причина выхода, например: Количество журналов 56 больше 55 — максимально допустимого в данной версии программы.


Подключение журнала

Здесь можно подключить журнал для использования его в программе. В зависимости от того, на какой закладке Вы находились, программа предложит разные источники данных для журнала:

Если на закладке Таблицы, программа выдаст список доступных в базе данных таблиц (TABLE).

Если на закладке Представления, программа выдаст список доступных в базе данных представлений (VIEW).

Если на закладке Процедуры, программа выдаст список доступных в базе данных процедур (PROCEDURE).

В таблице показывается имя объекта и его описание. Нажатие кнопки Выбрать подключает выбранный журнал. После подключения журнала программа добавит в список журнал с именем, совпадающим с именем объекта и названием, совпадающим с его описанием. Вы можете зайти в него для корректировки имени журнала и списка его полей. При этом все поля журнала выделяются красным. Для них необходимо задать название и, если они будут обрабатываться средствами внутреннего языка, идентификатор. После того как они будут отредактированы, они примут обычный цвет.

Для журналов-таблиц возможно создание нового журнала. Для этого нажмите кнопку Создать новый. Появится диалог создания структуры журнала.

См. также
Журналы аналитики


Изменение структуры

Изменение/создание структуры журнала

В диалоге настройки журнала можно установить основные параметры, такие как название журнала, его идентификатор и файл, а также список полей этого журнала.

Название — задает название (имя) журнала и будет появляться в заголовке окна редактора журнала и т.д..

Название раздела — необязательный параметр. Позволяет отнести журнал к какой-либо группе журналов (разделу) для удобства разработчика конфигурации. Название раздела отображается при настройке меню, при настройке доступа к журналам и т.д.

Идентификатор — определяет уникальное имя журнала. Он может иметь длину до 31 символа и должен быть правильным идентификатором с точки зрения внутреннего языка. Идентификатор будет именем переменной типа ЖУРНАЛ, через которую он станет доступным из внутреннего языка.

Таблица/Представление/Процедура — отображает имя объекта в базе данных, который использует журнал.

Поля — задает список полей журнала. Для журналов-таблиц список полей может изменяться: могут добавляться новые поля, удаляться и изменяться существующие.

Внимание!

Любые изменение структуры журнала можно делать только в монопольном режиме, когда с базой данных не работают другие пользователи. При попытке изменять структуру существующих журналов в момент, когда с ними работают пользователи, будет выдаваться сообщение Ошибка создания/изменения структуры журнала. Это же сообщение может выдаваться и в других случаях.

Поля нового журнала, как и вообще все новые поля, добавленные программой самостоятельно либо внешней программой, выделяются красным. После того как они будут отредактированы, они примут обычный цвет.

В списке полей можно выполнить следующие действия:

Редактирование поля — происходит при нажатии <Enter>, <F4>, выборе пункта меню «Правка | Изменить» или щелчке левой кнопкой мыши по выбранной записи в таблице. При этом появится диалог редактирования поля.

Для журналов-таблиц в списке полей можно выполнить дополнительно следующие действия:

Добавление нового поля — выполняется при добавлении записи в таблицу. После чего появится диалог редактирования поля. После ввода данных и нажатия <OK> оно добавляется в список.

Удаление поля — происходит при удалении записи из таблицы. Перед удалением поля появится подтверждение: Удалить поле такое-то ?. Нажмите Да для удаления.

Подсветка — позволяет задать подсветку для конкретных полей. Подсветка задается выражением, наподобие того, что используется при редактировании поля типа поле-выражение при редактировании журнала.

Редактирование подсветки — происходит при нажатии <Enter>, <F4>, выборе пункта меню «Правка | Изменить» или щелчке левой кнопкой мыши по выбранной записи в таблице. При этом появится диалог редактирования подсветки.

Добавление подсветки — выполняется при добавлении записи в таблицу. После чего появится диалог редактирования подсветки. После ввода данных и нажатия <OK> подсветка добавляется в список.

Удаление подсветки — происходит при удалении записи из таблицы. Перед удалением поля появится подтверждение: Удалить поле такое-то ?. Нажмите Да для удаления.

См. также
Журналы аналитики
Объекты


Редактирование поля

Здесь задается идентификатор поля, его название, тип и значение по умолчанию, которое будет устанавливаться для всех новых записей в этом журнале.

Заголовок колонки|Подпись в диалоге — задает название поля. Оно будет появляться в диалогах и заголовках колонок таблиц. Чтобы в заголовках колонок и диалогах показывались разные названия, надо занести их оба, разделив вертикальной чертой "|". Например, если здесь указано "Накл|Номер накладной", то в таблицах название колонки будет "Накл", а в диалогах название поля "Номер накладной".

Идентификатор — определяет уникальный (в пределах этого журнала) код поля. Он должен быть правильным идентификатором с точки зрения внутреннего языка и иметь длину до 31 символа.

Поле — информация о поле в базе данных. Лукап-поля и поля-выражения в базе данных не хранятся.

Тип поля (при добавлении нового поля) — задает тип поля, его можно выбрать из следующих значений:

·строка — делает произвольное строковое поле. В поле Длина указывается его длина. Длина должна быть числом в диапазоне от 1 до 16384.

·дата — создает поле типа дата. Программа обрабатывает даты в период от 01.01.1900 до 31.12.2078. По умолчанию может быть задана текущая или пустая дата.

·время — создает поле типа время. По умолчанию может быть задано текущее время или пустое значение.

·целый — определяет число, принимающее только целые значения. Используйте его там, где заведомо будут только целые величины.

·малый целый — тоже целый, но ограниченный по значениям.

·число — число ( не только целое ), в графе Точность можно указать число знаков после запятой в числе. Точность не может превышать точность фактического формата данных в таблице.

·логика — предназначено для хранения логического значения (ДА или НЕТ)

·счет — строковое поле со выбором значения из плана счетов и контролем ссылочной целостности

·код аналитики — строковое поле для создания уникального поля с кодом аналитики (для справочников, которые будут использоваться в качестве аналитических признаков)

·множество — определяет строковое поле с выбором из списка вариантов.

·гуид — определяет строковое поле с уникальным идентификатором.

·большая строка — строка, не ограниченная по длине.

·поле журнала — определяет поле, ссылающееся на поле другого журнала. Необходимо указать поле и журнал, на которое оно ссылается. Ссылаться можно только на ключевые поля (они помечается знаком [image]). Тип такого поля и значение по умолчанию определяются по типу поля, на которое оно ссылается.

·вычислимое поле, лукап-поле — если журнал содержит хотя бы одно поле журнала, то он может содержать одно или несколько вычислимых или лукап-полей. Они отображают значения других (не ключевых) полей записи, на которую ссылается существующее в структуре поле журнала. Такие поля доступны только на чтение. Отличие вычислимых полей от лукап-полей в том, что первые создаются в структуре таблицы не сервере, а вторые нет. Вычислимые поля, в отличие от лукап-полей могут быть использованы внутри триггеров, хранимых процедур и представлений на сервере.

·поле-выражение — позволяет задать выражение, результат расчета которого будет отображаться в этом поле. Внутри такого выражения можно использовать поля этого журнала (без указания идентификатора или используя СВОЕ) или выражение с ВЫБРАТЬ.

·название счета вычислимое, название счета лукап — аналоги вычислимых и лукап-полей для счета. Если журнал содержит хотя бы одно поле счет, то он может содержать поле название счета, в котором отображается название этого счета.

·аналитика счета — дополнительное вычислимое поле для счета. Если журнал содержит хотя бы одно поле счет, то он может содержать поле аналитика счета, с помощью которого можно получать дополнительные атрибуты аналитики счета. Например, если поле типа счет используется для указания счета товара, то в таком вычислимом поле можно выводить артикул или цену из карточки товара.

Поля: вычислимое поле, лукап-поле, поле-выражение, название счета вычислимое, название счета лукап, аналитика счета — предназначены только для просмотра, отображения каких-либо значений в таблице и редакторе записи журнала. Они не содержат данных, а лукап-поля и поля-выражения еще и не хранятся в базе данных.

В зависимости от типа поля могут появляться дополнительные графы:

По умолчанию — определяет значение по умолчанию для вновь созданной записи этого журнала. В процессе расчетов значение по умолчанию можно изменять из внутреннего языка при помощи метода СОХРАНИТЬ объекта ЖУРНАЛ.

Поле журнала — для типа поле журнала задается то поле журнала, на которое ссылается данное.

Для полей типа поле журнала контролируется логическая целостность данных. Это значит, что при удалении или изменении кода связанной записи журнала она предложит перенести или удалить записи, у которых используется связанный объект. Например, при удалении клиента программа предложит удалить накладные от этого клиента или перенести их на другого.
Пользователь при редактировании данных в поле журнала может воспользоваться кнопкой выбора [image] для подстановки значения из связанного журнала. Также такое поле может иметь вид списка или редактируемого списка. Вид выбора настраивается в функциях журнала.

Не только поля журналов-таблиц могут ссылаться на значения других журналов-таблиц, но и:

·Журналы-таблицы могут ссылаться на журнал-представление, если представление получается выборкой записей из таблицы, на которую ссылается исходная таблица.

·Журналы-представления могут ссылаться на журнал-таблицу, если представление получается выборкой записей из таблицы, имеющей ссылку.

·Журналы-представления могут ссылаться на журнал-представление, если представление получается выборкой записей из таблицы, имеющей ссылку на другую таблицу, участвующую в том журнале-представлении.

Если в программе в качестве журнала аналитики подключена и таблица, и представление, построенное из нее, приоритет при подстановке значения отдается представлению. Если такое поведение не удовлетворяет, создайте обработчик При выборе значения.

С помощью опции Удалять автоматом, молча — можно установить реакцию программы на удаление записи,.на которую ссылается поле. Если опция не активна, при удалении записи будет выдаваться диалог замены ссылок в операциях и пользователь может определить самостоятельно, что делать в таком случае. Если опция активна, удаление будет происходить молча, автоматом, с удалением всех записей, ссылающихся на удаляемую.

Внимание!

Ни в коем случае не используйте поля типа число для связки журналов. Это может привести к непредсказуемым последствиям.

Исходное поле/Считываемое поле — для вычислимых полей, лукап-полей, аналитики счета позволяет задать исходное поле этого журнала, по которому идет ссылка (оно должно быть полем журнала) и считываемое поле из журнала, на который идет ссылка. Это считываемое поле будет отображаться в таблице и редакторе записи журнала.

Выражение-запрос — для типа поле-выражение позволяет задать выражение, результат расчета которого будет отображаться в этом поле. Внутри такого выражения можно использовать поля этого журнала (без указания идентификатора или используя СВОЕ) или выражение с ВЫБРАТЬ.

Мин.ширина в таблицах — в таблицах колонка этого поля будет минимальной по ширине — ширине, достаточной для полного отображения содержимого ячеек таблицы. Иначе — она подгоняется исходя из общего размера таблицы на экране.

Обновлять автоматически — доступна для лукап-полей. Если опция включена, то вычислимые (лукап) поля при изменении других полей диалога обновляются. Для этого делается дополнительный запрос к базе данных.

Многострочная графа — доступна для строковых полей. Означает, что содержимое строкового поля будет из нескольких строк.

См. также
Изменение структуры журнала
Редактирование подсветки


Редактирование подсветки

Здесь задается выражение, которое будет вычисляться для определения цвета указанного поля.

Идентификатор — идентификатор поля журнала, выбирается из списка ранее добавленных полей.

Выражение-запрос — выражение, определяющее цвет поля для каждой конкретной записи. Внутри такого выражения можно использовать поля этого журнала (без указания идентификатора или используя СВОЕ) или выражение с ВЫБРАТЬ.

Пример 1:

// Допустим некий журнал имеет поле "статус_ид", ссылающееся на журнал "статус", тогда

// с помощью следующего выражения можно сделать так, что цвет этого поля будет такой же,

// как и цвет записи в журнале статусов, на которое оно ссылается

ВЫБРАТЬ ПОДСВЕТКА(статус.цвет_текста, статус.цвет_фона) (статус.ид = СВОЕ.статус_ид)

// Здесь и далее используется функция сервера ПОДСВЕТКА, которая формирует итоговый

// цвет ячейки на основе цвета текст и цвета фона записи журнала "статус"

Пример 2:

// Позволяет задать цвет числового поля в зависимости от значения. Для отрицательных

// значений ячейка будет красной, для остальных белой

ПОДСВЕТКА(ЕСЛИ(кол_учет < 0, цвБелый, цвЧерный), ЕСЛИ(кол_учет < 0, цвКрасный, цвБелый))

См. также
Задание подсветки в курсоре
Изменение структуры журнала
Редактирование поля


Настроить лицензии

Если Вы являетесь разработчиком собственной конфигурации (модуля) и Вам необходимо настроить доступ к журналу при наличии конкретной лицензии, прошитой на электронном ключе, встаньте на нужный журнал в списке журналов и выберите пункт контекстного меню Настроить лицензии. Появится служебный диалог.

Изменение установленных здесь опций может привести к ошибке Количество журналов больше — максимально допустимого в данной версии программы!


Общие данные

Общий на все фирмы

Любой журнал можно сделать общим на все фирмы или раздельным для каждой фирмы при ведении консолидированного учета. Это можно указать в функциях журнала.

Настраивать общие данные лучше в монопольном режиме, т.к. если с журналом работают пользователи, изменение его состояния невозможно. Будьте внимательны при смене типа журнала если в журнале есть данные. Здесь действует следующая логика:

·Когда общий журнал меняется на индивидуальный, все данные помещаются в текущую фирму, под остальными фирмами никаких данных в этом журнале не будет;

·Когда индивидуальный журнал меняется на общий, все данные всех фирм сливаются в один журнал.

Таким образом, повторная смена типа журнала не приведет к исходному состоянию. Поэтому, если база данных непустая, было бы неплохо сохранить ее резервную копию, чтобы иметь возможность восстановить предыдущее состояние.

Вне зависимости от настроек следующие данные всегда индивидуальны для каждой фирмы:

Реквизиты

Номера документов

Статьи учета

Корректные проводки

Журнал бухгалтерских операций и проводок

Разработчики могут создавать индивидуальные журналы при помощи внешних программ. Для этого в соответствующей таблице, представлении или процедуре должно быть поле IP$FIRM — идентификатор фирмы. Оно может быть частью первичного ключа, в этом случае такая таблица будет предлагаться для переноса в процессе создания новой фирмы.


Автоинкремент

Для идентификации записи журнала возникает необходимость в создании первичного ключа — уникальной комбинации полей, по которой однозначно определяется запись журнала. Первичный ключ для журнала можно задать в параметрах журнала. Самым простым случаем первичного ключа является целое поле. От одной записи журнала к другой, поле принимает последовательно целые значения 1, 2, 3,... и т.д. В программе Инфо-Предприятие предусмотрены два способа организации таких полей: встроенная система при помощи генераторов и использование функции НОМЕР.

Встроенная система автоинкремента

При создании журнала из программы Инфо-Предприятие достаточно создать первичный ключ этого журнаа. Если он состоит из одного поля и это поле целое, программа автоматически создаст генератор — специальный объект базы данных, с помощью которого будут получаться значения для этого поля. Программа будет использовать его при непосредственном добавлении записи в базу данных.

Если запись добавляется пользователем с помощью диалога, для использования значения генератора необходимо, чтобы поле первичного ключа имело значение ПУСТО. В противном случае запись будет добавляться с тем значением, которое содержится в этом поле.

Внимание!

Если поле видимо и доступно, то результат редактирования всегда будет непустым, и программа не будет подставлять автоинкрементное значение. Сделайте поле невидимым либо недоступным, либо устанавливайте его значение в ПУСТО в обработчике перед записью.

При добавлении записи журнала из внутреннего языка при помощи метода ЗАПИСАТЬ программа будет использовать ту же логику работы, что и при добавлении записи с помощью диалога, т.е. если поле первичного ключа содержит значение ПУСТО, будет выполнен запрос для получения следующего номера, если нет, будет использовано это значение. При добавлении записи журнала при помощи метода ДОБАВИТЬ программа всегда будет использовать генератор.

При создании журнала внешними программами, предусмотрена возможность задействовать любой другой генератор, для этого надо указать имя генератора на закладке Параметры в функциях журналов.

С помощью функции НОМЕР

Вместо определенного генератора можно воспользоваться функцией НОМЕР и вызывать его в обработчиках (например, перед диалогомредактирования записи).

Пример:

ФУНКЦИЯ ЖУРНАЛ(товары) ЛОГИКА : ПередДиалогом

(ЛОГИКА : новая_запись)

{ Инициализируем данные перед вызовом диалога редактирования }

ЕСЛИ НОВАЯ ТО

код = НОМЕР("тов")

КОНЕЦ_ЕСЛИ

{ Разрешаем или запрещаем вызывать диалог редактирования }

ПередДиалогом = ДА

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ЖУРНАЛ(товары) ЛОГИКА : ПередЗаписью

ЗАП_НОМЕР("тов", код)

ПередЗаписью = ДА

КОНЕЦ_ФУНКЦИИ

Замечание!

Не рекомендуется использовать метод МАКСИМУМ для получения значения следующего номера. С помощью этого метода нельзя получить уникальный номер в случае, если с программой работают более одного пользователя одновременно.

См.также
Функции журнала
Функция НОМЕР.


Оглавления журналов

С помощью оглавления книги можно быстро отыскать нужную страницу. Для работы с журналами аналитики можно использовать, по сути, тот же прием и быстро находить нужные записи.

Итак, оглавления — это правила, по которым линейную таблицу можно разбить по группам или представить в виде дерева. Оглавления влияют лишь на внешний вид редактора журнала и никак не изменяют его структуру и не влияют на способы его обработки при расчетах. Если у журнала есть оглавление, то при любом вызове редактора журнала можно как просматривать таблицу линейно, так и работать с оглавлением. При просмотре журнала с оглавлением на верхнем уровне видны только группы. Группы, содержащие внутри себя записи журнала, будут слева иметь кнопку [image], нажав на которую можно перейти к просмотру записей этой группы. Зайдя внутрь группы более сложных оглавлений, имеющих как группы, так и подгруппы, можно будет увидеть подгруппы, входящие внутрь этой группы и уже зайдя в них — записи журнала.

Самый простой пример оглавления — группировка по одинаковым значениям: записи журнала объединяются в группы по совпадающим значениям одного из полей. Группы определяют верхний уровень. В подгруппе для конкретного значения этого поля содержатся те записи, у которых поле принимает именно это значение.

При добавлении записи в журнал с включенным оглавлением, она попадет внутрь текущей группы. При редактировании записи с включенным оглавлением программа делает недоступными некоторые поля таким образом, чтобы при изменении запись осталась в той же группе. Если запись редактируется по клавише <F4>, выбору пункта меню «Правка | Изменить» или соответствующей кнопке панели управления, программа никак не ограничивает редактирование записи.

Журнал может иметь несколько оглавлений. В процессе просмотра журнала можно переключаться между ними и возвращаться в линейный просмотр.

При работе с оглавлением справа в строке статуса будет отображаться название оглавления. При двойном щелчке левой кнопкой мыши по надписи появится диалог выбора оглавления. Там можно убрать или поменять оглавление.

Создать и изменить оглавление для журнала можно при помощи пункта меню «Установка | Оглавления». В появившемся списке оглавлений показываются все существующие оглавления.

Любой журнал может иметь выделенное системное оглавление, которое объединяет записи в группы не по каким-либо признакам, а формируется вручную. Для включения этого оглавления надо поставить опцию Представлять в виде дерева в параметрах журнала. Для такого оглавления слева от таблицы может располагаться дерево групп, с помощью которого можно быстро перейти к требуемой группе справочника. Оно включается в диалоге вида журнала.

Также журнал может иметь оглавление по закладкам, формируемое в результате работы обработчика.


Настройка оглавлений

Настройка оглавлений позволяет создавать, изменять и удалять оглавления журналов. Вызвать список оглавлений можно при помощи пункта меню «Установка | Оглавления».

Таблица содержит следующие колонки:

Название — название оглавления. Оно будет появляться в строке статуса журнала при редактировании и диалоге . Например: Товары по группам.

Журнал — журнал, по которому строится оглавление.

Поля — дополнительно указываются поля журнала, участвующие в построении оглавления.

Следующие функции можно выполнять в окне настройки оглавлений:

Создание нового оглавления — происходит при добавлении записи в таблицу. После чего появится диалог создания нового оглавления. После настройки вида оглавления и нажатия <OK> оно добавляется в список.

Удаление оглавления — происходит при удалении записи из таблицы. Перед удалением оглавления появится подтверждение: Удалить оглавление такое-то ?. Нажмите Да для удаления.выбора оглавления

Настройка оглавления — происходит при редактировании записи таблицы. Появится диалог редактирования оглавления.

Замечание!

Оглавление В виде дерева не отображается в этом списке. Это системное оглавление, оно включается в параметрах журнала.

См. также
Работа с таблицами


Редактирование оглавления

В диалоге редактирования оглавления определяются название оглавления и правила, по которым будет создаваться оглавление:

Название оглавления — название оглавления. Оно будет появляться в строке статуса журнала при редактировании и диалоге выбора оглавления. Название оглавления должно быть уникальным. Пример: Товары по группам.

По журналу — из списка выбирается журнал, который будет иметь это оглавление. Один журнал может иметь несколько оглавлений или не иметь ни одного.

Доступные поля — показывают список полей указанного журнала, которые могут определять группу.

Поля оглавления — поля, по которым будет проводиться группировка записей. То, как это будет происходить, для каждого поля указывается отдельно в настройках справа от списка полей. Добавлять в список поля, удалять из него и менять порядок можно при помощи кнопок под списком.

Группировать поле — определяет правила группировки для конкретного поля. Необходимо выбрать поле в полях оглавления для настройки правил. Возможные значения: По одинаковым значениям, В диапазоне значений, Группа — запись другого журнала.

Описание оглавления состоит из определения правил группировки записей. Поля оглавления определяют группы, их количество — вложенность (количество уровней) оглавления. Любое оглавление с несколькими полями является как бы объединением нескольких оглавлений — по одному для каждого поля. Как будто Вы сначала выбираете, используя оглавление, построенное по первому полю, затем по второму и т.д.

Имея одно поле можно задать разные способы группировки:

По одинаковым значениям — объединяет записи, группируя их по одинаковым значениям этого поля. То есть группы формируются по различным значениям поля, а их количество будет равно количеству различных значений поля. В группу для конкретного значения этого поля попадают те записи, у которых поле принимает именно это значение.

Пример 1

Пусть есть справочник товаров с полями Группа и Наименование со значениями:

Группа | Наименование
Проч | Программа Инфо-Предприятие
Основ | Стол
Основ | Стул

Тогда журнал с оглавлением по полю Группа с группировкой по одинаковым значениям будет состоять из двух уровней. Верхний будет иметь вид:

Группа

Проч

Основ

При входе в подуровень Основ появятся товары «Стол» и «Стул», а в подуровень Проч появится товар Программа Инфо-Предприятие.

В диапазоне значений — группа образуется из записей со значением поля в диапазоне. Действует только для числовых и календарных полей. Группой является диапазон значений. Подгруппа состоит из записей, у которых значение поля лежит в выбранном диапазоне. Кол-во групп зависит от диапазона и от разброса значений этого поля.

Пример 2

Пусть журнал содержит поля Дата и Номер и состоит из записей:

Дата | Номер
23.01.2001 | 1
31.01.2001 | 2
06.02.2001 | 3
08.02.2001 | 4

Пусть диапазон установлен как Месяц, тогда журнал с группировкой по полю Дата в диапазоне значений будет состоять из двух уровней. Верхний будет иметь вид:

Дата

раньше 31.12.2000

01.2001

02.2001

позднее 01.03.2001

Здесь группа 01.2001 содержит все записи за январь, т.е. за номером 1 и 2, а группа 02.2001 все записи за февраль, т.е. за номером 3 и 4. Группы раньше 31.12.2000 и позднее 01.03.2001 не имеют подуровней, однако используются для ввода новых записей в указанных диапазонах.

Группа — запись другого журнала — похожа на группировку по одинаковым значениям, только группы образуются не из различных значений этого поля, а из значений поля другого журнала. Указывается журнал и связанное поле. Группы в этом случае являются записями этого журнала. При входе в подгруппу появляются записи исходного журнала, у которых значение поля оглавления совпадает со значением выбранного связанного поля.

Пример 3

Если бы в примере 1 поле Группа было бы полем с подстановкой из справочника групп товаров, то можно бы было сделать оглавление не с группировкой по одинаковым значениям, а с группой — записью другого журнала. В этом случае группы состояли из записей журнала групп товаров.

Группировка с группой — записью другого журнала может быть только для первых полей в списке.

Дополнительные параметры — содержит следующие опции:

Использовать закладки — опция, позволяющая отображать верхний уровень оглавления не в виде папок с подуровнями, а в виде закладок. Опция может применяться, только когда верхний уровень сгруппирован по одинаковым значениям или в диапазоне значений.

Оглавление по умолчанию — при создании такого оглавления оно будет выбрано у всех пользователей по умолчанию. Позже, пользователь может выбрать и любое другое оглавление или переключиться на вид журнала без оглавления.

Запретить выбор оглавления — доступна только если включена опция Оглавление по умолчанию. Запрещает смену и отключение оглавления. Если установить эту опцию, то журнал всегда будет представлен с выбранным оглавлением без какой-либо возможности переключиться на другой вид.

Недоступно если скрыты поля — если эта опция включена и какое-то из полей, используемых при построении оглавления скрыто, то из списка выбора это оглавление будет убрано. Если эта опция выключена, то оглавление будет отображаться вне зависимости от того, скрыты поля журнала или видимы.

Вызывать смену вида журнала — при входе в подуровень группы (переключении между закладками) будет вызываться обработчик вид журнала, в котором может быть реализована логика обработки скрытия полей журнала исходя из выбранной группы. Узнать, в какой группе мы находимся можно будет проверив значение соответствующего поля. Если обработчик вызывается при других обстоятельствах, в том числе и при выключенном оглавлении, значение этого поля будет равно ПУСТО.

См. также
Настройка оглавлений


Вид журнала

Диалог настройки вида журнала появляется при щелчке левой кнопкой мыши по надписи oglavlenie (вместо надписи Настроить вид может отображаться название вида журнала) внизу в строке статуса окна журнала или при нажатии клавиши <Alt>+<Enter>.

В окне настройки вида можно выбрать оглавление журнала из списка. Если Вы хотите работать с журналом без оглавления, то выберите Нет (Записи в некоторых журналах не могут быть представлены общим списком и всегда должны иметь закладки, в этом случае вместо варианта Нет будет вариант Стандартные закладки).

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

Если в списке есть оглавление В виде дерева, то при помощи опции Показать дерево групп можно показать или скрыть дерево групп справочника. В режиме выбора аналитики счета дерево групп недоступно.

Замечание!

Если какой либо из пунктов неактивен, это значит, что с этим оглавлением какие-либо проблемы. Войдите в редактор оглавлений, для того чтобы исправить это.

Режим Показать итоги — позволяет отобразить итоговую строку, содержащую суммы по всем числовым колонкам. При этом суммируются только отфильтрованные записи. Если журнал имеет оглавление, то итоги будут разделены по группам.

Дополнительно, при выборе счета с аналитиками из плана счетов в этом диалоге появятся опции настройки отображения плана счетов, такие как Остатки на дату, Скрыть аналитики с нулевым остатком и Только корректные счета.

См. также
Редактирование журнала аналитики


Функции журнала

Стандартное меню

Для задания таких параметров журнала аналитики как видимость и доступность полей, заголовки диалогов редактирования, и настройка обработчиков используется окно Функций журнала. Оно вызывается:

·Через меню «Разработка | Функции журналов»

·В режиме разработчика — из списка журналов или при выборе пункта меню с вызовом журнала.

Окно имеет сверху список существующих журналов и снизу древовидную таблицу из двух колонок: слева название параметра, справа его значение.

Переходить от функций одного журнала к другому можно:

·при помощи списка выбора

·кнопки выбора [image] или нажав клавишу <Ctrl>+<F2>

·при помощи клавиш <PgUp> и <PgDn> на клавиатуре.

Таблица разделена две закладки:

Параметры — здесь настраиваются параметры журнала: видимость и доступность полей, заголовки диалогов, настройка редактора, настройка выбора значения, интерфейс с сервером и т.д.

Обработчики — задают реакцию программы на действия пользователя в виде алгоритмов на внутреннем языке, которые будут выполняться в различных ситуациях.


Параметры

Функции журнала

Параметры в таблице задаются в виде дерева и имеют следующее предназначение:

Порядок и видимость полей — выдает диалог, где определяется видимые поля и их порядок. При использовании видов журнала видимость и порядок указываются для каждого вида индивидуально.

Доступные поля — выдает диалог, где определяются доступные для редактирования поля.

Показать в детализации — выдает диалог, где можно указать какие подчиненные журналы надо показывать в дополнительном окне детализации. При использовании видов журнала детализация указывается индивидуально для каждого вида.

Замечание!

Видимость полей и вид детализации могут дополнительно изменяться в обработчике вида журнала, а доступность полей и в любых других обработчиках. Если они указаны в этих опциях, но не видны или недоступны в диалогах, следует обратить внимание на соответствующие обработчики.

Сортировка по умолчанию — выдает диалог, где можно задать порядок сортировки записей по умолчанию. Если порядок не задан, записи при отображении в окне по умолчанию сортируются по первичному ключу.

Выбор значения — здесь настраивается вид выбора для полей диалога. Нажатие [image] раскрывает список полей, для которых можно настроить выбор значения. После выбора поля можно перейти к настройке выбора записи или счета.

Единицы измерения — здесь задается отображение единиц измерения для числовых полей. Нажатие [image] раскрывает список числовых полей. После выбора поля можно перейти к настройке единицы измерения.

Заголовки диалогов — здесь задаются заголовки диалогов и тексты сообщений:

Новая запись — заголовок диалога добавления новой записи. По умолчанию в заголовке пишется надпись "Новая запись". Можно указать любой другой текст.

Редактирование записи — заголовок диалога редактирования записи. По умолчанию пишется надпись "Редактирование записи". Можно указать любой другой текст.

Текст диалога редактирования и добавления может изменяться в зависимости от ситуации. Для этого надо воспользоваться свойством КОЛОНТИТУЛ внутри обработчика перед диалогом.

Удалить запись — определяет текст вопроса, который будет выдаваться при попытке удалить запись. По умолчанию пишется надпись "Удалить запись". Можно задать любой текст или макровыражение, содержащее поля журнала.

Запись существует — определяет текст сообщения, которое будет выдаваться при попытке добавления существующей записи ( то есть, если при добавлении нарушается уникальность первичного ключа ). По умолчанию пишется надпись "Такая запись существует". Можно задать любой текст или макровыражение, содержащее поля журнала.

Ввести в подгруппу — определяет текст вопроса, который будет выдаваться при добавлении первой записи внутрь группы. Используется только для тех журналов, у которых включена опция Представлять в виде дерева.

Тексты сообщений может содержать макровыражения. Макровыражения имеют вид:

&[<выражение>]

где <выражение> является выражением в смысле внутреннего языка, которое может использовать поля этого журнала. В момент, когда надо вывести на экран текст программа вычисляет все встретившиеся макро-выражения, преобразует их в строки и вставляет на то место, на котором они стояли в строке. Встретившиеся поля соответствуют полям записи журнала, для которой выполняется действие.

Примеры

Удалить сотрудника "&[имяСотр] &[фамСотр]"- Удалить сотрудника "ИВАН ПЕТРОВ"

Сотрудник с таб. № &[таб_номер] уже существует - Сотрудник с таб. № 045 уже существует

Настройка редактора — определяет внешний вид редактора записи журнала. Опции из этого раздела могут иметь числовые значения, либо значение Авто. В последнем случае это означает, что программа устанавливает опцию по своему усмотрению.

Редактор записи. Определяет внешний вид редактора:

·Значение опции Модальный диалог означает, что редактирование записи будет производиться в диалоговом окне, пользователь не сможет выполнять других функций, кроме редактирования записи журнала.

·Значение Форма открывает окно редактора записи журнала. Пользователь может открыть несколько окон редактирования записи одного или нескольких журналов, переключаться между ними и другими окнами и выполнять любые другие действия в программе.

·Значение Авто работает так: если диалог редактирования записи имеет таблицу детализации, будет использована форма, если нет — модальный диалог. Редактирование записи таблицы детализации всегда выполняется в диалоге.

Строк в детализации — определяет число строк в таблице детализации журнала в окне редактора журнала. Значение этой опции имеет смысл только для журналов, имеющих такую таблицу. При автоматической настройке число строк полагается равным числу строк окне детализации в общих настройках программы. Значение Нет отключает отображение таблицы детализации в окне журнала.

Колонок с полями — задает кол-во колонок, на которые будут разбиты поля журнала при редактировании записи журнала. При автоматической настройке программа будет выстраивать поля в одну колонку, если полей мало и разбивать на две колонки, если полей много.

Кнопок частых действий — задает максимальное количество кнопок частых действий, которые программа будет выводить в диалоге редактирования записи журнала. Кнопки частых действий формируются из часто используемых пунктов контекстного меню, появляющегося при нажатии на кнопку <Выполнить> в диалоге редактирования. Опция переопределяет глобальную опцию Макс.кол-во кнопок частых действий. для этого конкретного журнала. Если указано значение Авто, то количество кнопок берется из глобальной опции. В противном случае берется указанное здесь значение.

Высота рисунков — если задает кол-во строк, определяющее высоту рисунков при просмотре записей в таблице. Для отображения рисунков должна быть включена опция Показать рисунок из поля (см.ниже).

Включить создание копии — включает доступ к пункту контекстного меню Создать копию в окне редактирования журнала.

Кнопка связи показывает — задает три возможных поведения при нажатии на кнопку связи linkbutton справа от поля, ссылающегося на этот журнал:

·Контекстное меню — будет показываться контекстное меню этого журнала;

·Диалог редактирования — будет вызываться диалог редактирования записи этого журнала;

·Отключить кнопку — кнопка связи показываться не будет.

Пример.

Допустим в журнале накладных есть поле код_клиента и лукап-поле название_клиента, которое по коду клиента получает его название в справочнике клиентов. Тогда, если опция Получать вычислимые поля активна, то в редакторе записи журнала при изменении поля код_клиента, будет автоматически получаться поле название_клиента без написания каких-либо обработчиков.

Разрешенные операции — задает операции, которые доступно выполнять над этим журналом. Здесь можно разрешить или запретить операции добавления, удаления или редактирования. Это не имеет никакого значения при выполнении указанных действий из внутреннего языка, это только лишь запрещает или разрешает выполнять указанные действия пользователю.

Вид дерева — у журнала появляется дополнительное служебное оглавление В виде дерева. При его выборе журнал будет представлен в виде дерева. Часть записей журнала будут являться группами, часть входить в эти группы. Слева от таблицы в окне редактирования журнала может быть отображено дерево групп (для этого.в диалоге выбора оглавления включается опция Показать дерево групп). Элементы дерева создаются на основе первого видимого поля журнала.

Для работы дерева программа добавит в журнал:

·Поле родитель (в базе PARENT) имеющее тип, совпадающий с типом поля, представляющего первичный ключ (первичный ключ должен состоять из одного поля);

·Поле кол_подуровней (в базе CHILDCOUNT), целое, определяющее кол-во подуровней для групп и равное нулю для записей, не являющихся группами;

·Поле кол_подгрупп (в базе GROUPCOUNT), целое, определяющее кол-во подгрупп для групп и равное нулю для записей, не являющихся группами;

·Необходимые триггеры и ссылки;

Идентификаторы добавленных полей можно изменить, если это надо. Поля могут использоваться в расчетах любым образом, поля кол_подуровней и кол_подгрупп доступны только для чтения.

Опция недоступна для журналов-процедур. Для них разработчик самостоятельно должен предусмотреть наличие полей PARENT, CHILDCOUNT, GROUPCOUNT и ID и их соответствующую обработку. Тогда представление в виде дерева будет доступно.

Опция По умолчанию активен определяет то, будет ли представление в виде дерева в момент начала работы с журналом (потом выбор запоминается) активно, или же для того чтобы его включить надо будет вызвать диалог выбора оглавления.

При включении опции Вызывать смену вида журнала — если выбрать здесь поле — первичный ключ, то при входе в подуровень группы будет вызываться обработчик вид журнала, в котором может быть реализована логика обработки скрытия полей журнала исходя из выбранной группы. Узнать, в какой группе мы находимся можно будет проверив значение поля родитель. Если обработчик вызывается на верхнем уровне или при выключенном оглавлении, значение этого поля будет равно пустой строке или ПУСТО в зависимости от типа поля. Если выбрать в этой опции другое поле, не первичный ключ, то обработчик вид журнала будет вызываться не всегда, а только если в другой группе значение этого поля отличается от значения в исходной группе, а также при переходе на верхний уровень.

Специальные поля — здесь указываются поля журнала, для которых будет специальная обработка.

Групповой выбор по — включает режим группового выбора. Работает только в журналах детализации. Далее указывается поле, по которому будет осуществляться связь записей детализации с подставляемыми записями из третьего журнала.

Рабочий период по — говорит программе, что записи журнала могут быть ограничены перидом. При включении этой опции в окне редактирования журнала будет доступен навигатор периода. В графе указывается поле типа дата, по которому будет происходить ограничение по периодам. Поле не должно содержать значение НЕТ_ДАТЫ (ПУСТО).

Замечание!

Рекомендуется чтобы журнал с ограниченным рабочим периодом был разделен по фирмам (выключена опция Общий на все фирмы), т.к. дата ограничения периода указывается в каждой конкретной фирме отдельно.

Если журнал будет общим на все фирмы, то проверка производится по последней из указанных по всем фирмам дат.

Показать рисунок из поля — здесь можно указать поле, которое содержит рисунок (например фото товара, сотрудника и т.п.).

Название записи из поля — здесь указывается поле, из которого программа будет получать лаконичное название для записи. Вариант <по умолчанию> означает, что название записи будет браться из поля название. А если такого поля нет, то из первого видимого поля. Указанное здесь значение используется в разных местах программы: в диалоге переноса проводок с одной записи журнала на другую для отображения названия записи журнала; для формирования заголовка окна журнала в виде дерева.

Интерфейс с сервером — здесь устанавливаются опции, которые определяют взаимодействие программы и сервера. Опции имеют следующий смысл:

Обновлять — указывает на необходимость получать обновленную запись после добавления или внесения изменения. Такое требуется в случае, если таблица или представление на сервере имеют триггер, выполняющий какие-либо модификации при изменении в таблице или представлении. Чтобы получить результат этих изменений программа делает дополнительный запрос к базе данных. Если выбран вариант обновления текущей записи запрашивается только текущая измененная/удаленная/добавленная запись. Если выбран полный вариант обновления, запрашиваются все записи журнала. Не следует устанавливать эту опцию без необходимости, т.к. это приводит к большему кол-ву обращений к базе данных и, как следствие, снижению быстродействия.

Обновлять основную — указывает на необходимость получать обновленную запись основного журнала при внесении изменений в подчиненную таблицу детализации. Аналогично предыдущей опции, такое обновление необходимо при наличии триггеров, выполняющих какие-либо действия в основной записи после внесения изменений в запись детализации. В этом случае надо включить данную опцию в журнале детализации.

Пример.

Журнал накладных имеет поле сумма и подчиненный журнал строчек накладных, который имеет триггеры, выполняющие расчет поля сумма основного журнала накладных: при добавлении строки увеличивает сумму, при удалении уменьшает на соответствующую сумму из строки накладной. Чтобы при просмотре на экране сумма в основной записи пересчитывалась, надо сообщить программе, чтобы она обновляла эту строку. Для этого устанавливается опция обновлять основную в журнале строчек накладных.

Проверять условие — если включена опция Обновлять, то при обновлении вновь добавленной или измененной записи будет проверяться соответствие записи условию отображения (в случае если таблица журнала отфильтрована) и если запись не удовлетворяет условию, она будет скрыта. Опция несовместима с обработчиком после записи.

Обнулять ссылки при блокировке — влияет на работу программы при удалении (обнулении) ссылок на связанные записи других справочников. Если включить опцию, то удаление ссылок будет возможно даже тогда, когда доступа к записи, у которой удаляются ссылки, у пользователя не будет (операция попадает в закрытый период, ограничение прав доступа или включение флажка недоступности у записи). Если такое поведение допустимо, включите эту опцию. По умолчанию она выключена.

Генератор — имя генератора. Генераторы используются для получения уникального номера, а указанный здесь генератор будет использоваться для получения номера для первичного ключа либо уникального поля, имеющегося в таблице. Обычно здесь стоит Авто. Это означает, что программа задействует генератор с именем вида GEN_<имя таблицы>_<имя поля>, либо GEN_<имя таблицы>_ID.

Пример.

Если таблица называется NAKL, то генератор должен называться GEN_NAKL_ID.

Запрос генератора — определяет момент, когда запрашивается генератор. По умолчанию он запрашивается перед записью.

Поля поиска при обновлении — указывается, какие поля будут использоваться в поиске записи при обновлении после изменения или добавления (т.е. когда активна вышеуказанная опция Обновлять). Обычно настройка этого параметра не требуется, а поиск происходит по первичному ключу. Используйте его только в том случае, если из-за специфической логики на сервере неправильно работает изменение или обновление записи.

Первичный ключ — задает первичный ключ (код). комбинацию полей, по которой можно однозначно определить запись в журнале. Кроме того, его использование определяет заранее существующий порядок записей в журнале: журнал будет отсортирован по полям первичного ключа. Если создаваемый первичный ключ состоит из одного целого поля, программа создаст для него генератор и установит значение по умолчанию для этого поле ПУСТО (NULL).

Выделение первичного ключа — если эта опция активна, первичный ключ (код) будет выделяться в таблицах. Этот режим также удобен при распечатке, т.к. позволяет выводить ключевые поля на каждой странице, если журнал не помещается в ширину листа.

Ключ копируется в буфер — говорит программе, что запись будет копироваться в буфер обмена со своим первичным ключом. Если первичный ключ не копируется, программа должна уметь сама генерировать значение первичного ключа для новых записей. Это может быть сделано с помощью Генератора, с помощью обработчика перед записью и функции НОМЕР, с помощью триггера перед добавлением записи или каким-либо другим способом.

Пример.

Если в справочнике товаров опция будет активна, товар будет скопирован в буфер обмена, и его попытаются вновь вставить в справочник товаров. В этом случае программа выведет сообщение об ошибке "Товар с таким кодом уже существует". Пользователю придется вручную задавать новый код для товара. Если эта опция не активна, при вставке конфигурация (или сама программа на уровне платформы) сама присвоит новый код для товара и он добавится в справочник. Пользователю достаточно будет просто отредактировать при необходимости товар уже в самом справочнике.

При вставке записей в таблицу детализации, первичный ключ всегда очищается, т.к. вставка записей в журнал детализации происходит иначе, чем вставка в основную таблицу, добавление записей происходит в процессе добавления или изменения основной записи. Параметр Ключ копирутся в буфер в этом случае никак на вставку не влияет.

Связь с бухгалтерией — означает, что записи журнала будут связываться с записями журнала бухгалтерских операций. Если значение опции Автоматическая, то слева от записей в редакторе журнала, проведенных в бухгалтерии, появится кнопка LINKPROV, по которой можно будет получать доступ к связанным операциям и управлять этой связью, а слева от операций в редакторе бухгалтерского журнала, связанных с документом, кнопка [image], по которой можно будет получить и отредактировать документ. Если значение опции Зависит от настроек, то управление режимом связи документа с бухгалтерией осуществляет пользователь самостоятельно в общих настройках программы, опция Проводить документ. Опция недоступна для журналов-процедур.

Сумма в бухгалтерской операции — если включена опция Связь с бухгалтерией, то здесь можно указать поле, которое содержит сумму документа. Это значение будет отображаться в колонке Сумма при просмотре журнала бухгалтерских операций в бухгалтерской операции, сформированной по этому документу.

Является аналитикой счета — указывает, что данный журнал может выступать в качестве аналитики счета. Не все журналы могут выступать в качестве аналитики. Для этого журнал должен иметь:

·Первичный ключ, состоящий из одного поля или уникальное поле. Лучше, если это будет поле типа код аналитики.

·Поле название, которое определяет название объекта аналитики.

·Поле единицы для ведения количественно-суммового учета по аналитике.

·Поле единицы_доп для ведения дополнительного учета по аналитике (поле не обязательное).

·Поле счет для включения опции Фильтровать по счетам в аналитике.

Опция недоступна для журналов-процедур.

Доступны дополнительные поля — при включении этой опции у записей журнала появляется возможность хранить данные в дополнительных полях (атрибутах). При этом: число полей не ограничено, у каждой записи могут быть свои поля, изменять структуру журнала при добавлении таких полей не нужно. Доступ к полям осуществляется посредством внутреннего языка с помощью методов ПОЛЕ и ЗАП_ПОЛЕ объекта ЖУРНАЛ.

Доступно включение ссылок — при включении опции в диалоге редактирования записи журнала появляется возможность добавлять ссылки к записи (справа от кнопки <Отмена> будет кнопка < attach >, с помощью которой можно добавить ссылку, настроить ссылки или перейти к ранее добавленным ссылкам).

Блокировать при изменении — при редактировании записи журнала пользователем она будет блокироваться. После этого любой другой пользователь при попытке отредактировать запись будет получать сообщение "Запись редактируется другим пользователем" и диалог редактирования записи будет открыт только на просмотр данных.

Автообновление изменений — при включении опции окно журнала будет автоматически обновлятся при внесении в него изменений другими пользователями базы данных в сети. Если эта опция выключена, то для того чтобы увидеть изменения, внесенные другими пользователями, необходимо обновить содержимое вручную. Опция недоступна для журналов-процедур.

Ограничить доступ других — если эта опция включена, то при настройке разграничение доступа можно скрывать от пользователя операции, сделанные другими пользователями. Вместе с тем, опция никак не влияет на условие или какую-либо другую опцию разграничения доступа.

Общий на все фирмы — данный журнал будет общим при использовании консолидированного учета. Опция недоступна для:

·Журналов, связанных с бухгалтерией (опция Связь с бухгалтерией). Такие журналы не могут быть общими на все фирмы, поскольку каждая из фирм имеет свою бухгалтерию.

·Журналов, ограниченных рабочим периодом (опция Рабочий период по). Такие журналы не могут быть общими на все фирмы, поскольку каждая из фирм имеет свою дату ограничения рабочего периода.

·Журналов-представлений и журналов-процедур. Они настраиваются разработчиком самостоятельно при создании их структуры.

·Журналов, которые имеют какую-либо логику на сервере, учитывающую, что они индивидуальны для каждой фирмы (например, триггеры, хранимые процедуры, первичный ключ, в состав которого входит идентификатор фирмы и др.).

Перемещать вверх-вниз — включает функцию перемещения строк журналов.При включении этой опции журнал будет принудительно сортироваться в порядке следования операций (по первичному ключу). Если в процессе расчета или отображения у журнала будет своя сортировка, сортировка порядка следования будет добавлена с более низким приоритетом. Если у журнала включена опция Рабочий период по, то перемещение возможно в пределах одного дня, в противном случае дата не контролируется. Процедура перемещения может быть изменена разработчиком. Опция недоступна для журналов-процедур.

Убрать доступ к корзине — после включения опции у журнала будет отключена корзина.

Убрать доступ к выключению записей — для данного журнала будет невозможно выключать записи.

Исключить из протокола — после включения опции изменения в этом журнале не будут отражаться в протоколе.

Файл типовых операций — при добавлении новой записи в журнал программа предложит ввести новую операцию при помощи типовых операций из указанного файла типовых. Пользователь может отказаться и ввести операции в журнал вручную. Если же файл типовых операций не задан или не найден, то добавление будет происходить обычным образом.

Файл библиотеки — определяет файл библиотеки функций, где по умолчанию будут находиться обработчики этого журнала.

См. также
Макровыражения в ВЫРАЖЕНИЕ_СТР
Обработчики
Методы ДОСТУП, ВИДИМОСТЬ и ВИДИМОСТЬ_ДЕТ
Автоинкрементные поля


Обработчики

Функции журнала

Обработчики представляют собой алгоритмы, которые выполняются программой при выполнении пользователем каких-либо действий, например входа в программу или редактирования поля в записи журнала аналитики. Это самые обычные методы объекта — в данном случае объекта ЖУРНАЛ. Они позволяют описать поведение программы в каждом конкретном случае и определяют логику работы программы с пользователем.

Написание обработчика состоит из двух составляющих: написания текста алгоритма (метода объекта ЖУРНАЛ) и объявление его в таблице функций. Фактически, в последнем случае программе просто указывается, что для выполнения такого-то действия надо выполнить такую-то функцию. Разным действиям может быть приписана одна и та же функция. Это очень удобно, например, для обработчиков При изменении полей.

После вызова таблицы функций журнала либо через меню «Разработка | Функции журналов», либо из списка журналов. Появится таблица, где сверху выбирается журнал, для которого задается функция, слева стоят названия действий, справа — функции, которые их выполняют, или пустые строки, если функции не заданы. Переходить от функций одного журнала к другому можно как при помощи списка выбора, так и при помощи клавиш PgUp и PgDn на клавиатуре.

Теперь, если дважды щелкнуть или нажать <Enter>, то появится редактор библиотеки, и, если функция не была задана, программа подставит ее шаблон.

Таблица функций содержит следующие заранее предопределенные действия:

Обработчик | Описание | Изм
При изменении поля | вызываются в диалогах редактирования записи журнала, когда пользователь изменяет значение конкретного поля |
При выборе значения | вызываются в диалоге редактирования записи журнала когда пользователь хочет выбрать и подставить значение в поле. |
Проверка значения | используются для задания условий на значение поля. |
По кнопке связи | определяет действие при нажатии кнопки связи |
Подсказка поля | вызываются для выдачи текста всплывающей подсказки в таблицах | —
Подсказка записи
При изменении полей | вызываются в диалогах редактирования записи журнала, когда пользователь изменяет значение какого-либо из полей |
Перед диалогом | вызывается перед тем, как на экране появится диалог редактирования записи журнала |
Перед отменой | вызывается при нажатии кнопки <Отмена> в диалоге редактирования записи журнала |
Перед записью | вызывается перед добавлением новой записи в журнал или изменением существующей |
После записи | вызывается после добавления новой записи в журнал или изменением существующей |
Перед удалением | вызывается перед удалением записи из журнала |
После удаления | вызывается после удаления записи из журнала |
Копирование в буфера обмена | вызывается при копировании записи в буфер обмена | —
Вставка из буфера обмена | вызывается в случае, когда пользователь выполняет вставку записей из буфера обмена |
По кнопке "Старт" | вызывается при нажатии на кнопку "Старт" |
Групповой выбор | вызывает диалог подбора для режима группового выбора | —
Кнопка связи для операции | добавляет в таблицу журнала специальную кнопку, при нажатии на которую выполнится действие | —
При старте программы | вызывается при старте программы |
При завершении программы | вызывается при завершении работы программы |
Строка статуса | вызывается для выдачи текста строки статуса в диалогах редактирования записи журнала | —
Правый заголовок | вызывается для выдачи текста правого заголовка журнала | —
Вид журнала | вызывается для определения вида журнала (видимых и доступных полей) исходя из пользовательских настроек. | —
Вид главного меню | используется для определения доступа к пунктам главного меню в зависимости от пользовательских настроек | —
Вид контекстного меню | вызывается, когда надо определить доступность пунктов контекстного меню, вызываемого для данной записи и данных пользовательских настроек | —
Внешнее изменение | вызывается после изменения данных в журнале, включая изменения, произведенные другими пользователями |
Внешнее событие | вызывается внешним приложением, поддерживающим события. |
По таймеру | вызывается постоянно, 10 раз в секунду |
Веб-сервер | обработчик команд веб-сервера |
Проводки | вызывается для выдачи бухгалтерских проводок, соответствующих записи журнала |
Фильтр аналитик | вызывается для получения условий на отображение справочника в зависимости от счета (при использовании его в качестве аналитики) | **
Свой фильтр | позволяет задать свои условия фильтрации, которые будут доступны пользователю в контекстном меню | —
Свое оглавление | позволяет создать оглавление журнала в виде закладок, заданное с помощью алгоритма. | —
Очистка базы данных | вызывается для очистки базы данных или закрытия периода |

Последняя колонка таблицы Изм — говорит о возможности вносить изменения в данные внутри обработчика. Если изменения запрещены, будет выдаваться ошибка при выполнении обработчика.
** — в обработчике Фильтр аналитик иногда можно делать изменения, иногда нет.

При вызове обработчика значения полей объекта ЖУРНАЛ, для которого выполняется метод-обработчик, определяют поля записи из журнала. Исключение составляют такие обработчики как При старте, При завершении, Закрытие периода, Очистка база данных и некоторые другие, которые выполняются не для конкретной записи. Поля объекта для этих обработчиков инициализированы значениями по умолчанию.

Для обработчиков, вызываемых в диалогах надо иметь следующее:

1.Значения полей объекта, для которого вызывается данная функция, полностью соответствуют значениям полей диалога.

2.Любое изменение полей объекта приводит к немедленному изменению полей в диалоге.

3.Изменение доступа к полю при помощи метода ДОСТУП приводит к изменению доступности поля в диалоге.

4.Изменение название поля с помощью НАЗВАНИЕ приводит к изменению названия поля в диалоге

5.Внутри обработчиков можно работать с детализацией с помощью соответствующих методов. Изменение детализации с помощью методов ЗАП_ДЕТАЛЬ, УДАЛИТЬ приводит к изменению таблицы детализации. Методы могут вызываться не только для журналов, помеченных для отображения в параметрах журналов, но и для любого другого журнала, имеющего поле, ссылающееся на редактируемый журнал.

6.Из обработчиков основной записи можно управлять видимостью полей (колонок) таблицы детализации. Для этого используется обработчик вид журнала для журнала детализации, в который прописываются условия от полей основной записи, а, чтобы при изменении полей обновлялось окно детализации, для него необходимо вызывать метод ИЗМЕНЕН.

При включенной опции групповой выбор существует определенный порядок выполнения обработчиков перед диалогом, при выборе значения и при подстановке в основную.


Работа с видами

Параметры журнала

В диалоге настройки видимости можно указать видимость и порядок следования полей журнала. При этом журнал может иметь несколько таких настроек, которые называются видом журнала и могут использоваться при отображении, как записей журнала, так и таблиц.

Вид журнала определяется своим именем. Для добавления нового вида надо нажать кнопку [image] справа от списка видов и в появившемся диалоге указать название вида. Название должно быть уникальным, это значит, что у конкретного журнала не может быть два вида с одинаковым названием.

Для удаления вида надо выбрать его в списке и нажать кнопку [image].

Ниже, диалог содержит два списка полей, определяющих видимые и скрытые поля журнала. Для перемещения полей между списками необходимо выделить нужное поле, а затем нажать << или >>. Кнопка << перемещает поля из правого списка в левый, а >> — из левого в правый. При перемещении между списками можно выбирать не одно, а несколько полей. Чтобы выделить последовательные поля, выберите первый поле и, удерживая клавишу <Shift>, выберите последнее. Чтобы выбрать поля, не являющиеся последовательными, выберите каждый объект, удерживая клавишу <Ctrl>.

Если диалог содержит кнопки Вверх и Вниз, то можно менять порядок полей в правом списке. Для этого надо выбрать необходимые поля, а затем нажать соответствующую кнопку или комбинацию клавиш <Ctrl>+б и <Ctrl>+в соответственно. Также как и при перемещении, при изменении порядка можно выбирать несколько полей.

Для сохранения результатов выбора полей нажмите <OK>. Кнопка <Отмена> отменяет все внесенные изменения.

Следующие виды (если они добавлены) используются программой по-особому:

Вид журнала | Используется
группа | В журнале, представляемом в виде дерева, определяет поля, необходимые для групп записей. При редактировании группы только указанные поля будут доступны. При отображении групп в таблице будут показаны только поля из этого вида.
таблица | В окне настройки отображения колонок журнала вместо кнопки Видимые появится кнопка По умолчанию. При ее нажатии видимость колонок установится как в указанном виде. Порядок следования будет проигнорирован и останется прежним.
выбор | То же самое, что и таблица, однако действует только в случае, если окно открывается для подстановки значения. Если указанного вида нет, а есть вид таблица, то будет использовать его.
аналитика | Аналогично предыдущим, но действует только в случае просмотра плана счетов с аналитиками, когда журнал является аналитикой для счета. Если указанного вида нет, то будет использован вид выбор, если окно выбора счета открывается для подстановки значения и вид таблица, если открывается план счетов из главного меню.
подбор | Действует в режиме группового выбора, как для таблицы детализации, так и на склеенный с ней справочник. При указанного вида нет, а есть вид таблица, то будет использовать его.
поиск | Определяет состав колонок таблицы, которая появляется при поиске непосредственно в графе ввода (опции Поиск в графе и Сокращенный выбор). Если указанного вида нет, будет использован вид выбор, а если и его нет, то вид таблица.

См. также
метод ВИДИМОСТЬ
обработчик вид журнала
функция ВЫБОР_ЗАПИСИ
функция СТАРТ_ЖУРНАЛ
метод РЕДАКТИРОВАТЬ


Выбор полей

Диалог содержит два списка полей. Для перемещения полей между списками необходимо выделить нужное поле, а затем нажать << или >>. Кнопка << перемещает поля из правого списка в левый, а >> — из левого в правый. Также, поля перемещаются между списками при двойном щелчке по имени поля в списке.

При перемещении между списками можно выбирать не одно, а несколько полей. Чтобы выделить последовательные поля, выберите первый поле и, удерживая клавишу <Shift>, выберите последнее. Чтобы выбрать поля, не являющиеся последовательными, выберите каждый объект, удерживая клавишу <Ctrl>.

Если диалог содержит кнопки Вверх и Вниз, то можно менять порядок полей в правом списке. Для этого надо выбрать необходимые поля, а затем нажать соответствующую кнопку или комбинацию клавиш <Ctrl>+б и <Ctrl>+в соответственно. Также как и при перемещении, при изменении порядка можно выбирать несколько полей.

Для сохранения результатов выбора полей нажмите <OK>. Кнопка <Отмена> отменяет все внесенные изменения.


Настройка выбора

Функции журнала/Параметры

Настройка выбора задает вид и способ выбора для полей с подстановкой значения.

Поле — отображает поле, для которого выполняется настройка выбора.

Отображаемое поле — определяет отображаемое поле-заменитель. По умолчанию, замены нет, и в этой графе стоит исходное поле. Однако если здесь стоит какое-либо другое поле, везде, в таблицах, в диалогах, будет отображаться значение именно этого поля вместо исходного. И только при редактировании, когда курсор в диалоге редактирования записи будет находиться на исходном поле, будет отображаться именно оно, а не поле-заменитель.

Пример.

Журнал накладных имеет ссылку на справочник клиентов. В накладных есть два поля: код клиента, по которому собственно и задает связь и название клиента, которое вычисляется по коду клиента. Допустим, код клиента имеет числовой тип. Скажем, клиент с кодом ОДУВ с названием ООО Одуванчик. Тогда отображаться будет значение ООО Одуванчик, а редактироваться его код ОДУВ.

Замечание!

Обычно поле-заменитель либо вычислимое на сервере (COMPUTED BY), либо вычислимое при помощи обработчиков.

Опции — задает опции выбора.

Выбирать записи не последнего уровня — когда выбор происходит из журнала, имеющего вид дерева, включение этой опции разрешает выбирать группы. В противном случае выбираются записи только последнего уровня (не группы).

Запретить менять поле вручную — опция имеет смысл, если Выбирать только по названию объекта не включена, а вариант выбора (см.ниже) — диалог. Если данная опция активна, то поле будет недоступно для изменения пользователем вручную и только выбором из диалога можно поменять его значение.

Сокращенный выбор — при включении опции таблица выбора будет иметь сокращенный вид и появляться непосредственно под графой (внешний вид будет такой же, как и при поиске непосредственно в графе, см.ниже). Опция принимает три значения: Авто — это значение по умолчанию, при нем сокращенный выбор появляется тогда, когда поле ссылается на другую таблицу; Есть — сокращенный выбор включен; Нет — сокращенный выбор выключен.

Поиск в графе — при включении опции в графе появляется надпись «Введите для поиска». Пользователь может вводить в графу текст и программа будет искать его в связанной с полем таблицей. Если поле имеет обработчик При выборе значения, он будет вызван для получения таблицы (о том, как он будет вызываться см.ниже). Таблица выбора будет иметь сокращенный вид и появляться непосредственно под графой. Состав полей таблицы определяется видом «поиск». Опция принимает три значения: Авто — это значение по умолчанию, при нем поиск в графе будет тогда, когда поле ссылается на другую таблицу; Есть — поиск в графе включен; Нет — поиск в графе выключен.

Вызов в режиме поиска — определяет алгоритм того, как будет вызываться обработчик При выборе значения. Возможны два алгоритма Единократный и При изменении строки.

Если здесь выбран вариант Единократный, то обработчик будет вызываться один раз с параметром причина = выборВручную. А далее полученная с помощью обработчика таблица будет фильтроваться программой в зависимости от того, что вводит пользователь.

Если здесь выбран вариант При изменении строки, то обработчик будет вызываться при каждом изменении содержимого поля пользователем. И параметр обработчика причина = выборПриПоиске. Обработчик должен анализировать значение поля и в зависимости от значения выдавать таблицу с нужным содержанием. Другими словами, фильтрация в зависимости от того, что вводит пользователь, в этом случае осуществляется обработчиком, а не программой.

Подсказка для поиска — задает текст подсказки. Если текст не указан будет появляться надпись «Введите для поиска». Текст подсказки можно задать в виде формулы так, чтобы в разных ситуациях появлялся разный текст, например формула &[?(БЕСПЛАТНАЯ_ВЕРСИЯ,"Загрузка реквизитов из интернета не доступна","Введите для поиска")] будет выводить подсказку «Загрузка реквизитов из интернета не доступна» в бесплатной версии программы и подсказку «Введите для поиска» в платной версии.

Варианты выбора — задает три варианта выбора значения в диалоге: диалог выбора, выбор из списка и редактируемый список.

Диалог выбора устанавливается по умолчанию. В этом случае подстановка значения в поле выполняет при помощи вызова диалога после нажатия на кнопку [image] справа от поля ввода. Здесь же можно указать внешний вид кнопки.

Выбор из списка определяет выбор значения поля из списка. Когда курсор в диалоге редактирования записи переходит к этому полю, формируется список из всех записей связанного журнала.

Замечание!

Если активна опция выбирать только по названию объекта, а поле вычислимое на сервере (COMPUTED BY) то список формируется из названий объектов. Например, в случае с клиентами, из названий клиентов.

Редактируемый список дополнительно позволяет вводить данные вручную. Действие программы при вводе вручную должно описываться либо обработчиками в программе, либо триггерами на сервере.

Замечание!

Если имеет обработчик При выборе значения, список или редактируемый список может быть заменен на диалог. См.примечание к этому обработчику.

Замечание!

Список создается в момент первого обращения пользователя к этом полю (когда к этому полю переходит курсор). Потом содержимое списка не изменяется. Если нужно обновить содержимое списка, используется метод ОБНОВИТЬ_СПИСОК.


Настройка единиц измерения

Функции журнала/Параметры

Настройка единиц измерения позволяет задать для числовых полей отображение единиц измерения в таблицах.

Поле — числовое поле, для которого нужно показывать единицу измерения.

Поле, содержащее единицу измерения — здесь указывается поле журнала, содержащее единицу измерения для числового поля.


Настройка выбора счета

Функции журнала/Параметры

Настройка выбора задает опции выбора и подстановки значения из плана счетов.

Может иметь субсчета — при выборе счета можно будет подставлять счета не последнего уровня, т.е. счета, имеющие субсчета (план счетов, функция СУБСЧЕТ).

Запрашивать аналитику — в такое поле можно ввести код счета со всеми аналитиками этого счета.


Показать в детализации

Параметры журнала

В диалоге настройки детализации указывается, какие журналы будут отображаться в диалоге редактирования записи журнала в виде подчиненной таблицы детализации. При этом журнал может иметь несколько таких настроек, которые называются видом журнала и могут использоваться при отображении, как записей журнала, так и таблиц.

Вид журнала определяется своим именем. Для добавления нового вида надо нажать кнопку [image] справа от списка видов и в появившемся диалоге указать название вида. Название должно быть уникальным, это значит, что у конкретного журнала не может быть два вида с одинаковым названием.

Для удаления вида надо выбрать его в списке и нажать кнопку [image].

Диалог настройки детализации содержит два списка журналов. Слева отображаются журналы, которые могут быть использованы в качестве детализации с этому журналу. Таковыми являются журналы, имеющие поля, ссылающиеся на этот журнал. Справа появляются журналы, которые уже отображаются в виде подчиненной таблицы.

Если журнал имеет два и более полей, ссылающиеся на этот журнал, то он может быть отображен в виде детализации не один раз, а столько, сколько ссылающихся полей он содержит. И каждая такая детализация будет состоять из условия, построенного на основе этого поля. Программа отображает слева от идентификаторов таких журналов ссылающиеся поля через точку.

Журнал может иметь более одной подчиненной таблицы детализации. В этом случае программа все они будут иметь закладки. Посредством кнопок Вверх и Вниз можно менять порядок полей в правом списке. Это отразится на порядке следования закладок в диалоге.

Для сохранения результатов выбора полей нажмите <OK>. Кнопка <Отмена> отменяет все внесенные изменения.

См. также
метод ВИДИМОСТЬ_ДЕТ
обработчик вид журнала


Первичный ключ

Первичный ключ журнала определяет уникальную комбинацию полей, по которой можно однозначно определить запись в журнале. Его использование определяет заранее существующий порядок записей в журнале и позволяет контролировать уникальность этой комбинации полей. При попытке добавления существующей записи программа выводит диалог о нарушении уникальности. Если значение первичного ключа для добавляемой записи не задано, программа будет пытаться определить его при помощи Генератора.

Журнал должен всегда иметь либо первичный ключ, либо уникальную комбинацию полей. Если это не так, будет невозможно изменить запись журнала, как вручную в таблице редактирования журнала, так и из внутреннего языка при помощи ЗАПИСАТЬ.

См. также
Функции журнала


Рисунки в журналах

Записи журнала могут содержать рисунки. Это могут быть фото товаров, сотрудников или какие-либо другие изображения.

Чтобы добавить поле с рисунком в журнал, необходимо:

1.Создать строковое поле. Поле будет содержать путь к файлу рисунка (файл может располагаться внутри базы данных или на диске компьютера).

2.Создать обработчик При выборе значения для этого строкового поля. Задача обработчика — отрабатывать пользовательский интерфейс загрузки рисунка.

3.Указать это поле в параметре Показать рисунок из поля.

Созданное поле может использоваться внутри обработчиков. При этом:

·ВИДИМОСТЬ позволяет управлять видимостью рисунка, как и для любого другого поля. Рисунки могут выводиться как в таблице, так и в диалоге.

·ДОСТУП позволяет управлять возможностью загрузки и удаления рисунка.

·Загрузка и удаление рисунка равносильно изменению поля, поэтому происходит вызов соответствующих обработчиков

·Изменение файла рисунка в других обработчиках влияет на изображение

Загрузка рисунка пользователем осуществляется посредством щелчка правой кнопкой мыши по рисунку в диалоге редактирования записи или использованием пункта контекстного меню Загрузить рисунок. Удаление рисунка осуществляется с помощью пункта контекстного меню Удалить рисунок.

При отображении рисунка в диалоге редактирования записи журнала его высота определяется по высоте диалога, а ширина может меняться пользователем по своему усмотрению.

При отображении рисунков в таблице журнала высота определяется по параметру Высота рисунков, а ширина может меняться пользователем по своему усмотрению.

Рисунки могут выводиться в отчетах. Для этого используется атрибут атЭтоРисунок. Высота рисунков в отчетах может быть указана с помощью параметра парВысотаРисунков.

См. также
Функции журнала


Режим группового выбора

После того как написаны функции журналов, поддерживающие стандартную логику работы, можно включить опцию группового выбора. Групповой выбор дает другой способ ввода детализации в основную запись. При этом, несмотря на сильное изменение в логике ввода данных, изменение в структуре обработчиков не требуется — программа сама изменит порядок выполнения обработчиков для этого интерфейса так, как требуется.

Однако в некоторых, очень нестандартных случаях, некоторые изменения потребуются и для этого надо знать порядок выполнения обработчиков в режиме группового выбора. Он следующий:

1.При добавлении новой записи в журнал детализации вызывается журнал, из которого подставляется значение первого поля журнала детализации — поля связи, присоединенный к журналу детализации как поле к полю. Такое поведение можно отменить, если воспользоваться обработчиком группового выбора. Он позволяет описать произвольную логику работы.

2.При выборе записи в таком «объединенном журнале» вызывается обработчик перед диалогом, и, если он вернул ДА, вызывается обработчик при выборе значения для поля связи и, затем, диалог редактирования записи детализации, в котором поле связи неактивно. При этом если в обработчике при выборе для поля связи есть вызов функции ВЫБОР_ЗАПИСИ, функция не вызывает диалога выбора записи а сразу же возвращает выбранную запись из присоединенного к детализации журнала.

3.При нажатии <OK> выбранные записи добавляются в детализацию, при нажатии <Отмена> не добавляются. Никакие обработчики при этом не вызываются.

Если логика работы обработчиков все-таки зависит от режима группового выбора, можно воспользоваться методом ГРУППОВОЙ_ВЫБОР объекта ЖУРНАЛ.

См. также
Групповой выбор
Функции журналов


Выражения в запросах

Выражения в ЦИКЛе ПО ЖУРНАЛУ аналогичны обычным выражениям внутреннего языка. Единственное их отличие в том, что они выполняются не на рабочей станции, а на сервере. Тем самым достигается высокое быстродействие расчетов.

Также как и обычные выражения, выражения в цикле могут использовать локальные и общие переменные, вызовы встроенных и библиотечных функций и методов. Помимо этого, выражения в цикле могут использовать поля журналов, участвующих в цикле. Над полями могут выполняться любые арифметические и логические операции. Поля и выражения, содержащие их, не могут быть аргументом встроенных функций, но могут быть аргументом функций сервера.

Поля журнала указываются в цикле своим идентификатором.

Пример.

Если журнал накладные содержит поле дата, можно написать следующий цикл:

ЦИКЛ ПО ЖУРНАЛУ накладные н (дата > ДАТА_НАЧ И дата <= ДАТА_КОН)

Если выборка идет из одного журнала или поле, участвующее цикле имеется только в одном из выбираемых журналов, этого бывает достаточно. Если это не так, программа выдаст сообщение об ошибке. Программа при указании поля просто не знает, их какого журнала его надо брать. Поэтому надо указывать принадлежность поля журналу.

Для указания принадлежности поля конкретному журналу в цикле может использоваться как идентификатор журнала, так и имя объекта ЖУРНАЛ, в который помещаются считанные в процессе прохода поля. Например, следующие условия эквивалентны:

ЦИКЛ ПО ЖУРНАЛУ накладные н (накладные.дата > ДАТА_НАЧ И накладные.дата <= ДАТА_КОН)

ЦИКЛ ПО ЖУРНАЛУ накладные н (н.дата > ДАТА_НАЧ И н.дата <= ДАТА_КОН)

Более сложная ситуация в случае, если среди выбираемых журналов один и тот же журнал встречается несколько раз. В этом случае указание идентификатора журнала будет ошибочным. Программа не знает, о каком экземпляре журнала идет речь. В этом случае все экземпляры должны иметь считываемую переменную (она может и не использоваться внутри тела цикла) и только она может использоваться для указания принадлежности поля.

Для ссылки на поле или выражение, выбираемое циклом, может использоваться имя переменной, в которую помещается значение поля или результат вычисления выражения.

Пример:

ЦИКЛ ПО ЖУРНАЛУ накладные.дата д (д > ДАТА_НАЧ И д <= ДАТА_КОН)

Результат вычисления агрегатных функций не может использоваться в цикле.

Специальные операторы сравнения

Специальные операторы РАВНО и НЕ РАВНО могут использоваться двух полей или двух выражений, которые могут принимать значение ПУСТО.

Оператор ПОДОБНО используется для сравнения строки с регулярным выражением SQL.

Оператор ПО ШАБЛОНУ используется для сравнения строки с полем, содержащим маску.

Оператор НАЧИНАЕТСЯ С используется для указания, что начало одного выражения совпадает с другим выражением.

Подзапросы

Выражения в цикле могут содержать подзапросы, возвращающие одно значение и следующие операторы, аргументами которых могут быть подзапросы, содержащие несколько значний:

·Оператор ИЗ применяется для проверки того, что значение выражения есть в результате подзапроса.

·Оператор СУЩ применяется для проверки наличия хотя бы одного значения в результате вычисления подзапроса.

·Оператор ЕДИНСТВЕННО применяется для проверки наличия и единственности значения в результате вычисления подзапроса.

·Предикаты КАКОЕ_ТО и ЛЮБОЕ определяют множество элементов, для которых выполняется оператор сравнения.

Условие цикла по журналу также является выражением, но выражением логического типа. Оно определяет условие, по которому записи выбираются из журналов.

В условии цикла можно использовать объекты ФИЛЬТР, которые выступают в роли выражений цикла логического типа. Когда программа встречает объект фильтр в запросе она имеет ввиду условие, которое он определяет. Пусть, например, определены фильтры:

в_отчетном_периоде = накладные.ФИЛЬТР(дата > ДАТА_НАЧ И дата <= ДАТА_КОН)

должники = клиенты.ФИЛЬТР(долг > 0)

Тогда следующий цикл:

ЦИКЛ ПО ЖУРНАЛУ накладные н (в_отчетном_периоде И должники)

программа будет понимать как:

ЦИКЛ ПО ЖУРНАЛУ накладные н (накладные.дата > ДАТА_НАЧ И

накладные.дата <= ДАТА_КОН И клиенты.долг)

См.также
Использование фильтров в условии
Подзапросы
Функции сервера


Подзапросы

Подзапросы являются частным случаем выражений в цикле и позволяют решить несколько задач.

Во-первых, подзапросы позволяют в любой момент обратиться к содержимому других журналов чтобы получить/вычислить какое-либо одно значение. В этом случае, в том месте, где требуется получить значение, пишется подзапрос. Его задача — выбрать значение или вычислить выражение согласно условию.

Во-вторых, подзапросы могут употребляться в специальных конструкциях СУЩ, ЕДИНСТВЕННО, ИЗ, КАКОЕ_ТО и ЛЮБОЕ, где они возвращают не одно, а множество значений.

Все подзапросы имеют следующий синтаксис:

ВЫБРАТЬ[!] <выражение> | <агрегатная функция> [(<условие на поля журналов>)] [СОРТИРОВАТЬ (<порядок сортировки>)]

Также как и всем выражениям цикла, в выбираемом выражении подзапроса и в его условии можно использовать поля журналов, участвующих в подзапросе. Вдобавок, в подзапросе можно обращаться и к полям журналов из основного цикла. Если запрос обращается к полям журналов из основного цикла, он называется коррелированным. Иначе, такой запрос называется некоррелированным. Например, следующий подзапрос в цикле будет коррелированным:

Пример 1.

ЦИКЛ ПО ЖУРНАЛУ накладные д (ВЫБРАТЬ клиенты.долг_руб

(клиенты.код = д.код_клиента) > 0)

// Перебираем накладные должников

КОНЕЦ_ЦИКЛА

а этот некоррелированным:

Пример 2.

ЦИКЛ ПО ЖУРНАЛУ накладные д (д.сумма = ВЫБРАТЬ МАКС(накладные.сумма))

// Находим самую большую накладную

КОНЕЦ_ЦИКЛА

При выборе одного значения некоррелированные подзапросы могут быть вынесены из цикла. Так последний пример мог быть преобразован так:

ВЫБРАТЬ МАКС(накладные.сумма) макс

ЦИКЛ ПО ЖУРНАЛУ накладные д (д.сумма = макс)

// Находим самую большую накладную

КОНЕЦ_ЦИКЛА

Для того чтобы из коррелированного подзапроса обратиться к полям "внешних" журналов, т.е. журналов основного цикла, используются имена объектов ЖУРНАЛ или имена переменных, являющихся результатом выбора записей. В нашем первом примере для этого используется переменная "д". Идентификаторы журналов в этом случае использовать нельзя — программа считает их "локальными" экземплярами журналов, заново определяемых в подзапросе. Так, во втором примере функция МАКС считается по своему экземпляру журнала накладные. И уже для экземпляра журнала накладные из цикла ищется запись, у которой сумма равна результату подзапроса.

Другой способ обратиться к полям "внешних" журналов — это использование оператора ":".

Также как и для основного цикла, для всех журналов, участвующих в подзапросе, программа добавляет условия связи. Однако она никогда не добавляет условия связи между журналами, используемыми в подзапросе и в основном цикле. Связи со "внешними" журналами добавляются вручную. Так, в нашем первом примере было добавлено условие клиенты.код = д.код_клиента.

Для того чтобы отключить добавление связей в подзапросе, достаточно указать ! (восклицательный знак) после ключевого слова ВЫБРАТЬ.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Выражения в цикле


Функции сервера

Функции сервера представляют собой варианты встроенных функций, только выполняемые на уровне сервера. Такая реализация дает максимально возможную производительность при выполнении запросов, т.к. функции выполняются ядром сервера без использования каких-либо прослоек.

Используются функции сервера внутри ЦИКЛа ПО ЖУРНАЛУ. Их аргументами могут быть поля выбираемых журналов или выражения, использующие их.

Когда программа встречает функцию внутри выражения в запросах, она всегда проверяет, не имеет ли она серверный аналог. Если это так, используется функция сервера. В противном случае используется локальный вариант. Функции, осуществляющие интерфейс с пользователем, такие как ВОПРОС или ВВЕСТИ_ЗНАЧЕНИЕ, не отражены в функциях сервера — это чисто локальные функции. Также, можно принудить программу использовать локальный вариант даже при наличии серверного варианта. Для этого надо использовать оператор ":".

Пример 1:

// В условии ниже будет использоваться серверная функция АБС

ЦИКЛ ПО ЖУРНАЛУ накладные о (о.сумма > АБС(мин))

// В условии ниже будет использоваться локальная функция АБС

ЦИКЛ ПО ЖУРНАЛУ накладные о (о.сумма > :АБС(мин))

Список функций сервера может расширяться. При разработке конфигураций на платформе Инфо-Предприятие, могут создаваться свои функции сервера для реализации необходимой функциональности. Ниже перечисляются функции, которые доступны по умолчанию:

АБС

БИН_И

БИН_ИЛИ

БИН_ИСК

БИН_НЕ

ВЕРХСЧ

ВСЕГО_СЛОВ

ГОД

ДА

ДЕЛ

ДЕНЬ

ДЛИНА

ДРОБ

ЕСТЬ_СУБСТАТЬИ

ЕСТЬ_СУБСЧ

ЗАГЛ

ЗНАЧ

КВАРТАЛ

ЛОГ

МАКС

МЕС

МИН

МНОЖЕСТВО

НАЗВ

НЕТ

НЕ_ПУСТО

ОКРУГЛЕНИЕ

ПЕРИОД_КОН

ПЕРИОД_НАЧ

ПОДСВЕТКА

ПОДСТР

ПОДСЧ

ПОЗ

СТАТЬЯ

СТРОЧ

СЛОВО

СТАТЬЯ

СТАТЬЯ_ДОХ

СТАТЬЯ_РАСХ

СТАТЬЯ_СУЩ

СТР

СЧЕТ_АКТ

СЧЕТ_ПАС

СЧЕТ_СВЕР

СЧЕТ_СУЩ

СТАТЬЯ_ДОХ

СТАТЬЯ_РАСХ

СТАТЬЯ_СУЩ

УБР_ПРОБ

УРОВЕНЬ

ЧИСЛО

ЭКСП

Функции сервера, которые не представлены локальными функциями:

ДАТА_СЕРВ — возвращает текущую дату на сервере

ВРЕМЯ_СЕРВ — возвращает текущее время на сервере

ЕСЛИ — условный оператор, серверный аналог функции ?.

ЗНАЧЦ — вариант функции ЗНАЧ, преобразующий значение к целому числу.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Выражения в цикле
Встроенные функции по группам


Оператор ":"

Оператор ":" (двоеточие) делает расширение контекста идентификатора. Он может указываться перед идентификатором журнала, поля журнала или функцией сервера внутри выражений в запросах. Смысл этого оператора — сказать программе, что следующий за ним идентификатор является "внешним" для данного выражения.

Есть три случая, когда может понадобиться этот оператор:

·Когда из ЦИКЛа ПО ЖУРНАЛУ надо обратиться к переменным типа ЖУРНАЛ, совпадающим по имени с идентификатором журнала или к локальным переменным, совпадающим по имени с полями выбираемых журналов.

·Когда из подзапроса надо обратиться к журналам основного цикла.

·Когда надо использовать не функции сервера, а локальные функции.

Рассмотрим все три варианта на примерах.

Пример 1.

Допустим, нам надо запрoсить обработать накладные от соответствующего клиента. Клиента выбирает пользователь. Следующий фрагмент выполняет указанные действия:

ВЫБОР_ЗАПИСИ(клиенты) // запрашиваем у пользователя клиента и загружаем его

// в переменную клиенты типа ЖУРНАЛ

ЦИКЛ ПО ЖУРНАЛУ накладные н (н.клиент = :клиенты.код)

// ...

Здесь, указав ":" в условии цикла, мы сообщили программе, что клиенты — это "внешняя" переменная типа ЖУРНАЛ. Если бы мы не указывали ":", то ввиду того, что имя переменной совпадает с идентификатором журнала, программа посчитала бы, что это еще один журнал, который участвует в цикле. Получился бы цикл с выборкой из двух журналов: накладные и клиенты.

Пример 2.

Допустим, нам надо из обработчика перед записью журнала накладные пробежаться по всем накладным от этого клиента, чтобы проверить уникальность номера добавляемого документа.

ФУНКЦИЯ ЖУРНАЛ ЛОГИКА: ПередЗаписью ДЛЯ_ЖУРНАЛА(накладные)

ЕСЛИ НОВАЯ ТО

ВЫБРАТЬ накладные н (клиент = :клиент И номер = :номер)

ЕСЛИ НЕ н.НОВАЯ ТО

СООБЩЕНИЕ("Накладная с этим номером от этого клиента уже вводилась")

ВЫХОД(НЕТ)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

ПередЗаписью = ДА

КОНЕЦ_ФУНКЦИИ

Здесь, указав ":" перед клиенты и номер в условии ВЫБРАТЬ, мы сообщили программе, это не поля журнала накладные, из которого происходит выборка записей, а локальные переменные. В данном конкретном случае это поля объекта ЖУРНАЛ, доступные внутри метода ПередЗаписью. Т.е. условие номер = :номер говорит: поле "номер" выбираемой записи должно равняться полю "номер" объекта ЖУРНАЛ, для которого выполняется метод ПередЗаписью.

Пример 3.

Допустим, надо пробежаться по всем товарам и вывести оборот по каждому из них. Это можно сделать при помощи подзапроса:

ЦИКЛ ПО ЖУРНАЛУ товары т,

ВЫБРАТЬ СУММА(накладные_доп.колич) (накладные_доп.товар = :товары.код) с

// ...

Внутри подзапроса все идентификаторы журналов считаются локальными, поэтому если бы перед товары мы бы не указали ":", программа посчитала бы, что это не переменная из основного цикла, а новый журнал, участвующий в подзапросе. Программа посчитала бы, что подзапрос выбирает записи из двух журналов: накладные_доп и товары.

При указании двоеточия новый журнал будет добавляться к выбираемым журналам основного цикла, так, как будто мы указали их в основном цикле. Если бы в предыдущем примере товары были бы нам не нужны, можно было бы написать так:

ЦИКЛ ПО ЖУРНАЛУ

ВЫБРАТЬ СУММА(накладные_доп.колич) (накладные_доп.товар = :товары.код) с

// ...

Цикл все равно прошелся бы по всем товарам.

Оператор ":" может быть двойным. Так, если бы нам надо было бы обратиться из подзапроса к локальной переменной, совпадающей с идентификатором журнала или поля, мы бы написали, например, так:

::товары.код

Для вложенных подзапросов каждое следующее указание оператора ":" будет означать обращение к переменным из "внешнего" подзапроса. Каков уровень вложенности подзапроса, столько и операторов ":" можно указывать.

Пример 4.

Функции сервера совпадают по именам с обычными функциями. Всегда, когда программа встречает функцию внутри выражения в ЦИКЛе ПО ЖУРНАЛУ, она считает ее функцией сервера, значит и выполняться она будет на сервере. Для того чтобы указать программе, что это локальная функция можно использовать оператор ":". Однако не стоит забывать, что после этого аргументами этой функции не могут быть поля выбираемых журналов.

Пример:

выбираемый_код = 1

ф = накладные.ФИЛЬТР(клиент = :ЗНАЧ(выбираемый_код))

Здесь мы указали, что ЗНАЧ — локальная функция, а не функция сервера.

См. также
ЦИКЛ ПО ЖУРНАЛУ


Журналы-процедуры в цикле

Наравне с другими журналами аналитиками в ЦИКЛе ПО ЖУРНАЛУ могут участвовать и журналы-процедуры. Такие журналы могут выполнять какие-либо расчеты на сервере и выдавать записи согласно заданному алгоритму. Результатом работы процедуры может быть одно или несколько значений или набор данных. В последнем случае результат подобен обычным таблицам, и использовать его можно так же, как и другие журналы-таблицы.

Журналы-процедуры могут иметь входные параметры, которые определяются при создании процедуры. При выборе записи из журнала-процедуры параметры указываются после идентификатора:

<идентификатор журнала>(<параметр1>[,<параметр2>[,...]]) [<модификатор выборки>] [<результат>]

В результате, программа выполнит процедуру, и результаты ее расчетов будут последовательно загружаться в переменную <результат> типа ЖУРНАЛ. При обращении к полю процедуры параметры указываются после указания поля:

<идентификатор журнала>.<поле>(<параметр1>[,<параметр2>[,...]]) [<модификатор выборки>] [<результат>]

В результате, программа выполнит процедуру, и результат ее расчетов под именем <поле> будет последовательно загружаться в переменную <результат> соответствующего типа.

Параметры процедуры могут быть произвольным выражением цикла. Параметры не могут строиться из полей журнала, который будет объединяться с результатом расчета процедуры. В этом случае программа выдает соответствующее сообщение об ошибке.

Пример.

Если не совсем понятно, то задумайтесь над таким фактом. Если допустить, что можно в качестве параметров употреблять поля из других журналов, участвующих в цикле наравне с процедурой, то почему нельзя употреблять результат расчета той же процедуры. И что получаем:

ВЫБРАТЬ процедура(результат.поле) результат

Интересно, можно ли этому придумать ... ну если не разумную интерпретацию, то хотя бы способ реализации?

При указании идентификатора журнала-процедуры параметры ее вызова указываются один раз. В последующем при указании идентификатор они не указываются.

Пример 1.

Допустим, существует процедура просроченные, выявляющая счета из указанного временного интервала, по которым не была вовремя произведена оплата. Алгоритм самой процедуры может быть сколь угодно сложным и меняться независимо от изменения алгоритма на внутреннем языке. Например, процедура может просто смотреть на дату счета и, если с момента выставления счета прошло достаточно времени, и он не был оплачен, считать его просроченным. Возможно, в логике процедуры может содержаться проверка на то, выставлен ли счет организации, с которой заключен договор с определенным сроком оплаты поставок. И вообще, она может содержать любую логику, но главное — она возвращает уникальные номера счетов (поле ид), которые считает просроченными. Нам надо вывести на экран все просроченные счета. Для этого мы пишем:

и = 1

ЦИКЛ ПО ЖУРНАЛУ просроченные(ДАТА_НАЧ, ДАТА_КОН), счета с (с.ид = просроченные.ид)

ВЫВЕСТИ(1, и, с.номер)

ВЫВЕСТИ(10, и, с.дата)

ВЫВЕСТИ(20, и, с.клиент)

и++

КОНЕЦ_ЦИКЛА

Здесь в результате работы процедуры просроченные будут получены уникальные номера счетов ид, которые будут выведены вместе с другими полями журнала счета номер, дата, клиент. Условие с.ид = просроченные.ид обязательно, ведь программа не знает, какого рода данные возвращает процедура и как они связаны со счетами.

Пример 2.

Допустим, процедура сумма_с_налог вычисляет сумму исходя из варианта включения налога в цену и ставки налога. Для того чтобы выдать сумму выручки по каждой накладной надо написать:

и = 1

ЦИКЛ ПО ЖУРНАЛУ накладные о, накладные_доп[*] д, товары[*] т

СУММА(ВЫБРАТЬ сумма_с_налог.сумма(о.ндс { вариант включения налога },

т.ставка { ставка налога для товара },

д.цена * д.колич * (1 - д.скидка%) * о.курс { формула, вычисляющая сумму } )) выручка

ВЫВЕСТИ(1, и, о.номер)

ВЫВЕСТИ(10, и, о.дата)

ВЫВЕСТИ(20, и, выручка)

и++

КОНЕЦ_ЦИКЛА

Здесь по записям журналов товары и накладные_доп группировка не происходит, т.к. они имеют соответствующий модификатор выборки, а поля этих журналов не используются. Это нужно для определения имен д и т, которые потом используются в подзапросе, выполняющем вычисление процедуры.

Примеры 1 и 2 показывают два различных способа использования процедур. В примере 1 процедура возвращает набор данных, к которому потом добавляются записи другого журнала. В примере 2 процедура возвращает одно значение, выбираемое при помощи подзапроса, которое потом суммируется.

См. также
ЦИКЛ ПО ЖУРНАЛУ


Модификаторы выборки

Перед каждой итерацией цикла программа загружает поля журнала в переменную типа ЖУРНАЛ, построенную по соответствующему идентификатору. По умолчанию программа загружает только те поля, к которым происходит обращение (оптимизация выборки). Если к объекту типа ЖУРНАЛ, считываемому в ЦИКЛе ПО ЖУРНАЛУ обращаются в контексте, когда требуются уже все поля журнала, например, вызывается метод объекта, присваивают объектную переменную другой или сравнивают объектные переменные, программа делает дополнительный запрос к серверу для получения значений остальных полей.

Оптимизация выборки отключается для всех журналов, из которых программа считывает данные, если в ЦИКЛе ПО ЖУРНАЛУ есть агрегатные функции (т.к. иначе это приводит к изменению логики работы).

Следующий пример иллюстрирует стандартное поведение программы.

ЦИКЛ ПО ЖУРНАЛУ клиенты к // Программа будет считывать только три поля из журнала

// клиенты - код, название и долг, т.к. только они используются

// в цикле

ВЫВЕСТИ(1, и, к.код)

ЕСЛИ к.долг > 0 ТО

СООБЩЕНИЕ("По " + к.название + "Есть задолжность!!!")

к.РЕДАКТИРОВАТЬ // Здесь программа выполнит дополнительный запрос

// для получения значения других полей

КОНЕЦ_ЕСЛИ

и++

КОНЕЦ_ЦИКЛА

Замечание!

Из этого примера напрашивается вывод: объектные переменные, участвующие в цикле желательно не сравнивать, не присваивать их другим объектным переменным и не вызывать для них методов. Это дает большее быстродействие.

Такая логика работы является наиболее оптимальной для большинства задач и без особой надобности ее менять не нужно. Однако для особых случаев была предусмотрена возможность изменять алгоритм загрузки полей журнала. Для этого устанавливаются модификаторы выборки. Они указываются сразу после идентификатора журнала в цикле и действуют только на загрузку полей конкретного объекта ЖУРНАЛ. Существуют следующие модификаторы выборки полей журнала:

! (восклицательный знак) — отключает оптимизацию выборки, программа всегда будет загружать все поля. Как правило, это приводит к увеличению кол-ва информации, передаваемой с сервера на клиентский компьютер и, как следствие, к замедлению работы. Отключение оправдано только в случае, когда к объектным переменным обращаются в контексте, когда требуются все поля записи. В каждом случае эффективность такой модификации выборки проверяется экспериментально. Для простых случаев программа выдает соответствующую подсказку.

Пример.

ЦИКЛ ПО ЖУРНАЛУ клиенты! к

к.ВывестиКлиента

КОНЕЦ_ЦИКЛА

[<список полей>] — говорит о необходимости выбирать только указанные поля журнала. При проходе цикла только указанные поля будут записаны в итерационную переменную. При обращении к другим полям будет выдаваться сообщение об ошибке. При попытке сравнить, присвоить или вызвать метод для считываемого объекта, будет выдаваться сообщение об ошибке. Указание списка полей нужно только при использовании агрегатных функций или ключевого слова УНИК.

Пример.

ЦИКЛ ПО ЖУРНАЛУ клиенты[код] к, СУММА(накладные.сумма) с

ВЫВЕСТИ(2, и, к.код)

ВЫВЕСТИ(10, и, с)

и++

КОНЕЦ_ЦИКЛА

[*] — Включает оптимизацию выборки для конкретного журнала при использовании агрегатных функций (которая в этом случае по умолчанию отключена).

Пример.

ЦИКЛ ПО ЖУРНАЛУ клиенты[*] к, накладные[*] н, СУММА(накладные.сумма) с

задолжность[к.код,н.договор] += с

КОНЕЦ_ЦИКЛА

См. также
ЦИКЛ ПО ЖУРНАЛУ


Тип связки

Программа добавляет условия связи журналов к основному условию цикла. Однако связи могут быть как обязательными, так и нет. Если связь необязательная, поле, ссылающееся на значение другой таблицы, может содержать также и пустое значение. При обычной связи такие значения никак не будут выбираться циклом, т.к. цикл выбирает все пары записей журналов, ссылающиеся друг на друга. Ну а если нет ссылки — нет и пары. Для того чтобы при выборе из пары журналов учитывалась такая ситуация, используются специальные типы связки:

·<< — Разрешает выбирать записи журнала слева, не ссылающиеся ни на какие записи журнала справа. В этом случае записи справа содержат пустые значения.

·>> — Разрешает выбирать записи журнала справа, не ссылающиеся ни на какие записи журнала слева. В этом случае записи слева содержат пустые значения.

·>< — Разрешает выбирать записи журнала слева и справа, не ссылающиеся ни на какие записи журнала справа и слева. В этом случае не ссылающиеся записи содержат пустые значения.

Приведем несколько примеров:

Пример 1.

Допустим, имеется журнал накладные и журнал договора, содержащий договора, заключенные с нашими клиентами. Журнал накладные имеет поле договор_ид, ссылающееся на поле ид — уникальный код договора в журнале договора. Поле договор_ид может содержать значение, в случае если отгрузка шла по договору, или быть пустым, в противном случае. Также, журнал накладные содержит поля дата и номер — дату и номер накладной, а журнал договора — поле название, задающее название договора. Теперь нам надо вывести все накладные с указанием названия договора, если такой есть. Мы пишем так:

и = 1

ЦИКЛ ПО ЖУРНАЛУ накладные о, договора д

ЯЧЕЙКА["Номер":1, и] = о.номер

ЯЧЕЙКА["Дата":2, и] = о.дата

ЯЧЕЙКА["Договор":3, и] = д.название

и++

КОНЕЦ_ЦИКЛА

И обнаруживаем, что в отчете оказались только накладные с указанным в них договором. Если в накладных договора нет, такие накладные не отображаются. Чтобы исправить эту ситуацию запрос переписывается так:

ЦИКЛ ПО ЖУРНАЛУ накладные о << договора д

Здесь, символы << означают, что записям журнала накладные разрешено никуда не ссылаться, поле договор_ид может быть равно ПУСТО. В этом случае все поля записи д журнала договора будут также содержать пустые значения.

Пример 2.

Допустим, что теперь нам надо вывести еще и процент вид скидки, которую мы дали нашим покупателям. И пусть скидки хранятся в журнале скидки, которые имеет поля название, процент и ид. Для указания скидки журнал накладные имеет поле скидки_ид, ссылающееся на журнал скидки. Алгоритм вывода будет следующим:

и = 1

ЦИКЛ ПО ЖУРНАЛУ скидки с >> накладные о << договора д

ЯЧЕЙКА["Номер":1, и] = о.номер

ЯЧЕЙКА["Дата":2, и] = о.дата

ЯЧЕЙКА["Договор":3, и] = д.название

ЯЧЕЙКА["Вид скидки":4, и] = с.название

ЯЧЕЙКА["%":4, и] = с.процент

и++

КОНЕЦ_ЦИКЛА

Здесь символы >> означает, что записям журнала накладные разрешено не ссылаться на скидки. Этот же цикл можно было бы переписать так:

накладные о << договора д << скидки с

или так:

скидки с >> договора д >> накладные о

Результат будет один и тот же.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Выражения в цикле


Условия связи

Как правило журналы аналитики бывают связаны друг с другом. И как правило при выборе журналов внутри цикла необходимо добавлять условия ссылок между журналами. Пусть, например, стоит задача выдать информацию отгрузках, показав при этом наименование покупателя, дату и номер накладной. В этом случае пишется следующий цикл:

ЦИКЛ ПО ЖУРНАЛУ накладные н, клиенты к (н.клиент = к.код)

// Обрабатываем поля н.номер - номер накладной, н.дата - дата накладной и

// к.название - название покупателя

Условие н.клиент = к.код говорит о том, что программа должна загрузить в переменную "к" данные того клиента, которому произошла отгрузка. Если бы в цикле было не два, а больше журналов, например, надо было бы вывести информацию о складе, с которого происходила отгрузка, договоре, товарах и т.п. пришлось описывать еще много других условий.

Чтобы упростить жизнь разработчика конфигураций, программа Инфо-Предприятие сама добавляет необходимые условия ссылочной целостности. Поэтому их указывать в цикле на надо. В данном примере достаточно просто написать:

ЦИКЛ ПО ЖУРНАЛУ накладные н, клиенты к

// Обрабатываем ...

Программа сама добавит условие н.клиент = к.код. И как правило пользователю не стоит думать о том, как связаны журналы — программа все сделает сама.

Программа корректно обрабатывает ссылочную целостность не только для журналов-таблиц, но и для журналов-представлений. В последнем случае программа просматривает таблицы, из которых происходит выбор записей журнала-представления. Программа перебирает эти таблицы с другими, встречающимися в цикле, в том числе и с таблицами, из которых строятся другие журналы-представления. Перебрав все пары таблиц, выборка из которых фактически и происходит, программа добавит все необходимые ссылки.

Программа никак не может обрабатывать ссылки внутри журналов-процедур, которые могут иметь достаточно сложную структуру выходных данных. Связи для них всегда добавляются вручную.

Cуществует ситуация, когда связи не могут быть добавлены автоматически. Программа не может добавить связи, если один и тот же журнал встречается в выборке несколько раз. Программа в этом случае выдает соответствующее сообщение об ошибке.

Автоматическое добавление ссылок можно отключить. Это может пригодиться при сложной ссылочной целостности, когда в цикле обрабатывается много журналов, имеющих много ссылок между собой и не все ссылки можно добавлять в условие цикла. Для этого следует указать ! (восклицательный знак) после ключевого слова ПО или ЖУРНАЛУ.

Пример:

ЦИКЛ ПО ЖУРНАЛУ! накладные н, клиенты к (н.клиент = к.код)

или

ЦИКЛ ПО! накладные н, клиенты к (н.клиент = к.код)

Отключение ссылок просто означает, что соответствующее условие программой не будет добавляться. В этом случае Вы сами добавляете необходимые условия.

Также возможно указание своих условий на связь конкретных журналов. Условие указывается после второго журнала и выделяется символом вертикальной черты "|":

ЦИКЛ ПО ЖУРНАЛУ! накладные н, клиенты к |н.клиент = к.код|

Данный цикл полностью идентичен предыдущему. Разница между добавлением условия связи в общее условие цикла и указанием его непосредственно после журнала появится только при использовании типов связки << и >>.

Замечание!

Ссылка, при которой журнал ссылается сам на себя, программой автоматически не добавляется. При необходимости такую ссылку надо добавить вручную.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Тип связки
Пример


Загрузка и сохранение полей записи в полях объекта

Следующие особенности используются при работе с журналами аналитики, созданными вне программы Инфо-Предприятие и имеющими поэтому дополнительные возможности, в частности, возможность хранения пустых значений (NULL).

Термин поле, встречающийся далее имеет два смысла: поле соответствующего объекта в базе данных: таблицы, представления или процедуры и поле объекта внутреннего языка типа ЖУРНАЛ, к которому происходит обращение в алгоритме. Поля объекта внутреннего языка соответствуют полям объекта в базе данных. Обмен данными между ними происходит при:

·Загрузке данных записи в объект внутреннего языка, например в ЦИКЛе ПО ЖУРНАЛУ или при использовании навигационных методов объекта ЖУРНАЛ

·Сохранении полей объекта внутреннего языка в базе данных, например при выполнении методов ЗАПИСАТЬ или ДОБАВИТЬ объекта ЖУРНАЛ.

При этом действуют следующие правила:

·Строковые поля в базе данных, имеющие значение NULL в поля объекта загружаются в виде пустых строк. Пустые строки в полях объекта сохраняются в базе данных в виде пустой строки, если поле в базе данных не допускает значение NULL (стоит ограничитель NOT NULL). Если поле в базе данных допускает значение NULL, пустые строки сохраняются как NULL.

·Нестроковые поля в базе данных, имеющие значение NULL в полях объекта загружаются в виде значения ПУСТО. Нестроковые значения в базе данных принимают значение NULL, если соответствующее поле объекта имеет значение ПУСТО. Иначе они соответствуют значениям поля объекта.

Так как для ПУСТО действуют особые правила выполнения арифметических операций, то эту особенность надо учитывать при работе с полями журналов.

См. также
Журналы аналитики
Объекты


Агрегатные функции

Агрегатные функции вычисляются для каждого набора данных, выбираемых ЦИКЛом ПО ЖУРНАЛУ по всем наборам данных, циклом не выбираемым.

СУММА | подсчитывает сумму выражения по всем записям
МИН | подсчитывает минимум выражения по записям
МАКС | подсчитывает минимум выражения по записям
СРЕДНЕЕ | подсчитывает среднее от выражения по записям журнала
СПИСОК | конкатенация значений с заданным разделителем
ВСЕГО | выдает кол-во записей
Статистические функции
Функции линейной регрессии

Аргументом функций СУММА и СРЕДНЕЕ должно быть выражение числового типа от полей журнала, а аргументом функций МИН, МАКС, ВСЕГО — могут быть выражения любого типа.

Функции СУММА, СРЕДНЕЕ и ВСЕГО возвращают результат числового типа, а функции МИН и МАКС — того типа, которым был аргумент этих функций. В цикле по журналу может участвовать неограниченное кол-во функций. Они могут произвольным образом чередоваться с определениями журналов, входящими в цикл. При этом их смысл и значение не меняется.

Дополнительное условие

Все агрегатные функции допускают наложение дополнительных условий. Задание условия меняет алгоритм обработки агрегатной функции. Только записи, попадающие под дополнительное условие, будут использоваться для расчета этой конкретной агрегатной функции.

Для задания условия оно указывается сразу после агрегатной функции. Условие начинается и заканчивается вертикальной чертой.

Синтаксис:

<агрегатная функция>(<аргументы>) | <дополнительное условие> |

Пример:

ВЫВЕСТИ(2,2,"Кол-во накладных с суммой > 1000 по покупателям")

и = 4

ЦИКЛ ПО ЖУРНАЛУ клиенты к, накладные, ВСЕГО |накладные.сумма>1000| в

ВЫВЕСТИ(2, и, к.название, 90)

ВЫВЕСТИ(100,и, СТР(в))

и++

КОНЕЦ_ЦИКЛА

Дополнительное условие действует только на результат агрегатной функции. Так, если переписать этот пример, перенеся дополнительное условие на агрегатную функцию в основное условие цикла:

ВЫВЕСТИ(2,2,"Кол-во накладных с суммой > 1000 по покупателям")

и = 4

ЦИКЛ ПО ЖУРНАЛУ клиенты к, накладные, ВСЕГО в (накладные.сумма>1000)

ВЫВЕСТИ(2, и, к.название, 90)

ВЫВЕСТИ(100,и, СТР(в))

и++

КОНЕЦ_ЦИКЛА

То если первый цикл при отсутствии у клиента накладных с суммой > 1000 руб выведет этого клиента с кол-вом накладных равным 0, то второй цикл пропустит таких клиентов.


Цикл Журнала : ВСЕГО

Функция ВСЕГО описание пример примечания

Описание:

Функция ВСЕГО для каждого набора данных, выбираемых ЦИКЛом ПО ЖУРНАЛУ подсчитывает количество записей по всем наборам данных, циклом не выбираемым. Функция ВСЕГО(<выражение>) подсчитывает количество уникальных повторений результата вычисления выражения для каждого набора данных, выбираемых ЦИКЛом ПО ЖУРНАЛУ по всем наборам данных, циклом не выбираемым. Аргумент <выражение> может иметь любой тип. Тип Результата — числовой.

Пример:

ВЫВЕСТИ(2,2,"Кол-во накладных по покупателям")

и = 4

ЦИКЛ ПО ЖУРНАЛУ клиенты к, накладные, ВСЕГО в

ВЫВЕСТИ(2, и, к.название, 90)

ВЫВЕСТИ(100,и, СТР(в))

и++

КОНЕЦ_ЦИКЛА

В этом примере для каждого покупателя (запись в справочнике клиенты) подсчитывается количество всех накладных (количество записей в журнале накладные), проходивших по этому покупателю (условие связки к.код = накладные.клиент программа добавляет автоматически).

Замечание!

Если в цикле не выбираются значения, происходит подсчет количества всех записей, удовлетворяющим условию. При указании параметра <выражение> у функции, происходит подсчет количества уникальных повторений результата вычисления выражения. Цикл проходит один раз, даже если ни одной записи, удовлетворяющей условию нет. В этом случае вместо ЦИКЛ ПО ЖУРНАЛУ логичнее использовать ВЫБРАТЬ.

Пример:

ВЫБРАТЬ ВСЕГО(накладные.дата) в (дата > ДАТА_НАЧ И дата <= ДАТА_КОН)

СООБЩЕНИЕ("В отчетном периоде " + СТР(в) + " дней были отгрузки")

В этом примере подсчитывается количество дней в отетном периоде, когда были какие-либо отгрузки (кол-во уникальных повторений поля накладные.дата.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Пример использования функций


Цикл Журнала : МИН, МАКС

Функции МИН,МАКС описание пример примечания

Описание:

Функции МИН(<выражение>) и МАКС(<выражение>) соответственно подсчитывают минимум и максимум выражения. Минимум и максимум считаются для каждого набора данных, выбираемых ЦИКЛом ПО ЖУРНАЛУ по всем наборам данных, циклом не выбираемым. Аргумент <выражение> может иметь любой тип. Для полей строкового типа: строк, счетов, объектов при сравнении используется алфавитный порядок. Для полей логического типа НЕТ < ДА. Тип результата функции совпадает с типом аргумента <выражение>.

Пример:

ВЫВЕСТИ(2,2,"Минимальная и максимальная сумма накладной по покупателям")

и = 4

ЦИКЛ ПО ЖУРНАЛУ клиенты к, МИН (накладные.сумма) мин, МАКС(накладные.сумма) макс
ВЫВЕСТИ(2, и, к.название, 90)
ВЫВЕСТИ(100,и, СТР(мин:2),20)
ВЫВЕСТИ(130,и, СТР(макс:2),20)
и++
КОНЕЦ_ЦИКЛА

В этом примере для каждого покупателя (запись в справочнике клиенты) подсчитывается минимальная и максимальная сумма накладной (минимальное и максимальное значение поля сумма из журнала накладные), проходивших по этому покупателю (условие связки к.код = накладные.клиент программа добавляет автоматически).

Замечание!

Если в цикле не выбираются значения, происходит подсчет функций по всем записям, удовлетворяющим условию. При этом цикл проходит один раз, даже если ни одной записи, удовлетворяющей условию нет. В этом случае вместо ЦИКЛ ПО ЖУРНАЛУ логичнее использовать ВЫБРАТЬ.

Пример:

ВЫБРАТЬ МИН(накладные.сумма) мин

СООБЩЕНИЕ("Минимальная сумма накладной " + СТР(с:2))

В этом примере находится минимальная сумма накладной.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Пример использования функций


Цикл Журнала : СУММА

Функция СУММА

Описание:

Функция СУММА(<выражение>) подсчитывает сумму выражения. Сумма считается для каждого набора данных, выбираемых ЦИКЛом ПО ЖУРНАЛУ по всем наборам данных, циклом не выбираемым. Аргумент <выражение> должен иметь числовой тип. Тип результата — числовой.

Пример:

ВЫВЕСТИ(2,2,"Движение товаров по покупателям")

и = 4

ЦИКЛ ПО ЖУРНАЛУ клиенты к, СУММА(накладные.сумма) с

ВЫВЕСТИ(2, и, к.название, 90)

ВЫВЕСТИ(100, и, СТР(с:2))

и++

КОНЕЦ_ЦИКЛА

В этом примере для каждого покупателя (запись в справочнике клиенты) подсчитывается сумма всех накладных (суммирование записей из журнала накладные по полю сумма), проходивших по этому покупателю (условие связки к.код = накладные.клиент программа добавляет автоматически)

Замечание!

Если в цикле не выбираются значения, происходит подсчет функций по всем записям, удовлетворяющим условию. При этом цикл проходит один раз, даже если ни одной записи, удовлетворяющей условию нет. В этом случае вместо ЦИКЛ ПО ЖУРНАЛУ логичнее использовать ВЫБРАТЬ.

Пример:

ВЫБРАТЬ СУММА(накладные.сумма) с

СООБЩЕНИЕ("Сумма всех накладных " + СТР(с:2))

В этом примере суммируются все записи из журнала накладные по полю сумма.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Пример использования функций


Цикл Журнала : СРЕДНЕЕ

Функция СРЕДНЕЕ описание пример примечания

Описание:

Функция СРЕДНЕЕ(<выражение>) подсчитывает арифметическое среднее выражения. Сумма считается для каждого набора данных, выбираемых ЦИКЛом ПО ЖУРНАЛУ по всем наборам данных, циклом не выбираемым. Аргумент <выражение> должно иметь числовой тип. Тип результата — число.

Пример:

ВЫВЕСТИ(2,2,"Подсчет средней цены товаров")

и = 4

ЦИКЛ ПО ЖУРНАЛУ товары т, СРЕДНЕЕ (накладные_доп.цена) сред
ВЫВЕСТИ(2, и, к.наименование, 90)
ВЫВЕСТИ(100,и, СТР(сред:2),20)
и++
КОНЕЦ_ЦИКЛА

В этом примере для каждого товара (запись в справочнике товары) подсчитывается средняя цена (среднее значение поля сумма из журнала накладные_доп) по накладным с этим товаром (условие связки т.код = накладные_доп.товар программа добавляет автоматически).

Замечание!

Если в цикле не выбираются значения, происходит подсчет среднего по всем записям, удовлетворяющим условию. При этом цикл проходит один раз, даже если ни одной записи, удовлетворяющей условию нет. В этом случае вместо ЦИКЛ ПО ЖУРНАЛУ логичнее использовать ВЫБРАТЬ.

Пример:

ВЫБРАТЬ СРЕДНЕЕ(накладные.сумма) сред

СООБЩЕНИЕ("В среднем каждая накладная был на " + СТР(сред:2) + " рублей")

В этом примере находится средняя сумма накладных.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Пример использования функций


Цикл Журнала : СПИСОК

Функция СПИСОК описание пример примечания

Описание:

Функция СПИСОК(<выражение> [,<разделитель>]) формирует строку конкатенацией выражения через запятую. При указании параметра <разделитель> вместо запятой будет использоваться указанная строка. Аргумент <выражение> не обязан быть строкой, он будет приведен к строке автоматически. Конкатенация формируется для каждого набора данных, выбираемых ЦИКЛом ПО ЖУРНАЛУ по всем наборам данных, циклом не выбираемым. Тип результата — строка.

Пример:

ВЫВЕСТИ(2,2,"Вывод списка накладных с этим товаром")

и = 4

ЦИКЛ ПО ЖУРНАЛУ товары т, СПИСОК (накладные.номер) список_накладных
ВЫВЕСТИ(2, и, к.наименование, 90)
ВЫВЕСТИ(100,и, список_накладных,20)
и++
КОНЕЦ_ЦИКЛА

В этом примере для каждого товара (запись в справочнике товары) формируется список накладных с этим товаром (условие связки т.код = накладные_доп.товар программа добавляет автоматически) в переменной «список_накладных».

Замечание!

Если в цикле не выбираются значения, происходит конкатенация всех значений, удовлетворяющих условию. При этом цикл проходит один раз, даже если ни одной записи, удовлетворяющей условию нет. В этом случае вместо ЦИКЛ ПО ЖУРНАЛУ логичнее использовать ВЫБРАТЬ.

Пример:

ВЫБРАТЬ СПИСОК(накладные.номер) список_накладных

СООБЩЕНИЕ("Список накладных " + список_накладных)

В этом примере выводится список всех накладных через запятую.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Пример использования функций


Цикл Журнала : Статистические функции

Статистические функции описание пример примечания

Описание:

Статистические функции являются агрегатными функциями. Тип результата — число.

Функция, синтаксис | Описание
КОРР(<выражение1>, <выражение2>) | Коэффициент корреляции
КОВАР_СОВ(<выражение1>, <выражение2>) | Ковариация совокупности
КОВАР_ВЫБ(<выражение1>, <выражение2>) | Выборочная ковариация
ОТКЛ_СРЕД(<выражение>) | Среднеквадратичное отклонение
ОТКЛ_СТАНД(<выражение>) | Стандартное отклонение
ДИСП_ВЫБ(<выражение>) | Выборочная дисперсия
ДИСП_ВЫБ_Н(<выражение>) | Несмещенная выборочная дисперсия (FB4)

Пример:

ВЫВЕСТИ(2,2,"Подсчет среднеквадратичного отклонения")

и = 4

ЦИКЛ ПО ЖУРНАЛУ клиенты к, ОТКЛ_СРЕД (накладные.сумма) откл_сред
ВЫВЕСТИ(2, и, к.название, 90)
ВЫВЕСТИ(100,и, СТР(откл_сред:2),20)
и++
КОНЕЦ_ЦИКЛА

В этом примере для клиента (запись в справочнике клиенты) подсчитывается среднеквадратичное отклонение сумм накладных (условие связки к.код = накладные.клиент программа добавляет автоматически).

Замечание!

Если в цикле не выбираются значения, происходит конкатенация всех значений, удовлетворяющих условию. При этом цикл проходит один раз, даже если ни одной записи, удовлетворяющей условию нет. В этом случае вместо ЦИКЛ ПО ЖУРНАЛУ логичнее использовать ВЫБРАТЬ.

Пример:

ВЫБРАТЬ ОТКЛ_СРЕД(накладные.сумма) откл_сред

СООБЩЕНИЕ("Подсчет среднеквадратичного отклонения " + СТР(откл_сред:2))

В этом примере подсчитывается среднеквадратичное отклонение сумм накладных.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Пример использования функций


Цикл Журнала : Функции линейной регрессии

Функции линейной регрессии описание пример примечания

Описание:

Функции линейной регрессии полезны для продолжения линии тренда. Линия тренда – это, как правило, закономерность, которой придерживается набор значений. Линия тренда полезна для прогнозирования будущих значений. Этот означает, что тренд будет продолжаться и в будущем. Для продолжения линии тренда необходимо знать угол наклона и точку пересечения с осью Y. Набор линейных функций включает функции для вычисления этих значений.

В синтаксисе функций, у интерпретируется в качестве переменной, зависящей от х.

Функция, синтаксис | Описание
РЕГР_СРЕДНЕЕ_Н(<y>, <x>) | Среднее независимой переменной линии регрессии
РЕГР_СРЕДНЕЕ_З(<y>, <x>) | Среднее зависимой переменной линии регрессии
РЕГР_ВСЕГО(<y>, <x>) | Количество непустых пар, используемых для создания линии регрессии
РЕГР_ПЕРЕСЕЧЕНИЕ(<y>, <x>) | Точка пересечения линии регрессии с осью Y
РЕГР_ДЕТЕРМ(<y>, <x>) | Коэффициент детерминации, или R-квадрат, линии регрессии
РЕГР_НАКЛОН(<y>, <x>) | вычисляет угол наклона линии регрессии (FB4)
РЕГР_Х(<y>, <x>) | Диагностическая статистика, используемая для анализа регрессии
РЕГР_У(<y>, <x>)

См. также
ЦИКЛ ПО ЖУРНАЛУ
Пример использования функций


УНИК

Ключевое слово УНИК

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

При необходимости выбрать только уникальные записи в ЦИКЛе ПО ЖУРНАЛУ можно воспользоваться ключевым словом УНИК. В этом случае программа при проходе цикла удалит повторяющиеся записи. Цикл пройдет столько раз, сколько уникальных вариантов значений будет в результате выборки.

Пример:

Пусть стоит задача вывести даты, в которые осуществлялись отгрузки. Для этого используется цикл по журналу накладные:

ВЫВЕСТИ(2,2,"Даты отгрузок")

и = 4

ЦИКЛ ПО ЖУРНАЛУ УНИК накладные.дата д СОРТИРОВАТЬ(д)

ВЫВЕСТИ(2, и, д)

и++

КОНЕЦ_ЦИКЛА

Если бы не использовалось ключевое слово УНИК, цикл бы вывел столько строк, сколько было накладных. Одна и та же дата при этом повторялась бы несколько раз. Указание УНИК исключает повторение дат при выборе записей.

См. также
ЦИКЛ ПО ЖУРНАЛУ


ПРОПУСК

Ключевое слово ПРОПУСК

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

При необходимости пропустить часть записей попадающих под условие в ЦИКЛе ПО ЖУРНАЛУ можно воспользоваться ключевым словом ПРОПУСК <количество>. В этом случае программа при проходе цикла пропустить первые записи. Количество пропускаемых записей указывается в параметре <количество>.

Пример:

Пусть есть процедура «верхние_уровни». Она возвращает по коду товара последовательно коды группы, в которой находится товар; группы, в которой находится эта группа; и т.д. поднимаясь вверх до конца. Допустим надо подняться на 2 уровня вверх и получить название этой группы. Тогда можно использовать запрос.

ВЫБРАТЬ ПРОПУСК 1 товары.название назв (товары.код = верхние_уровни.результат(код_товара))

Здесь указано ключевое слово ПРОПУСК с параметром 1. Без него запрос бы вернул название ближайшей группы, т.е. группы, в которой находится товар, а нам надо подняться еще на один уровень вверх.

Допустим надо получить отсортировать справочник товаров по названию и получить 2-ой по порядку товар. Поможет запрос:

ВЫБРАТЬ ПРОПУСК 1 товары.название назв СОРТИРОВАТЬ(назв:НЕТ)

См. также
ЦИКЛ ПО ЖУРНАЛУ


СУЩ

Ключевое слово СУЩ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово СУЩ <подзапрос> проверяет наличие записей в подзапросе. Функция возвращает ДА, если в подзапросе есть хотя бы одна запись, и НЕТ в противном случае.

Пример:

ВЫВЕСТИ(2,2,"Покупатели, по которым были отгрузки")

и = 4

ЦИКЛ ПО ЖУРНАЛУ клиенты к (СУЩ ВЫБРАТЬ накладные.ид (накладные.клиент = к.код))

ВЫВЕСТИ(2, и, к.название)

и++

КОНЕЦ_ЦИКЛА

В этом примере для каждого покупателя (запись в справочнике клиенты) проверяется наличие хотя бы одной накладной. Цикл пробегается по всем покупателям, имеющим хотя бы одну накладную. Сравни с аналогичным решением при помощи ИЗ.

Замечание!

Все что стоит после СУЩ и до условия подзапроса можно опускать.

Предыдущее условие в таком случае будет выглядеть так:

ЦИКЛ ПО ЖУРНАЛУ клиенты к (СУЩ(накладные.клиент = к.код))

См. также
ЦИКЛ ПО ЖУРНАЛУ
Функция СУЩ вне условия цикла


ЕДИНСТВЕННО

Ключевое слово ЕДИНСТВЕННО

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Ключевое слово ЕДИНСТВЕННО <подзапрос> проверяет, что существует и единственна запись, удовлетворяющая условию. Функция возвращает ДА, если это так и НЕТ в противном случае.

Пример:

ВЫВЕСТИ(2,2,"Повторяющиеся номера накладных")

и = 4

ЦИКЛ ПО ЖУРНАЛУ УНИК накладные.номер ном (НЕ ЕДИНСТВЕННО ВЫБРАТЬ накладные.ид (накладные.номер = ном))
ВЫВЕСТИ(2, и, ном)
и++

КОНЕЦ_ЦИКЛА

В этом примере выдается список неуникальных номеров накладных. Для каждой накладной (запись в справочнике накладные) проверяется наличие ровно одного номера. Так как неуникальные накладные пройдут по циклу дважды, пришлось добавить ключевое слово УНИК, чтобы отсечь повторения.

Замечание!

Все что стоит после ЕДИНСТВЕННО и до условия подзапроса можно опускать.

Предыдущее условие в таком случае будет выглядеть так:

ЦИКЛ ПО ЖУРНАЛУ УНИК накладные.номер ном (НЕ ЕДИНСТВЕННО(накладные.номер = ном))

См. также
ЦИКЛ ПО ЖУРНАЛУ
Функция ЕДИНСТВЕННО вне условия цикла


ИЗ

Ключевое слово ИЗ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание (поиск в подзапросе):

Ключевое слово <выражение> ИЗ <подзапрос> проверяет, что значение выражения встречается в результате выполнения подзапроса. Функция возвращает ДА, если это так и НЕТ в противном случае.

Пример:

ВЫВЕСТИ(2,2,"Покупатели, по которым были отгрузки")

и = 4

ЦИКЛ ПО ЖУРНАЛУ клиенты к (к.код ИЗ ВЫБРАТЬ накладные.клиент)

ВЫВЕСТИ(2, и, к.название)

и++

КОНЕЦ_ЦИКЛА

В этом примере для каждого покупателя (запись в справочнике клиенты) проверяется, что его код встречался в накладных. Цикл пробегается по всем таким покупателям. Сравни с аналогичным решением при помощи СУЩ.

Описание (поиск в массиве, проблема ограничения на кол-во элементов массива):

В выражениях также может участвовать и локальное ключевое слово ИЗ, которое может проверять принадлежность выражения массиву или набору конкретных значений. Однако, здесь есть некоторые особенности. Если массив большой (более 1500 элементов), то может произойти переполнение размера запроса к базе данных (так как размер запроса ограничен). Так, например, в следующем примере происходит заполнение массива кодами контрагентов, которые указаны в накладных:

ВЫВЕСТИ(2,2,"Покупатели, по которым были отгрузки или есть долги")
ЦИКЛ ПО ЖУРНАЛУ УНИК накладные.клиент код
клиент_существует[код] = ДА
КОНЕЦ_ЦИКЛА
и = 4
ЦИКЛ ПО ЖУРНАЛУ клиенты к (к.код ИЗ клиент_существует ИЛИ к.долг <> 0)
ВЫВЕСТИ(2, и, к.название)
и++
КОНЕЦ_ЦИКЛА

При компиляции такого алгоритма будет выдаваться предупреждение:

Кол-во элементов массива, использующегося в операторе ИЗ внутри ЦИКЛ ПО ЖУРНАЛУ, может превысить 1500

Действительно, клиентов, участвующих в накладных, может оказаться достаточно много и запрос к базе данных может оказаться слишком большим. Поэтому программа предупреждает, что если вдруг в процессе выполнения алгоритма в массиве клиент_существует кол-во элементов превысит 1500, произойдет ошибка. Можно отключить вывод предупреждения, указав перед переменной ! (восклицательный знак):

ЦИКЛ ПО ЖУРНАЛУ клиенты к (к.код ИЗ !клиент_существует ИЛИ к.долг <> 0)

Предупреждение при компиляции уйдет, но если при выполнении алгоритма кол-во элементов всё-таки превысит 1500, алгоритм завершит свою работу с ошибкой:

Кол-во элементов массива, использующегося в операторе ИЗ внутри ЦИКЛ ПО ЖУРНАЛУ, не должно превышать 1500

Наиболее простой способ обойти ограничение на кол-во элементов, перенести условие внутрь цикла:

ВЫВЕСТИ(2,2,"Покупатели, по которым были отгрузки или есть долги")
ЦИКЛ ПО ЖУРНАЛУ УНИК накладные.клиент код
клиент_существует[код] = ДА
КОНЕЦ_ЦИКЛА
и = 4
ЦИКЛ ПО ЖУРНАЛУ клиенты к (ДА)
ЕСЛИ к.код ИЗ клиент_существует ИЛИ к.долг <> 0 ТО
ВЫВЕСТИ(2, и, к.название)
и++
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА

Но такой алгоритм будет работать медленнее, т.к. условие будет проверяться для каждой записи справочника.

При выполнении ряда условий, ни предупреждение при компиляции, ни ошибка при работе алгоритма не будут появляться. Вместо этого программа программа автоматически разобьет один запрос к базе данных на несколько запросов. Вот перечень условий, необходимых для этого:

1)Условие в цикле не использует ИЛИ, НЕ, подзапросы;

2)Не используется сортировка;

3)Не используются агрегатные функции;

4)Не используется УНИК;

В примере выше в условии используется ИЛИ, т.е. нарушается 1-ое условие. Но, алгоритм можно переделать, например, так:

ВЫВЕСТИ(2,2,"Покупатели, по которым были отгрузки или есть долги")
ЦИКЛ ПО ЖУРНАЛУ УНИК накладные.клиент код
клиент_существует[код] = ДА
КОНЕЦ_ЦИКЛА
и = 4
ЦИКЛ ПО ЖУРНАЛУ клиенты к (к.долг <> 0)
ВЫВЕСТИ(2, и, к.название)
и++

КОНЕЦ_ЦИКЛА
ЦИКЛ ПО ЖУРНАЛУ клиенты к (к.код ИЗ клиент_существует)
ВЫВЕСТИ(2, и, к.название)
и++

КОНЕЦ_ЦИКЛА

Замечание!

Если в приведенном примере массив не содержит ни одного значения, выражение преобразуется к следующему: к.код = ПУСТО

См. также
ЦИКЛ ПО ЖУРНАЛУ


ЛЮБОЕ

Ключевое слово ЛЮБОЕ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Предикат ЛЮБОЕ <подзапрос> определяет по подзапросу множество, для которого будет выполняться операция сравнения. Конечное условие истинно, если оно истинно для любого элемента множества.

Синтаксис:

<выражение> <оператор сравнения> ЛЮБОЕ <подзапрос>

где

<выражение>
выражение цикла, содержащее помимо идентификаторов, доступных обычным
выражениям, поля выбираемых журналов, функции сервера и подзапросы

<оператор сравнения>
оператор, для которого выполняется предикат

Пример:

и = 1

ЦИКЛ ПО ЖУРНАЛУ накладные.номер ном (дата > ЛЮБОЕ ВЫБРАТЬ счета.дата (счета.номер = ном))
ВЫВЕСТИ(2, и, ном)
и++

КОНЕЦ_ЦИКЛА

В этом примере выдается список номеров накладных, у которых нет более поздних счетов с таким же номером.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Предикат КАКОЕ_ТО


КАКОЕ_ТО

Ключевое слово ЛЮБОЕ

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Предикат КАКОЕ_ТО <подзапрос> определяет по подзапросу множество, для которого будет выполняться операция сравнения. Конечное условие истинно, если оно истинно для какого-либо элемента множества.

Синтаксис:

<выражение> <оператор сравнения> КАКОЕ_ТО <подзапрос>

где

<выражение>
выражение цикла, содержащее помимо идентификаторов, доступных обычным
выражениям, поля выбираемых журналов, функции сервера и подзапросы

<оператор сравнения>
оператор, для которого выполняется предикат

Пример:

и = 1

ЦИКЛ ПО ЖУРНАЛУ сотрудники.фио фио_сотрудника (сотрудники.дата_приема > КАКОЕ_ТО ВЫБРАТЬ сотрудники.дата_увольнения (сотрудники.фио = фио_сотрудника))
ВЫВЕСТИ(2, и, фио)
и++

КОНЕЦ_ЦИКЛА

В этом примере выдается список сотрудников, у которых был ранее уволенный однофамилец.

См. также
ЦИКЛ ПО ЖУРНАЛУ
Предикат ЛЮБОЕ


РАВНО, НЕ РАВНО

Ключевые слова РАВНО, НЕ РАВНО

Ключевые слова и функции от А до Я Ключевые слова по группам

 Вернуться к началу раздела

Описание:

Специальные операторы РАВНО и НЕ РАВНО могут использоваться для сравнения двух полей или двух выражений, которые могут принимать значение ПУСТО.

Выражение <x> РАВНО <y> равносильно выражению: (<x> = <y>) ИЛИ ( (<x> = ПУСТО) И (<y> = ПУСТО) )

Выражение <x> НЕ РАВНО <y> равносильно выражению: НЕ ( (<x> = <y>) ИЛИ ( (<x> = ПУСТО) И (<y> = ПУСТО) ) )

Если <x> или <y> являются константой (с точки зрения выражения цикла), смысла использовать эти операторы нет.

Пример:

Допустим в составе накладной (журнал накладные_доп) есть указание на товар (поле накладные_доп.товар ссылается на поле ид справочника товары) и цвет товара (поле накладные_доп.цвет на поле ид справочника цвет). При этом цвет может указываться, а может нет. Если цвет не указывается, то накладные_доп.цвет = ПУСТО.

И допустим есть справочник остатки с остатками товаров, он содержит поля товар, цвет, кол. Т.е. для каждого товара товар заданного цвета цвет по справочнику можно узнать остаток кол. Товары, для которых цвет не определен остатки.цвет = ПУСТО.

Пусть надо вывести остаток каждого товара в конкретной накладной.

ВЫВЕСТИ(2,2,"Остатки товара")
и = 4
ЦИКЛ ПО ЖУРНАЛУ накладные_доп доп, остатки остаток
(доп.товар = остаток.товар И доп.цвет = остаток.цвет И доп.идлинк = накладная)
ВЫВЕСТИ(2, и, доп.товар)
ВЫВЕСТИ(20, и, остаток.кол)
и++
КОНЕЦ_ЦИКЛА

Данный пример выведет остатки, но не по всем позициям, а только по тем, для которых указан цвет, т.к. сравнение с ПУСТО всегда ложно. Чтобы устранить это, можно использовать ключевое слово РАВНО.

ВЫВЕСТИ(2,2,"Остатки товара")
и = 4
ЦИКЛ ПО ЖУРНАЛУ накладные_доп доп, остатки остаток
(доп.товар = остаток.товар И доп.цвет РАВНО остаток.цвет И доп.идлинк = накладная)
ВЫВЕСТИ(2, и, доп.товар)
ВЫВЕСТИ(20, и, остаток.кол)
и++
КОНЕЦ_ЦИКЛА

См. также
ЦИКЛ ПО ЖУРНАЛУ


Примеры: выборка из одного журнала

Ключевые слова и функции от А до Я Ключевые слова по группам

Описание:

Простейший вариант ЦИКЛА ПО ЖУРНАЛУ решает задачу перебора всех записей журнала, удовлетворяющих некоторому условию.

Синтаксис:

ЦИКЛ ПО ЖУРНАЛУ <идентификатор журнала> <переменная-итератор>

(<условие на поля журналов>)

// Тело цикла

КОНЕЦ_ЦИКЛА

где

<условие на поля журнала>
выражение логического типа

<идентификатор журнала>
идентификатор журнала по которому производится выборка

<переменная - итератор>
переменная типа ЖУРНАЛ, построенная по соответствующему идентификатору журнала, в которую будут помещаться считанные из журнала записи.

Пример 1:

и = 1

ЦИКЛ ПО ЖУРНАЛУ накладные н (дата > ДАТА_НАЧ И дата <= ДАТА_КОН)

ВЫВЕСТИ(1,и,СТР(н.дата))

ВЫВЕСТИ(10,и,н.номер)

и++

КОНЕЦ_ЦИКЛА

В условии этого цикла содержится ограничение на поле дата журнала накладные, и на экран будут выведены только записи, удовлетворяющие этому условию.

Переменную "н" не обязательно описывать перед исполнением цикла. Цикл журнала является конструктором объекта ЖУРНАЛ, и сам создаст объектную переменную "н" типа ЖУРНАЛ по журналу накладные.

По завершении цикла, поля итерационной переменной принимают значение последней считанной записи.

Если итераций вообще не было, то значения полей переменной не изменяются (при использовании ВЫБРАТЬ загрузятся значения полей по умолчанию, а метод НОВАЯ будет возвращать ДА). Если переменная не была создана ранее, то значения полей переменной устанавливаются по умолчанию.

Пример 2:

ВЫБРАТЬ накладные н (номер=ВВЕСТИ_ЗНАЧЕНИЕ("Введите номер накладной","-"))

ЕСЛИ н.НОВАЯ ТО

СООБЩЕНИЕ("Накладная не найдена")

ИНАЧЕ

СООБЩЕНИЕ("Эта накладная за " + ДАТАП(н.дата))

КОНЕЦ_ЕСЛИ

Замечание!

Любое выражение, не содержащее поля, и любая функция вычисляются еще до начала первой итерации цикла, и в дальнейшем их повторного вычисления не происходит.

Так что цикл вида:

граница=1

ЦИКЛ ПО ЖУРНАЛУ клиенты к (долг < долг + граница)

граница=0

// Операторы

КОНЕЦ_ЦИКЛА

пройдет не один раз, как, казалось бы, а столько раз, сколько записей будет в журнале "клиенты" и будет эквивалентен циклу вида:

ЦИКЛ ПО ЖУРНАЛУ клиенты к (долг < долг + 1)

// Операторы

КОНЕЦ_ЦИКЛА

Выбор по маске

Для полей строкового типа возможно в условие включить маску (шаблон), по которой будут проходить эти поля. Для этого нужно написать: <поле> = <маска>. При любом другом сравнении, отличном от "=" символы "*" и ";" носят обычный смысл. Поэтому, если, например, необходимо выбрать записи, не удовлетворяющие маске, то условие (контрагент <> "ПОКУП/*") будет понято как простое неравенство указанной строке. Для того чтобы программа воспринимала ее не как строку, а как шаблон, надо использовать имено равенство, например, так: (НЕ контрагент = "ПОКУП/*").

Пример 3.

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные н (контрагент = "ПОКУП/*;ПОСТАВ/*")

ВЫВЕСТИ(1,и,СТР(н.дата))

ВЫВЕСТИ(10,и,н.номер)

и++

КОНЕЦ_ЦИКЛА

В этом примере на экране появятся все накладные, у которых код контрагента начинается со строки "ПОКУП/"или "ПОСТАВ/".


Примеры: выборка из двух связанных журналов

Ключевые слова и функции от А до Я Ключевые слова по группам

Описание:

Допустим, стоит задача выбрать или пробежаться по записям двух журналов аналитики, например основному и подчиненному, удовлетворяющим некоторому условию. Причем в условие могут входить как ограничения на записи из основного журнала, так и на записи из журнала детализации. В этом случае используется ЦИКЛ ПО ЖУРНАЛУ с выборкой из пары: основного и подчиненного ему журнала детализации.

Синтаксис:

ЦИКЛ ПО ЖУРНАЛУ <основной журнал> <переменная-итератор>

<журнал детализации> <переменная-итератор>

(<условие на поля журналов>)

// Тело цикла

КОНЕЦ_ЦИКЛА

где

<условие на поля журнала>
выражение логического типа

<основной журнал>
идентификатор основного журнала, по которому производится выборка

<журнал детализации>
идентификатор подчиненного журнала детализации, по которому производится выборка

<переменная - итератор>
переменная типа ЖУРНАЛ, построенная по соответствующему,.идентификатору журнала, в которую будут помещаться считанные из журнала записи.

В таком случае цикл пробегает такое кол-во раз, сколько имеется записей в подчиненном журнале детализации, которые удовлетворяют условию и для которых основная запись удовлетворяет условию. Таким образом, цикл пробежится по всем парам <основная запись> — <подчиненная запись>. При этом возможен вариант, когда сразу две пары имеют одну основную запись, однако отличаются по записи детализации.

Так как журналы связаны друг с другом, добавлять условие связи, что запись подчиненного журнала должна ссылаться на запись основного не надо — программа их добавляет сама.

Пример 1.

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные н, накладные_доп нд

(дата > ДАТА_НАЧ И дата <= ДАТА_КОН И товар = "Лента/*")

ВЫВЕСТИ(1,и,нд.товар)

ВЫВЕСТИ(10,и,СТР(нд.цена * нд.колич))

и++

КОНЕЦ_ЦИКЛА

Если у журналов есть поля с общими идентификаторами и эти поля входят в условие, то программа сообщит об ошибке — необходимо конкретизировать с каким полем какого журнала нужно работать. Это делается при помощи конструкции <переменная-итератор>.<поле> или <идентификатор журнала>.<поле>.

Пример 2.

Допустим в обоих журналах: накладные и накладные_доп есть поле бух, означающее был ли сделан экспорт в бухгалтерию, и стоит задача выбрать все записи, по которым экспорта не было. В таком случае необходимо написать:

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные н, накладные_доп нд

(н.бух = ДА И нд.бух = ДА)

ВЫВЕСТИ(1,и,нд.товар)

ВЫВЕСТИ(10,и,СТР(нд.цена * нд.колич))

и++

КОНЕЦ_ЦИКЛА

Здесь конкретизировано, к какому варианту поля бух, относящемуся к журналу накладные или накладные_доп, происходит обращение в условии. Конкретизация происходит при помощи указания имени объекта журнала или идентификатора журнала. В этом примере в условии можно было также написать : (накладные.бух = ДА И накладные_доп.бух = ДА).

См. также
Тип связки
Условия связи


Примеры: выбор выражений

Ключевые слова и функции от А до Я Ключевые слова по группам

Описание:

В ЦИКЛе ПО ЖУРНАЛУ можно выбирать не только записи журналов, агрегатные функции, но и результаты вычисления произвольных выражений.

Синтаксис:

ЦИКЛ ПО ЖУРНАЛУ <выражение> <результат> (<условие на поля журналов>)
// Тело цикла
КОНЕЦ_ЦИКЛА

где

<условие на поля журналов>
выражение логического типа

<выражение>
выражение, результат которого будет вычисляться

<результат>
Простая переменная того же типа, какой тип результата у соответствующего выражения. В эту переменную загружается результат вычисления выражения перед каждой итерацией цикла.

Переменная <результат> сама может участвовать в условиях цикла и сортировки (исключение — агрегатные функции, они в условиях цикла использоваться не могут).

Пример:

Самый простой вариант выражения — выбор конкретного поля журнала.

и = 1

ЦИКЛ ПО ЖУРНАЛУ УНИК накладные.склад скл (дата > ДАТА_НАЧ И дата <= ДАТА_КОН)

ВЫВЕСТИ(1,и,СТР(скл))

и++

КОНЕЦ_ЦИКЛА

Здесь скл — обычная переменная, в которую будет помещаться значение поля журнала при каждом проходе цикла. Кол-во проходов ограничено кол-вом комбинаций поля склад — это результат работы УНИК. Цикл можно было бы написать используя выборку полей.

Пример:

ЦИКЛ ПО ЖУРНАЛУ УНИК накладные[склад] н (дата > ДАТА_НАЧ И дата <= ДАТА_КОН)

но в этом случае переменная н была бы объектом типа ЖУРНАЛ и для обращения к складу пришлось бы писать:

н.склад

Однако, оба варианта цикла абсолютно равнозначны.

Пример:

Вычисление функций сервера.

и = 1

ЦИКЛ ПО ЖУРНАЛУ НАЗВ(клиенты.счет) счет

ВЫВЕСТИ(1,и,СТР(скл))

и++

КОНЕЦ_ЦИКЛА

Здесь счет последовательно принимает название счета бухгалтерского учета (поле счет), получаемое при помощи функции сервера НАЗВ.

Пример:

Вычисление подзапроса.

и = 1

ЦИКЛ ПО ЖУРНАЛУ клиенты[название] н, (ВЫБРАТЬ МАКС(накладные_доп.цена * накладные_доп.колич)

(накладные.клиент = н.код)) сумма СОРТИРОВАТЬ(сумма)

ВЫВЕСТИ(1,и,н.название)

ВЫВЕСТИ(20,и,сумма)

и++

КОНЕЦ_ЦИКЛА

Здесь считывается название клиента и максимальная сумма, которая проходила по накладным по этому клиенту. Здесь же используется сортировка по результату расчета выражения.


Примеры: вычисление агрегатных функций

Ключевые слова и функции от А до Я Ключевые слова по группам

Описание:

Достаточно часто стоит задача подсчитать определенную функцию для записей журнала, например сумму числовых полей. Для этого используются агрегатные функции.

Если в цикле не выбираются никакие записи кроме агрегатных функций, происходит подсчет этих функций по всем записям, удовлетворяющим условию. При этом цикл проходит один раз, даже если ни одной записи, удовлетворяющей условию нет. В частном случае одной функции это выглядит так:

ВЫБРАТЬ <агрегатная функция> (<выражение>) <переменная> (<условие на поля журналов>)

Здесь <переменная> является получателем результата функции. Ее тип должен совпадать с типом результата функции.

Пример 1.

ВЫБРАТЬ ВСЕГО(сф) всего (дата > ДАТА_НАЧ И дата <= ДАТА_КОН)

СООБЩЕНИЕ("За указанный период было " + СТР(всего) + " накладных")

Если в цикле выбираются другие записи, то вычисление функции происходит для каждой группы выбираемых значений, по всем, не выбираемым записям. Поясним примером:

Пример 2.

Допустим, необходимо вывести общую сумму по накладным за указанный период. Тогда цикл будет выглядеть:

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные н, СУММА(накладные_доп.цена* накладные_доп.колич) сумма

(дата > ДАТА_НАЧ И дата < ДАТА_КОН)

ВЫВЕСТИ(1,и, "Накладная N " + н.номер + " на сумму " + СТР(сумма))

и++

КОНЕЦ_ЦИКЛА

Здесь в цикле для каждой записи журнала накладные н будет считаться сумма по всем строкам этой накладной.

Пример 3.

Пусть имеются журналы: основной накладные, детализации накладные_доп и журнал клиенты. Журнал клиенты связан с журналом накладные, а журнал накладные — с журналом накладные_доп. Допустим, необходимо вывести для каждого покупателя общую сумму продаж за указанный период (Оборотная ведомость по покупателям). Тогда можно написать:

и=1

ЦИКЛ ПО ЖУРНАЛУ клиенты к, СУММА(накладные_доп.цена * накладные_доп.колич) сумма

(накладные.дата > ДАТА_НАЧ И накладные.дата < ДАТА_КОН)

ВЫВЕСТИ(1,и, к.код)

ВЫВЕСТИ(20,и,СТР(сумма))

и++

КОНЕЦ_ЦИКЛА

Здесь в цикле для каждой записи журнала клиенты к будет считаться сумма по всем строкам всех накладных с этим клиентом из указанного диапазона.

Пример 4.

Допустим, необходимо проверить уникальность введенных выходных счетов-фактур. Для этого можно написать операцию:

ОПЕРАЦИЯ Тест уникальности номера счета-фактуры

ВЫЧИСЛИТЬ

ЦИКЛ ПО ЖУРНАЛУ накладные, накладные н, ВСЕГО всего (накладные.номер = н.номер)

ЕСЛИ всего > 1 ТО

СООБЩЕНИЕ("Накладная N " + н.номер + " проходила дважды")

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

КОНЕЦ

Здесь в цикле для каждой записи журнала накладные н будет считаться общее кол-во записей того же журнала, имеющих тот же номер наладной.

Выборка конкретных полей

Другой способ вычисления функций для некоторых групп данных заключается в ограничении на выборку полей из конкретного журнала.

Допустим, необходимо подсчитать выражение от полей журнала по каждой группе записей, выделяющейся по равенству какого-то поля(полей). Синтаксис в этом случае:

ЦИКЛ ПО ЖУРНАЛУ <идентификатор журнала>[<список полей выборки>] <итерационная переменная>,

<агрегатная функция> (<выражение>) <результат> (<условие на поля журналов>)

КОНЕЦ_ЦИКЛА

здесь

<список полей выборки>
определяет необходимые для выборки поля. Такой цикл пройдет столько раз, сколько будет вариантов записей, различающихся значением <списка полей выборки>. При этом для каждого варианта <списка полей выборки> будет вычислена функция по всем записям журнала, имеющим этот, конкретный вариант значений <списка полей выборки>.

Ограничение на выборку конкретных полей никак не сказывается на условии цикла. В нем по-прежнему могут использоваться все поля этого журнала. Однако <итерационная переменная> будет содержать значения полей из <списка полей выборки>. При обращении к другим полям будет выдаваться сообщение об ошибке.

Пример 5. (сравни Пример 3)

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные[код] накл, СУММА(накладные_доп.цена * накладные_доп.колич) сумма

(дата > ДАТА_НАЧ И дата < ДАТА_КОН)

ВЫВЕСТИ(1,и, накл.код)

ВЫВЕСТИ(20,и,СТР(сумма))

и++

КОНЕЦ_ЦИКЛА

Такой вариант, в отличие от Примера 3 не использует справочник клиенты, и, поэтому, работает быстрее.

Дополнительное условие

Для агрегатных функций может быть указано дополнительное условие, влияющее на расчет этой конкретной агрегатной функции. Пример 6 ниже является модификацией предыдущего примера 5. Но он выводит не общую сумму продаж, а сумму продаж товаров с ценой > 1000.

Пример 6.

и=1

ЦИКЛ ПО ЖУРНАЛУ накладные[код] накл, СУММА(накладные_доп.цена * накладные_доп.колич) |цена>1000| сумма

(дата > ДАТА_НАЧ И дата < ДАТА_КОН)

ВЫВЕСТИ(1,и, накл.код)

ВЫВЕСТИ(20,и,СТР(сумма))

и++

КОНЕЦ_ЦИКЛА


Примеры: Использование фильтров в условии

Ключевые слова и функции от А до Я Ключевые слова по группам

Описание:

Условие в конструкции ЦИКЛ ПО ЖУРНАЛУ фиксировано. Однако, в большинстве задач условие выбора должно меняться в процессе выполнения алгоритма. В программе Инфо-Предприятие существует гибкие средства для формирования условия цикла. Для этого используются объекты ФИЛЬТР, в которых описываются отдельные выражения запроса. Далее, эти объекты используются при описании условия цикла как обычные операнды. И в процессе расчета программа будет подставлять вместо объектов ФИЛЬТР в условии цикла их выражения.

Создадим несколько объектов ФИЛЬТР:

до = накладные.ФИЛЬТР(дата < ДАТА_НАЧ)

непустые = накладные.ФИЛЬТР(СУЩ(ВЫБРАТЬ накладные_доп

(накладные_доп.ид_линк = накладные.ид)))

теперь мы можем написать такой цикл по журналу

ЦИКЛ ПО ЖУРНАЛУ накладные (до И непустые)

при обработке программа будет интерпретировать условие цикла как

ЦИКЛ ПО ЖУРНАЛУ накладные (дата < ДАТА_НАЧ И СУЩ(ВЫБРАТЬ накладные_доп

(накладные_доп.ид_линк = накладные.ид)))

фильтры могут использоваться и при создании других фильтров,

Пример:

период = накладные.ФИЛЬТР(дата <= ДАТА_КОН И НЕ до)

выборка = накладные.ФИЛЬТР(период ИЛИ непустые)

Пример.

Пусть стоит задача выбрать накладные за какой-то период. При этом иногда надо выводить накладные наших должников. Также по желанию, хочется видеть только накладные с суммой большей указанной. Используя фильтры можно написать:

должники = клиенты.ФИЛЬТР

ЕСЛИ ВОПРОС("Накладные должников") ТО

должники.УСЛОВИЕ(долг_руб > 0)

КОНЕЦ_ЕСЛИ

суммы = накладные.ФИЛЬТР

ЕСЛИ ВОПРОС("Накладные больше указанной суммы") ТО

суммы.УСЛОВИЕ(ВЫБРАТЬ СУММА(накладные_доп.колич * накладные_доп.цена)

(накладные_доп.идлинк = накладные.ид) > ВВЕСТИ_ЗНАЧЕНИЕ("Введите сумму",0))

КОНЕЦ_ЕСЛИ

и = 1

ЦИКЛ ПО ЖУРНАЛУ накладные н (((дата >= ДАТА_НАЧ И дата < ДАТА_КОН) ИЛИ должники) И суммы)

ВЫВЕСТИ(1,и, "Накладная N " + н.номер + " от " + СТР(н.клиент))

и++

КОНЕЦ_ЦИКЛА

См.также
Выражения в запросах


Функция ВЫРАЖЕНИЕ в условии запроса

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

Условие в конструкции ЦИКЛ ПО ЖУРНАЛУ либо фиксировано, либо меняется в процессе выполнения алгоритма. Для изменения условий используются фильтры, в которых описываются отдельные выражения запроса. Далее, эти объекты используются при описании условия цикла как обычные логические операнды. И в процессе расчета программа будет подставлять вместо объектов ФИЛЬТР в условии цикла их выражения.

Однако, в исключительных случаях может потребоваться менять не условия запроса, а участвующие в нем произвольные операнды. Для этого используется специальная функция ВЫРАЖЕНИЕ. Она позволяет внедрить внутрь условия цикла произвольную строку, содержимое которой определяется на этапе выполнения алгоритма.

Синтаксис:

ВЫРАЖЕНИЕ ( <выражение>, <тип выражения> )

где

<выражение>
строка, задающая внедряемое выражение;

<тип выражения>
тип выражения.

Тип результата специальной функции ВЫРАЖЕНИЕ соответствует указанному типу выражения.

Внимание!

Следует с осторожностью использовать эту функцию. Никакой проверки синтаксиса при компиляции условия, содержащего ВЫРАЖЕНИЕ, не происходит. Если в синтаксисе допущена ошибка, сообщение об ошибке будет выдаваться уже при работе алгоритма.

Выражение внутри функции может содержать ссылки на те журналы, которые используются в цикле. Если в условии будет указан не описанный журнал, будет выдано сообщение об ошибке: "журнал такой-то должен был быть объявлен ранее, чтобы использоваться в условии".

Пример 1.

ЕСЛИ ЗАПРОС("Условие на дату", "Накладной;Счета-фактуры") = 1 ТО

стр = "накладные.дата"

ИНАЧЕ

стр = "накладные.дата_сф"

КОНЕЦ_ЕСЛИ

// Будет получена запись операции

ВЫБРАТЬ накладные н (ВЫРАЖЕНИЕ(стр, ДАТА) = ДАТА_ТЕК)

Пример 2.

вариант = ЗАПРОС("Выводить", "Наименование клиента;Название склада")

ЕСЛИ вариант = 1 ТО

стр = "клиенты.название"

ИНАЧЕ

стр = "склады.название"

КОНЕЦ_ЕСЛИ

// Здесь таблица "накладные" ссылается на таблицы "склады" и "клиенты". Будут выбраны
// или уникальные записи клиентов или уникальные записи складов

ЦИКЛ ПО ЖУРНАЛУ УНИК накладные, склады, клиенты, ВЫРАЖЕНИЕ(стр, СТРОКА) рез

выбор!ВСЕГОМ(выбор) = рез

КОНЕЦ_ЦИКЛА

ВЫБОР(выбор)

Пример 3.

вариант = ЗАПРОС("Выводить", "Базовые единицы измерения;Упаковки;Ничего не выводить")

ЕСЛИ вариант = 1 ТО

стр = "товары.единицы"

ИНАЧЕ_ЕСЛИ вариант = 2 ТО

стр = "товары.упаковки"

ИНАЧЕ

стр = "ПУСТО"

КОНЕЦ_ЕСЛИ

// Создадим курсор, в котором колонка будет содержать разное значение, в зависимости от выбора

КУРСОР кур ПО ЖУРНАЛУ

товары.артикул:"Артикул"

товары.название:"Название",

ВЫРАЖЕНИЕ(стр, СТРОКА):?(стр = "ПУСТО","", "Единицы")

ВЫБОР_ЗАПИСИ(кур)

См.также
Примеры: использование фильтров в условии
Выражения в запросах


План запроса

Когда программа выполняет ЦИКЛ ПО ЖУРНАЛУ, она передает информацию о том что, и на каких условиях надо выдать серверу. Задача сервера — выдать требуемую информацию. И желательно это сделать как можно быстрее. Для этого сервер анализирует условия запроса, перебирая различные стратегии, по которым можно выбирать записи. Такие стратегии называются планами. Сервер выбирает лучший на его взгляд план и согласно ему выполняет вычисления. Вы можете довериться серверу в его выборе (и в большинстве случаев он оказывается прав) или воспользоваться двумя другими способами задания планов: планом, который сгенерит программа Инфо-Предприятие (автопланирование) или планом, заданным Вами вручную (ручной план).

В обоих случаях для этого используется ключевое слово ПЛАН, которое следует после цикла.

Автопланирование. Для получения плана запроса при помощи программы, используется следующий синтаксис:

ПЛАН(<идентификатор журнала>)

Идентификатор журнала должен определять один из журналов, из которого ЦИКЛ выбирает записи. Такой план определяет только то, как будут вычисляться условия связи. План вычисления основного условия цикла таким способом не задается. Идентификатор какого журнала надо указывать, определяется экспериментально.

Пример.

ЦИКЛ ПО ЖУРНАЛУ операции_доп д, операции о

ПЛАН(операции)

// Тело цикла

КОНЕЦ_ЦИКЛ

При отключении условий связи (когда стоит "!" после ЖУРНАЛУ), автопланирование не работает.

Ручной план. Для задания ручного плана, используется следующий синтаксис:

ПЛАН(<план запроса>)

где

<план запроса>
строковая константа, задающая план запроса. Задание плана вручную требует дополнительных знаний и не рекомендуется.

Пример.

ЦИКЛ ПО ЖУРНАЛУ операции_доп д, операции о

ПЛАН("JOIN (J2 INDEX (RDB$FOREIGN142),J1 INDEX (RDB$FOREIGN92))")

// Тело цикла

КОНЕЦ_ЦИКЛА

См. также
ЦИКЛ ПО ЖУРНАЛУ
Выражения в цикле


ЦИКЛ ИЗ_ЖУРНАЛА

Ключевые слова и функции от А до Я Встроенные функции по группам

 Вернуться к началу раздела

Описание:

ЦИКЛ ИЗ_ЖУРНАЛА последовательно считывает выделенные записи из журнала, если на экране находится окно редактирования этого журнала. Если окно редактора не открыто, или курсор не стоит ни на одной записи журнала, то цикл не проходит ни по одной записи.

Синтаксис:

ЦИКЛ ИЗ_ЖУРНАЛА <идентификатор журнала> <переменная-итератор>

где

<идентификатор журнала>
идентификатор журнала по которому производится выборка

<переменная - итератор>
переменная типа ЖУРНАЛ, построенная по соответствующему идентификатору журнала, в которую будут помещаться считанные из журнала записи.

Пример 1:

выбор = ВВЕСТИ_ЗНАЧЕНИЕ("Подсветить выделенные записи",

["Бирюзовый","Желтый","Зеленый","Снять"])

ЕСЛИ выбор = 1 ТО

цвет1 = цвЧерный

цвет2 = цвБирюзовый

ИНАЧЕ

ЕСЛИ выбор = 2 ТО

цвет1 = цвЧерный

цвет2 = цвЖелтый

ИНАЧЕ

ЕСЛИ выбор = 3 ТО

цвет1 = цвЖелтый

цвет2 = цвСинеЗеленый

ИНАЧЕ

цвет1 = цвЧерный

цвет2 = цвБелый

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

// Последовательно перебираем выделенные записи и изменяем их цвет

ЦИКЛ ИЗ_ЖУРНАЛА накладные накл

накл.ПОДСВЕТКА(цвет1,цвет2)

накл.ЗАПИСАТЬ

КОНЕЦ_ЦИКЛА

См. также
Функция ИЗ_ЖУРНАЛА


Обработчик веб-сервера

Обработчики

Описание. Программа Инфо-Предприятие может работать как веб-сервер. В этом режиме она обеспечивает веб-интерфейс доступа к данным с помощью специального обработчика — обработчика веб-сервера. Задача этого обработчика: на основе полученных команд выполнить нужные задачи и вернуть результат в виде файла или HTML-страницы.

См. подробнее объект ВЕБСЕРВЕР.

HTTP-сервер запускается при старте программы если в командной строки запуска программы указать "-H" (или "-H<порт>" при необходимости указать используемый порт, или "-H<порт>W" при необходимости указать используемый порт и выдавать результат в кодировке windows-1251).

Внимание!

Также необходимо дать разрешение брендмауэру Windows на работу программы в качестве сервера (обычно окно-подтверждение появляется сразу после перезапуска программы, надо просто согласиться).

Замечание!

Для проверки работы обработчика на локальном компьютере набирайте в строке браузера строку "localhost" (без "www")

Пример:

ФУНКЦИЯ ВЕБСЕРВЕР ВебСервер

// Обрабатываем команды веб-сервера

КОНЕЦ_ФУНКЦИИ


Обработчик вид журнала

Обработчики

Описание. Начальная настройка видимости полей журнала настраивается в функциях журнала/порядок и видимость полей. Обработчик вид журнала используется для изменения этих настроек, для скрытия полей журнала. Функция вызывается при старте программы, после изменения определений или реквизитов, а также при вызове метода ИЗМЕНЕН. Если используются "виды журнала", то данный обработчик также вызывается и при переключении с одного вида на другой.

Внутри обработчика вид журнала может вызываться метод ВИДИМОСТЬ, который скрывает поле (или показывает ранее скрытый при помощи этого же метода) и метод ВИДИМОСТЬ_ДЕТ, который скрывает таблицу детализации в диалоге (или показывает ранее скрытую). Обычно это зависит от настроек определений или реквизитов, профиля пользователя и т.д.. Если вид журнала зависит и от "видов журнала", то можно использовать параметр "форма" для получения текущего вида.

Набор видимых полей может быть разным в диалоге и таблице. Для этого можно воспользоваться параметром "диалог". Он истинен, если обработчик вызывается для определения вида диалога. В противном случае — для определения вида таблицы.

Внутри обработчика могут вызываться и другие методы.

Свойство КОЛОНТИТУЛ внутри этого обработчика позволяет обратиться и поменять заголовок окна редактора журнала.

Свойство ИКОНКА внутри этого обработчика позволяет обратиться и поменять иконку окна редактора журнала.

Пример 1:

ФУНКЦИЯ ЖУРНАЛ(счет) ВидЖурнала (СТРОКА : форма; ЛОГИКА: диалог)

{ Определяем вид журнала исходя из параметра Форма }

ВИДИМОСТЬ(кодРС,расчетные_счета.ВСЕГО>0)

ВИДИМОСТЬ(валюта,ВАЛЮТНЫЙ_УЧЕТ)

ВИДИМОСТЬ(курс,ВАЛЮТНЫЙ_УЧЕТ)

ВИДИМОСТЬ(код_склада,НЕ ОБЩИЕ_ОСТАТКИ И СВОБ_ОСТАТОК)

ВИДИМОСТЬ(склад,НЕ ОБЩИЕ_ОСТАТКИ И СВОБ_ОСТАТОК)

ВИДИМОСТЬ(операция,СВОБ_ОСТАТОК)

ВИДИМОСТЬ(код_фирмы,НЕ РЕКВИЗИТЫ)

ВИДИМОСТЬ(фирма,НЕ РЕКВИЗИТЫ)

КОНЕЦ_ФУНКЦИИ

Обработчик вид журнала для журнала детализации может зависить от полей основной записи. Чтобы при изменении полей вид детализации менялся, необходимо вызывать метод ИЗМЕНЕН для журнала детализации.

Пример 2:

ФУНКЦИЯ ЖУРНАЛ(счет_доп) ВидЖурнала (СТРОКА : форма; ЛОГИКА: диалог)

{ Определяем вид журнала детализации }

ЕСЛИ ОСНОВНАЯ_СУЩ ТО // Если журнал вызывается как детализация

осн = ОСНОВНАЯ

ВИДИМОСТЬ(скидка, осн.указать_скидку = ДА)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ЖУРНАЛ(счет) НаИзменение_указать_скидку

{ Выполняем действия при изменении значения поля "указать_скидку" }

счет_доп.ИЗМЕНЕН // Применить новый вид для детализации

КОНЕЦ_ФУНКЦИИ


Обработчик вид главного меню

Обработчики

Описание. Обработчик вид главного меню используется для определения доступа к пунктам главного меню в зависимости от пользовательских настроек. Функция вызывается при старте программы и при вызове функции ОБНОВИТЬ_МЕНЮ.

Внутри обработчика вид главного меню может вызываться функция УБРАТЬ_МЕНЮ, которая убирает ненужные пункты меню.

Пример:

ФУНКЦИЯ ЖУРНАЛ(накладные) ВидГлавногоМеню

{ Скрываем пункты главного меню в зависимости от пользовательских настроек }

УБРАТЬ_МЕНЮ("прайс_лист", НЕ ВКЛ_ПРАЙС_ЛИСТ)

УБРАТЬ_МЕНЮ("Главное меню: Категории цен", НЕ ВКЛ_ПРАЙС_ЛИСТ)

УБРАТЬ_МЕНЮ("Кассы: Выгрузка данных на кассы", НЕ ВКЛ_РОЗНИЦА)

УБРАТЬ_МЕНЮ("Кассы: Загрузить из кассы", НЕ ВКЛ_РОЗНИЦА)

УБРАТЬ_МЕНЮ("Главное меню: кассиры", НЕ ВКЛ_РОЗНИЦА)

КОНЕЦ_ФУНКЦИИ

См.также
Вид контекстного меню


Обработчик вида контекстного меню

Обработчик вид контекстного меню

Обработчики

 Вернуться к началу раздела

Описание. Обработчик вид контекстного меню необходима для определения доступа к пунктам контекстного меню, вызываемого для данной записи. Функция вызывается непосредственно перед появлением всплывающего контекстного меню или добавляемого к пункту Правка главного меню.

Внутри обработчика вид контекстного меню может вызываться функция УБРАТЬ_МЕНЮ, которая делает недоступным заданный пункт меню.

Меню может вызываться из разных мест. Определить, откуда оно вызвалось, позволяет числовой параметр из. Он может принимать следующие значения:

·изВыполнить — из кнопки в диалоге редактирования записи журнала;

·изЖурнала — из окна редактора журнала;

·изСвязи — при нажатии кнопки связи linkbutton справа от поля выбора значения из этого журнала.

Замечание!

Бланки, вызываемые из контекстного меню по кнопке диалога не должны иметь вводных граф, либо не должны считывать запись при помощи ИЗ_ЖУРНАЛА. В противном случае при расчете бланка будет считываться не измененная в диалоге запись, а существующая в базе данных запись журнала.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(оплата) ВидМеню (ЧИСЛО: из)

{ Скрываем пункты контекстного меню, ненужные для выбранной записи }

ЕСЛИ тип_оплаты <> оплБезнал ТО

{ Убираем платежное поручение }

УБРАТЬ_МЕНЮ("TS_PLAT.FRM")

ИНАЧЕ

{ Убираем приходный кассовый ордер }

УБРАТЬ_МЕНЮ("TS_PRICH.FRM")

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

См.также
Вид главного меню


Обработчик внешнего изменения

Обработчики

Описание. Обработчик внешнего изменения срабатывает после изменения данных в журнале, включая изменения, произведенные другими пользователями. Функция вызывается после подтверждения транзакции, в которой изменялось содержимое журнала.

Внимание!

Для работы обработчика необходимо включить опцию Автообновление изменений.

В отличие от обработчиков после записи и после удаления, обработчик внешнего изменения срабатывает после подтверждения транзакции.

В отличие от обработчиков после записи и после удаления, обработчик внешнего изменения срабатывает даже если изменение произведено другим пользователем с другого компьютера.

ФУНКЦИЯ ЖУРНАЛ(накладные) ВнешнееИзменение

// Обрабатываем изменение данных в журнале

КОНЕЦ_ФУНКЦИИ


Обработчик внешнего события

Обработчики

Описание. Обработчик внешнего события используется для работы с объектами автоматизации, поддерживающими внешние события. Например, это могут быть драйвера каких-либо устройств. Обработчик вызывается внешним приложением.

Программа поддерживает события следующих видов:

·События от внешних компонент 1С

·COM-события

·События от потокового серверного сокета

·События от HID-устройства

·Посланные с помощью ПОСЛАТЬ_СОБЫТИЕ

·Сообщения о действиях пользователей в центре уведомлений Windows

В зависимости от вида события, его включение и порядок обработки различается.

События от внешних компонент 1С.

Если это внешняя компонента программы 1С, то для того чтобы внешние событие вызывалось, необходимо просто создать объект (с помощью функции СОЗДАТЬ_ОБЪЕКТ). Вызов событий прекращается при завершении работы с объектом (с помощью ЗАКРЫТЬ или при завершении работы алгоритма). Чтобы события вызывались всё время работы программы надо использовать глобальные переменные. Например, можно в обработчике при старте программы инициализировать глобальную переменную типа ОБЪЕКТ, представляющую драйвер устройства:

ГЛОБАЛ ПЕРЕМ ОБЪЕКТ: ДрайверККМ

ФУНКЦИЯ ЖУРНАЛ(накладные_доп) ЛОГИКА : Стартовать

// Выполняем необходимые действия при старте программы

СТАТУС("Загрузка драйвера ККМ...")

ДрайверККМ = СОЗДАТЬ_ОБЪЕКТ("Addin.SharpDriver", "SharpDrv.dll")

Стартовать = ДА

КОНЕЦ_ФУНКЦИИ

В этом случае события будут вызываться до окончания работы с программой.

При срабатывании внешнего события вызывается обработчик. В него передаются три параметра источник, событие и данные. Все они инициализируются внешним приложением, поэтому содержание этих параметров надо смотреть в документации к этому приложению или драйверу.

Также в обработчик также передается параметр редактор логического типа. Если он истинен, значит, пользователь редактирует запись этого журнала. В этом случае поля объекта ЖУРНАЛ, для которого вызывается обработчик, будут инициализированы полями редактируемой записи и для обработчика будет действовать логика работы обработчиков в диалоге.

Если параметр редактор = НЕТ, поля объекта инициализированы значениями по умолчанию.

ФУНКЦИЯ ЖУРНАЛ(накладные_доп) ВнешнееСобытие (СТРОКА: источник, событие, данные;

ЛОГИКА: редактор)

// Обрабатываем внешнее событие от драйвера устройства

ЕСЛИ источник = "ДрайверККМ" ТО

ДрайверККМ.CommandID = данные

КодОшибки = ДрайверККМ.GetCommandParams()

ЕСЛИ КодОшибки = 0 ТО

// Обработка события, например, добавление новой операции

// в журнал накладные

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Замечание!

1) Внешние события срабатывают только в случае, если программа не выполняет какой-либо расчет.

2) Обработчик не срабатывает в случае, если вызвана функция ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ.

COM-события.

Для запуска COM-событий необходимо создать объект (с помощью функции СОЗДАТЬ_ОБЪЕКТ) и включить обработку событий методом ВКЛ_СОБЫТИЕ. В остальном COM-события работают так же, как и события от внешних компонент 1С. А именно. Вызов событий прекращается при завершении работы с объектом (с помощью ЗАКРЫТЬ или при завершении работы алгоритма). Чтобы события вызывались всё время работы программы надо использовать глобальные переменные. Также глобальные переменные используются при получении параметров внешних событий. Например, можно в обработчике при старте программы инициализировать глобальную переменную и включить обработку событий:

ГЛОБАЛ ПЕРЕМ ОБЪЕКТ: TAPI
ГЛОБАЛ ПЕРЕМ ЧИСЛО: TAPI_EVENT_TYPE
ГЛОБАЛ ПЕРЕМ ОБЪЕКТ: TAPI_EVENT_PARAM

ФУНКЦИЯ ЖУРНАЛ(клиенты) ЛОГИКА : Стартовать

// Выполняем необходимые действия при старте программы

СТАТУС("Инициализация TAPI...")

ПЕРЕМ ОБЪЕКТ: addresses_coll, address

TAPI = СОЗДАТЬ_ОБЪЕКТ("TAPI.TAPI.1")
TAPI.Initialize()

// Включаем события. При срабатывании будут заполнятся переменные TAPI_EVENT_TYPE и TAPI_EVENT_PARAM

TAPI.ВКЛ_СОБЫТИЕ("{EDDB9426-3B91-11D1-8F30-00C04FB6809F}": ДА: 1: "INT,DISPATCH", TAPI_EVENT_TYPE, TAPI_EVENT_PARAM)

addresses_coll = TAPI.Addresses

ЦИКЛ ДЛЯ (i = 2, addresses_coll.Count)

address = addresses_coll.Item[i]

// Будем отслеживать внутренние телефоны 13 и 17

ЕСЛИ address.QueryMediaType(TAPIMEDIATYPE_AUDIO) И address.DialableAddress ИЗ ["13","17"] ТО

TAPI.EventFilter = TE_CALLSTATE

TAPI.RegisterCallNotifications(address, ДА, ДА, $00000008 {TAPIMEDIATYPE_AUDIO}, 2);

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

Стартовать = ДА

КОНЕЦ_ФУНКЦИИ

В этом случае события будут вызываться до окончания работы с программой.

При срабатывании внешнего события вызывается обработчик. В него передается параметр источник. Он содержит ГУИД класса, который при включении события был передан в метод ВКЛ_СОБЫТИЕ. Для доступа к параметрам события используются глобальные переменные, которые были переданы в ВКЛ_СОБЫТИЕ.

ФУНКЦИЯ ЖУРНАЛ(клиенты) ВнешнееСобытие (СТРОКА: источник, событие)

ПЕРЕМ ОБЪЕКТ: call, address

ЕСЛИ источник = "{EDDB9426-3B91-11D1-8F30-00C04FB6809F}" И событие = "1" ТО

call = TAPI_EVENT_PARAM.call

address = call.address

ЕСЛИ call.CallState = CS_INPROGRESS ТО

ОТЛАДКА(address.DialableAddress + ": Сняли трубку");

ИНАЧЕ_ЕСЛИ call.CallState = CS_CONNECTED ТО

ОТЛАДКА(address.DialableAddress + ": Соединились с " + call.CallInfoString[CIS_CONNECTEDIDNUMBER]);

ИНАЧЕ_ЕСЛИ call.CallState = CS_DISCONNECTED ТО

ОТЛАДКА(address.DialableAddress + ": Положили трубку");

ИНАЧЕ_ЕСЛИ call.CallState = CS_OFFERING ТО

ОТЛАДКА(address.DialableAddress + ": Вам звонит " + call.CallInfoString[CIS_CALLERIDNUMBER]);

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Замечание!

1) Внешние события срабатывают только в случае, если программа не выполняет какой-либо расчет.

2) Обработчик не срабатывает в случае, если вызвана функция ЗАПРОС_ВНЕШНЕГО_СОБЫТИЯ.

События от потокового серверного сокета.

После вызова функции СЕРВЕР_ПОДКЛЮЧИТЬ данные, отправляемые серверным сокетом программа сможет получать с помощью обработчика внешнего события. Вызов событий прекращается после отключения от серверного сокета. Это делается с помощью той же функции СЕРВЕР_ПОДКЛЮЧИТЬ при передаче пустой строки вместо имени сервера.

Подключиться к серверному сокету можно, например, в обработчике при старте программы:

ФУНКЦИЯ ЖУРНАЛ(клиенты) ЛОГИКА : Стартовать

// Выполняем необходимые действия при старте программы

СЕРВЕР_ПОДКЛЮЧИТЬ("SERVER:4000")

Стартовать = ДА

КОНЕЦ_ФУНКЦИИ

При отправке сервером данных вызывается обработчик. В него передается параметр источник равный "TCPClient". Параметр событие равен адресу сервера, а параметр данные содержит передаваемые данные (для разбивки данных на фрагменты необходимо указывать разделитель, см. описание функции СЕРВЕР_ПОДКЛЮЧИТЬ).

ФУНКЦИЯ ЖУРНАЛ(клиенты) ВнешнееСобытие (СТРОКА: источник, событие, данные)

ЕСЛИ источник = "TCPClient" ТО

ОТЛАДКА(событие, данные)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

События от HID-устройства.

После вызова функции ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ нажатия на клавиши от заданного HID-устройства перестают приходить в программу и вместо этого начинает срабатывать обработчик внешнего события.

Включить перенаправление можно, например, в обработчике при старте программы:

Примером использования данной функции является работа со сканером, работающим в режиме эмуляции клавиатуры (PS/2). Такой сканер эмулирует нажатия клавиш на клавиатуре, но после вызова функции ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ вместо нажатий клавиш будет вызываться обработчик внешнего события (более детально см. описание этой функции).

ФУНКЦИЯ ЖУРНАЛ(клиенты) ЛОГИКА : Стартовать

// Выполняем необходимые действия при старте программы

ВКЛ_СОБЫТИЯ_КЛАВИАТУРЫ("*\HID*")

Стартовать = ДА

КОНЕЦ_ФУНКЦИИ

Обработчик внешнего события срабатывает не при каждом поступлении сигнала о нажатой клавиши, а только после нажатия на клавишу возврата каретки. Встретив клавишу возврата каретки программа отправляет в обработчик строку из всех нажатых клавиш в параметре данные, источник будет равен "HID", а событие содержит название устройства.

ФУНКЦИЯ ЖУРНАЛ(клиенты) ВнешнееСобытие (СТРОКА: источник, событие, данные)

ЕСЛИ источник = "HID" ТО

ОТЛАДКА(событие, данные)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Отправка событий из программы

С помощью функции ПОСЛАТЬ_СОБЫТИЕ можно инициировать вызов обработчика внешнего события. Возможен отложенный вызов, когда событие срабатывает через определенное время.

С помощью функции УДАЛИТЬ_СОБЫТИЯ можно удалить все ранее посланные события (посланные, но не выполненные).

Сообщения о действиях пользователей в центре уведомлений Windows

С помощью функции ПОСЛАТЬ_УВЕДОМЛЕНИЕ можно создать уведомление в Центре уведомлений Windows (начиная с Windows 10 и в усеченном виде в Windows 8). Некоторые из этих уведомлений могут содержать элементы управления (кнопки, меню и т.д.). Пользователь, совершая действия, например нажимая кнопку на уведомлении, будет инициировать вызов обработчика внешнего события (если программа в этот момент еще работает). В него передается параметр источник равный "Toast". Параметр событие равен идентификатору события, а параметр данные содержит передаваемые данные (они задаются при создании события).

ФУНКЦИЯ ЖУРНАЛ(клиенты) ВнешнееСобытие (СТРОКА: источник, событие, данные)

ЕСЛИ источник = "Toast" ТО

ОТЛАДКА(событие, данные)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ


Обработчик кнопки связи для операции

Обработчики

Описание. Если у журнала есть обработчик кнопки связи для операции, то справа от записи появится кнопка LINKACC . При нажатии на эту кнопку будет вызван этот обработчик.

В журнал может быть добавлено поле логического типа есть_связь (в структуре журнала оно описывается как HAVE_LINK). Если это поле в журнале присутствует, то кнопка LINKACC будет показана у тех записей, у которых есть_связь истинно.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(товары) КнопкаСвязиОперации

{ Выполнением действия при нажатии на кнопку связи }

КОНЕЦ_ФУНКЦИИ


Обработчик подсказка поля

Обработчики

Описание. Обработчик подсказка поля используется для выдачи подсказки при наведении курсора мыши на заданное поле в таблице. Внутри функции поля объекта инициализированы полями записи, на которую указывает курсор мыши. Функция возвращает строковой результат, определяющий текст подсказки.

Типичное использование этой функции заключается в выдачи название объекта по его коду, например, по коду фирмы ее название:

Пример1:

ФУНКЦИЯ ЖУРНАЛ(основные_средства) СТРОКА : Подсказать_кодОтвЛица

{ Устанавливаем текст всплывающей подсказки для поля "кодОтвЛица" }

сотр ЭТО сотрудники

ЕСЛИ сотр.НАЙТИ(таб_номер=код_отв_лица) ТО

Подсказать_кодОтвЛица = сотр.фамилия+" "+сотр.имя+" "+сотр.отчество

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

См.также
Подсказка записи


Обработчик подсказка записи

Обработчики

Описание. Обработчик подсказка записи используется наряду с обработчиком подсказки поля для выдачи подсказки при наведении курсора мыши на заданное поле в таблице. Однако, он работает только для выдачи подсказки по полям, ссылающимся на запись другого журнала. Для получения текста подсказки будет вызываться обработчик подсказки записи того журнала, на которую ссылается запись.

Внутри обработчика поля объекта инициализированы полями записи, на которую ссылается запись, на которой наведен курсор мыши. Функция возвращает строковой результат, определяющий текст подсказки.

При необходимости, можно выдавать разный текст подсказки в зависимости от параметра <лукап_поле>.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(сотрудники) СТРОКА: ПодсказатьИнформацию (СТРОКА: лукап_поле)

{ Устанавливаем текст всплывающей подсказки для записи журнала "сотрудники" }

ПодсказатьИнформацию = фамилия+" "+имя+" "+отчество

КОНЕЦ_ФУНКЦИИ

Если есть журнал основные_средства, у которого есть поле кодОтвЛица, ссылающееся на журнал сотрудники, то при наведении на него курсора, будет вызван обработчик ПодсказатьИнформацию и показано ФИО ответственного лица.

См.также
Подсказка поля


Обработчик копирования в буфера обмена

Обработчики

Описание. Обработчик копирования в буфера обмена вызывается в двух случаях:

·когда пользователь копирует запись журнала в буфер обмена.

·при создании копии записи с помощью контекстного меню Создать копию

Функция возвращает результат логического типа. Если она вернет НЕТ, копирование остановится.

Обычно детализация операции (записи подчиненного журнала детализации) копируются вместе с основной записью в буфер обмена. Но это происходит не всегда. Если к журналу детализации нет явного обращения при редактировании записи, например, он не отображается в качестве таблицы детализации, то программа не будет его копировать. Обработчик копирования в буфера обмена может использоваться для информирования программы о наличии такого журнала детализации, который надо скопировать вместе с основной записью. Для этого достаточно вызвать метод КОЛ_ДЕТАЛЕЙ(<журнал детализации>) внутри обработчика ПередКопированием.

Пример 1:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : ПередКопированием

{ Выполняем необходимые действия при копировании записи в буфера обмена }

ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "Администратор" ТО

РЕЗУЛЬТАТ = ДА

ИНАЧЕ

СООБЩЕНИЕ("Только администратор может копировать данные из этого журнала")

РЕЗУЛЬТАТ = НЕТ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Пример 2:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : ПередКопированием

{ Информируем о наличии журнала детализации "оплаты_накладных", который надо скопировать в буфер обмена тоже }

КОЛ_ДЕТАЛЕЙ(оплаты_накладных)

РЕЗУЛЬТАТ = ДА

КОНЕЦ_ФУНКЦИИ


Обработчик вставки из буфера обмена

Обработчики

Описание. Обработчик вставки из буфера обмена вызывается перед обработчиком перед записью, в случае, когда пользователь выполняет вставку записей из буфера обмена. Функция возвращает результат логического типа. Если она вернет НЕТ, вставка остановится, а запись не будет добавлена.

Для обработчика действует логика работы обработчиков в диалоге.

Обработчик вставки из буфера обмена обычно используется для обнуления полей, которые по смыслу не должны содержать значение для вновь добавленной записи.

Пример:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : ПередВставкой

{ Выполняем необходимые действия при вставке записи из буфера обмена }

родитель_ид = ПУСТО

ПередВставкой = ДА

КОНЕЦ_ФУНКЦИИ


Обработчик группового выбора

Обработчики

Описание. Обработчик группового выбора нужен в режиме группового выбора когда подбор записи происходит по нестандартным условиям. Например, если подбор идет из разных справочников, в зависимости от условий.

В функцию передается параметр добавление логического типа, по которому можно узнать, что происходит добавление новой записи детализации или изменение старой.

Внутри обработчика группового выбора должен быть вызов функции ВЫБОР_ЗАПИСИ того журнала, из которого будет осуществляться подбор. Специально для этого функция имеет дополнительные параметры.

ФУНКЦИЯ ЖУРНАЛ(накладные_доп) ЛОГИКА: ГрупповойВыбор(ЛОГИКА: добавление)

// Выводим диалог выбора записей из связанного журнала и подстановки их в журнал "тс_операции"

тов ЭТО товары

ВЫБОР_ЗАПИСИ(тов (код = код_товара),"Выберите товар")

// Возвращаем ДА, когда не надо использовать стандартный диалог выбора

ГрупповойВыбор = ДА

КОНЕЦ_ФУНКЦИИ

Обработчик возвращает логическое значение. Оно означает согласие с групповым выбором. Если функция вернет НЕТ, программа посчитает это отказом от использования режима группового выбора. Будет выведен обычный диалог добавления записи в детализацию. Так, следующий пример означает полный отказ от группового выбора:

ФУНКЦИЯ ЖУРНАЛ(накладные_доп) ЛОГИКА: ГрупповойВыбор(ЛОГИКА: добавление)

ГрупповойВыбор = НЕТ

КОНЕЦ_ФУНКЦИИ

См. также
Режим группового выбора
Групповой выбор


Обработчик очистки базы данных

Обработчики

Описание. Обработчик очистки базы данных вызывается при выполнении процедуры создания новой базы данных или закрытия периода. Внутри этого обработчика описываются действия которые нужны для очистки базы данных или удаления операций до указанной даты.

В процессе создания новой базы данных происходит копирование текущей базы (методом сохранения и последующего восстановления из резервной копии в новую базу). Затем в новой базе данных происходит вызов указанного обработчика. Если параметр на_дату содержит пустое значение — это означает что создается пустая база данных и задача обработчика — удалить ненужные данные в копии базы. Если параметр на_дату содержит не пустое значение — значит от обработчика требуется удалить данные до указанной даты и сформировать исходный остаток на эту дату.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(накладные) ОчисткаБазыДанных(ДАТА: на_дату)

ЕСЛИ на_дату = ПУСТО ТО

// Очищаем базу данных (удаляем записи из нужных журналов)

ОЧИСТИТЬ!

ИНАЧЕ

// Производим необходимые действия при закрытии периода

ОЧИСТИТЬ!(дата < на_дату)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ


Обработчик перед диалогом

Обработчики

Описание. Обработчик перед диалогом вызывается перед тем, как на экране появится диалог редактирования записи. Функция вызывается всегда, вне зависимости, откуда был вызван диалог, из таблицы редактирования, из диалога или из внутреннего языка.

Для обработчика действует логика работы обработчиков в диалоге. При редактировании записи поля объекта внутри метода определяются по полям редактируемой записи, при добавлении устанавливаются по умолчанию. Что происходит добавление или редактирование можно узнать по параметру новая_запись логического типа, который передается в обработчик.

Обработчик возвращает логическое значение, определяющее, надо открывать диалог или нет.

Свойство КОЛОНТИТУЛ внутри этого обработчика позволяет обратиться и поменять заголовок диалога редактирования записи журнала.

Обработчик перед диалогом может использоваться для задания сложного значения по умолчанию для новой записи в диалогах; автонумерации; установке начального значения доступа к полям, в зависимости от каких-либо условий; разграничении доступа и т.д.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(фонд_времени) ЛОГИКА : ПередДиалогом

(ЛОГИКА : новая_запись)

{ Инициализируем данные перед вызовом диалога редактирования }

ЕСЛИ НОВАЯ ТО

ЦИКЛ ПО ЖУРНАЛУ фонд_времени,МАКС(месяц) максМес

(год=СВОЕ.год И назвГрафика=СВОЕ.назвГрафика)

слМес=максМес+1

КОНЕЦ_ЦИКЛА

месяц=?(слМес>12,1,максМес+1)

КОНЕЦ_ЕСЛИ

{ Разрешаем или запрещаем вызывать диалог редактирования }

ПередДиалогом = ДА

КОНЕЦ_ФУНКЦИИ

Пример2:

ФУНКЦИЯ ЖУРНАЛ(накладные_доп) ЛОГИКА : ПередДиалогом

(ЛОГИКА : новая_запись)

{ Инициализируем данные перед вызовом диалога редактирования }

ЕСЛИ новая_запись ТО

о=ОСНОВНАЯ

ЕСЛИ о.ндс=безНдс ТО

ДОСТУП(ндс,НЕТ)

ндс=0

ИНАЧЕ

ДОСТУП(ндс,ДА)

ндс=НДС*100

КОНЕЦ_ЕСЛИ

вес=ПОСЛ_КОЛИЧЕСТВО

КОНЕЦ_ЕСЛИ

{ Разрешаем или запрещаем вызывать диалог редактирования }

ПередДиалогом = ДА

КОНЕЦ_ФУНКЦИИ

Замечание!

В обработчике перед диалогом вызываемом перед диалогом редактирования детализации в списке детализации основной записи значение, возвращаемое методом НОВАЯ и параметр новая_запись могут различаться. Например, если пользователь добавил новую запись детализации, а потом решил ее подкорректировать, не закрывая диалог редактирования основной записи, то значение НОВАЯ будет истинно, а новая_запись ложно.


Обработчик перед отменой

Обработчики

Описание. Обработчик перед отменой вызывается при нажатии кнопки <Отмена> в диалоге редактирования записи. Функция вызывается всегда, вне зависимости, откуда был вызван диалог, из таблицы редактирования, из диалога или из внутреннего языка.

Для обработчика действует логика работы обработчиков в диалоге. При редактировании записи поля объекта внутри метода определяются по полям редактируемой записи, при добавлении устанавливаются по умолчанию. Что происходит добавление или редактирование можно узнать по параметру новая_запись логического типа, который передается в обработчик.

В обработчик также передается параметр были_изменения. Он принимает истинное значение, если пользователь вносил какие-то изменения в диалог редактирования записи.

Замечание!

В окне терминала параметры новая_запись = ДА, были_изменения = ДА.

Обработчик возвращает логическое значение, определяющее, надо закрывать диалог или нет.

Пример:

ФУНКЦИЯ ЖУРНАЛ(фонд_времени) ЛОГИКА : ПередОтменой(ЛОГИКА : новая_запись, были_изменения)

РЕЗУЛЬТАТ = НЕ были_изменения ИЛИ ВОПРОС("Отменить " + ?(новая_запись, "добавление", "изменение"))

КОНЕЦ_ФУНКЦИИ


Обработчик перед записью

Обработчики

Описание. Обработчик перед записью вызывается перед добавлением или изменением записи в журнале. Функция возвращает результат логического типа, означающий успех выполнения функции.

Для обработчика действует логика работы обработчиков в диалоге.

Обработчик перед записью можно использовать для проверки правильности введенных пользователем данных, пересчете связанных данных и т.д.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(фонд_вр) ЛОГИКА : ПередЗаписью

{ Выполняем необходимые действия перед добавлением записи в журнал }

ПередЗаписью = ДА

ЕСЛИ месяц>12 ИЛИ месяц<1 ТО

{ Запрещаем добавлять запись в журнал "фондВР" }

ПередЗаписью = НЕТ

СООБЩЕНИЕ("Допустимый диапазон месяца от 1 до 12")

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Пример2:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : ПередЗаписью

ПередЗаписью=ДА

{ При добавлении сбрасываем флажок экспорта на случай копирования и

последущей вставки через буфер накладной,по которой уже был экспорт}

бух=НЕТ

{ Для правильного получения следующего номера документа переводим

строковые номера в числа с обрезанием не числовых символов }

сф_прав=НОМЕР_ДОК(сф)

накл_прав=НОМЕР_ДОК(накл)

ПередДобавлением = ДА

КОНЕЦ_ФУНКЦИИ

Замечание!

Обработчик вызывается по следующему алгоритму:

1.Проверяется уникальность основного индекса и уникальные поля.

2.Вызывается обработчик перед записью. Если возвращаемый результат истинен, то добавляется запись, все изменения в полях объекта автоматически влияют на записываемую информацию. Если результат ложный, то, если запись добавляется пользователем или при помощи метода ДОБАВИТЬ, то управление возвращается в диалог добавления записи, а если запись добавляется при помощи ДОБАВИТЬ(НЕТ), т.е. без диалога, то добавление не происходит, а функция ДОБАВИТЬ возвращает НЕТ.

3.Добавляется запись в журнал.

4.Выполняется обработчик проводки.

См.также
После записи


Обработчик перед удалением

Обработчики

Описание. Обработчик перед удалением вызывается перед удалением записи из журнала. Функция возвращает результат логического типа, определяющий успех выполнения.

Для обработчика действует логика работы обработчиков в диалоге.

Обработчик перед удалением можно использовать при пересчете связанных данных, разделении доступа и т.д.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : ПередУдалением

{ Разрешаем или запрещаем удалять запись из журнала "накладные" }

ПередУдалением =

ВОПРОС( "Подумайте еще раз перед удалением накладной//" +

"Возможно нарушение нормальной работы//" +

"Продолжить")

КОНЕЦ_ФУНКЦИИ

Пример2:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : ПередУдалением

{ Выполняем необходимые действия перед удалением накладной }

ПередУдалением = ДА

т ЭТО товар

т.НАЙТИ(код_товара=код)

п=ОСНОВНАЯ

тов ЭТО тек_остатки

ЕСЛИ тов.НАЙТИ(код_товара=код,код_склада=п.код_склада) ТО

{ Изменяем текущий остаток в справочнике товаров }

тов.остаток_кол=тов.остаток_кол-вес

тов.своб_остаток=тов.остаток_кол-тов.резерв

тов.ЗАПИСАТЬ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Замечание!

Обработчик вызывается по следующему алгоритму:

1.Проверяются связи при использовании полей с подстановкой записи из этого журнала. Если такие находятся, предлагается выполнить соответствующие действия. Если разрыв связи не удовлетворен, прекращается удаление записи.

2.Вызывается обработчик перед удалением. Если возвращаемый результат истинен, то удаляется запись. Если результат ложный, то, запись не удаляется.

3.Удаляет по необходимости связанную бухгалтерскую операцию.

4.Удаляет запись из журнала.

5.Выполняет обработчик после удаления.


Обработчик по кнопке "Старт"

Обработчики

Описание. Если для журнала прописан обработчик по кнопке "Старт", то в форме (диалоге) редактирования записи становится доступной кнопка "Старт":

при нажатии на которую будет вызываться указанный обработчик. Для обработчика действует логика работы обработчиков в диалоге. При редактировании записи поля объекта внутри метода определяются по полям редактируемой записи, при добавлении устанавливаются по умолчанию. Что происходит добавление или редактирование можно узнать по параметру новая_запись логического типа, который передается в обработчик.

Пример.

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : ПоКнопкеСтарт (ЛОГИКА : новая_запись)

{ Выполняем какой-то расчет при нажатии на кнопку "Старт" }

КОНЕЦ_ФУНКЦИИ


Обработчик по кнопке связи

Обработчики

Описание. Если поле связано с другим журналом и содержит какое-либо значение, то оно может иметь кнопку связи linkbutton справа от кнопки выбора [image] . При нажатии на кнопку связи будет открыто контекстное меню или диалог редактирования записи (вариант поведения настаивается в параметрах связанного журнала).

Если же поле не связано с другим журналом, то кнопка связи у него отсутствует. Однако, при наличии обработчика по кнопке связи не связанное с другим журналом поле также может иметь кнопку связи. Для этого обработчик сообщает программе необходимые сведения.

Обработчик по кнопке связи возвращает текстовую строку, которая содержит идентификатор журнала и его поле. Именно по ним будет определяться, какая запись и какого журнала связана с этой графой. Строка имеет вид:

"журнал.поле"

Программа предполагает, что графа содержит ссылку на поле указанного журнала. Она ищет в журнале "журнал" запись с "код" равным значению графы. Если находит — выводит диалог редактирования записи этого журнала или его контекстное меню.

Дополнительно можно указать вид журнала, если журнал имеет несколько видов. В строке вид отделяется точкой с запятой, например:

"журнал.поле:стандартный"

При задании вида диалог редактирования записи будет открываться с указанным видом.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(товары) СТРОКА: ПоКнопкеСвязи_код (ЛОГИКА: вручную)

{ Возвращаем }

РЕЗУЛЬТАТ = "клиенты.код"

{ Возвращаем идентификатор журнала, если надо вызвать его контекстное меню }

КОНЕЦ_ФУНКЦИИ


Обработчик по таймеру

Обработчики

Описание. Обработчик по таймеру может вызываться программой с определенной периодичностью. Максимальная частота вызовов — 10 раз в секунду. Он может обрабатывать любые действия, требующие постоянного внимания.

Для старта обработчика необходимо вызвать метод ВКЛ_ТАЙМЕР.

В обработчик также передается параметр редактор логического типа. Если он истинен, значит, пользователь редактирует запись этого журнала. В этом случае поля объекта ЖУРНАЛ, для которого вызывается обработчик, будут инициализированы полями редактируемой записи и для обработчика будет действовать логика работы обработчиков в диалоге.

Если параметр редактор = НЕТ, поля объекта инициализированы значениями по умолчанию.

ФУНКЦИЯ ЖУРНАЛ(накладные) ПоТаймеру(ЛОГИКА: редактор)

// Обрабатываем событие по таймеру

ИСПОЛЬЗОВАТЬ("scaner")

новый_штрих_код = ""

// Вызываем функцию СканерСчитать для получения штрих-кода

ЕСЛИ редактор И СканерСчитать(новый_штрих_код) ТО

// Ввели штрих-код - добавляем товар в детализацию накладных

тов ЭТО товары

ЕСЛИ тов.НАЙТИ(штрих_код = новый_штрих_код) ТО

опц_доп ЭТО накладные_доп

опц_доп.код_товара = тов.код

опц_доп.кол = 1

ЗАП_ДЕТАЛЬ(опц_доп)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Внимание!

Для старта обработчика "по таймеру" при запуске программы можно вызывать функцию ВКЛ_ТАЙМЕР в обработчике При старте.

Замечание!

Подтверждение транзaкции, в рамках которой происходит выполнение обработчика, делается по следующему алгоритму. Если обработчик вызывается в редакторе, транзaкция подтверждается тогда же, когда же и подтверждается транзaкция, в рамках которой происходит редактирование записи. Если обработчик вызывается не в редакторе, транзaкция подтверждается каждые 10 секунд.


Обработчик после записи

Обработчики

Описание. Обработчик после записи вызывается после добавления или изменения записи в журнале. Функция возвращает результат логического типа, означающий успех выполнения функции.

Обработчик после записи аналогичен обработчику перед записью, но вызывается уже после того как запись была добавлена в журнал. Через параметр добавление обработчику передается флаг того, какое именно действие выполнялось: добавление или изменение записи.

Обработчик после записи использовать для обновления информации после изменения данных.

Пример:

ФУНКЦИЯ ЖУРНАЛ(клиенты) ЛОГИКА : ПослеЗаписи(ЛОГИКА: добавление)

{ Выполняем необходимые действия перед добавлением записи в журнал }

накладные.ОБНОВИТЬ

ПослеЗаписи = ДА

КОНЕЦ_ФУНКЦИИ

Внимание!

При включенных опциях Обновлять и Проверять условие в параметрах журнала, в случае если измененная или добавленная запись не прошла проверку условия, значение полей объекта, для которого выполняется обработчик, может быть не определено.

См.также
Перед записью


Обработчик после удаления

Обработчики

Описание. Обработчик после удаления вызывается после удаления записи из журнала.

Для обработчика действует логика работы обработчиков в диалоге.

Обработчик после удаления можно использовать при пересчете связанных данных.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(накладные_доп) ПослеУдаления

{ Обработчик высчитывает сумму по позициям. В обработчике "перед удалением" такого

сделать нельзя, т.к. в пересчет попадет удаляемая запись }

п = ОСНОВНАЯ

п.итого = 0

ЦИКЛ ДЛЯ (и = 1, п.КОЛ_ДЕТАЛЕЙ)

д = п.ДЕТАЛИЗАЦИЯ(и)

п.итого += д.сумма

КОНЕЦ_ЦИКЛА

КОНЕЦ_ФУНКЦИИ

Замечание!

Обработчик вызывается по следующему алгоритму:

1.Проверяются связи при использовании полей с подстановкой записи из этого журнала. Если такие находятся, предлагается выполнить соответствующие действия. Если разрыв связи не удовлетворен, прекращается удаление записи.

2.Вызывается обработчик перед удалением. Если возвращаемый результат истинен, то удаляется запись. Если результат ложный, то, запись не удаляется.

3.Удаляет по необходимости связанную бухгалтерскую операцию.

4.Удаляет запись из журнала.

5.Выполняет обработчик после удаления.


Обработчик правый заголовок

Обработчики

Описание. Обработчик правый заголовок используется для выдачи правого заголовка окна редактирования журнала. Функция возвращает строковый результат, определяющий текст заголовка. Функция вызывается при любых изменениях в журнале и может отображать актуальную информацию, связанную с журналом.

Для обработчика действует логика работы обработчиков в диалоге.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(накладные) СТРОКА : ПравыйЗаголовок

{ Выдаем правый заголовок при просмотре журнала "накладные" }

Статус = "Итого : "+СТР(СУММА(сумма),255,2)

КОНЕЦ_ФУНКЦИИ


Обработчик при выборе значения

Обработчики

Описание. Если поле имеет обработчик при выборе значения, то в редакторе записи журнала рядом с полем появляется кнопка выбора. Пользователь может воспользоваться выбором для подстановки значения поля, например из справочника. При этом происходит выполнение функции при выборе значения.

Для обработчика действует логика работы обработчиков в диалоге. В обработчик может передаваться параметр причина. Он может принимать следующие значения:

·выборВручную — если обработчик вызывается по нажатию пользователем кнопки выбора справа от поля;

·выборПослеПроверки — если обработчик вызывается после проверки значения поля, когда проверка не прошла (см.ниже);

·выборПриПоиске — в режиме Вызов в режиме поиска равном «При изменении строки». В этом режиме выбор возможен только из массива с помощью функции ВЫБОР.

Функция возвращает логическое значение, означающее выбрал пользователь значение или нет. Если внутри функции журнала при выборе значения используются такие функции как ВЫБОР_ЗАПИСИ, ВЫБОР_СЧЕТА и др. то удачность выбора можно узнать по возвращаемому ими результату. При этом если результат обработчика будет истинен, то программа перейдет к следующему полю.

Если поле имеет еще и обработчик при изменении поля, то он автоматически будет вызван после выполнения обработчика при выборе значения, в случае если обработчик при выборе значения вернет истинное значение.

Функция при выборе значения, если она просто выбирает запись из справочника или счет из плана счетов, фактически повторяет возможности полей с подстановкой значения. Поэтому этот обработчик рекомендуется использовать только там, где запись должна выбираться либо из разных справочников, либо исходя из каких-нибудь условий. Там, где этого не требуется, лучше использовать поле с подстановкой.

Однако, можно комбинировать и тот, и другой способ. Т.е. для полей с подстановкой можно написать обработчик при выборе значения. В этом случае, программа получает, как автоматический контроль целостности данных (так как это поле с подстановкой ), так и расширенный вариант подстановки записи в виде обработчика при выборе значения. При этом в этой ситуации появляются еще две полезные возможности: внутри обработчика любая переменная типа Журнал для журнала, из которого подставляется запись в это поле, будет проинициализирована связанной с этим полем записью. Если же такая запись не будет найдена, то будет считана первая, наиболее подходящая по смыслу запись. Это бывает полезно, так как, например, при вызове функции ВЫБОР_ЗАПИСИ курсор будет стоять на выбранной записи. Примерно то же будет сделано и при выполнении обработчика при изменении поля.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(товары) ЛОГИКА : ПриВыборе_код_счета (ЧИСЛО: причина)

{ Выбираем значение поля "код_в_плане_счетов" и подставляем его в диалог }

ЕСЛИ НЕ СЧЕТ_СУЩ(код_счета) ТО

ЕСЛИ ВОПРОС("Добавить счет в план счетов") ТО

ДОБАВИТЬ_СЧЕТ(код_счета,наименование,"А/П")

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

счв=ВЫБОР_СЧЕТА(код_счета,ДА)

ЕСЛИ счв<>"" ТО

код_счета=счв

ПриВыборе_код_счета = ДА

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Пример2:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : ПриВыборе_клиент (ЧИСЛО: причина)

{ Выбираем значение поля "клиент" и подставляем его в диалог }

ПриВыборе_клиент=НЕТ

клиенты.НАЙТИ(код=клиент, ДА)

ЕСЛИ ВЫБОР_ЗАПИСИ(клиенты) ТО

клиент=клиенты.код

ПриВыборе_клиент=ДА

КОНЕЦ_ЕСЛИ

{ Возвращаем ДА, если пользователь выбрал нужное значение }

КОНЕЦ_ФУНКЦИИ

Если поле клиент является полем с подстановкой из журнала клиенты, то функцию можно написать проще:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : ПриВыборе_клиент (ЧИСЛО: причина)

ПриВыборе_клиент=ВЫБОР_ЗАПИСИ(клиенты)

клиент=клиенты.код

КОНЕЦ_ФУНКЦИИ

Замечание1

Обработчик при выборе значения будет вызываться и когда функция проверка поля вернет отрицательный результат. В этом случае параметр причина будет равен выборПослеПроверки.

Замечание2

Самый сложный вариант, когда обработчик при выборе значения имеет поле с подстановкой из журнала.

Тогда интерфейс с пользователем будет следующий:

1.Если пользователь уходит с поля в порядке ввода, программа проверяет введенное значение на правильность (значение поля есть в журнале, из которого оно подставляется), и в случае если оно неверное, вызывает обработчик при выборе значения с параметром причина равным выборПослеПроверки.

2.Если введенное значение правильно, вызывается обработчик проверки поля, в котором могут содержаться дополнительные условия правильности значения. И также, если дополнительное условие вернет НЕТ, то вызывается обработчик при выборе значения с параметром причина равным выборПослеПроверки.

3.Когда пользователь закрывает диалог редактирования записи, нажав <OK>, программа проверяет значение этого поля на правильность, и в случае если оно неверное, вызывает обработчик при выборе значения с параметром причина равным выборПослеПроверки. При этом диалог не закрывается.

Замечание3

Для журнала детализации, когда активен режим группового выбора, работа обработчика при выборе значения иная. См. групповой режим ввода.

Замечание4

Если у поля с обработчиком при выборе значения в параметрах настройки выбора установлен вариант Выбор из списка или Редактируемый список.

·Если поле не является полем с подстановкой значения из журнала, список будет заменен диалогом.

·Если поле является полем с подстановкой значение из журнала, обработчик выполниться для формирования элементов списка. Все вызовы функции ВЫБОР, ВВЕСТИ_ЗНАЧЕНИЕ, ВЫБОР_ЗАПИСИ, ВЫБОР_ДЕТАЛИ для журнала, из которого подставляется значение, будут проигнорированы и вместо этого их параметры вызова станут источником информации для списка.


Обработчик при завершении

Обработчики

Описание. Обработчик при завершении вызывается при завершении работы программы. Ее можно использовать для сохранения резервной копии и т.д.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(накладные) Завершить

// Выполняем необходимые действия при завершении работы программы

ЭКСПОРТ("Backup\nakl")

КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ЖУРНАЛ(накладные) Завершить

// Добавим в протокол информацию о том, что пользователь вышел из программы
ДОБАВИТЬ_В_ПРОТОКОЛ("вышел")

КОНЕЦ_ФУНКЦИИ

См. также
При старте программы


Обработчик при изменении полей

Обработчики

Описание. Обработчики при изменении полей выполняются в диалогах редактирования записи журнала, когда пользователь изменяет значение какого-либо поля и только в этом случае. Если поле изменяется не пользователем, а, например, средствами транслятора функция не вызывается.

Обработчик аналогичен обработчику при изменении поля, но вызывается при изменении любого поля, а не какого-то заданного. Что происходит — добавление или редактирование, можно узнать по параметру новая_запись логического типа, который передается в обработчик.

Внутри обработчика доступна функция ИЗМЕНЕНА, с помощью которой можно узнать, какое поле изменилось. Для получения предыдущего значения поля можно использовать метод СТАРАЯ (во II-ом варианте синтаксиса).

Пример:

ФУНКЦИЯ ЖУРНАЛ(накладные) НаИзменение(ЛОГИКА: новая_запись)

{ Выполняем действия при изменении значения поля "клиент" в диалогах }

ЕСЛИ ИЗМЕНЕНА(клиент) ТО

НаИзменение_клиент

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

См.также Обработчик при изменении поля


Обработчик при изменении поля

Обработчики

Описание. Обработчики при изменении поля выполняются в диалогах редактирования записи журнала, когда пользователь изменяет значение какого-либо конкретного поля и только в этом случае. Если поле изменяется не пользователем, а, например, средствами транслятора функция не вызывается.

Обработчик аналогичен обработчику при изменении полей, но вызывается при изменении какого-либо конкретного поля, а не любого.

Функция при изменении поля вызывается всегда, когда происходит изменение соответствующего поля или после выбора его значения (например, для полей с подстановкой), в случае, если выбранное значение отличается от существовавшего. Для обработчика действует логика работы обработчиков в диалоге.

Если функция при изменении поля вызывается для полей с подстановкой записи из другого журнала, то все новые переменные типа ЖУРНАЛ для связанного с полем журнала будут проинициализированы полями связанной записи. Если же связанная запись не будет найдена, то они будут заполнены значениями по умолчанию.

Для получения предыдущего значения поля можно использовать метод СТАРАЯ (во II-ом варианте синтаксиса).

Пример:

ФУНКЦИЯ ЖУРНАЛ(накладные) НаИзменение_клиент

{ Выполняем действия при изменении значения поля "клиент" в диалогах }

ЕСЛИ клиент.НАЙТИ(код=:клиент) ТО

название=клиент.название

инн=клиент.инн

ИНАЧЕ

название="Покупатель не найден"

инн=""

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

Если поле клиент является полем с подстановкой записи из журнала накладные, то такой обработчик можно написать проще:

ФУНКЦИЯ ЖУРНАЛ(накладные) НаИзменение_клиент

название=клиент.название

инн=клиент.инн

КОНЕЦ_ФУНКЦИИ

Функцию можно использовать для управления доступом к другим полям. Например, при вводе номера платежного документа к накладной открывается поле дата документа:

Пример:

ФУНКЦИЯ ЖУРНАЛ(накладные) НаИзменение_платДок

{ Выполняем действия при изменении значения поля "платДок" в диалогах }

ДОСТУП(датаОплСф, УБР_ПРОБ(платДок)<>"")

датаОплСф= ?(УБР_ПРОБ(платДок)="",НЕТ_ДАТЫ,

?(датаОплСф=НЕТ_ДАТЫ,ДАТА_ТЕК,датаОплСф))

КОНЕЦ_ФУНКЦИИ

Замечание!

Если журнал-таблица имеет вычислимые поля (COMPUTED BY), их значение будет автоматически обновляться так же, как если бы это делалось в обработчиках при изменении. Только в этом случае не требуется писать никаких обработчиков!

См.также
Обработчик при изменении полей


Обработчик при старте

Обработчики

Описание. Обработчик при старте вызывается при старте программы. Функция возвращает результат логического типа, определяющий успех выполнения. Если отрицательный результат вернет хотя бы одна обработчик при старте вход в программу будет невозможен, вне зависимости какие права у пользователя, вошедшего в программу.

Обработчик при старте может применяться для запуска таймера, инициализации начальных данных, разграничению доступа, заполнения временных журналов, анализа версии и т.д.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : Стартовать
// Добавим в протокол информацию о том, что пользователь зашёл в программу
ДОБАВИТЬ_В_ПРОТОКОЛ("зашел")

Стартовать = ДА

КОНЕЦ_ФУНКЦИИ

Пример2:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : Стартовать

// Выполняем необходимые действия при старте программы

ЕСЛИ ДАТА_ПЕРЕСЧЕТА_ОСТ<ДАТА_ТЕК ТО

ИСПОЛЬЗОВАТЬ("ts_comm")

ПолныйПересчетОстатков

ДАТА_ПЕРЕСЧЕТА_ОСТ=ДАТА_ТЕК

КОНЕЦ_ЕСЛИ

Стартовать = ДА

КОНЕЦ_ФУНКЦИИ

См.также
При завершении программы


Обработчик проверки поля

Обработчики

Описание. Обработчик проверка поля нужен для того, чтобы указать условия на значение данного поля. Функция вызывается в редакторе записи журнала. Пользователь может добавить запись в журнал, только если выполнены условия на все ее поля. Задача обработчика только сообщить, значение корректно или нет и, возможно, вывести сообщение об ошибке. Для недоступных или невидимых полей проверка не вызывается.

Для обработчика действует логика работы обработчиков в диалоге.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(накладные) ЛОГИКА : Проверка_клиент

{ Проверяем правильность значения поля "клиент" }

Проверка_клиент = НЕТ

ЕСЛИ виды_накладных.НАЙТИ(операция=операция) ТО

ЕСЛИ виды_накладных.с_кем_операция=спрКлиенты ТО

Проверка_клиент = клиенты.НАЙТИ(код=клиент)

ИНАЧЕ ЕСЛИ виды_накладных.с_кем_операция=спрСклады ТО

Проверка_клиент = склады.НАЙТИ(код=клиент)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ


Обработчик проводки

Обработчики

Описание. Обработчик проводки задает проводки, соответствующие записи журнала.

Этот обработчик нужен для журналов, помеченных флагом Связь с бухгалтерией в свойствах журнала. Функция должна анализировать поля записи и делать соответствующие проводки при помощи функции ПРОВОДКА.

При этом : все проводки получаются связанными с записью журнала, как если бы эта запись журнала указывалась в функции ПРОВОДКА; все проводки попадают в одну бухгалтерскую операцию, а внутри обработчика проводки не могут вызываться функции ЗАП_ОПЕР и ЗАП_ОПЕР!.

Если журнал имеет несколько видов, то перед первым вызовом функции ПРОВОДКА надо указать используемый вид журнала, вызвав метод ПРИМЕНИТЬ_ВИД. Текущий используемый вид журнала программа запомнит и будет использовать при редактировании связанной операции из журнала бухгалтерских операций. Если ПРИМЕНИТЬ_ВИД не вызвать, вид будет выбран случайным образом.

В зависимости от настройки связи журналов функция журналов проводки вызывается:

·При ручной связи не вызывается. Связанные проводки в этом случае можно делать только при помощи экспорта и применения функции ПРОВОДКА с параметром <связь>. При удалении бухгалтерской операции в таком режиме связь разрывается, и запись журнала оказывается несвязанной с операцией. При удалении записи журнала удаляется и бухгалтерская операция.

·В полуавтоматическом режиме функция вызывается, когда пользователь нажмет кнопку справа от записи журнала. При этом появится диалог добавления бухгалтерской операции. При удалении бухгалтерской операции в таком режиме связь разрывается, и запись журнала оказывается несвязанной с операцией. При удалении записи журнала удаляется и бухгалтерская операция.

·В автоматическом режиме функция вызывается при добавлении или изменении записи журнала. Проводки делаются в этом случае "молча", а при удалении бухгалтерской операции или записи журнала удалится и связанная с ней запись журнала или бухгалтерская операция.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(накладные) : Проводки

{ Делаем проводки в бухгалтерию для конкретной записи журнала }

ПРОВОДКА("19/10","60/"+клиент,сумма,"накл "+накл,дата,

МНОЖЕСТВО(операция),основание)

ПРОВОДКА("41","60/"+клиент,сумма*ндс)

КОНЕЦ_ФУНКЦИИ

См.также
Метод ПРОВЕСТИ
Связь бухгалтерских операций и документов в ЦИКЛе ПО ЖУРНАЛУ


Обработчик свой фильтр

Обработчики

Описание. Обработчик свой фильтр позволяет создать свои условия фильтрации, которые будут доступны пользователю в контекстном меню.

Обработчик вызывается в двух случаях: когда надо выдать список пользовательских фильтров и когда надо наложить условие фильтрации по указанному названию фильтра. Для отделения случаев используется параметр логического типа выдать_варианты.

Если он истинен, то от обработчика требуется вернуть строку, содержащую список фильтров. Названия фильтров отделяются символом РР. В результате будут добавлены подпункты контекстного меню Фильтрация по....

Если он ложен, в обработчик передается параметр название. Это название выбранного пользователем фильтра (название пункта меню). Исходя из ее значения обработчик должен наложить условия на журнал. Именно поэтому обработчик является методом объекта ФИЛЬТР.

Пример1:

ФУНКЦИЯ ФИЛЬТР(клиенты) СТРОКА: СвойФильтр(ЛОГИКА: выдать_варианты; СТРОКА: название)

ЕСЛИ выдать_варианты ТО

{ Возвращаем список закладок }

РЕЗУЛЬТАТ = "Все" + РР + "Покупатели" + РР + "Поставщики"

ИНАЧЕ

{ По параметру "заклазка" накладываем условия }

ЕСЛИ закладка = "Все" ТО

УСЛОВИЕ(ДА)

ИНАЧЕ

ЕСЛИ закладка = "Покупатели" ТО

УСЛОВИЕ(вид_клиента = клПокуп)

КОНЕЦ_ЕСЛИ

ЕСЛИ закладка = "Поставщики" ТО

УСЛОВИЕ(вид_клиента = клПост)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ


Обработчик свое оглавление

Обработчики

Описание. Обработчик свое оглавление позволяет создать оглавление журнала в виде закладок, заданное с помощью алгоритма.

Обработчик вызывается в двух случаях: когда надо выдать список закладок и когда надо наложить условие исходя из выбранной закладки. Для отделения случаев используется параметр логического типа выдать_варианты.

Если он истинен, то от обработчика требуется вернуть строку, содержащую список закладок. Закладки отделяются символом РР.

Если он ложен, в обработчик передается параметр закладка. Это текущая выбранная закладка. Исходя из ее значения обработчик должен наложить условия на журнал. Именно поэтому обработчик является методом объекта ФИЛЬТР.

Дополнительный параметр вид_оглавления может быть использован для создания нескольких видов оглавлений, которые появляются в зависимости от условий. Вид оглавления передается в функцию ВЫБОР_ЗАПИСИ и СТАРТ_ЖУРНАЛ.

Если в результате работы обработчика возвращается пустая строка — никакие закладки не выводятся. Журнал не может иметь стандартное оглавление в виде закладок, если есть закладки определяемые обработчиком свое оглавление.

Пример1:

ФУНКЦИЯ ФИЛЬТР(клиенты) СТРОКА: СвоеОглавление(ЛОГИКА: выдать_варианты; СТРОКА: закладка, вид_оглавления)

ЕСЛИ выдать_варианты ТО

{ Возвращаем список закладок }

ЕСЛИ вид_оглавления = "НЕТ" ТО

РЕЗУЛЬТАТ = ""

ИНАЧЕ

РЕЗУЛЬТАТ = "Все" + РР + "Покупатели" + РР + "Поставщики"

КОНЕЦ_ЕСЛИ

ИНАЧЕ

{ По параметру "заклазка" накладываем условия }

ЕСЛИ закладка = "Все" ТО

УСЛОВИЕ(ДА)

ИНАЧЕ

ЕСЛИ закладка = "Покупатели" ТО

УСЛОВИЕ(вид_клиента = клПокуп)

КОНЕЦ_ЕСЛИ

ЕСЛИ закладка = "Поставщики" ТО

УСЛОВИЕ(вид_клиента = клПост)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ


Обработчик строка статуса

Обработчики

Описание. Обработчик строка статуса используется для выдачи строки статуса в диалоге редактирования записи журнала и определена только для основных журналов, имеющих детализацию. Функция возвращает строковый результат, определяющий текст статуса.

Для обработчика действует логика работы обработчиков в диалоге.

Обработчик может выдавать любую контекстную информацию по детализации записи, например, сумму колонок и т.д. или использоваться для выдачи справочной информации. Для этого используются методы для работы с детализацией ДЕТАЛИЗАЦИЯ и КОЛ_ДЕТАЛЕЙ.

В строке могут содержаться следующие специальные символы:

// (возврат каретки) — для разделения строки статуса на несколько секций

<> (угловые скобки) — для выделения текста жирным шрифтом (только всей строки или только строки секции)

# (решетка) — вначале строки или секции говорит о том, что строка статуса будет выравнена налево.

Пример1:

ФУНКЦИЯ ЖУРНАЛ(накладные) СТРОКА : Статус

{ Выдаем строку статуса при просмотре журнала "накладные" }

сумма_накл=0

ск=(1-скидка%)

ЦИКЛ ДЛЯ (и=1,КОЛ_ДЕТАЛЕЙ)

пост=ДЕТАЛИЗАЦИЯ(и)

сумма_накл=сумма_накл+пост.сумма

КОНЕЦ_ЦИКЛА

Статус = "Итого : "+СТР(сумма_накл*ск,255,2)

КОНЕЦ_ФУНКЦИИ

Пример2:

// Пример выделения жирным и разбиения на секции

Статус = "<Итого: " + СТР(сумма) + ">|НДС: " + СТР(сумма_ндс)

// Пример выделения жирным и выравнивания налево

Статус= "%<ВНИМАНИЕ! Неверные данные>|Итого: " + СТР(сумма)


Обработчик фильтр аналитик

Обработчики

Описание. Обработчик фильтр аналитик вызывается для получения условий на отображение справочника в зависимости от счета (при использовании его в качестве аналитики).

Этот обработчик нужен для журналов, помеченных флагом Является аналитикой счета в свойствах журнала.

Метод вызывается не для объекта ЖУРНАЛ, а для объекта ФИЛЬТР. Его задача — анализировать код счета, переданный ей в качестве параметра и устанавливать соответствующие условия фильтра. При выборе кода счета, имеющего эту аналитику, в бухгалтерской проводке или каком-либо другом месте программы, видимость записей аналитики будет ограничена условиями фильтра.

Для задания условия фильтрации анализируется параметр "счет". Счет может содержать в себе другие аналитики в случае, если аналитика, для которой вызывается обработчик, является второй, третьей и т.д. аналитикой у синтетического счета. Например, если у счета две аналитики — аналитика по контрагентам и аналитика по договорам, то в обработчик фильтр аналитик для договоров параметр "счет" будет передаваться уже с аналитикой по контрагентам.

Также внутри обработчика доступен дополнительный параметр, который передается в него из функции ВЫБОР_СЧЕТА.

Пример1:

ФУНКЦИЯ ФИЛЬТР(расчетные_счета) ФильтрАналитик(СТРОКА: счет, параметр)

// Фильтруем справочник, подключенный в виде аналитики к счету

// Выбираем только расчетные счета нашей фирмы, предполагается, что

// 51-ый счет имеет аналитику по справочнику "расчетные_счета"

ЕСЛИ счет = "51" ТО

УСЛОВИЕ(код_клиента = КОД_НАШЕЙ_ФИРМЫ)

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ


Управление расчетом

Следующие специализированные возможности используются для создания фиксированных констант и перечислений, используемых в алгоритмах для управления их работой:

Определения

Реквизиты

Множества

Все они хранятся в базе данных, а их значения могут отличаться от одной базы к другой. А значит алгоритмы, их использующие, будут работать по разному в каждой базе.


Определения

Определения используются для задания глобальных параметров, используемых в расчетах. Определения хранятся в базе данных и сохраняются при выходе из программы.

Разработчик конфигураций (модулей) может создавать свои, изменять и удалять определения, участвующие в расчетах, создавая алгоритмы, использующие эти определения. Однако, для этого надо иметь право настраивать структуру определений и реквизитов.

Для работы с определениями выберите пункт «Установка | Определения» главного меню. Появившаяся таблица используется для изменения значения или редактирования определений.

При установке обновления конфигурации программа сама добавляет необходимые определения. Если по тем или иным причинам определения не были добавлены, они будут запрошены в процессе расчета бланка, типовой операции или функции.

См. также
Реквизиты
Множества


Настройка определений

Для настройки определений выберите пункт «Установка | Определения» главного меню. Появившаяся таблица используется для редактирования определений. Здесь пользователь может изменить значения любого определения, а администратор или разработчик конфигураций (модулей) отредактировать список имеющихся определений.

Окно разбито на закладки — так определения объединяются по группам. Кол-во групп не ограничено. Определения располагаются в них исключительно по смыслу для более удобного поиска.

Три колонки таблицы определяют параметры определения: Код — это уникальное имя (идентификатор) определения; Значение — значение определения; Комментарий — пояснительный текст (может отсутствовать).

В строке статуса окна отображается комментарий к текущему определению (если комментарий есть).

Находясь в списке определений, Вы можете выполнить следующие действия:

Изменение значения определения — происходит при нажатии <Enter> или щелчке левой кнопкой мыши по выбранной записи в таблице. Появится диалог изменения значения определения.

Следующие действия возможны только при наличии права настраивать структуру определений и реквизитов:

Добавление определения — выполняется при добавлении записи в таблицу. После чего появится диалог редактирования определения. После ввода данных и нажатия <OK> оно добавляется в список.

Удаление определения — происходит при удалении записи из таблицы. Перед удалением определения появится подтверждение: "Удалить определение такое-то ?". Нажмите Да для удаления.

Редактирование определения — происходит при нажатии F4, выборе пункта меню «Правка | Изменить» или соответствующей кнопки на панели управления. Появится диалог редактирования определения, где можно изменить все параметры определения ( не только значение ).

Чтобы переименовать закладки в таблице определений надо изменить название группы у каждого определения входящего в нее. Группа удаляется после удаления всех определений из этой группы. Для перемещения определений между группами измените имя группы при редактировании определения. Группа Системные — выделенная, определения из этой группы не видны обычным пользователям (не имеющим прав настройки структуры определений).

См. также
Работа с таблицами


Редактирование определения

Диалог редактирования определения появляется при вызове его из таблицы определений. Для изменения надо иметь право настраивать структуру определений и реквизитов. В процессе редактирования надо заполнить поля:

Группа — Необязательный параметр, определяющий группу определений. Он предназначен для разделения определений по их смысловым значениям. Можно воспользоваться списком выбора или ввести вручную. Группа Системные — выделенная, определения из этой группы не видны обычным пользователям (не имеющим прав настройки определений).

Код — это уникальное имя (идентификатор), по которому можно обращаться к определению в алгоритмах расчетов. Код определения может иметь длину до 31 символа.

Комментарий — это пояснительный текст. Строка комментария не используется программой и служит исключительно для удобства Вашей работы с определениями. Комментарий может отсутствовать.

Значение — это константа или выражение любого допустимого в программе типа: числового, строкового, логического, типа дата и других. При вводе значения здесь программа запоминает тип определения и при изменении значения определения будет его контролировать.

Определениям можно присваивать новые значения при обработке расчета, что дает возможность, например, использовать величины, рассчитанные в одном бланке, в других бланках или типовых операциях.

Значения одних определений можно использовать при задании других определений, но при этом необходимо следить, чтобы между определениями не было взаимных (кольцевых) ссылок!

Пример:

Код | Значение | Комментарий
НДС | 20% | Ставка НДС
НДС_Т | НДС / ( 1 + НДС ) | Торговый НДС
Bad_opr | Bad_opr + 1 | Неверно!

См. также
Настройка определений


Изменение значения определения

Диалог редактирования значения определения появляется при вызове его из таблицы определений. Введите значение указанного определения. Значение должно быть непустой строкой и соответствовать требуемому типу определения. Узнать, что требует от пользователя можно по коду определения и комментарию. Строковые значения должны заключаться в двойные кавычки ("). Определение логического типа должно иметь одно из значений: ДА или НЕТ. Также, значением любого определения может быть выражение.

Пример:

Ссылка на другое определение или вызов встроенной функции.

После того как значение введено, нажмите <OK>. Программа может выдать сообщение:

Ошибка — введенное значение не является правильной константой или выражением

Определение ... должно иметь тип ... — программа ожидает, что значение будет этого типа

Если в процессе расчета бланка или типовой операции алгоритм натолкнется на несуществующее определение, появится диалог ввода нового определения. После ввода его значения и нажатия <OK> выполнение алгоритма продолжится. При нажатии <Отмена> алгоритм приостановит свою работу.

См. также
Настройка определений


Реквизиты

Реквизиты предоставляют пользователю ввести определенные данные (реквизиты фирмы), которые потом будут подставляться в первичные и отчетные документы, использоваться в колонтитулах при печати и т.д. Реквизиты хранятся в базе данных и сохраняются при выходе из программы.

Разработчик конфигураций (модулей) может создавать свои, изменять и удалять реквизиты, участвующие в расчетах, создавая алгоритмы, использующие эти реквизиты. Однако, для этого надо иметь право настраивать структуру определений и реквизитов.

Для работы с реквизитами выберите пункт «Установка | Реквизиты» главного меню. Появившаяся таблица используется для изменения значения или редактирования реквизитов.

При установке обновления конфигурации программа сама добавляет необходимые реквизиты. Если по тем или иным причинам определения не были добавлены, они будут запрошены в процессе расчета бланка, типовой операции или функции.

Реквизиты очень похожи на определения, но есть и отличия:

·Реквизиты индивидуальны для каждой фирмы, а не общие на всю базу данных.

·Реквизит — это строка, определение — это выражение (константа). Строковое определение должно заключаться в кавычки.

См. также
Определения
Множества


Настройка реквизитов

Для состава реквизитов выберите пункт «Установка | Реквизиты» главного меню. Появившаяся таблица используется для редактирования реквизитов. Здесь пользователь может изменить значения любого реквизита, а администратор или разработчик конфигураций (модулей) отредактировать список имеющихся реквизитов.

Три колонки таблицы определяют параметры реквизита: Код — это уникальное имя (идентификатор) реквизита; Значение — значение реквизита; Комментарий — пояснительный текст (может отсутствовать).

В строке статуса окна отображается комментарий к текущему реквизиту (если комментарий есть).

Находясь в списке реквизитов, Вы можете выполнить следующие действия:

Изменение значения реквизита — происходит при нажатии <Enter> или щелчке левой кнопкой мыши по выбранной записи в таблице.

Следующие действия возможны только при наличии права настраивать структуру определений и реквизитов:

Добавление нового реквизита — выполняется при добавлении записи в таблицу. После чего появится диалог редактирования реквизита. После ввода данных и нажатия <OK> оно добавляется в список.

Удаление реквизита — происходит при удалении записи из таблицы. Перед удалением определения появится подтверждение: "Удалить реквизит такой-то ?". Нажмите Да для удаления.

Редактирование реквизита — происходит при нажатии F4, выборе пункта меню «Правка | Изменить» или соответствующей кнопки на панели управления. Появится диалог редактирования реквизита, где можно изменить все параметры реквизита ( не только значение ).

См. также
Работа с таблицами


Редактирование реквизита

Диалог редактирования реквизита появляется при вызове его из таблицы реквизитов. Для изменения надо иметь право настраивать структуру определений и реквизитов. В процессе редактирования надо заполнить поля:

Код — это идентификатор, уникальное имя, по которому на реквизит можно ссылаться при использовании его в бланках отчетных и первичных документов. Название реквизита может иметь длину до 31 символа.

Комментарий — это пояснительный текст. Строка комментария не используется программой и служит исключительно для удобства Вашей работы с реквизитами. Комментарий может отсутствовать.

Значение — это строка, содержащая непосредственно информацию (значение реквизита).

См. также
Настройка реквизитов


Множества

Множество определяет перечислимый набор объектов. Например, для определения вариантов оплаты можно определить множество опл имеющим два элемента :

оплБезнал — Безналичные
оплНал — Наличные

Множества могут быть использованы при подстановке значений в журналах, бланках и типовых операциях.

Множество определяется по своему коду. Его варианты (элементы) состоят из кода и названия варианта (элемента). И код множества и код элементы должны быть правильными идентификаторами. Коды используются при обработке множеств внутренним языком и образуются слиянием кодов множества и элемента. Пользователь работает только с названиями элементов множеств. Так, в приведенном примере оплБезнал это код элемента множества, образующийся слиянием кода множества опл и элемента Безнал. Из внутреннего языка к элементу множества обращаются как оплБезнал, а для пользователя это будет Безналичные.

Замечание!

В старых конфигурациях можно встретить устаревший синтаксис обращения к элементам множеств вида "<код множества>.<код поля>". Не используйте такой синтаксис.

Порядок следования элементов во множестве определяется при настройке списка множеств и может быть произвольным. Пользователь может в любое время менять названия элементов и порядок следования элементов внутри множества. Это никак не отразится на работоспособности программы. Просто в существующих журналах будут показываться новые названия элементов, и их порядок в списках выбора будет другим. Для получения названия множества из внутреннего языка используется функция МНОЖЕСТВО.

Для редактирования списка множеств можно воспользоваться пунктом «Разработка | Множества». Появится окно Редактирования множеств.

В процессе установки обновления программа добавляет как новые множества, так и новые элементы в существующие.

См. также
Определения
Реквизиты


Редактирование множеств

Стандартное меню

Редактор множеств можно вызвать при помощи пункта меню «Разработка | Множества». Появится таблица всех существующих множеств. У каждого множества слева будет кнопка [image]. Воспользовавшись ею можно перейти к редактированию элементов выбранного множества.

Находясь в списке множеств, Вы можете выполнить следующие действия:

Изменение названия элемента — происходит при нажатии <Enter> или щелчке левой кнопкой мыши по выбранной записи в таблице.

Изменение порядка следования элементов — происходит при перемещении строк таблицы. Перед этим надо войти внутрь выбранного множества.

Следующие действия возможны только при наличии права настраивать структуру множеств:

Добавление нового множества или элемента — выполняется при добавлении записи в таблицу множеств. В зависимости от того, находитесь ли Вы в списке множеств или в списке элементов выбранного множества, на экране отобразится диалог создания нового множества или нового элемента множества. После нажатия <OK> новое множество или его элемент будет добавлено в список.

Редактирование множества или элемента — происходит при редактировании записи таблицы множеств. В зависимости от того, находитесь ли Вы в списке множеств или в списке элементов выбранного множества, на экране отобразится диалог редактирования множества или редактирования элемента множества. После нажатия <OK> изменения будут сохранены в базе данных.

Удаление множества или его элемента — происходит при удалении проводки из таблицы множеств. В зависимости от того, находитесь ли Вы в списке множеств или в списке элементов выбранного множества, будет удалено множество или элемент множества. Перед удалением проводки появится подтверждение: "Удалить множество (элемент множества) такой-то ?". Нажмите Да для удаления.

Вы можете скопировать в буфер обмена список элементов множества, если нужно перенести их в другую базу данных. Переключившись на другую базу данных (можно для удобства запустить сразу два экземпляра программы, один подключен к базе данных-источнику, другой подкючен к базе данных-приемнику), скопированные элементы вставляются из буфера обмена.


Редактирование множества

В диалоге редактирования множества задается идентификатор (код) множества. Коды множеств используются при их обработке внутренним языком. Не может быть двух множеств с одинаковым кодом. В диалоге имеются следующие элементы:

Множество — здесь указывается идентификатор множества. Идентификатор должен быть правильным с точки зрения внутреннего языка, т.е. начинаться с буквы (латинской или русской) или знака подчеркивания, а со второй позиции в имени допустимы еще и цифры.

См. также
Редактирование элемента множества


Редактирование элемента множества

В диалоге редактирования элемента множества задаются параметры элемента множества. В диалоге имеются следующие элементы:

Множество — здесь отображается идентификатор множества, элемент которого редактируется или добавляется.

Элемент — задает идентификатор (код) элемента множества. Идентификатор должен быть правильным с точки зрения внутреннего языка, т.е. начинаться с буквы (латинской или русской) или знака подчеркивания, а со второй позиции в имени допустимы еще и цифры. Конечный идентификатор элемента во внутреннем языке будет получаться слиянием кода множества и указанного здесь кода элемента. Внутри выбранного множества не может быть двух элементов с одинаковым идентификатором.

Название — задает название элемента. Оно будет появляться в диалогах и таблицах. Можно сделать так, чтобы в таблицах и диалогах показывались разные названия. Для этого надо занести их оба, разделив вертикальной чертой "|". Например, если в этом поле указано "Втч|В том числе НДС", то в таблицах будет писаться "Втч", а в диалогах это же значение отобразится как "В том числе НДС".

См. также
Редактирование множества


Отладчик и профайлер

Для разработчиков в программе есть отладчик и профайлер. Первый позволяет выявлять программные ошибки. Второй — выяснять источники низкой скорости работы алгоритма.

Отладчик

Отладчик доступен во всех алгоритмах — отчетах, бланках, типовых операций, обработчиках журналов. Также он доступен внутри библиотечных функций, которые вызываются из этих алгоритмов.

Задача программиста заключается в том, чтобы понять как работает алгоритм, в какой последовательности исполняются команды, к чему это приводит. Для этого в отладчике предусмотрены следующие инструменты:

Пошаговая отладка

Выполнение алгоритма до заданной строки

Точки останова

Стек вызовов

Отслеживание переменных

Специальные функции отладки

Вывод SQL-запросов

В процессе отладки алгоритма можно видеть значения переменных, массивов и объектов. Для этого достаточно навести курсор на интересующую переменную. Появится подсказка с ее значением.

Для запуска отладчика необходимо выполнить одну из команд: запустить пошаговую отладку, запустить алгоритм до заданной строки или поставить точку останова и запустить программу. Когда процесс отладки запущен, все строки исходного кода алгоритма отмечаются значком [image] (появляется на полях слева от строки) — знаком того, что данная строка используется.

Остановить отладку можно с помощью клавиши <Ctrl+F8> или контекстного пункта меню «Остановить отладку». Алгоритм и процесс его отладки будет остановлен.

Прекратить отладку можно и запустив алгоритм. Для этого надо нажать <F9> (пункт меню «Сервис | Пересчитать») или кнопку [image] панели управления.

Профайлер

Профайлер предусмотрен для выявления узких мест в алгоритме, источников низкой скорости работы. Можно делать профилирование как всего алгоритма (отчета, бланка и т.д.), так и его отдельных фрагментов.

Работа с профайлером

Сводная таблица горячих клавиш и команд

В редакторе формул можно дополнительно использовать следующие команды:

Клавиша | Меню, Кнопка панели | Функция
<F4> | Выполнять до строки | Запустить алгоритм до заданной строки
<F5> | Вкл/выкл. точку останова | Поставить или убрать точку останова
<F7> | Шаг с заходом внутрь | Переход к следующей строке с заходом внутрь функции
<F8> | Шаг с пропуском | Переход к следующей строке без захода внутрь функции
<Ctrl>+<Shift>+<F2> | Точки останова | Показать таблицу точек останова с возможностью перехода к нужной точке
<Ctrl>+<Shift>+<F3> | Стек вызовов | Показать стек вызовов с возможностью перехода к выбранной позиции
<F9> | «Правка | Пересчитать» | Запустить на выполнение или продолжить выполнение (после установки) бланк, отчет или типовую операцию
<Shift>+<F9> | Запуск профайлера | Начать или продолжить профилирование кода
 | Вывод SQL-запросов | Включить режим вывода SQL-запросов


Пошаговая отладка

Пошаговая отладка является инструментом встроенного отладчика, который позволяет переходить от одной строки алгоритма к другой так, как это происходит при его реальном выполнении.

Переход к выполнению следующей строки алгоритма возможен с заходом внутрь библиотечных функций или без захода.

Для перехода к следующей строке с заходом внутрь функции надо нажать <F7> (контекстный пункт меню «Шаг с заходом внутрь») или кнопку [image] панели управления.

Для перехода к следующей строке без захода внутрь функции надо нажать <F8> (контекстный пункт меню «Шаг с пропуском») или кнопку [image] панели управления.

В процессе отладки алгоритма можно видеть значения переменных, массивов и объектов. Для этого достаточно навести курсор на интересующую переменную. Появится подсказка с ее значением.

В бланках, отчетах и типовых операциях команды пошаговой отладки доступны всегда. Если отладка еще не идет, программа запускает бланк, отчет или типовую операцию, включает режим отладки и переходит к самой первой строке алгоритма. Если отладка алгоритма уже идет, будет просто переход к следующей строке.

В библиотеке функций, если режим отладки не активен, пошаговая отладка будет не доступна (кнопки [image] и [image] на панели управления не активны), ведь функции сами по себе не запускаются! Для пошаговой отладки функции можно поставить точку останова на ее начало и запустить алгоритм, который ее вызывает. Когда он дойдет до ее выполнения станет доступной пошаговая отладка.


Выполнение алгоритма до заданной строки

Данный инструмент встроенного отладчика позволяет запустить исполнение алгоритма до указанной строки. После чего алгоритм останавливается для использования других инструментов отладчика.

Чтобы запустить алгоритм до заданной строки в редакторе бланка, отчета или типовой операции надо нажать <F4> (контекстный пункт меню «Выполнить до строки»). В библиотеке функций, если режим отладки не активен, переход к строке будет не доступен вплоть до начала отладки алгоритма, запускающего функцию, ведь функции сами по себе не запускаются! Если режим отладки запущен, то доступные строки функций отмечаются значком [image] (появляется на полях слева от строки) — знаком того, что данная строка используется в отлаживаемом алгоритме (бланке, отчете или типовой операции).

После того, как алгоритм остановится на заданной строке, можно просматривать значения переменных, массивов и объектов. Для этого достаточно навести курсор на интересующую переменную. Появится подсказка с ее значением.

Замечание!

Возможна ситуация, когда заданная строка никогда не выполняется алгоритмом. В этом случае остановки не будет, алгоритм проработает до конца.


Точки останова

Точки останова являются инструментом встроенного отладчика, которые позволяют останавливать выполнение алгоритма на заранее указанных строках. После остановки алгоритма можно использовать другие инструменты отладчика.

Поставить точку останова можно одним из следующих способов:

·Нажать клавишу <F5> (контекстный пункт меню «Вкл/выкл. точку останова») или кнопку [image] панели управления.

·Нажать по полю слева от строки кода

После установки точки останова в поле слева появится значок breakpoint и строка выделяется красным цветом (если отлаживаемый алгоритм не может здесь остановится, то значок [image] и строка выделяется серым цветом).

Если режим отладки запущен, то доступные для установки точек останова строки отмечаются значком [image] (появляется на полях слева от строки) — знаком того, что данная строка используется в отлаживаемом алгоритме (бланке, отчете или типовой операции).

После того, как алгоритм остановится на заданной строке, можно просматривать значения переменных, массивов и объектов. Для этого достаточно навести курсор на интересующую переменную. Появится подсказка с ее значением.

Просмотреть полный список всех точек останова можно нажав <Shift+Ctrl+F2> (контекстный пункт меню «Точки останова») или кнопку breakpoints панели управления. С помощью этого списка можно быстро переходить от одной точки останова к другой.


Стек вызовов

Стек вызовов является инструментом встроенного отладчика, с помощью которого можно увидеть последовательность вызовов функций до места отладки программы.

Просмотреть стек вызовов можно нажав <Shift+Ctrl+F3> (контекстный пункт меню «Стек вызовов»). С помощью появившейся таблицы можно быстро переходить от одной позиции к другой. Самая верхняя строка таблицы отвечает за текущую позицию отладки.

Просмотр стека вызовов возможен только в момент отладки.


Отслеживание переменных

Отслеживание переменных это инструмент встроенного отладчика, который позволяет останавливать алгоритм при чтении переменной или записи значения в переменную. После остановки алгоритма можно использовать другие инструменты отладчика.

Чтобы включить отслеживание переменной надо поставить на нее курсор и в контекстном меню выбрать пункт «Следить за переменной»). При этом появится диалог, в котором можно указать за чем следить:

·За чтением — алгоритм будет останавливаться при чтении переменной.

·За записью — алгоритм будет останавливаться при записи значения в переменную.

Чтобы отключить отслеживание, надо заново поставить на переменную курсор, в контекстном меню выбрать пункт «Следить за переменной»), в диалоге убрать оба флажка и нажать <OK>.

При срабатывании события — чтения или записи переменной, алгоритм останавливается и в окно отладки выводится информацияо событии.

После того, как алгоритм остановится на заданной строке, можно просматривать значения переменных, массивов и объектов. Для этого достаточно навести курсор на интересующую переменную. Появится подсказка с ее значением.


Специальные функции отладки

Дополнительные специальные функции внутреннего языка могут использоваться для отладки алгоритма.

ОТЛАДКА | Выводит произвольную отладочную информацию в окно сообщений
СЛЕДИТЬ | Следит за тем, когда в переменную заносится или считывается значение. Останавливает выполнение алгоритма в случае чтения или изменения переменной и запускает отладчик.
ТИП | Возвращает имя типа выражения


Вывод SQL-запросов

Вывод SQL-запросов является инструментом встроенного отладчика, с помощью которого можно увидеть формируемые программой SQL-запросы к базе данных.

Включить или выключить режим можно с помощью контекстного пункта меню «Вывод SQL-запросов». Запросы будут выводиться в нижнем окне информационных сообщений.


Остановка на диалогах

Остановка на диалогах является режимом работы встроенного отладчика. В этом режиме будет происходить остановка выполнения алгоритма перед появлением какого-либо диалогового окна.

Включить или выключить режим можно с помощью контекстного пункта меню «Остановка на диалогах».


Работа с профайлером

Профайлер предусмотрен для выявления узких мест в алгоритме, источников низкой скорости работы. Можно делать профилирование как всего алгоритма (отчета, бланка и т.д.), так и его отдельных фрагментов. Профайлер собирает информацию о том, какой процент времени в общем времени работы алгоритма занимает та или иная команда.

Для запуска профайлера необходимо открыть алгоритм (отчет, бланк или типовую операцию), по которой нужен сбор статистики. Далее воспользуйтесь контекстным пунктом меню «Запуск профайлера» или нажмите клавишу <Shift+F9>. Алгоритм запустится и начнется сбор информации.

После завершения работы алгоритма собранная информация отображается на полях редактора формул слева от строки кода алгоритма. Возможны следующие обозначения:

Процент, выделенный синим цветом | Какой вклад в общее время выполнения алгоритма вносит команда из этой строки. Общая сумма всех синих процентов будет равна 100%.
Синий прочерк или красный прочерк | Данная строка вносит очень малый вклад в общее время выполнения алгоритма.
Процент, выделенный красным цветом | Означает "в том числе процент" и появляется у под-конструкций, составляющих основную конструкцию. Это детализация, расшифровка времени, которое потребовалось для выполнения всей конструкции. Красные проценты под-конструкций не будут превышать время выполнения основной конструкции.
Пусто | Указанная строка не выполнялась в процессе работы алгоритма

Пример

В процессе работы профайлера была сформирована статистика для данной типовой операции. Вот что она означает:

·В данном примере команды "в = 0" и "и = 1" выполнились очень быстро, так, что не повлияли на общее время работы алгоритма. Слева от них стоит прочерк.

·Конструкция "ЦИКЛ ДЛЯ (и <= 100000) ..." составила 100% общего времени выполнения алгоритма. При этом конструкция состоит из нескольких под-конструкций:

oНа строку "и ++" потрачено 7% времени.

oНа строку "ЦИКЛ ДЛЯ (к = 1, ..." потрачено 67.7% времени, в том числе на "в ++" потрачено 26.4% времени.

oСтрока "ПРОДОЛЖИТЬ" почти не повлияла на время выполнения алгоритма.

oСтрока "и--" в процессе выполнения алгоритма не выполнялась.

Профилирование фрагмента кода

Возможно профилирование не всего алгоритма, а его фрагмента. Это позволяет получать более детальную статистику.

Например, в процессе профилирования всего кода алгоритма выясняется, что какая то его часть или отдельная конструкция вносит сильный вклад в скорость работы. Эта конструкция имеет много других под-конструкций, по которым профайлер показал "красные проценты". "Красные проценты" не отражают полной картины выполнения этой конструкции. Нужно выяснить долю каждой под-конструкции во времени выполнения основной конструкции. А это можно сделать только с помощью профилирования конкретно этой конструкции.

Для профилирования фрагмента кода надо поставить две точки останова: в начале фрагмента и в конце фрагмента. Далее алгоритм запускается обычным способом (с помощью клавиши <F9>, пункта меню «Сервис | Пересчитать» или кнопки [image] панели управления). Он выполняется до первой точки останова. После этого запускается профайлер (с помощью клавиши <Shift+F9> или пункта меню «Запуск профайлера») до второй точки останова. Далее алгоритм опять запускается обычным способом (с помощью клавиши <F9>).

Если данный способ профилирования трудоемок, например, в случае профилирования тела цикла, то можно использовать два ключевых слова: ПРОФАЙЛЕР_СТАРТ и ПРОФАЙЛЕР_СТОП. Первое — в начале фрагмента, второе — в конце. После добавления этих конструкций в исходный код, алгоритм запускается обычным способом (с помощью клавиши <F9>). Эти ключевые слова можно использовать и для профилирования сразу нескольких участков кода алгоритма, для сравнения производительности двух и более фрагментов кода и т.д.


Локализация

Программа содержит средства локализации, с помощью которых можно осуществить перевод интерфейса программы на другие языки. Локализации подлежит как сама платформа (системные фразы), так и созданная в ней конфигурация (меню, структура журналов, множества, отчеты, бланки, типовые операции, функции). Основные особенности:

·Платформа имеет встроенную среду локализации — интерфейс для работы с переводом, включающий функции поиска и фильтрации фраз, групповой обработки отмеченных фраз. Предусмотрена возможность перехода к исходному тексту алгоритма, в котором встречается переводимая фраза.

·Средства локализации отделены от конфигурации. Конфигурация может обновляться и дорабатываться не затрагивая перевод. После обновления конфигурации запускается актуализация локализации. Программа позволяет выявить, какие нужно внести изменения и быстро адаптировать перевод под изменившуюся конфигурацию.

·Поддержка мультиязычности. Язык можно назначать пользователю в списке пользователей или разрешать выбирать самому пользователю в настройках. Если нигде язык не выбран, он определяется автоматически по языку операционной системы.

·Функции контроля перевода. Проверяют корректность указания спецификаторов в переведенной строке, концевых пробелов, разделителей и т.д.

·Запрет перевода специальных фраз, перевод которых может нарушить работоспособность программы. Примерами таких фраз являются ключевые слова внутреннего языка. Запрет перевода фраз платформы программа включает автоматически сама. Запрет перевода фраз конфигурации осуществляется частично автоматически, частично вручную.

·Импорт-экспорт фраз в файл CSV для перевода сторонними специалистами.

·Подключение средств автоматического перевода.

См.также
Среда локализации
Фильтр фраз
Режим отметки
Спецификаторы
Экспорт и импорт
Автоматический перевод


Среда локализации

Стандартное меню

Чтобы открыть среду локализации следует выбрать пункт меню программы «Установка | Локализация». Здесь можно локализацию программы и конфигурации. При выборе этого пункта программа вначале попросит указать язык, для которого будет делаться перевод. Выберите его из списка.

Если нет фраз для локализации при открытии окна появится сообщение: «Запустить формирование списка фраз для перевода». Согласитесь для формирования списка, иначе работать будет не с чем.

Список фраз представляет из себя таблицу справа и иерархический список (дерево) категорий фраз слева. Выделяя нужную категорию слева можно увидеть фразы для перевода справа. Самый нижний вариант — Все — позволяет увидеть все фразы вместе. Описание категорий:

·Системные — фразы, которые относятся к самой платформе Инфо-Предприятие. Все остальные фразы относятся к конфигурации.

·Меню главное — пункты главного меню и подсказки к ним. Главное меню разбито по интерфейсам;

·Меню контекстное — пункты контекстного меню и подсказки к ним. Контекстное меню разбито по журналам;

·Журналы — названия журналов, полей и заголовков диалогов;

·Множества — названия множеств;

·Бланки, Отчеты — фразы, формируемые в бланках и отчетах (кроме фраз, описанных внутри функций, которые бланк или отчет вызывает). Бланки разбиты по категориям и разделам. Отчеты разбиты по разделам.

·Операции — фразы, формируемые в типовых операциях (кроме фраз, описанных внутри функций, которые типовая операция вызывает). Операции разбиты по файлам, а внутри файлов по операциям.

·Функции — фразы, формируемые в функциях (вызываемых из бланка, отчета, типовой операции). Функции разбиты по файлам, а внутри файлов по операциям.

·Все — показать все фразы, без фильтрации.

Категории слева фактически фильтруют общий список фраз. Но и на категории можно наложить условия. Это делается с помощью фильтра фраз [image].

В таблице справа также доступна контекстная фильтрация. Для неё выделение колонки, как в других таблицах, не требуется — фильтрация будет осуществляться по всем колонкам сразу.

Фразы идут в той последовательности, в которой они встречаются (в меню, журналах, множествах и текстах алгоритмов). Если фраза в тексте алгоритма (бланка, отчета, типовой операции или функции) встречается несколько раз, она будет представлена одним переводом, общим на весь алгоритм. Но та же фраза в другом алгоритме будет представлена отдельной фразой, перевод которой может быть другим.

Фразы, сформированные по алгоритмам внутреннего языка (бланкам, отчетам, типовым операциям или функциям) имеют напротив справа кнопку LINKACC . Если кликнуть по ней — откроется исходный текст алгоритма, а курсор будет стоять на выбранной фразе. По коду алгоритма можно понять контекст фразы и достичь верного перевода.

До момента сохранения слева напротив фраз будет значок [image], [image], [image]. По нему можно понять, что это новая фраза, изменившаяся или удаленная. После сохранения изменений значки пропадают (удаленные фразы тоже).

Фразы, не предназначенные для перевода (запрещенные к переводу) слева имеют значок [image] .

Разделитель РР внутри фразы выделяется. Также черными квадратами выделяются пробелы в начале и конце фразы.

При нажатии <Enter> или кликом по ячейке таблицы можно изменить перевод фразы. Повторное нажатие <Enter> сохранит перевод. При работе с многострочными фразами для возврата каретки используется комбинация <Ctrl>+<Enter>.

Таблицу фраз можно экспортировать во внешний файл CSV и потом импортировать переведенные фразы обратно;

С помощью кнопки Старт [image] или воспользовавшись контекстным меню можно выполнить следующие действия:

·Актуализировать — необходимо запускать после обновления платформы, конфигурации или внесения изменений в конфигурацию. После выбора этого пункта меню будет обновлен список фраз, добавлены новые, удалены неактуальные. По завершению проверки программа автоматически выставит фильтр — будут показаны только новые и изменившиеся фразы. Можно увидеть и удаленные фразы, если открыть фильтр и поставить там флажок напротив <Удаленные> (по умолчанию он выключен).

·Отметить фразы — включает режим отметки, в котором можно выбрать нужные фразы и произвести с выбранными фразами определенные действия.

·Отключить режим отметки — отключает режим отметки.

·Другие действия станут доступны после включения режима отметки.

Для сохранения изменений в переводе выполните одно из следующих действий:

·Нажмите с помощью мыши кнопку [image] на панели инструментов;

·Выберите пункт «Файлы | Сохранить» главного меню.

При сохранении перевода производится проверка его корректности, в первую очередь спецификаторов формата. Проверка позволяет избежать ошибок в работе локализованной программы, но не гарантирует корректность перевода.

Если Вы не сохранили перевод одним из описанных выше способов, но внесли изменения в него, то при закрытии окна программа сама предложит сохранить перевод в базе данных.


Фильтр фраз

Среда локализации

Фильтр позволяет указать условия на отображение фраз. Фильтр применяется как к дереву разделов слева, так и к таблице справа.

Для того чтобы вызвать фильтр, надо, находясь в среде локализации выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·нажать комбинацию клавиш <Ctrl>+<Ф> ( <Ctrl>+<A> );

·выбрать пункт «Сервис | Фильтр» главного меню.

На экране появится диалог установки фильтра.

В полях Исходная строка и Перевод задаются шаблоны фильтрации для исходной фразы и её перевода. Если необходимо показать фразы со служебным символом РР, то достаточно просто указать его в шаблоне, например «*РР*».

Режим Игнорировать регистр — определяет игнорировать или нет различия между строчными и прописными буквами в указанных выше шаблонах. Если режим отключен, то при фильтрации учитывается различие между строчными и прописными буквами. Например, если Вы задали для поля содержания: *проводка*, то строка, содержащая ПРОВОДКА, найдена не будет. Если режим включен различие между строчными и прописными буквами при поиске не учитывается. Будут найдены строки содержащие Проводка, ПРОВОДКА и т.д.

Наличие перевода — позволяет показать только фразы без перевода или только переведенные фразы.

Запрет перевода — позволяет показать только фразы разрешенные для перевода или только запрещенные.

Фильтр по дате изменений — позволяет задать условия на дату фразы. В списке ниже появятся все даты, за которые были изменения или во фразах или в их переводе. Поставьте флажки напротив нужной даты, чтобы увидеть сделанные в это время изменения.

Следующие два специальных элемента действуют с момента внесения изменений в фразы (как вручную, так и с помощью автоматического обновления списка фраз) и до момента сохранения перевода (до нажатия [image]):

<Не сохраненные> — показать добавленные и измененные фразы.

<Удаленные> — показать удаленные фразы (удаление возможно в процессе обновления списка фраз, вручную фразы не удаляются).

После сохранения изменений в базе удаленные будут физически удалены из таблицы, а ранее <Не сохраненные> фразы можно будет увидеть поставив флажок напротив последней по времени даты изменения.

После настройки условий нажмите <OK> — фильтр будет применен.

Нажатие кнопки <Отмена> позволяет отказаться от наложения фильтра.

Кнопка Сброс очищает поля диалога (убирает все условия фильтра).

См.также
Контекстная фильтрация


Режим отметки

Среда локализации

В этом режиме можно выбрать нужные фразы и произвести с ними определенные действия. Включить его можно в среде локализации одним из следующих способов:

·нажав кнопку Старт [image] на панели инструментов, а затем выбрав пункт меню «Отметить фразы»;

·выбрав пункт «Старт | Отметить фразы» контекстного меню.

После включения этого режима в дереве слева и таблице справа появятся поля [image] для установки флажков. Устанавливая флажки справа в таблице можно отмечать конкретные фразы, а слева в дереве можно отмечать целые категории фраз.

В таблице справа, чтобы быстро отметить сразу несколько фраз или снять отметку с них, можно выделить несколько записей и затем включить/выключить флажок. При этом все выделенные записи включатся/выключатся одновременно.

Если отмечаются категории фраз в дереве слева, а на фразы наложен фильтр, отметка включится только для тех фраз, которые попадают под условия фильтра.

В строке статуса таблицы в левом нижнем углу программа отображает количество отмеченных фраз. Если кликнуть по надписи ... фраз отмечено появится меню Снять все отметки. Его можно использовать для быстрого снятия всех отметок.

После того, как нужные фразы будут отмечены, с ними можно осуществлять определенные действия. Для этого повторно нажмите Старт [image] и выберите нужное «действие с отмеченными фразами»:

·Запретить перевод, Разрешить перевод — включает или выключает запрет перевода для выделенных фраз. Слева от запрещенных к переводу фраз появится отметка [image] . Если окажется, что у фраз, для которых перевод запрещается, перевод уже был сделан ранее, программа спросит «Среди запрещенных для перевода фраз было ..., у которых уже был сделан перевод. Удалить его?». Если ответить утвердительно, то перевод будет удален. Удалять или нет — решайте сами. Однако, вне зависимости от того, есть перевод или нет, фраза переводиться не будет.

Замечание!

Запрет или разрешение перевода действуют на фразы для всех языков.

·Удалить перевод — очищает содержимое колонки «Перевод».

·Вызов функций автоматического перевода отмеченных фраз.

Для экспорта отмеченных фраз в CSV-файл используйте пункт главного меню «Файлы | Экспорт в...».

Чтобы выйти из режима отметки выберите Отключить режим отметки.

См.также
Автоматический перевод


Спецификаторы

Среда локализации

Многие фразы содержат спецификаторы формата. Они определяют места, куда в текст фразы будет включено значение какой-то внешней переменной.

Спецификаторы формата системных фраз начинаются с символа процента, например:

«Удалить %d записей из журнала»

Здесь %d — спецификатор, куда программа подставит кол-во записей.

Спецификаторы должны сохраняться в переведенной фразе. Это контролируется при сохранении перевода.

В некоторых случаях внутри фразы встречается несколько спецификаторов. Например, во фразе «Не найдена функция %s в библиотеке %s» — их два. Вместо первого подставится имя функции, а вместо второго имя библиотеки. В процессе перевода из-за особенностей языка может сложиться ситуация, когда потребуется переставить спецификаторы формата в переведенной фразе местами. В таких случаях в программе заложено указание номера спецификатора (номер начинается с 0). Вот пример как это выглядит:

«В библиотеке %1:s нет функции %0:s»

В этом примере вместо %1:s будет подставлено имя библиотеки, а вместо %0:s имя функции, т.е. имя функции и имя библиотеки будут переставлены местами по сравнению с исходной фразой.

Спецификаторы формата фраз внутреннего языка представлены * (звездочкой). Такой синтаксис имеет функция ФОРМАТ. Средств перестановки они не имеют.


Экспорт и импорт

Среда локализации

Экспорт. Фразы для перевода могут быть выгружены в файл CSV для перевода сторонними специалистами. Для этого надо выбрать пункт главного меню «Файлы | Экспорт в...» и в диалоге сохранения ввести имя файла.

В файл попадут только фразы из выделенной справа таблицы и только те, для которых разрешен перевод.

Если на фразы наложен фильтр, то в файл попадут только отфильтрованные записи.

Если включен режим отметки, то перед сохранением появится запрос о том какие записи сохранять — «только отмеченные записи» или «все записи». Если выбрать вариант «только отмеченные записи», то в файле сохранятся отмеченные отфильтрованные разрешенные фразы. Если выбрать вариант «все записи», то в файле сохранятся отфильтрованные разрешенные фразы, вне зависимости от того, отмечены они или нет.

В файле CSV будут три колонки: номер фразы (его надо сохранить, иначе нельзя будет загрузить файл после перевода обратно), текст фразы и текст перевода.

Импорт. Перевод может быть загружен из ранее выгруженного файла CSV. Для этого надо выбрать пункт главного меню «Файлы | Импорт из...» и в диалоге сохранения ввести имя файла. Идентификация фраз осуществляется по номеру (крайняя левая колонка в файле). Если по номеру фраза не нашлась, она будет пропущена.

Если файл был загружен успешно появится сообщение «Файл успешно загружен. Изменилось ... фраз».

Если загрузить файл не удалось будет выведена ошибка «Ошибка загрузки файла в строке ...».


Автоматический перевод

Среда локализации

Автоматический перевод реализуется пользовательскими функциями, которые описываются в библиотеке sys_translate.lib (имя библиотеки фиксировано).

Синтаксис:

ФУНКЦИЯ ЛОГИКА: АвтоПеревод(ПЕРЕМ СТРОКА: <исходная>; ЧИСЛО: <язык>)

где

<исходная>
строковая переменная, которая на входе функции получает фразы для перевода, а на выходе из функции через неё возвращается их перевод;

<язык>
код языка (его можно увидеть в списке выбора языка в начале работы со средой локализации).

Результат — логика. Определяет успех обработки фраз. Если функция возвращает ДА, содержимое переменной <исходная> будет сохранено в переводе.

Если автоматический перевод вызывается для нескольких отмеченных фраз, функция вызывается один раз, а все фразы для перевода помещаются в одну строковую переменную <исходная> с разделителем РР. Если фразы сами по себе имеют внутри разделитель РР, то функция будет вызываться для каждой из них отдельно.

Число фраз, отделенных разделителем РР на входе и число переводов фраз, отделенных разделителем РР на выходе из функции должно быть одинаковым. В противном случае будет выдана ошибка и программа не сохранит перевод.

Замечание!

Веб-сервисы перевода могут иметь ограничение на объем переводимого текста за один запрос и частоту таких запросов. Обязанность следить за этим возлагается на функцию. Программа объем перевода никак не контролирует. Пользовательская функция сама должна разбивать переводимый текст на фрагменты и отправлять отдельные запросы на перевод.

Чтобы запустить функцию необходимо:

1.Перейти в режим отметки, нажав кнопку Старт [image] на панели инструментов или с помощью контекстного меню «Отметить фразы».

2.Отметить нужные фразы

3.Повторно нажать кнопку Старт [image] на панели инструментов, и, далее, выбрать эту функцию (она появится в выпадающем меню)

Если внутри библиотеки описаны несколько функций перевода, их всех можно будет вызвать таким образом. Если нужно, чтобы функция не была доступна в меню, используйте для нее директиву ВНУТР.

Сервисы перевода могут нарушать структуру спецификаторов и специальных символов в переводе фраз. Корректировка конечного перевода может быть реализована внутри пользовательской функции. Необходимо сохранять:

·РР — системный символ

·вертикальную черту |

·спецификаторы формата системных фраз %s, %d и другие

·спецификатор формата фраз внутреннего языка * (звездочка)

·пробелы в начале фразы и пробелы в конце фразы

Если этого не сделать, может потребоваться ручная корректировка (при сохранении программа начнет выдавать ошибки на этапе проверки корректности перевода).


Выбор языка

При наличии перевода язык можно указать в списке пользователей при редактировании пользователя в поле Язык.

Если в списке пользователей в поле Язык установлено <По умолчанию>, язык пользователя будет браться из персональных настроек, закладка Общие, поле Язык.

Если нигде язык не выбран, он определяется автоматически по языку операционной системы. Если для языка операционной системы нет локализации, перевода не будет.

Диалог выбора пользователя при входе в систему использует язык, указанный для пользователя Администратор. Этот же язык будет подставляться по умолчанию для всех новых пользователей.


Особенности формирования списка фраз

Следующие особенности формирования списка фраз могут потребоваться как разработчикам конфигурации для упрощения её локализации, так и тем, кто эту локализацию делает.

При формировании фраз для перевода программа анализирует все алгоритмы и включает в список фраз для перевода все строковые константы. Указав ! (восклицательный знак) после константы можно сообщить программе, что для данной фразы надо включить запрет перевода. Например:

"системная фраза"!

На работу самого алгоритма указание восклицательного знака никак не влияет.

Строковые аргументы следующих функций и свойств автоматически добавляются с включенным запретом перевода (т.е. для их аргументов добавлять восклицательный знак не нужно): ПРОФИЛЬ, ПРОФИЛЬ_ВРЕМ, АРХИВ, метод ПОЛЕ объекта БД, метод ПОЛЕ объекта ЖУРНАЛ, ХРАНИТЬ, НОМЕР, ЗАП_НОМЕР, ТЕК_НОМЕР, УДАЛИТЬ_НОМЕР, ОПРЕДЕЛИТЬ_ЗНАЧ, ОПРЕДЕЛИТЬ, ВЫРАЖЕНИЕ.

Также с включенным запретом добавляются все строковые константы, совпадающие с:

·идентификатором журнала (например "журнал")

·идентификатором журнала и его поля (например "журнал.поле")

·идентификатором журнала, его поля и вида (например "журнал.поле:вид")

·строковым кодом элемента множества (например, "множество.элемент")

·названием типовой операции

·кодом счета или статьи учета, а также строками-шаблонами, которые задают код счета и статьи

Для корректного перевода фраз рекомендуется использовать функцию ФОРМАТ вместо формирования конечной фразы путем конкатенации её частей.


Пример бланка

В качестве примера бланка приведем стандартный бланк платежного поручения. Он имеет не очень сложный алгоритм расчета и использует основные механизмы работы с бланками.

Визуальная часть бланка состоит из следующих граф ввода: НОМЕР — номер платежного поручения, дата — его дата, Сумма — сумма платежа, ндс — сумма НДС, кодРасчСчета — код расчетного счета (если у фирмы несколько расчетных счетов), кодПолуч — код получателя денег, НАЗНАЧ — назначение платежа и других, которые прямо не используются в алгоритме:

Графы ввода кодРасчСчета и кодПолуч имеют тип ввода функцию и ссылаются на функции ВЗЯТЬ_КОД_БАНКА и ВЗЯТЬ_КОД_ПОЛУЧАТЕЛЯ соответственно. Поле "Журнал/Файл" в настройках графы оставлено пустым, что означает, что программа должна искать описание этих функций в расчетной части бланка. Переменные получ и рсч описаны как общие переменные типа ЖУРНАЛ в расчетной части бланка. Журнал б_сПост содержит поставщиков, а журнал б_сРсчет — расчетные счета фирмы. Все графы вывода, содержащие реквизиты плательщика и получателя отмечены параметром Обновлять графу при вызове функций в опциях графы — они будут перерисовываться при вызове этих функций.

Помимо этих двух функций внутри расчетной части описаны еще две: СчитатьРеквизиты и ФорматироватьСумму. Платежное поручение рассчитано на работу с несколькими расчетными счетами. Если же расчетный счет не указывается, то используются стандартные реквизиты. Для их считывания и предназначена функция СчитатьРеквизиты. Функция ФорматироватьСумму используется для форматирования суммы перед выводом ее на экран.

Алгоритм использует еще две функции, используемые в автонумерации: функция АВТО выдает следующий номер указанного документа, а ПРОВЕРИТЬ_НОМЕР — проверяет уникальность введенного номера. Они никак не несут никакого особого смысла и могут быть закомментарены.

Вот текст расчетной части бланка:

{ Описания общих переменных и функций }

ПЕРЕМ ЖУРНАЛ: получ,рсч

{ Функция вызывается при подстановке значения в кодПолуч }

ФУНКЦИЯ ЛОГИКА: ВЗЯТЬ_КОД_ПОЛУЧАТЕЛЯ(ПЕРЕМ СТРОКА: кодФирмы)

{ Вызовем НАЙТИ для того чтобы курсор в диалоге стоял на выбранной фирме }

б_сПост.НАЙТИ(код=кодФирмы,ДА)

РЕЗУЛЬТАТ=ВЫБОР_ЗАПИСИ(б_сПост)

ЕСЛИ РЕЗУЛЬТАТ ТО

кодФирмы=б_сПост.код

получ=б_сПост

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

{ Функция вызывается при подстановке значения в кодРасчСчета }

ФУНКЦИЯ ЛОГИКА: ВЗЯТЬ_КОД_БАНКА(ПЕРЕМ СТРОКА: кодБанка)

{ Вызовем НАЙТИ для того чтобы курсор в диалоге стоял на выбранном банке }

б_сРсчет.НАЙТИ(код=ЗНАЧ(кодБанка),ДА)

РЕЗУЛЬТАТ=ВЫБОР_ЗАПИСИ(б_сРсчет)

ЕСЛИ РЕЗУЛЬТАТ ТО

кодБанка=СТР(б_сРсчет.код)

рсч=б_сРсчет

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

{ Считываем банковские реквизиты }

ФУНКЦИЯ ЖУРНАЛ(б_сРсчет) СчитатьРеквизиты

бик=НашБанкБИК

кс=НашБанкКсч

рс=НашРасчСч

банк=НашБанк+" г."+НБанкГорИм

форматДаты="форматДаты."+?(БАНК_ДАТА_ПРОП=1,"1","2")

счетПС=БАНК_СЧЕТ

расшифрПодп=БАНК_РАСШИФР_ПОДП=1

{ Если используется справочник расчетных счетов, то считываем из него }

НАЙТИ(код=ЗНАЧ(кодРасчСчета,-1))

КОНЕЦ_ФУНКЦИИ

{ Форматируем сумму и возвращаем в суммаПроп - сумму прописью и в суммаСтр -

отформатированную строку с суммой. Формат варОтражНульКоп определяет

вариант отображения нулевых сумм: варОтражНульКоп: 0 - (1200=), 1 - (1200-00) }

ФУНКЦИЯ ФорматироватьСумму( ЧИСЛО: суммаЧисл; ПЕРЕМ СТРОКА: суммаПроп, суммаСтр;

ЧИСЛО: варОтражНульКоп)

суммаРубЧ=РУБ(суммаЧисл)

суммаКопЧ=КОП(суммаЧисл)

ЕСЛИ (суммаКопЧ=0) И (варОтражНульКоп=0) ТО

суммаСтр=СТР(суммаРубЧ)+"="

суммаКопС=""

ИНАЧЕ

суммаСтр=СТР(суммаРубЧ)+"-"+СТР0(суммаКопЧ,2)

суммаКопС=СТР0(суммаКопЧ,2)+" "+КОПП(суммаКопЧ)

КОНЕЦ_ЕСЛИ

ЕСЛИ суммаРубЧ=0 ТО

суммаПроп="Ноль рублей "+суммаКопС

ИНАЧЕ

суммаПроп=СУММАП(суммаРубЧ)+РУБП(суммаРубЧ)+" "+суммаКопС

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ

ВЫЧИСЛИТЬ

{ Предрасчетная часть бланка, подключаем библиотеку с АВТО и ПРОВЕРИТЬ_НОМЕР }

ИСПОЛЬЗОВАТЬ("B_MAIN")

{ Выставим стандартное округление: до копеек }

ОКРУГЛЕНИЕ(2)

{ Проинициализируем переменные }

рсч ЭТО б_сРсчет

получ ЭТО б_сПост

типПД="пп"

{ Считаем собственные реквизиты и реквизиты получателя }

рсч.СчитатьРеквизиты

получ.НАЙТИ(код=кодПолуч)

{ Подставим следующий номер и текущую дату ( можно закомментарить ) }

ЕСЛИ АВТОНУМЕРАЦИЯ ТО

дата=ДАТА_ТЕК

НОМЕР=АВТО(типПД,дата)

КОНЕЦ_ЕСЛИ

ВВЕСТИ

{ Расчетная часть бланка, считаем заново реквизиты, а то пользователь

мог их изменить вручную, без вызова функций. Если получатель не найден,

то завершаем работу }

рсч.СчитатьРеквизиты

ЕСЛИ НЕ получ.НАЙТИ(код=кодПолуч) ТО

СООБЩЕНИЕ("Поставщик не найден в справочнике! Расчет остановлен")

СТОП_ВСЕ

КОНЕЦ_ЕСЛИ

{ Проверим номер платежного поручения ( можно закомментарить ) }

ПРОВЕРИТЬ_НОМЕР(НОМЕР,типПД,дата)

{ Дополнительный сервис: в случае нулевой суммы считаем кредитовое сальдо }

ЕСЛИ (Сумма=0) И СЧЕТ_СУЩ(получ.код_в_плане_счетов) ТО

Сумма=ОСК(получ.код_в_плане_счетов,дата+1)

КОНЕЦ_ЕСЛИ

{ Форматируем число "Сумма" и возвращает сумму прописью

и форматированную сумму }

ФорматСуммы=?(рсч.форматСуммы="форматСуммы.0",0,1)

ФорматироватьСумму(Сумма,сумпр,стрСумма,ФорматСуммы)

{ Форматируем сумму НДС }

ЕСЛИ ндс <= 0 ТО

ЕСЛИ ВОПРОС("Написать, что НДС не облагается") ТО

Сум_ндсП= "НДС не облагается"

ИНАЧЕ

Сум_ндсП= ""

КОНЕЦ_ЕСЛИ

ИНАЧЕ

Сум_ндс = Сумма * ндс / (100 + ндс);

ФорматироватьСумму(Сум_ндс,сумпрНДС,стрСуммаНДС,ФорматСуммы)

Сум_ндсП = "в т.ч. НДС " + СТР(ндс) + "% - " + стрСуммаНДС

КОНЕЦ_ЕСЛИ

{ Придумываем название операции, если оно не задано }

ЕСЛИ УБР_ПРОБ(НАЗНАЧ) = "" ТО

НАЗНАЧ_ = "Платежное поручение N " + НОМЕР

ИНАЧЕ

НАЗНАЧ_ = НАЗНАЧ

КОНЕЦ_ЕСЛИ

{ Отформатируем дату как требуется ( переменная дата_п является

графой вывода, ее не видно в визуальной части - она находится под графой дата) }

ЕСЛИ рсч.форматДаты="форматДаты.2" ТО

{ Выводим дату. Выражение снизу есть то же самое, что и СТР(дата), но

только в случае, если в форматах стоит опция "Четыре цифры в записи года".

Мы не хотим зависить от форматов, поэтому делаем сложнее }

дата_п=СТР0(ЧИСЛО(дата),2) + "."+ СТР0(МЕС(дата),2) + "." +СТР(ГОД(дата),4)

ИНАЧЕ

{ Выводим дату прописью. Так как функция ДАТАП0 вернет строку с "г." на конце,

то удалим ее - нам она не нужна }

дата_п=ДАТАП0(дата)

УДАЛ(дата_п,ДЛИНА(дата_п)-2)

КОНЕЦ_ЕСЛИ

{ Если надо расшифровать подпипи, то пишем фамилии }

ЕСЛИ рсч.расшифрПодп ТО

Руковод_=Руковод

ГлавБух_=ГлавБух

ИНАЧЕ

Руковод_=""

ГлавБух_=""

КОНЕЦ_ЕСЛИ

{ Делаем проводку }

ПРОВОДКА(получ.код_в_плане_счетов,рсч.счетПС,Сумма,"пп "+НОМЕР,дата,НАЗНАЧ_)

КОНЕЦ

Для более удобного восприятия пример приведен в стандартной подсветке. Здесь жирным шрифтом выделяются ключевые слова и функции, серым цветом поля журналов, бордовым реквизиты и определения, а зеленым курсивом комментарии.

Работает этот алгоритм следующим образом: при открытии бланка происходит выполнение предрасчетной части: инициализируются общие переменные, заполняются некоторые графы ввода и вывода. Далее в процессе заполнения бланка могут вызываться функции подстановки значений ВЗЯТЬ_КОД_БАНКА и ВЗЯТЬ_КОД_ПОЛУЧАТЕЛЯ, которые могут изменять общие переменные получ и рсч. После того как пользователь введет все необходимые данные, он запустит бланк на выполнение, и в этом случае будет выполняться расчетная часть бланка (после ВВЕСТИ).


Пример диалога

Диалоги (пример)

 Вернуться к началу раздела

Следующий фрагмент показывает основные возможности работы диалогов. Пример показывает, как можно обмениваться данными между несколькими диалогами и функциями, как создаются диалоги с закладками, добавляются элементы управления: кнопки, таблицы, различные поля ввода.

Чтобы запустить демонстрационный пример, достаточно создать новый бланк и скопировать туда этот фрагмент:

ПЕРЕМ СТРОКА: Пароль, Коммент, Счет, Док, Массив!, Массив2!

ПЕРЕМ ЧИСЛО: Контр, Сумма

ПЕРЕМ ДАТА: Дата

ФУНКЦИЯ ЛОГИКА: Проводки(ПЕРЕМ СТРОКА: с)

// При нажатии на кнопку делает проводки

ЕСЛИ Сумма = 0 ТО

СООБЩЕНИЕ("Введите сумму")

ИНАЧЕ

ПРОВОДКА(Счет, СЛОВО(Контр, "62/ 60/ 71/"), Сумма, Док, Дата, Коммент)

ЗАП_ОПЕР

КОНЕЦ_ЕСЛИ

Проводки = ДА

КОНЕЦ_ФУНКЦИИ

ДИАЛОГ ЗапросПароля(ПЕРЕМ СТРОКА: с)

Новый Пароль : *Пароль:20

КОНЕЦ_ДИАЛОГА

ДИАЛОГ СменитьКомментарий(ПЕРЕМ СТРОКА: с)

---<Комментарий> ------------------------------------

*Коммент:50:4

-------------------------------------------------------

КОНЕЦ_ДИАЛОГА

ДИАЛОГ ТестДиалога

ЗАКЛАДКА Основная

<Пароль> : #Пароль:20 #~Сменить("","ЗапросПароля")

-----------------------------------------------------------------------------

Счет оплаты : ^Счет #~Комментарий("","СменитьКомментарий"):20

Выбор Контрагента : *$Контр(["Покупатель","Поставщик","Сотрудник"])

Сумма : &Сумма&&&&&&&& #~Таблица("","Таблица"):20

НДС % : &ндс:3:0 $втч("В том числе")

Дата : ~Дата #~Проводки("","Проводки"):20:4

Документ : *Док:15

Оплачено : *стр:50

ЗАКЛАДКА Таблица

#@(кур):72:10

ВЫЧИСЛИТЬ

КУРСОР кур ПО ЖУРНАЛУ

бухоперации.дата:"Дата", бухоперации.документ:"Док",

бухпроводки[дебет,кредит,сумма] п

ВВЕСТИ

КОНЕЦ_ДИАЛОГА

ДИАЛОГ Таблица(ПЕРЕМ СТРОКА: с)

<Продажи в текущем квартале>

-----------------------------------------------------------------------

#$(Массив,"Код|Название|Продано",ДА,ДА,ДА):70:5

<Закупки в текущем квартале>

-----------------------------------------------------------------------

#$(Массив2,"Код|Название|Куплено",ДА,ДА,ДА):70:5

КОНЕЦ_ДИАЛОГА

ВЫЧИСЛИТЬ

Массив!1 = "Вал|Валенки войлочные|5 шт"

Массив!2 = "Лоп|Лопата для погрузки грунта|2 шт"

Массив!3 = "Ки|Киянка из красного дерева|1 шт"

Массив2!1 = "Стал|Стул стальной|10 шт"

Массив2!2 = "Кресло|Кресло металлическое|6 шт"

Массив2!3 = "Стол|Стол пластмассовый|4 шт"

ТестДиалога

КОНЕЦ

См.также
Диалоги
Ключевое слово ДИАЛОГ.


Режим разработчика

Меню

Для быстрого перехода в режим разработки программы предназначен режим разработчика. Он активизируется при нажатии клавиш <Ctrl>+<Shift>. Если нажаты эти клавиши то:

·При перемещении по меню в строке статуса показывается информация о пункте (идентификатор журнала, имя типовой операции, файл бланка или отчета)

·При выборе пункта переходит к редактированию типовой операции, функций журнала, бланка или отчета, в зависимости от пункта меню.

·При выборе типовой операции в журнале бухгалтерских операций переходит к редактированию типовой операции.

·При выборе журнала в списке журналов аналитики переходит к редактированию функций журнала.

Отчеты

При просмотре встроенного отчета нажатие <Ctrl>+<Shift>+<D> вызывает переключение между отладочными режимами отображения отчета.

Бланки

При просмотре бланка нажатие <Ctrl>+<Shift>+<D> вызывает переключение между отладочными режимами отображения бланка.

Журналы

При просмотре журнала аналитики нажатие <Ctrl>+<Shift>+<D> вызывает переключение на отладочный режим отображения идентификаторов поля журнала.

В диалоге редактирования записи нажатие <Ctrl>+<Shift>+<D> вызывает переключение на отладочный режим отображения идентификаторов поля журнала.


Веб-страницы

В программе Инфо-Предприятие предусмотрена возможность организации интерфейса с пользователем при помощи Веб-страниц. Для этого в базу данных в подкаталог HTML загружаются:

·HTML (HTM) — файлы с содержимым самих страниц

·GIF, JPG и т.д. — файлы с рисунками

·прочие файлы (например, необходимые для обработки JAVA-скриптом).

Потом их можно установить в качестве пункта меню и отобразить во встроенном браузере. Файлы загружаются в базу данных в каталог db:\html.

Для того чтобы организовать интерактивное взаимодействие между программой и гипертекстом (содержимым Веб-страницы) предусмотрен вызов функций внутреннего языка. Синтаксис вызова следующий:

<a href=ip://команда внутреннего языка>

Пример 1:

<a href=ip://СТАРТ_ЖУРНАЛ(накладные)>Старт</a>

Здесь при нажатии на гиперссылку «Старт» будет вызвана функция СТАРТ_ЖУРНАЛ.

Пример 2:

<a href=ip://["library"].Функция>Старт</a>

Здесь при нажатии на гиперссылку «Старт» будет вызвана функция пользовательская функция библиотеки.

Внутри команды не должны использоваться пробелы. Если надо использовать такой символ, его надо заменить на символ "&" (амперсенд).

Например, строка:

<a href=ip://СТАРТ_ОПЕРАЦИЯ("Главное меню: Настройка параметров")>Настроить</a>

заменяется на:

<a href=ip://СТАРТ_ОПЕРАЦИЯ("Главное&меню:&Настройка&параметров")>Настроить</a>

См. также
Бланки документов
Встроенные отчеты
Диалоги


Подключение файла справки

В программу может быть подключен один или несколько дополнительных файлов контекстной справки, описывающих работу прикладных конфигураций (модулей). Файлы создаются специализированными программами для создания справочных систем. Например, следующими:

AuthorIT

Doc-to-Help

Help & Manual

RoboHelp

Flare

HyperText Studio

WebWorks Publisher

XDK

или бесплатным HTML Help Workshop.

Контекстный вызов

Для того чтобы Ваш файл справки вызывался при нажатии F1 необходимо добавление скрытых ключевых слов (A-keywords) в файл, совпадающих:

·Для журналов — с идентификатором журнала, например: "накладные". Для журналов, имеющих несколько видов после идентификатора через двоеточие указывается имя вида, например: "накладные : приходные".

·Для бланков и отчетов — с названием бланка или отчета, например "Бухгалтерский баланс".

Подключение файла

Для подключения файла необходимо, чтобы он назывался Ip2.chm, Ip3.chm и т.д. После этого его необходимо загрузить в базу данных в каталог с другими файлами справки. Например, с помощью командной строки:

-LHelp=ip.chm

Если программа была запущена в момент загрузки файла справки, необходимо выйти из нее и заново зайти.


Информация о партнере

Дилеры, региональные партнеры и разработчики собственных прикладных конфигураций (модулей) могут размещать информацию о себе. Информация о партнере должна быть расположена в файле Dealer.txt в виде обычного текста. Этот текст будет отображаться в пункте меню «Справка | О программе» и с сообщениях демо-версии программы. Текст может содержать несколько строк. может содержать дополнительные параметры программы.

Для того чтобы поместить эту информацию в базе данных, сформируйте сначала этот текстовый файл. А затем загрузите в базу данных. Это можно сделать с помощью команды:

iplauncher.exe <путь к базе данных> -LDealer.txt

или

<основной исполняемый мoдуль> <путь к базе данных> -LDealer.txt

(см.подробнее Параметры коммандной строки)

Пример файла Dealer.txt

Поддержку в Новомосковске осуществляет

ООО "Одуванчик" (тел. 109-34)

См.также
Структура файла INF
Параметры командной строки


Версии "Стандарт" и "Индивидуальная платформа"

Есть три основные версии программы: МАКСИМУМ, Стандарт и Индивидуальная платформа. Различие между версиями МАКСИМУМ, Стандарт и Индивидуальная платформа лежит не в самой программе Инфо-Предприятие, а в электронном ключе. При необходимости, пользователь может в любой момент времени перейти, например, от версии Стандарт к версии МАКСИМУМ, если воспользуется дистанционной прошивкой электронного ключа.

МАКСИМУМ. Версия МАКСИМУМ не имеет никаких ограничений по возможностям разработки, объемам обрабатываемых данных и максимально возможному кол-ву работающих в одной базе данных пользователей.

СТАНДАРТ. Версия Стандарт предназначена для работы как с какой-то конкретной конфигурацией (Торговый склад, Бухгалтерия и т.д.) или , так и с несколькими конфигурациями и имеет следующие ограничения:

·Ограничено кол-во журналов аналитики, которых можно создать. Это ограничение зависит от используемой конфигурации: или 5, или 10 журналов. При установке нескольких конфигураций лимиты кол-ва суммируются.
Ограничение на кол-во журналах аналитики, которые можно создать в программе действует только на журналы-таблицы и журналы-представления. Кол-во журналов-процедур никак не ограничивается. Кроме того, журнал может быть запрещен к использованию (выключен). В этом случае он также не будет учитываться для такого ограничения, однако работать с этим журналом из программы будет запрещено.

·Идентификаторы журналов должны удовлетворять определенным условиям. Это ограничение зависит от используемой конфигурации. Например для версии Стандарт с конфигурацией Торговый склад, журналы должны начинаться с тс_ или рс_. Журналы, не удовлетворяющие условию недоступны для работы. Журналы, начинающиеся с с_ (справочники) или ж_ (журналы) разрешены во всех конфигурациях.

Для того чтобы проверить, что журнал недоступен или выключен из внутреннего языка, можно воспользоваться встроенной функцией ЕСТЬ_ДОСТУП. В редакторе расчетной части версии Стандарт недоступные и выключенные журналы отображаются отдельным типом подсветки, по умолчанию они будут выделяться красным цветом.

ИНДИВИДУАЛЬНАЯ ПЛАТФОРМА. Помимо версии Стандарт, ориентированной на работу с конкретной конфигурацией, существует версия Индивидуальная платформа, которая, наоборот, не будет работать ни с одной из стандартных конфигураций. Она рассчитана на разработчиков собственных конфигураций (модулей). Версия Индивидуальная платформа имеет следующие ограничения:

·Максимальное кол-во журналов аналитики ограничено 70 (семьюдесятью).

·Идентификаторы журналов должны начинаться с с_ (справочники), ж_ (журналы) или любого другого префикса, не используемого в стандартных конфигурациях.


Стандарт оформления формульного раздела

Cтандарт оформления формульного раздела

Ниже приводится стадарт, по которому следует вести разработки и оформлять расчетную часть бланков и типовых операций. Стандарт носит рекомендательный характер, однако техническая поддержка разработок партнеров, не соответствующих стандарту, может быть затруднена.

Расчетная часть

1.Исходный текст должен оформляться так, что бы при компиляции не было никаких предупреждений.

2.В качестве информационных комментариев используется двойная косая черта "//". Комментарии записываются перед комментируемым оператором на его уровне:

// Комментарий для <оператор>

<оператор>

ЦИКЛ ... <условие>

..// Комментарий для <операторы>

..<операторы>

КОНЕЦ_ЦИКЛА

Короткие комментарии коротких операторов могут записываться в конце строки:

<оператор> // Комментарий для <оператор>

1)Любая библиотечная функция программы должна сопровождаться информационным комментарием, описывающим ее. Комментарий помещается после объявления функции и включает в себя:

1.Краткое описание функции.

2.Описание входных и выходных параметров.

3.Краткое описание алгоритма.

Замечание!

Если смысл процедуры (функции) полностью описывается ее объявлением (Именами функции и параметров), то комментировать ее объявление не требуется.

1)Заголовок бланка (библиотеки, библиотеки типовых операций)

// Название конфигурации
// Название бланка
// Автор (ы)
// Краткое описание возможностей

1)Стандарты по формульному разделу:

а) Все идентификаторы состоят только из русских букв и цифр.

б) Имена функций, общих и глобальных переменных задаются строчными буквами с выделением составляющих заглавными буквами.

Пример:

ПередДобавлением, ТоварыВНакладной

в) Имена локальных переменных и параметры функций задаются строчными буквами. Составляющие слова отделяются знаком подчеркивания "_".

Пример:

сумма, сумма_ндс

г) Идентификаторы журналов и их полей задаются строчными буквами. Составляющие слова отделяются знаком подчеркивания "_". Идентификаторы журналов имеют префикс — от одной до трех букв — определяющих конфигурацию, в которой эти журналы используются.

Пример:

тс_операции, тс_операции_доп — журналы, здесь "тс_" — это префикс, определяющий конфигурацию.

ставка_ндс, адрес_факт — поля

д) Идентификаторы журналов документов начинаются с префикса "а_".

е) Именование множеств. Идентификаторы множеств задаются строчными буквами от одной до трех букв. Идентификаторы элементов множеств задаются строчными буквами с выделением корней заглавными буквами.

Пример:

ндс, скл — множества

ВТомЧисле, БезНдс — элементы

Использование в тексте (в результате): ндсВТомЧисле, склРозница

ж) Если функция не имеет входных параметров, вызов такой функции содержит пару скобок "()":

<имя функции>

В исходном коде не рекомендуется превышать длину строки 80 символов. Вложенность операторов должна быть четко отображена отступами. Величина отступа должна быть строго одинаковой. Стандартным считается отступ на 2 символа для каждого следующего вложения.

Для различных конструкций применяются следующие правила выравнивания:

ВЫЧИСЛИТЬ(<параметры>)

..<операторы>

ВВЕСТИ

..<операторы>

КОНЕЦ

ОПЕРАЦИЯ <название>

<шаблон>

ВЫЧИСЛИТЬ

..<операторы>

ВВЕСТИ

..<операторы>

КОНЕЦ

ФУНКЦИЯ <параметры>

..<операторы>

КОНЕЦ_ФУНКЦИИ

ДИАЛОГ <параметры>

..<операторы>

КОНЕЦ_ДИАЛОГА

ЕСЛИ <условие> ТО

..<операторы>

ИНАЧЕ

..<операторы>

КОНЕЦ_ЕСЛИ

ЦИКЛ ДЛЯ | ПОКА | СЧЕТА | ОБОРОТЫ | СТАТЬИ | ИЗ_ЖУРНАЛА |

..ЯЧЕЙКИ | ЯЧЕЙКИВ (<параметры>)

..<операторы>

КОНЕЦ_ЦИКЛА

ЦИКЛ ПО ЖУРНАЛУ <выбираемые данные>

..(<условие>)

..СОРТИРОВАТЬ(<параметры>)

..ПЛАН(<параметры>)

..<операторы>

КОНЕЦ_ЦИКЛА

ВЫБРАТЬ <выбираемые данные> (<условие>)

ДЛЯ <параметры>

..<операторы>

КОНЕЦ_ДЛЯ

Если <условие>, <параметры>, <выбираемые данные> не помещаются на одной строке они переносятся на следующую строку с отступом от основной конструкции.

Ключевое слово ИСПОЛЬЗОВАТЬ указывается только в начале алгоритма. Использование вызова функций через квадратные скобки [<библиотека>].<функция> недопустимо.

1) Общие переменные и массивы описываются только вначале библиотеки.

2) Функции объединяются в библиотеки по смыслу. По возможности, если объем библиотеки достаточно большой, ее рекомендуется разбивать на несколько библиотек. Функции, используемые внутри бланков и отчетов могут располагаться внутри бланка или отчета.

3) Не разрешается изменять тип объектной переменной в процессе расчета алгоритма при помощи конструкторов.

Пример:

о ЭТО тс_операции...

о ЭТО тс_товары

Именование объектов и файлов

1) Имена библиотек функций и типовых операций, бланков документов, файлы отчетов имеют префикс — от одной до трех букв - определяющих конфигурацию, в которой они используются.Пример: TS_TABLE.LIB

2) Имена объектов, создаваемых на сервере: таблиц, представлений и хранимых процедур имеют префикс — от одной до трех букв - определяющих конфигурацию, в которой они используются.Пример: TS_OPERATIONS

3) Генератор первичного ключа для таблицы должен иметь имя GEN_<имя_таблицы>_ID, либо GEN_<имя_таблицы>_<имя_поля>

Форма бланков

1) Бланки должны иметь поля отступа не менее 10 мм сверху, снизу, слева и справа.

2) По возможности, масштаб бланка должен быть 100%, а сетка бланка стандартная. Допускается использование кратных масштабов (90%, 80%, 75%, 70%, 60% и т.д.), если бланк не умещается на странице.

3) По возможности, набор шрифтов должен быть один для всех бланков или для группы бланков. Не допускается, чтобы шрифты с одним названием означали в разных бланках разные типы вывода.

4) Если не введенные или неправильно введенные во вводные графы значения могут повлиять на правильность расчетов, такие графы должны иметь флаг "Необходимо ввести значение"("Счет только последнего уровня", "Ограничить диапазоном"). Не рекомендуется делать проверку в формульном разделе бланка.

5) Для подсчета итоговых сумм в таблицах необходимо использовать функцию СУММАМ.

6) Использование выражения СИМВ(13) для разбиения на строки неприемлемо. Вместо этого надо использовать стандартный разделитель строк "//"


Формальный синтаксис

Описание синтаксиса внутреннего языка Инфо-Предприятия:

<значение> := <число> | <строка> | <переменная>

<прим> := [ + | - ] <значение> [ % ] [ ^ <прим> ] [ ИЗ <переменная>] | ( <выражение с или> )

<операторы умножения> := * | / | \

<терм> := <прим> [ <операторы умножения> <прим> ] ...

<операторы сложения> := + | -

<выражение> := <терм> [ <операторы сложения> <терм> ] ...

<сравнение> := <> | >= | <= | < | > | = | == | !=

<выражение лог> := НЕ <выражение лог> | <выражение> [ <сравнение> <выражение с или> ]

<выражение с и> := <выражение лог> [ И <выражение лог> ] ...

<выражение с или> := <выражение с и> [ ИЛИ <выражение с и> ] ...


Параметры командной строки

Параметры командной строки могут задаваться как для тонкого клиента — модуля подключения iplauncher, так и для основного исполняемого модуля программы. При запуске основного исполняемого модуля программы или модуля подключения iplauncher при необходимости можно использовать следующие параметры командной строки:

Параметры для загрузчика iplauncher.exe:

<файл базы данных> — задает файл базы данных. Программа будет работать с заданной базой данных.

-D<приемник> — мoдуль подключения iplauncher загрузит основной мoдуль программы в указанный каталог.

-L[<приемник>=]<источник> — позволяет сохранить файлы в базе данных. Параметр <источник> задает файлы на компьютере и может содержать маску. Необязательный параметр <приемник> может указывать каталог, в который помещаются сохраняемые файлы.

Пример:

Параметр -LFBCLIENT.DLL обновит или загрузит библиотеку сервера из текущего каталога в базу данных, а параметр -LHELP=*.hlp;*.cnt заставит программу сохранить все файлы справки из текущего каталога в каталоге HELP базы данных.

Не рекомендуется делать загрузку исполняемого модуля программы через командную строку. Вместо этого воспользуйтесь меню «Установка | Установка/удаление модуля», где выберите в качестве типа файлов Файлы обновления EXE.

-F - при подключении к базе данных указывает на необходимость принудительного отображения диалога выбора базы данных, даже если в нем была отключена опция Показывать этот диалог в следующий раз.

-U<пользователь> — задает имя пользователя при подключении к серверу. По умолчанию используется пользователь sysdba.

-P<пароль> — задает пароль пользователя при подключении к серверу. По умолчанию используется пароль masterkey.

-R<роль> — задает роль пользователя при подключении к серверу. По умолчанию роли нет.

-G<клиентская библиотека> — задает файл клиентской библиотеки сервера Firebird. Эта библиотека осуществляет связь программы Инфо-Предприятие и сервера. По умолчанию программа использует библиотеку с именем fbclient.dll, но с этой опцией можно указать другую библиотеку.

-A — задание кодировки подключения, например -AWIN1251.

-I<pak-файл> — инсталлирует указанный файл обновления (pak-файл или inf-файл). После инсталляции работа программы завершается.

-T<типовая операция> — указывает программе на необходимость запуска указанной типовой операции. После выполнения операции работа будет завершена. При подключении к базе не выдается диалог выбора пользователя, вместо этого используется последний пользователь, под которым заходили в программу. Этот пользователь не должен иметь пароля на вход в программу.

-B<файл> — делает полную проверку конфигурации (компиляцию всех алгоритмов) и выводит в указанный файл список предупреждений и ошибок. После выполнения операции работа будет завершена. При подключении к базе не выдается диалог выбора пользователя, вместо этого используется последний пользователь, под которым заходили в программу. Этот пользователь не должен иметь пароля на вход в программу.

-Е — отключает использование events. Без них не работают такие возможности как обновление структуры журналов при их изменении внешними программами, при работе в журнале бухгалтерских операций возможно появление сообщения "запись не найдена" и ряд других. Отключение events необходимо, если возникает проблема при подключении к базе данных (например через internet).

-M — подключиться к базе данных несмотря на ошибки. Если в процессе обновления программы произошла фатальная ошибка, то программа не разрешит больше подключаться к такой базе данных. Установка этой опции отменяет запрет, однако будет ли работать программа на базе данных, обновленной с ошибкой, неизвестно.

-N — скрыть заставку при запуске программы.

-K — запускает программу в демонстрационном режиме. Демонстрацию какой конфигурации надо осуществить определяется указанием префикса журнала сразу после параметра -К. Например -Кб означает, что программа будет запущена для демонстрации возможностей модуля Бухгалтерия. Указание -KMAX означает, что программа запустится в режиме демонстрации версии МАКСИМУМ.

-W — запретить использовать сетевой электронный ключ. При установке этого флага, даже если на сервере установлен электронный ключ, программа будет искать ключ локальный, а если не найдет, выдаст сообщение об ошибке.

-С — очистить базу данных (совсем или до определенной даты, дата указывается следом). Вызывает обработчик.

-S — по-возможности не выводить никаких диалоговых окон.

-J<каталог> — установить каталог для файлов IP.LOG, UPDATE.LOG.

-O — включить оптимизацию сетевого трафика (кэширование метаданных на рабочей станции, компрессия сетевого трафика).

-H — запуск веб-сервера (возможен вариант -H<порт> — с указанием порта).

-X — отключить все обращения к Интернет при старте программы (проверка Интернет-обновлений, удаленная активация лицензий и т.д.).

-П<пользователь> — задает имя пользователя программы, под которым надо зайти. Работает только если у пользователя нет пароля.

Параметры для основного исполняемого модуля

Для такой работы необходимо чтобы к базе данных подключение выполнялось не через iplauncher, а с помощью основного исполняемого модуля):

<файл базы данных> — задает файл базы данных. Программа будет работать с заданной базой данных.

-D[<приемник>=]<источник> — основной мoдуль позволяет считать файлы из базы данных. Параметр <источник> задает файлы в базе данных и может содержать маску. Необязательный параметр <приемник> может указывать каталог, в который помещаются считанные файлы.

Пример:

Параметр -DALLFORMS=*.frm заставит программу считать все формы из базы данных и разместить их в каталоге ALLFORMS.

-L[<приемник>=]<источник> — позволяет сохранить файлы в базе данных. Параметр <источник> задает файлы на компьютере и может содержать маску. Необязательный параметр <приемник> может указывать каталог, в который помещаются сохраняемые файлы.

Пример:

Параметр -LIP2.EXE обновит или загрузит основной исполняемый мoдуль из текущего каталога в базу данных, а параметр -LHELP=*.hlp;*.cnt заставит программу сохранить все файлы справки из текущего каталога в каталоге HELP базы данных.

Для основного исполняемого модуля действуют также и все остальные параметры загрузчика iplauncher.exe.


Типы файлов программы

В программе используются следующие файлы для хранения информации:

База данных

*.FDB или *.GDB | Файл базы данных
*.FBK или *.GBK | Файл резервной копии базы данных

Алгоритмы и настройки

*.LIB | Библиотеки (LIBrary)
*.FRM | Бланки (FoRMs)
*.REP | Отчеты (REPorts)
*.BMP | Картинки в бланках
*.SOL | Библиотеки типовых операций (Source Operation Library)
*.XOL | Исполняемые библиотеки операций (eXecutable Operation Library)
*.CNJ | Оглавления журналов (CoNtents Journal)
*.RLK | Связи между отчетами (Reports LinK)
*.LNG | Файлы ресурсов программы для других языков

Промежуточные данные и архивы

*.JRN | Архивы журналов (JouRNals) для версий 1.x
*.MNU | Архив меню (MeNU)
*.SET | Архив множеств (MeNU)
*.INF | Конфигурация дистрибутива/архива (INstallation File)
*.PAK | Пакет обновления конфигурации
*.SQL | SQL-скрипт для модификации структуры базы данных

Пользовательская конфигурация

*.CFG | Конфигурационные файлы (ConFiGuration)
*.FLT | Фильтры (FiLTers)

Прочие файлы

*.CHM | Файлы справок
*.TIP | Файл подсказок (TIPs)
*.EXE;*.DLL | Исполняемые файлы программы


Выгрузка настройки

Выгрузка модуля

Стандартное меню

 Вернуться к началу раздела

С помощью пункта «Разработка | Выгрузка модуля» главного меню можно выполнить сравнение конфигураций (или их частей) в двух базах данных и разницу сохранить как файл обновления. Этот файл может быть отправлен одному или нескольким заказчикам и установлен на их базы данных.

При вызове этого пункта меню появится пошаговый диалог.

Шаг 1. Выберите необходимое действие и нажмите Далее > для продолжения. При сравнении с другой базой Вам надо указать файл базы данных для сравнения или воспользоваться кнопкой Обзор... для выбора нужного файла.

Шаг 2. При необходимости укажите префикс конфигурации и нажмите Далее > для продолжения. Кнопка Шаблоны вызывает диалог для задания шаблонов сравнения объектов базы данных. В шаблоне можно использовать символы "?" и "*", которые означают один или произвольное число любых символов соответственно. При задании нескольких шаблонов они должны быть разделены символом ";". Пустая строка означает, что объекты соответствующего типа не будут обрабатываться и извлекаться при сравнении баз.

В графе Название модуля или комментарий можно указать произвольный текст, который будет показываться при установке сформированного пакета.

Флажок Предпочтения пользователя указывает на необходимость выгрузки предпочтений пользователя (сравнивается текущий пользователь в этой базе и в сравниваемой базе). В предпочтения входят, например, настройки таблиц.

Флажок Функцию деинсталляции указывает на необходимость реализации функции деинсталляции для формируемого пакета обновления. Пакет с функцией деинсталляции можно будет потом удалить.

Шаг 3. После извлечения структуры базы данных Вы можете отправить получившиеся данные по электронной почте (нажав кнопку Переслать по почте) или сохранить их в файл на диске (нажав кнопку Сохранить как файл). Нажмите Готово для завершения диалога.

Разница, полученная в результате сравнения двух баз данных может быть установлена в базу данных, с которой идет сравнение с целью приведения ее структуры в соответствии с текущей базой данных. Если структуры баз данных слишком сильно разнятся, то установка может не пройти. Используйте систему дистрибутивов.

Как это можно использовать

Вариант 1.

Нужно доработать стандартную типовую версию программы до требований заказчика. Вы берете типовую версию, делаете копию файла базы данных до доработок. Например, копия называется before.fdb. Далее Вы осуществляете доработку типовой конфигурации, переделываете или создаете бланки, отчеты, функции и т.д. После завершения работы Вы запускаете выгрузку конфигурации. При выгрузке конфигурации указываете файл копии before.fdb. В результате формируется файл, содержащий все внесенные Вами модификации. Такой файл можно отправить заказчику для установки на его базу данных.

Вариант 2.

Вы разработчик собственных решений на базе Инфо-Предприятия. У Ваших заказчиков работает какая-то версия Вашего модуля и Вам надо обновить ее. Для этого сравните текущую базу, содержащую все изменения новой версии, и базу заказчика. Сформированный файл-разницу можно будет установить на базу заказчика для переноса изменений.

См.также
Установка дистрибутива
Создание дистрибутива


Создание дистрибутива

Стандартное меню

Этот раздел посвящен разработчикам, как собственных конфигураций или модулей, так и отдельных бланков, типовых операций и других элементов программы, сталкивающимся с необходимостью передавать эти разработки третьим лицам (пользователям).

С необходимостью обновления пользовательских баз данных до новой версии конфигурации сталкивается каждый разработчик, когда распространяет свою программу. Для работы с конфигурациями и модулями в программе предусмотрены средства для создания дистрибутивов конфигураций. Дистрибутив конфигурации представляет собой файл (с расширением pak), содержащий в сжатом виде информацию о версии конфигурации и о том, какие преобразования существующей базы данных необходимо сделать для обновления ее до новой версии конфигурации.

Для создания дистрибутива используется пункт меню «Разработка | Дистрибутив конфигурации» главного меню. При вызове этого пункта меню появится пошаговый диалог, в результате которого будет создан дистрибутивный пакет.

Шаг 1. Здесь Вам необходимо выбрать нужную конфигурацию из списка и нажать Далее > для продолжения создания дистрибутива.

Для создания новой конфигурации или добавления в список уже существующей конфигурации нажмите Добавить. На появившейся странице Вы можете выбрать необходимое действие и нажать Далее > для продолжения или < Назад, чтобы вернуться к списку конфигураций.

При создании новой конфигурации Вам необходимо указать название конфигурации, а также каталог для расположения конфигурационного файла и файла эталонной базы данных.

Внимание!

Название конфигурации указывается только при ее создании и не может быть изменено в дальнейшем.

Если конфигурация использует какие-то другие конфигурации, то при создании надо указать их. Это является необходимым условием — только в этом случае изменения, произведенные в Вашей конфигурации будут отделяться от изменений, произведенных в использованных Вами конфигурациях и обновления будут корректно ставится.

После нажатия Далее > программа скопирует в указанный каталог необходимые файлы. После завершения этих операций появится список настроек.

При добавлении существующей конфигурации Вам необходимо указать имя конфигурационного файла или воспользоваться кнопкой Обзор... для выбора нужного файла. После нажатия Далее > конфигурация будет добавлена в список. Это бывает необходимо при переустановке программы или операционной системы, а также при переносе конфигурации из одного каталога в другой или на другой компьютер.

Для удаления конфигурации из списка выделите ее и нажмите Удалить. После подтверждения она будет удалена из списка.

Внимание!

Никакие файлы, относящиеся к этой конфигурации, удалены не будут (при необходимости Вы можете удалить их вручную).

Шаг 2. Здесь необходимо установить версию конфигурации. Название конфигурации и номер ее версии играют важную роль. Название конфигурации проверяется при ее установке. Программа помнит, какие конфигурации, и каких версий ставились. Установить ту же конфигурацию, но более ранней версии программа не позволит, а выведет сообщение об ошибке:

Устанавливаемая конфигурация имеет более старую версию, чем та, что уже установлена у Вас.

Т.е. она будет контролировать, чтобы пользователь переходил со старой версии на более новую. При установке той же конфигурации с той же версией программа выдаст предупреждение:

Это обновление уже устанавливалось ранее. Продолжить?

Для продолжения нажмите Далее >, а для возврата к Шагу 1 - < Назад.

Шаг 3. Здесь Вы можете установить дополнительные параметры дистрибутива. В графе Версия указывается версия программы (исполняемого модуля), на которой может работать эта конфигурация. Если при установке выяснится, что версия программы ниже, то будет выведено сообщение об ошибке:

Для обновления и правильной работы конфигурации необходима более новая версия программы (исполняемого модуля).

После этого установка будет остановлена. Также здесь можно установить следующие опции:

Упаковать дистрибутив — по умолчанию включена. Это означает, что все файлы дистрибутива будут помещены в архив (файл с расширением pak). Без этой опции файлы не будут упаковываться и займут больше места.

Шаг 4. При установке обновления можно сделать так, чтобы программа дополнительно выполнила определенные SQL-скрипты при обновлении, до и после изменения структуры базы данных. Рекомендуется чтобы скрипты имели явное указание на кодировку, диалект, терминальный символ и т.д.

Пример:

SET NAMES WIN1251;

SET SQL DIALECT 3;

SET AUTODDL ON;

SET TERM ^;

Помимо стандартных SQL-запросов, скрипты могу содержать следующие служебные запросы:

ERROR_OFF — отключает выдачу ошибок. Если последующие SQL-запросы будут выполняться с ошибками, программа будет считать их не как ошибки, а как предупреждения.

ERROR_ON — включает выдачу ошибок, отключенную при помощи ERROR_OFF.

EXECUTE BLOCK — позволяет включать PSQL-код в скрипт.

Указанные скрипты будут выполняться при переходе с предыдущей версии на эту. При сборке дистрибутива следующей редакции он может также содержать уже свои дополнительные скрипты.

Если в каталоге с файлом скрипта *.sql содержится файл с таким же именем с расширением *.blb, программа считает его бинарным файлом с блобами для скрипта и также включит его в дистрибутив. Только один из скриптов (либо до, либо после изменения структуры) может иметь файл с блобами.

Нажмите Готово для создания дистрибутива.

Важно знать.

1. Для корректной работы программы обновления необходимо выполнение одного требования к разработке блоков и конфигураций программы: не должны изменяться идентификаторы журналов, полей журналов, идентификаторы множеств и элементов множеств. Когда происходит обновление старой версии на новую, то именно по идентификаторам программа определяет правила преобразования существующих данных.

2. Возможно объединение нескольких конфигураций внутри одной программы, написанными совершенно разными разработчиками.

3. Архив конфигурации может быть распакован и заново запакован при помощи утилиты ARC. Если необходимо сделать сложные преобразования данных, не укладывающиеся в существующие возможности программы по созданию дистрибутивов, редактирование пакета обновления может быть произведено вручную (см. структуру каталога дистрибутивов).

См.также
Структура каталога дистрибутивов
Установка дистрибутива


Структура каталога дистрибутивов

При создании конфигурации в каталог с дистрибутивами конфигурации записываются три файла:

first.gbk — резервная копия эталонной базы данных;

first.gdb — копия эталонной базы данных;

distrib.cfg — конфигурационный файл.

В нем также создается каталог UDF с серверными библиотеками:

UDF\UDF32 — для 32-битных библиотек Windows.

UDF\UDF64 — для 64-битных библиотек Windows.

В каталог копируются текущие редакции библиотек (32- или 64- битной версии сервера). Библиотеки из этого каталога используются для включения в последующие пакеты обновлений.

При создании дистрибутива в каталоге конфигурации создается каталог, имя которого определяется версией дистрибутива. Например, для версии 1.0.0 имя этого каталога будет 01_00_0000. В этот каталог копируется рабочая база (файлы standart.gbk и standart.gdb) и записываются файлы обновлений в каталоги Full и Номер_предыдущей_версии (не записывается при создании самого первого дистрибутива). При установленной опции Упаковать дистрибутив эти каталоги записываются в архивы full.pak и Номер_предыдущей_версии.pak соответственно. Архив full.pak (каталог Full) содержит все отличия текущей базы от эталонной и может быть установлен на любую версию конфигурации. Архив Номер_предыдущей_версии.pak (каталог Номер_предыдущей_версии) содержит все отличия текущей базы от предыдущей и может быть установлен только на предыдущую версию конфигурации.

Внимание!

При необходимости распаковать архив можно воспользоваться утилитой для работы с архивами. Архив Full.pak используется для сборки последующих обновлений, поэтому, при необходимости изменить его, он распаковывается, редактируется, а потом заново запаковывается и копируется в этот же каталог.

Кроме того программа записывает протокол изменений update.log, сделанных в новой версии по сравнению с предыдущей. С помощью него легко определяются те изменения, которые выполнялись от версии к версии программы.

Пример:

Структура каталога для конфигурации с дистрибутивами версий 1.0.100 и 1.6.438 при включенной опции Упаковать дистрибутив будет иметь следующий вид:

first.gbk

first.gdb

distrib.cfg

UDF\UDF32\ip_install.dll

UDF\UDF32\ip_udfu.dll

UDF\UDF64\ip_install.dll

UDF\UDF64\ip_udfu.dll

01_00_0100\standart.gbk

01_00_0100\standart.gdb

01_00_0100\full.pak

01_06_0438\standart.gbk

01_06_0438\standart.gdb

01_06_0438\full.pak

01_06_0438\01_00_0000.pak

Структура каталога той же конфигурации при отключенной опции Упаковать дистрибутив будет иметь такой вид:

first.gbk

first.gdb

distrib.cfg

UDF\UDF32\ip_install.dll

UDF\UDF32\ip_udfu.dll

UDF\UDF64\ip_install.dll

UDF\UDF64\ip_udfu.dll

01_00_0100\standart.gbk

01_00_0100\standart.gdb

01_00_0100\Full\...

01_06_0438\standart.gbk

01_06_0438\standart.gdb

01_06_0438\Full\...

01_06_0438\01_00_0000\...

См.также
Создание дистрибутива
Структура архива обновления


Структура архива обновления

В корне архива располагается файл Update.inf с информацией о дистрибутиве конфигурации.

Далее, каждая версия конфигурации представлена каталогом, имеющим имя, совпадающее с номером версии. В этом каталоге может находиться файл Restruct.sql, который содержит отличия структуры текущей базы данных от предыдущей и пользовательские скрипты RestructBefore.sql и RestructAfter.sql, которые добавляются при создании архива. Также внутри каталога версии могут находиться файлы BeforeInfo.txt и AfterInfo.txt с сообщением пользователю, касающимся этой версии. Еще внутри могут располагаться специальные файлы-маркеры.

Все данные, относящиеся к определенной версии конфигурации, записываются в подкаталоги: FILES, LOCALFILES, SYSDATA и UDF.

В каталог FILES записываются новые или изменившиеся (по сравнению с предыдущей версией конфигурации) файлы из таблицы IP$FILESTORAGE в соответствии со следующими правилами:

1. Бланки (*.frm) и отчеты (*.rep) сравниваются без бинарного кода. В случае обнаружения различий записывается файл (также без бинарного кода).

2. Для файла связей между отчетами (*.rlk) записывается разница.

3. Для файлов библиотек (*.lib) и библиотек типовых операций (*.sol) записывается разница. В файлы с расширением *.del записывается информация об удаленных переменных/функциях и типовых операциях соответственно.

4. Файлы исполняемых библиотек операций (*.xol) пропускаются.

5. Все остальные файлы копируются без какой-либо дополнительной обработки.

В каталог LOCALFILES записываются новые или изменившиеся (по сравнению с предыдущей версией конфигурации) файлы из таблицы IP$LOCALFILESTORAGE в соответствии со следующими правилами:

1. Для файла настроек пользователя (Registry.ini) записывается разница. При установке обновления эта разница объединяется с файлом настроек для каждого пользователя.

2. Все остальные файлы пропускаются.

В каталог SYSDATA записываются SQL-скрипты для обновления системных таблиц. Имя файла совпадает с именем таблицы. Например:

·IP$JOURNALSLIST.SQL — журналы аналитики.

·IP$FIELDSLIST_I.SQL и IP$FIELDSLIST_DU.SQL — поля журналов аналитики. Наличие двух файлов обусловлено полем REFERENCENAME_ID.

·IP$EVENTSTYPES.SQL — типы обработчиков.

·IP$EVENTSLIST.SQL — обработчики.

·IP$MACROFUNC.SQL — функции сервера.

·IP$SETS.SQL — множества.

·IP$DISABLEDREFS.SQL — отключение использования ссылки в ЦИКЛе ПО ЖУРНАЛУ.

·IP$USERDEFINEDCLEAR.SQL — запросы на удаление всех данных.

·IP$USERDEFINEDCONSTRAINTS.SQL — пользовательские ссылки (необходимы для коррек-тной работы программы).

·IP$VISUALSTYLES.SQL — виды журналов.

·IP$FULLFORMSLIST.SQL и IP$FULLREPORTSLIST.SQL — необходимы только для удаления ненужных бланков и отчетов из таблицы IP$FILESTORAGE.

·IP$OPREDEL_I.SQL и IP$OPREDEL_DU.SQL — определения. При установке обновления файл IP$OPREDEL_I.SQL выполняется для каждой фирмы, а файл IP$OPREDEL_DU.SQL — только один раз, однако он воздействует сразу на все фирмы.

·IP$REKVISIT_I.SQL и IP$REKVISIT_DU.SQL — реквизиты. Установка этих файлов аналогична установке файлов определений.

·ACC_NUSYSTEM.SQL — системы налогообложения

·ACC_NUREG.SQL — статьи учета. Установка этих файлов аналогична установке файлов определений.

·ACC_PLSCET_I.SQL и ACC_PLSCET_DU.SQL — план счетов. Установка этих файлов аналогична установке файлов определений.

·ACC_AN_RELATIONSLIST.SQL — привязка аналитических признаков к счетам. Установка этих файлов аналогична установке файлов определений.

·ACC_VALIDPRLIST_I.SQL и ACC_VALIDPRLIST_DU.SQL — корректные проводки. Установ-ка этих файлов аналогична установке файлов определений.

·ACC_DOCUMENTTYPESLIST

·IP$INTERFACE

В каталоге UDF находятся серверные библиотеки UDF (User defined function), которые обновляются только при различии версии.

См.также
Структура файла INF
Файлы-маркеры
Утилита для работы с архивами


Файлы-маркеры

Внутри каталога версии в структуре каталогов дистрибутива могут содержаться специальные файлы-маркеры. Они позволяют выполнять специальные команды. Некоторые файлы-маркеры имеют нулевой размер, некоторые содержат дополнительную информацию. Перечень файлов-маркеров (сгруппированы по смыслу):

RUN.TXT — запускает внешнюю программу-установщик. Внутри файла находится команда для запуска. Текущим каталогом для запускаемой программы будет каталог версии. Команда может использовать следующие макросы:

·<database> — путь к базе данных

·<client> — путь к клиентской библиотеке Firebird используемой при подключении к обновляемой базе данных.

·<launcher> — путь к программе IpLauncher.exe, которая используется для запуска программы Инфо-Предприятие.

·<free> — если версия бесплатная 1, если версия платная 0.

·<nomsg> — если обновление запускается из командной строки без вывода сообщений 1, иначе 0.

·<curver> — текущая версия конфигурации, на которую устанавливается обновление.

·<ver> — версия, соответствующая каталогу, из которого запускается внешняя программа-установщик.

·<logid> — ид записи в таблице IP$UPDATELOG. На момент запуска программы в ней уже будет занесена информация о начале установки пакета. Информация о завершении установки будет занесена после завершения установки обновления.

·<updatelog> — путь к файлу UPDATE.LOG.

·<iplog> — путь к файлу IP.LOG.

·<updatefile> — путь к файлу обновления (PAK или INF).

·<commandline> — полный путь, по которому запускается программа Инфо-Предприятие.

·<username> — имя пользователя, который устанавливает обновление, точка с запятой и его хэш пароля из базы данных (если есть).

Замечание!

Хэш пароля передается в виде кодов символов (каждый байт представляется строкой 00..FF) начиная с 3-ей версии платформы. До 3-ей версии хэш передается как есть, это может вызывать проблемы интерпретации командной строки.

Пример содержимого файла

external_update.exe "<database>" "<launcher>" <ver> <logid> "<updatefile>" <free>

Обновление программы будет приостановлено до завершения внешней программы-установщика.

Замечание!

Внешняя программа-установщик может информировать программу Инфо-Предприятие о своей работе создавая другие файлы-маркеры. Например, те, что описаны ниже.

STOP.TXT — останавливает обновление. Внутри файла может содержаться текст, который будет выведен пользователю при остановке обновления. Обновление останавливается на той версии, в каталоге которой находится. Т.е. после установки обновления программа окажется обновленной до версии, предшествующей версии каталога.

BREAK.TXT — останавливает обновление. Внутри файла может содержаться текст, который будет выведен пользователю при остановке обновления. После остановки обновления программа окажется обновленной до версии, равной версии каталога.

CHANGECURVER.TXT — меняет текущую версию при обработке папки. Может содержать указание на конкретную версию, например "5.0.1" или шаблоны, например, "5.0.*", где вместо звездочки будет подставлен текущий номер версии, подверсии и сборки. Может содержать SQL-запрос, который вычисляет версию, например "select '5.0.1' from rdb$database". Позволяет организовать пропуск некоторых каталогов или изменить номер версии, который окажется после установки обновления.

STOP_UDF_UPDATE.TXT — программа проигнорирует каталог UDF, находящийся в каталоге версии, т.е. если внутри каталога версии находится обновление серверных библиотек, он будет пропущен. Пропускается только обновление серверных библиотек, находящихся в текущем каталоги версии. Если в структуре каталогов дистрибутива есть другие версии с обновлениями серверных библиотек, не содержащие файл STOP_UDF_UPDATE.TXT они будут обрабатываться.

LOCK.TXT — по завершению обновления база данных будет заблокирована. Работа с ней станет не возможна. Внутри файла должен содержаться текст, который содержит информацию о блокировке. При попытке подключиться к заблокированной базе данных пользователю будет выводиться указанное сообщение.

ATTACH.TXT — после завершения обновления и перезапуска программы подключение будет не к текущей базе данных, а к базе данных, указанной в этом файле. Файл должен содержать полную строку подключения с указанием сервера, порта и пути к базе. Через запятую могут быть указаны параметры, с которыми будет перезапущена программа Инфо-Предприятие (уже без указания строки подключения).

UNICODE.TXT — запускает внутренний конвертор по переводу базы данных в Юникод. Все строковые поля, текстовые блобы и домены будут преобразовываться в кодировку UTF8, будет изменена кодировка базы данных по умолчанию на UTF8, пересозданы ключи, ограничения, процедуры, триггеры, представления, пересозданы вычислимые поля, объявления UDF. Файл-маркер может быть нулевой длины, а может содержать строку. Строка определяет перечень вычислимых полей (через точку с запятой) в виде <таблица>.<поле>. Указанные вычислимые поля не будут пересоздаваться. Предполагается, что они будут пересозданы пользовательским скриптом.

REBUILD_JOIN.TXT — пересоздание всех процедур и триггеров, связанных с опцией Связь с бухгалтерией.

REBUILD_REFRESH.TXT — пересоздание всех процедур и триггеров, связанных с опцией Автообновление изменений.

REBUILD_TREEVIEW.TXT — пересоздание всех процедур и триггеров, связанных с представлением журнала в виде дерева.

REBUILD_ANALITIC.TXT — пересоздание всех процедур и триггеров, связанных с опцией Является аналитикой счета.

REBUILD_DOCRESERVED.TXT — пересоздание всех процедур и триггеров, отрабатывающих резервирование номеров, связанных с журналом (при использовании функции ЗАП_НОМЕР с указанием связи).

REBUILD_FIELDS.TXT — перекомпиляция всех полей-выражений в журналах аналитики.

См.также
Создание дистрибутива
Структура архива обновления


Утилита для работы с архивами

В комплект поставки программы Инфо-Предприятие входит архиватор Arc. С помощью него можно работать с архивами (например, архивами обновлений). Архиватор может пригодиться в случае возникновения необходимости внести изменения в файл обновления или при распаковке архива, созданного при помощи функции АРХИВ_ЗАПИСАТЬ. Утилита поддерживает только интерфейс командной строки и работает в текстовом режиме.

Формат вызова программы:

arc <команда> <архив> [<каталог>]

Где <команда> — это одна буква, указывающая, что программа должна выполнить соответствующее действие. Допустимы следующие команды:

c — создать архив. Пример: arc c full.pak. В данном примере программа ищет в текущем каталоге файл update.inf, считывает из него информацию о дистрибутиве и создает архив full.pak, в который будут записаны все файлы из текущего каталога и всех его подкаталогов. При задании в командной строке параметра <каталог> все файлы будут браться из указанного каталога, а сам архив будет создан в текущем каталоге.

t — проверить целостность архива. Пример: arc t full.pak. Эта команда позволяет проверить правильность архива full.pak. Архив, скачанный из сети Internet, может содержать ошибки, с помощью этой команды можно проверить его

x — извлечь файлы с полными путями. Пример: arc x full.pak. В данном примере в текущий каталог будут извлечены все файлы из архива full.pak. При задании в командной строке параметра <каталог> все файлы из архива full.pak будут извлечены в указанный каталог.

e — извлечь файлы игнорируя пути. Пример: arc e full.pak. В данном примере в текущий каталог будут извлечены все файлы из архива full.pak. При задании в командной строке параметра <каталог> все файлы из архива full.pak будут извлечены в указанный каталог.

См.также
Создание дистрибутива
Структура архива обновления
Функция АРХИВ_СЧИТАТЬ
Функция АРХИВ_ЗАПИСАТЬ


Структура файла INF

Структура файла INF 2.0

INF-файл является файлом дистрибутива конфигурации и создается автоматически при создании дистрибутивов конфигураций. Однако, в некоторых случаях, может возникнуть необходимость редактирования этого файла вручную.

Файл является текстовым в кодировке Windows (1251). Он может содержать комментарии, начинающиеся с символов "//" в начале строки.

Дата создания : <дата> <время> — определяет дату и время создания дистрибутива.

Требуемая версия : <версия> — задает версию программы, требующуюся для правильной работы конфигурации (версия должна быть не ниже 2.2).

Версия настройки : <версия настройки> — определяет версию конфигурации. Это значение используется программой для контроля обновления.

Название : <название настройки> — определяет название конфигурации. Это значение используется программой для контроля обновления.

Требуемая версия настройки : <требуемая версия> — задает минимальный номер версии конфигурации, начиная с которого может быть установлено это обновление.

Замечание!

Если при архивировании конфигурации использовалось сжатие, то INF-файл будет располагаться внутри корня архива.

См.также
Структура архива обновления
Структура файла INF 1.0
Создание дистрибутива


Структура системных таблиц

Системные таблицы в программе Инфо-Предприятие служат для хранения служебной информации. Будьте аккуратны при внесении в них изменений, т.к. это может привести к сбоям в работе программы или невозможности ее запуска. Перед внесением изменений не забудьте сделать резервную копию.

Системные таблицы начинаются с префикса IP$ либо ACC_. Все они имеют описание. Используйте его как краткую информацию о таблице. Ниже перечислен перечень стандартных системных объектов, он может быть не полным:

Таблицы

Таблица | Описание
ACC_ANALITPREF | Предпочтения в использовании признаков
ACC_ANALITTYPE | Справочники, используемые в качестве аналитических признаков
ACC_AN_RELATIONS | Привязка аналитических признаков к счетам
ACC_HOZOP | Бухгалтерские операции
ACC_NUREG | Статьи учета
ACC_PLSCET | План счетов
ACC_PROVOD | Бухгалтерские проводки
ACC_VALIDPR | Корректные проводки
IP$AUTHENT | Пользователи
IP$DATABASEPARAMS | Параметры базы данных
IP$DOCRESERV | Зарезервированные номера документов
IP$EVENTS | Обработчики
IP$EVENTSTYPES | Типы обработчиков
IP$FIELDS | Список полей журналов аналитики
IP$FILESTORAGE | Подгружаемые файловые структуры
IP$FIRM | Справочник фирм
IP$FORMSLIST | Заголовки бланков
IP$JOURNALS | Список журналов аналитики
IP$LOCALFILESTORAGE | Локально подгружаемые файловые структуры
IP$MACROFUNC | Функции сервера
IP$OPREDEL | Определения
IP$REKVISIT | Реквизиты
IP$REPORTSLIST | Заголовки отчетов
IP$ROLES | Возможности
IP$SETS | Множества
IP$USEDROLES | Использование возможностей
IP$VISUALSTYLES | Виды журналов

Представления

Представление | Описание
ACC_AN_RELATIONSLIST | Привязка аналитик к счетам
ACC_HOZOPFULL | Проводки вместе с операциями
IP$EVENTSLIST | Обработчики
IP$FIELDSLIST | Полный список полей журналов аналитики
IP$FULLFORMSLIST | Список бланков
IP$FULLREPORTSLIST | Список отчетов
IP$JOURNALSLIST | Журналы
IP$REFERENCESTABLE | Ссылки

Процедуры

Процедура | Описание
ACC_ANALITPREF_ADD | Добавление предпочтения аналитики
ACC_ANALITPREF_REMOVE | Удаление предпочтения аналитики
ACC_ANALITTYPE_ID | Возвращает ид по имени типа объекта аналитики
ACC_AN_RELATIONS_SWAP | Поменять местами аналитические признаки
ACC_CHANGEPREF | Обновление ссылок для предпочтений аналитик
ACC_CHECKFOREIGN | Обработка ссылочной целостности для аналитик
ACC_CHECKRELDELETE | Можно ли удалить привязку аналитики
ACC_CLEARNUREG | Удалить все статьи
ACC_CLEARPLSCET | Удалить все счета
ACC_FILLVALIDPR | Заполнение списка корректных проводок
ACC_GETNULIST | Список возможных статей по фильтру
ACC_HOZOP_INSERT | Служебная
ACC_HOZOP_SWAP | Поменять бух.операции
ACC_NUOBOROT | Таблица оборотов по статьям НУ
ACC_OBOROTKORR | Таблица перекрестных оборотов
ACC_OPERNUM | Номер операции по порядку
ACC_PREPAREOST | Подготовка исходных остатков
ACC_PROVOD_INSERT | Служебная
ACC_PROVSUMFIRST | Сумма первой проводки операции
ACC_RAZD_NAME | Раздел баланса
ACC_STARTACCOUNT | Проверка счета
BLOBASCHAR | Преобразует BLOB в строку
CHECK_OST | Проверка остатков
CHECK_PROV | Проверка проводок
ERROR | Выдает сообщение об ошибке
IP$CHECKFOREIGN | Обработка пользовательской ссылочной целостности
IP$FIELDPARAMSBYNAME | Возвращает параметры поля журнала
IP$FILLNEWJOURNAL | Подключить выбранный журнал
IP$FORMSLIST_SWAP | Поменять бланки в списке
IP$GETALLTABLES | Список таблиц
IP$GETCHECKOPTIONS | Опции проверки базы данных
IP$GETNEWJOURNALS | Список неподключенных журналов
IP$GETPRIMARYKEY | Первичный ключ
IP$GETPRIMARYKEY_OLD | Первичный ключ (при импорте из ИП1)
IP$GETPROCPARAMS | Параметры журнала-процедуры
IP$IMPORTUSERCONTEXT | Импорт предпочтений и настроек пользователя
IP$PATHTOID | Код файла по имени
IP$PATHTOIDEX | Код файла по имени (служебная)
IP$REPORTSLIST_SWAP | Поменять отчеты в списке
IP$SELECTFROMRESERV | Зарезервированный номер документа
IP$SETS_SWAP | Поменять элементы множества
KILL | Убивает клиента без сохранения данных
SEND_MSG | Посылает сообщение клиенту


Возможные проблемы при обмене

Возможные проблемы при обмене с CMS «1С-Битрикс: Управление сайтом»

 Вернуться к началу раздела

Возможные проблемы при обмене с сайтом

При обмене с сайтом возможно появление различных ошибок и проблем, которые в первую очередь связаны с настройками самого сайта.

1.Проблема. Возникают сложности при загрузке заказов с сайта.
Решение. Попробуйте на сайте изменить параметры обмена заказами:

·Зайдите на сайт интернет-магазина под администратором и перейдите на закладку «Администрирование»;

·В административном меню выберите пункт «Магазин»;

·В появившемся меню функций выберите пункт «Настройки | Интеграция с 1С»;

·Откроется окно настроек интеграции с 1С. Перейдите на закладку «Заказы», измените на сайте следующие параметры обмена заказами:

oВ поле «Интервал одного шага в секундах» укажите значение 0.

oСнимите флажок напротив поля «Использовать сжатие zip, если доступно».

2.Проблема. Возникают сложности при экспорте данных на сайт.
Решение. Попробуйте на сайте изменить параметры импорта каталога:

·Зайдите на сайт интернет-магазина под администратором и перейдите на закладку «Администрирование»;

·В административном меню выберите пункт «Магазин»;

·В появившемся меню функций выберите пункт «Настройки | Интеграция с 1С»;

·Перейдите на закладку «Каталог», измените на сайте следующие параметры импорта каталога.

oВ поле «Интервал одного шага в секундах» укажите значение 0.

oСнимите флажок напротив поля «Использовать сжатие zip, если доступно».

3.Проблема. В процессе обмена появляется ошибка «Время на сервере базы данных отличается от времени на веб-сервере больше, чем на 10 минут».
Решение. Выполните следующие действия:

·Устанавите часовой пояс для php. Для этого в файл «/bitrix/php_interface/dbconn.php» добавьте строку:
date_default_timezone_set("Etc/GMT-3");
в данном случае Etc/GMT-3 часовой пояс Москвы, Вам необходимо указать свой часовой пояс.

·Устанавите часовой пояс для MySQL. Для этого в файл «/bitrix/php_interface/after_connect.php» добавьте строку:
$DB->Query("SET LOCAL time_zone='".date('P')."'");

·И в файл «/bitrix/php_interface/after_connect_d7.php» добавьте строку:
$connection->queryExecute('SET LOCAL time_zone="'.date('P').'"');

4.Проблема. При экспорте товаров на сайт появляется ошибка: «Ошибка записи в файл /import.xml». При этом сам файл может быть частично записан в каталоге на сайте.
Решение. Возможно, что недостаточно свободного места на хостинге сайта.

5.Проблема. При экспорте картинок на сайт возникает ошибка: «Ошибка импорта метаданных. Не введено название информационного блока».
Решение. Возможно, что сайт не смог обработать полученное изображение. Скорее всего, причина в формате изображения.


.topic 437
Введите текст темы здесь.
.topic 1721
Расширенный код счета объединяет в себе как собственно код счета в  плане счетов, так и аналитические признаки. Существует два способа указания расширенного кода счета:
С указанием объектов. Аналитика указывается в виде объектов ЖУРНАЛ за кодом счета после : (двоеточия). Например: "71":сотрудники.
В виде строки. В этом случае коды аналитик следуют за кодом счета, например: "71/3" (здесь 3 - код сотрудника).
См. подробнее	Код счета во внутреннем языке
.topic 1621
В программе всегда имеется хотя бы один пользователь. Это Администратор. Это специальный выделенный пользователь. Ему доступны все права и установить какие-либо ограничения на его права нельзя. Администратора нельзя удалить. Администратору и только ему можно настраивать список пользователей, их права доступа, главное и контекстное меню. Администратор — единственный пользователь, для которого допускается несколько подключений (т.е. под ним можно заходить в программу с нескольких рабочих мест одновременно).
См. подробнее	Разграничение доступа
.topic 1725
Аналитика счета (аналитический признак счета) определяется для каждого счета при настройке плана счетов. Она представляет собой специальный справочник. Если счет имеет аналитику, то при его указании в проводке необходимо указывать и код аналитики (код записи из справочника). Счет может иметь неограниченное кол-во аналитик. Если счет имеет субсчета, то все они наследуют аналитику счета верхнего уровня, но могут иметь и свои аналитические признаки. Аналитики могут настраиваться пользователем произвольно.
См. также
Аналитический учет
.topic 814
<жирный шрифт>
параметр логического типа, позволяющий выводить текст полужирным шрифтом. Этот параметр может следовать сразу за выводимым выражением, пропуская длину и высоту/точность или за длиной, пропуская высоту/точность.

Примеры:
ВЫВЕСТИ(2,1,3,ДА)	// Вывод числа жирным шрифтом
ВЫВЕСТИ(2,2,3,255,2,ДА)	// Вывод числа заданной точностью жирным
    // шрифтом
ВЫВЕСТИ(2,3,3,20,2,ДА)	// Вывод числа заданной точностью и длиной
    // жирным шрифтом
ВЫВЕСТИ(2,4,"В высоту",1,8,ДА)	// Вывод строки жирным шрифтом с высотой
ВЫВЕСТИ(2,5,ДАТА_НАЧ,НЕТ)	// Вывод даты обычным шрифтом
.topic 74
Введите текст темы здесь.
.topic 1152
Количество знаков после запятой может задаваться в виде числа от 0 до 6.

При выборе типа любое точность не будет регулироваться. При вводе  программа разрешит ввести любое кол-во символов и не будет округлять число. При выводе будут выведены все ненулевые разряды.

При выборе типа сумма, кол-во, цена или валюта число знаков после запятой будет определяться исходя из  настроек в «Настройка | Форматы».
.topic 206
Конфигурация — программа, написанная на внутреннем языке платформы Инфо-Предприятие с использованием встроенных средств разработки, реализующая какую-либо бизнес-логику, решающая какие-либо учетные задачи. Структура базы данных (журналы аналитики) также является частью конфигурации. Конкретная конфигурация вместе с самой платформой Инфо-Предприятие продается как единый продукт. Конфигурация может состоять из множества модулей.
Модуль — часть какой-либо конфигурации или отдельный дополнительный продукт (расширение, плагин). Дополнительные модули могут устанавливаться пользователем самостоятельно.
.topic 1315
Некоторые проведенные в бухгалтерии документы отражаются в бухгалтерском журнала в виде операций. При этом между документом и сформированными по нему проводками поддерживается связь. Она используется для контроля соответствия данных документа и бухгалтерских проводок.
При работе в журнале, записи которого связаны с проводками, можно увидеть в колонке справа значок . Это значит, что документ проведен в бухгалтерии. Щелкнув по нему левой кнопкой мыши или нажав комбинацию клавиш <Ctrl>+<Enter> можно увидеть связанную бухгалтерскую операцию (см. заполнение журнала аналитики). Щелкнув по нему правой кнопкой мыши или нажав комбинацию клавиш <Ctrl>+<Menu> можно открыть контекстное меню связи с дополнительными функциями:
Перепровести (может не быть) — формирует проводки заново;
Удалить (может не быть) — удаляет связанную бухгалтерскую операцию;
Перейти в журнал — открывает журнал бухгалтерских операций, курсор будет на этой операции;
В журнале бухгалтерских операций у операций, полученных в результате проведения документа, отображается кнопка . Ее нажатие (с помощью мыши или с помощью комбинации клавиш <Ctrl>+<Menu> или <Ctrl>+<Enter>) выводит меню, в котором можно просмотреть, отредактировать и напечатать документ. Если в правах доступа не включена опция открыть доступ к бухоперации, то некоторые данные операции, связанной с документом нельзя изменять.
При изменении документа, проводки автоматически пересчитываются, однако дата операции, ее название, документ, а также все те проводки, которые были добавлены в операцию позже, останутся без изменений.

Параметры связи настраиваются опцией Проводкить документ в настройках журналов в меню «Установка | Настройки».

См.также
Типы документов

.topic 49
Введите текст темы здесь.
.topic 514
Введите текст темы здесь.
.topic 735
Введите текст темы здесь.
.topic 2208
Кодировка может задаваться следующими константами:
WIN	— стандартная кодировка операционной системы Windows для русских букв (кодовая страница 1251)
DOS	— кодировка операционной системы MSDOS для русских букв (кодовая страница 866)
UTF8	— кодировка UTF-8
UTF16	— кодировка UTF-16LE
MIME	— кодировка BASE64

.topic 515
Фильтром по умолчанию является фильтр, диалог редактирования которого вызывается из редактора журнала. При этом в редакторе журнала появляются только записи, удовлетворяющие условию этого фильтра. Журнал при этом считается отфильтрованным, о чем говорит надпись Отфильтровано в строка статуса редактируемого журнала.
.topic 2331
Для более полного отображения информации в отчетах возможно включение дополнительных колонок. Чтобы вывести их на экран надо нажать на кнопку в левом верхнем углу таблицы .
Дополнительные колонки могут выводиться из разных справочников. Тогда при нажатии окна выбора дополнительных колонок вверху будет выбор справочника, а внизу список соответствующих ему колонок
В некоторых бухгалтерских отчетах кнопка показывается не сразу, а только при входе внутрь счета с аналитикой.
Возможности отображения дополнительных колонок отключаются, если в параметрах отчета включен флажок «Вертикальная форма».
.topic 73
Введите текст темы здесь.
.topic 1742
Этот диалог позволяет войти в программу. Выберите себя из списка. Это можно сделать как с помощью мыши, так и с помощью клавиш управления курсором ??и ??.
Если для входа под Вашим именем требуется пароль, то введите его в графе Пароль. Не забудьте учесть раскладку клавиатуры! Строчные и прописные буквы различаются !
После этого можно нажать кнопку OK или клавишу Enter для входа в программу. Вы можете сделать это и двойным щелчком мыши по пользователю в списке.
Нажатие Отмена приведет к отказу от подключения к этой базе данных и завершению работы программы.
.topic 518
Журнал бухгалтерских операций
Настройка определений
Настройка реквизитов
Редактор бланков
Статьи налогового учета
.topic 519
Список выбора содержит две колонки: код и название. Список может быть отсортирован либо по коду, либо по названию. Чтобы отсортировать список, нажмите правую кнопку мыши на списке и в контекстном меню выберите вариант: Сортировка по коду или Сортировка по названию.

Открыть список можно с помощью клавиши F4 или F2. Перейти к необходимому элементу можно нажав первую букву слова.
.topic 763
Введите текст темы здесь.
.topic 523
Фильтр журнала бухгалтерских операций
Фильтр журнала аналитики
.topic 1908
Внутри различных диалоговых функций может использоваться выделение жирным части текста. Для этого требуемый текст выделяется символами "<" (меньше) и ">" (больше). Например, чтобы этот текст был выделен жирным, надо написать:
"...чтобы <этот текст> был выделен <жирным>..."
Если в диалоговых функциях надо вывести указанные выше символы без особого смысла, перед ними указывается символ "\". Например, чтобы вывести текст "<->" в диалоговую функцию надо передать строку:
"\<-\>"
.topic 629
Раздел бланка или отчета - это группа, в которую входит бланк или отчет. Разделы используются для объединения схожих по смыслу бланков и отчетов для удобства их заполнения. Например, может существовать раздел Банк, в который входят различные бланки: Платежное поручение, Платежное требование и т.д. Раздел Системные виден только разработчику бланков.
.topic 55
Введите текст темы здесь.
.topic 525
Сетка бланка - определяется в параметрах каждого бланка и задается в сотых долях миллиметра. Все элементы бланка строго привязываются к заданной сетке. Более мелкая сетка позволяет рисовать бланки, лучше приближенные к оригиналу, однако такой бланк становится менее удобным для редактирования. По умолчанию сетка имеет размер 20/9 мм x 5 мм. Этого достаточно для всех существующих на данный момент бланков и удобно при редактировании. При печати бланка размер элемента умножается на масштаб, который задается в параметрах печати.
.topic 529
Линейка отображает размеры элементов бланка. Все размеры отображаются в миллиметрах. Здесь также показываются риски, соответствующие ячейкам сетки бланка. После выбора объекта в бланке, в зависимости от стратегии объединения объектов, программа покажет метками  координаты объединенных объектов. При перемещении меток изменяются размеры объединенных объектов.
.topic 632
Стратегия объединения объектов - определяет способ, по которому программа объединяет объекты для изменения размеров с помощью линейки. Текущая выбранная стратегия показывается в левом верхнем углу линейки в редакторе бланков:
Р — объединяются все прилегающие друг к другу рамки
О — объединяются все прилегающие друг к другу объекты
В — используются все объекты бланка
Изменить стратегию можно щелчком мыши по надписи или нажав клавишу <Ctrl>+<Shift>+<S>.
Если в редакторе выделен фрагмент, стратегия не используется. Вместо этого программа объединяет все выделенные объекты.
.topic 1174
Введите текст темы здесь.
.topic 530
Масштаб редактора определяет масштаб, в котором бланк будет отображаться в редакторе и при заполнении. Масштаб никак не влияет на отображение бланка при его заполнении и печати.
.topic 531
Ввод/вывод информации
Редактор бланков
Редактор отчетов
Работа с датой и временем
Математические функции
Работа со строками
Преобразование данных
Бухгалтерские проводки, исходные остатки
Обороты и остатки
План счетов и аналитики
Статьи учета, корректные проводки
Журналы аналитики
Работа с файлами XML и DBF
Работа с файлами
Прочие функции
.topic 306
Введите текст темы здесь.
.topic 286
Введите текст темы здесь.
.topic 1869
Введите текст темы здесь.
.topic 988
Введите текст темы здесь.
.topic 1789
Введите текст темы здесь.
.topic 641
Введите текст темы здесь.
.topic 565
Журнал бухгалтерских операций
Настройка журналов
Настройка определений
Настройка реквизитов
Редактор бланков
Статьи налогового учета
.topic 566
Запуск бланка, операции или отчета
Обновить содержимое
.topic 567
Интерфейс используется для размещения в рамках одной базы данных нескольких настроек(разработок на внутреннем языке). Интерфейс состоит из настройки главного меню и версии лицензии электронного ключа. В базе данных может быть несколько интерфейсов. Интерфейс указывается у каждого пользователя программы. Если версия электронного ключа не позволяет работать с этим интерфейсом, соответствующий пользователь не сможет работать с программой — она переключится в режим демо-версии.
См.подробнее
Параметры интерфейса
Редактирование главного меню
.topic 815
<наклонный шрифт> - параметр логического типа, позволяющий выводить текст наклонным шрифтом. Этот параметр должен следовать только после параметра <жирный шрифт>, иначе транслятор посчитает его за параметр <жирный шрифт>.

Примеры:
ВЫВЕСТИ(2,1,3,НЕТ,ДА)	// Вывод числа обычным наклонным шрифтом
ВЫВЕСТИ(2,2,3,255,2,ДА,ДА)	// Вывод числа заданной точностью жирным
    // наклонным шрифтом
ВЫВЕСТИ(2,3,3,20,2,НЕТ,ДА)	// Вывод числа заданной точностью и длиной
    // обычным наклонным шрифтом
ВЫВЕСТИ(2,4,"В высоту",1,8,ДА)	// Вывод строки жирным шрифтом с высотой
ВЫВЕСТИ(2,5,23:45:55,ДА,НЕТ)	// Вывод времени жирным ненаклонным шрифтом
.topic 918
Идентификатор журнала определяется при редактировании структуры журнала. Идентификатор однозначно определяет журнал.
См.подробнее
Журналы аналитики
.topic 919
Условия сортировки. Определяет порядок, в котором пробегаются записи в цикле журнала. Задается перечислением полей используемых журналов, результатов вычисления выражений или агрегатных функций, произвольным выражением или вызовом агрегатной функции

См. подробнее
Сортировка записей
.topic 924
Выражения в цикле
    Функции сервера
    Подзапросы
    Фильтры
    Оператор ":"
Журналы-процедуры в цикле
Условия связи
    Тип связки
Модификаторы выборки
Сортировка записей
Особенности работы со счетами и статьями
Связь бухгалтерских операций и документов
Загрузка и сохранение полей записи в полях объекта
Объект КУРСОР
План запроса

Примеры: выборка из одного журнала
Примеры: выбор выражений
Примеры: выборка из двух связанных журналов
Примеры: вычисление агрегатных функций
Примеры: использование фильтров в условии
Функция ВЫРАЖЕНИЕ в условии запроса
.topic 981
Для совместимости с Инфо-Предприятием версий 1.x, оставлена возможность указывать один или несколько объектов ФИЛЬТР, соответствующих журналам, участвующим в цикле. Запись
ЦИКЛ ПО ... (<условие на поля журналов>, ф1, ф2,...ф3)
где ф1, ф2,...ф3 - объекты ФИЛЬТР полностью эквивалентна записи:
ЦИКЛ ПО ... ((<условие на поля журналов>) И ф1 И ф2 И ф3)

См.подробнее
Использование фильтров в условии
.topic 895
Условие на поля журналов задается выражением цикла логического типа. Оно может cодержать помимо идентификаторов, доступных обычным выражениям, поля выбираемых журналов, функции сервера, подзапросы, ключевые слова СУЩ, ЕДИНСТВЕННО, "ИЗ", фильтры и специальную функцию ВЫРАЖЕНИЕ. Условие может не указываться.

См.подробнее
Выражения цикла
.topic 893
СУММА - сумма по записям
МИНМ — минимум выражения
МАКС — максимум выражения
СРЕДНЕЕ — среднее выражения
СПИСОК — конкатенация значений
ВСЕГО — кол-во записей
Статистические функции
Функции линейной регрессии
.topic 897
При использовании агрегатной функции или выражения простая переменная того же типа, какой тип результата у соответствующей функции или выражения. В эту переменную загружается результат вычисления функции перед каждой итерацией цикла.
При выборке записи журнала переменная типа ЖУРНАЛ построенная по соответствующему идентификатору. В нее загружается запись соответствующего журнала перед каждой итерацией цикла.
.topic 896
Переменная-итератор является переменной типа ЖУРНАЛ, построенная по соответствующему идентификатору журнала. В нее загружаются считанные в процессе прохода цикла записи этого журнала. Может опускаться. Если переменная-итератор присутствует, то такой журнал входит "с буквой" и к его записям можно получить доступ через эту переменную. Если переменной-итератора нет, то журнал входит "без буквы", к его записям получить доступ нельзя, зато можно посчитать какую-либо функцию по записям этого журнала.
.topic 751
Программа сама добавляет условия ссылок при выборке из нескольких журналов. Это значит, что если выборка идет из двух журналов, один из которых имеет поле с подстановкой значения из другого, программа автоматически добавит условие на связь этих полей.
Установка ! (восклицательного знака) отключает добавление условий ссылок между журналами.
См. подробнее
Условия связи
.topic 757
Ключевое слово УНИК указывает на то, что программа должна выбирать только уникальные записи. В этом режиме наборы выбираемых полей не будут повторяться.
См. подробнее
Выборка уникальных записей
.topic 2394
Выражение <x> РАВНО <y> равносильно выражению:

(<x> = <y>) ИЛИ ( (<x> = ПУСТО) И (<y> = ПУСТО) )

Выражение <x> НЕ РАВНО <y> равносильно выражению:

НЕ ( (<x> = <y>) ИЛИ ( (<x> = ПУСТО) И (<y> = ПУСТО) ) )

.topic 768
Выражения в цикле аналогичны обычным выражениям внутреннего языка. Единственное их отличие в том, что они выполняются не на рабочей станции, а на сервере. Тем самым достигается высокое быстродействие расчетов.
См.подробнее
Выражения в цикле
.topic 982
По умолчанию, при включенной опции Действие не отчеты в фильтрах журналов, цикл работает только с отфильтрованными записями журналов.
Необязательный параметр <игнорировать фильтр> логического типа помогает изменить эту ситуацию. Если его значение истинно, то цикл выбирает все записи из журнала, вне зависимости от того, отфильтрован журнал и включена опция Действие на отчеты, или нет.
Также, при включении этой опции цикл проходит по выключенным пользователем записям.
.topic 574
Когда условия связи отсутствуют, программа добавляет их автоматически. В некоторых редких случаях, возможно, потребуется указание своего условия связи, указав его после итерационной переменной (или после идентификатора журнала, если итерационной переменной нет), выделив символом "|" (вертикальной чертой). Условие связи аналогично обычному условию цикла.
См.подробнее
Условия связи
.topic 575
Существует несколько типов связок. Тип связки влияет на то, как будут присоединяться журналы, например при автоматической установке связей. При последовательном перечислении журналов они отделяются друг от друга следующими специальными символами, которые определяют условия связи:
"," (запятая)	— Выбираются пары записей журналов, удовлетворяющие условию связи
<<	— Выбираются пары записей журналов, удовлетворяющие условию связи и
         записи журнала слева, не ссылающиеся ни на какие записи журнала справа
>>	— Выбираются пары записей журналов, удовлетворяющие условию связи и
    — записи журнала справа, не ссылающиеся ни на какие записи журнала слева
См.подробнее
Тип связки
.topic 2396
Ключевое слово ВЛОЖ используется для отключения вывода предупреждения:
Вложенный цикл может стать причиной низкого быстродействия
.topic 577
Можно задавать план запроса. План определяет стратегию выполнения запроса сервером. План влияет на скорость выполнения цикла.
См.подробнее
План запроса
.topic 758
Существуют следующие модификаторы выборки полей журнала:
!	- Отключает оптимизацию выборки полей.
[<список полей>]	- Говорит о необходимости выбирать только указанные поля.
      При проходе цикла только указанные поля будут записаны
      в итерационную переменную.
[*]	- Включает оптимизацию при использовании агрегатных функций,
      которая при использовании агрегатных функций отключается.

См. подробнее
Модификаторы выборки
.topic 578
<идентификатор журнала>[<модификатор выборки>]
<выражение>
<агрегатная функция>
.topic 2397
<х> ПОДОБНО <y> — сравнение <х> по регулярному выражению SQL <y>.
.topic 2258
Ключевое слово ПРОПУСК указывает на то, что надо пропустить часть записей, попадающих под условие. Количество записей указывается после ключевого слова.
См. подробнее
Пропуск записей
.topic 1939
Ключевое слово ВИДИМЫЕ используется для прохода только тех записей, которые попадают под условия ограничения прав доступа.
См. подробнее
Учет прав доступа
.topic 581
Клавиша или комбинация клавиш задается в виде строки, состоящей из названия клавиши и следующих префиксов:
CTRL+	клавиша Ctrl
SHIFT+	клавиша Shift
ALT+	клавиша Alt
В случае нескольких префиксов, они должны идти в указанном порядке. Буквы указываются английские, заглавные, а вместо спецсимволов - цифры.

Примеры:
G
CTRL+G
CTRL+SHIFT+ALT+F1
ALT+A	(ALT+Ф - неправильно)
SHIFT+1	(SHIFT+! - неправильно)
SHIFT+PAGE DOWN

Замечание. Посмотреть буквенные обозначения комбинаций клавиш можно в графе указания клавиши при настройке главного или контекстного меню.
.topic 985
Введите текст темы здесь.
.topic 123
Введите текст темы здесь.
.topic 810
<номер строки> - определяет номер строки, начиная с первой строки документа

Примеры:
ВЫВЕСТИ(2,1,ДА)	// Обыкновенный вывод логического выражения
ВЫВЕСТИ(2,2,ВРЕМЯ_ТЕК)	// Обыкновенный вывод времени
ВЫВЕСТИ(2,3,ДАТА_ТЕК)	// Обыкновенный вывод даты
.topic 813
<длина дроб. части/количество строк> - параметр, определяющий количество знаков после запятой для числовых значений или количество строк отводимых для вывода строкового значения. Для других типов этот параметр игнорируется и его можно опускать. Программа ожидает, что этот параметр следует за длиной поля и если надо вывести, скажем число с заданной точностью, но без ограничений на вывод, то тогда надо указать длину 255.

Примеры:
ВЫВЕСТИ(2,1,3,20,2)	// Вывод числа заданной точностью,
    // ограниченный длиной
ВЫВЕСТИ(2,2,3,255,2)	// Вывод числа заданной точностью
ВЫВЕСТИ(2,3,"В высоту",1,8)	// Вывод строки ввысоту - длина вывода равна 1
    // а высота вывода - длине строки
.topic 775
База данных DBF
Веб-сервер
Диаграмма
Журнал
Курсор
Объект
Секция
Файл
Фильтр
Шрифт
SQL

Об объектах
.topic 583
Введите текст темы здесь.
.topic 1923
Лукап-поле. Если журнал содержит хотя бы одно поле журнала, то он может содержать одно или несколько лукап-полей. Лукап-поля отображают значения других (не ключевых) полей записи, на которую ссылается существующее в структуре поле журнала. Лукап-поля доступны только на чтение.

Пример.
Пусть журнал накладные имеет поле код_клиента, в которое заносится код клиента при выписке накладной. Тогда журнал накладные может иметь одно или несколько лукап-полей, содержащих реквизиты клиента: наименование, адрес и т.д. Такие поля не хранятся в базе данных, а вычисляются "на ходу" по принципу - берем из накладной код клиента, ищем его и отображаем его реквизит: наименование, адрес и т.д.

Лукап-поля можно добавлять при редактировании структуры журнала.

Лукап-поля являются частным случаем калькулируемых, вычислимых (COMPUTED BY) полей. В общем случае такие поля создаются и редактируются внешними программами при разработке серверной части прикладной настройки.
.topic 652
Фильтр журнала бухгалтерских операций
Фильтр журналов аналитики
.topic 589
Введите текст темы здесь.
.topic 591
Единицы налогового учета - те объекты налогового учета, информация о которых используется более одного отчетного (налогового) периода.
.topic 592
Объекты налогового учета - имущество, обязательства и хозяйственные операции организации, стоимостная оценка которых определяет размер налоговой базы текущего отчетного налогового периода или налоговой базы последующих периодов.
.topic 594
Регистры налогового учета - совокупность показателей (сводные формы), применяемых для систематизации данных налогового учета за отчетный (налоговый) период, сгруппированных в соответствии с требованиями 25-ой главы НК РФ, без распределения (отражения) по счетам бухгалтерского учета.
.topic 818
<название шрифта> - Строковое выражение, определяющее название шрифта. Если шрифт с указанным названием не найден, программа подберет максимально похожий шрифт. При задании пустой строки устанавливается название шрифта по умолчанию, совпадающее с названием основного шрифта. Параметр <название шрифта> может следовать только за параметром <размер шрифта> или за параметрами <жирный шрифт>, <наклонный шрифт> или <подчеркнутый шрифт> в любой их комбинации. Если надо вывести текст другим шрифтом, но с размером по умолчанию, задавайте размер, равный 255.

Примеры:
ВЫВЕСТИ(2,1,3,НЕТ,11,"Courier New")	// Вывод числа 11-ым шрифтом Courier New
ВЫВЕСТИ(2,2,3,20,2,ДА,"Times New Roman")	// Вывод числа заданной точностью и длиной
    // жирным шрифтом Times New Roman
ВЫВЕСТИ(2,3,"Строка вывода",13,1,7,"Arial")	// Вывод строки 7-ым шрифтом Arial в одну строку
ВЫВЕСТИ(2,3,ОБК,НЕТ,"Arial")	// Вывод числа шрифтом Arial
ВЫВЕСТИ(2,3,ОБК,255,2,НЕТ,"Arial")	// То же с указанием точности
ВЫВЕСТИ(2,3,ОБК,20,2,НЕТ,"Arial")	// То же с указанием точности и длины
ВЫВЕСТИ(2,3,"Строка",НЕТ,"Arial")	// Вывод строки шрифтом Arial
ВЫВЕСТИ(2,4,"В высоту",1,8,ДА,"Arial")	// Вывод строки жирным шрифтом Arial с высотой
ВЫВЕСТИ(2,5,ДА,ДА,ДА,ДА,11,"Arial")	// Вывод логической константы жирным наклонным
    // 11-ым шрифтом Arial c подчеркиванием
.topic 604
Введите текст темы здесь.
.topic 1541
Статьи налогового учета могут быть:
Доходами - определяют операцию, которая увеличивает налоговую базу на сумму в налоговой проводке.
Расходами - определяют операцию, которая уменьшает налоговую базу на сумму в налоговой проводке.
Не быть ни расходами, ни доходами - используются в промежуточной работе для того, чтобы пометить проводки. Например, если в данный момент неизвестно, к какой статье учета относится операция, она может быть помечена, а статья может быть задана позже.
.topic 606
Введите текст темы здесь.
.topic 1958
Параметр используется только при подключении внешних компонент 1С. Возможные значения:
АВТО
значение по умолчанию, будет использоваться тот интерфейс, который реализует компонента.
Если она реализует два и более интерфейса, то программа выберет интерфейс в порядке приоритета:
1) NativeApi
2) ILanguageExtender
3) IDispatch
IDispatch
будет использоваться интерфейс IDispatch (OLE-Automation)
ILanguageExtender
будет использоваться интерфейс ILanguageExtender (расширение языка 1С)
NativeApi
будет использоваться интерфейс NativeApi (расширение языка 1С)

См.подробнее	Особенности подключения внешних компонент
.topic 800
<поворот> - число, задающие поворот выводимой строки. Он задается в градусах и определяет поворот строки относительно стандартного направления вывода против часовой стрелки. Поворот может иметь значения: 0, 90, 180, 270. При передачи отличного от них значения, поворот округляется.

Примеры:
ВЫВЕСТИ(2,4,"Строка",2,10,Основной,"ЦС",90)
    // Текст будет выведен снизу вверх, с поворотом на 90
ВЫВЕСТИ(2,5,"Строка",10,2,Основной,"РУ",180)
    // Текст будет выведен вверх тормашками
.topic 146
Введите текст темы здесь.
.topic 1773
<автовысота> - если параметр истинен, то высота графы будет рассчитываться автоматически после расчета бланка таким образом, чтобы выводной текст полностью уместился. Высота графы может, как увеличится, так и уменьшится. При изменении высоты автоматически изменится высота всех элементов бланка, находящихся на одной линии с этой графой и подвинутся все элементы, находящиеся за ней. Если в строке расположены несколько граф с указанным атрибутом, размер будет подсчитан как максимум размеров всех этих граф.
Параметр <автовысота> должен следовать после указания параметра <поворот>

Примеры:
ВЫВЕСТИ(2,4,"Строка", 1, Основной,"",0,ДА)
    // Текст будет выведен шириной в одну ячейку, а высотой -
    // как уместится
.topic 811
<выводимое выражение> - определяет выражение, значение которого будет выводиться на экран.

Примеры:
ВЫВЕСТИ(2,1,12+4)	// Вывод числа
ВЫВЕСТИ(2,2,СТР(ДАТА_ТЕК))// Вывод строки
ВЫВЕСТИ(2,3,ДАТА_ТЕК)	// Вывод даты
ВЫВЕСТИ(2,4,ДА)		// Вывод логической константы
ВЫВЕСТИ(2,5,ВРЕМЯ_ТЕК)	// Вывод времени
.topic 812
<длина поля> - определяет количество знакомест, отводимых для вывода значения;
Если определено выравнивание, то выводимая информация выравнивается внутри отведенного пространства.

Примеры:
ВЫВЕСТИ(2,1,3,20)	// Вывод числа, ограниченный
    // длиной
ВЫВЕСТИ(2,2,СТР(ДАТА_ТЕК),20)// Вывод строки, ограниченный длиной
.topic 1882
При необходимости добавить условие на отображение опции, добавляемой такими функциями как ВОПРОС!, ВВЕСТИ_ЗНАЧЕНИЕ!, ВЫБОР_ЗАПИСИ! и др., в диалоге параметров бланка или отчета, условие указывается в квадратных скобках после восклицательного знака, например:
ВОПРОС![ВКЛ_ДОГОВОРА]("Сгруппировать по договорам")
В условии можно использовать только арифметические действия, определения, реквизиты и встроенные функции.
.topic 809
<позиция в строке> - определяет позицию в строке, с какой будет выведено значение

Примеры:
ВЫВЕСТИ(2,1,4)	// Обыкновенный вывод числа
ВЫВЕСТИ(2,2,"Строка")// Обыкновенный вывод строки
.topic 1196
Подбирает масштаб документа, так, чтобы он оптимально располагался на экране. Работает только для бланков документов.
Хорошая кнопка. Разом избавляет от настройки печати для бланков. После изменения масштаба рекомендуется сохранить настройки печати.
Клавиша Ctrl+О.
.topic 1192
Завершает работу в предварительном просмотре и возвращается в документ.
Клавиша Escape.
.topic 1194
Включает/выключает линейку.
.topic 1187
Кнопки, переключающие режимы работы мыши в предварительном просмотре.
Если активен режим перемещения, то при наведении на документ курсор мыши примет вид руки. Теперь, если нажать левую кнопку и начать двигать мышь, страница будет перемещаться вместе с указателем. Этот режим удобен для просмотра в большом масштабе.
Если активен режим увеличения, то при наведении на документ курсор мыши примет вид лупы. При нажатии левой кнопки будет увеличиваться, либо уменьшаться масштаб.
.topic 1188
Навигационные кнопки, с помощью которых можно
перелистывать страницы:
в начало документа ( или клавиша Home ),
на одну страницу назад ( или клавиша PgUp ),
на одну страницу вперед ( или клавиша PgDn ),
в конец документа ( или клавиша End )
.topic 1189
Выводит на печать весь документ.
Клавиша F3.
.topic 1190
Выводит на печать текущую страницу документа.
Клавиша Shift+F3.
.topic 1195
Сохраняет настройки печати в документе. Опция доступна только в бланках документов.
После нажатия все параметры печати записываются в файл бланка, и в следующий раз будут использоваться по умолчанию при печати. Следовательно, достаточно один раз настроить печать документа и сохранить эти настройки.
Клавиша Ctrl+C.
.topic 1193
Если щелкнуть клавишей мыши по полю этого значения, то появится список масштабов, из которого можно выбрать необходимый масштаб отображения документа на экране монитора. Значение масштаба задается в процентах от нормального размера документа. Значение 100 соответствует нормальному размеру. Выбирая большее значение масштаба, можно увеличить документ. Если страница документа целиком не помещается на экране, то для ее просмотра следует использовать линейки прокрутки. Значение Авто гарантирует, что документ целиком уместится на экране. Значение По ширине гарантирует, что документ по ширине уместится на экране. Также, увеличить масштаб можно, если нажать на левую кнопку мыши, когда ее указатель имеет вид лупы с "+" внутри. Аналогично, уменьшить, когда содержит "-".
Масштаб, устанавливаемый при отображении на экране, не влияет на масштаб документа, выводимого на печать.
Управляется с клавиатуры при помощи цифровых + и -.
.topic 1191
Выводит диалог настройки печати, где можно установить параметры страницы (отступы, поля, ориентацию), масштаб выводимой на печать информации, колонтитулы и т.д.
Клавиша F4.
.topic 1353
По разделу баланса счета делятся на:
Активные - при расчетах формируется дебетовый остаток. Отрицательный остаток воспринимается как ошибка.
Пассивные - при расчетах формируется кредитовый остаток. Отрицательный остаток воспринимается как ошибка.
Активно-пассивные - при расчетах остаток может быть отнесен либо на дебет, либо на кредит. Если активно-пассивный счет имеет субсчета, то по нему может быть сформировано развернутое сальдо (ненулевой остаток одновременно и по дебету, и по кредиту). Это происходит, когда по одним субсчетам имеется дебетовый, а по другим - кредитовый остаток.
Забалансовые - аналогичны активно-пассивным, но остатки и обороты забалансовых счетов не входят в валюту оборотной ведомости, если в ее параметрах не установлена опция Показывать забалансовые счета.
.topic 611
Сальдо колонки или строки - это сумма всех ее (числовых) ячеек. При каждом вызове ИТОГО и ИТОГОВ (без шаблона) сальдо используется для вывода итогов. После вывода итогов, сальдо просуммированных колонок/строк сбрасывается (становится равным нулю).
.topic 1633
Секция в отчетах - это группа ячеек, которые будут отображаться вместе. Номер секции влияет на сортировку колонок или строк в отчете.
.topic 1307
Шаблоны (маски) позволяют определить группу схожих по написанию строк. Как правило, шаблоны содержат символ * (звездочка), обозначающий внутри строки, что на его месте может быть любой символ или группа символов. Шаблон может также содержать ; ( точку с запятой ), обозначающий перечисление вариантов. В шаблоне может быть как несколько звездочек, так и несколько точек с запятой. Примеры:
60/*;62/*	означает все субсчета 60 и 62 счета,
    например 60/01, 62/01, 62/01/ЖБИ
*Иванов*	предложение содержит слово Иванов,
    например "Взыскать с Иванова за ..."
.topic 817
<размер шрифта> - число в диапазоне от 1 до 255 определяющее размер шрифта. Значение 255 задает размер по умолчанию, равный размеру основног шрифта. Параметр <размер шрифта> может следовать либо за параметрами <жирный шрифт>, <наклонный шрифт> или <подчеркнутый шрифт>, в любой их комбинации, либо за параметром <длина дроб. части/количество строк>.

Примеры:
ВЫВЕСТИ(2,1,3,НЕТ,11)	// Вывод числа 11-ым шрифтом
ВЫВЕСТИ(2,2,3,20,2,ДА,НЕТ,ДА,7)	// Вывод числа заданной 					точностью и длиной
            // жирным 7-ым шрифтом с 				подчеркиванием
ВЫВЕСТИ(2,3,"Строка вывода",13,1,7)	// Вывод строки 7-ым   					шрифтом в одну строку
ВЫВЕСТИ(2,3,ОБК,255,2,7)	// Вывод числа 7-ым шрифтом 				заданной точностью
ВЫВЕСТИ(2,3,ОБК,20,2,7)	// Вывод числа 7-ым шрифтом 				заданной точностью
            // и длиной
ВЫВЕСТИ(2,4,"В высоту",1,8,ДА,11)	// Вывод строки жирным 					шрифтом с высотой
ВЫВЕСТИ(2,5,ДА,ДА,ДА,ДА,11)	// Вывод логической  					константы жирным наклонным
            // 11-ым шрифтом c 					подчеркиванием
.topic 623
Введите текст темы здесь.
.topic 1215
Введите текст темы здесь.
.topic 1538
Вид журнала определяет список отображаемых полей и их порядок. Журнал может иметь несколько видов и использовать их попеременно или совместно. Вид журнала влияет как на вид таблицы, так и на вид диалога редактирования записи журнала. С помощью видов можно отображать в нескольких окнах один и тот же журнал, но с разными видами. Или делать один вид для отображения таблицы, а другой для отображения диалога.
Виды журнала задаются в функциях журнала при настройке порядка и видимости полей.
Вид журнала определяется строкой - названием вида. При указании вида во внутреннем языке он всегда задается при помощи строковой константы и не может быть переменным.
За видом журнала может быть закреплена не только настройка видимости полей и их порядок, но и их название, доступность, видимость дополнительной таблицы детализации. Все это доступно при использовании обработчика вид журнала.
См.подробнее	Работа с видами
.topic 974
Подзапросы позволяют в любой момент обратиться к содержимому других таблиц для получения необходимой информации. Они имеют следующий синтаксис:
ВЫБРАТЬ <выражение> | <агрегатная функция> [(<условие на поля журналов>)]
См.подробнее	Подзапросы
.topic 626
Введите текст темы здесь.
.topic 1357
Для любой проводки по счету определяется средняя цена, которая равна суммовому остатку счета,деленному на количественный остаток на время проводки. В диалоге редактирования проводки Вы сможете воспользоваться кнопкой Цена для получения средней цены. Средняя цена указывается вместе с остатком счета во встроенных бухгалтерских отчетах.
.topic 816
<подчеркнутый шрифт> - параметр логического типа, позволяющий выводить подчеркнутый текст. Этот параметр должен следовать только после параметров <жирный шрифт> и <наклонный шрифт>, иначе транслятор посчитает параметр <подчеркнутый шрифт> как один из них.

Примеры:
ВЫВЕСТИ(2,1,3,НЕТ,НЕТ,ДА)	// Вывод числа обычным шрифтом с подчеркиванием
ВЫВЕСТИ(2,2,3,255,2,ДА,НЕТ,ДА)	// Вывод числа заданной точностью жирным
    // шрифтом с подчеркиванием
ВЫВЕСТИ(2,3,3,20,2,НЕТ,ДА,ДА)	// Вывод числа заданной точностью и длиной
    // обычным наклонным шрифтом с подчеркиванием
ВЫВЕСТИ(2,4,"В высоту",1,8,ДА,НЕТ,НЕТ)// Вывод строки жирным шрифтом с высотой
ВЫВЕСТИ(2,5,ДА,ДА,ДА,ДА)	// Вывод логической константы жирным наклонным
    // шрифтом c подчеркиванием
.topic 820
<выравнивание> - строковое выражение, определяющее тип выравнивания. Выравнивание имеет смысл при задании таких параметров как <длина поля> или <количество строк>. Тогда в пределах этих параметров определяется выравнивание выводимого текста. Параметр выравнивания может следовать только за шрифтом.

Примеры:
ВЫВЕСТИ(2,4,"Строка",10,2,Основной,"ЦС")
    // Вывод строки в центр прямоугольника 10x2
    // основным шрифтом бланка
ВЫВЕСТИ(2,5,"Строка",10,2,Основной,"РУ")	// Равномерно распределяет текст строки
    // внутри прямоугольника 10x2
.topic 1354
Аналитики могут иметь следующие виды учета:
Суммовой учет — для таких аналитик проводки формируются в суммовом выражении. Отчеты по таким аналитикам можно получить только в суммовом виде.
Количественно-суммовой учет — для таких аналитик проводки формируются с ценой, количеством и единицами измерения, которые устанавливаются в объекте аналитики (записи справочника). Сумма проводки рассчитывается в соответствии с ценой и количеством. Отчетные документы можно получать как в количественно-суммовом, так и в суммовом виде.
Дополнительный учет — для таких аналитик в проводках может быть указан дополнительный числовой показатель. Дополнительный учет может использоваться совместно с количественно-суммовым учетом.
Вид учета задается в диалоге настройки аналитики.


Главная книга по аналитике

С помощью главной книги по аналитике Вы сможете увидеть обороты выбранного объекта аналитики за отчетный период с заданной детализацией. Также она позволяет разворачивать обороты по корреспондирующим счетам и выводить остатки по указанной детализации.

Главную книгу по аналитике можно вызвать помощи пункта меню «Отчеты | Обороты по аналитике». Программа запрoсит при запуске отчета указать вид аналитики. При необходимости можно указать конкретный объект аналитического учета указанного вида. Если объект аналитики не указывается, выдается движение по всем проводкам, в которых участвуют аналитики этого вида.

Параметры этого отчета и состав выводимых колонок аналогичны параметрам и составу главной книги по счету.

См.также
Бухгалтерские и налоговые отчеты
Настройка главной книги


Журнально-ордерные формы

Журнально-ордерные формы позволяют создавать различные табличные отчеты по журналу бухгалтерских операций. Основой этих отчетов является объединение свойств главной книги и материального отчета. Отчеты хранятся в виде списка. Каждый отчет определяется своим именем и объединяет в себе набор настроек и список счетов, по которым он формируется.

Для работы с журнально-ордерными формами предназначен пункт меню «Отчеты | Журнально-ордерные формы». Здесь Вы сможете получать отчеты, редактировать список форм, изменять их и создавать новые.

В списке журнально-ордерных форм Вы можете:

Вывести отчет — при нажатии Enter или щелчке левой кнопкой мыши по выбранной форме. Рассчитывает и выводит на экран выбранную журнально-ордерную форму.

Создать новую журнально-ордерную форму — выполняется при добавлении записи в таблицу. После чего появится диалог редактирования новой формы. Диалог редактирования журнально-ордерной формы составлен из параметров, которые есть в главной книге и материальном отчете. После ввода данных и нажатия <OK> она добавляется в список.

Удалить журнально-ордерную форму — происходит при удалении записи из таблицы. Перед удалением определения появится подтверждение: «Удалить форму ?». Нажмите Да для удаления.

Изменить параметры формы — происходит при нажатии F4 или при выборе контекстного пункта меню «Изменить». Появится диалог редактирования формы, где можно изменить параметры отчета, список счетов, ее название.

Работа с журнально-ордерными формами аналогична работе с главной книгой и материальным отчетом, в зависимости от настроек формы.


Диаграмма

Стандартное меню.

 Вернуться к началу раздела

Диаграммы являются средством наглядного представления данных и облегчают выполнение сравнений, выявление закономерностей и тенденций данных. Например, вместо анализа нескольких столбцов чисел на листе можно, взглянув на диаграмму, узнать, падают или растут объемы продаж по кварталам или как действительные объемы продаж соотносятся с планируемыми.

Диаграммы в программе строятся на основе табличных данных. Чтобы создать диаграмму, выделите в таблице необходимые ячейки и выберите пункт главного меню «Сервис | Диаграмма». Появится диалог создания диаграммы, в котором вы можете выбрать ее тип и настроить различные параметры отображения. Диалог состоит из четырех закладок

·Тип диаграммы — выбирается тип диаграммы

·Параметры — задаются опции отображения диаграммы.

·Оси — задаются параметры осей диаграммы.

·Ряды — задаются параметры отображения рядов данных.

После нажатия кнопки <OK> появится окно с диаграммой. В дальнейшем вы можете изменить тип диаграммы и ее параметры, а также распечатать диаграмму.

После вывода окна диаграммы можно вызвать диалог редактирования для изменения ее параметров. Для этого достаточно выполнить одно из следующих действий:

·нажать кнопку [image] на панели инструментов;

·выбрать пункт «Правка | Изменить» главного или Изменить контекстного меню;

·дважды щелкнуть левой кнопкой мыши по элементу диаграммы (например, по графику,

·сегменту пирожковой диаграммы, столбцу гистограммы и т.д.) или по легенде;

·нажать клавишу <F4>;

При щелчке по элементу диаграммы или по легенде диалог откроется на закладке Ряды на выбранном ряде.

См. также
Выделение записей
Встроенные отчеты


Выбор бланка_2

Выбор отчетной формы

При работе пункта меню «Операции | Отчетные формы» появится список отчетных форм, существующих в программе.

Перед началом работы со списком, необходимо выбрать период, за который будет предоставляться отчет. Период выбирается в левом верхнем углу панели управления. В зависимости от выбранного периода, какие-то формы будут скрыты. Это зависит от того, используется ли форма по-месячно или по-квартально, действует ли она или отменена и т.п.

Для смены периода можно воспользоваться мышью или нажать клавишу <F2>. В появившемся списке можно перемещаться с помощью клавиш б и в. Переключиться на другой год можно также с помощью кнопок внизу списка.

Все отчетные формы в программе Инфо-Предприятие разделены на разделы. Список отчетных форм представляет собой таблицу с закладками, соответствующими разделам отчетных форм. При выборе нужной закладки на экране появится список отчетных форм из выбранного раздела. Если все разделы не помещаются на экране, то справа от закладок появятся кнопки [image] , с помощью которых можно перелистывать закладки. Перемещаться между закладками можно и при помощи клавиатуры, нажимая клавиши Я и а. Перемещаться между строками списка можно с помощью клавиш б и в.

Список имеет следующие колонки (некоторые из них могут отсутствовать):

·Слева от формы может стоять флажок [image]. Он означает, что отчетный документ уже был сформирован. Чтобы открыть сформированный документ нужно щелкнуть по дате формирования (см. ниже).

·Форма — название отчетной формы.

·Срок — дата истечения срока сдачи отчетной формы. Если у формы нет определенного срока сдачи, здесь ничего не будет стоять.

·Кор — номер корректировки. При первичной сдаче будет отображаться 0 или ничего не будет стоять.

·Сформирован — дата, когда был сформирован документ. Щелчком мыши по значку [image] можно открыть сформированный документ на редактирование. Щелчком мыши по значку [image] можно удалить сформированный ранее документ.

·Файл — сформированный файл формы в электронном виде. Щелчком мыши по значку [image] можно открыть диалог сохранения файла.

Щелкнув мышью по названию нужной формы или нажав клавишу <Enter> на выбранной форме Вы перейдете к его заполнению.

В верхнем левом углу находится кнопка [image], нажав на которую можно открыть настройку списка отображаемых отчетных форм и скрыть не используемые Вами.

Если Вы не можете отыскать бланк или не знаете в каком он разделе, то лучше воспользоваться поиском, не забыв указать в опциях поиска по всем закладкам. Часть бланков может быть скрыта в данной конфигурации программы. Чтобы показать все бланки, включая и скрытые, воспользуйтесь пунктом контекстного меню Показать скрытые бланки.

См. также
Выбор бланка первичного документа
Работа с таблицами


HC_JrnLike

<х> ПО ШАБЛОНУ <y> — сравнение <х> по шаблону с <y>.

Примечание. Если <y> строковая константа, то достаточно использовать сравнение,
например, поле = "*123*" равносильно написанию поле ПО ШАБЛОНУ "*123*".


HC_JrnStarting

<х> НАЧИНАЕТСЯ С <y> — начало выражения <х> совпадает с выражением <y>.

Примечание. Если <y> строковая константа, то достаточно использовать сравнение,
например, поле = "123*" равносильно написанию поле НАЧИНАЕТСЯ С "123".


Протокол

Здесь можно отключить старый протокол Протокол (аудит, лог-файл) позволяет отслеживать все действия пользователей, выполняемые для определенных журналов. Протокол полезен в нескольких случаях:

·Для выяснения причин ошибок. Последующий анализ протокола может дать ответ на причину неполадки.

·Для защиты данных, чтобы всегда можно было получить информацию о том, кто, когда и какие действия выполнял.

·Как дубликат данных, на основе которого можно восстановить исходный журнал.

Протоколируемые журналы — Перечень журналов, для которых надо вести протокол.

После того как необходимые журналы были помечены, нажмите Выполнить >>. Это запустит операцию реструктуризации базы данных. Реструктуризация может быть неудачной, если с программой кто-либо работает.

Замечание!

Использование протокола незначительно снижает скорость работы в программе и значительно увеличивает размер базы данных. Не следует включать протоколирование для всех подряд журналов и справочников.

Закладка может быть недоступна, если отключена возможность Настройки в правах доступа.


Структура файла INF 1.0

Ниже описывается формат INF файла для Инфо-Предприятия 1.x.

Файл является текстовым в кодировке Windows (1251). Он может содержать комментарии, начинающиеся с "//" вначале строки.

Дата создания : <дата> - определяет дату создания дистрибутива

Требуемая версия : <версия> - задает версию программы, требующуюся для правильной

работы настройки (должна быть меньше 2.0)

Версия настройки : <версия настройки> - определяет версию настройки. Это значение используется

программой для контроля обновления.

Название : <название настройки> - определяет название настройки. Это значение используется

программой для контроля обновления.

Обновление : <флаг обновления> - устанавливает, является ли этот дистрибутив обновлением и

не содержит всех необходимых файлов или нет.

Каталог бланков : <каталоги> - указывает путь к файлам бланков. Путь указывается

относительно файла INF. Каталогов может быть несколько,

отделенных точкой с запятой. В этом случае файлы помещаются

в соответствующие порядку каталоги бланков: каталоги

документов, отчетов, контекстных бланков и т.п.

Каталог архивов : <каталоги> - указывает путь к файлам архивов. Путь указывается

относительно файла INF. Каталогов может быть несколько,

отделенных точкой с запятой. В этом случае файлы помещаются

в соответствующие порядку каталоги архивов:

документов, отчетов, контекстных бланков и т.п.

Каталог библиотек : <каталог> - указывает путь к файлам библиотек. Путь указывается

относительно файла INF.

Каталог типовых операций : <каталог> - указывает путь к файлам типовых операций. Путь указывается

относительно файла INF.

Каталог DBF : <каталог> - указывает путь к файлам DBF, если таковые используются настройкой.

Путь указывается относительно файла INF.

Каталог данных : <каталог> - указывает путь к файлам данных. Путь указывается относительно

файла INF. В этом каталоге располагаются такие данные, как

список множеств (sets.pak), список пользователей и интерфейсов

(authent.pak), список определений (sw.opr), реквизитов (sw.rek),

архивы журналов (*.jrn)

Файл сетевой конфигурации : <файл> - указывает на файл сетевой конфигурации.

Следующие три параметра не записываются при создании дистрибутива конфигурации и могут быть изменены только при помощи внесения изменений в INF-файл.

Опции : <опции> - Число, задающие дополнительные параметры. Если <опции> = 1 то

то в списке устанавливаемых настроек при первоначальной установке

данный дистрибутив будет по умолчанию отключен.

Исполняемый мoдуль : <файл> - Задается в случае, если дистрибутив содержит исполняемый мoдуль

программы (EXE-файл). В этом случае сначала будет установлен

новый исполняемый мoдуль, а затем, уже его средствами будет

продолжена установка обновления.

Дополнительные файлы : <список> - Задает список дополнительных файлов, содержащихся в архиве.

Список разделяется запятой или точкой с запятой и содержит

выражения вида <приемник>=<источник>, где <приемник> определяет

путь к конечному файлу (относительно каталога программы), а

<источник> - путь к файлу в архиве. При этом <источник> может быть

задан в виде шаблона (например, HELP\*.hlp), тогда <приемник>

определяет каталог (относительно каталога программы), куда будут

скопированы файлы.

Список изменений - определяет начало раздела со списком изменений структуры данных.

Описание изменений в структуре данных

Журнал : <идентификатор журнала> - определяет идентификатор журнала, для которого определяются

правила преобразования.

Добавлено поле : <название поля> (<идентификатор поля>, <название поля в базе>, <тип>, <по умолчанию>)

- определяет поле, которое надо добавить к журналу

Изменено поле : <название поля> (<идентификатор поля>, <название поля в базе>, <тип>, <по умолчанию>) на

<название поля> (<идентификатор поля>, <название поля в базе>, <тип>,<по умолчанию>)

- определяет изменение поля журнала

Резервная копия : <файл> - не используется

Замечание!

Если при архивировании настройки использовалось сжатие, то INF-файл будет располагаться внутри корня архива.


СТД-Р Сведения о трудовой деятельности, предосталяемые работнику работодателем

Сведения о трудовой деятельности, предосталяемые работнику работодателем формируются из справочника сотрудников с помощью пункта контекстного меню «СТД-Р Сведения о трудовой деятельности, предоставляемые работнику работодателем». Сведения по выбранному сотруднику будут сформированы.

Для начала формирования бланка следует нажать кнопку Старт [image] на панели инструментов. В появившемся диалоге выбрать одну или несколько опций:

·Шаг 1: Сформировать Журнал сведений — в Журнале сведений о трудовой деятельности будет создана запись с информацией по сотрудникам (личные данные, кадровые мероприятия), которую при необходимости можно отредактировать. Для перехода к журналу сведений нажмите в бланке кнопку <Журнал сведений...>.

·При выборе Шаг 2: Рассчитать бланк будут выведены данные из Журнала сведений;

Для настройки бланка в контекстном меню выберите пункт Настроить или нажмите комбинацию клавиш <Alt>+<Enter>. На экране появится окно со следующими настройками:

Название параметра | Выбранное значение | Что меняется в бланке
Указывать должность при увольнении | Нет | Файл выгрузки для увольнения будет сформирован без указания должности.
 | Да | В файле выгрузки для увольнения будет показана должность.


Комплект справок при увольнении сотрудника

Комплект справок при увольнении сотрудника формируются из справочника сотрудников с помощью пункта контекстного меню «Комплект справок при увольнении сотрудника». Он позволяет сформировать следующие формы по выбранному сотруднику:

·СЗВ-М "Сведения о застрахованных лицах";

·СЗВ-СТАЖ "Сведения о страховом стаже застрахованных лиц";

·СТД-Р "Сведения о трудовой деятельности, предоставляемые работнику работодателем";

·2-НДФЛ "Справка о доходах и суммах налога физического лица";

·182н "О сумме заработной платы за два календарных года, предшествующих году прекращения работы".

Для настройки бланка в контекстном меню выберите пункт Настроить или нажмите комбинацию клавиш <Alt>+<Enter>. На экране появится окно со следующими настройками:

Название параметра | Выбранное значение | Что меняется в бланке
ИС: Особые усл-ия стажа для периодов врем. нетруд-ти | Не указывать | Для сотрудников с особыми условиями стажа влияет на заполнение полей Код особых условий и Код позиции списка в детализации периодов стажа для периодов временной нетрудоспособности.
 | Указывать
ИС: Особые усл-ия стажа для периодов отпуска | Не указывать | Для сотрудников с особыми условиями стажа влияет на заполнение полей Код особых условий и Код позиции списка в детализации периодов стажа для периодов временной нетрудоспособности.
 | Указывать
ИС: При определении периодов стажа по табелю: командировки | Не выделять в отдельные периоды | Периоды командировки отдельно выделяться не будут.
 | Выделять в отдельные периоды | Периоды командировки будут выделяться отдельно.
ИС: Параметр стажа для отпуска (ДЛОТПУСК) | Указывать, когда нет начислений | Параметр стажа ДЛОТПУСК будет указан только в тех месяцах, за которые по сотруднику нет начислений.
 | Указывать | Будет выделен период отпуска.
 | Не указывать | Отдельный период стажа для отпуска выделяться не будет.
Льготный стаж со значением ДОГОВОР, НЕОПЛДОГ, НЕОПЛАВТ | Идет в общем порядке | Периоды стажа будут выведены на печать и выгружены в хронологическом порядке.
 | Идет сначала | Сначала будут выведены на печать и выгружены периоды со значением ДОГОВОР, НЕОПЛДОГ или НЕОПЛАВТ, затем остальные.
Стажевый период с параметром ДЛОТПУСК | Идет в общем порядке | Периоды стажа будут выведены на печать и выгружены в хронологическом порядке.
 | Идет в конце | Периоды со значением «ДЛОТПУСК» будут выведены на печать и выгружены в конце.
Нулевые суммы доходов | Скрывать | Месяцы, в которых сотрудник не имел доходов, в справке отображаться не будут.
 | Показывать | Будут показываться данные по всем периодам, даже если доходы отсутствовали.
Указывать должность при увольнении | Нет | Файл выгрузки для увольнения будет сформирован без указания должности.
 | Да | В файле выгрузки для увольнения будет показана должность.
ИС: Уволенных с НГ сотрудников без начислений в отч. периоде | Не включать в пачки | Раздел 3 бланка будет формироваться в режиме без учета письма ФНС от 4 октября 2017 г. N ГД-4-11/19965@.
 | Включать в пачки | Раздел 3 будет формироваться с учетом письма ФНС от 4 октября 2017 г. N ГД-4-11/19965@.
Учитывать ручные проводки по НДФЛ | Нет | Выводит декларацию только по проводкам, сформированным программой автоматически в журнале бухгалтерских операций.
 | Да | Учитывает при расчете все проводки журнала бухгалтерских операций (и ручные, и сформированные программой).