Есть ли 1Сники?

Любые обсуждения, не нарушающие правил форума.

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

Есть ли 1Сники?

Сообщение Brainenjii » 26.08.2010 07:08:18

Приветствую,

понимаю, что вопрос сильно оффтопичен, но надо ^_^ Потихоньку допиливаю дипломный проект для планирования и анализа деятельности предприятия. И вот, наконец, проект дорос до уровня, когда потребовалось получить данные из 1С, которая на данный момент полностью подчинила себе нашу фирмочку ^_^ Послушав нашего программиста 1С и отбросив первоначальную идею получать справочники напрямую из MS SQL, решил получать справочники в виде XML выгрузок. В принципе, всё прошло на ура, за исключением маленькой детали - выгрузки производятся вручную. При том, что получить так сразу большой справочник - не удалось, перед записью в файл 1С сначала создаёт весь XML файл в памяти (или даже всю структуру справочника), после чего выгрузка вылетает с исключением на нехватку памяти (делалось на машине самого программиста, на сервере запускать выгрузку пока не пробовали). На мой вопрос "а можно ли организовать инкрементальную выгрузку справочников" (т.е. написать скрипт (ну, или пусть будет обработку), который получит все записи справочника, созданные или изменнённые в определённый период), 1Сник сказал, что это невозможно. Я не верю ^_^ Так вот, если вдруг здесь есть люди, разбирающиеся в 1С, подскажите - в какую сторону там хотя бы смотреть - попробую сам что-нибудь накатать подобное ^_^

Спасибо.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Есть ли 1Сники?

Сообщение Timid » 26.08.2010 08:11:02

Насколько мне известно, 1С.Предприятие предоставляет возможность взаимодействия со сторонним приложением посредством СОМ(OLE), существует даже серия статей. Посмотрите, к примеру, на Дельфи-исходниках.

Портировать пример не должно представлять сложности, если Вы разобралисть с XML :)

И, кстати, ради бога, не просите Вашего 1С-ника создавать файлы XML или Excel - работа с ними там крайне "костылява" и очень медленна. Лучше вообще автоматизировать все "большие выгрузки" через стороннее приложение (как Ваше, к примеру) ;)

И, ждем от Вас урок "Лазарь против 1С" :D
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: Есть ли 1Сники?

Сообщение Vadim » 26.08.2010 09:00:14

Brainenjii писал(а):отбросив первоначальную идею получать справочники напрямую из MS SQL

А почему? Я, в своё время, получал данные не только из справочников. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Есть ли 1Сники?

Сообщение stikriz » 26.08.2010 09:57:50

Проверьте, что версия платформы не ниже 1С:Предприятие 8.2 (8.2.12.75)
Вроде, там поправили работу с памятью.
Лучше всего подключиться из 1С через АДО к Вашим таблицам и постить туда.
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString = СтрокаПодключения;
Соединение.ConnectionTimeOut =1200;
Соединение.CursorLocation = 3;
Попытка
Соединение.Open(Соединение.ConnectionString);
Возврат Соединение;
Исключение
Сообщить("Ошибка соединение!");
ВызватьИсключение;
КонецПопытки;


Попытка
Комманда = Новый COMОбъект("ADODB.Command");
Комманда.ActiveConnection = Соединение;

Комманда.CommandText = Запрос;
НаборЗаписей = Новый COMОбъект("ADODB.Recordset");
НаборЗаписей = Комманда.Execute();
// Возврат НаборЗаписей;
Исключение
Сообщить("Ошибка выполнения запроса! "+Запрос);
ВызватьИсключение;
КонецПопытки;

Что-то в этом роде.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Есть ли 1Сники?

Сообщение Brainenjii » 26.08.2010 12:22:40

У нас 8.1. Если всё правильно понял, то особой разницы, между подключением к моим таблицам через ADO из 1С и подключением к 1С через COM нет. Так что я попробую второй вариант, спасибо Timid за наводку ^_^
2Vadim: работать с базой опасаюсь, потому как вдруг что изменится в 1С - потом иди-свищи - в каком месте поломалась выгрузка из базы. А пример с статье довольно, и с виду никаких опасений не вызывает ^_^ Буду пробовать ^_^

Спасибо!
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Есть ли 1Сники?

Сообщение Vadim » 26.08.2010 13:13:30

Brainenjii писал(а):потому как вдруг что изменится в 1С

Brainenjii писал(а):потребовалось получить данные из 1С

Отсюда логический вывод - тебе нужно только брать оттудова данные, а не заносить их туды. Так что не бойся... :) Да и, наверное, быстрее будет.
В своё время потребовалось руководству делать красивый график продаж (обязательно с ежедневным повышением :D ). Когда ему такую фиговину сделал 1С-ник, то, во-первых, перепугал несчастного начальника 1С-ным интерфейсом, а во-вторых, на постройку графика требовалось около получаса. А если бухгалтерия в это время делала какой-нибудь вселенский отчёт, то и вообще около двух часов. "Гиганта мысли" спас обычный Excel, который делал выборку напрямую из базы и тут же строил график. На это требовалось около минуты (точно не засекал). Мне сразу предложили перевестись в 1С-ники, но я гордо отказался. :D
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Есть ли 1Сники?

