8.3.5.1068 (және одан кейінгі) платформа нұсқасында сыртқы көздердегі деректерді қосу, өзгерту және жою мүмкін болды. бағдарламалық қамтамасыз ету 1С. Бұл мүмкіндіктің мысалдары осы мақалада берілген.

Сыртқы көздерге жазуды мүмкін ету үшін 1С компаниясы деректер кестелері мен сыртқы көздердің өрістеріне жаңа қасиеттерді қосты:

  • Бүкіл кесте үшін - меншік Тек оқу. ReadOnly = Trueбұл кестедегі деректерді өзгерту мүмкін емес дегенді білдіреді;
  • Жеке кесте өрістері үшін - қасиеттер Тек оқу, AllowNullЖәне Толтыру мәні:
    • ReadOnly = Trueбұл өрістегі деректерді өзгерту мүмкін емес дегенді білдіреді;
    • AllowNull = Trueмәнді осы өріске жазуға болатындығын білдіреді NULL;
    • Толтыру мәніосы өрістің әдепкі мәнін қамтиды (бар болса).

Сіз (кестелерді қолмен сипаттаған кезде) немесе платформа (конструкторды пайдаланып кестелерді жасаған кезде) бұл сипаттарды келесідей пайдалана аласыз.

  • ReadOnly = Trueмысалы, көріністер үшін өрнек (функция нәтижесі) және т.б. негізінде алынған кестелерді орнатыңыз. Мұндай кестелердегі деректерді өзгерту мүмкін емес;
  • ReadOnly = Trueавтоматты түрде орнатылатын өрістерді көрсетіңіз ( АВТОИНКРЕМЕНТ), есептелген өрістер және т.б. Мұндай өрістердегі деректерді өзгерту мүмкін емес;
  • AllowNull = Trueнегізгі өрістерден және сыртқы көзде сипатталғандардан басқа барлық өрістер үшін орнатылады НҰЛ ЕМЕС;
  • Толтыру мәніөрістер сыртқы көз осы өрістің стандартты мәнін көрсеткен жағдайда орнатылады (мән Әдепкі).

Кірістірілген тілді немесе интерактивті түрде сыртқы көздердегі деректерді қосуға, өзгертуге және жоюға болады. Бұл үшін кірістірілген тіл келесі кесте менеджерінің әдістерін пайдаланады:

  • CreateRecordSet()- объект емес кестелер үшін;
  • Жаңа әдіс CreateObject()- объектілер кестелері үшін.

Сәйкесінше, объектілер ExternalDataSourceTableRecordSetЖәне ExternalDataSourceTableObjectжаңа әдістер пайда болды Жазу()Және Жою().

Деректерді қосу

Сыртқы көзге деректерді қосқанда, сіз нысанды (немесе жазбалар жинағын) жасайсыз, өріс мәндерін орнатасыз және жазасыз. Дегенмен, білуге ​​болатын кейбір мүмкіндіктер бар.

Мысалы, бар өрістің мәнін орнатуға тырыссаңыз ReadOnly = True, қате жіберіледі. Ал өрнекте дерекқорға тікелей жазғанда INSERTмұндай өрістер өткізіп жіберіледі. Қалған өрістерде оларға тағайындалған мәндер бар. Сондықтан құндылықтар Нөлжәне әдепкі мәндер өрістерге анық тағайындалуы керек.

  • id(AllowNull = True);
  • аты(AllowNull = True);
mFeature = ExternalDataSources.TableIm.shop_feature.CreateObject();

mCharacteristic.id = Код; Жазу() mCharacteristic.name = Аты; mCharacteristic.Write();Мәлімдеменің орындалуы INSERTоқиға өңдегішінің бірінші шақырылуына әкеледі Жазу алдында.

, содан кейін сыртқы бастапқы кестеге физикалық жазу орындалады ( INSERT), содан кейін оқиға өңдегіші шақырылады Жазу кезіндеСыртқы бастапқы кестенің кілт өрісімен келесі әрекеттерді орындауға болады. Егер кілт өрісі өзгеретін болса, жазу алдында оның мәнін «қолмен» орнатасыз. Егер кілт өрісін өзгертуге тыйым салынса, платформа кілтті дербес қабылдайды mCharacteristic.Write();немесе бірден кейін. Әдісті пайдаланып бұл процеске араласуға болады Жазу алдында).

SetLinkNew()

