Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 10.06.2018
Сообщений: 6

Работа с функционалом 1С в Delphi

12.06.2018, 15:43. Показов 1759. Ответов 8

Студворк — интернет-сервис помощи студентам
Здравствуйте. Недавно наткнулся на проблему с 1С предприятием.
Суть задачи состоит в том, чтобы вызвать функцию из общего модуля базы данных. На сколько я понимаю, общий модуль БД должен быть глобальным, серверным, а сами функции с припиской "Экспорт" (Если я что-то неправильно говорю, то поправьте, тк с 1С я ни разу не работал до этого).
Дёргать функцию из БазыДанных должна программка на Delphi. Конеект производится через COM соединение (Вроде бы COM должен для таких целей служить).
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Connect_To_1C(OLE_SERVER_TYPE, InitLine : string):Variant;
begin
  Result:=Unassigned;
  OLE_SERVER_TYPE:=Trim(OLE_SERVER_TYPE);
  if Length(OLE_SERVER_TYPE)<=0 then OLE_SERVER_TYPE:='V83.COMConnector';
  InitLine:=Trim(InitLine);
  if Length(OLE_SERVER_TYPE)>0 then begin
     Result := CreateOleObject(OLE_SERVER_TYPE);
     Result:=Result.Connect(InitLine);
     if Connect_status(Result) then begin
       ShowMessage('Connect success');
     end else
     begin
       ShowMessage('Connect faled');
     end;
  end;
end;
Вот функция, которая производит коннект к базе. "Вроде работает - и так сойдёт". Ну вот, теперь у меня есть объект с которым можно работать (Обзовём его COM_obj).
Теперь по базе: В ней содержится простенькая функция ПРИВЕТСТВИЕ, которая выводит на кран "hello world" и возвращает значение 1. Так вот, как мне вызвать эту функцию из delphi?? COM_obj.ПРИВЕТСТВИЕ('') - не прокатывает, ругается, что что-то не нравиться.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.06.2018, 15:43
Ответы с готовыми решениями:

Работа с функционалом 1С в С++ (vs15)
Всем привет. Задача состоит в том, чтобы на языке С++ вызвать методы из 1С. На данный момент меня интересует возможно ли вообще...

Не могу разобраться с функционалом в Qt
Привет, я только начал работать с Qt. Мне сказали реализовать следующую вещь: Вывод в label пути и имени файла который я открываю и вроде...

Посоветуйте программу с нужным функционалом
Здравствуйте! Возникла нужда сделать GERBER-файлы по чертежу печатной платы (в формате BMP). Обычно для этого весьма удобен старый добрый...

8
Модератор
 Аватар для D1973
9921 / 6457 / 2457
Регистрация: 21.01.2014
Сообщений: 27,399
Записей в блоге: 3
12.06.2018, 16:34
Цитата Сообщение от Andrey_Sy4ik Посмотреть сообщение
что что-то не нравиться
Прямо так и говорит: "мне что-то не нравится"? Или более содержательную ошибку выдает?
0
0 / 0 / 0
Регистрация: 10.06.2018
Сообщений: 6
12.06.2018, 16:44  [ТС]
Вот такое вот счастье выдаёт((
Миниатюры
Работа с функционалом 1С в Delphi  
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
12.06.2018, 17:37
если что то нужно забрать из 1с рекомендую это выгружать в БД
лезть каждый раз, создавая 'V83.COMConnector' это не очень хороший путь
0
0 / 0 / 0
Регистрация: 10.06.2018
Сообщений: 6
12.06.2018, 17:49  [ТС]
qwertehok, Специфика поставленной задачи предполагает именно такой подход. Те необходимо сказать Базе "Выполни вот эту функцию", а результат выполнения меня не интересует.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,668
Записей в блоге: 21
12.06.2018, 19:04
думаю видно невооруженным глазом, что вы указали неправильную кодировку?
0
0 / 0 / 0
Регистрация: 10.06.2018
Сообщений: 6
12.06.2018, 19:15  [ТС]
krapotkin, Я сначала тоже думал на счёт этого, но дело в чём-то другом (именно в конструкции вызова самой функции/процедуры). delphi xe3 прекрасно работает с русским в этом плане.
Например,
Delphi
1
2
3
qwert:= OLE_obj.NewObject('Запрос');
qwert.text := 'Выбрать Справочник.Код, Справочник.Наименование ИЗ Справочник.ФизическиеЛица как Справочник';
qwert.Execute('');
Данная конструкция прекрасно работает.
Самый главный вопрос - это механизм/метод/запрос/танец с бубном с помощью которых можно вызвать функцию общего модуля.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,668
Записей в блоге: 21
12.06.2018, 19:25
одно дело - параметры
другое - имя самой функции
оно вполне может оказаться ANSI
поэтому я сам не пробовал, но стал бы искать
GetldsOfNames() и потом Invoke()
0
0 / 0 / 0
Регистрация: 10.06.2018
Сообщений: 6
12.06.2018, 20:19  [ТС]
krapotkin, Всё, я нашел ошибку. Заключалась она не в кодировках, а в путях.
Pascal
1
2
3
  OLE_obj:=Connect_To_1C(Trim(edt1.Text),init_line); //V83.COMConnector, C:\Users\Admin\Documents\InfoBase
 
  OLE_obj.Проба.Приветствие('');
Ошибка в том, что я пытался обращаться к функции Приветствие напрямую, а про то, что она лежит в глобальном модуле Проба - забыл...
Вот что значит искать ошибку в коде весь день. Извиняюсь за лишнее беспокойство. Тема закрыта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.06.2018, 20:19
Помогаю со студенческими работами здесь

Слайдер с функционалом в виде ссылок
Изначальная проблема - не смог найти слайдер. http://detskoeposolstvo.ru/ нужен был как тут, прям 1в1 (вкладка - для родителей). в...

Написать библиотеку с любым функционалом
Необходимо написать библиотеку и основной код. Помогите пожалуйста! P.S. Задание на программу любое

Бесплатные хостинги с полным функционалом
какие есть бесплатные хостинги с полным функционалом

Медиаплеер на VS 2005 с минимальным функционалом
Ребят выручайте. Курсовик сдавать через 2 недели, нужен проект плеера хотя бы с минимальным функционалом.

Создать калькулятор с базовым функционалом
Помогите пожалуйста! Задание - создать калькулятор с функциями +-*/ и при делении на ноль должно показывать &quot;Немогу делить на 0&quot;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru