Мои комментарии

Заголовок Comment Дата публикации Дата обновления
Высылаю подробный отчет о

Высылаю подробный отчет о системе, системных папок и т.д.

Я просил не это, а скрин окна Справка-Компьютер в ИНФО-БУХГАЛТЕРЕ.
Но тут тоже кое-что видно.
Вот с этими настройками у BDE могут быть проблемы:
TEMP C:\Users\2BA0~1\AppData\Local\Temp
TMP C:\Users\2BA0~1\AppData\Local\Temp
USERNAME Њ ЄбЁ¬

Но на этапе загрузки DLL-ей это, скорее всего, не влияет.

Путь к Инфо-Бухгалтеру я увидел на скриншоте C:\IB\USN, тут все Ок.
Рабочая папка в ярлыке, я полагаю, такая же.

Сделал проверку Image программой VMMap.
Не все грузится согласно вашему скриншоту.
Прикрепляю свой.

Я просил Image для Access, а не для Инфо-Бухгалтера.

1. Запустите только Access, а Инфо-Бухгалтер не запускайте.
Откройте VMMap, выбрать Access, выбрать Image, PrintScreen.

2. При уже запущенном Access запустить Инфо-Бухгалтер.
Должно появиться окошко ошибки (как в Вашем исходном сообщении).
Откройте VMMap, выбрать ibwn8a.exe, выбрать Image, PrintScreen.

На всякий случай напишите еще используемую версию MS Office (Access).
Если из скриншотов ничего не прояснится, то буду пытаться воспроизвести ситуацию у себя, под виртуалкой.

И еще.

И еще.
При запущенном Access откройте VMMap, выберите его, нажмите Image.
DLL-ки BDE должны быть загружены по таким же адресам, как на моей картинке.

http://www.ib.ru/sites/default/files/attachments/bde_dlls.png

Что еще и где подкрутить

Что еще и где подкрутить можно?

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

Но у Вас проблема может быть в чем-то другом.
Приведите снимок окна Справка-Компьютер чтобы посмотреть пути к папкам Инфо-Бухгалтера и временной.
Эти пути не должны содержать пробелов и русских букв.

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

Также проблемы могут возникать из-за наличия русских букв в сетевом имени компьютера и пользователя.

Скажите, у меня нет ветки

Скажите, у меня нет ветки
HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\SYSTEM\INIT

В 64-битной Windows отдельная ветка реестра для 32-битных приложений:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Borland\Database Engine\Settings\SYSTEM\INIT

Сделал как написано, два прин

Нда... Очень странно ведет себя BDE.
Значения, которые я устанавливаю в BDEADMIN (под адм.), попадают в IDAPI.CFG, но не в реестр.
Программы по факту используют значения из реестра, а не из IDAPI.CFG...
Это показывает программа VMMap.

По кнопке "Исправить" в Инфо-Бухгалтере значения устанавливаются и в IDAPI.CFG, и в реестр.
Но тут принудительно устанавливается рекомендуемые значения 2BDE и 32768,
которые в данном случае нас не устраивают.

Вижу выход только в одном.
Руками в реестре поставить нужные значения, а не через BDEADMIN.
Я для эксперимента поставил в
HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\SYSTEM\INIT
SHAREDMEMLOCATION=1200
SHAREDMEMSIZE=4096

и VMMap увидела эти изменения в адресном пространстве Инфо-Бухгалтера:

http://www.ib.ru/sites/default/files/attachments/vmmap2.png

В Windows Vista и выше

В Windows Vista и выше обычным программам нельзя записывать файлы в корень диска C:
В BDE по умолчанию файл PDOXUSRS.NET там пытается создаваться.
При такой настройке BDE будет нормально работать только в Windows XP.

Поэтому в Windows Vista, 7, 8 и т.д. Инфо-Бухгалтер проверяет параметр NET DIR, чтобы он не был настроен на корень системного диска.
В локальной версии предлагается создать папку на системном диске C:\BdeNetD. К файлам в папке у BDE будет полный доступ.
Если у Вас сетевая версия Инфо-Бухгалтера, то в качестве NET DIR надо указать сетевой диск (например, L: или папку на сетевом диске L:\BdeNetD).
При этом на всех рабочих местах этот параметр должен быть задан одинаково.

По пути c:\Максим\AppData

По пути c:\Максим\AppData\Local\VirtualStore\Program Files (x86)\Borland\Common Files\BDE\IDAPI.CFG нет такого файла.

Я же написал - могут.
Он там появится, если BDEADMIN не из-под администратора запускался хоть раз.
Причем, Инфо-Бухгалтер будет видеть настройки из файла в VirtualStore.

