Модераторы: stron

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить данные из 1Сv7.7 в MS Access, Способ обратиться к данным. 
:(
    Опции темы
dionisiu
Дата 27.11.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: нет
Всего: 2



Здравствуйте, уважаемые.
Прошу подсказать, как из Акцесса (или Экселя) на локальной машине по сети законнектиться к серверу 1С (на DBF-ах), запросить нужные данные и отключиться. Для подключения должны использоваться права гостя (есть) и пароль (можно хранить в коде программы, всё равно его все знают).

Суть явления - мне для выполнения работы требуется подключаться к удалённому терминалу, формировать несколько разных отчётов, сохранять их в формате эксель и потом вручную заносить в акцес, причём время выполнения жестко лимитировано, а работы довольно много - хочу автоматизировать.
Отчёт связан с движением товара на складе и выдаче определённой группы этого товара определённой группе клиентов (гостевой вход только это и позволяет - другие клиенты и товары не видны), однако требуется выборка по состоянию на разные даты.
Есть возможность вытащить из 1С коды клиентов и товаров нужных групп, запрос желательно делать с учётом этих кодов, а не по названию (периодически меняется)

Автоматизацию из Экселя в акцесс прошу не предлагать - наш конфигуратор выдаёт файлы с большим числом объединённых ячеек и в названия товара впихивает CHR$(13) - мы так и не нашли способа это обработать

Доступа к конфигуратору на нашем филиале нет, в центральном офисе дополнительную обработку делать отказались.

Если можно - пример кода на VBA (в других языках не программирую, к сожалению)


PM MAIL ICQ   Вверх
77dpi
Дата 27.11.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



а если выгружать из 1С (внешней обработкой, конфигуратор не нужен)
http://www.sinor.ru:8100/~my1c/knowhow/accs_dao.html

там же- внешнее соединение ОЛЕ
http://www.sinor.ru:8100/~my1c/knowhow/v7&OLE.html

Это сообщение отредактировал(а) 77dpi - 27.11.2006, 15:20
PM MAIL   Вверх
klen1
Дата 27.11.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 16.3.2006
Где: г. Ликино-Дулёво

Репутация: нет
Всего: нет



Код

Private Sub Command1_Click()
    Dim v7 As Object
    Dim tovar As Object
    Dim result As Variant
    Set v7 = CreateObject("V77.Application")
   result = v7.Initialize(v7.RMTrade, "/DC:\1C_зарплата /M/NПетров", "")
    Set tovar = v7.evalexpr("СоздатьОбъект(""Справочник.Сотрудники"")")
End Sub

Путь C:\1C_зарплата   не должен содержать пробелов

PM   Вверх
dionisiu
Дата 27.11.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: нет
Всего: 2



77dpi, по первой ссылке - не понял. Это на каком языке программирования? то русские конструкции, то нормальный код... Вторая ссылка - тоже выдаёт смесь кодов. 
Если это программирование в 1С - то мне это не доступно, нужен код ВБА.


klen1,  конструкция 
Код

Set tovar = v7.evalexpr("СоздатьОбъект(""Справочник.Сотрудники"")")

создаёт объект где? в 1с или ВБА?


PM MAIL ICQ   Вверх
77dpi
Дата 27.11.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



по первой ссылке - программирование внешней обработки в 1С - можно использовать и русский синтаксис и английский(можно оба вместе)
по  второй - подключение из внешней программы, если она не поддерживает русский синтаксис, нужно писать на английском - как в примере klen1, о работе с оле-объектом 1с лучше почитать в книжке- описании встроенного языка 1с - там всего 5 страниц, во встроенном синтакс-помощнике 1с этого нет. Подключение по ОЛЕ писать в ВБА намного сложнее, чем в 1с, т.к. нужно использовать методы объектов в синтаксисе 1С, а некоторые конструкции редактор ВБА может и не пропустить.   

Это сообщение отредактировал(а) 77dpi - 27.11.2006, 17:55
PM MAIL   Вверх
dionisiu
Дата 27.11.2006, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: нет
Всего: 2



77dpi, а поподробнее можно - что это за внешняя обработка - из отдельной базы в том же 1С?
Прошу прощения, что вынужден напомнить - доступа к конфигуратору у меня нет, так что для меня это тёмный лес.

Насчёт оле-объектов и книжки по ним - это в стандартной документации? или есть отдельные книги?

PM MAIL ICQ   Вверх
Zero
Дата 27.11.2006, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 15
Всего: 24



Цитата(dionisiu @  27.11.2006,  18:03 Найти цитируемый пост)
klen1,  конструкция 
Без подсветки
1:

Set tovar = v7.evalexpr("СоздатьОбъект(""Справочник.Сотрудники"")")

создаёт объект где? в 1с или ВБА?

Адназначна не в 1С, в 1С77 перед именем идентификатора, не какие опции типа "Set" не ставятся, особенно через пробел.
Цитата(dionisiu @  27.11.2006,  19:02 Найти цитируемый пост)
Насчёт оле-объектов и книжки по ним - это в стандартной документации? или есть отдельные книги?

В стандартной документации это есть, но там мало, советую искать дополнительную инфу в и-нете. Ща по ней уже куча всего есть.
Вообще я бы советовал в баню этот аксес и эксел, ставь на своей машине тоже 1С, и не каких проблем не будет. А раз с принципами програмирования знаком, изучай язык 1С (он не сложный) и будешь на ней всё делать.
PM MAIL ICQ   Вверх
77dpi
Дата 28.11.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



dionisiu, если ты выбираеш у них данные с помощью какой-то обработки(отчета) нужно попросить их сохранить его в виде внешней обработки(файл с расширением ert)- тут им ничего программировать не надо.
Заберешь его и допишеш сброс данных в аксес как в первом примере, правдв я такого никогда не делал.
Внешний отчет можно запускать из 1с как обычно- через файл - открыть, конфигуратор не нужен. Как это все будет работать в терминале с подключением к твоей базе - хз.
Забыл, внешн. отчет можно редактировать только в конфигураторе 1с, т е 1с должна быть установлена на компьютере.

Это сообщение отредактировал(а) 77dpi - 28.11.2006, 12:05
PM MAIL   Вверх
dionisiu
Дата 28.11.2006, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: нет
Всего: 2



Zero, миллион извинений, но вынужден повториться - ДОСТУПА К КОНФИГУРАТОРУ НЕТ.
Также уточняю - данные нужно загнать в акцесс - это для обработки и пересылки в центральный офис.
В БД производится обработка и графическое представление анализа движения продукции по категориям товаров, их видов и упаковок по разным категориям клиентов в разрезе сроков - весьма сложные графики получаются. Так что ограничиться установкой 1С на локальной машине не получится - это учётная система, а не аналитическая (так у неё в документации сказано).

За пол-года с акцесом я уже разобрался и часть работы автоматизировал (напрограммировал довольно много кода). Делаю сопряжение нескольких БД акцеса и таблиц экселя.
Но с 1С пока работаю на уровне съёма данных, и именно нужный мне отчёт (конфигуратор сторонней фирмы) выдаёт в экселе слишком сложную таблицу с кучей объединённых полей, которую я пока автоматизировать не могу.

Так вот вопрос в чём - как мне сконструировать запрос к удалённой базе, подразумевая под удалённой базой именно группу таблиц 1С.
Как я понимаю, в примере klen1 создаётся объект (ОЛЕ?), инициализируется конструкцией 
Код

v7.Initialize(v7.RMTrade, "/DC:\1C_зарплата /M/NПетров", "")

где "/М" задаёт монопольный режим (или что это?)
а конструкцией 
Код

v7.evalexpr("СоздатьОбъект(""Справочник.Сотрудники"")")

этому объекту передаётся код 1С, так, что ли?
PM MAIL ICQ   Вверх
77dpi
Дата 28.11.2006, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



Цитата

подразумевая под удалённой базой именно группу таблиц 1С.



1с не допускает работы с базой напрямую. При иниц. ОЛЕ В примере с ВБА монопольный режим не выставлять.
Цитата

этому объекту передаётся код 1С, так, что ли? 


к этому объекту можно применять методы 1С: например tovar.ВыбратьЭлементы() /не знаю англ. вариант/, но поскольку это пишется в ВБА, то редактор ВБА пропустит только то, что считает правильным, т.е. писать на ВБА, используя методы 1С - это труба. Легче написать внешний отчет в !С

Это сообщение отредактировал(а) 77dpi - 28.11.2006, 13:05
PM MAIL   Вверх
dionisiu
Дата 28.11.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: нет
Всего: 2



77dpi, Я понимаю, что легче написать отдельный отчёт. Но я не понимаю, как, не имея доступа к конфигуратору ДЕЙСТВУЮЩЕЙ базы предприятия, сделать коннект из ОТДЕЛЬНОГО конфигуратора.

Ситуация следующая: есть дистрибьютор - оптовая фирма, осуществляющая продажу нескольких групп товара. Есть фирма - поставщик определённой группы товара. Есть клиенты дистрибьютора, покупающие отдельные товары разных групп из ассортимента дистрибьютора. Есть я - представитель фирмы-поставщика. У дистрибьютора установлена и работает 1С77. Это филиал, их офис (и программисты 1С) расположены в другом (довольно удалённом) городе. Мне организован гостевой вход в систему, ограничивающий меня выбором товаров из группы моей фирмы. Моя фирма требует от меня ежедневной отчётности в определённой форме в базе акцесс. Данные из 1С дистрибьютора мне нужно заносить в базу акцесс вручную.

Как видно из схемы - мне отведена роль промежуточного звена между поставщиком и дистрибьютором, однако, дистрибьютор не будет подстраиваться под меня (изменять конфигурацию базы). Одновременно, моя фирма не хочет изменять форму отчётности таким образом, чтобы было удобно копировать данные вставкой.
Мне же не хочется убивать свои руки при ручном переносе данных - вот я и ищу способ обратиться к таблицам напрямую (благо, способ существует), просто пока не знаю - как это сделать.

Это сообщение отредактировал(а) dionisiu - 28.11.2006, 14:18
PM MAIL ICQ   Вверх
77dpi
Дата 28.11.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



но я же писал выше - для того, чтобы запустить свой внешний отчет из их 1с не нужны изменения в их конфигурации, он запускается через файл-открыть, и если ты используеш какой-то встроенный в их конфигурацию отчет - неужели им лень сохранить его как внешний отчет отдельным файлом и дать тебе его доработать - дописать выгрузку в аксес (на твоем компьютере для доработки нужно установить 1с) и потом вернуть доработанный файл им. Программисты его проверят,неужели они на это не согласятся? Правда я не понимаю как в этом внешнем отчете подключится к твоей базе. 
Или может создать mdb у них, пускай заодно и контролируют данные
Цитата
 обратиться к таблицам напрямую 
 - к каким? (файлам dbf или печатным формам mxl)  

Это сообщение отредактировал(а) 77dpi - 28.11.2006, 15:10
PM MAIL   Вверх
77dpi
Дата 28.11.2006, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



Не дочитал, что их программисты в другом городе. Хотя сохранить встроенный отчет как внешний может и более-менее вменяемый пользователь.
PM MAIL   Вверх
dionisiu
Дата 28.11.2006, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: нет
Всего: 2



77dpi, с теми программистами - гиблое дело. Вопрос такой: можно ли создать свою конфигурацию (открыть конфигуратор, сделать новую базу, форму...) и в режиме чтения с известным логином и паролем гостя войти в существующую базу?
Если это в принципе возможно, то буду изучать 1С, если нет - то придётся раскурочивать ... даже не знаю - что.
PM MAIL ICQ   Вверх
77dpi
Дата 28.11.2006, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



Из своей базы 1С естесно можно подключится по ОЛЕ к ихней базе, но к сожалению чтобы работать программно с их объектами нужно знать их конфигурацию - поиметь их файл *.md, который находится в каталоге базы их 1с
если сможешь его себе скопировать - можешь создать собственную пустую базу, идентичную по конфигурации их базе и потренироваться в программировании в 1с.
 
Еще нашел нечто загадочное- доступ из аксеса к 1с:    
http://www.microsoft.ru/offext/details.aspx?id=59

посмотрел этот кошмар - оказалось для 1с 7.5, лучше все-таки писать в 1с.  

Это сообщение отредактировал(а) 77dpi - 28.11.2006, 18:06
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "1C: Предприятие, SAP, ERP и учётные системы"
stron

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...)

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, stron, Pegas.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема »


 




[ Время генерации скрипта: 0.1030 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.