физикалық жазба алдында (оқиға өңдегішінде ) немесе физикалық жазбадан кейін бірден (оқиға өңдегішінде.

Деректерді өзгерту

Деректер өзгерген кезде барлық кесте өрістерінің мәндері бар ReadOnly = FalseЖәне MFeature = ExternalDataSources.TableIm.shop_feature.FindByField("id",код); mObject = mCharacteristic.GetObject(); mObject.name = Аты; mObject.Write();.

Егер сізге тек кейбір өрістерді жазу қажет болса, әдістерді пайдаланып олардың тізімін тікелей кірістірілген тілден көрсетуге болады.

SetWritableFields() GetWrittenFields().

Деректерді жою

Деректерді жою дерекқор кестесінен жолды тікелей жояды. Бұл жағдайда жойылатын нысанға сілтемелерді іздеу орындалмайды. Егер мұндай функция қажет болса, оны оқиға өңдегішінде өзіңіз бағдарламалай аласыз

Жою алдында() MFeature = ExternalDataSources.TableIm.shop_feature.FindByField("id",Code); mObject = mCharacteristic.GetObject(); mObject.Delete();:

  • Мәмілелер;
  • Сыртқы көздерден деректерді оқу, бұрынғыдай, транзакциядан тыс орындалады және жазу кезінде платформа жасырын транзакцияны ашады. Сонымен бірге объект әдістерін пайдалана отырып, айқын транзакцияларда оқуды да, жазуды да орындауға болады;
  • ExternalDataSourceManager.

StartTransaction()

  • CommitTransaction();
  • CancelTransaction();
  • Құлыптар.

Авто Басқарылады:

Сонымен қатар, әдісте құлыптау деңгейін дербес орнатуға болады Мәмілелер.

Мен стандартты мақалаға мысалдар қостым) Егер менде көбірек уақыт болса, мен көбірек мысалдар қосамын.

1С бағдарламасының 8 нұсқасында әзірлеушілер функционалдылыққа үшінші тарап дерекқорларын қосу және олардан ақпаратты конфигуратордан қолданбай тікелей алу мүмкіндігін қосты. COM қосылымдарыжәне OLE нысандары. Бұл мүмкіндік жаңа нысан арқылы жүзеге асырылады - «Сыртқы деректер көздері»

1С жүйесіндегі сыртқы деректер көздерін жүйедегі басқа кестелер сияқты пайдалануға болады:

  1. Мәліметтерді құрастыру жүйесін (DCS) пайдаланып есептер мен есептеулерді құру кезінде;
  2. Үшінші тарап көздерінде сақталған ақпаратқа сілтемелер алу үшін;
  3. Кестелерде сақталған мәліметтерді өзгерту үшін;
  4. Сұраныстарды жасау кезінде.

Бұл механизм басқа 1С дерекқорларымен жұмыс істеуге арналмағанын білу маңызды, өйткені 1C.Enterprise операциялық моделінің өзі физикалық кестелер деңгейіндегі деректерге кедергі келтірмейді.

Жаңа дереккөз жасау

Бағдарламаға жаңа сыртқы көзді қосу «Конфигуратор» режимінде орын алады. Конфигурация ағашында сәйкес тармақ бар (Cурет 1)

Жаңа нысанның пішінінде тек төрт қойынды бар екеніне қарамастан, жаңа көзді жасау кезінде көп жұмыс істеуге тура келеді:

  1. Негізгі;
  2. Деректер;
  3. Функциялар;
  4. Құқықтар.

Бірінші қойындыда бір ғана қызықты параметр бар - құлыпты басқару режимі. Егер сізде транзакциялардағы деректерді бұғаттау немесе ақпарат ағындарын параллельдеудің күрделілігі туралы сұрақтарыңыз болмаса, бұл параметрді режимде қалдыра аласыз. автоматты құлыптау. Дегенмен, мұндай тәсіл шектен тыс шектеулерге әкелуі мүмкін (мысалы, жеке жазбаның орнына бағдарлама бүкіл физикалық кестені құлыптап, басқа пайдаланушыларды онымен жұмыс істеу мүмкіндігінен айырады).

Басқарылатын құлыптар, автоматты түрден айырмашылығы, олар ДҚБЖ емес, бағдарламаның өзінде енгізілген транзакция механизмін пайдаланады, бұл кестені түсіруді әлдеқайда төмен деңгейге тасымалдауға мүмкіндік береді.

