|
Получить номер договора из Реализация ТМЗ и услуг
|
|||
---|---|---|---|
#18+
Проблема с возвратом значения в OLE-клиента. Запрос первоначальный: Код: sql 1.
Вываливается ошибка, о том, что поля ДоговорКонтрагента и Контрагент не удается преобразовать в соответствующие типы ( Could not convert variant of type(Dispatch) into type (String) ). Причина видимо в том, что эти значения берутся из соответствующих справочников. В справочнике контрагентов соответствующий реквизит называется НаименованиеПолное. Правим запрос: Код: sql 1.
Теперь название контрагента извлекается правильно, остается ДоговорКонтрагента. Хранится он в справочнике ДоговорыКонтрагентов, где соответствующий атрибут называется НомерДоговора. Переписываем запрос: Код: sql 1.
Запрос отрабатывается нормально, но поля НомерДоговора пустые (хотя в справочнике значения есть). В чем может быть проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 06:46 |
|
Получить номер договора из Реализация ТМЗ и услуг
|
|||
---|---|---|---|
#18+
Квази, Видимо реквизит справочника называется не "НомерДоговора". Попробуйте выполнить запрос в самой 1С что он вернет? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 08:06 |
|
Получить номер договора из Реализация ТМЗ и услуг
|
|||
---|---|---|---|
#18+
DmitriyZКвази, Видимо реквизит справочника называется не "НомерДоговора". Попробуйте выполнить запрос в самой 1С что он вернет? Выполнял. В 1с нормально выполняется этот запрос: Код: sql 1. 2.
Но он выдает ошибку при преобразовании данных в Delphi - видимо потому, что РеализацияТоваровУслуг.ДоговорКонтрагента, РеализацияТоваровУслуг.Контрагент это не простые типы данных, а ссылки на значения справочников. Если в Delphi запрос переписать с использованием ссылок на справочники Код: sql 1. 2.
то столбец Контрагент выводится в Delphi нормально, а столбец НомерДоговора выходит пустой. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 13:08 |
|
Получить номер договора из Реализация ТМЗ и услуг
|
|||
---|---|---|---|
#18+
Квази, у вас два разных текста запроса приведены. А что даст выполнение второго варианта (того, который через com-подключение пустое поле выдает) непосредственно в Консоли Запросов 1С? А то циклиться на "в 1с ЭТО выполняется, а через дельфи - нет,поэтому дельфям подсовываем другой текст" можно бесконечно. Сравнивайте уж максимально идентичные тексты. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 13:17 |
|
Получить номер договора из Реализация ТМЗ и услуг
|
|||
---|---|---|---|
#18+
pailКвази, у вас два разных текста запроса приведены. А что даст выполнение второго варианта (того, который через com-подключение пустое поле выдает) непосредственно в Консоли Запросов 1С? А то циклиться на "в 1с ЭТО выполняется, а через дельфи - нет,поэтому дельфям подсовываем другой текст" можно бесконечно. Сравнивайте уж максимально идентичные тексты. Совершенно верно, тексты запросов разные. Ибо запрос: Код: sql 1.
который в Delphi отрабатывает без ошибок, но возвращает пустое поле НомерДоговора, при выполнении в консоли выдает ошибку о том, что не найдено поле ДоговорыКонтрагентов.НомерДоговора. В общем причина проблемы видимо в том, что Delphi не распознает сложные типы 1С и потому в запросе надо явно указывать ссылку на источник, который этот тип возвращает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 22:52 |
|
Получить номер договора из Реализация ТМЗ и услуг
|
|||
---|---|---|---|
#18+
Квази, а вас не смущает, что в "родной" среде запрос выдает ошибку? Добейтесь, что бы запрос в "родной" среде возвращал валидные данные тех типов, которые можно передать через OLE. Тогда и вашей системе он будет нормально работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 08:16 |
|
Получить номер договора из Реализация ТМЗ и услуг
|
|||
---|---|---|---|
#18+
Всё у вас правильно и корректно отрабатывает. 1С в представлении ссылок подставляет "Основное представление" элемента, по этому вы запрашивая РеализацияТоваровУслуг.ДоговорКонтрагента видите значение "стандартный реквизит" Код. Вы же из дельфи запрашиваете реквизит НомерДоговора, который у вас не заполнен. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 09:09 |
|
|
start [/forum/topic.php?fid=28&msg=38267346&tid=1519831]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 141ms |
0 / 0 |