Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2011, 22:57   #1
kalashns
Новичок
Джуниор
 
Регистрация: 29.01.2011
Сообщений: 2
По умолчанию Delphi и 1с7

Здравствуйте.

Пишу программу, которая должна будет выбирать документы из базы 1с7 по определённым критериям, ну не суть дело важно...
В uses соответственно присутствует ComObj,
Подключение к базе выглядит так: Ole1C:=CreateOleObject('V1CEnterpri se.Application'); Одним словом всё как у реального пацана, мой код справляется со своей задачей при выборке элементов справочников, тут я думаю всем понятно, что база подцепилась идеально, но при выборке реквизитов документов, а именно реквизитов типа"справочник" (с реквизитами, у которых типы "строка" или "число" проблем нет) появлется ошибка -(Project Project1.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Dispath) into type (String)' Process stoped. и типа степ ту ран континиу)
Я тут пораскинул чем смог, и понял, что реквизиты с типом "справочник", в форме документа имеют ссылку естественно на справочники и соответственно на самой форме ввода они вводятся путём выбора из списка, и я так думаю, что вышеописанная ошибка возникает из за того, что получается запрос как бы на всю строку этого списка. Знать в чём дело, одно, а как поправить другое.
Уважаемый Клуб, если кто либо знает, как решить эту проблему, искренне прошу у Вас помощи.

З.Ы.

Пример:
OleSotrudniki:= Ole1C.CreateObject ('Документ.РасходнаяНакладная');

StringGrid1.Cells[0, dobavstrok]:= (Trim(OleSotrudniki.Количество)); - работает, так как тип "число"

StringGrid1.Cells[0, dobavstrok]:= (Trim(OleSotrudniki.Наименование)); - выдаёт ошибку наверное потому что тип "справочник"
kalashns вне форума Ответить с цитированием
Старый 01.02.2011, 01:31   #2
Dimasw
Пользователь
 
Регистрация: 12.09.2010
Сообщений: 69
По умолчанию

Когда-то тоже такой фигней занимался.
Если OleSotrudniki.Наименование - справочник, то должно быть что-то типа
OleSotrudniki.Наименование.Аттрибут 1
есть еще вариант:
Код:
a2:= oleRoznica.ПолучитьАтрибут('Склад').Наименование;
Здесь Склад - справочник.
А вообще книга есть про дружбу Дельфи и 1С. Могу поделиться, если что.
SELECT BEST FROM LIFE
Dimasw вне форума Ответить с цитированием
Старый 01.02.2011, 06:46   #3
kalashns
Новичок
Джуниор
 
Регистрация: 29.01.2011
Сообщений: 2
По умолчанию

Спасибо за совет, сейчас буду пробовать запустить код в работу, А книга конечно очень заинтересовала, желательно бы мне её получить. Скажите, как её название, или поделитесь ей.
kalashns вне форума Ответить с цитированием
Старый 01.02.2011, 13:33   #4
Dimasw
Пользователь
 
Регистрация: 12.09.2010
Сообщений: 69
По умолчанию

Здесь книга:
http://programmersforum.ru/showthread.php?t=1589&page=2
SELECT BEST FROM LIFE
Dimasw вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' Nemesisking Компоненты Delphi 7 08.09.2007 03:27