- Журнал изменений в версиях системы Papyrus
- PAPYRUS (Демо)
- Papyrus: development
- Papyrus: возможности системы
- Papyrus: руководство пользователя
- Введение
- Печать информации
- Бизнес-показатели
- Установка
- Запуск и завершение работы
- Отчетность по расчетам с дебиторами и кредиторами
- Интерфейс пользователя
- Товарная отчетность
- Статистика продаж и прогнозирование спроса
- Интерфейс с сервисом IP-телефонии
- Универсальные концепции
- Географические объекты
- Импорт и экспорт данных
- Настройка и администрирование системы
- Персоналии
- Товары
- Язык описания формул
- Бухгалтерские справочники
- Язык описания данных DL600
- Глоссарий
- Операционные справочники
- Текущие параметры системы
- Документы
- Бухгалтерские документы
- Товарные документы
- Книги продаж и покупок
- Основные средства
- Рента
- Инвентаризация
- Производство
- Персональные карты
- Персональные операции
- Кадры
- Расчет заработной платы
- Управление проектами и задачами
- Отчетность
- Бухгалтерская отчетность
- Язык описания данных DL200
- Розничные продажи и торговое оборудование
- Управление мобильной торговлей
- Разделенные базы данных
- Интеграция со сторонними системами и сервисами
- Специальный процессинг данных
- Job-Server
- Защита и восстановление данных
- COM-интерфейсы
- Приложения
- Библиотека
- Все об обязательной маркировке 2021
- Все об онлайн-кассах
- Презентации
- Руководства
- Свидетельство о регистрации системы Papyrus
- Технологии и функции
- COM-интерфейсы
- Внутреннее применение языка. Используется только на стадии разработки.
- Структуры таблиц баз данных
- Внутреннее применение языка. Используется на стадии разработки для определения структур таблиц баз данных.
- Экспортные структуры данных
- Применяется как на этапе разработки, так и при эксплуатации системы для кастомизации стандартных (определенных в дистрибутиве) структур данных для печати и экспорта.
Синтаксис языка
Лексические соглашения
Чувствительность к регистру
Язык DL600 является чувствительным к регистру символов.Например, слова Goods и goods с точки зрения компилятора языка различны.Пробелы и перевод каретки
Символы пробела, табуляции, перевода каретки, за исключением разделения слов, являются не значащими. То есть, несколько таких символов, следующих последовательно друг за другом воспринимаются компилятором как один.Зарезервированные слова
Следующие слова зарезервированы компилятором:- IMPORT
- import
- data
- interface
- struct
- enum
- iclass
- declare
- iteration
- link
- if
- else
- format
- in
- out
- inout
- default
- version
- library
- uuid
- abstract
- property
- table
- index
- file
- void
- bool
- int
- long
- uint
- char
- int8
- int16
- short
- int32
- autolong
- int64
- uint8
- uint16
- uint32
- float
- double
- money
- decimal
- string
- lstring
- date
- time
- datetime
- key
- variant
- wchar
- note
- raw
- blob
- clob
Структура файла
Файл DL600 представляет собой набор описаний данных. Каждый набор состоит из полей заголовка (DEFAULT HEAD) и итераторов.Определение поля
Особенности работы
Этот кассовый модуль экспортирует данные о продажах по запросу только за один день. При этом если Z-отчет, соответствующий экспортируемым чекам, был снят на следующий день и данные за этот день есть, то модуль вернет все чеки этого Z-отчета (включая чеки следующего дня).Papyrus , при закрытии сессии этого кассового модуля, запрашивает период, за который надо получить данные. Если вы указываете открытый справа период, то к текущей операционной дате прибавляется два дня и полученная дата закрывает период. Papyrus обращается к кассовому модулю за данными на каждый день из указанного периода.Кристалл-Сет при экспорте результатов продаж не инициализирует секунды в полях времени, поэтому, Papyrus искусственно инициализирует секунды во времени пробития чека как остаток от деления номера чека на 60 (это необходимо для обеспечения уникальности времени пробития чека в пределах каждого кассового аппарата).При экспорте данных в Кристалл-Сет главная неприятность в том, что этот кассовый модуль не предоставляет интерфейса для очистки внутренней базы данных товаров. Из-за этого могут возникать коллизии, связанные с изменениями штрихкодов товаров.Кассовый модуль Кристалл УКМ
Кассовый модуль Атол
Кассовый модуль Петрович
Приложение D. Специальные форматы штрихкодов
Для управления терминалами сбора данных, а также для упрощения работы в панели процессора система Papyrus использует штрихкоды, кодирующие команды и данные. Для таких штрихкодов всегда используется стандарт CODE39. Если код содержит несколько полей, то эти поля отделяются друг от друга символом разделителя X (заглавная латинская буква X). Неявное разделение полей на основании их длины не используется, поскольку действительная длина поля в различных условиях могут существенно отличаться.Серийные номера
Серийные номера кодируются простой последовательностью цифр. Система отличает серийный номер от номенклатурного номера по контексту. То есть, при необходимости идентифицировать некоторую последовательность цифр, система сначала ищет номенклатурный номер с такой последовательностью и, если такого номенклатурного номера нет, то пытается найти серийный номер, совпадающий с заданной последовательностью.Комбинация серийного номера с номенклатурным В некоторых случаях требуется кодировать в одном штрихкоде и серийный, и номенклатурный номера. В этом случае штрихкод имеет следующий формат: SSSSXNNNNXQQQQЗдесь:
Формат кодировки документа следующий: BILLPPPPXOOOOXIIII
Здесь:
Приложение E. Сообщения об ошибках
[#1] #2
#379
Остаток товара слишком мал
Недостаточное количество товара на дату проведения операции по складу, к которому относится документ. Если сообщение появляется при выборе товара в товарном документе, то кроме тривиальной причины (учетный остаток просто недостаточен), возможно, что товара не хватает из-за дополнительных ограничений, как-то: возвратная операций поставщику при недостаточности товара именно этого поставщика; товар “перехвачен” более поздними операциями (в случае проведения документа задним числом). Если сообщение появляется при проведении товарного документа или при закрытии кассовой сессии, то причина, скорее всего, кроется в нарушениях в таблице текущих товарных остатков. В этом случае следует запустить корректировку текущих товарных остатков (Админ→ Корректировки→ Корректировка текущих товарных остатков). Если и это не помогло, то следует выполнить корректировку лотов, и, если в лотах были ошибки, снова выполнить корректировку текущих товарных остатков. Dev: mnem(PPERR_LOTRESTBOUND)
83
Товара 'ABC' на складе нет
Выбранный для вставки в строки документа товар ABC на складе, к которому относится документ, отсутствует. Это сообщение появляется при выборе расходуемого или переоцениваемого товара товара в документе либо из списка, либо по штрихкоду. Dev: mnem(PPERR_NOGOODS), locfunc(TrfrItemDialog::replyGoodsSelection)
128
Попытка объединить несовместимые документы
Появляется при попытке объединить несколько документов в один. Объединяемые документы должны принадлежать одному виду операции, иметь одинаковых (возможно нулевых) контрагентов (основная и дополнительная статьи аналитического учета), а также принадлежать одному складу и иметь одну и ту же валюту учета. Это сообщение появится и в том случае, если один или несколько объединяемых документов имеют ссылку на связанный документ (например, не удастся объединить документы списания инвентаризации). DEV: mnem(PPERR_UNMATCHEDUBILLS), locfunc(IsBillsCompatible)
134
Попытка открыть день с датой меньшей предыдущего
Это сообщение появляется при попытке открыть новый кассовый день в синхронном кассовом узле, если дата нового дня меньше, чем текущая дата в записи кассового узла. DEV: mnem(PPERR_STARTBACKDATE), locfunc(PPCashMachine::SyncOpenSession)
193
Ошибка чтения пакета связи разделов 'имя файла'
Сообщение появляется при приеме или отправке данных в другой раздел. Причиной возникновения ошибки чаще всего является нарушение целостности одного из файлов, находящихся в каталоге IN (OUT). В нескольких версиях системы (до 5.3.5) такая ошибка могла возникать при передаче данных с использованием встроенного сжатия (система неверно рассчитывала CRC файла). Для устранения ошибки:
323
Обнаружена циклическая зависимость между лотами
Ошибка возникает, если программа обнаружила циклическую зависимость между лотами. То есть, лот A порождает лот B, лот B порождает лот C, а лот C, наконец снова порождает лот A. Причина ошибки возникает крайне редко и источники на текущий момент (версия 4.7.10) не ясны. Может проявляться при попытке открытия документа, просмотре системной информации по лоту, при расчете некоторых отчетов. При возникновении необходимо немедленно обратиться в службу технической поддержки. DEV: mnen(PPERR_LOTLOOP), locfunc(ReceiptCore::SearchOrigin), locfunc(LotInfoDialog::setupLinkedLot)
335
Недопустимое действие по персональной операции
При выборе действия по виду персональной операции тип этого действия не соответствует другим условиям вида персональной операции. Например, действие по установке или снятию тега недопустимо для вида операции, для которого не определены теги. DEV: mnen(PPERR_INADMISSPOVERB), locfunc(PoClauseDialog::replyVerbSelected)
351
Ошибка создания файла синхронизации
Программе не удалось создать файл синхронизации ppsync.bin. Проблема возникает из-за недоступности каталога базы данных. Путь к базе данных прописывается в файле pp.ini.
355
Ошибка открытия файла синхронизации
Программе не удалось открыть файл ppsync.bin. Обычно проблема кроется в отсутствии прав доступа на чтение или на запись к каталогу базы данных.
909
Невозможно подставить счет вместо алиаса в проводке
При проведении документа не удалось вместо алиаса счета, указанного в одном из шаблонов проводок, подставить действительный счет из таблицы подстановки алиасов, связанных с аналитической статьей, используемой в документе. После текста сообщения система выводит наименование алиаса счета и наименование статьи, в которой должна быть правильная таблица подстановки алиасов. DEV: mnem(PPERR_UNABLERESOLVEALIAS), locfunc(PPAccTurnTempl::ResolveAlias)
909
Невозможно подставить счет вместо алиаса в проводке
При проведении документа не удалось вместо алиаса счета, указанного в одном из шаблонов проводок подставить действительный счет из таблицы подстановки алиасов, связанных с аналитической статьей, используемой в документе. После текста сообщения система выводит наименование алиаса счета и наименование статьи, в которой должна быть правильная таблица подстановки алиасов. DEV: mnem(PPERR_UNABLERESOLVEALIAS), locfunc(PPAccTurnTempl::ResolveAlias)
910
Завершение кассовых сессий сверх 10-го уровня блокировано
Сообщение выдается при попытке завершения кассовой сессии, если в конфигурации оборудования установлен флаг “Закрывать кассовые сессии до 10-го уровня”. Для консультаций по поводу правомерности установки этого флага следует обратиться к администратору системы. DEV: mnem(PPERR_CSESSCOMPLLOCKED).
912
Инвалидная ассоциация статья-склад
Не существует соответствия между статьей, название которой указано после текста сообщения, и складом. Проблема может быть связана с неверной установкой таблицы позиций в конфигурации (относительно пользователя) или с потерянной ссылкой на склад в статье аналитического учета, относящейся к аналитической таблице, указанной в конфигурации. DEV: mnem(PPERR_INVAR2LOCASSOC), locfunc(PPObjLocation::ObjToWarehouse)
913
Инвалидная ассоциация склад-статья
Не существует соответствия между складом, название которого указано после текста сообщения, и статьей. Проблема может быть связана с неверной установкой таблицы позиций в конфигурации (относительно пользователя) или с отсутствием статьи аналитического учета, относящейся к таблице позиций (указанной в конфигурации), привязанной к складу. DEV: mnem(PPERR_INVLOC2ARASSOC), locfunc(PPObjLocation::WarehouseToObj)
1247
Персоналия не принадлежит заданному виду
Выбранная или обрабатываемая персоналия не относится к ограничивающему виду. #define PPERR_PSNDONTBELONGTOKIND 1247 // Персоналия не принадлежит заданному виду DEV: mnem(PPERR_PSNDONTBELONGTOKIND), locfunc(PersonCore::IsBelongToKind)
1248
Персоналия по регистру xxx не найдена
При попытке идентифицировать персоналию по регистрационному номеру не удалось обнаружить ни одной персоналии с указанным номером. Для устранения проблемы либо введите правильный номер, либо задайте требуемый регистрационный номер для персоналии. DEV: mnem(PPERR_PERSONBYREGNFOUND), locfunc(PPObjPerson::GetListByRegNumber)
1249
Персоналия xxx по регистру не соответствует заданному виду
При попытке идентифицировать персоналию по регистрационному номеру, одна персоналия, соответствующая указанному номеру, была обнаружена, но ни один из видов, которым она принадлежит, не соответствует заданному. DEV: mnem(PPERR_PERSONBYREGNKIND), locfunc(PPObjPerson::GetListByRegNumber)
1250
Персоналии по регистру xxx не соответствуют заданному виду
При попытке идентифицировать персоналию по регистрационному номеру, несколько персоналий, соответствующих указанному номеру, были обнаружены, но ни один из видов, которым они принадлежат, не соответствует заданному. DEV: mnem(PPERR_PERSONSBYREGNKIND), locfunc(PPObjPerson::GetListByRegNumber)
1343
Заданный вид котировки не соответствует категории
Сообщение появляется при использовании интерфейса IPapyrusQuot при попытке установить значение котировки с категорией “Матрица” или “Контрактная цена” и видом котировки, не соответствующем этой категории. DEV: mnen(PPERR_UNMATCHEDQUOTKIND)
DBError 103
Ошибка открытия файла для резервного копирования
При создании резервной копии базы данных не удалось открыть для чтения один из файлов, предназначенных для копирования (вероятнее всего файл открыт для записи каким-либо приложением или файл прихвачен фантомным сеансом на серверы базы данных). Возможный вариант решения проблемы - перезагрузка сервера базы данных. DEV: mnem(SDBERR_BU_SRCFOPEN), locfunc(DBBackup::GetFileParams)
нет кода
Добавляемый в документ товар должен иметь код по статье
В соглашении с поставщиком или покупателем, связанном со статьей контрагента по документу установлен флаг ✓В документы добавлять только товары, имеющие код по статье. При этом, пользователь пытается добавить в документ строку с товаром, который не имеет кода, связанного с контрагентом по документу. Подробно соглашения с клиентами описаны на стр. link, соглашения с поставщиками - на стр. link. DEV: mnem(PPERR_BILLGOODSRESTRICTBYARCODE) locfunc(PPBillPacket::CheckGoodsForRestrictions)
Уведомительные сообщения
38
Неоднозначный альтернативный товар в выборке излишков по кассовым сессиям
Это сообщение появляется при попытке редактирования подстановки альтернативного товара в излишках по кассовым сессиям. Причинной сообщения является то, что, излишки рассчитаны по выборке кассовых сессий, причем в двух или более сессиях из выборки реализована подстановка разных альтернативных товаров. Пример: в кассовой сессии за 1 марта вместо товара “БАНАНЫ” подставлен альтернативный товар “БАНАНЫ ЭКВАДОР”. В кассовой сессии за 3 марта вместо товара “БАНАНЫ” подставлен товар “БАНАНЫ КОЛУМБИЯ”. Выборка кассовых сессий взята за период с 1 по 3 марта. Излишки по кассовым сессиям рассчитаны по всей выборке. При попытке просмотра подстановки альтернативного товара по товару “БАНАНЫ” появится описываемое сообщение. DEV: mnem(PPINF_AMBIGUITYCSEXCALTGOODS), locfunc(PPViewCSessExc::SetAltGoods)
Сообщения при приеме данных из другого раздела базы данных
нет кода
Ошибка разрешения ссылки объекта (Type = #, ID = #)
Ссылочный объект не был передан вместе с тем объектом, который от него зависит, а также нет информации о синхронизации этого объекта в таблице синхронизации. Наиболее частая причина - висячая ссылка на объект в базе-отправителе. Решение - восстановление ссылки в базе - отправителе (следует проконсультироваться со служббой поддержки). DEV: mnem(PPTXT_RCVREFUNRESOLVED), locfunc(PPObjectTransmit::RestoreObj)
нет кода
Ошибка разрешения ссылки объекта (Type = #, ID = #)
Ссылочный объект не был передан вместе с тем объектом, который от него зависит, а также нет информации о синхронизации этого объекта в таблице синхронизации. Наиболее частая причина - висячая ссылка на объект в базе-отправителе. Решение - восстановление ссылки в базе - отправителе (следует проконсультироваться со служббой поддержки). DEV: mnem(PPTXT_RCVREFUNRESOLVED), locfunc(PPObjectTransmit::RestoreObj)
нет кода
Ошибка акцепта документа
Не удалось провести документ, принятый из другого раздела БД. После этого сообщения в строке выводится идентификатор документа в базе-отправителе, а также номер документа и дата. Далее идет текст сообщения об ошибке. DEV: mnem(PPTXT_ERRACCEPTBILL), locfunc(PPObjBill::Write)
нет кода
Ошибка конвертации документа
Не удалось преобразовать пакет документа, принятый из другого раздела БД, в формат, необходимый для сохранения в базе данных. После этого сообщения в строке выводится идентификатор документа в базе-отправителе, а также номер документа и дата. Далее идет текст сообщения об ошибке. DEV: mnem(PPTXT_ERRACCEPTBILL_CONVERT), locfunc(PPObjBill::Write)