Бұл параметрді «Автоматты және басқарылатын» күйіне орнату арқылы біз жүйеге әрбір нақты кесте үшін ұқсас сипатқа тікелей қатынасу арқылы қандай режимді пайдалану керектігін анықтау мүмкіндігін береміз.

Сыртқы көз сипаттары пішінінің «Деректер» қойындысы

«Деректер» қойындысының пішіні суретте көрсетілген. 2

Күріш. 2

Мұнда біз сыртқы бастапқы кестелер мен текшелерді қоса аламыз. Кестені қосудың екі жолы бар:

  1. Қолмен, содан кейін кестені қосу пішіні алдымызда ашылады (3-сурет);

Күріш. 3

  1. Немесе физикалық бастапқы кестелер тізімінен таңдаңыз (4-сурет), бұл жағдайда біздің алдымызда арнайы конструктор ашылады.

Күріш. 4

Кестені қосу пішінін толығырақ қарастырайық. «Аты» қасиеті конфигурациядағы нысанды бірегей анықтау үшін пайдаланылады.

Метадеректер нысаны мен соңғы физикалық кестені салыстыру «Қосымша» қойындысында орналасқан «Дерек көзіндегі атау» сипаты арқылы жүзеге асады (Cурет 5)

Күріш. 5

Әрі қарай кестенің түрін, дәлірек айтқанда оның объективтілігін анықтау керек. Егер құрылымда сақталған деректер кез келген бір өріс арқылы бірегей түрде анықталуы мүмкін болса, кесте нысандық болуы мүмкін. Жазбаның даралығы негізгі өрістер жиынымен анықталса, кестеде объект емес тип болуы керек.

Мұндай кестелерді басқа метадеректер объектілерімен салыстыра отырып, келесі ұқсастықты беруге болады:

  • Объектілік кестелер анықтамалық болып табылады;
  • Объектi еместер ақпараттық регистрлер болып табылады.

Негізгі өрістер жиыны келесі пішін параметрінде («Кілт өрістері») анықталады. Бұл өріс қажет, егер сіз оны бос қалдырсаңыз, конфигурацияны сақтау сәтсіз болады.

5-суреттен көрініп тұрғандай, пішіннің кейбір өрістері мен түймелері өңделмейді:

  • Деректер көзіндегі өрнек;
  • Кесте деректер түрі;
  • Презентация өрісі;
  • Өңдеушілерді қарау.

Оларды кесте өрістерін толтырып, олардың түрін анықтап, оларға идентификаторларды тағайындағаннан кейін ғана пайдалануға болады (6-сурет).

Күріш. 6

Мұнда сіз «Нөлге рұқсат беру» параметріне назар аударуыңыз керек, егер бұл құсбелгі қойылса, мұндай өрісті кілт ретінде пайдалану ұсынылмайды.

Үстел құрастырушы

Сыртқы көздермен жұмыс істеудің ең маңызды және қызықты сәті қосылым жолын құру болып табылады. «Байланыс жолы» параметрінің жанындағы үш нүкте бар түймені бассаңыз, оның конструкторы ашылады.

Ең алдымен, бізден қосылу үшін қолданылатын драйверді анықтау сұралады (Cурет 7).

Күріш. 7

Бұл параметрдің қате анықтамасы үшінші тарапқа қосылуға мүмкіндік бермейді ақпараттық база. Сондай-ақ ашылмалы тізімде көрсетілген барлық драйверлер қосылым жолын автоматты түрде жасау үшін пайдаланыла алмайтынын түсінуіңіз керек. Егер платформа қате тудырса (8-сурет), онда қосылым жолын қолмен енгізу керек болады.

8-сурет

Күріш. 9

Желінің өзі қатаң реттелетін құрылыс.

Мысал қосылым жолы

Microsoft Access-те жасалған және D дискінің түбірінде орналасқан үшінші тарап деректер базасын қарастырайық. Бұл дерекқорды қосу үшін біз сәйкес драйверді пайдалануымыз керек, бірақ оны жол конструкторында таңдау қатеге әкеледі 8-сурет.

Қосылым параметрлерін өзіміз орнатамыз.

Driver=(Microsoft Access Driver (*.mdb)) – жолдың бірінші бөлігі осылай көрінеді. Бұйра жақшада біз драйверді анықтадық.

Excel файлдары үшін ол келесідей болады ( Microsoft ExcelДрайвер (*.xls)), 2003 жылдан асқан кеңседе жасалған Excel файлдары үшін драйвер жолы (Microsoft Excel драйвері (*.xls, *.xlsx, *.xlsm, *.xlsb)) сияқты болады.