Значения SHAREDMEMLOCATION ставил 2000,2100,2500,2700,2900 ошибка осталась. Понижал SHAREDMEMSIZE = 2048 все так же.... Есть еще идеи?

Скачайте программку VMMap здесь.
При запуске выбираете процесс Инфо-Бухгалтера и смотрите блоки памяти, которые shareable.
Аналогично смотрите для Access.

http://www.ib.ru/sites/default/files/attachments/vmmap.png

Проверьте, что Инфо-Бухгалтер

Проверьте, что Инфо-Бухгалтер видит эти же значения.
Справка->Компьютер->Кнопка BDE.
Если там другие значения видны, то поставьте галочки и нажмите кнопку "Исправить".

Настройки BDE могут быть в трех разных местах:
- в реестре
- в файле С:\Program Files (x86)\Borland\Common Files\BDE\IDAPI.CFG
- в файле <Пользователь>\AppData\Local\VirtualStore\Program Files (x86)\Borland\Common Files\BDE\IDAPI.CFG

Нажатие на кнопку Исправить синхронизирует реестр и IDAPI.CFG и очищает VirtualStore.

Нашел этот параметр в

Нашел этот параметр в настройка BDE, экспериментировал со значениями SHAREDMEMLOCATION(1000,3000,4000,3BDE,4BDE,9BDE, и т.д.).
Ошибка осталась...

Больше 4A00 лучше не ставить, а то будут конфликты с DLL-ями,
которые там располагает загрузчик Windows.
2BDE - это значение по умолчанию, которое ставит Инфо-Бухгалтер.
Я бы попробовал близкие значения: 2000, 2100, 2200...
Надо найти свободное окошко а общем адресном пространстве.
Требования к окошку можно понизить, уменьшив его размер.
Попробуйте поставить SHAREDMEMSIZE = 2048.

BDEADMIN с правами Администратора запускаете?

В справке Инфо-Бухгалтера 8

В справке Инфо-Бухгалтера 8 посмотрите статью "Настройки BDE"
(введите в поле поиска в панели инструментов окна справки).
Обратите внимание на настройки разделяемой памяти (shared memory).

Вкратце, надо изменять параметр SHAREDMEMLOCATION до исчезновения конфликта.

Windows XP sp3 здесь не

Windows XP sp3 здесь не влияет.

Ошибка 0xc000001d "Invalid instruction".
Причина ошибки в том, что старые модели процессоров
не поддерживают набор команд SSE2.

Для семейства Intel - это все что ниже Pentium IV и Celeron D.
Для AMD - все что ниже AMD 64.

В число процессоров, которые не поддерживают SSE2,
входят такие распространенные в свое время модели, как Pentium III и Athlon XP.

Возможным решением проблемы будет ограничение используемых команд набором 386-го процессора для компонентов установщика и самой программы Инфо-Бухгалтер 8.
В настоящее время мы работает над этим.

Если тестирование пройдет успешно, то следующее обновление программы Инфо-Бухгалтер 8 будет собрано без поддержки инструкций SSE2 и ошибка 0xc000001d уйдет.

По поводу обращения в

По поводу обращения в дилерский отдел - они сказали, что код-вопрос мы дали по ИБ 10, хотя у нас она даже не установлена. Но код-ответ нам прислали по ИБ 8.

Код вопроса генерируется программой ChkKeyA.exe, которая используется также для ИБ 10 (в этом смысле код вопроса такой же, как для регистрации ИБ 10).
Для обновления формата ключа требуется специальный код ответа (его ли Вам прислали?).
И вводить его нужно также в программе ChkKeyA.exe так, как это описано в статье
Обновление формата электронного ключа Guardant Net.

Однако каждый раз при

Однако каждый раз при загрузке ИБ поиск ключа занимает по 3-4 мин.

В файле gnclient.ini укажите ip-адрес или сетевое имя сервера, отключите broadcast.

Попробовали обновить вормат ключа указанной утилитой, получили код-вопрос для обновления и отправили на сайт.
Код-ответ прислали быстро, вот только он не подошел - программа указала ошибку "Не удалось обновить ключ. ошибка 74". Что за ошибка - не понятно.

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

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

При этом ИБ версии 8.704 (с которой мы также работаем) ключ вообще не видит.

Для работы со старыми ИБ надо установить сервер Guardant 6.0 или более ранний.
Т.к. ИБ собирался с клиентской частью Guardant версии 6.0, 5.x и т.д.
Старая клиентская часть не будет работать с новым сервером (7.0).

С ключом Sentinel, с которым мы работали ранее, подобных проблем не было.

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

