Үй / ғаламтор / 1s 8 динамикалық тізімнен жасау. Динамикалық тізім параметрлері

1s 8 динамикалық тізімнен жасау. Динамикалық тізім параметрлері

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

Кейбіреулерін негізге алайық сынақ конфигурациясы 1С: «Кәсіпорындық есеп 3.0». Біз қазір таңдау жасамаймыз, тек «Номенклатура» анықтамалығына басқа іріктеу формасын қосып, оны уақытша негізгі етіп жасаңыз:

Жасалған кезде жүйе әдепкі бойынша пішінге «Динамикалық тізім» түрі бар кесте өрісін қосады.

Оның қасиеттеріне барайық және онда не бар екенін көрейік.

Ең алдымен, бізді «Еркін сұрау» құсбелгісі қызықтырады. Ол бізге барлық артықшылықтарды ашады динамикалық тізім. Біз өз сұранысымызды және параметрлермен жазу мүмкіндігіне ие боламыз. Құсбелгіні қойып, «Ашу» сілтемесін басыңыз:

үшін дайын коды бар терезе ашылады. Әзірге «Номенклатура» анықтамалығының барлық өрістері сонда жай ғана тізімделген.

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

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

Динамикалық тізімдегі теңшелетін сұрау

Алдымен баланстар мен бағалармен қажетті сұрауды жасайық. Шамамен осылай:

Параметрлер қойындысы

Ал енді ең дәмді! «Параметрлер» қойындысына өтіңіз. Біз бірінші қойындыда сұраудағы кез келген өріс үшін кез келген таңдауды жасай алатынымызды бірден көреміз:

Динамикалық тізімде сұраныс параметрлерін бағдарламалы орнату 1С 8.3

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

Бұл параметрлерді пішін параметрлеріне жазып, пішін модуліне келесі жолдарды қосамыз:

&OnServerProcedure OnCreateOnServer(сәтсіздік, стандартты өңдеу) тізімі. Опциялар. SetParameterValue("Кезең", Параметрлер. Күн) ; Тізім. Опциялар. SetParameterValue("PriceType" , Parameters.PriceType) ; EndProcedure

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

1С жүйесіндегі динамикалық тізімдердің ерекшеліктері

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

Динамикалық тізімнің қалай құрылатынын және ол қандай деректерді көрсететінін көру үшін конфигураторда басқарылатын пішіндерді, оның орналасқан жерін ашу керек: мәліметтер тізімінде контекстік мәзіроның қасиеттерін ашып, «Еркін сұрау» тармағына назар аударыңыз. Егер құсбелгі жоқ болса, онда «Негізгі кесте» параметрі деректер алынған дерекқор кестесін көрсетеді. Әйтпесе, динамикалық тізім реттелетін сұрау деректерін көрсетеді, оны тізім орнатуын ашу арқылы көруге болады.

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

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

  • Динамикалық тізімді таңдау;
  • топтастыру;
  • сұрыптау;
  • Декор.

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

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

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