Бұл параметрді келесіден үтірмен бөліп, сақтау орнының мекенжайын енгізуіміз керек (біздің жағдайда DBQ=D:\Database1.mdb).

Осы екі параметрді қоса отырып, Driver=(Microsoft Access Driver (*.mdb));DBQ=D:\Database1.mdb осы параметрді жазу арқылы біз осы дерекқордың ішкі құрылымдарына қол жеткіземіз.

«Сыртқы көз» нысаны үшін оны конфигурацияда жасау жеткіліксіз; оны «Кәсіпорын» режимінде де қосу қажет. Мұны «Барлық функциялар»->Сыртқы көздер мәзірінен жасауға болады. Кестеге бірінші рет кірген кезде біз «Кәсіпорын» режимінде бірдей қосылым жолын енгізуіміз керек.

Олармен 1С Enterprise режимінде тізімдерде жұмыс жасаңыз.

Дегенмен, жұмыста деректердің бір бөлігі басқа жерде сақталатын жағдай жиі кездеседі.

  • Интернет-дүкен (әдетте деректерді сыртқы MySQL/SQL дерекқорында сақтайды)
  • Тағы бір база.

Басқа деректер қорларында сақталған мұндай деректермен жұмыс істеу үшін арнайы механизмдерді әзірлеу қажет.

