Добрый день. Уважаемые, один мой товарищ по работе организовал у себя в макросе подключение к базе 1С при помощи кода:
Код
Set conn = CreateObject("V83.COMConnector")
Set bd = conn.Connect("Srvr=""Zeus:1687"";Ref=""moto_sup""")
Set Запрос = bd.NewObject("Запрос")
Запрос.Текст = "Здесь текст консольного запроса к БД 1С"
Хочу также тащить себе таблички в PQ. Это возможно вообще? Если да, то хотя бы натолкните на мысль, где копать?
1C хранит данные (обычно) в SQL, насколько я понимаю. Так что можно цепляться хоть напрямую, если знаете, как эта база устроена. Если не знаете - лучше не надо (да и доступа к ней у вас не будет в таком случае, скорее всего)
Denis87, Я всего лишь хотел узнать какой функцией в PQ я могу настроить такое же COM соединение и транслировать в неё запрос на формирование таблицы, которую дальше буду обрабатывать в PQ. Максим Зеленский, Макрос обращается к БД запросом на её родном языке, как это представлено в примере. Запрос в консольке 1С сляпать в конструкторе вообще не проблема. Есть тестовая БД, так что ничего не поломаю. Просто подскажите функцию PQ для установления соединения по аналогии с VBA, а дальше буду сам тыкаться в макете. Ну а если так нельзя, то так и скажите, буду придумывать костыли.
Насколько помню без танцев с бубном из PQ к 1С еще ни у кого не получилось подключиться. Нет там такого соединения. Пока что. Если поискать в сети - можно найти всякие грабли через установку доп.приложений для коннекта.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Грабли для коннекта через сторонний (не MS) софт не подойдут - замучаюсь согласовывать их установку на корпоративный комп. А значит данные придется тащить макросом, а потом обрабатывать через PQ. Всем спасибо.
Описанный в #1 способ работает, можно получить список Контрагентов, Номенклатуры, ... Можно изменять данные методами 1С (для этого объекта: conn = CreateObject("V83.COMConnector")) для того этот CОM и писали. PQ так не подключишь, т.к. он не поддерживает COM объекты (во всяком случае в для 2010).
PS Да при авторизации могут быть проблемы, не всегда удается ее пройти успешно. Для УПП на 8.2 мне удавалось открыть соединение только после 18-00, когда большинство пользователей покидали систему. Причину выявить не удалось.
Василий Нисс, а если нужны текущие данные, а отчёт по всем клиентам/номенклатуре формируется 20 минут? Каждый раз залезать в отчёт или рассылку и менять отбор? А если отобрать нужно 50 товаров?
Тогда лучше делать это все сразу в 1с, минуя привязку к другим пирогам. Конечно, будут дополнительные расходы на запись дополнительных окон, но вся эта задача будет решаться в рамках одной только Иннески (1с). 1с очень гибкий для этого инструмент.
Михаил Л написал: приходящий программист 1С с почасовой оплатой растягивает свою работу на пару дней?
Ха! Программисты свои. Доработки согласовываются от месяца до трех. Реализация доработок (не совсем тривиальных) от 6 месяцев после согласования. Через 9 месяцев меняется бизнес логика - нахер не нужна доработка
Михаил Л, я запрашивал доступ к БД - отказали, ссылаясь на нарушение лицензии 1С и очень сложную структуру данных, в которой не разберусь. Есть свой API, который изначально для qlick делали, но там не использовали. Но при проверке оказалось, что почему-то не работает. В общем, сижу и жду, пока рассылка выполнится .
surkenny написал: ссылаясь на нарушение лицензии 1С и очень сложную структуру данных, в которой не разберусь
Есть такой очень интересный инструмент: ATK Biview вроде называется. Так вот, он позволяет все 1С-ые таблицы с атрибутами "расшифровать" в читаемые названия. Что позволяет легко найти нужную информацию без посторонней помощи. Про нее даже не все программисты 1С знают, что существует такая удобная программа. Не помню, есть там trial версия или нет.
написал: как быть если конфигуратор запоролен, а приходящий программист 1С с почасовой оплатой растягивает свою работу на пару дней?
Использовать внешнюю обработку для формирования отчета, итог выгружать в CSV.
Цитата
написал: я запрашивал доступ к БД - отказали, ссылаясь на нарушение лицензии 1С и очень сложную структуру данных, в которой не разберусь.
Не очень понятно, что именно Вы запрашивали. Странно, если база данных запрещает доступ к своей структуре данных. В 1С есть проблема модификации типового решения, т.е. если ВЫ изменяете какой-либо объект метаданных, то теряете поддержку вендора на этот объект. Но Вам то надо просто прочитать данные, менять ничего не надо.
написал: а если нужны текущие данные, а отчёт по всем клиентам/номенклатуре формируется 20 минут? Каждый раз залезать в отчёт или рассылку и менять отбор? А если отобрать нужно 50 товаров?
Всегда есть способ оптимизировать время выполнения.
написал: Есть такой очень интересный инструмент: ATK Biview вроде называется. Так вот, он позволяет все 1С-ые таблицы с атрибутами "расшифровать" в читаемые названия.
Здесь речь видимо о таблицах SQL сервера, там действительно таблицы имеют нечитаемые имена, не имеют внутренних связей. Тогда речь пойдет уже о подключении к SQL, а не к 1С.
TheBestOfTheBest написал: Тогда речь пойдет уже о подключении к SQL, а не к 1С.
Вот именно прямое подключение к SQL и нарушает лиц. соглашение с 1С. Ну или мне так объясняли. Может врут, мне некогда углубляться в юридические тонкости. По сути известных мне вариантов взять данные из серверной 1с их 4: Обращение к SQL расшифровав названия таблиц и их полей Выгрузки (автоматизированные и не очень) в файлы Выгрузка нужных данных в хранилище/куб и потом тащить оттуда обычным коннектором Настроить OData, но это только для маленьких объемов. Собcтвенно Odata часто и используется чтобы тащить данные маленькими порциями в хранилище.
Слушайте Есть ли у кого доступ для скачивания 1С обработок? Нужно обработка для перевода запроса в SQL. Примерно такая желательно для 8.1 Вот еще ссылка о чем речь
написал: Вот именно прямое подключение к SQL и нарушает лиц. соглашение с 1С. Ну или мне так объясняли. Может врут, мне некогда углубляться в юридические тонкости.
Честно впервые такое слышу, мне кажется просто не хотят что то раскрывать, я ежедневно выгружал так из базы и всё прекрасно, потом наделали вьюх и через них PQ прекрасно забирает
написал: Нужно обработка для перевода запроса в SQL. Примерно такая желательно для 8.1
Посмотрите на Инфостате, там чего только нет. Но то что она есть это факт, на прошлой работе я пользовался помню.Но при уходе ничего не брал всё так там и осталось.
написал: Вот именно, все ссылки ведут на Инфостат,
деньги странно ну и бог с ними. Тогда в телеграмме поискать группы 1С и там попросить программистов скинуть/поделиться, уверен у кого есть легко дадут.
написал: Вот именно прямое подключение к SQL и нарушает лиц. соглашение с 1С. Ну или мне так объясняли. Может врут, мне некогда углубляться в юридические тонкости.
Практически у всех клиентов бэкап настроен через SQL и нечего, работают, никто их лицензии не лишает. Кроме этого, 1С не отвечает за внесенные данные, т.е. изменение структуры таблиц SQL - там да, поддержки лишитесь, а данные - гоняйте на здоровье. В #24 - сделайте несколько представлений(view) на SQL и подключайтесь к ним стандартный драйвером PQ.
PS Да, только при любом обновлении релиза, 1С могут структуру данных поменять, и вьюхи придется править.