У нас та же проблема!

У нас та же проблема!
Windows XP sp3
Как помочь пользователям?

К сожалению, универсального совета дать не получится.

В отдельных случаях ошибки возникают и на XP sp3, когда системные библиотеки испорчены вирусом или "кряком".
При этом dependencywalker ничего криминального не показывает, все системные библиотеки на месте.
При попытке загрузки библиотек система возвращает ошибку 0xC000001D Invalid instruction.

"Чудеса" на такой системе не ограничиваются отказом загрузки ibw8evp.dll.
Например, то что я вчера видел у пользователей на компьютере (по тимвьюеру): запускается, но неправильно работает простейшая тестовая программка из 3-х строчек, не работает копирование экрана в буфер обмена по клавише PrintScreen.

По поводу Windows XP sp2.
Чистая система содержит kernel32.dll, в которой нет одной функции (GetLogicalProcessorInformation) используемой библиотеками msvcr120.dll и т.д.
Может быть Microsoft это специально устроил - я не знаю.
Поэтому на чистой XP sp2 Инфо-Бухгалтер не запустится без вариантов.

Но могут быть и различные переходные формы от sp2 к sp3.
Например, при установке Internet Expolorer 7, 8 заменяются многие системные библиотеки.
Поэтому, нельзя исключать возможность того, что Инфо-Бухгалтер может запуститься
и на Windows XP sp2 с обновленными системными библиотеками.

Начну с того, что

Начну с того, что подразумевается под "автоматическим сменой шрифта" - я не понимаю...

На закладке "Шрифты" в меню Установка->Настройка для бланков задается шрифт по умолчанию.
Этот шрифт применяется для вновь создаваемых бланков.
Для существующего бланка его собственный шрифт записан в файле BLW и уже не зависит от настроек в ibw.ini.
Меняется собственный шрифт в редакторе бланка, пункт меню "Шрифт бланка".

В файле ibw.ini размер шрифтов хранится в пикселях, нормированных для разрешения 96 dpi.
Например, для шрифта Courier New 10 там будет строчка:
[Fonts]
...
Docs=Courier New,-13,...
...

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

Посмотрите, что у Вас записано в файле ibw.ini.
Сам этот файл лучше положить в папку программы.
Если он лежит в папке Windows, то могут быть проблемы в виртуализацией файловой системы.

Если не грузится ibw8env.dll,

Если не грузится ibw8env.dll, то значит нет каких-то библиотек, от которых она зависит.
Скачайте dependency walker (http://dependencywalker.com) и откройте им ibw8env.dll.
Недостающие dll там будут отмечены восклицательными знаками.

Странно как-то стала ругаться

Судя по РС_... - это у Вас расчетный столбец.
В алгоритмах расчетных столбцов запрещен показ диалоговых окон и использование некоторых других возможностей пользовательского интерфейса (GUI).
Такие алгоритмы работают с ограниченной моделью пользовательского интерфейса (GUI model),
в которой пресекаются попытки запрещенных вызовов.
В данном случае имела место попытка вызова метода ДИАЛОГ.ПОКАЗАТЬ.

Не получится добавить вторую

Не получится добавить вторую операцию с таким же значением полей MDATE и NUMINDATE.
Для второго INSERT будет key violation.

Т.е. для безопасного добавления псевдокод такой:
ЦИКЛ ПОКА (НЕ добавили)
num = SELECT MAX(NUMINDATE)...
ЕСЛИ (INSERT ... num ...) ТО
добавили = ДА
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА

Пропуски в значениях NUMINDATE для одной даты не должны на что-то влиять.

Информация о датах и номере в

Информация о датах и номере в дате хранится только в таблицах HOZOP и PROVOD.
Соответственно, нет никаких волшебных способов получить ее еще откуда-нибудь.

'Select MAX(NUMINDATE) MAXNUMINDATE FROM HOZOP WHERE MDATE=:Date'
Но считаю это не верным, долгим и порождающим ошибки в реальной работе способом.

С "не верным" не согласен, скорее "единственно возможным и верным".
Что может быть ошибочного в том, что ищется определенное значение в таблице?
Нужно только иметь в виду, что можем NULL получить.

С "долгим" тоже не согласен. Долгий - это когда O(N), полное сканирование таблицы.
А MDATE и NUMINDATE образуют primary key для таблицы HOZOP.
Следовательно здесь поиск по индексированному полю.

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

В параметрах проекта на

В параметрах проекта на закладке Модули поставьте галочку
"Разрешить использование типов времени выполнения".
По умолчанию эта опция отключена, т.к. требует обращения к БД при компиляции.