Сообщение Timid » 26.08.2010 13:56:06

"1Совый бейсик" работает крайне медленно и занимает очень много памяти. Так что лучше подключаться именно к интерфейсу 1С со стороны. Из "нормальной" среды. :)
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: Есть ли 1Сники?

Сообщение Vadim » 26.08.2010 14:49:14

Timid писал(а):Так что лучше подключаться именно к интерфейсу 1С со стороны

Так если подключится "со стороны", разве там не будет работать тот же самый бейсик? Ведь всё равно, через COM-интерфейс запускается та же 1С и начинает выполнять свои функции как обычно.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Есть ли 1Сники?

Сообщение serg48 » 26.08.2010 19:58:30

В 1С справочники не хранят историю измения данных. Это возможно только с помощью доработки конфигурации! По поводу XML могу сказать, что работа в 8.1 с ним происходит нормально, в отличие от 7.7, в которой платформа полностью зависала при больших объемах данных! Пробовал выгружать файлы XML размером больше 1 Гб! Если будут вопросы - обращайся!
serg48
новенький
 
Сообщения: 12
Зарегистрирован: 21.03.2010 15:46:07

Re: Есть ли 1Сники?

Сообщение Mr.Smart » 26.08.2010 20:09:13

OFF TOP - ссори...

Почитал тут про данный "чуда" продукт и он у меня вызывает только неприязнь. Хотя придётся :cry:

Хотелось бы услышать мнение людей работавших с онной системой:
каким всё-же способом лучше и менее затратней обмениваться данными с данным (загрузка/выгрузка справочников и допустим номенклатуры) чудом?

ps Было время, что я занимался поддержкой бухов, но я был студентом и систему просто админил (наплевался и на проклянался) и даже не подозревал, что есть костыли и при обмене данных.
ps ps И обмен данными непосредственно с базой данных, считаю не рациональным, т.к. кто знает, что им придёт в голову в следующем обновлении..
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Есть ли 1Сники?

Сообщение Brainenjii » 26.08.2010 21:06:59

2Mr.Smart: Номенклатура - один из справочников. Собственно топик посвящен именно этому вопросу - как обменяться (в моём случае только получить данные) информацией с 1С.
2Vadim: как и Mr.Smart'a меня тоже беспокоит - вдруг в следующем обновлении чуть-чуть поменяется струкутра базы и сорвётся работа моего проекта... Заносить данные туда пока и не думаю (если вдруг заваруха-война - ref'ы всех позиций всех справочников будут и можно собрать и тот же xml, который 1Сник уже раскидает, куда ему надо).
serg48: вот! Очень плохо, что нет истории изменения ^_^ Хотя, 1С сама по себе задачу анализа и не должна решать (по-крайней мере как понял в ходе не очень плотного моего с ней знакомства). По поводу XML - работает действительно замечательно, XML валидны, обрабатываются как по маслу... Но вот как организоваться экспорт огромного справочника (той же номенклатуры), который ещё связан с десятком других справочников - вопрос... Только что если действительно оставлять на выходные на сервере выгружаться... Так ведь опять же, чтобы потом получить изменения - опять эту полубезумную процедуру устраивать...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Есть ли 1Сники?

Сообщение Vadim » 27.08.2010 04:04:44

Brainenjii писал(а):вдруг в следующем обновлении чуть-чуть поменяется струкутра базы и сорвётся работа моего проекта...

Смена структуры базы при обновлении - это страшно. :)
Честно говоря, я не помню, чтобы в 7.7 менялась структура при обновлении. Возможно в 8.хх это стало обычной практикой, не знаю... Кстати, в 7.7 обычно прикладывался текстовый файл со структурой базы, по которой оная структура проверялась при загрузки 1С. В 8.х этого уже нет? Просто я с ней не работал, не знаю...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Есть ли 1Сники?

Сообщение serg48 » 27.08.2010 15:09:45

Для обмена данными в 1С имеется конфигурация "Конвертация данных". С её помощью создаются правила, по которым с помощью обработок выгружаются данные в xml файл и загружаются из него, причем если в справочнике есть реквизиты со ссылками на другие справочники, то можно настроить, чтобы они тоже выгружались и загружались. Как я понял, то тебе нужно только выгрузить данные. Выгрузку, если есть опыт работы с конвертацией данных, можно настроить минимум за минут 20 (в зависимости от сложности обмена). Далее (если будешь загружать не в 1С) нужно будет вручную обрабатывать xml файл.
serg48
новенький
 
Сообщения: 12
Зарегистрирован: 21.03.2010 15:46:07


Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26

Рейтинг@Mail.ru