https://ananas.su/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9D%D0%BE%D0%B2%D1%8B%D0%B5_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B&feed=atom&hideredirs=1&limit=50&offset=&namespace=0&username=&tagfilter=Ananas - Новые страницы [ru]2024-03-28T10:44:28ZМатериал из AnanasMediaWiki 1.23.1https://ananas.su/wiki/ChangelogChangelog2010-02-14T12:31:56Z<p>Lenin: /* ananas-0.9.4 */ Оформление</p>
<hr />
<div>= История изменений Ananas =<br />
<br />
Свежую версию можно найти на [http://www.leaderit.ru/cgi-bin/cvsweb.cgi/ananas/ChangeLog сервере cvs].<br />
<br />
== ananas-0.9.6 ==<br />
* Модальные формы и программный контроль блокирования закрытия формы пользователем через возврат true/false функцией <tt>on_formstop()</tt>.<br />
* Управление транзакциями из Скрипта.<br />
* Расширение DateService для операций с датами. Пример: получить дату прибавлением произвольного количества дней к указанной дате, получить расстояние в днях между двумя датами.<br />
* Доработка виджета редактирования даты добавлением всплывающего календарика для выбора даты.<br />
* Небольшие улучшения в Дизайнере.<br />
<br />
== ananas-0.9.5 ==<br />
* Новое расширение для прямой работы с SQL сервером. Предназначено для подготовки аналитических отчётов и документов, требующих сложных запросов к базе данных.<br />
* Обновлены изображения на заставках, отображаемых при запуске Ананаса и Дизайнера.<br />
* В информационном окне «О программе» Ананаса теперь выводятся данные о бизнес-схеме и её авторе.<br />
* В Дизайнере появились новые диалоги редактирования свойств документов и справочников.<br />
* В скрипт установки rpm файлов ananas и ananas-inventory добавлена команда запуска mysql-сервера. Теперь пользователю не нужно заботиться о том, чтобы mysql был запущен перед установкой Ананаса на linux.<br />
* Изменился диалог выбора бизнес-схемы и редактор rc файла, вызываемый из него. Появилась возможность тестировать соединение с сервером, получать с сервера список баз данных и пользователей.<br />
* В подсистеме отчетов добавлена поддержка формата MSOffice2003 xml.<br />
* Доработан установщик с учетом добавления поддержки MSO xml. Ананас для Windows по-умолчанию для формирования отчетов использует Microsoft Office (можно поменять).<br />
* Доработано расширение service, позволяющее программисту бизнес-схемы определять какой офисный пакет используется, т.е. задан в файле конфигурации.<br />
* Добавлены шаблоны отчетов MSO XML.<br />
* При деинсталляции Ананаса с Windows аккуратно вычищаются из реестра все записи, касающиеся Ананаса.<br />
* Исправлена ошибка 0000106: Если в пустом журнале если нажать кнопку «удалить», программа вылетает.<br />
<br />
== ananas-0.9.4 ==<br />
* (Список изменений относительно 0.9.3)<br />
* Изменены требования к используемому пакету OpenOffice.org. Теперь требуется OpenOffice версии 2.0 или больше.<br />
* Изменения первичных форм.<br />
** Обновлена печатная форма Счета-фактуры. Новая форма Счета-фактуры утверждена Постановлением Правительства Российской Федерации от 2 декабря 2000 г. № 914 (в редакции постановления Правительства РФ от 11 мая 2006 г. № 283) Счёт-фактура формируется в формате электронной таблицы *.ods.<br />
** Обновлена экранной формы счета фактуры. Новые столбцы: «НДС» и «Итого с НДС».<br />
* Появилась возможность выбора остатков по нескольким разрезам накопительного регистра. Например, через последовательный вызов SetFilter(dimName,dimValue) один или несколько раз и вызов GetSaldo(date). Получение остатков по комбинированному условию вызывает расчёт значения в момент запроса. Это важно иметь ввиду при проектировании бизнес схемы, чтобы обеспечить приемлемую производительность операции получения остатка по комбинации измерений.<br />
* В Дизайнере появилась возможность сохранения в файл и загрузки из файла отдельных объектов бизнес схемы, без данных.<br />
* В функции <tt>on_conduct()</tt> экранной формы появилась возможность отменить проведение документа, вернув соответствующее значение из функции.<br />
* При просмотре системного журнала пользователь может задать диапазон дат, для уменьшения количества отображаемых документов.<br />
* Поддержка многовалютности (RUR, USD, EUR) при преобразовании суммы в пропись с помощью функции <tt>MoneyToText()</tt>.<br />
* 0000037: [Основная функциональность] Не сохраняется бизнес схема при выходе из Дизайнера "по крестику" (gr)<br />
* 0000068: [Основная функциональность] Самопроизвольное установка фильтров на регистр (gr)<br />
* 0000098: [БС Оперативный учет] ...в системном журнале кнопка «Копировать» активна... (gr)<br />
* 0000052: [БС Оперативный учет] ошибки при вводе расходной накладной на основании счёта (gr)<br />
* 0000086: [БС Оперативный учет] Справочник складов в режиме выбора под Windows не закрывается (app)<br />
* 0000057: [Основная функциональность] при вводе новой строки в табличной части она появляется выше активной строки. (app)<br />
* 0000095: [Генерирование отчетов] Дополнение аргумента, означающего текстовое значение сотых долей, к функции <tt>Propis()</tt>. (app)<br />
* 0000033: [Основная функциональность] Отметка «Проведён» видна только в общем журнале документов. (gr)<br />
* 0000084: [Основная функциональность] Ошибка SelectDocument при несуществующем документе. (gr)<br />
* 0000076: [Генерирование отчетов] Ошибка при генерации отчетов в формате sxc. (gr)<br />
* 0000074: [Основная функциональность] Не работает перебор по журналу документов. (gr)<br />
* 0000073: [Основная функциональность] Не работает Value(«dateEdit») в форме журнала. (gr)<br />
* 0000072: [Генерирование отчетов] Ошибка при генерация суммы прописью в печатной форме. (gr)<br />
* 0000034: [Пользовательский интерфейс] Поле типа «Дата». Работает только стрелка «вверх». (gr)<br />
* 0000050: [Основная функциональность] не пересчитывается сумма. (gr)<br />
* 0000061: [Основная функциональность] неправильные параметры on_tabupdate(row,col,tname). (gr)<br />
<br />
== release-20051213 ==<br />
* Разработана бизнес схема Оперативный учёт, покрывающая функциональность Ананаса версии 0.3.4 и добавляющая новые возможности, такие как расчеты с контрагентами.<br />
* Добавлена поддержка формирования отчетов с использованием OpenOffice.org все отчёты бизнес схемы Оперативный учёт сделаны с использованием этой возможности.<br />
* Добавлена поддержка сервера баз данных PostgreSQL.<br />
* Дистрибутив теперь собирается из cvs для всех поддерживаемых платформ. На данный момент это Windows, ALT Linux и Fedora Core.<br />
* Для процедур сборки и тестирования разработан набор тестов.<br />
* Множество других изменений.<br />
<br />
== build-20040602 ==<br />
* Сделана перекодировка из/в локальную таблицу символов при работе с таблицами MySQL. Теперь можно использовать MySQL 3.23.5x без поддержки unicode.<br />
* Добавлен вывод имени исходного файла в макрос отладки CHECK_POINT.<br />
<br />
== build-20040531 ==<br />
* Добавлена система поддержки интерфейса для разных языков. Пока файлы перевода подключаются указанием кода языка ( en (default), ru ) в командной строке приложения.<br />
* Добавлены сплэш-заставки (на русском и английском) для движка и дизайнера.<br />
* Убраны некоторые глюки в дизайнере.<br />
* Добавлены плагины виджета документа, справочника.<br />
* Плагин таблицы БД заработал в тестовом (все поля таблицы БД ) режиме.<br />
* Заработал редактор справочника в списке с использованием плагина таблицы БД.<br />
* Заработала система настройки действий и главного меню приложения.<br />
* Заработало действие для открытия нового окна, выполнения пользовательского скрипта.<br />
* Показываются иконы первого действия элемента меню приложения.<br />
<br />
== build-20031204 ==<br />
<br />
* доработаны плагины-виджеты qananasfield и qananasdbfield. Первый предназначен для отображения любых поддерживаемых Ананасом типов данных без привязки к редактируемому документу, или объекту другого типа. Второй позволяет выбрать поле из списка полей прикладного объекта (например документа), для редактирования которого предназначена создаваемая экранная форма.<br />
* доработана система сборки и установки. Сделан первый вариант spec файла для сборки дистрибутивных пакетов.<br />
<br />
== build-20031120 ==<br />
<br />
* Диалоги (экранные формы) документов, настраиваемые в QT designer, теперь работают в MDI режиме внутри главного окна Ананаса. <br />
* Заработал плагин-виджет qananasdbfield. При открытии экранной формы он заполняется данными из базы и перед закрытием происходит сохранение изменённых данных. То есть заработал механизм связывания (data bindings) полей объектов Ананаса и полей экранных форм, связанных с этими объектами.<br />
* Выполнена реструктуризация дерева каталогов исходников проекта. Появился подкаталог applications/inventory. Каталог applications предназначен для хранения типовых прикладных настроек. Inventory — наша первая прикладная настройка, закрывающая своей функциональностью Ананас.Склад.<br />
* В корне проекта появились ananas-engine-rh9.spec и ananas-engine-alm22.spec — заготовки spec файлов для сборки rpm пакетов под соответствующие дистрибутивы. Спек файл определяет следующие пакеты: ananas-engine, ananas-devel, ananas-inventory.<br />
* Внесены изменения в систему сборки. Решено отказаться от qmake в пользу скриптов, используемых в проекте KDE. Эти скрипты также хорошо поддерживают moc и ui файлы, как и qmake, не внося при этом дисгармонии (в виде неработающих команд make dist, make install, make clean) в процедуры сборки проекта и подготовки дистрибутива с помощью GNU Autotools.<br />
<br />
== build-20031015 ==<br />
<br />
* Заработала обработка событий, посылаемых элементами пользовательского интерфейса. Теперь настройщик, находясь в QT-designer, может задать имя кнопки, которое будет использовано AnanasScript функцией-обработчиком с предопределенными именем on_button(name). Если настройщик в описании экранной формы документа в Конфигураторе Ананаса опишет функцию с именем on_button(name), то при нажатии на любую кнопку экранной формы будет вызвана эта функция, а в качестве параметра ей будет передано имя кнопки, от которой послано событие.<br />
<br />
* В процедуре сборки принято решение делать симлинк /usr/src/ananas-engine для упрошения девелопмента. Если есть необходимость временно указывать в файлах абсолютный путь, то он должен начинаться с /usr/src/ananas-engine То есть теперь считается, что сборка ananas-engine проходит в каталоге /usr/src/ananas-engine.<br />
<br />
== build-20030912 ==<br />
<br />
* Сменилась версия используемой в проекте библиотеки qt на версию qt-3.2.1. Теперь вы не сможете собрать проект с qt более ранних версий.<br />
<br />
* Некоторые подвижки в libananas (каталог lib) по реализации регистров оборотного и оборотно-сальдового учета.<br />
<br />
* Конфигуратор Ананаса (каталог designer) научился добавлять формы документов в описание документов в конфигурации и вызывать qt-designer для их изменения.<br />
<br />
* Система плагинов. Завершилось решение проблем, связанных с бесшовной интеграцией qt-designer в проект Ананас в качестве редактора диалогов. В проект добавлен новый плагин qtplugins/qalineedit, который является простейшим полем редактирования. Два ранее существовавших в проекте плагина qtplugins/acfg и qtplugins/stringfield больше не используются в проекте и будут удалены в скором времени.<br />
<br />
<br />
== build-20030814 ==<br />
<br />
* Продолжается работа над Конфигуратором (каталог designer). К настоящему билду добавлены следующие возможности:<br />
** mdi интерфейс, позволяющий открыть несколько конфигураций в разных окнах, расположенных внутри окна Конфигуратора.<br />
** при задании типа поля Класса объекта (Например, Документа ПриходнаяНакладная) есть возможность выбора из списка объектов редактируемой конфигурации.<br />
** Конфигуратор научился обновлять структуру БД на SQL сервере. Пользователю достаточно выбрать соответствующий пункт меню для выполнения обновления.<br />
<br />
* Каталог src временно (для этого билда) исключен из процедуры сборки. То есть если есть желание поэкспериментировать с кодом в этом каталоге, нужно запускать команду make непосредственно в нем, не забыв предварительно все же запустить configure в корне проекта, для создания файла src/Makefile.<br />
<br />
* добавлен каталог demo, в котором уже появился один пример работы с метаданными.<br />
<br />
* Каталог lib существенно изменился. Интерфейс (API) для работы с метаданными представлен файлом cfg.h. Файл тщательно прокоментирован с расчетом на doxygen (Интересно когда он начнет понимать utf8 :) В целом можно сказать что код, реализующий интерфейс доступа к метаданным уже в полне работоспособен и доведен до того состояния, когда его можно и нужно использовать в других подсистемах. Что собственно говоря и делается в коде Конфигуратора (каталог designer) и в утилите работы с конфигурацией (каталог tools/aconfig).<br />
<br />
* В дерево проекта добавлен пропущенный файл aclocal.m4. Теперь сборка проекта не зависит от наличия в системе Automake.<br />
<br />
== build-20030614 ==<br />
<br />
* Доработка кода в каталоге src. Запускается главное окно приложения. Определение меню задано на языке AnanasScript в файле startup.as.<br />
<br />
* Появился файл с Document type definition tools/aconfig/ananas-cfg.dtd для конфигурации, описываемой на XML. Корректность конфигурации теперь можно проверить, выполнив команду <pre>xmllint --noout --valid sklad.cfg</pre><br />
<br />
* Добавлен каталог для документации. Некоторые документы уже пишуться и черновики доступны для ознакомления.</div>Leninhttps://ananas.su/wiki/%D0%A1%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F_%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8FСвободная лицензия2010-01-10T12:35:12Z<p>App: </p>
<hr />
<div>Лицензия<br />
<br />
<br />
СВОБОДНАЯ ЛИЦЕНЗИЯ<br />
<br />
<br />
<br />
Copyright (C) 1989, 1991 Free Software Foundation, Inc.<br><br />
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA<br><br />
(C) Перевод. О.В. Кузина, В.М. Юфа, 1993<br><br />
(C) Перевод. О.С. Тихонов, 1998<br><br />
(С) Адаптация для законодательства России. Андрей П. Паскаль, 2000<br><br />
<br />
<br />
Всем разрешается воспроизводить и распространять дословные копии этого лицензионного документа, но изменять его нельзя.<br />
<br />
<br />
Предисловие<br />
<br />
Данная лицензия предназначена для обеспечения в рамках законодательства Российской Федерации тех же условий использования программ для ЭВМ, которые обеспечивает лицензия GPL Фонда Свободного программного обеспечения в США.<br><br />
<br />
Лицензии на большую часть программ для ЭВМ составлены так, чтобы лишить вас свободы совместно использовать и изменять их. Напротив, Открытая лицензия предназначена гарантировать вашу свободу совместно использовать и изменять свободные программы для ЭВМ, т.е. удостоверить, что программа для ЭВМ является свободной для всех ее пользователей. Эта Открытая лицензия аналогична лицензии GPL применяемой к большей части программ для ЭВМ Фонда Свободного программного обеспечения Вы тоже можете использовать ее для своих программ.<br><br />
<br />
Когда мы говорим о свободных программах для ЭВМ, мы имеем в виду свободу, а не цену.<br><br />
<br />
Предполагается, что Открытая лицензия гарантирует: что вы вправе распространять свободные программы для ЭВМ (и получать за это вознаграждение, если вы того желаете); что вы получаете исходный текст или можете получить его, если захотите; что вы можете изменять программу или использовать ее части в новых свободных программах; и что вы знаете, что вы можете все это делать.<br><br />
<br />
Чтобы защитить ваши права, нам нужно ввести такие ограничения, которые запретят кому бы то ни было отказывать вам в этих правах или потребовать от вас отказаться от этих прав. Эти ограничения переводятся в некоторые обязательства для вас, если вы распространяете программы для ЭВМ или если вы модифицируете или адаптируете их.<br><br />
<br />
Например, если вы распространяете такую программу для ЭВМ бесплатно или за вознаграждение, вы должны предоставить получателям все права на эту программу, которыми вы обладаете. Вы должны гарантировать, что они тоже получат или смогут получить исходный текст. И вы должны показать им эти условия, чтобы они знали о своих правах.<br><br />
<br />
Мы защищаем ваши права в два этапа: (1) сохраняем авторские права на программу для ЭВМ и (2) предлагаем вам эту лицензию, которая дает вам законное право воспроизводить, распространять и/или модифицировать программу.<br><br />
<br />
Также, чтобы защитить нас и каждого автора, мы хотим удостовериться, что все понимают, что гарантий на эти свободные программы нет. Если программа для ЭВМ модифицируется и передается кем-то еще, мы хотим, чтобы получатели программы знали, что то, что у них есть - это не оригинал, чтобы любые проблемы, созданные другими, не отразились на репутации первоначальных авторов.<br><br />
<br />
И наконец, каждой свободной программе для ЭВМ постоянно угрожают патенты на программы для ЭВМ. Мы хотим избежать опасности, что повторные распространители свободной программы для ЭВМ самостоятельно получат патенты, делая программу таким образом частной собственностью. Чтобы предотвратить это, мы явно заявляем, что любой патент должен быть либо предоставлен всем для свободного использования, либо не предоставлен никому.<br><br />
<br />
Ниже следуют точные определения и условия для воспроизведения, распространения и модификации.<br />
<br />
<br />
ОТКРЫТАЯ ЛИЦЕНЗИЯ<br><br />
ОПРЕДЕЛЕНИЯ И УСЛОВИЯ ДЛЯ ВОСПРОИЗВЕДЕНИЯ, РАСПРОСТРАНЕНИЯ И МОДИФИКАЦИИ<br><br />
<br />
1. Эта Лицензия применима к любой программе или другому произведению, содержащему уведомление, помещенное держателем авторских прав и сообщающее о том, что оно может распространяться при условиях, оговоренных в данной Открытой лицензии. В последующем термин "Программа" относится к любой такой программе для ЭВМ или произведению, а термин "произведение, основанное на Программе" означает Программу или любое произведение, содержащее Программу или ее часть, дословную или модифицированную, и/или переведенную на другой язык. (Здесь и далее перевод включается без ограничений в понятие "модификация".) Каждый обладатель лицензии адресуется как "вы". Виды деятельности, не являющиеся воспроизведением, распространением, выпуском в свет, адаптацией или модификацией не охватываются этой Лицензией; они за пределами ее влияния. Использование Программы по ее функциональному назначению не ограничено, и выходные данные Программы охватываются этой Лицензией, только если их содержание является произведением, основанным на Программе (вне зависимости от того, были ли они получены в процессе использования Программы). Являются ли они таковыми, зависит от того, что именно делает Программа.<br><br />
<br />
2. Вы можете воспроизводить и распространять экземпляры исходного текста Программы по его получении в любой материальной форме, при условии что вы соответствующим образом помещаете на видном месте в каждого экземпляра соответствующее уведомление об авторских правах и отказ от гарантий; оставляете нетронутыми все уведомления, относящиеся к данной Лицензии и к отсутствию каких-либо гарантий; и передаете всем другим получателям Программы экземпляр данной Лицензии вместе с Программой. Вы можете назначить плату за физический акт передачи экземпляра и можете по своему усмотрению предоставлять гарантии за вознаграждение.<br><br />
<br />
3. Вы можете изменять свой экземпляр или экземпляры Программы или любой ее части, создавая таким образом произведение, основанное на Программе, и воспроизводить и распространять эти модификации или произведение в соответствии с Разделом 2, приведенным выше, при условии, что вы выполните все нижеследующие условия:<br><br />
<br />
а) Вы обязаны снабдить модифицированные файлы заметными уведомлениями, содержащими указания на то, что вы изменили файлы, и дату каждого изменения.<br><br />
<br />
б) Вы обязаны предоставить всем третьим лицам лицензию на бесплатное использование каждого произведения, которое вы распространяете или публикуете, целиком, и которое полностью или частично содержит Программу или какую-либо ее часть, на условиях, оговоренных в данной Лицензии.<br><br />
<br />
в) Если модифицированная программа обычно читает команды в интерактивном режиме работы, вы должны сделать так, чтобы при запуске для работы в таком интерактивном режиме обычным для нее способом она печатала или выводила на экран объявление, содержащее соответствующее уведомление об авторских правах и уведомление о том, что гарантий нет (или, наоборот, сообщающее о том, что вы обеспечиваете гарантии), и что пользователи могут повторно распространять программу при этих условиях, и указывающее пользователю, как просмотреть копию данной Лицензии. (Исключение: если сама Программа работает в интерактивном режиме, но обычно не выводит подобное объявление, то ваше произведение, основанное на Программе, не обязано выводить объявление.)<br><br />
<br />
Эти требования применяются к модифицированному произведению в целом. Если известные части этого произведения не были основаны на Программе и могут обоснованно считаться независимыми и самостоятельными произведениями, то эта Лицензия и ее условия не распространяются на эти части, если вы распространяете их как отдельные произведения. Но если вы распространяете эти части как часть целого произведения, основанного на Программе, то вы обязаны делать это в соответствии с условиями данной Лицензии, распространяя права получателей лицензии на все произведение и,таким образом, на каждую часть, вне зависимости от того, кто ее написал. Такимобразом, содержание этого раздела не имеет цели претендовать на ваши права напроизведение, написанное полностью вами, или оспаривать их; цель скорее в том, чтобы развить право управлять распространением производных или коллективных произведений, основанных на Программе. Кроме того, простое нахождение другого произведения, не основанного на этой Программе, совместно с Программой (или с произведением, основанным на этой Программе) на том же материальном носителе для постоянного хранения или распространяемом материальном носителе не распространяет действие этой Лицензии на другое произведение.<br />
<br />
<br />
4. Вы можете копировать и распространять Программу (или произведение, основанное на ней) согласно Разделу 3) в объектном коде или в выполнимом виде в соответствии с Разделами 2 и 3, приведенными выше, при условии, что вы также выполните одно из следующих требований:<br><br />
<br />
а) Сопроводите ее полным соответствующим машиночитаемым исходным текстом, который должен распространяться в соответствии с Разделами 2 и 3, приведенными выше, на носителе, обычно используемом для обмена ПО; или,<br><br />
<br />
б) Сопроводите ее письменным предложением, действительным, по крайней мере, в течение трех лет, предоставить любому третьему лицу за вознаграждение не большее стоимости физического акта изготовления экземпляра машиночитаемый экземпляр соответствующего исходного текста, подлежащий распространению в соответствии с Разделами 2 и 3, приведенными выше; или<br><br />
<br />
в) Сопроводите ее информацией, полученной вами в качестве предложения распространить соответствующий исходный текст. (Эта возможность допустима только для некоммерческого распространения, и только если вы получили программу в объектном коде или в выполнимом виде с предложением в соответствии с Пунктом б) выше.)<br />
<br />
Исходный текст для произведения означает его вид, предпочтительный для выполнения в нем модификаций. Для исполняемого произведения полный исходный текст означает все исходные тексты для всех модулей, которые он содержит, плюс любые связанные с произведением файлы определения интерфейса, плюс сценарии, используемые для управления компиляцией и установкой исполняемого произведения. Однако, в виде особого исключения распространяемый исходный текст не обязан включать то, что обычно предоставляется с основными компонентами операционной системы, под управлением которой работает исполняемое произведение, за исключением случая, когда сам компонент сопровождает исполняемое произведение. Если распространение исполняемого произведения или объектного кода происходит путем предоставления доступа для получения с обозначенного места, то предоставление доступа для получения исходного текста с того же места считается распространением исходного текста, даже если третьи лица не принуждаются к копированию исходного текста вместе с объектным кодом.<br><br />
<br />
<br />
5. Вы не можете воспроизводить, изменять, повторно лицензировать, или распространять Программу иначе, чем это явно предусмотрено данной Лицензией. Любая попытка воспроизводить, изменять, повторно лицензировать или распространять Программу каким-либо другим способом неправомерна и автоматически прекращает ваши права данные вам этой Лицензией. Однако лицензии лиц, получивших от вас копии или права согласно данной Открытой Лицензии, не прекратят своего действия до тех пор, пока эти лица полностью соблюдают условия.<br><br />
<br />
6. Вы не обязаны соглашаться с этой Лицензией, так как вы не подписывали ее. Однако тогда вы не получаете права модифицировать или распространять Программу или основанные на Программе произведения. Эти действия запрещены законом, если вы не принимаете к соблюдению эту Лицензию. А значит, изменяя или распространяя Программу (или произведение, основанное на Программе), вы изъявляете свое согласие с этой Лицензией и всеми ее условиями о воспроизведении, распространении или модификации Программы или произведений, основанных на ней.<br><br />
<br />
7. Каждый раз, когда вы повторно распространяете Программу (или любое произведение, основанное на Программе), получатель этого произведения автоматически получает лицензию от первоначального держателя лицензии на воспроизведение, распространение или модификацию Программы, обсуждаемую в этих определениях и условиях. Вы не можете налагать каких-либо дополнительных ограничений на осуществление получателем прав, предоставленных данным документом. Вы не несете ответственности за соблюдение третьими лицами условий этой Лицензии.<br><br />
<br />
8. Если в результате судебного разбирательства, или обвинения в нарушении патента или по любой другой причине (не обязательно связанной с патентами), вам навязаны условия, противоречащие данной Лицензии (как по решению суда, так и нет), то это не освобождает вас от соблюдения Лицензии. Если вы не можете заниматься распространением так, чтобы одновременно удовлетворить требованиям и этой Лицензии, и всем другим требованиям, то вы не должны заниматься распространением Программы. Например, если патент не позволяет безвозмездное повторное распространение Программы всем, кто получил копии от вас непосредственно или через посредников, то единственным способом удовлетворить и патенту, и этой Лицензии будет ваш полный отказ от распространения Программы. Если какая-либо часть этого раздела не имеет силы или не может быть применена при любых конкретных обстоятельствах, то подразумевается, что имеет силу остальная часть раздела, и весь Раздел имеет силу при других обстоятельствах. Цель этого раздела - не побудить вас делать заявления о нарушениях прав на патент, или заявлять о других претензиях на право собственности, или оспаривать правильность подобных претензий; единственная цель этого раздела - защита целостности системы распространения свободных программ, которая реализуется использованием общих лицензий. Многие люди благодаря этой системе внесли щедрый вклад в широкий спектр распространяемых программ, полагаясь на согласованное применение этой системы; автору принадлежит право решать хочет ли он или она распространять программы в этой системе или в какой-то другой, и получатель лицензии не может влиять на принятие этого решения. Этот раздел предназначен для того, чтобы тщательно прояснить, что полагается следствием из остальной части данной Лицензии.<br><br />
<br />
9. Если распространение и/или использование Программы ограничено в ряде стран либо патентами, либо авторскими правами на интерфейсы, первоначальный обладатель авторских прав, выпускающий Программу с этой Лицензией, может добавить явное ограничение на географическое распространение, исключив такие страны, так что распространение разрешается только в тех странах, которые не были исключены. В этом случае данная Лицензия включает в себя это ограничение, как если бы оно было написано в тексте данной Лицензии.<br><br />
<br />
10. Вы можете по выбору следовать определениям и условиям либо настоящей лицензии либо любой версии GPL лицензии, когда-либо опубликованной Фондом Свободного програмного обеспечения.<br><br />
<br />
11. Если вы хотите встроить части Программы в другие свободные программы с иными условиями распространения, напишите автору с просьбой о разрешении. Для программ, которые охраняется авторскими правами Фонда Свободного ПО, напишите в Фонд Свободного ПО.<br />
<br />
<br />
<br />
<br />
НИКАКИХ ГАРАНТИЙ<br />
<br />
<br />
12. ПОСКОЛЬКУ ПРОГРАММА ПРЕДОСТАВЛЯЕТСЯ БЕСПЛАТНО, НА ПРОГРАММУ НЕТ ГАРАНТИЙ В ТОЙ МЕРЕ, КАКАЯ ДОПУСТИМА ПРИМЕНИМЫМ ЗАКОНОМ. ЗА ИСКЛЮЧЕНИЕМ ТЕХ СЛУЧАЕВ, КОГДА ПРОТИВНОЕ ЗАЯВЛЕНО В ПИСЬМЕННОЙ ФОРМЕ, ДЕРЖАТЕЛИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИЕ СТОРОНЫ ПОСТАВЛЯЮТ ПРОГРАММУ "КАК ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОДРАЗУМЕВАЕМЫМИ ГАРАНТИЯМИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. ВЕСЬ РИСК В ОТНОШЕНИИ КАЧЕСТВА И ПРОИЗВОДИТЕЛЬНОСТИ ПРОГРАММЫ ОСТАЕТСЯ ПРИ ВАС. ЕСЛИ ПРОГРАММА ОКАЖЕТСЯ ДЕФЕКТНОЙ, ВЫ ПРИНИМАЕТЕ НА СЕБЯ СТОИМОСТЬ ВСЕГО НЕОБХОДИМОГО ОБСЛУЖИВАНИЯ, ВОССТАНОВЛЕНИЯ ИЛИ ИСПРАВЛЕНИЯ.<br />
<br />
13. НИ В КОЕМ СЛУЧАЕ, ЕСЛИ НЕ ТРЕБУЕТСЯ ПОДХОДЯЩИМ ЗАКОНОМ ИЛИ НЕ УСЛОВЛЕНО В ПИСЬМЕННОЙ ФОРМЕ, НИКАКОЙ ДЕРЖАТЕЛЬ АВТОРСКИХ ПРАВ ИЛИ НИКАКОЕ ДРУГОЕ ЛИЦО, КОТОРОЕ МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, КАК БЫЛО РАЗРЕШЕНО ВЫШЕ, НЕ ОТВЕТСТВЕННЫ ПЕРЕД ВАМИ ЗА УБЫТКИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СПЕЦИАЛЬНЫЕ, СЛУЧАЙНЫЕ ИЛИ ПОСЛЕДОВАВШИЕ УБЫТКИ, ПРОИСТЕКАЮЩИЕ ИЗ ИСПОЛЬЗОВАНИЯ ИЛИ НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОТЕРЕЙ ДАННЫХ, ИЛИ ДАННЫМИ, СТАВШИМИ НЕПРАВИЛЬНЫМИ, ИЛИ ПОТЕРЯМИ, ПОНЕСЕННЫМИ ИЗ-ЗА ВАС ИЛИ ТРЕТЬИХ ЛИЦ, ИЛИ ОТКАЗОМ ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ЛЮБЫМИ ДРУГИМИ ПРОГРАММАМИ), ДАЖЕ ЕСЛИ ТАКОЙ ДЕРЖАТЕЛЬ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ.<br />
<br />
КОНЕЦ ОПРЕДЕЛЕНИЙ И УСЛОВИЙ</div>Apphttps://ananas.su/wiki/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8BПримеры2009-10-01T04:58:06Z<p>App: Создана новая страница размером Смотрите [http://ananas.su/ananas.lrn.ru/wiki/index.php?title=Snippets Образцы кода для разработчиков ...</p>
<hr />
<div>Смотрите [http://ananas.su/ananas.lrn.ru/wiki/index.php?title=Snippets Образцы кода для разработчиков бизнес-схем]</div>Apphttps://ananas.su/wiki/%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D0%BE%D0%B5_%D0%BE%D0%B1%D0%BE%D1%80%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5Торговое оборудование2009-07-27T22:08:27Z<p>Radist: /* Сканеры Штрихкода: */</p>
<hr />
<div>=te=<br />
<br />
В исходниках Ананаса есть расширение [[te]] [http://www.leaderit.ru/cgi-bin/cvsweb.cgi/ananas/src/extensions/te/], позволяющее в Ананас скрипте использовать все драйвера из проекта [[tradeequip]] как родные объекты Ананас скрипта.<br />
Оно отвечает за взаимодействие с оборудованием через драйвера tradeequip.<br />
Для того чтобы откомпилировать расширение te, должны быть установлены библиотеки и заголовочные файлы tradeequip.<br />
<br />
По умолчанию при сборке Ананаса из CVS компиляция расширения te отключена.<br />
Для того чтобы включить сборку этого расширения следует убрать комментарий:<br />
#unix:SUBDIRS += te<br />
<br />
в файле<br />
ananas/src/extensions/extensions.pro<br />
<br />
чтобы было так<br />
unix:SUBDIRS += te<br />
<br />
=Драйвера, которые уже работают в [[tradeequip]]:=<br />
==Фискальные регистраторы:==<br />
*ШТРИХ-ФР-(К/Ф)<br />
<br />
==Сканеры Штрихкода:==<br />
*Все модели с последовательным портом (Универсальный драйвер)и USB в режиме эмуляции RS-232 (протестировано с Cipher1000 и Metrologic 5145)<br />
<br />
==Ридеры магнитных карт:==<br />
*Все с последовательным портом, клавиатурные (УНИДрайвер)<br />
<br />
==Дисплеи покупателя:==<br />
*Epson, Firich, VF2029, DSP800<br />
<br />
==Список реально работающих драйверов:==<br />
<br />
TEReaderBarcode<br />
TEReaderCard<br />
TEDisplayPC<br />
TEDisplayEpson<br />
TEDisplayDSP800<br />
TEDisplayVF2029<br />
TECashRegisterShtrihFR<br />
<br />
=Пример использование в скрипте:=<br />
<br />
Ananas script examples for trade equipment drivers:<br />
TEDisplayVF2029, TEReaderBarcode<br />
<br />
==1.global module:==<br />
<br />
<br />
var TradeEq = 0; // global trade equipment manager<br />
var TEDisplay = 0; // Display object<br />
var TEReader = 0; // Reader object<br />
<br />
// EVENTS GLOBAL HANDLER<br />
function on_event( src, data )<br />
{<br />
sys.Message(1,"Global module: on_event from "+src+" data="+data);<br />
}<br />
<br />
function on_systemstart()<br />
{<br />
TradeEq = new TradeEquipment();<br />
TEDisplay = TradeEq.newDriver("TEDisplayVF2029");<br />
if (TEDisplay) {<br />
TEDisplay.setPortBaudRate(12); //9600<br />
TEDisplay.setPortNumberAndInit(2); // COM2<br />
}<br />
TEReader = TradeEq.newDriver("TEReaderBarcode");<br />
if (TEReader) {<br />
TEReader.PortNumber = 1;<br />
TEReader.PortBaudRate = 9600;<br />
TEReader.startDriver();<br />
}<br />
}<br />
<br />
<br />
==2.Document module==<br />
<br />
//<br />
function on_formstart(){<br />
TEReader.clearBuffer(); // clear unprocessed barcodescodes<br />
}<br />
<br />
// DISPLAY TEXT ON ROW CHANGED.<br />
function on_tablerow( name ){<br />
print("Table "+name+" row changed");<br />
TEDisplay.showText("ROW CHANGED","line1","scroll/left");<br />
}<br />
<br />
// EVENTS DOCUMENT HANDLER <br />
function on_event( src, data )<br />
{<br />
sys.Message(1,"Document module: on_event from "+src+" data="+data);<br />
if (src=="TradeEquipment") {<br />
// NEED CHECK 'data' VALUE FOR READER EVENT FILTERS<br />
bc = TEReader.text();<br />
SetValue("Имя", bc); // SET FIELD VALUE TO BARCODE READED<br />
TEReader.next();<br />
}<br />
}<br />
<br />
<br />
В результате выполнения этих модулей на дисплей покупателя вывелось "ROW CHANGED" а при сканировании штрихкода при открытом документе автоматически заполнилось поле 'Имя' значением считанного штрихкода.</div>Radisthttps://ananas.su/wiki/TradeequipTradeequip2009-07-27T21:49:28Z<p>Radist: </p>
<hr />
<div>ТОРГОВОЕ ОБОРУДОВАНИЕ<br />
программное обеспечение для Linux и Windows<br />
<br />
Базовая библиотека <br />
[[Файл:Logo.png]]<br />
=Последовательный порт=<br />
<br />
Интерфейс RS232<br />
<br />
=Кассовый аппарат=<br />
<br />
=Дисплей покупателя=<br />
<br />
=Электронные весы=<br />
<br />
=Сканер штрихкода=<br />
<br />
=Считыватель магнитных карт=<br />
<br />
=Терминал сбора данных=</div>Radisthttps://ananas.su/wiki/%D0%98%D0%BC%D0%BF%D0%BE%D1%80%D1%82-%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B1%D0%B8%D0%B7%D0%BD%D0%B5%D1%81-%D1%81%D1%85%D0%B5%D0%BCИмпорт-экспорт бизнес-схем2009-07-24T12:22:42Z<p>Blindvic: переименовал «Импорт-экспорт бизнес-схем» в «Алгоритм импорта-экспорта бизнес-схем»</p>
<hr />
<div>==Импорт\Экспорт==<br />
<br />
Функции импорта, экспорта предназначены в первую очередь для резервного копирования и восстановления бизнес схем вместе с данными. То есть операция выполняется комплексно над данными и описывающими их метаданными.<br />
<br />
Импорт и экспорт бизнес схем доступен из окна выбора бизнес схем через меню "Действия"<br />
<br />
Есть возможность создания резервной копии бизнес схемы, которая будет содержать все необходимые для работы данные, включая шаблоны отчетов. Воспользоваться этой возможностью довольно просто: нужно выбрать пункт меню ''Действия->Создание резервной копии''. В появившемся окне нужно задать имя файла резервной копии. К этому имени автоматически добавится расширение .bsa (Business schema archive) Шаблоны отчетов должны находиться в рабочем каталоге конфигурации. Их имена должны иметь следующий формат: templ_*.sxw (файлы, хранящиеся в рабочем каталоге и имеющие другую схему именования, не попадут в архив резервной копии)<br />
<br />
Восстановление из резервной копии делается путем выбора пункта меню ''Действия->Восстановить из резервной копии'' Появится дилоговое окно, похожее на окно, появляющееся при создании новой бизнес схемы. В нем нужно задать все параметры, имя файла резервной копии и нажать кнопку Ок.<br />
<br />
==Алгоритм экспорта бизнес схемы==<br />
<br />
*Создаем временный каталог<br />
*Создаем в нем копию cfg файла с именем busines-schema.cfg<br />
*Пробегаемся по всем объектам бизнес схемы и выгребаем содержание таблиц в xml файл, который сохраняем там же c именем content.xml<br />
*Копируем по шаблону templ_*.sxw все файлы из рабочего каталога бизнес схемы о временный каталог<br />
*Создаем файл manifest с указанием имен предыдущих файлов и сохаряем его в подкаталоге META-INF временного каталога.<br />
*Запаковываем все zip'ом (7-zip'ом)<br />
<br />
==Алгоритм импорта бизнес схемы==<br />
<br />
*Создаем rc файл с указанием в качестве файла бизнес схемы файла резервной копии.<br />
*Распаковываем файл резервной копии во временный каталог<br />
*Считываем файл business-schema.cfg и обновляем структуру данных на сервере баз даных.<br />
*Заливаем в базу данные из файла content.xml<br />
*Копируем файды шаблонов.<br />
*Задаем файлу busines-schema.cfg имя такое же, как у архива, но с расширением cfg.<br />
<br />
Взято здесь http://ananas.su/ananas.lrn.ru/wiki/index.php?title=Algoritms:Import_Export_BusinessSchema</div>Blindvichttps://ananas.su/wiki/%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA_%D0%91%D0%A1_AbsretailУчебник БС Absretail2009-07-23T18:59:27Z<p>Radist: /* Торговое оборудование */</p>
<hr />
<div>=Краткий перечень возможностей приложения=<br />
<br />
Бизнес схема [[Absretail]] обеспечивает следующую функциональность:<br />
<br />
*Ведение ежедневно необходимого учета: покупка, продажа, платежи через банк, кассовые операции<br />
*Получение управленческой информации: по товарным запасам в суммовом и количественном выражении, по расчетам с партнерами<br />
*Автоматический расчет остатков<br />
*Генерация отчетов и печать документов<br />
<br />
Состав объектов бизнес схемы Absretail:<br />
<br />
Справочники:<br />
<br />
*Справочник контрагентов, отображающий информацию о расчетном балансе каждого контрагента<br />
*Справочник товаров, отображающий информацию по остаткам товаров в количественном и денежном выражении на складе<br />
<br />
Вспомогательные справочники<br />
*Справочник Складов<br />
*Справочник реквизитов (констант)<br />
<br />
Документы<br />
*Счет<br />
*Приходная накладная<br />
*Расходная накладная<br />
*Перемещение ТМЦ<br />
*Списание ТМЦ<br />
*Приходный кассовый ордер<br />
*Расходный кассовый ордер<br />
*Платежное поручение<br />
*Выписка банка приход<br />
*Выписка банка расход<br />
<br />
Журналы<br />
*Общий<br />
*<br />
<br />
Специальные журналы<br />
<br />
*Журнал реализации<br />
*Журнал прихода<br />
<br />
Отчеты<br />
*Движение товаров<br />
*Ведомость по поставщикам и покупателям<br />
*Ведомость по кассе<br />
*Книга покупок<br />
*Книга продаж<br />
<br />
Печатные формы<br />
*Печатная форма расходной накладной<br />
*Печатная форма приходной накладной<br />
*Печатная форма платежного поручения<br />
*Печатная форма банковской выписки<br />
*Печатная форма пко<br />
*Печатная форма рко<br />
*Печатная форма счета<br />
*Печатная форма счетафактуры<br />
<br />
=Начало=<br />
==Получение==<br />
svn co https://absretail.svn.sourceforge.net/svnroot/absretail absretail<br />
<br />
==Установка==<br />
*Запускаем ананас дизайнер<br />
*В появившемся окне выбора БС идем в пункт меню "Действия" и выбираем "Новая бизнес-схема" откроется окно натроек новой БС.<br />
*Выбираем файл ресурса *.rc<br />
*При необходимости подправляем пути к фалам конфигурации и настройки БД<br />
*Сохраняем, выбираем созданый пункт в списке БС, запускаем Дизайнер<br />
*В дизайнере жмем сохранение БС для создания в БД структуры ......<br />
*Все можно запускать Ананас с БС Absretail<br />
<gallery><br />
Файл:Add_BS.png<br />
Файл:Заполнение_настроек_бс.png<br />
</gallery><br />
<br />
=Начало работы=<br />
==Первоначальное заполнение==<br />
Подготовка к началу работы с программой<br />
После установки программы следует заполнить информацию о реквизитах предприятия, указать ФИО руководителей. Вся эта информация заносится в программу один раз и используется на протяжении всего срока ее эксплуатации при формировании документов для печати.<br />
<br />
Заполнение реквизитов организации<br />
Для хранения реквизитов организации и другой информации, остающейся неизменной в ходе эксплуатации программы, используется справочник констант, доступный через пункт «Сервис --> Первоначальное заполнение» главного меню программы.<br />
<br />
<br />
*Название – официальное название вашей организации, для указания в таких документах как платежное поручение, кассовый ордер и т.д.<br />
*ИНН – идентификатор налогоплательщика<br />
*ОКПО, ОКУД – коды классификаторов для вашей организации.<br />
*Руководитель – Фамилия И.О. руководителя <br />
*Главный бухгалтер – Фамилия И.О. главного бухгалтера<br />
*Кассир – Фамилия И.О. кассира<br />
<br />
''Каталог товаров<br />
Для хранения информации о товарах используется многоуровневый каталог товаров. По <br />
каждому товару в каталоге отражается состояние остатков в количественном и денежном <br />
выражении по состоянию на текущий момент времени.''<br />
<br />
<gallery><br />
Файл:Заполнение реквизитов.png<br />
Файл:Заполнение реквизитов1.png<br />
Файл:Заполнение реквизитов2.png<br />
Файл:Заполнение реквизитов3.png<br />
Файл:Заполнение реквизитов6.png<br />
</gallery><br />
<br />
==Загрузка данных в базу (импорт)==<br />
[[Файл:Import.png|200px|thumb|Диалог настройки импорта данных]]<br />
В БС Absretail реализована универсальная загрузка данных. На входе поддерживаются следующие типы файлов: csv, exel, dBase, xml. Так же к БС прилагаются примеры обработок для выгрузки данных из 1с.<br />
<br />
Порядок работы:<br />
*Пункты меню: Сервис --> Импорт<br />
*Выбираем файл с данными для загрузки, формат файла определяется автоматически.<br />
*На вкладке "Настройка" выбираем какие данные будем загружать.<br />
*...<br />
*...<br />
<br />
=Торговое оборудование=<br />
В БС Absretail поддерживается работа с торговым оборудованием поддерживаемым платформой [[Ananas:Описание|Ананас]] через расширение [[tradeequip]]<br />
==Подключение и настройка==<br />
===Сканеры===<br />
сканера штрихового кода требует настройки сканера для передачи символа возврата каретки в конце штрихкода<br />
===Фискальные регистраторы===<br />
===....===<br />
==Работа с торговым оборудованием==<br />
<br />
=Работа с БС=<br />
==Фронт кассира==</div>Radisthttps://ananas.su/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%BE%D0%B2Алгоритм расчета остатков для регистров2009-07-20T18:39:31Z<p>Blindvic: Создана новая страница размером Структура базы сейчас в основной ветке cvs примерно такая: есть таблица, похо...</p>
<hr />
<div>Структура базы сейчас в основной ветке cvs примерно такая: есть таблица, похожая по структуре на таблицу информационного регистра (таблица оборотов)<br />
<br />
id - уникальный идентификатор,<br />
idd - идентификатор документа,<br />
iddt - идентификатор табличной части документа,<br />
ln - номер строки табличной части документа, <br />
date - дата создания документа,<br />
dimfield1, dimfield2 ... dimfieldN - список полей измерений,<br />
resfield1, resfield2 ... resfieldN - список полей ресурсов<br />
<br />
и таблица остатков<br />
<br />
date - дата, задающаяся при закрытии периода,<br />
dimfield1, dimfield2 ... dimfieldN - список полей измерений,<br />
resfield1, resfield2 ... resfieldN - список полей ресурсов<br />
<br />
При проведении документа в таблицу оборотов заносится строка, содержащая номер документа, номер табличной части, номер строки, дату и значения измерений и ресурсов. Дата берется из журнала документов.<br />
<br />
При вызове функции Update регистра остатков происходит следующее:<br />
<br />
*обновляется таблица оборотов.<br />
*пересчитывается таблица остатков<br />
<br />
пересчитывается она так:<br />
<br />
*обновляются столбцы resfields таблицы остатков с датой >= заданной даты, с фильтром, собранным из значений dimfields строки таблицы оборотов.<br />
*значение resfieldN формируется как сумма предыдущего значения поля resfieldN (+\-) значение поля resfieldN в таблице оборотов.<br />
*знак + при добавлении строки, - при удалении<br />
<br />
После вызова функции "закрыть период(заданная дата)", которая обычно вызывается после проведения каждого документа, происходят следующие действия:<br />
<br />
*если существует временная таблица для этого регистра, то она удаляется<br />
*создается временная таблица, содержащая все значения из таблицы остатков с датой последнего закрытого периода перед заданной датой + значения из таблицы оборотов, с датой > даты последнего закрытого периода перед заданной датой и <= чем заданная дата<br />
*Из таблицы остатков удаляются строки с датой равной заданной дате.<br />
*В таблицу остатков вставляются все строки из временной таблицы и если дата пустая, она устанавливается равной заданной дате.<br />
<br />
Выборка остатков осуществляется после вызова функции SelectReminders(), которая задает разрезы и значения для выбора остатков. Остатки расчитываются с помощью SQL выражений sum() и group by.<br />
<br />
==Последовательность вызовов функций при работе с регистром==<br />
<br />
*Создать экземпляр объекта регистра с помощью оператора new, передав правильные параметры<br />
*Связать регистр с документом, вызвав функцию SetDocument(aDocument*). Переданный документ должен быть удален не раньше, чем регистр!<br />
*Связать регистр с таблицей документа, вызвав функцию SetTable(tablename).<br />
*Вызвать фунцию New(), создающую новую строку в регистре.<br />
*Нужное число раз вызвать функцию SetValue().<br />
*Вызвать функцию Update().<br />
*Вызвать функцию ClosePeriod().<br />
<br />
==Замеченные баги==<br />
<br />
Нет обновления столбцов dimfields таблицы остатков<br />
<br />
==Оценка производительности==<br />
<br />
Предполагаемая максимальная нагрузка на систему: 5 человек, работая по 8 часов в день, заносят в базу документы с табличной частью, содержащей 30 наименований, со скоростью 6 документов в час. Следоваетльно при 22 рабочих днях в месяце они заколотят примерно 63360 документов. Умножая на 3, т.к каждая строка в среднем будет приводить к 3-м проводкам, и на 30, получим около 6 000 000 записей в регистре. Скалько записей будет в таблице остатков, оценить не берусь.<br />
<br />
Вопрос: Сколько будет открываться справочник товаров, если количество наименований в нем, скажем, 1000?<br />
<br />
--Gr 13:03, 1 ноября 2005 (MSK)<br />
<br />
----<br />
<br />
[http://ananas.su/ananas.lrn.ru/wiki/index.php?title=Обсуждение:Saldo_Algoritm Обсуждение]</div>Blindvichttps://ananas.su/wiki/%D0%9A%D1%80%D0%B5%D0%B4%D0%B8%D1%82%D0%BD%D1%8B%D0%B9_%D0%BA%D0%B0%D0%BB%D1%8C%D0%BA%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80Кредитный калькулятор2009-07-10T09:24:50Z<p>Radist: /* Скриншоты */</p>
<hr />
<div>==Краткое описание БС "Кредитный калькулятор"==<br />
<br />
[http://ananas.su/forum/download/file.php?id=5 Качать тут]<br />
<br />
Бизнес-схема предназначена для расчета кредитов и выбора оптимальных кредитных предложений, по заданным условиям и динамическим формулам. Функционал довольно спецефический. Описание ТЗ на разработку данной БС можно прочитать [http://ananas.su/ananas.lrn.ru/phpBB2/viewtopic.php?t=885&sid=f279a68024eb315d4f7a1c04e493140d здесь].<br />
Чем данная БС может быть интересна для разработчиков:<br />
<br />
* Реализация динамических атрибутов справочников (пример - справочник клиентов).<br />
* Реализация типа данных список, выбор значения из списка<br />
* Расширяемый язык формул (аналогичный языку формул OpenOffice.org Calc/Excel).<br />
* Конструктор формул.<br />
* Отчеты с группировками (итогами по группам).<br />
* Универсальный, настраиваемый обмен данными через XML (за исключением объектов, содержащих нетипизированные поля).<br />
* Вывод отчетов в Firefox<br />
* АРМ менеджера (дифференциация интерфейсов пользователя)<br />
* Класс ObjectTable, расширяющий функционал wTable<br />
* Класс ValueTable для работы с таблицей значений, сортировка, группировка с суммированием<br />
* Класс ValueList для работы со списком<br />
<br />
==Скриншоты==<br />
<gallery><br />
Image:Kr_calc.png|описание<br />
Image:Kr_calc1.png|описание<br />
Image:Kr_calc2.png|описание<br />
Image:Kr_calc3.png|описание<br />
</gallery></div>Radisthttps://ananas.su/wiki/%D0%A1%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA.%D0%A3%D1%87%D0%B5%D1%82_%D0%B7%D0%B0%D1%8F%D0%B2%D0%BE%D0%BAСпутник.Учет заявок2009-07-10T08:13:47Z<p>Radist: Создана новая страница размером Инсталятор: http://djspike.mylivepage.ru/file/788/5650_sputnik.sh http://groups.google.com/group/ananasproject/web/sputnik.sh</p>
<hr />
<div>Инсталятор:<br />
http://djspike.mylivepage.ru/file/788/5650_sputnik.sh<br />
http://groups.google.com/group/ananasproject/web/sputnik.sh</div>Radisthttps://ananas.su/wiki/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_PostgreSQLНастройка PostgreSQL2009-07-10T07:46:51Z<p>Radist: Создана новая страница размером Для работы системы с сервером postgres необходимо: 1. Перед началом работы надо ...</p>
<hr />
<div>Для работы системы с сервером postgres необходимо:<br />
<br />
1. Перед началом работы надо установить сервер postgres из вашего <br />
дистрибутива. Желательна версия больше 7.3<br />
<br />
2. Настроить сервер БД для работы с TCP/IP соединением. Для этого из под <br />
пользователя root в файле postgresql.conf вашей системы (например, для <br />
ALT Linux Master 2.2 он находтится в каталоге /var/lib/pgsql/data) нужно <br />
прописать строку:<br />
<br />
tcpip_socket=true<br />
<br />
или найти и раскоментировать соответствующий параметр. Порт 5432 <br />
используется postgres по умолчанию, но при необходимости его можно <br />
изменить, добавив или изменив параметр:<br />
<br />
port=5432<br />
<br />
Затем следует перезапустить сервер БД командой:<br />
<br />
service postgresql restart</div>Radisthttps://ananas.su/wiki/QdataschemaQdataschema2009-07-10T04:28:49Z<p>App: Добавил ссылку на справочник API</p>
<hr />
<div>Библиотека, осуществляющая обновление стркуртур баз данных по описательной информации, хранящейся в XML файле. Описательную информацию обычно называют метаданными.<br><br />
<br />
Qdataschema выполняет также проверку соответствия структуры базы данных метаданным, используя для этого словарь данных БД. <br><br />
<br />
Qdataschema поддерживает различные SQL серверы. По состоянию на лето 2009 года - MySQL, PostgreSQL и sqlite.<br><br />
<br />
Автор — Валерий Гражданкин<br><br><br />
Справочник по программным интерфейсам Qdataschema — http://ananas.su/docs/qdataschema-api/<br />
Исходный код — http://www.leaderit.ru/cgi-bin/cvsweb.cgi/qdataschema/ <br />
cvs -d :pserver:anonymous@www.leaderit.ru:/var/cvs login<br />
пустой пароль<br />
cvs -d :pserver:anonymous@www.leaderit.ru:/var/cvs co qdataschema<br />
<br />
Зеркало исходного кода <br />
git clone git://github.com/app/qdataschema.git</div>Apphttps://ananas.su/wiki/%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F_%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%D0%BF%D0%B0%D1%82%D1%87%D0%B5%D0%B9_%D0%B2_%D0%B0%D0%BF%D1%81%D1%82%D1%80%D0%B8%D0%BCУсловия принятия патчей в апстрим2009-07-09T22:49:56Z<p>App: </p>
<hr />
<div>*Код должен быть работоспособным как на Linux так и на Windows<br />
*Код должен быть оформлен в виде [[Подготовка_патча|патча]] с указанием точки (CVS tag или дата) приложения и краткого описания способа проверки/демонстрации результатов<br />
*Код должен быть документирован на уровне описания классов и методов в формате, позволяющем генерировать документацию программой doxygen</div>Radisthttps://ananas.su/wiki/TodoTodo2009-07-09T22:45:17Z<p>Radist: </p>
<hr />
<div>Список вопросов и задач которые требуют решения. Возможно просто нужна идея или знания которых у текущих учасников проекта нет, если вы знаете решение напишите об этом на [http://ananas.su/forum форуме], возможно кто-то его реализует на практике.<br />
----<br />
*Не решен вопрос по расположению файлов, в дереве каталогов различных дистрибутивов и архитектур Linux. История вопроса раскрыта [http://ananas.su/forum/viewtopic.php?p=343#p343 здесь]<br />
*Нужны более подробные описания существующих БС. Список на главной. Сделайте скриншоты кто пользуется.<br />
*Нужны руководства пользователя для существующих БС. Начать можно со списка вопросов которые надо раскрыть.<br />
*Нужна сборка под Windows Ананаса версии qt3 из CVS<br />
*Настройка сборки Ананаса в виртуальной среде для дистрибутивов Debian Ubuntu. Как вариант можно использовать [https://build.opensuse.org/ OBS] или..<br />
*Материалы лежащие [http://www.leaderit.ru/component/option,com_wrapper/Itemid,33/ сдесь] нужно обновить, подготовить для включения в ветку qt4.</div>Radisthttps://ananas.su/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8FЛицензия2009-07-09T22:10:59Z<p>Radist: Создана новая страница размером ОТКРЫТАЯ ЛИЦЕНЗИЯ Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-13...</p>
<hr />
<div>ОТКРЫТАЯ ЛИЦЕНЗИЯ<br />
<br />
Copyright (C) 1989, 1991 Free Software Foundation, Inc.<br />
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA<br />
(C) Перевод. О.В. Кузина, В.М. Юфа, 1993<br />
(C) Перевод. О.С. Тихонов, 1998<br />
(С) Адаптация для законодательства России.<br />
Андрей П. Паскаль, г. Йошкар-Ола, 2000<br />
<br />
<br />
Всем разрешается воспроизводить и распространять дословные копии этого<br />
лицензионного документа, но изменять его нельзя.<br />
<br />
<br />
<br />
Предисловие<br />
<br />
Данная лицензия предназначена для обеспечения в рамках законодательства<br />
Российской Федерации тех же условий использования программ для ЭВМ, которые<br />
обеспечивает лицензия GPL Фонда Свободного программного обеспечения в США.<br />
<br />
Лицензии на большую часть программ для ЭВМ составлены так, чтобы лишить вас<br />
свободы совместно использовать и изменять их. Напротив, Открытая лицензия<br />
предназначена гарантировать вашу свободу совместно использовать и изменять<br />
свободные программы для ЭВМ, т.е. удостоверить, что программа для ЭВМ<br />
является свободной для всех ее пользователей. Эта Открытая лицензия<br />
аналогична лицензии GPL применяемой к большей части программ для ЭВМ Фонда<br />
Свободного программного обеспечения Вы тоже можете использовать ее для своих<br />
программ.<br />
<br />
Когда мы говорим о свободных программах для ЭВМ, мы имеем в виду свободу, а<br />
не цену.<br />
<br />
Предполагается, что Открытая лицензия гарантирует: что вы вправе<br />
распространять свободные программы для ЭВМ (и получать за это<br />
вознаграждение, если вы того желаете); что вы получаете исходный текст или<br />
можете получить его, если захотите; что вы можете изменять программу или<br />
использовать ее части в новых свободных программах; и что вы знаете, что вы<br />
можете все это делать.<br />
<br />
Чтобы защитить ваши права, нам нужно ввести такие ограничения, которые<br />
запретят кому бы то ни было отказывать вам в этих правах или потребовать от<br />
вас отказаться от этих прав. Эти ограничения переводятся в некоторые<br />
обязательства для вас, если вы распространяете программы для ЭВМ или если вы<br />
модифицируете или адаптируете их.<br />
<br />
Например, если вы распространяете такую программу для ЭВМ бесплатно или за<br />
вознаграждение, вы должны предоставить получателям все права на эту<br />
программу, которыми вы обладаете. Вы должны гарантировать, что они тоже<br />
получат или смогут получить исходный текст. И вы должны показать им эти<br />
условия, чтобы они знали о своих правах.<br />
<br />
Мы защищаем ваши права в два этапа: (1) сохраняем авторские права на<br />
программу для ЭВМ и (2) предлагаем вам эту лицензию, которая дает вам<br />
законное право воспроизводить, распространять и/или модифицировать<br />
программу.<br />
<br />
Также, чтобы защитить нас и каждого автора, мы хотим удостовериться, что все<br />
понимают, что гарантий на эти свободные программы нет. Если программа для<br />
ЭВМ модифицируется и передается кем-то еще, мы хотим, чтобы получатели<br />
программы знали, что то, что у них есть - это не оригинал, чтобы любые<br />
проблемы, созданные другими, не отразились на репутации первоначальных<br />
авторов.<br />
<br />
И наконец, каждой свободной программе для ЭВМ постоянно угрожают патенты на<br />
программы для ЭВМ. Мы хотим избежать опасности, что повторные<br />
распространители свободной программы для ЭВМ самостоятельно получат патенты,<br />
делая программу таким образом частной собственностью. Чтобы предотвратить<br />
это, мы явно заявляем, что любой патент должен быть либо предоставлен всем<br />
для свободного использования, либо не предоставлен никому.<br />
<br />
Ниже следуют точные определения и условия для воспроизведения,<br />
распространения и модификации.<br />
<br />
<br />
<br />
ОТКРЫТАЯ ЛИЦЕНЗИЯ<br />
ОПРЕДЕЛЕНИЯ И УСЛОВИЯ ДЛЯ ВОСПРОИЗВЕДЕНИЯ, РАСПРОСТРАНЕНИЯ И МОДИФИКАЦИИ<br />
<br />
1. Эта Лицензия применима к любой программе или другому произведению,<br />
содержащему уведомление, помещенное держателем авторских прав и<br />
сообщающее о том, что оно может распространяться при условиях,<br />
оговоренных в данной Открытой лицензии. В последующем термин<br />
"Программа" относится к любой такой программе для ЭВМ или произведению,<br />
а термин "произведение, основанное на Программе" означает Программу или<br />
любое произведение, содержащее Программу или ее часть, дословную или<br />
модифицированную, и/или переведенную на другой язык. (Здесь и далее<br />
перевод включается без ограничений в понятие "модификация".) Каждый<br />
обладатель лицензии адресуется как "вы". Виды деятельности, не<br />
являющиеся воспроизведением, распространением, выпуском в свет,<br />
адаптацией или модификацией не охватываются этой Лицензией; они за<br />
пределами ее влияния. Использование Программы по ее функциональному<br />
назначению не ограничено, и выходные данные Программы охватываются этой<br />
Лицензией, только если их содержание является произведением, основанным<br />
на Программе (вне зависимости от того, были ли они получены в процессе<br />
использования Программы). Являются ли они таковыми, зависит от того,<br />
что именно делает Программа.<br />
2. Вы можете воспроизводить и распространять экземпляры исходного текста<br />
Программы по его получении в любой материальной форме, при условии что<br />
вы соответствующим образом помещаете на видном месте в каждого<br />
экземпляра соответствующее уведомление об авторских правах и отказ от<br />
гарантий; оставляете нетронутыми все уведомления, относящиеся к данной<br />
Лицензии и к отсутствию каких-либо гарантий; и передаете всем другим<br />
получателям Программы экземпляр данной Лицензии вместе с Программой. Вы<br />
можете назначить плату за физический акт передачи экземпляра и можете<br />
по своему усмотрению предоставлять гарантии за вознаграждение.<br />
3. Вы можете изменять свой экземпляр или экземпляры Программы или любой ее<br />
части, создавая таким образом произведение, основанное на Программе, и<br />
воспроизводить и распространять эти модификации или произведение в<br />
соответствии с Разделом 2, приведенным выше, при условии, что вы<br />
выполните все нижеследующие условия:<br />
а) Вы обязаны снабдить модифицированные файлы заметными<br />
уведомлениями, содержащими указания на то, что вы изменили файлы,<br />
и дату каждого изменения.<br />
б) Вы обязаны предоставить всем третьим лицам лицензию на<br />
бесплатное использование каждого произведения, которое вы<br />
распространяете или публикуете, целиком, и которое полностью или<br />
частично содержит Программу или какую-либо ее часть, на условиях,<br />
оговоренных в данной Лицензии.<br />
в) Если модифицированная программа обычно читает команды в<br />
интерактивном режиме работы, вы должны сделать так, чтобы при<br />
запуске для работы в таком интерактивном режиме обычным для нее<br />
способом она печатала или выводила на экран объявление, содержащее<br />
соответствующее уведомление об авторских правах и уведомление о<br />
том, что гарантий нет (или, наоборот, сообщающее о том, что вы<br />
обеспечиваете гарантии), и что пользователи могут повторно<br />
распространять программу при этих условиях, и указывающее<br />
пользователю, как просмотреть копию данной Лицензии. (Исключение:<br />
если сама Программа работает в интерактивном режиме, но обычно не<br />
выводит подобное объявление, то ваше произведение, основанное на<br />
Программе, не обязано выводить объявление.)<br />
Эти требования применяются к модифицированному произведению в целом.<br />
Если известные части этого произведения не были основаны на Программе и<br />
могут обоснованно считаться независимыми и самостоятельными<br />
произведениями, то эта Лицензия и ее условия не распространяются на эти<br />
части, если вы распространяете их как отдельные произведения. Но если<br />
вы распространяете эти части как часть целого произведения, основанного<br />
на Программе, то вы обязаны делать это в соответствии с условиями<br />
данной Лицензии, распространяя права получателей лицензии на все<br />
произведение и,таким образом, на каждую часть, вне зависимости от того,<br />
кто ее написал. Такимобразом, содержание этого раздела не имеет цели<br />
претендовать на ваши права напроизведение, написанное полностью вами,<br />
или оспаривать их; цель скорее в том, чтобы развить право управлять<br />
распространением производных или коллективных произведений, основанных<br />
на Программе. Кроме того, простое нахождение другого произведения, не<br />
основанного на этой Программе, совместно с Программой (или с<br />
произведением, основанным на этой Программе) на том же материальном<br />
носителе для постоянного хранения или распространяемом материальном<br />
носителе не распространяет действие этой Лицензии на другое<br />
произведение.<br />
<br />
4. Вы можете копировать и распространять Программу (или произведение,<br />
основанное на ней) согласно Разделу 3) в объектном коде или в<br />
выполнимом виде в соответствии с Разделами 2 и 3, приведенными выше,<br />
при условии, что вы также выполните одно из следующих требований:<br />
а) Сопроводите ее полным соответствующим машиночитаемым исходным<br />
текстом, который должен распространяться в соответствии с<br />
Разделами 2 и 3, приведенными выше, на носителе, обычно<br />
используемом для обмена ПО; или,<br />
б) Сопроводите ее письменным предложением, действительным, по<br />
крайней мере, в течение трех лет, предоставить любому третьему<br />
лицу за вознаграждение не большее стоимости физического акта<br />
изготовления экземпляра машиночитаемый экземпляр соответствующего<br />
исходного текста, подлежащий распространению в соответствии с<br />
Разделами 2 и 3, приведенными выше; или<br />
в) Сопроводите ее информацией, полученной вами в качестве<br />
предложения распространить соответствующий исходный текст. (Эта<br />
возможность допустима только для некоммерческого распространения,<br />
и только если вы получили программу в объектном коде или в<br />
выполнимом виде с предложением в соответствии с Пунктом б) выше.)<br />
Исходный текст для произведения означает его вид, предпочтительный для<br />
выполнения в нем модификаций. Для исполняемого произведения полный<br />
исходный текст означает все исходные тексты для всех модулей, которые<br />
он содержит, плюс любые связанные с произведением файлы определения<br />
интерфейса, плюс сценарии, используемые для управления компиляцией и<br />
установкой исполняемого произведения. Однако, в виде особого исключения<br />
распространяемый исходный текст не обязан включать то, что обычно<br />
предоставляется с основными компонентами операционной системы, под<br />
управлением которой работает исполняемое произведение, за исключением<br />
случая, когда сам компонент сопровождает исполняемое произведение. Если<br />
распространение исполняемого произведения или объектного кода<br />
происходит путем предоставления доступа для получения с обозначенного<br />
места, то предоставление доступа для получения исходного текста с того<br />
же места считается распространением исходного текста, даже если третьи<br />
лица не принуждаются к копированию исходного текста вместе с объектным<br />
кодом.<br />
<br />
5. Вы не можете воспроизводить, изменять, повторно лицензировать, или<br />
распространять Программу иначе, чем это явно предусмотрено данной<br />
Лицензией. Любая попытка воспроизводить, изменять, повторно<br />
лицензировать или распространять Программу каким-либо другим способом<br />
неправомерна и автоматически прекращает ваши права данные вам этой<br />
Лицензией. Однако лицензии лиц, получивших от вас копии или права<br />
согласно данной Открытой Лицензии, не прекратят своего действия до тех<br />
пор, пока эти лица полностью соблюдают условия.<br />
6. Вы не обязаны соглашаться с этой Лицензией, так как вы не подписывали<br />
ее. Однако тогда вы не получаете права модифицировать или<br />
распространять Программу или основанные на Программе произведения. Эти<br />
действия запрещены законом, если вы не принимаете к соблюдению эту<br />
Лицензию. А значит, изменяя или распространяя Программу (или<br />
произведение, основанное на Программе), вы изъявляете свое согласие с<br />
этой Лицензией и всеми ее условиями о воспроизведении, распространении<br />
или модификации Программы или произведений, основанных на ней.<br />
7. Каждый раз, когда вы повторно распространяете Программу (или любое<br />
произведение, основанное на Программе), получатель этого произведения<br />
автоматически получает лицензию от первоначального держателя лицензии<br />
на воспроизведение, распространение или модификацию Программы,<br />
обсуждаемую в этих определениях и условиях. Вы не можете налагать<br />
каких-либо дополнительных ограничений на осуществление получателем<br />
прав, предоставленных данным документом. Вы не несете ответственности<br />
за соблюдение третьими лицами условий этой Лицензии.<br />
8. Если в результате судебного разбирательства, или обвинения в нарушении<br />
патента или по любой другой причине (не обязательно связанной с<br />
патентами), вам навязаны условия, противоречащие данной Лицензии (как<br />
по решению суда, так и нет), то это не освобождает вас от соблюдения<br />
Лицензии. Если вы не можете заниматься распространением так, чтобы<br />
одновременно удовлетворить требованиям и этой Лицензии, и всем другим<br />
требованиям, то вы не должны заниматься распространением Программы.<br />
Например, если патент не позволяет безвозмездное повторное<br />
распространение Программы всем, кто получил копии от вас<br />
непосредственно или через посредников, то единственным способом<br />
удовлетворить и патенту, и этой Лицензии будет ваш полный отказ от<br />
распространения Программы. Если какая-либо часть этого раздела не имеет<br />
силы или не может быть применена при любых конкретных обстоятельствах,<br />
то подразумевается, что имеет силу остальная часть раздела, и весь<br />
Раздел имеет силу при других обстоятельствах. Цель этого раздела - не<br />
побудить вас делать заявления о нарушениях прав на патент, или заявлять<br />
о других претензиях на право собственности, или оспаривать правильность<br />
подобных претензий; единственная цель этого раздела - защита<br />
целостности системы распространения свободных программ, которая<br />
реализуется использованием общих лицензий. Многие люди благодаря этой<br />
системе внесли щедрый вклад в широкий спектр распространяемых программ,<br />
полагаясь на согласованное применение этой системы; автору принадлежит<br />
право решать хочет ли он или она распространять программы в этой<br />
системе или в какой-то другой, и получатель лицензии не может влиять на<br />
принятие этого решения. Этот раздел предназначен для того, чтобы<br />
тщательно прояснить, что полагается следствием из остальной части<br />
данной Лицензии.<br />
9. Если распространение и/или использование Программы ограничено в ряде<br />
стран либо патентами, либо авторскими правами на интерфейсы,<br />
первоначальный обладатель авторских прав, выпускающий Программу с этой<br />
Лицензией, может добавить явное ограничение на географическое<br />
распространение, исключив такие страны, так что распространение<br />
разрешается только в тех странах, которые не были исключены. В этом<br />
случае данная Лицензия включает в себя это ограничение, как если бы оно<br />
было написано в тексте данной Лицензии.<br />
10. Вы можете по выбору следовать определениям и условиям либо настоящей<br />
лицензии либо любой версии GPL лицензии, когда-либо опубликованной<br />
Фондом Свободного програмного обеспечения.<br />
11. Если вы хотите встроить части Программы в другие свободные программы с<br />
иными условиями распространения, напишите автору с просьбой о<br />
разрешении. Для программ, которые охраняется авторскими правами Фонда<br />
Свободного ПО, напишите в Фонд Свободного ПО.<br />
<br />
<br />
НИКАКИХ ГАРАНТИЙ<br />
<br />
12. ПОСКОЛЬКУ ПРОГРАММА ПРЕДОСТАВЛЯЕТСЯ БЕСПЛАТНО, НА ПРОГРАММУ НЕТ<br />
ГАРАНТИЙ В ТОЙ МЕРЕ, КАКАЯ ДОПУСТИМА ПРИМЕНИМЫМ ЗАКОНОМ. ЗА ИСКЛЮЧЕНИЕМ<br />
ТЕХ СЛУЧАЕВ, КОГДА ПРОТИВНОЕ ЗАЯВЛЕНО В ПИСЬМЕННОЙ ФОРМЕ, ДЕРЖАТЕЛИ<br />
АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИЕ СТОРОНЫ ПОСТАВЛЯЮТ ПРОГРАММУ "КАК ОНА ЕСТЬ"<br />
БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,<br />
ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОДРАЗУМЕВАЕМЫМИ ГАРАНТИЯМИ КОММЕРЧЕСКОЙ<br />
ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. ВЕСЬ РИСК В ОТНОШЕНИИ<br />
КАЧЕСТВА И ПРОИЗВОДИТЕЛЬНОСТИ ПРОГРАММЫ ОСТАЕТСЯ ПРИ ВАС. ЕСЛИ<br />
ПРОГРАММА ОКАЖЕТСЯ ДЕФЕКТНОЙ, ВЫ ПРИНИМАЕТЕ НА СЕБЯ СТОИМОСТЬ ВСЕГО<br />
НЕОБХОДИМОГО ОБСЛУЖИВАНИЯ, ВОССТАНОВЛЕНИЯ ИЛИ ИСПРАВЛЕНИЯ.<br />
13. НИ В КОЕМ СЛУЧАЕ, ЕСЛИ НЕ ТРЕБУЕТСЯ ПОДХОДЯЩИМ ЗАКОНОМ ИЛИ НЕ УСЛОВЛЕНО<br />
В ПИСЬМЕННОЙ ФОРМЕ, НИКАКОЙ ДЕРЖАТЕЛЬ АВТОРСКИХ ПРАВ ИЛИ НИКАКОЕ ДРУГОЕ<br />
ЛИЦО, КОТОРОЕ МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ,<br />
КАК БЫЛО РАЗРЕШЕНО ВЫШЕ, НЕ ОТВЕТСТВЕННЫ ПЕРЕД ВАМИ ЗА УБЫТКИ, ВКЛЮЧАЯ<br />
ЛЮБЫЕ ОБЩИЕ, СПЕЦИАЛЬНЫЕ, СЛУЧАЙНЫЕ ИЛИ ПОСЛЕДОВАВШИЕ УБЫТКИ,<br />
ПРОИСТЕКАЮЩИЕ ИЗ ИСПОЛЬЗОВАНИЯ ИЛИ НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ<br />
ПРОГРАММЫ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОТЕРЕЙ ДАННЫХ, ИЛИ ДАННЫМИ,<br />
СТАВШИМИ НЕПРАВИЛЬНЫМИ, ИЛИ ПОТЕРЯМИ, ПОНЕСЕННЫМИ ИЗ-ЗА ВАС ИЛИ ТРЕТЬИХ<br />
ЛИЦ, ИЛИ ОТКАЗОМ ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ЛЮБЫМИ ДРУГИМИ<br />
ПРОГРАММАМИ), ДАЖЕ ЕСЛИ ТАКОЙ ДЕРЖАТЕЛЬ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О<br />
ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ.<br />
<br />
КОНЕЦ ОПРЕДЕЛЕНИЙ И УСЛОВИЙ</div>Radisthttps://ananas.su/wiki/%D0%A7%D0%B0%D1%81%D1%82%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8BЧасто задаваемые вопросы2009-07-09T21:56:22Z<p>Radist: /* У меня не работает */</p>
<hr />
<div>Надеемся этот список ответит на все возникшие вопросы, если ответа нет, то добро пожаловать на [http://ananas.su/forum форум]<br />
<br />
==Ой, а что это у вас?==<br />
Это такая бесплатная 1с?<br />
*[[Лицензия]]<br />
*[[Ananas:Описание|Описание]]<br />
<br />
==Чем я могу помочь?==<br />
*Для начала загляните в этот [[Todo|список]]<br />
*Потом в этот [[RoadMap|список]]<br />
*Предложите свою помощь на [http://ananas.su/forum форуме]<br />
*Просто помогайте ответами на [http://ananas.su/forum форуме]<br />
*Пишите статьи в вики, требуемые страницы можно посмотреть [[Служебная:WantedPages|здесь]]<br />
==Я хочу...==<br />
*Если у вас есть практические результаты то:<br />
**Добро пожаловать на форум, все ваши предложения быдут выслушаны, а патчи при соответствии [[Условия принятия патчей в апстрим|условиям]] приняты.<br />
*Если у вас только желания и идеи то:<br />
**Начните с [http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5 ТЗ] так будет ясно чего вы хотите, а если у вас не чего не выйдет, кому-нибудь оно обязательно пригодится.<br />
<br />
==У меня не работает==<br />
<br />
Для начала рекомендуется ознакомится с [[Documentation|Документацией]], большую часть проблем это решит. Если не помогло то читайте дальше.<br />
<br />
Прежде чем писать безсодержательные посты на форуме проделайте следующие действия:<br />
<br />
1) Почитайте сообщения на форуме, воспользуйтесь поиском, возможно ваша проблема уже решена.<br />
<br />
2)Как минимум включите режим DEBUG логирования и процитируйте содержимое лог файла в своем сообщении.<br />
<br />
Включение и настройка под Линукс<br />
<br />
* перейти в ~/.ananas<br />
* найти там файл configrc<br />
* добавить секцию [variables], если ее нет.<br />
* добавить в этой секции строки примерно следующего вида <br />
<br />
log=/home/gr/ANANAS.LOG<br />
logLevel=DEBUG<br />
<br />
где:<br />
log=полное имя лога<br />
logLevel=DEBUG|INFO|ERROR по умолчанию INFO<br />
<br />
Включение и настройка под Виндовс<br />
<br />
* запустить regedit.exe<br />
* перейти в раздел [HKEY_LOCAL_MASHINE] (если есть права) или в [HKEY_CURRENT_USER] если прав нет.<br />
* создать ключ Software/ananasgroup/ananas/config/variables/log типа String и указать ему полное имя файла лога в качестве значения.<br />
* создать ключ Software/ananasgroup/ananas/config/variables/logLevel типа String и указать уровень выводимых сообщений (DEBUG - все сообщения <br />
INFO - информационные сообщения и сообщения об ошибках или ERROR - только сообщения об ошибках)<br />
* все. при следующем запуске Ананас будет отсылать сообщения в лог.<br />
<br />
3) Запускайте Ананас из консоли, а не через меню. Вывод в консоли, так же приложите к своему сообщению.<br />
<br />
4) Запустите из под дебагера:</div>Radisthttps://ananas.su/wiki/FAQFAQ2009-07-09T21:53:32Z<p>Radist: Создана новая страница размером Надеемся этот список ответит на все возникшие вопросы, если ответ нет то до...</p>
<hr />
<div>Надеемся этот список ответит на все возникшие вопросы, если ответ нет то добро пожаловать на [http://ananas.su/forum форум]<br />
<br />
=Ой а что это увас?=<br />
Это такая бесплатная 1с?<br />
=Чем я могу помочь?=<br />
=Я хочу =</div>Radisthttps://ananas.su/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%90%D0%BD%D0%B0%D0%BD%D0%B0%D1%81%D0%B0_%D0%B4%D0%BB%D1%8F_WindowsУстановка Ананаса для Windows2009-07-09T21:29:47Z<p>Radist: </p>
<hr />
<div>[http://sourceforge.net/projects/ananasproject/files/ananas-win32/ananas-setup-0.9.5.exe/download Качать здесь]<br />
<br />
При установке дистрибутива Ананаса устанавливается сервис MySQL сервера и запускаются скрипты создания и наполнения базы данных.<br />
Если у вас уже был установлен сервер MySQL, то могут возникнуть проблеммы. В такой ситуации деинсталлируйте Ананас, отключите сервис MySQL и его автозапуск и заново установите Ананас.<br />
<br />
В целом же следует проверять работу MySQL. Сервис должен быть запущен и доступен.<br />
Проверьте также работоспособность Дизайнера. Он должен запускаться в любом случае. Операция "Сохранить" в Дизайнере выполняет создание/обновление базы данных.</div>Radisthttps://ananas.su/wiki/%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D1%8E_%D0%BA%D0%BE%D0%B4%D0%B0Рекомендации по оформлению кода2009-07-09T20:39:25Z<p>Radist: </p>
<hr />
<div>В этом файле собраны рекомендации по оформлению кода,<br />
применяемые при написании, форматировании исходного кода проекта Ананас.<br />
<br />
<br />
Пример правильно оформленного коментария:<br />
<br />
/*!<br />
* \en<br />
* \brief Search on a mdtree<br />
*<br />
* \param mdItem - The index on a mdtree <br />
* \param parentObjClass - Class of an parent element in a mdtree<br />
* \param parentObjName - Heading of an element in a mdtree <br />
* \param objClass - Class of an element in a mdtree<br />
* \param objName - Heading of an element in a mdtree<br />
* \_en<br />
* \ru<br />
* \brief Поиск по дереву метаданных. <br />
*<br />
* Указываем тег-класс узла, тег-класс его родительского узла и строковые значения<br />
* для узла и его родителя.<br />
* Например: запись findItemInMD(item, "document", "Счет", "field", "Поле" ); означает ищется узел в дереве item, у этого узла<br />
* тег-класс field, текстовое значение Поле,а его родитель имеет тег-класс document и значение Счет.<br />
* Если ищем узел с классом md_headers или md_forms или md_tables и т.д. то при вызове функции<br />
* последний параметр objName указывать не нужно.<br />
* \param mdItem - Указатель на дерево<br />
* \param parentObjClass - Класс родительского элемента в дереве<br />
* \param parentObjName - Заголовок родительского элемента в дереве <br />
* \param objClass - Класс элемента в дереве<br />
* \param objName - Заголовок элемента в дереве<br />
* \_ru<br />
*/<br />
aListViewItem*<br />
aListViewItem::findItemInMD(aListViewItem *mdItem, const QString &parentObjClass, const QString &parentObjName, const QString &objClass const<br />
QString &objName) const</div>Radisthttps://ananas.su/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85Структура базы данных2009-07-09T17:31:04Z<p>Radist: /* Регистр оборотов */</p>
<hr />
<div>==ОБЩИЕ ПОЛОЖЕНИЯ==<br />
<br />
Система АНАНАС состоит из объектов. Данные каждого объекта хранятся в одной или нескольких таблицах БД. Объекты определяются классами. Каждому классу соответствует свой набор таблиц БД, для хранения объектов данного класса. Классы могут меняться настройщиком системы в определенных рамках и по определенным правилам. Изменение класса приводит к соответствующему изменению объектов и структур БД. Классы объединены в группы. Все классы одной группы имеют для хранения данных своих объектов одинаковое количество таблиц БД схожей структуры со схожими именами. Настройщик может добавлять новые классы в систему, удалять существующие. Группы не могут быть добавлены или удалены настройщиком.<br />
<br />
==Именование таблиц БД==<br />
<br />
Имена таблиц БД назначаются системой по следующему принципу:<br />
Префикс (2 символа) + идентификатор в виде числа. В пределах одной БД идентификаторы должны быть уникальны. Префикс определяет принадлежность к группе классов. <br />
<br />
==Именование полей таблиц БД==<br />
<br />
Поля таблиц БД делятся на 2 группы: системные и пользовательские. Системные поля имеют фиксированное имя для каждого типа таблицы и не доступны для пользователя и прикладного программиста. Пользовательские поля создаются при настройке прикладной конфигурации. <br />
Имена пользовательских полей таблиц БД назначаются системой по следующему правилу:<br />
Префикс (2 символа) + идентификатор в виде строки или числа. В пределах одной таблицы идентификаторы должны быть уникальны.<br />
Префикс пользовательского поля “uf”. Префикс кода типа поля (код в структуре метаданных) для полей неопределенного типа – “ut”1. В случае с полем неопределенного типа, оно фактически представлено в таблице двумя полями – значением с именем “ufxxxx” и типом “utxxxx”. Часть идентификатора поля у них одинаковая.<br />
Для идентификации конкретной записи каждая таблица БД всегда имеет поле ID типа BigInt2. При добавлении строки таблицы система получает очередное значение ID путем добавления записи в таблицу уникальностей. При этом автоматически увеличивает ID очередной записи таблицы уникальностей на 1, используется флаг autoincrement сервера БД. Нумерация начинается с 1. 0 – не корректное значение (отсутствие ссылки). Все связи между таблицами и ссылки на строки таблиц осуществляются с использованием значения поля ID.<br />
<br />
<br />
<br />
==ОБЪЕКТЫ СИСТЕМЫ==<br />
<br />
<br />
===Параметры===<br />
Параметры используются для хранения редкообновляемых или совершенно необновляемых, то есть постоянных значений простой структуры, используемых системой в процессе своей работы. В качестве примера параметров можно привести банковские реквизиты предприятия, эксплуатирующего Ананас, ФИО руководителя, главного бухгалтера.<br />
<br />
<br />
{| class="wikitable" <br />
|-<br />
!style="background: #ececec;"|Поле<br />
!style="background: #ececec;"|Тип<br />
!style="background: #ececec;"|Обязательное<br />
!style="background: #ececec;"|Примечание<br />
|-<br />
!style="background: #ececec;"|id<br />
!style="background: #ececec;"|BigInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Уникальный идентификатор объекта<br />
|-<br />
!style="background: #ececec;"|Code<br />
!style="background: #ececec;"|Char(8)<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Пользовательский код элемента<br />
|-<br />
!style="background: #ececec;"|name<br />
!style="background: #ececec;"|Char(25)<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Наименование элемента<br />
|-<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
|-<br />
!style="background: #ececec;"|*******<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|Пользовательские поля<br />
|}<br />
<br />
===Справочник===<br />
Справочник является универсальным многоуровневым хранилищем данных, используемым для представления информации о сотрудниках предприятия, номенклатуре товаров, изделий, контрагентах, банках и проч. <br />
Логически справочник представляет собой дерево произвольной глубины вложенности.<br />
<br />
'''Таблица элементов'''<br />
Префикс “se”<br />
<br />
Поля таблицы<br />
{| class="wikitable" <br />
|-<br />
!style="background: #ececec;"|Поле<br />
!style="background: #ececec;"|Тип<br />
!style="background: #ececec;"|Обязательное<br />
!style="background: #ececec;"|Примечание<br />
|-<br />
!style="background: #ececec;"|id<br />
!style="background: #ececec;"|BigInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Уникальный идентификатор записи<br />
|-<br />
!style="background: #ececec;"|idg<br />
!style="background: #ececec;"|LongInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|ID группы или 0 – вне групп.<br />
|-<br />
!style="background: #ececec;"|ido<br />
!style="background: #ececec;"|LongInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|ID элемента справочника-владельца (для подчиненных справочников). = 0 – нет владельца<br />
|-<br />
!style="background: #ececec;"|code<br />
!style="background: #ececec;"|Char(8)<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Пользовательский код элемента<br />
|-<br />
!style="background: #ececec;"|name<br />
!style="background: #ececec;"|Char(25)<br />
!style="background: #ececec;"|<br />
!style="background: #ececec;"|Наименование элемента<br />
|-<br />
!style="background: #ececec;"|*******<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|Пользовательские поля<br />
|}<br />
<br />
===Таблица групп===<br />
Префикс “sg”<br />
<br />
Поля таблицы<br />
{| class="wikitable" <br />
|-<br />
!style="background: #ececec;"|Поле<br />
!style="background: #ececec;"|Тип<br />
!style="background: #ececec;"|Обязательное<br />
!style="background: #ececec;"|Примечание<br />
|-<br />
!style="background: #ececec;"|id<br />
!style="background: #ececec;"|BigInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Уникальный идентификатор записи<br />
|-<br />
!style="background: #ececec;"|idp<br />
!style="background: #ececec;"|BigInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Код родительской (вышестоящей) группы или 0 – для корневых групп<br />
|-<br />
!style="background: #ececec;"|code<br />
!style="background: #ececec;"|Char(8)<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Пользовательский код элемента<br />
|-<br />
!style="background: #ececec;"|level<br />
!style="background: #ececec;"|Int<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Уровень в дереве групп. 0 – корень<br />
|-<br />
!style="background: #ececec;"|name<br />
!style="background: #ececec;"|Char(25)<br />
!style="background: #ececec;"|<br />
!style="background: #ececec;"|Наименование элемента<br />
|-<br />
!style="background: #ececec;"|*******<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|Пользовательские поля<br />
|}<br />
<br />
==Документ==<br />
<br />
===Таблица шапки===<br />
Префикс “dh”<br />
<br />
Поля таблицы<br />
{| class="wikitable" <br />
|-<br />
!style="background: #ececec;"|Поле<br />
!style="background: #ececec;"|Тип<br />
!style="background: #ececec;"|Обязательное<br />
!style="background: #ececec;"|Примечание<br />
|-<br />
!style="background: #ececec;"|id<br />
!style="background: #ececec;"|LongInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Уникальный идентификатор записи<br />
|-<br />
!style="background: #ececec;"|date<br />
!style="background: #ececec;"|Date<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Дата регистрации в журнале документов<br />
|-<br />
!style="background: #ececec;"|name<br />
!style="background: #ececec;"|Char(20)<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Исходящий номер документа в журнале регистрации<br />
|-<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
|-<br />
!style="background: #ececec;"|*******<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|Пользовательские поля<br />
|}<br />
<br />
* Примечание<br />
Исходя из структурной декомпозиции шапки документа на таблицу журналов документов и таблицу документа с пользовательскими реквизитами дату,<br />
номер и другие общие реквизиты документа следует брать из журнала документов.<br />
<br />
===Таблица списков===<br />
Префикс “dl”<br />
На каждую табличную часть документа создается своя таблица БД. Имя таблицы формируется по следующему правилу:<br />
Префикс+ИдентификаторДокумента+ИдентификаторТаблицы, где идентификатор документа и идентификатор таблицы берутся из конфигурации. Идентификаторы таблиц должны быть уникальны в пределах одного документа.<br />
<br />
Поля таблицы<br />
{| class="wikitable" <br />
|-<br />
!style="background: #ececec;"|Поле<br />
!style="background: #ececec;"|Тип<br />
!style="background: #ececec;"|Обязательное<br />
!style="background: #ececec;"|Примечание<br />
|-<br />
!style="background: #ececec;"|id<br />
!style="background: #ececec;"|BigInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Уникальный идентификатор записи<br />
|-<br />
!style="background: #ececec;"|idd<br />
!style="background: #ececec;"|BigInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|ID Документа-владельца<br />
|-<br />
!style="background: #ececec;"|lnum<br />
!style="background: #ececec;"|int<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Номер строки внутри табличной части. Нумерация с 1.<br />
|-<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
|-<br />
!style="background: #ececec;"|*******<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|Пользовательские поля<br />
|}<br />
<br />
==Регистр остатков==<br />
<br />
Отражает обороты аналитического учета и хранит остатки разрезов аналитики. Система автоматически пересчитывает остатки в таблице остатков при проведении документов.<br />
<br />
===Таблица оборотов===<br />
Префикс “rg”<br />
<br />
Поля таблицы<br />
{| class="wikitable" <br />
|-<br />
!style="background: #ececec;"|Поле<br />
!style="background: #ececec;"|Тип<br />
!style="background: #ececec;"|Обязательное<br />
!style="background: #ececec;"|Примечание<br />
|-<br />
!style="background: #ececec;"|Id<br />
!style="background: #ececec;"|BigInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Уникальный идентификатор записи<br />
|-<br />
!style="background: #ececec;"|idd<br />
!style="background: #ececec;"|BigInt<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|ID документа.<br />
|-<br />
!style="background: #ececec;"|idt<br />
!style="background: #ececec;"|Int<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|ID строки активной табличной части документа при выполнении операции.<br />
|-<br />
!style="background: #ececec;"|opcode<br />
!style="background: #ececec;"|Int<br />
!style="background: #ececec;"|*<br />
!style="background: #ececec;"|Код операции<br />
|-<br />
!style="background: #ececec;"|dk<br />
!style="background: #ececec;"|Char(1)<br />
!style="background: #ececec;"|<br />
!style="background: #ececec;"|Дебет/Кредит<br />
|-<br />
!style="background: #ececec;"|<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|<br />
|-<br />
!style="background: #ececec;"|*******<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|Пользовательскиереквизиты разрезов аналитики<br />
|-<br />
!style="background: #ececec;"|<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|<br />
|-<br />
!style="background: #ececec;"|*******<br />
!style="background: #ececec;"|ЧИСЛО<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|Пользовательские реквизиты значений аналитики<br />
|-<br />
!style="background: #ececec;"|<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|<br />
|-<br />
!style="background: #ececec;"|*******<br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"| <br />
!style="background: #ececec;"|Информационные пользовательские реквизиты<br />
|}<br />
<br />
===Таблица остатков===<br />
Префикс “rs”<br />
<br />
Поля таблицы<br />
<br />
==Регистр оборотов==<br />
Похож на регистр остатков, но отражает только обороты.<br />
<br />
===Таблица оборотов===<br />
Префикс “ro”<br />
<br />
Поля таблицы<br />
<br />
==СЛУЖЕБНЫЕ ОБЪЕКТЫ СИСТЕМЫ==<br />
<br />
===Перекрестные ссылки===<br />
<br />
Таблица перекрестных ссылок<br />
Имя “a_ptrs”<br />
<br />
Поля таблицы<br />
<br />
===Нумератор документов===<br />
<br />
Таблица нумератора<br />
Имя “a_num”<br />
<br />
Поля таблицы<br />
<br />
===Журнал документов===<br />
<br />
Журнал документов предназначен для регистрации документов в порядке поступления в БД и хранения реквизитов документов, общих для всех документов системы.<br />
<br />
'''Таблица журнала документов'''<br />
Имя “a_journ”<br />
<br />
Поля таблицы</div>Radisthttps://ananas.su/wiki/%D0%90%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5Администрирование2009-07-09T17:21:21Z<p>Radist: Создана новая страница размером В системе АНАНАС предусмотрен определяемый Настройщиком набор ролей. Кажд...</p>
<hr />
<div>В системе АНАНАС предусмотрен определяемый Настройщиком набор ролей. Каждой роли сопоставляются права чтения/записи данных объектов системы. Информация о ролях (имя, описание ) хранится в конфигурации в разделе Rights.<br />
При создании каждого нового объекта системы Настройщик определяет набор прав доступа к этому объекту для каждой роли.<br />
Администратор БД создает учетные записи пользователей и соотносит их с предопределенными ролями.<br />
Для каждой роли предусматривается свой набор элементов управления в главном меню и панели инструментов в Ananas:Engine. Если пользователь выполняет несколько ролей, то у него есть возможность выбрать интерфейс любой своей роли. Это делается в меню Options->Interface.<br />
У администратора БД есть возможность назначать права доступа к конкретным экземплярам объектов в БД для конкретного пользователя. В БД хранится таблица с uid объекта, id пользователя и его правами на данный объект.</div>Radisthttps://ananas.su/wiki/%D0%A7%D1%82%D0%BE_%D1%82%D0%BE_%D1%87%D1%82%D0%BE_%D1%81%D1%82%D0%B0%D0%BD%D0%B5%D1%82_RoadmapЧто то что станет Roadmap2009-07-06T23:15:30Z<p>App: </p>
<hr />
<div>Roadmap делится на развитие платформы и бизнес-схемы<br />
<br />
<br />
== Платформа ==<br />
Практическая информация <br />
*[[Портирование на qt4]]<br />
<br />
1. принципиально:<br />
<br />
- она будет полностью многопользовательская.<br />
- будет полный рефакторинг (пересмотр с одновременным улучшением) кода<br />
- будут оптимизированы объекты ананаса<br />
- подготовлена полная документация<br />
- в планах - веб-расширения. <br />
Практически:<br />
1. Чистка кода от остатков QT3, переход с QSA на QtScript или WebKit JavaScript?<br />
2.<br />
<br />
<br />
== Бизнес-схема ==<br />
<br />
Базовой выбрана Бизнес-схема для бюджетных организаций<br />
[http://ananas.su/forum/viewtopic.php?f=13&t=35 Обсуждение]<br />
<br />
Задачи:<br />
<br />
=== 1 этап. Документооборот получателя бюджетных средств с казначейством. ===<br />
<br />
1.1. Исходящие документы. Заявка на кассовый расход, заявка на получение наличных, затем остальные.<br />
1.1.1. Ввод исходящих документов<br />
1.1.2. Печать исходящих документов<br />
1.1.3. Выгрузка исходящих документов в структурированный текстовый файл<br />
1.2. Входящие документы. Выписка из лицевого счёта, расходное расписание, затем остальные.<br />
1.2.1. Ввод входящих документов<br />
1.2.2. Печать входящих документов<br />
1.2.3. Загрузка входящих документов из структурированного текстового файла<br />
1.3. Лицевой счёт<br />
1.3.1. Отображение состояния лицевого счёта.<br />
1.3.2. Печать отчётов по лицевому счёту.<br />
1.4. Контроль<br />
1.4.1. Контроль исходящих документов с состоянием лицевого счёта.<br />
1.4.2. Контроль входящих документов с состоянием лицевого счёта и ранее принятыми документами.<br />
<br />
=== 2 этап. Внебюджетные средства ===<br />
<br />
<br />
=== 3 этап. Документооборот распорядителя бюджетных средств ===<br />
<br />
<br />
=== 4 этап. Документооборот администратора поступлений. ===<br />
<br />
<br />
=== 5 и далее: аренда, источники финансирования - встречаются достаточно редко. ===<br />
<br />
<br />
=== Нормативная база: ===<br />
<br />
- Приказ МинФина 8н о кассовом обслуживании + связанные с ним нормативные документы<br />
[http://prcpo.ru/sites/default/files/02122008treb.rar - Требования к форматам файлов]</div>Radisthttps://ananas.su/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2Установка из исходников2009-07-06T22:01:53Z<p>Radist: Создана новая страница размером sudo cp src/ananas/ananas /usr/bin/ sudo cp src/designer/ananas-designer /usr/bin/ sudo cp -P src/lib/libananas.so* /usr/li...</p>
<hr />
<div> sudo cp src/ananas/ananas /usr/bin/<br />
sudo cp src/designer/ananas-designer /usr/bin/<br />
sudo cp -P src/lib/libananas.so* /usr/lib/<br />
sudo cp src/plugins/libananasplugin.so /usr/lib/<br />
sudo ln -s /usr/lib/libananasplugin.so /usr/lib/qt-3.3/plugins/designer/<br />
sudo mkdir -p /usr/share/ananas/translations<br />
/usr/lib/qt-3.3/bin/lrelease translations/*.ts<br />
sudo cp translations/*.qm /usr/share/ananas/translations/<br />
sudo cp -r src/designer/templates /usr/share/ananas/<br />
sudo mkdir -p /usr/share/ananas/inventory<br />
sudo cp applications/inventory/*.odt /usr/share/ananas/inventory/<br />
sudo cp applications/inventory/*.ods /usr/share/ananas/inventory/<br />
sudo mkdir -p /usr/share/ananas/extensions<br />
sudo cp src/extensions/libaext_meta.so /usr/share/ananas/extensions/<br />
sudo cp src/extensions/libaextxml.so /usr/share/ananas/extensions/<br />
sudo cp /src/extensions/libaexttext.so /usr/share/ananas/extensions/<br />
sudo mkdir -p /etc/ananas<br />
sudo cp applications/inventory/inventory.cfg /etc/ananas/<br />
sudo cp applications/inventory/inventory.rc /etc/ananas/<br />
sudo cp applications/inventory/inventory-demo.cfg /etc/ananas/<br />
sudo cp applications/inventory/inventory-demo.rc /etc/ananas/</div>Radisthttps://ananas.su/wiki/%D0%9F%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%B0%D1%82%D1%87%D0%B0Подготовка патча2009-07-06T21:56:20Z<p>App: </p>
<hr />
<div>Инструкция по подготовке патча для отсылки в проект Ананас<br />
<br />
<br />
Патч можно подготовить разными способами. Здесь описан вариант с использованием CVS.<br />
<br />
Подразумевается, что вы ведете работу над кодом Ананаса в своем рабочем каталоге. И для создания патча создаете отдельный пустой каталог, в котором выполняете следующие действия:<br />
<br />
<br />
== шаг 1. == <br />
Забираем исходный код Ананаса из CVS<br />
<br />
cvs -d :pserver:anonymous@www.leaderit.ru:/var/cvs login<br />
<br />
В ответ на запрос пароля - нажать Enter<br />
<br />
cvs -d :pserver:anonymous@www.leaderit.ru:/var/cvs co ananas<br />
<br />
в результате в папке ananas получаем последнюю версию исходного кода Ананаса<br />
== шаг 2. ==<br />
Копируем из нашего рабочего каталога в соответствующие подпапки текущей папки те файлы, изменения в которых мы хотим поместить в патч, переписывая файлы, взятые из CVS.<br />
== шаг 3. ==<br />
Проверяем работоспособность полученного в папке ananas кода.<br />
== шаг 4. ==<br />
Так как с момента извлечения кода из cvs могло пройти достаточно много времени, потраченного на исправления и тестирование, необходимо обновить наши файлы в папке ananas изменениями, которые возможно появились в CVS репозитарии Ананаса.<br />
<br />
cvs -d :pserver:anonymous@www.leaderit.ru:/var/cvs up ananas<br />
<br />
Вернуться к шагу 3, если из CVS пришло хотя бы одно обновление.<br />
== шаг 5. ==<br />
Создаем патч, находясь в папке, в которой мы выполняли команды на шаге 1.<br />
<br />
cvs -d :pserver:anonymous@www.leaderit.ru:/var/cvs diff -c ananas > myname-ananas-20070404.patch<br />
<br />
заменив myname своим именем, и дату соответственно текущей<br />
== шаг 6. ==<br />
Визуальная проверка патча на предмет попадания в него случайных изменений или непопадания новых файлов.<br />
== шаг 7. ==<br />
Запаковываем патч и высылаем в список рассылки http://groups.google.com/group/ananasproject <br />
Обязательно отправьте письмо с уведомлением в список. Простой аплоад файла ни кто не заметит<br />
<br />
<br />
'''Рекомендация'''. Правильным подходом к разработке считается такой порядок работы, когда изменения в исходный код вносятся часто и небольшими порциями. В такой ситуации рекомендуется вести разработку прямо в папке с исходниками Ананаса, полученными командой cvs co. Это сократит число шагов по подготовке патча.</div>Radisthttps://ananas.su/wiki/%D0%A2%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D1%8B_%D0%B8_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8FТермины и определения2009-07-06T21:44:42Z<p>App: </p>
<hr />
<div>Термины и определения, которые необходимо использовать в документации, пользовательском интерфейсе, в рекламе, в разговорах, и т.д.<br />
<br />
* Общая терминология<br />
**Ананас - платформа автоматизации учета<br />
**Бизнес-схема - совокупность правил, документов, алгоритмов учета, выраженная в фоме метаданных, хранимых в задающая порядок ведения автоматизированного учета на платформе Ананас<br />
**"Ананас.Оперативный учет" или просто бизнес схема "Оперативный учет" - бизнес схема, обеспечивающая автоматизацию операций купли-продажи, поступления, списания товаров, ведения кассы, банковских операций на малых и средних предприятиях торговли. <br />
<br />
*Терминология среды разработки<br />
**"Ананас.Дизайнер" - приложение настроки Бизнес схем. Допустимо использование слова Дизайнер отдельно, без если из контекста понятно, что речь об Ананас.Дизайнере<br />
**Ананас-Скрипт - втроенные язык программирования платформы Ананас. Допустимо использование слова Скрипт без префикса, если контекст не допускает неоднозначного трактования<br />
**Редактор диалогов - редактор диалогов экранных форм документов, справочников и других объектов платформы доступный пользователю программы Ананас.Дизайнер<br />
<br />
<br />
== Стандарт кодирования ==<br />
<br />
Соглашения по наименованию функций в Ананас-Скрипт<br />
<br />
Предусматривается что имена функций в Глобальном модуле начинаются с Прописной буквы. <br />
Имена функций в модуле текущего документа начинаются со строчной буквы.<br />
<br />
Соглашения по наименованию объектов в Бизнес-Схемах<br />
<br />
Справочники и Документы прделагается называть в соответствии с тем какую сущность представляет собой этот объект метаданных. <br />
Например: Справочник складов следует называть "Склады", но не "Справочник складов" или Справочник контрагентов следует называть<br />
"Контрагенты", но не "Справочник Контрагентов" то же относится и к документам документ перемещение следует называть просто <br />
"Перемещение по складам" и т.д.</div>Radisthttps://ananas.su/wiki/%D0%A3%D1%87%D0%B5%D1%82_%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BF%D0%BE%D1%80%D1%82%D0%BD%D1%8B%D1%85_%D1%83%D1%81%D0%BB%D1%83%D0%B3_(%D0%BB%D0%BE%D0%B3%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0)Учет транспортных услуг (логистика)2009-07-06T21:19:36Z<p>App: </p>
<hr />
<div>Учет заявок. Транспортная задача.<br />
Dmitriy L. Kruglikov<br />
<br />
Типовая бизнес-схема позволяет вести учет поступления заявок и реализации услуг,<br />
получать данные о состоянии заявок на любую дату.<br />
Просматривать движение услуг в требуемые промежутки времени,<br />
в разрезе требуемых контрагентов.<br />
<br />
Доступна в [http://groups.google.com/group/ananasproject/files файлах списка рассылки ananasproject] <br> [http://ananasproject.googlegroups.com/web/transdept.cfg.zip?gda=kZ7yukMAAAA2wppYCWHqWLRKYGqUDjLQYdRs04o2fItJcyPBSWZxHE8Tb0O2BZNp3AP9dl5Hta8ytiJ-HdGYYcPi_09pl8N7FWLveOaWjzbYnpnkpmxcWg&gsc=V0VckxYAAACcWAkDEFxPqFh4QHDygd4ZZMjd3COE4YpPN7Vs0TOmqg transdept.cfg.zip]</div>Radisthttps://ananas.su/wiki/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_mysqlНастройка mysql2009-07-03T09:28:14Z<p>Radist: </p>
<hr />
<div>'''Настраиваем базу mysql'''<br />
<br />
Для корректной работы нужно добавить в раздел [mysqld] в файле <br />
/etc/mysql/my.cnf<br />
/etc/my.cnf - в openSUSE<br />
(под Windows путь другой) кодировки по умолчанию.<br />
<br />
character_set_server = utf8<br />
collation_server = utf8_general_ci<br />
<br />
затем перегрузить mysql командой<br />
<br />
<br />
/etc/init.d/mysql restart<br />
<br />
Теперь можно создать базы в mysql например таким скриптом<br />
<br />
<br />
#!/bin/sh<br />
sudo mysqladmin -u root -p create ananas_system<br />
sudo mysqladmin -u root -p create ananas_inventory<br />
sudo mysqladmin -u root -p create ananas_inventory_demo<br />
sudo mysql -u root -p ananas_inventory < /usr/share/ananas/inventory/inventory.sql<br />
sudo mysql -u root -p ananas_inventory_demo < /usr/share/ananas/inventory/inventory-demo.sql<br />
<br />
у кого нет пароля можно просто нажимать ентер (но первый раз для sudo пароль указать нужно)<br />
для остальных нужно пять раз ввести пароль на рута mysql<br />
<br />
Если вам по каким то причинам вам не подходят переменные<br />
character_set_server = utf8 и collation_server = utf8_general_ci по умолчанию.<br />
Можно создавать базы данных таким способом<br />
<br />
<br />
sudo mysqladmin -u root -p create ananas_system<br />
sudo mysqladmin -u root -p create ananas_inventory<br />
$ mysql<br />
> use ananas_system;<br />
> ALTER DATABASE DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;<br />
> use ananas_inventory;<br />
> ALTER DATABASE DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;<br />
> quit<br />
<br />
sudo mysql -u root -p ananas_inventory < /usr/share/ananas/inventory/inventory.sql</div>Radist