Вылетает 1С в монопольном режиме при выборке данных
В монопольном режиме после выполнения запроса обязательно необходимо закрывать выборку методом Закрыть. Если во время выборки произошло исключение (ошибка и т.п.),то выборка остается открытой и когда 1С пытается выполнить свой запрос, то возникает ошибка. Рекомендую в монопольном режиме "проблемные" места заключать в конструкцию Попытка Исключение и при исключении закрывать выборку.
Требуется ли переделка кода в отчетах и модулях проведения при использовании ToySQL
Да. При использовании библиотеки необходимо переписывать расчет итогов в модулях, формирование запросов для получения отчетов. Также нужно менять код обработки результата запроса.
Виснет 1С при загрузке библиотеки. На некоторых компьютерах библиотека не загружается
Кроме проблем с необходимыми библиотеками, причиной (особенно в случае зависания 1С) могут быть старые драйвера клиентской части SQL Server (ODBC драйвера). Чтобы исключить эту возможную причину, скачайте с сайта Microsoft последний MDAC (Microsoft Data Access Components), в котором содержатся эти драйвера и установите его на тот компьютер, где библиотека не загружается.
Причиной такого поведения библиотеки при загрузке может быть также использование вами в работе SQL Server Developer Edition. Уже в нескольких случаях я пытался установить ToySQL для работы в этой редакции, но либо новое соединение не создавалось, либо выполнение запроса тормозилось так, что казалось будто бы 1С зависла. Поэтому не рекомендую использовать в работе данную редакцию SQL Server. Хотя сам проверяю работу библиотеки именно на SQL Server Developer Edition.
Проверить действительно ли проблема в драйверах (а точнее в SQL Server) вы можете загрузив 1С в монопольном режиме. При этом новое подключение не создается и работа производится ч/з соединение 1С.
В модуле проведения не подставляется ТекущийДокумент()
В модуле проведения желательно после каждого выполнения запроса вызывать метод Закрыть.
Как получить остаток по регистру на документ
Ну как. Как обычно... :) Вместо даты нужно просто подставить документ. При этом если перменная документа создана ч/з СоздатьОбъект, то лучше передавать Док.ТекущийДокумент(). Для вычисления остатка в модуле документа используйте следующую конструкцию:
SELECT [Партия],
Кол = [НачОст(Количество)],
Сум = [НачОст(Сумма)]
FROM [(Регистр.Остатки([@ТекущийДокумент()])
FROM [ТабличнаяЧасть.Перемещение] ТЧ
WHERE [Фирма] = [@Фирма] AND
[Склад] = [@Откуда] AND
[ТЧ.Ссылка] = [@ТекущийДокумент()] AND
[Рег.Товар] = [ТЧ.Товар]
GROUP BY [Партия])] Рег
в этом запросе главное, что нужно использовать функцию НачОст и указывать нужно только первую дату (документ). Фильтрацию по товарам можете делать по своему (ч/з СЗ, временный объект) - я делаю так. Да и не забывайте выполнить метод Соединиться(0), чтобы работать в соединении 1С.
На одной машине ToySQL запускается на другой нет
Скорее всего не хватает какой-либо библиотеки необходимой для ToySQL. При этом в демо-версии вообще никаких сообщений не выдается, так как библиотека просто не может быть загружена. Обычно не хватает библиотеки msvcp60.dll. Какой библиотеки не хватает можно проверить с помощью программы из состава Visual Studio depends.exe ее можно найти в инете. Скопируйте библиотеки с той машины где библиотека работает на ту, где не работает.
Метод Выгрузить для параметризованного запроса отрабатывает только один раз
В методе Выгрузить есть параметр, который отвечает за закрытие выборки. По умолчанию он равен 1, то есть после выгрузки в ТЗ выборка закрывается. В случае с параметризованным запросом этот параметр должен равнятся 0, чтобы выборка не закрывалась. В конце ее надо будет закрыть методом Close (Закрыть).
Ошибка 0x8007007e при регистрации loader.dll
Невероятно, что у вас появилась такая ошибка! В loader используются сторонние библиотеки по минимуму. После того как была убрана зависимость от atl.dll такой ошибки быть не должно. Если все же такая ошибка появилась, найдите в инете программку depends.exe (она идет вместе с Visual Studio) и посмотрите все зависимости. Если какой-то длл-ки не хватает, там сразу это станет видно. Иногда бывает, что зависимость от какой-либо библиотеки непрямая — то есть простой поиск по файлу библиотеки строк .dll может не помочь. Можете почитать (если сохранится на тот момент когда вы читаете) это обсуждение.
Использование функций SQL и выражений в запросах
Использование функций SQL и T-SQL ничем не ограничено. Единственное условие, которые вы должны соблюдать это заключение всякого выражения в списке SELECT в круглые скобки. В остальных предложениях операторов SQL этого делать не надо.
Как получить остаток по регистру на точку актуальности
Для этого в качестве конечной даты используйте следующее выражение: КонМесяца(ПолучитьДатуТА()). В последних версиях библиотеки можно просто не указывать конечную дату и остаток будет считаться на точку актуальности.