1С 8.2.14 нұсқасында бағдарламашының жұмысын айтарлықтай жеңілдететін 1С Сыртқы деректер көздері деп аталатын жаңасы пайда болды, өйткені:

  • қазір деректерді алудың арнайы тетіктерін жасаудың қажеті жоқ
  • мұндай деректерге әдеттегі жолмен қол жеткізуге болады
  • мұндай деректерді 1С тізімдерінде көруге болады.
    • Сыртқы деректер көзі 1С – сыртқы SQL дерекқоры

      Бізде SQL деректер базасы бар делік, онда бізге қажетті деректер сақталады. 1С сыртқы деректер көзі механизмі арқылы одан деректерді оқуға тырысайық.

      Сыртқы 1С деректер көзін қосайық. Конфигураторға өту керек, сыртқы деректер көздері конфигурация терезесінде, ағаштың ең төменгі жағында орналасқан.

      1. Қосылым

      Жаңа 1С сыртқы деректер көзін қосайық, оны ерікті түрде атаңыз.

      Мәліметтер қоры кестелерден тұрады. Біз оларды қосылған сыртқы деректер көзіне қосуымыз керек. Оны басыңыз оң жақ түймешікті басыңызтінтуірді басып, Кестені қосу пәрменін таңдаңыз.

      Бірінші рет ол сізге қосылым жолын ұсынуды ұсынады. Оны қолмен енгізуге немесе «...» түймесін басу арқылы жасауға болады.

      Біздің нақты жағдайда драйвер ретінде «SQL серверін» таңдаймыз

      SQL-ге қосылудың негізгі параметрлерін толтырайық. Сервер атауын енгізуге немесе тізімнен таңдауға болады.

      1С SQL-ге қосылып, тізімнен белгілі бір дерекқорды таңдауды ұсынады.

      Осыдан кейін 1С осы дерекқордағы кестелер тізімін және олардың бағандарын көрсетеді. Қажетті кестелерді таңдау үшін ұяшықтарды белгілеу керек.

      Кестелер мен бағандар қосылады. Аттар қашықтағы дерекқорда анықталғандай болады. 1С-де олардың атын өзгертуге болады (қасиеттерде).

      Мұнда қосылған кестенің мысалы келтірілген:

      Мұнда қосылған бағанның мысалы берілген:

      1С платформасы сыртқы кестемен 1С каталогтары сияқты жұмыс істеуі үшін кестеде қосымша параметрлерді көрсетуге болады:

      • Key Field сипатында жолдың бірегей сәйкестендіруін қамтамасыз ететін бағандардың бірін көрсетіңіз; егер бірегейлік бірнеше жолдармен қамтамасыз етілсе, онда бұл әдісжұмыс істемейді (Код өрісіне ұқсас)
      • Презентация өрісі сипатында жолдың қысқаша көрінісін беретін бағандардың бірін көрсетіңіз (Атау өрісіне ұқсас)
      • Кесте деректер типі сипатында Нысан деректерін көрсетіңіз.

      2. Көру

      Қашықтағы базаға қосылу автоматты түрде орындалмайды. Қосылу үшін стандартты мәзірді таңдау керек.

      Стандартты бөлімшеде орналасқан арнайы командаҚосылым параметрлерін (1С Enterprise режиміне тән) көрсетуге және қосылым жасауға мүмкіндік беретін сыртқы деректер көздерін басқару.

      Алдымен дерекқорға қосылу параметрлерін көрсету керек.

      Конфигураторда параметрлерді орнатқан кезде ол сізге нәтиже ретінде қосылым жолын көрсетті. Оны конфигуратордағы Кестені қосу түймесін қайтадан басу арқылы көруге болады.

      Қосылым жолын көшіріп, оны 1С Enterprise режимінде көрсетіңіз.

      Осыдан кейін сіз нақты қосылымды жасауыңыз керек.

      Қосылым жасалғаннан кейін тізімдермен жұмыс істеуге болады.

      3. 1С тілінде қолдану

      Қосылымды 1С тіліндегі бағдарлама кодынан да жасауға болады.

      Қосылым параметрлері келесідей анықталады:
      ConnectionParameters = ExternalDataSources.SourceNameConfigurator.GetGeneralConnectionParameters();

      ConnectionParameters.AuthenticationStandard = Рас;
      ConnectionParameters.UserName = "sa";
      ConnectionParameters.Password = "құпия сөз";
      ConnectionParameters.ConnectionString = “конфигуратордан қосылу жолы”;
      ConnectionParameters.DBMS = "MSSQLServer";

      ExternalDataSources.SourceNameConfigurator.SetGeneralConnectionParameters(ConnectionParameters);
      ExternalDataSources.SourceNameConfigurator.SetUserConnectionParameters(UserName(), Параметрлер);
      ExternalDataSources.SourceNameConfigurator.SetSessionConnectionParameters(Параметрлер);
      ExternalDataSources.SourceNameConfigurator.SetConnection();

      Дерекқордан деректерді әдеттегі көмегімен сұрауға болады. Сыртқы көзге OurExternalSource және кестелер үшін сұрау мәтінінің мысалы ExternalSource Table:

      ТАҢДАУ
      ExternalSourceTable.FieldName
      FROM
      ExternalDataSource.OurExternalSource.Table.ExternalSourceTable"

      Сыртқы деректер көзі 1С – Excel файлымен жұмыс

      Басқа опцияны қолданып көрейік - сыртқы 1С деректер көзі арқылы Excel файлымен жұмыс істеу.

      Қарапайым Excel файлын жасайық.

      Сыртқы көзді қосамыз, оны еркін түрде FileExcel деп атаймыз. Оған «Sheet1$» кестесін қосамыз. Көріп отырғаныңыздай, бұл Excel бағдарламасындағы «$» белгісі қосылған парақтың атауы.

      SQL жағдайындағыдай бағандарды қосамыз. Оларды қолмен қосуға болады. Қосылған бағандар түрлерінің сәйкес келетініне көз жеткізу маңызды, әйтпесе кейінірек «Дерек түрі сәйкес келмеуі» сияқты қатені алуыңыз мүмкін.

      Баған үшін 1С-де атауды және деректер көзіндегі атауды көрсету керек.

      Excel мүмкіндігі бар («Тым аз параметр. 3 қажет» сияқты қате):

      • Бірінші жолда болса Excel кестелерібаған атаулары орналасқан, тек осы бағанның атын көрсету керек, мысалы, «Код».
      • Әйтпесе, «Sheet1$.Code» кесте атауымен толық атауды көрсету керек, бірақ параметрлерге «HDR=NO;» қосыңыз.

      үшін қосылым параметрлері Excel файлыкелесідей көрінеді:

      • XLSX файлдары ( Office нұсқасы 2007 және одан жоғары)
        Драйвер=(Microsoft Excel драйвері (*.xls, *.xlsx, *.xlsm, *.xlsb));DBQ=D:\FileExcel.xlsx;
      • XLS файлдары (бұрын)
        Драйвер=(Microsoft Excel драйвері (*.xls)); DriverID=790; DBQ=D:\FileExcel.xls;
        Сіз өзіңіздің атыңызды және файлға жолды көрсетуіңіз керек.

