#0
by NickM73
Приспичило связать программку c 1C8 через dll написанную на Delphi, связь dll с 1С через Com, это все сделал, но всплыла такая проблема, что как получить результаты запроса и передача параметров в запрос. Пример ... а как добраться до результата запроса? и продолжение, теперь как полученную ссылку из запроса вставить в другой запрос? Здесь ругается На неверные параметры операции сравнения..., пытался сделать objsel1.УстановитьПараметр('ВыбСотрудник', IDispatch(Stuff)); тоже самое.
#2
by 1C-band
Потому, что &ВыбСотрудник понимается как внутренняя ссылка 1С. Используй примитивные типы: Код, Табельный номер и т. д..
#5
by NickM73
А какая была красивая задумка получаешь ссылку и с ней работаешь как в 1С:( Поправил запрос чтоб возвращал наименование сотрудника objsel.Текст := 'ВЫБРАТЬ Сотрудники.Наименование ИЗ Справочник.Сотрудники КАК Сотрудники ГДЕ Сотрудники.Карты.НомерКарты = &НомерКарты'; ShowMessage(queryRes.Наименование); но выдается ошибка Method 'Наименование' not supported by automation object видимо чтото еще надо
#6
by H A D G E H O G s
"А какая была красивая задумка получаешь ссылку и с ней работаешь как в 1С: Задумка глупа, но работоспособна. Глупа она по причине медлительности COM
#11
by Serginio1
Вообще проще например создать внешний отчет или обработку, а уж её дергать с клиента например
#12
by NickM73
Спасибо помогло, краткость сестра таланта. Помоему будет перебор, программа дергает dll из нее внешнюю обработку, а она уже работает с 1С. Слишком много звеньев :( База не велика (1 справочник, 1 документ и 3 регистра) + комп только для нее, тормозить особо не должна, но посмотрим на быстродействие, как разверну тестовую систему. Если будет тормозить прийдется переходить на внешние обработки.
#13
by Serginio1
Ты хотя бы отладь для начала в 1С, а потом код переноси на Delphi. А так и получается пока все отладишь,то уже и незачем переносить, так как проще код обработки запустить.
#14
by NickM73
Задумка глупа, но работоспособна. Работает довольно шустро в 1С уже написал и работает, но в Com есть подводные камни, забавные до ужаса Осталось последнее создать документ, но там нужна ссылка пытаюсь сделать так Документ создается, но поле Сотрудник пусто :(, ссылка не пустая. Как обмануть систему?
#16
by hhhh
надо как-то так if docDinner.Сотрудник.Пустая then ShowMessage('Не найден сотрудник с табельным номером ' + 22035484);
#17
by NickM73
Тип число, сообщений никаких не выдает :(, 1с возвращает ссылку, но delphi как-то странно работает с ней. По совету использовал примитивные типы, но вот здесь нужна именно ссылка.
#18
by hhhh
сделайте табномер строку. Кому в голову у вас там пришла такая мысль про число? Зачем неприятности на свою задницу искать?
#20
by Serginio1
Проверь внешним отчетом. В свое время в семерке все параметры из Delphi передавались по ссылке. Выход был типа ''+str. Или используя процедуру с параметрами const.
#21
by NickM73
А можно по подробнее Выход был типа ''+str., плиз В обработке все нормально находится и пишется.
#22
by Serginio1
Все параметры Delphi передает по ссылке, для того, что бы передавало по значению нужно либо через процедуры с параметрами типа const, либо как выражение 1+1, или ''+строковая_переменная
#23
by NickM73
те чтобы передать в docDinner.Сотрудник := СсылкаСотрудник; мне надо сделать так docDinner.Сотрудник := ''+строковая_переменная я правильно понял? но я не могу вытащить из строковая_переменная := obj.Справочники.Сотрудники.НайтиПоРеквизиту('ТабНомер', '22035484'); тк это Dispatch и всю голову сломал как оттуда вытащить данные
#24
by NickM73
Все тема закрыта, оказывается писал не в ту базу, пора идти есть мандаринки и пить горькую. А помогло вот что var docDinner, nn: Variant; .... Всех с Новым Годом!
#25
by Serginio1
Кстати можешь использовать Диспинтерфейсы. И синтаксический контроль и правильные вызовы.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- КА 1.1, УТ 10.3: Слияние номенклатуры при подборе в документ.
- Пользовательская видимость реквизита управляемой формы программно
- О хранении файлов в УТ 11
- Программа не видит SQL сервер через одно сетевое подключение
- Скрипт для запуска 1С
- Битрикс - изменить массив данных
- ТЗ или ДС
- Как настроить ТСД в УТ 11?
- Бухгалтерия 3.0 Устанвка ставки НДС "по умолчанию"
- Можно ли создать структуру подчиненности документа в ручную?
- обмен УТ-БП (корректировка долга)
- Счет-фактура на транзит РЖД
- ОповеститьОВыборе. Не получается...
- подскажите по УТП. можно ли заполнять по умолчанию Счета Учета
- Как найти элемент формы
- интеграция УТ11 и ДО
- 1С УПП свойства в справочнике "Договоры контрагентов"
- Создание COM-объекта Oracle
- v8: Налоговая накладная! Украинская конфигурация (какая .... знает)
- Как ускорить работу файловой базы 1с81 на двух компьютерах