Для загрузки внутреннего справочника ИСС Мед-Заказ в 1С Вы можете воспользоваться следующим способом.
- Установите серверную версию FireBird на компьютер с базой программы Мед-Заказ. Как это сделать описано тут.
- Найдите в папке с программой файл gds32.dll и удлаите его. Если такого файла нет, то искать в других местах не нужно.
- На компьютер с программой 1С установите ODBC драйвер. Скачать драйвер можно отсюда http://www.firebirdsql.org/en/odbc-driver/ Загружайте драйвер согласно Вашей версии Windows, т.е. 32-х, либо 64-х разрядную версию.
Подключение к базе ИСС Мед-Заказ.
ИмяБД = "C:\MedZakaz\medzakaz.fdb"; //Указывается пусть к базе. В сети указывается в слеюущем формате
// <Имя компьютера>:<Путь к базе на локальном компьютере>
// Например: Server:C:\MedZakaz\MedZakaz.FDB
ПользовательБД = "SYSDBA";
ПарольПользователяБД = "masterkey";
БД=CreateObject("ADODB.Connection");
БД.ConnectionString =
"DRIVER=Firebird/InterBase(r) driver;" +
"PWD=" + ПарольПользователяБД + ";" +
"UID=" + ПользовательБД + ";" +
"DBNAME=" + ИмяБД;
Попытка
БД.Open();
Исключение
Сообщить(ОписаниеОшибки());
Предупреждение("Не удалось подключиться к IB ...")
КонецПопытки;
Получение списка накладных.
Запрос=СоздатьОбъект("ADODB.Recordset");
Запрос.ActiveConnection = БД;
Запрос.Source = "select pd.id, pd.distrib_num_doc, pd.distrib_data_doc, pd.sum_by_distrib, pd.sum_rozn, " +
" pd.num_doc, pd.data_doc "
" from tbl_prihod_doc pd"
" where (tpd.data_doc>='" + ВыбНачПериода + "') and (tpd.data_doc<='" + ВыбКонПериода + "')";
Запрос.Open();
Пока Запрос.Eof()=0 Цикл
Сообщить("ID накладной в базе - " + Запрос.Fields(0).Value);
Сообщить("Номер накладной поставщика- " + Запрос.Fields(1).Value);
Сообщить("Дата накладной поставщика - " + Запрос.Fields(2).Value);
Сообщить("Сумма накладной по поставщику- " + Запрос.Fields(3).Value);
Сообщить("Розничная сумма накладной - " + Запрос.Fields(4).Value);
Сообщить("Внутренний номер накладной- " + Запрос.Fields(5).Value);
Сообщить("Дата оприходования накладной - " + Запрос.Fields(6).Value);
Запрос.MoveNext();
КонецЦикла;
Запрос.Close();
Получение товаров накладной.
Для того чтобы получить список товаров накладной, Вам необходимо получить доступ по внутреннему номеру накладной (нулевое поле из предыдущего запроса).
Запрос=СоздатьОбъект("ADODB.Recordset");
Запрос.ActiveConnection = БД;
Запрос.Source = "select PDL.ID,PDL.PRIHOD_DOC_ID,PDL.TRADE_NAME_ID,PDL.FABR_NAME_ID, " +
" PDL.QNT,PDL.QNT_PACK,PDL.SERIES_TOVAR, PDL.GDATE,PDL.DATE_MADE,PDL.NDS,PDL.PRICE_IZG, " +
" PDL.PRICE_REESTR, PDL.PRICE_POST,PDL.PRICE_DISTR_NO_NDS, PDL.PRICE_DISTR, " +
" PDL.PRICE_MAX,PDL.PRICE_ROZN,PDL.NUMGTD,PDL.SERTIF,PDL.SERTDATE,PDL.SERTGIVE, " +
" PDL.SERTORG, PDL.PRICE_FIRST_DISTR_NO_NDS,PDL.PRICE_FIRST_DISTR, " +
" PDL.CODE_TOVAR,PDL.EAN13,PDL.GNVLS, " +
" TN.TRADE_NAME, FN.FABR_NAME " +
" FROM TBL_PRIHOD_DOC_LINES PDL " +
" LEFT OUTER JOIN TBL_TRADE_NAME TN ON TN.SERVER_ID=PDL.TRADE_NAME_ID " +
" LEFT OUTER JOIN TBL_FABR_NAME FN ON FN.SERVER_ID=PDL.FABR_NAME_ID " +
" where pdl.prihod_doc_id=" + НомерНакладной;
Запрос.Open();
Пока Запрос.Eof()=0 Цикл
Сообщить("Торговое наименование - " + Запрос.Fields(27).Value);
Сообщить("Производитель - " + Запрос.Fields(28).Value);
Сообщить("Цена изготовителя - " + Запрос.Fields(10).Value);
Сообщить("Цена реестра - " + Запрос.Fields(11).Value);
Сообщить("Цена поставщика с НДС - " + Запрос.Fields(14).Value);
Сообщить("Розничная цена - " + Запрос.Fields(16).Value);
Сообщить("Количество - " + Запрос.Fields(4).Value);
Запрос.MoveNext();
КонецЦикла;
Запрос.Close();