Сыртқы деректер көздері 1С – салыстырмалы түрде жаңа метадеректер нысаны 1С 8.3 және 8.2, оның көмегімен 1С сыртқы деректер көздеріне қосылуға болады: SQL кестелері, Excel, Access, FoxPro (dbf), басқа 1С дерекқоры, Oracle, Paradox (db) , - және тіпті одан оқу қарапайым файлдар txt/csv.

Бұл басқа жүйелермен көптеген мүмкіндіктер береді. Толығырақ қарастырайық.

1С 8 жүйесінде сыртқы деректер көздерін орнату

Сыртқы көздерді орнату жүйенің әрбір түрі үшін жеке. Бірақ, әдетте, орнатудың жалпы бөлігі бірдей - бұл қосылым жолын орнату:

1С-те 267 бейне сабақты тегін алыңыз:

Егер қосылым жолы дұрыс көрсетілсе, жүйе дерекқордан қажетті кестені таңдауды ұсынады. Нәтижесінде біз дайын кестені аламыз, онда біз негізгі өрісті (бірегей өріс) және көрсетілім өрісін (жазба 1С-де қалай көрсететінін) көрсете аламыз:

1С 8.3 жүйесінде сыртқы деректер көздерін пайдалану

1С жүйесіндегі сыртқы деректер көздерін басқа мәліметтер қоры кестелері сияқты пайдалануға болады. Платформа олар үшін пішінді автоматты түрде жасайды, егер біреуі көрсетілмесе. Сұрауларда сыртқы көздерден алынған деректерді де пайдалануға болады.

Бұл мүмкіндік неге соншалықты қызығушылық тудырады? 1С тілінде бағдарламалаған кез келген адам SQL тілін жақсы біледі және кем дегенде жалпы алғанда басқа бағдарламалардың архитектурасы мен даму принциптерімен таныс. технологиялық платформаларбизнес қосымшалары сізге 1С туралы нені көбірек ұнататынын сенімді түрде айтып береді. Әрине, сұрау құрастырушы - мен бұрын-соңды кездескен реляциялық құрылымдардан деректерді алу үшін сұрауларды жазудың ең ыңғайлы және ойластырылған механизмі. Ал енді 1С бізге оны тек 1С-пен ғана емес, кез келген басқа кестелермен де пайдаланудың тамаша мүмкіндігін берді. Бұл «балдың бөшкесінде» «майдағы шыбындар» көп. Ең алдымен бірінші нәрсе:

1) Орнату және пайдалану- «бубен билемей» жұмыс істемейді
a) Сыртқы деректер көзін қосыңыз - бұл күрделі емес сияқты
б) «Тізімнен таңдау» құсбелгісін қойыңыз - бұл қажет - бұл бастапқыда функционалдылықты тексеру үшін қажет және сізді қажетсіз қиындықтардан құтқарады
в) - міндетті түрде «...» түймесін басыңыз - байланыс ODBC. Біз үйренген OLEDB емес, бірақ бір деңгей төмен

D) Бірақ бұл жерде ӨТЕ САҚ БОЛЫҢЫЗ.

Бұл ODBC драйвері - егер клиент-сервер нұсқасын пайдалансаңыз, ол серверде болуы керек. Егер сіз бір жүйеде дамып, басқа жүйеде жұмыс істеп жатсаңыз (әдетте солай), сізді күтпеген тосынсыйлар жоқ екеніне көз жеткізіңіз. Біртүрлі ұсыныс, бірақ егер сіз жылдамдыққа ерекше алаңдамасаңыз және SQL92 стандартының мүмкіндіктерінен шығуды қаламасаңыз, ең ескі немесе ең көп таралған драйверді таңдаңыз. Бұл сізге жақсырақ үйлесімділік береді. Мысалы, SQL Server 2008 үшін ең жақсы жүргізуші SQL Server Native Client 11 болады, бірақ мен жай ғана SQL серверін таңдауды ұсынамын, әйтпесе бұл жергілікті клиент серверде немесе барлық клиенттік машиналарда (файл нұсқасын пайдаланған жағдайда) орнатылуы керек және ол көп нәрсе бермейді. қарапайым тапсырмалар үшін пайдалы.
e) Стандартты серверді таңдау диалогтық терезелері

E) Құпия сөзді сақтау туралы сұраққа «иә» деп жауап беруді ұсынамын, әйтпесе бұл бизнесті бастай алмайсыз.
g) Кестені және мәліметтерді таңдаңыз... тамаша мүмкіндік - оны қалауыңызша бірден өзгертуге болады (мәліметтерді де) және сипаттарда деректер көзінің өрістерінің атауларын көресіз.

