|
|
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
Задача - сравнить справочник материалов в VFP и в 1С. В принципе надо сделать select * from table1 where field1 not in (select field1 from table2), то есть отобрать записи из одной таблицы которых нет в другой. Загвоздка в том, что не могу взять справочник 1С как таблицу. К базе подключилась, сформировала запрос, выполнила (result = query.execute()), а дальше во всех примерах предлагается ПЕРЕБОРОМ записей сформировать результат запроса, но мне это совсем не нравится, есть какой то другой способ? 1с 8.0, VFP 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 08:39 |
|
||
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
НатальяПЗадача - сравнить справочник материалов в VFP и в 1С. В принципе надо сделать select * from table1 where field1 not in (select field1 from table2), то есть отобрать записи из одной таблицы которых нет в другой. Э-э-э, такой select не даст Вам сравнение справочников, он даст только наличие-отсутствие поля field1 в таблицах table1, table2. НатальяП Загвоздка в том, что не могу взять справочник 1С как таблицу. К базе подключилась, сформировала запрос, выполнила (result = query.execute()), а дальше во всех примерах предлагается ПЕРЕБОРОМ записей сформировать результат запроса, но мне это совсем не нравится, есть какой то другой способ? 1с 8.0, VFP 8. Есть ещё способ - узнать имя справочника в БД и работать с ним напрямую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 09:15 |
|
||
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
Да, про этот способ слыхала. Конечно я счас попытаюсь узнать, в какой таблице он хранится... А потом в VFP как мне ее открыть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 09:40 |
|
||
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
Всё зависит от хранилица данных - это или dbf или MSSQL, собственно доступ к этим обьектам известен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 09:45 |
|
||
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
PaulWist... Есть ещё способ - узнать имя справочника в БД и работать с ним напрямую. Далеко не самый лучший способ. Если не сказать худший. 1С свою структуру хранения не документирует, а строить связь с 1С базой на предположении что такая структура будет вечной неправильно. Хотя если требования к скорости критичны, то альтернатив этому способу нет. Как вариант - написать 1С обработку для выгрузки справочника в DBF и из фокса запускать выгрузку, а затем эту dbf сравнивать в фоксе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 10:15 |
|
||
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
Этот способ тоже рассматривала - создаю dbf-файл, а дальше?! Опять же ПОСТРОЧНО его наполняю?! Опять этот самый кашмарный цикл! Или я еще не нашла способа? В этой 1С есть что-то типа append from, чтоб разом добавить весь этот справочник в dbf? Никак не могу найти ничего подходящего. Хотя вопрос наверно в другой форум.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 10:26 |
|
||
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
Так Вы где работаете-то? В фоксе или в 1С? Если в 1С выгрузили в дбф, то о какой построчной обработке идет речь? Может задачу опишите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 10:31 |
|
||
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
НатальяПЭтот способ тоже рассматривала - создаю dbf-файл, а дальше?! Опять же ПОСТРОЧНО его наполняю?! Опять этот самый кашмарный цикл! Или я еще не нашла способа? В этой 1С есть что-то типа append from, чтоб разом добавить весь этот справочник в dbf? Никак не могу найти ничего подходящего. Хотя вопрос наверно в другой форум.... С 1С8 не работал, в 1С77 возможно только построчно в цикле. Про способы лучше у 1С-ников выяснить. Ускорение предполагается за счет снижения издержек на работу СОМ. Или один раз вызвать процедуру формирования DBF написанную на 1С, или несколько тысяч раз обратиться через COM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 10:52 |
|
||
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
в 8.1 вроде как документируется соответствие названий объектов в 1С и в SQL Server. Но это достаточно сложно. А так - делается запрос встроенным языком в 1С, разультат попадает в таблицу значений (OLE объект). Вы его перегоняете в курсор (циклом). Далее получаете свои данные из SQl Server тоже в курсор. И уже два курсора сравниваете на полное соединение. У нас это так организовано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 17:07 |
|
||
|
VFP и 1С - помогите?!
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо! Попробовала все способы - в результате сделала вот так: в 1С в общем модуле написала процедуру, которая из справочника создает dbf-файл, а в VFP написала программу , которая через COM-соединение коннектится к 1С и запускает эту процедуру. Ну а когда уже 1с-совский справочник есть в виде dbf-таблицы, сравнить с фоксовским дело техники. Коннект, конечно, делается не быстро :-((( но больше фантации не хватает ни на что! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 16:04 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34719037&tid=1588888]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 217ms |
| total: | 360ms |

| 0 / 0 |
