:: Не фоксом единым
Окна 1С
Us
Автор
Если кто-нибудь имеет опыт встраивать свои компонеты в 1С и выводить результат в полноправное окно 1С .. поделитесь опытом.. Как и через что это организовать..
Ratings: 0 negative/0 positive
Re: Окна 1С
Равиль

Сообщений: 6549
Откуда: Уфа
Дата регистрации: 01.08.2003
Я в 1С не пишу, поэтому только направление. Не очень ясно, что вы имеете ввиду под "своей компонентой" - это может быть как своя процедура, написанная на языке 1С, так и запуск из 1С внешней компоненты, т.е. программы, написанной например на фоксе, которая должна отработать и вернуть результат, например в виде таблицы.
Давайте попробуем сделать следующее: в стандартной форме 1С, например в форме редактирования Расходной накладной добавим свою кнопку в которую пропишем вызов своей процедуры с выводом на просмотр некоторой таблицы (самому стало интересно).
Простейшее программирование выполняется в конфигураторе, но перед этим не забудьте! сделать архив рабочей папки.
Понимаю, что нижеследующее банально, тем не менее прикольно ;)
1) Открываем конфигуратор и в нем открываем конфигурацию
2) В папке Документы открываем Расходную накладную
3) Давим на кнопку "Форма" (расположена внизу)
4) На панели инструментов "Элементы диалога" берем кнопку и ставим ее на форму
5) Кликаем на новой кнопке и в диалоге Свойства кнопки на вкладке Дополнительно пишем формулу: Моя_Процедура()
6) В редакторе формы открываем вкладку Модуль (внизу) и вставляем
в открывшемся окне перед первой процедурой свою:
Процедура Моя_Процедура()
Сообщить("Создаем таблицу в фоксе и открываем ее в 1с");
// Поставьте свой номер версии фокса
FoxPro = СоздатьОбъект("VisualFoxpro.Application.7");
FoxPro.DoCmd("Set Safety Off");
FoxPro.DoCmd("Create Table Tmp_1c (cName c(20), nKol n(2), nCen n(10,2), nSum n(16,2))");
FoxPro.DoCmd("Insert Into Tmp_1c (cName,nKol,nCen,nSum) Values ([Товар 1],10,25,nCen*nSum)");
FoxPro.DoCmd("Insert Into Tmp_1c (cName,nKol,nCen,nSum) Values ([Товар 2],20,100.15,nCen*nSum)");
// 1C не читает вижал фоксовые таблицы
// FoxPro.DoCmd("Copy to c:\For_1c TYPE FOX2X");
// FoxPro.DoCmd("Copy to c:\For_1c TYPE XLS");
// Таб = СоздатьОбъект("Таблица");
// Таб.Открыть("C:\For_1c.xls");
// Таб.Показать("Моя накладная","C:\For_1c.xls");
// Выяснилось, что "Таблица" в 1С имеет формат xml
// Поэтому будем передавать в текстовом формате
FoxPro.DoCmd("Copy to c:\For_1c.txt TYPE delimited with tab");
txt = СоздатьОбъект("Текст");
txt.Открыть("C:\For_1c.txt");
txt.Показать("Накладная из Фокса","C:\For_1c.txt");
КонецПроцедуры //Моя_Процедура
7) Закрываем конфигуратор сохраняясь
8) Открываем 1с и в ней в расходной накладной давим на свою кнопку и наслаждаемся ...

ps Конечно это все не то, что Вам нужно ...




------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: Окна 1С
Us
Автор
Я прошу прощения, не описала задачу. Под внешней компонентой я имела в виду именно внешнюю компонеты. (dll/ocx)
Смысл вот в чем. У меня есть MFC приложение. Самописное, так что делать могу с ним что угодно. Оно принимает расчитанные данные из 1С (должно принимать) и выводить результат пользователю в виде отчета. Отчеты не стандартные, там графика, в том числе и 3D, поэтому собственно сам 1С мне не поможет. Проблема встала в том, что шеф требует чтобы мои графики выводились именно окном 1С, а не отдельным окном в списке окон на рабочем столе. Как именно заставить 1С создать свое окно и вывести туда резултаты работы внешней компонеты я незнаю. Точнее на форуме 1С сказали копать ВК.. Пока ниче хорошего я не накопала..
Ratings: 0 negative/0 positive
Re: Окна 1С
Us
Автор
Незнаю важно ли это или нет. Реализация компонеты VC .Net, графика OpenGL
Ratings: 0 negative/0 positive
Re: Окна 1С
Равиль

Сообщений: 6549
Откуда: Уфа
Дата регистрации: 01.08.2003
Привет, Us:
Цитата:
Я прошу прощения, не описала задачу. Под внешней компонентой я имела в виду именно внешнюю компонеты. (dll/ocx) Смысл вот в чем. У меня есть MFC приложение. Самописное, так что делать могу с ним что угодно. Оно принимает расчитанные данные из 1С (должно принимать) и выводить результат пользователю в виде отчета. Отчеты не стандартные, там графика, в том числе и 3D, поэтому собственно сам 1С мне не поможет. Проблема встала в том, что шеф требует чтобы мои графики выводились именно окном 1С, а не отдельным окном в списке окон на рабочем столе. Как именно заставить 1С создать свое окно и вывести туда резултаты работы внешней компонеты я незнаю. Точнее на форуме 1С сказали копать ВК.. Пока ниче хорошего я не накопала..
Ловите 2 архива с примерами подключения ВК (сделанных на С++).
1) www.ravil.nightmail.ru
2) www.ravil.nightmail.ru
Для отображения в окне 1С при передаче значений для компоненты определяйте хендл активного окна 1С, чтобы сделать его родителем для окна Вашей ВК




------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: Окна 1С
Us
Автор
Спасибо!
Расковыряла пример с клипом, выдрав оттуда отображение видео и заставив его вывести что-то свое. Теперь по аналогии буду переделывать свое.
Еще раз спасибо. ) Если что можно обращаться? Как понимаю в Си вы тоже разбираетесь.. )
Ratings: 0 negative/0 positive
Re: Окна 1С
Равиль

Сообщений: 6549
Откуда: Уфа
Дата регистрации: 01.08.2003
2 Us - пожалуйста, только в С я не спец ... к сожалению. Удачи!




------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 3 (Гостей: 3)

© 2000-2024 Fox Club 
Яндекс.Метрика