Номенклатураны таңдаңыз.Атау.Атау,тауар және сату шығындары ретінде атау.Қойма,тауар және сату шығындары ретінде Склад.Анықтамалық қондырғылар қатары ретінде киім.Номенклатура тізілімнің сол жақ қосылымының номенклатурасы ретінде.Үздіксіздік. Шығарылымдар (& ауылдық

Сұрауымызда CurrentDate параметрі пайдаланылғандықтан, өңдеуді пайдаланбас бұрын оның мәнін орнатуымыз керек. Ол үшін «CreationOnServer» процедурасындағы пішін модулінде стандартты пәрмен арқылы оған «CurrentSessionDate» функциясын стандартты пәрменмен тағайындаңыз. Сондай-ақ бақылау пішінінде динамикалық тізімді көрсету және анық болу үшін өрістердің ретін өзгерту керек. «Номенклатура қалдығы» тіректерін пішін элементтеріне (жоғарғы сол жақ) сүйреп апарыңыз және пішіндегі кестедегі өрістердің ретін өзгерту үшін көк көрсеткілерді пайдаланыңыз.

&Серверде Процедура жасауда Серверде(Сәтсіздік, Стандартты өңдеу) номенклатурасы Remains.Parameters.SetParameterValue("CurrentDate",CurrentSessionDate()) EndProcedure


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

Біз «Күн» түріндегі «Қалған күні» атрибутын қосамыз және оны пішін элементтеріне тасымалдаймыз. Өріс оқиғаларында біз «OnChange» оқиғасын жасаймыз және динамикалық сұрауда қолданылатын «CurrentDate» параметрін орнату кодын жазамыз. Пішінді ашқан кезде пайдаланушы баланстарды қай күні көретінін бірден түсінуі үшін OnCreateOnServer процедурасына шағын өзгерістер енгіземіз.



&OnServerProcedureOnCreateOnServer(Failure, StandardProcessing)RemainsDate = CurrentSessionDate(); Элемент Remains.Parameters.SetParameterValue("CurrentDate", RemainsDate); Процедураның соңы &Клиентте Процедура RemainsDateOnChange(элемент) элементі қалады.Parameters.SetParameterValue("CurrentDate",RemainsDate); EndProcedure

Нәтижесінде біздің Динамикалық тізім пішіні кез келген күн үшін теңгерімді көрсете алады.

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

  1. таңдау;
  2. Тізімдер.

Динамикалық тізімді және оның сұранысын әдеттегі басқарылатын пішіндерде алу үшін әзірлеуші ​​конфигураторда қажетті пішінді ашуы керек. Атрибуттар бөлімінде «Динамикалық тізім» деректер түрі бар төлсипатты табыңыз (көбінесе ол таңдалады. жуан). Оның қасиеттері сұраныс мәтінін, таңдауларды және басқа параметрлерді қамтиды.

үй Көзілдіріктің жазбалары

21.04.2014 Динамикалық тізім деректерін алу

8.3.6.1977 нұсқасында жүзеге асырылды.

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

Динамикалық тізім деректерін стандартты емес, «арнайы» пішінде басып шығару үшін қажет болуы мүмкін. Немесе олармен белгілі бір әрекеттерді орындау үшін. Мысалы, кейбір критерийлер бойынша тізімде таңдаған барлық контрагенттерге хат жіберіңіз.

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

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

Тұтастай алғанда, пайдаланушы қажет ететін қосымша ақпаратты алу үшін деректер базасына сұрау қажет. Динамикалық тізімде пайдаланылғанмен бірдей.

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

Енді бұл міндет оңай шешілді. Динамикалық тізім кестесінде екі жаңа әдіс бар:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Осылайша, сіз деректер құрамының схемасының өзін және, ең бастысы, оның барлық параметрлерін аласыз, соның арқасында пайдаланушы тізімді дәл сол күйінде көреді. Сізге тек макетті бағдарламалық түрде құрастыру және оны мәндер жинағына (бағдарламалық өңдеу үшін) немесе электрондық кесте құжатына (көрсету үшін) шығару жеткілікті:

Нәтижесінде сіз динамикалық тізім кестесінде көрсетілетін бағандар мен жолдарды қамтитын құрылымды (немесе есепті) аласыз.

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

Электрондық кесте құжатын шығару кезінде тағы бір жақсы сәт бар. Жалпы есептің сыртқы түрі сәйкес болады сыртқы түрісхема мен параметрлерді қабылдау кезіндегі динамикалық тізім кестелері. Соның ішінде кестенің шартты дизайны. Пішіннің шартты дизайнын есепке де тасымалдағыңыз келсе ғана сізге кейбір қосымша әрекеттер қажет болады.

Конфигурацияларды аяқтау процесінде әрбір 1С бағдарламашысы динамикалық тізімдермен кездеседі.
Динамикалық тізім – бұл мәліметтер базасы объектілерінің әртүрлі тізімдерін немесе объектілік емес мәліметтерді – регистр жазбаларын көрсету үшін қолданылатын интерфейстік объект.
Мысалы, элементтер тізімін көрсету үшін динамикалық тізім пайдаланылады:

Динамикалық тізімнің мүмкіндіктерін көрсету үшін сыртқы өңдеуді жасайық, негізгі пішінді қосамыз. Пішінге «Динамикалық тізім» түрі бар жаңа атрибут қосамыз. Оның қасиеттеріне барайық және онда не бар екенін көрейік.
Бізді «Таңдамалы сұрау» сипаты қызықтырады. Оны қосу бізге динамикалық тізімнің барлық мүмкіндіктерін көрсетеді. Біз 1С: Кәсіпорын жүйесінің сұрау тілінің барлық дерлік мүмкіндіктерін пайдалана отырып, сұранысты жаза аламыз. Құсбелгіні қойып, «Ашу» сілтемесін басыңыз:

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


Негізгі кесте ретінде біз «Каталог. Номенклатураны» таңдаймыз, бұл номенклатура тізімі сияқты динамикалық тізіммен жұмыс істеуге мүмкіндік береді - каталогтың элементтерін қосу, өзгерту, жою үшін белгілеу. Сол сияқты, негізгі кестені орнату қолжетімді мүмкіндікдинамикалық деректерді оқу - бұл үлгі қажет болған жағдайда бөліктерде жасалатынын білдіреді.
Әрі қарай, тізіміміз үшін пішін элементтерін жасауымыз керек:

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


Оны жою үшін «Кезең» параметрінің мәнін орнату керек. Ол үшін динамикалық тізімнің «Параметрлер» жиынының «SetParameterValue» әдісін қолдануға болады. Әдіс екі параметрді қабылдайды:
. «Параметр» - Түрі: Жол; DataCompositionParameter. Мәні орнатылатын параметр атауы немесе деректер құрамы параметрі;
. «Мән» - Түрі: ерікті. Орнатылатын мән.
Пішіннің "OnCreateOnServer" өңдеушісінде шақыруға болады:

Сұрақ бар ма, кеңесшінің көмегі қажет пе?


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


«Күн» пішін элементінің «OnChange» өңдегішінде байланысты төлсипаттың мәнін мән ретінде өткізіп, «SetParameterValue» әдісін шақырыңыз. Сол сияқты пішіннің «CreationAtServer-де» процедурасын өзгертеміз. Әдіс клиентте қол жетімді болғандықтан, серверді шақырудың қажеті жоқ:


Енді күн өзгерген кезде, теңгерім автоматты түрде жаңартылады:




Пайдаланушылар ағымдағы баланстарды немесе болжамды түбіртектерді көргісі келеді делік. Іске асыру нұсқаларының бірін қарастырайық. Логикалық пішін төлсипатын және байланысты радио түймені қосамыз:


Коммутатордың мәнін өзгерту кезінде біз сұраныс мәтінін өзгертеміз. Ол үшін «DisplayQuantityToReceipt» пішін элементінің «OnChange» оқиға өңдеушісін қолданамыз. Біз атрибуттың мәніне байланысты динамикалық тізімнің «QueryText» қасиетін өзгертуіміз керек. Бұл сипат клиентте қол жетімді болмағандықтан, сервер процедурасына шақыру қажет:


Енгізілген өзгерістердің нәтижесі: