1С7.7 Плохой тип переменной

Тема в разделе "1C и всё что с ней связано", создана пользователем KiR, 27 янв 2010.

  1. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    вот изучаю новый объектик - подключение по Олям к 1С7.7.... Подключится удалось, далее Спр = БазаОле.CreateObject("Справочник.Номенклатура"); тоже вроде отработало, а вот при попытке - БухИт = БазаОле.CreateObject("БухгалтерскиеИтоги"); получаю ошибку "Плохой тип переменной". Вероятно что-то делаю не правильно, вопрос только - что именно? Прошу подсказать как именно нужно поступать при работе с конкретным объектом. Заранее спасибо
     
  2. Hryv

    Hryv Гость

    Может нет компоненты Бух.учет?

    У меня так все работает
     
  3. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    только она и есть)

    P.S. забыл еще кое что уточнить. выдается ошибка не при создании бух.итогов, а при БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    А так не лучше :
    БухИт.ИспользоватьСубконто("Контрагенты"); ?
     
  5. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    может и лучше. ща попробую. а в чем разница?

    таки и правда лучше! а кто может объяснить почему? а также почему я в отладчике не могу поглядеть результаты? кроме того как мне заполнить полученными данными ТЗшку чтобы поля содержали нужные мне значения? (сейчас просто в первой строчке написано ОЛЕ)

    P.S. буду также благодарен за ссылочки на литературу где все подробненько описывается
     
  6. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    А ты из бухгалтерии вызываешь ОЛЕ-бухгалтерию ?
     
  7. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    ДА. это как бы две базы одной конторы, тока одна для всех клиентов, а другая для физиков. вот с общей в нее и нада некие данные передавать. а через файл не хочецо - и так умею уже
     
  8. Hryv

    Hryv Гость

    Разница в том, что при
    БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
    во ВТОРОЙ базе идет попытка использовать субконто ПЕРВОЙ базы
    ТЗ надо заполнять простыми значениями (строка, число ...)
    А элементы справочников, документы и прочее затем искать по кодам, номерам и т.п.

    Добавлено: Например, мне недавно надо было сделать сверку остатков одной базы с одной из трех других баз на выбор юзера

    Я в ТЗ загонял коды номенклатуры, которые во всех базах совпадают и остатки из разных баз. Потом сравнивал
     
  9. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Так что, скорее всего
    БухИт.ИспользоватьСубконто(БазаОле.ВидыСубконто.Контрагенты);
    будет корректно
     
  10. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Hryv, спасибо. печально, конечно, но видимо ничо не поделаешь.
     
  11. Hryv

    Hryv Гость

    KiR, а что именно печально?
    Давай поподробнее что конкретно надо сделать
    Может все-таки получится через OLE
     
  12. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    печально то что получаешь только примитивные типы данных :) а сделать нужно вот что:
    выбрать проводки 76,5-76,5 (третья аналитика - справочник номенклатура) да еще и так чтобы по 3 аналитике - только физики, а корсубконто2 - договор определенного вида.
    по идее можно реализовать выборку черным запросом или бух итогами. ща мучаю бух итоги. но может запрос будет отрабатывать быстрее и точнее?
     
  13. Hryv

    Hryv Гость

    Тогда я не вижу особых проблем

    это не совсем так

    Выше уже было
    Все объекты из подключенной базы получаются нормальными, но их не надо путать и сравнивать с объектами текущей базы
    Например
    БухИт = БазаОле.CreateObject("БухгалтерскиеИтоги");
    СпрВД = БазаОле.CreateObject("Справочник.ВидДоговора");
    СпрВД.НайтиПоКоду(НужныйКод);
    ...
    Если БухИт.КорСубконто(2).ВидДоговора=СпрВД.ТекущийЭлемент() Тогда
    ...

    Примерно так и в таком духе

    А если что-то надо, например, вывести на печать, то пишем не БухИт.КорСубконто(2), а БухИт.КорСубконто(2).Наименование

    Вроде как можно с подключенной базой сделать все, что и с обычной
     
  14. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Hryv, так-то оно так, да вот только отладчиком я могу видеть результаты только текущей базы, а не оле...

    кстати, а что по поводу черного запроса и бухитогов?

     
  15. Hryv

    Hryv Гость

    как и для печати, попробуй вместо БухИт.КорСубконто(2) смотреть БухИт.КорСубконто(2).Наименование или БухИт.КорСубконто(2).Код

    а что значит "черный" запрос? я что-то такого жаргона не слышал :what?:
     
  16. kaa

    kaa Гость

    Рекомендую - ЗначениеВСтроку,ЗначениеИзСтроки
     
  17. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    ну запрос в семерке называется черным. видимо стал так именоваться по своей непонятной "черной" работе...

    ВСЕ. всем спасибо! :what?:
     
Загрузка...

Поделиться этой страницей