×
Показано с 1 по 19 из 19
  1. Доступ к данным одной базы из другой! Возможно-ли?

    Задача: используя "свою" конфигурацию необходимо получить и обработать данные о взаиморасчетах клиента с различными организациями (т.е. базами). Возможно-ли это реализовать?

    Спасибо!
    Поделиться с друзьями

  2. Клерк
    Регистрация
    19.12.2003
    Адрес
    С-Петербург
    Сообщений
    6,276
    Я думаю, да. Попробуйте через OLE-объекты.

  3. Smic
    спасибо! как раз нашел очень понятное руководство на эту тему.
    здесь: http://www.sinor.ru/~my1c/knowhow/v7&OLE.html
    тогда вопрос вслед: а к нескольким базам одновременно можно подключиться таким образом?

  4. Умный Клерк!
    Регистрация
    07.01.2004
    Адрес
    Владимир
    Сообщений
    13,623
    Можно, почему бы и нет.
    1.Открыта новая радиостанция для юзеров под названием RТ FМ. По ней будут транслироваться чтения различных мануалов и ответы на часто задаваемые вопросы.
    2. "Помогая ленивым людям, ты помогаешь им сесть на свою шею" Сян-Цзы

  5. а вот еще вопрос:
    а можно сделать так, что-бы подключение было "теневым", т.е. что-бы не появлялось окно выбора базы?
    я пробовал указывать параметры /D /N и /P явно, но это все равно не избавляет от этого...

    спасибо.

  6. Fosihas
    Гость
    Для примера:
    "C:\Program Files\1Cv77\BIN\1Cv7.exe" ENTERPRISE /D"D:\Kot\DB\Mart\bistrov\" /U"D:\Kot\DB\Mart\bistrov\" /N"Main" /P"parol"

  7. Fosihas
    если честно, то я не понял вашего примера
    у меня написно так:

    БазаОЛЕ=СоздатьОбъект("V77M.Application");
    Пользователь="Админ";
    Пароль="qwerty";
    Каталог="C:\Program Files\1Cv77\Bases\base2003\";
    Результат=БазаОЛЕ.Initialize(БазаОЛЕ.RMTrade,
    "/D"+Каталог+
    " /N"+Пользователь+
    " /P"+Пароль,
    "NO_SPLASH_SHOW");


    и при этом окно выбора базы появляется... что надо исправить-добавить что-бы оно не появлялось?

    спасибо

  8. Fosihas
    Гость
    subadm, Извини я не о том, а по твоему вопросу, несмогу помочь.

  9. moroder
    Гость
    subadm, окно выбора базы не появиться, если вызываемая база прописана в списке баз. А Инициализация правильная

  10. moroder
    При запуске конфигурации она выдергивает из реестра подключенные пользователем базы и выводит их в виде списка, откуда в дальнейшем и выбирается база к которой производится подключение через OLE. Так-что все базы заведомо прописаны в списке баз... И не смотря на это окно выбора все равно выскакивает...

    И еще, как мне прочитать реквизит "Контрагент" документа из OLE-базы?
    Вот что я делаю:

    ДокОЛЕ=БазаОЛЕ.CreateObject("Документ.РасходнаяНакладная"); // ok!
    ДокОЛЕ.ВыбратьДокументы(); // ok!
    Док.Новый(); // ok!
    Док.Номер=ДокОЛЕ.НомерДок; // ok!
    Док.Наименование=ДокОЛЕ.Операция.Содержание; // ok!
    Док.Дата=ДокОЛЕ.ДатаДок; // ok!
    Док.Сумма=ДокОЛЕ.Операция.СуммаОперации; // ok!
    Док.ИдБазы=КодБазы; // ok!

    //опробованные варианты//
    контр=Строка(ДокОЛЕ.ПолучитьАтрибут("Контрагент")); // не работает!!!
    контр=ДокОЛЕ.ПолучитьАтрибут("Контрагент"); // не работает!!!
    контр=ДокОЛЕ.Контрагент; // не работает!!!

    Док.Контрагент=контр; // ok!
    Док.Записать(); // ok!

  11. moroder
    Гость
    subadm, Дорогой, спасибо, что решил пролечить меня, но если список баз выдается значит не совпадает путь доступа к базе: ведь доступ к базе можно организовать по разному: а) Через абсолютный сетевой путь б) Через постоянно подключенный сетевой ресурс (буква у юзеров может быть разной) в) Через локальный путь (если возможно).
    И если путь указан не такой как прописан в реестре, то список пренепременно появиться...

    п.2.
    контр=ДокОЛЕ.Контрагент; должно работать, только учитывай что ты получишь: ты получишь Объект типа ОЛЕ, который нельзя просто взять и присвоить в текущей базе как это делаешь ты:
    Док.Контрагент=контр;
    Естественно не прокатит.
    У элемента ДокОЛЕ.Контрагент; можно прочитать код или какой-либо другой реквизит и по нему найти в текущей базе его аналог (или образ) и уже найденный элемент использовать...

    Ээх, слишком простой жизни вы хотите батенька.

  12. moroder
    Извини, не хотел чтобы это прозвучало как поучение... (Куда мне )

    по первому пункту:
    а какой вид записи использовать: тот что в реестре (типа С:\\1C\\Base) или вида C:\1C\Base (его то я и использую)?

    по второму пункту:
    сделал как ты посоветовал:

    контр=Строка(ДокОЛЕ.Контрагент.Наименование);

    все работает!!!
    спасибо.

    По п.1 может подскажешь?

  13. Клерк Аватар для training1C
    Регистрация
    16.09.2002
    Адрес
    Москва, СВАО
    Сообщений
    861
    Не народ, все фигня. Вам надо решение? Их есть у меня.
    Проблема в следующей строке:
    Каталог="C:\Program Files\1Cv77\Bases\base2003\";
    А вернее в пробеле "Program Files". Просто он ее передает в одинарных ковычках, а 1С (как и винды) доходит в анализе только до "C:\Program " - и считает это каталогом.

    Вообще держать базы в каталоге Програм файлз - моветон такой силы, что аж дыханье спирает.
    Решение:
    1)Перенести базу в каталог где в пути нет ниодного пробела
    2) передавать строку как
    Каталог="""C:\Program Files\1Cv77\Bases\base2003\""";
    С уважением, Рустам.
    "Пишите письма мелким почерком" :-). Ответ ГАРАНТИРОВАН

  14. Умный Клерк!
    Регистрация
    07.01.2004
    Адрес
    Владимир
    Сообщений
    13,623
    точно-точно, еще и базу по "нормальному пути нужно расположить".
    1.Открыта новая радиостанция для юзеров под названием RТ FМ. По ней будут транслироваться чтения различных мануалов и ответы на часто задаваемые вопросы.
    2. "Помогая ленивым людям, ты помогаешь им сесть на свою шею" Сян-Цзы

  15. training1C
    спасибо огромное!!! все работает!!!

  16. Клерк Аватар для training1C
    Регистрация
    16.09.2002
    Адрес
    Москва, СВАО
    Сообщений
    861
    Всегда пожалуйста.
    С уважением, Рустам.
    "Пишите письма мелким почерком" :-). Ответ ГАРАНТИРОВАН

  17. Аноним
    Гость
    Цитата Сообщение от Fosihas
    Для примера:
    "C:\Program Files\1Cv77\BIN\1Cv7.exe" ENTERPRISE /D"D:\Kot\DB\Mart\bistrov\" /U"D:\Kot\DB\Mart\bistrov\" /N"Main" /P"parol"
    Подскажите, плиз, что значит ключ /U?

  18. Модератор Аватар для Aquad
    Регистрация
    04.12.2002
    Адрес
    Москва
    Сообщений
    3,870
    User ...

    Рабочий каталог юзера (не обязателен) ...

  19. ЕвгенийН
    Гость

    "Теневое" подключение

    Цитата Сообщение от subadm
    а вот еще вопрос:
    а можно сделать так, что-бы подключение было "теневым", т.е. что-бы не появлялось окно выбора базы?
    я пробовал указывать параметры /D /N и /P явно, но это все равно не избавляет от этого...

    спасибо.
    Все отрабатывает отлично. Просто внимательно проверь путь к базе, имя и пароль пользователя.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)