Финансово-Управленческий Комплекс БУХта.
Конфигурация режимов для сопровождения ''BuhtaSupport''
Описание конфигурации режимов для
разработки и сопровождения
Содержание
Локальные
настройки интерфейса
Режим
поиска заблокированных объектов
Режим
разнесения расходов будущих периодов
Версия: 1.52
Описание:
Режим "Доктор" занимается поиском оторвавшихся проводок, догспец, докспец и записей таблицы "Зарплата".
В форме запрашивается вид документа или договора (в зависимости от типа
записей) куда прикрепляются потеряные записи.
- докспец (найденные записи цеплять к создаваемому
документу);
- догспец (найденные записи цеплять к договору вида,
указанного в соотв. поле на форме);
- записей таблицы "Зарплата", в поле "Документ" которых -
несуществующее значение или документ, вид которого отличается от указанного в
общей настройке ЗП (поле "Вид документа расчетный лист з/п") (найденные записи цеплять к создаваемому
документу).
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Создание документа доктора] |
... |
|
Объект SQL |
[_Создание документа доктора (догспец)] |
Хранимая процедура |
|
Объект SQL |
[_Создание документа доктора (докспец и проводки)] |
Хранимая процедура |
|
Объект SQL |
[_Создание документа доктора (зарплата)] |
Хранимая процедура |
Версия: 1.66
Описание:
Режим Доктор (вызов производится
через форму Создание документа доктора)
занимается поиском ошибочных проводок, спецификаций договора, спецификаций
документа и записей таблицы "Зарплата".
Поиск осуществляется по трем алгоритмам:
-
Докспец и проводки,
-
Догспец,
- Зарплата.
Если поиск осуществляется по алгоритму Зарплата, выполняются следующие проверки:
- проверка на наличие документа, указанного в поле Документ таблицы Зарплата;
- в таблице Зарплата должны быть ссылки на документы только того вида, который указан в настройке зарплаты как “Расчетный лист ЗП”;
- проверка на совпадение полей Сотрудник в таблице Зарплата и Получатель в соответствующей записи таблицы Документ;
- проверка на наличие шифра, указанного в поле Шифр таблицы Зарплата.
Если выставлен признак “проверять совпадение даты с датой Документа” осуществляется проверка
- на совпадение полей Дата в таблице Зарплата и в соответствующей записи таблицы Документ;
При выставленном признаке “проверять совпадение даты с датой Документа” становится доступным признак “в т.ч. нулевые даты”. При выставленном признаке “в т.ч. нулевые даты”:
- в список ошибочных попадают те записи, даты которых не совпадают с датой документа (и равны нулю).
Если выставлен признак “с привязанными проводками” в список ошибочных записей попадают записи из таблицы Проводка, которые ссылаются на ошибочные записи из таблицы Зарплата.
Если поиск осуществляется по алгоритму Докспец и проводки, выполняются следующие проверки:
- проверка на наличие документа, указанного в поле Документ таблиц Докспец и Проводка;
- виды проводки и спецификации документа, указанные соответственно в таблицах Проводка и Докспец должны соответствовать виду документа, на который ссылаются эти проводка и спецификация;
- проверка на наличие вида спецификации документа и вида проводки, указанных соответственно в таблицах Докспец и Проводка.
Если выставлен признак “проверять совпадение даты с датой Документа” осуществляется проверка
- на совпадение полей Дата в таблицах Докспец и Проводка и в соответствующей записи таблицы Документ;
При выставленном признаке “проверять совпадение даты с датой Документа” становится доступным признак “в т.ч. нулевые даты”. При выставленном признаке “в т.ч. нулевые даты”:
- в список ошибочных попадают те записи, даты которых не совпадают с датой документа (и равны нулю).
Если выставлен признак “с привязанными проводками” в список ошибочных записей попадают записи из таблицы Проводка, которые ссылаются на ошибочные записи из таблицы Докспец.
Если поиск осуществляется по алгоритму Догспец, выполняются следующие проверки:
- проверка на наличие договора, указанного в поле Договор таблицы Догспец;
- вид спецификации договора, указанный в таблице Догспец должен соответствовать виду договора, на который ссылается эта спецификация;
- проверка на наличие вида спецификации договора, указанного в таблице Догспец.
Если выставлен признак “проверять совпадение даты с датой Договора” осуществляется проверка
- на совпадение полей Дата в таблице Догспец и в соответствующей записи таблицы Договор;
При выставленном признаке “проверять совпадение даты с датой Договора” становится доступным признак “в т.ч. нулевые даты”. При выставленном признаке “в т.ч. нулевые даты”:
- в список ошибочных попадают те записи, даты которых не совпадают с датой договора (и равны нулю).
При нажатии “горячих” клавиш <Alt+D> в таблице ошибочных записей, появляется новая форма [Создание документа доктора (запись в документ)], которая позволяет по отмеченным ошибочным записям создавать документ или договор доктора
- можно создать новый документ (договор) - указать вид - и перенести ошибочные отмеченные записи в него; при выставленном признаке “с разбивкой по месяцам” за каждый месяц создается свой документ (договор)
- можно перенести ошибочные отмеченные записи в существующий документ (договор) - выбрать его из списка.
Состав:
|
Объект |
Название |
Описание |
|
Таблица |
[#Документ доктора] 6 полей |
… |
|
Форма |
[Создание документа доктора] |
Изменена в версии 2.157 |
|
Форма |
[Создание документа доктора (запись в документ)] |
… |
|
Объект SQL |
[_Создание документа доктора (догспец)] |
Хранимая процедура |
|
Объект SQL |
[_Создание документа доктора (докспец и проводки)] |
Хранимая процедура |
|
Объект SQL |
[_Создание документа доктора (зарплата)] |
Хранимая процедура |
|
Объект SQL |
[_Создание документа доктора (поиск ошибок)] |
Хранимая процедура |
История изменений:
|
Версия |
Список изменений |
|
1.52 |
Режим собран и проверен. |
|
1.66 |
Режим собран и проверен. |
|
2.157 |
Для работы под ОС Windows 7,8 откорректировано расположение командных кнопок и линий прокруток. |
Версия: 1.79
Описание:
Форма позволяет удалять записи из таблицы "Журнал" (Журнал событий).
В форме запрашиваются Период и Таблицы, для которых надлежит удалить записи. Параметр “Таблица” принимает значения: “Все”, “Одна”, “Список”. Список таблиц, формируется из тех таблиц, по которым составлен Журнал событий.
По кнопке "Выполнить" производится удаление записей из таблицы "Журнал" по указанному фильтру.
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Стандартная. Очистка журнала событий] |
… |
Версия: 1.52
Описание:
Экспортировать из списка форм (кнопка "Импорт")
На форме "Локальные настройки интерфейса" возможно проводить
следующие операции:
I. Очистка реестра от устаревших записей комплекса Бухта
II. Копирование настроек Бухты, хранящихся в реестре, в файл.
III. Импорт реестровых настроек Бухты из файла созданного из этой формы (п.2)
На основе заявки 7230
Добавлен еще один пункт в меню "Удаление настроект
оборотной ведомости и карточки движения по субконто"
с номером IV.
Реализован аналогично части 1.
I. Очистка реестра от устаревших записей комплекса Бухта
Список разделов реестра, подлежащих удалению:
HKEY_CURRENT_USER\Software/BuhtaClient
HKEY_CURRENT_USER\Band
HKEY_CURRENT_USER\Columns
HKEY_CURRENT_USER\Software\FastReport
HKEY_CURRENT_USER\PrintPreviewSetup
HKEY_CURRENT_USER\Software\Developer Express
HKEY_CURRENT_USER\Software\Altium (Dream VCL)
для ВСЕХ баз из полученного с сервера списка:
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TSkidkaCenaForm
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TSkidkaCenaGroupForm
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TSkidkaCenaGroupClientForm
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TSkidkaTovarClientForm
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TSkidkaClientForm
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TSkidkaTovarForm
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TSkidkaForm
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TPriceForm
Для удаления используется метод TRegister.DeleteKey(путь)
II. Для записи данных из реестра в файл используется следующий формат:
- заголовок файла
- путь реестра (полностью)
- имя ключа=значение
Читается все по ветке реестра \SoftWare\BM\ИмяБазы
Эти данные также можно вносить стандартными средствами windows
Пример
REGEDIT4
[HKEY_CURRENT_USER\Software\BM\Developers\Forms\TActiveUsersForm\FormSizePos]
"FormVersion"="1234"
[HKEY_CURRENT_USER\Software\BM\Developers\Forms\TActiveUsersForm\FormSizePos]
"Flags"="0"
[HKEY_CURRENT_USER\Software\BM\Developers\Forms\TActiveUsersForm\FormSizePos]
"ShowCmd"="1"
[HKEY_CURRENT_USER\Software\BM\Developers\Forms\TActiveUsersForm\FormSizePos]
"ssssss"=dword:23423423
Нюансы:
Не получается прочитать BinaryData так как
пользовательские формы не могут работать с указателями, которые необходимы для
получения BinaryData из реестра.
В перспективе: добавить такую функцию.
III. При чтении данных из файла действует следующий алгоритм
1. прочитать заголовок файла.
2. Прочитать строку с путем (веткй реестра)
2а. Подменить название базы на нужное (выбранное в списке перед запуском)
3. Прочитать одну или несколько строк вида "ИмяКлюча"="Значение"
или "ИмяКлюча"=тип:значение.
Т.к. в реестре могут быть записи в несколько строк (см. ниже пример) процесс
чтения строки со значением проводится столько раз пока количество " в
прочитанных строках не станет равным 2 (для значений типа dword)
или 4 (для строчных значений)
Пример
[HKEY_CURRENT_USER\Software\BM\Developers\Forms\TActiveUsersForm\FormSizePos]
"ssssss"="первая строка
вторая строка
третья строка
"
В процессе рабора файла пишутся данные группы: Ветка,
ИмяКлюча, Тип, Значение
IV Очистка реестра от записей комплекса Бухта
Список разделов реестра, подлежащих удалению для ВСЕХ баз из полученного с
сервера списка:
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TOborotkaForm
HKEY_CURRENT_USER\Software\BM\*имя_базы*\Forms\TAllProvodkiForm
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Локальные настройки интерфейса] |
... |
История изменений:
|
Версия |
Список изменений |
|
1.52 |
Режим собран и проверен. |
Версия: 1.52
Описание:
Пользовательский режим поиска заблокированных (для синхронизации) объектов и их
разблокирования
Форма пользователя:
1. Поле "Типы объектов": происходит выбор типа объекта (или всех
типов объектов), заблокированных фразой "--не синхронизировать".
Тип поля: раскрывающийся список (ComboBox) со
следующими значениями:
- "<Все>"
- "View"
- "Функция"
- "Процедура"
- "Триггер"
2. Кнопка <Выборка>- происходит поиск в БД объектов, заблокированных фразой
"--не синхронизировать" и вывод списка объектов в Grid
со следующими столбцами:
- "Тип объекта";
- "Название".
Grid должен постоянно находиться в режиме пометки
записей.
Алгоритм, по которому синхронизатор выявляет объекты, заблокированные фразой
"--не синхронизировать", уточнить у Шперлинга
А.
3. Кнопки <Отметить все>, <Снять все отметки>помечают все объекты в списке
найденных объектов или снимают отметку.
4. Кнопка <Выполнить>, при нажатии на которую:
- происходит проверка, существует ли хотя бы одна отмеченная запись; если не существует
– появляется соответствующее сообщение и запуск режима снятия блокировки не
происходит;
- из отмеченных объектов происходит удаление фразы "--не
синхронизировать".
5. Кнопка <Отмена>.
Из формы в запрос чреез GlobalVar
передается тип искомых объектов.
Запрос настроен на таблице юрлицо, но фактически
данные получаются из-за VBScript написанного в
запросе.
В запросе происходит поиск под строки "не синхр"
среди указанного типа объектов.
После этого они выводятся в список в форме. Из тел отмеченных удалается запись "не синхр"
и заменяется CREATE на ALTER.
!!!!!!!!!!!!
Объекты переименованные через Enterprise Manager не будут разблокированы по причине ошибки
SQL-сервера
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Разблокирование объектов] |
... |
|
Запрос |
[Блокированные объекты]+VBScript |
... |
История изменений:
|
Версия |
Список изменений |
|
1.52 |
Режим собран и проверен. |
|
2.138 |
Исправлены форма [Разблокирование объектов] и запрос со скриптом [Блокированные объекты]: - фразы “ISNULL(OBJECT_ID(‘tempdb..” и “NULLIF(OBJECT_ID(‘tempdb..” заменены на аналогичные с использованием IS NOT NULL. |
Версия: 1.52
Описание:
Режим запускается hot-key формой на списке договоров
(CTRL + R).
В hot-key форме производится проверка соответствия
вида обрабатываемого договора с видом указанным в [Настройке].
Вид документа и докспец также настраиваются.
На форме будет находится ссылка на таблицу настроек.
После нажатия «Выполнить» происходит поочередная провера
каждого договора на соответствие виду.
Если имеются ошибки формируется протокол с указанием списка ошибок и режим не
работает.
Если все в порядке для каждого договора запускается процедура [_Списание_расходов_буд_периода(есс)],
в которй формируются документы.
Параметры режима хранятся в таблице [Настройка] в секции «_расходы
буд периодов»
[ВидДоговора]
[ВидДокумента]
[ВидДокспец]
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Расходы будущих периодов] |
… |
|
Форма |
[Настройка расходов буд периодов] |
… |
|
SQL-процедура |
[_Списание_расходов_буд_периода(есс)] |
… |
История изменений:
|
Версия |
Список изменений |
|
1.52 |
Режим собран и проверен. |
|
2.138 |
Исправлена форма [Расходы будущих периодов]: - фразы “ISNULL(OBJECT_ID(‘tempdb..” и “NULLIF(OBJECT_ID(‘tempdb..” заменены на аналогичные с использованием IS NOT NULL. |
Версия: 1.58
Описание:
Функция [_dev_Строка из текста] возвращает строку
помещенную между #13 с порядковым номером казанным во втором параметре функции.
Функцию можно использовать для получения части строк из поля [Текст] договора
или документа.
Пример: SELECT dbo.[_Строка
из текста] ('11111'+char(13)+'2222'+char(13)+'333333', 2)
Результат: '2222'
Функция [_dev_Субсчета счетов] возвращает таблицу со
всеми возможными субсчетами.
Входной параметр @schets строка вида StringAsSQL('счет1,счет2,счет3,счет4') или StringAsSQL('''счет1'',''счет2'',''счет3'',''счет4''')
Входной параметр @param – тип разделителя. Если не
указан – тогда собираются субсчета используя все возможные разделители
указанные в Настройке.
Пример использования: WHERE Проводка.Кредит in (SELECT * FROM [_dev_Субсчета
счетов] ('62,76', ''))
Функция [_dev_Целое из строки] возвращает
целочисленное значение из полученной строки.
Входной параметр @input строка вида 'abc1defg2higk5'
Входной параметр @alternate – альтернативный
результат в случае, если символы цифр в данной строке не встретятся.
Пример использования: вставить в поле телефон из куска текста описания
сотрудника или контактного лица
SELECT dbo.[_dev_Целое из
строки] ('abc1defg2higk5', 0) // результат 125
SELECT dbo.[_dev_Целое из
строки] ('abc defg*higk_', 1234567) // результат 1234567
Состав:
|
Объект |
Название |
Описание |
|
Объект SQL |
[_dev_Строка из текста] |
… |
|
Объект SQL |
[_dev_Субсчета счетов] |
… |
|
Объект SQL |
[_dev_Целое из строки] |
… |
История изменений:
|
Версия |
Список изменений |
|
1.58 |
Собраны и проверены. |
Версия: 1.83
Описание:
Пользовательские формы, которые позволяют заменять значения полей в таблицах.
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Стандартная. Замена полей в Догспец] |
Форма вызывается из списка договоров по контекстному меню (пункт «Пользовательские режимы»), или по «горячим» клавишам Alt+S. Заменяются значения указанных полей в спецификациях выбранных договоров. Отбор спецификаций договоров может быть осуществлен по фильтру. |
|
Форма |
[Стандартная. Замена полей в Докспец] |
Форма вызывается из списка документов (кроме документов вида «Расчетный лист з/п») по контекстному меню, или по «горячим» клавишам Alt+S. Заменяются значения указанных полей в спецификациях выбранных документов. Отбор спецификаций документов может быть осуществлен по фильтру. |
|
Форма |
[Стандартная. Замена полей в таблице Зарплата] |
Форма вызывается из списка документов вида «Расчетный лист з/п» по контекстному меню, или по «горячим» клавишам Alt+Z. Заменяются значения указанных полей для выбранных зарплатных документов. На таблицу «Зарплата» может быть наложен фильтр. |
|
Форма |
[Стандартная. Замена поля в таблице] |
Форма позволяет заменить у выбранной таблицы значение выбранного поля по всем записям, которые отвечают выбранному фильтру. |
История изменений:
|
Версия |
Список изменений |
|
1.83 |
Собраны и проверены. |
|
2.121 |
Исправлена форма [Стандартная. Замена поля в таблице] – добавлена панель ввода для корректного отображения под Windows 7 |
|
2.138 |
Исправлены формы [Стандартная. Замена полей в Догспец], [Стандартная. Замена полей в Докспец], [Стандартная. Замена полей в таблице Зарплата] - фразы “ISNULL(OBJECT_ID(‘tempdb..” и “NULLIF(OBJECT_ID(‘tempdb..” заменены на аналогичные с использованием IS NOT NULL. |
|
2.155 |
Исправлена форма [Стандартная. Замена поля в таблице]: - исправлена ошибка при замене поля типа «ДатаВремя» - записывалось значение на минуту меньше, чем указывалось, - из списка заменяемых полей удалены поля типа «Изображение», «Изображение_Иконка». |
Версия: 2.132
Описание:
Пользовательские формы [Стандартная. Настройка закладок] и
[Стандартная. Настройка закладок. Редактирование] используются для
"ручного" добавления новой закладки.
На форме [Стандартная. Настройка закладок] в поле «Для таблицы» следует указать таблицу, для которой требуется создать закладку. В списке выбора таблицы, для которой создается закладка, перечислены стандартные справочники, но можно ввести произвольное имя (например, имя пользовательской таблицы). Для таблиц, имеющих деление по видам, при установленном флаге «Для одного вида» следует указать значение Вида.
В список выбора таблицы, данные из которой будут отображаться на закладке, попадают таблицы, имеющие поля типа «Ссылка» на указанную родительскую таблицу.
Для добавления/изменения новой закладки – ссылочной таблицы следует нажатием кнопок <Добавить>/<Изменить> вызвать форму [Стандартная. Настройка закладок. Редактирование] и заполнить необходимые поля.
Значение в поле «Подпись» - наименование закладки, которое автоматически формируется как <Таблица>.<Поле>, можно изменить.
Новые закладки или новое значение подписи появятся только после перезапуска программы (или при пересохранении настройки вида соответствующего справочника).
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Стандартная. Настройка закладок] |
… |
|
Форма |
[Стандартная. Настройка закладок. Редактирование] |
… |
|
Запрос |
[Настройка
закладок] |
… |
|
Настройка таблиц |
[Настройка закладок] |
… |
История изменений:
|
Версия |
Список изменений |
|
2.132 |
Собраны и проверены. |
|
2.143 |
Исправлены формы [Стандартная. Настройка закладок], [Стандартная. Настройка закладок. Редактирование] - добавлена возможность выбирать данные из таблицы «Журнал». |
Версия: 2.145
Описание:
Пользовательская форма [Стандартная.Синхронизация объектов SQL] позволяет обновить /
добавить записи в таблицу «Объекты SQL» о хранимых процедурах, функциях и
триггерах, имена которых начинаются с "_" и не начинаются c
"_авто_" или "_auto_". При добавлении объекта в таблицу,
используется имя «текущей конфигурации» и номер «версии текущей конфигурации»
из общих настроек комплекса БУХта. При обновлении
объекта фиксируется дата изменения объекта.
Форма вызывается из режима «Сервис - Объекты SQL» по нажатию на кнопку <Синхронизировать>
Модернизация требует синхронизации базы данных эталоном версии 2.145 и выше для добавления хранимой процедуры [СинхронизацияОбъектовSQL].
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Стандартная.Синхронизация
объектов SQL] |
… |
Версия: 2.161
Описание:
В режиме рассылки сообщений добавлена возможность подключения
пользовательской формы выбора адресатов – режим общей настройки, закладка «Интернет/
Почта/ Сообщения», флаг «Подключить пользовательскую форму для выбора адресата
сообщения» и поле для выбора этой формы. При установленном флаге выбор
адресатов осуществляется с помощью указанной формы, при сброшенном работает встроенный
режим. Для того, чтобы форма попала в список выбора, ее имя должно содержать
строку "сообщен" и любую из строк "адресат" или "получател".
Форма [Стандартная. Выбор адресатов сообщения] создана в качестве примера, повторяет с небольшими отклонениями встроенный режим.
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Стандартная. Выбор адресатов сообщения] |
… |
Версия: 2.161
Описание:
Пользовательская форма помощи позволяет отображать подсказки
пользователю. Форма помощи вызывается из системного меню форм (пункт «Помощь»).
В ней доступен ряд параметров, описывающий режим из которого вызвана рабочая форма.
Для того чтобы пункт «Помощь» был доступен в системном меню форм следует в общей настройке программы на закладке «Внешний вид» указать значение для параметра «Форма для отображения подсказки пользователю». Как пример подобной формы предлагается форма [Стандартная. Помощь по формам].
Состав:
|
Объект |
Название |
Описание |
|
Форма |
[Стандартная. Помощь по формам] |
… |