Намучался я с модификаторами параметров. Набил шишек.
Хочу поделится.
Коротко:
Описание модификаторов ODBC:
http://1cpp.ru/docum/icpp/html/ODBC.html#id42 Для прямого запроса - в документации (word):
http://www.1cpp.ru/forum/YaBB.pl?num=1273512019 Согласно описаний - модификаторы параметров у обоих объектов должны совпадать, но не совпадают.
1)
ODBC : для модификатора (~~) : нужно исправить документацию:
для всех агрегатных всегда char(23) формата [Type(2)][KIND36(4)][ID(9)][Space(8)] = т.е. как для ""*"".
Для скалярных - не применим (для скалярных это внутреннее значение можно получить только ч/з ""*"")
Объект вполне устраивает. Ошибка в доке.
2)
ODBC : для модификатора (~~~) : нужно исправить документацию:
вид объекта int/char(4) возвращает только для :Счет,Справочник,Документ.
Для остальных не применим. Ошибка в доке.
3)
Прямой запрос: в документации описано поведение
в точности как в документации ODBC (с теми же ошибками документации !).
Но это - не правда. В частности, отрабатывают по разному:
:Число
*:ПустаяСтрока
*:ПустаяСтрока
~:НеПустаяСтрока
*:ПустаяДата
*:ПустаяДата (здесь понятно почему, возможно нужно оставить '1753.01.01' как в ПрямомЗапросе)
:ПустаяДата
~:НеПустаяДата
*:НеПустаяДата
~~:Справочник
~~~:Документ
~~~:Документ
~~~~:Счет
~~~Очень подробно - во вложении:
1) таблица ексель - с расхождениями результатов тестирования
(в цвете и с поянениями)
2) собственно внешний отчет (UnitTest так сказать)
который эти расхождения показывает
Кто хочет - запустите у себя и все увидите.
ВЫВОД:
- в объекте ODBCREcordSet - нужно поправить документацию.
- в классе ПрямойЗапрос - привести всё к виду ODBC (если возможно)
ЗЫ. Я себе сделал "надстройку" над прямым запросом (наследник)
в котором переопределил некоторые методы + добавил свои для удобства.
ЗЫ.ЗЫ, Не знал куда запостить. Запостил сюда ("Напоминалка для всех" так сказать)
+ в обсуждения прямого запроса - оставил сообщение.
Модераторов прошу меня простить.
ЗЫ.ЗЫ.ЗЫ. Вложение обновлено 2014-06-09