Z) Енді сіз оны іске қосасыз, сұраныс құрастырушысын ашыңыз - кестеден және OPA-дан барлық жазбаларды таңдап алыңыз - қате. Не істеу керек? Егер сізде басқарылатын интерфейс болса, қызмет мәзірін қараңыз, ал қарапайым болса...
Мен бұл кодты жеке қолдандым:
Код 1C v 8.x Параметрлері = ExternalDataSources.DAX.GetGeneralConnectionParameters();
Parameters.AuthenticationStandard = True;
Parameters.UserName = "sa";
Parameters.Password = "pas";
Parameters.ConnectionString = "DRIVER=(SQL Server);SERVER=servet;UID=sa;PWD=;DATABASE=деректер қоры";
Parameters.DBMS = "MSSQLServer";

ExternalDataSources.DAX.SetCommonConnectionParameters(Параметрлер);
ExternalDataSources.DAX.SetUserConnectionParameters(UserName(), Параметрлер);
ExternalDataSources.DAX.SetSessionConnectionParameters(Параметрлер);

ExternalDataSources.DAX.SetConnection();
Кейбір бөліктер қажет болмауы мүмкін, бірақ ол жұмыс істейді.
Кодты БІР РЕТ іске қосу керек. Осыдан кейін қосылу қалыпты болады ... әрине мистицизм - бұл не үшін қажет болғаны түсініксіз ...

2) Тек оқуға арналған деректер көздері- Иә, ғажайыптар болмайды... бірақ кейде сен мұны қалайсың...

3) ОЛАРДЫ ІШКІ ДЕРЕК КӨЗДЕРІМЕН БІРГЕ ПАЙДАЛАНУ БОЛМАЙДЫ
Өз басым бұл факт мені сол жерде өлтірді.

Бұл қалай болуы мүмкін ... біз күткен және қазірдің өзінде 1С-пен деректерімізді бір сұрауда қалай біріктіретінімізді елестетіп, ернімізді жалап, оны бір сұрауда жинаймыз, оны жинаймыз - оны топтаңыз, есепке енгізіңіз, бірақ олай емес. ...
Бірақ бұл, әрине, тәжірибелі адамдарды тоқтатпайды... басына қандай ой келді? Дұрыс - уақытша кестелер:

4) ОЛАРДЫ УАҚЫТТЫ КЕСТЕЛЕРМЕН БІРГЕ ПАЙДАЛАНУҒА БОЛМАЙДЫ

Бірақ бұл енді технологиялық қиындықтарға ұқсамайды, бірақ олар «өмір жұмақ болып көрінбеуі үшін» бізден қалайтын нәрсеге ұқсайды :).

5) Тек ACS қосылымдарында пайдалануға болады
Білмейтіндер үшін бұл «Деректер жиынтығы сілтемелері» қойындысындағы ACS-те. Сіз оларды жиі пайдаланасыз ба? Ыңғайлы ма? Шамасы, олар бізді жиірек қолдануға мәжбүрлемек. Тек «Байланыс жағдайы» және «Байланыс параметрі» бағандары бар. Мен оларды стандартты конфигурацияда қолданудың мысалын таппадым, әйтеуір құжаттамада да, Хрусталеваның жұмысында да бәрі анық емес. Кез келген адам маған «қосылу шарты» қалай жұмыс істейтінін түсіндіре алады. Сол жерге Source Attributes = Receiver Attributes деп жазсаңыз, ол жұмыс істемейді. Әрине, шартты «Өрнек» өрісінде жазуға болады - көп жағдайда бұл жеткілікті... бірақ қандай да бір жолмен ол оңай орындалмайды.

Жалпы алғанда, бұл мәселе бұрын келесідей жерде шешілген:
Code 1C v 8.x функциясы InitializeDataSource()

DateStart = SettingsComposer.Settings.DataParameters.Items.Value;
DataCon = SettingsBuilder.Settings.DataParameters.Items.Value;
Егер DataCon > "20100101" болса
DataCon = "20100101";
endIf;

CN = New QualifiersNumbers(15,2);
KS = NewStringQualifiers(255);

ArrayNumber = Жаңа массив();
ArrayNumber.Add(Type("Сан"));

ArrayString = Жаңа массив();
ArrayString.Add(Type("String"));

ArrayData = Жаңа массив();
ArrayDate.Add(Type("Күн"));

//Бухгалтерлік шығындарды кестеге толтырамыз
TypeNumber = Жаңа СипаттамаТүрлері(МассивNumber, CN);
TypeString = New TypeDescription(ArrayString, KS);
TypeDate = New TypeDescription(ArrayDate);

//SQL-ден деректерді жүктеуге арналған кесте
TZ = Жаңа мәндер кестесі();
TK.Columns.Add("Номенклатура коды", TypeString);
TK.Columns.Add("Qnty", TypeNumber);
TK.Columns.Add("Күн", DateType);

TK.Indices.Add("Кезең");

//SQL-ге қосылу
Қосылым жолы = "Провайдер=SQLOLEDB.1;Қауіпсіздік ақпаратының тұрақтылығы=Шын;Пайдаланушы идентификаторы=sa;Pwd=;Дерек көзі=;Дайындау үшін пайдалану процедурасы=1;Авто аудару=Шын;Пакет өлшемі=4096;Жұмыс станциясының идентификаторы=;Қолдану Деректер үшін шифрлау=False;Мүмкін болған кезде бағанды ​​сұрыптаумен тег=False;Бастапқы каталог=Есептер»;
Қосылым = Жаңа COMObject("ADODB.Connection");
Пәрмен = Жаңа COMObject("ADODB.Command");
RecordSet = Жаңа COMObject («ADODB.RecordSet»);
Күні = "";
Әрекет
Connection.Open(AbbrLP(ConnectionString));
Command.ActiveConnection = Қосылым;
Command.CommandText = "S_elect * PH om период >= "" + Жол(Пішім(DateStart, "DF=yyyyMMdd"))) + "" және нүкте<= "" + Строка(Формат(ДатаКон, "ДФ=ггггММдд")) + """;
RecordSet = Command.Execute();
RecordSet.MoveFirst();
Ерекшелік
Техникалық шарттарды қайтару;
EndAttempt;

While RecordSet.EOF = Жалған цикл
Жол = TZ.Add();
Row.NomenclatureCode = RecordSet.Fields(RecordSet.Fields.Item(1).Name).Value;
Row.Qnty = RecordSet.Fields(RecordSet.Fields.Item(12).Аты).Мән;
Row.Period = RecordSet.Fields(RecordSet.Fields.Item(13).Аты).Мән;
RecordSet.MoveNext();
EndCycle;

Сұраныс = Жаңа сұраныс();
VrTable = New TemporaryTableManager();
Query.SetParameter("vrDataTable", TK);
Query.SetParameter («Бастау күні», басталу күні);
Request.SetParameter("DataCon", DateCon);
Query.Text = "ТАҢДАУ
| vrDataTable.NomenclatureCode,
| vrDataTable.Qnty,
| vrDataTable.Period
|Деректер кестесін орналастыру
|FROM
| &vDataTable AS vrDataTable
|ҚАЙДА
| vrDataTable.Period >= &StartDate
| Және vrDataTable.Period<= &ДатаКон";
Request.Run();
TZ = Анықталмаған;

Сұраныс = Жаңа сұраныс;
Query.TemporaryTableManager = VrTable;
Query.Text = "Міне, айнымалы кестені қамтитын сұрау";

Нәтиже = Query.Run();
Нәтижені қайтару;

EndFunction

ExternalSet = InitializeDataSource();
DataSet = жаңа құрылым();
DataSet.Insert("SQL кестесі", ExternalSet);
TypicalReports.GenerateTypicalReport(ThisObject, Нәтиже, Шифрды шешу деректері, OutputToReportForm, DataSet);

Шындығында, код жолдары көп емес және олар өте стандартты... бұл жағдайда сіз сұраныс құрастырушысының толық функционалдығын пайдалана аласыз және АБЖ-ға тек ДЕРЕКТЕР ҚҰРАМЫ функциясын бере аласыз.

Бірақ бұл, әрине, жақсы көрінбейді... және кестеге мәндерді жүктеп салу үшін код жазу керек және мәліметтер атауында қате жібергеніңізді тексеріңіз... және бізге не берілгенін тексеріңіз. 1С-де әйтеуір жартыкеш көрінеді. Мен қайсысын пайдалану ыңғайлы екенін әлі шешкен жоқпын. Сіз шешім қабылдайсыз және шешімдеріңіз туралы және сізді оларға не итермелегені туралы жазасыз.

Ақпарат сайттан алынды