Аппараттық және бағдарламалық қамтамасыз етуді орнату

1 секундтағы мән түрі. Жүйе функциясын шақыру нәтижесі арқылы

- біз 1С мәнінің түрлері мен 1С түрінің түрлендіруінің не екенін талқылай бастадық.

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

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

1С түрлерімен жұмыс істеу жиі қолданылады:

  • Бағдарламадағы шарттар
    «Егер ... Онда ...» құрылысындағы 1С мәнінің түріне байланысты әртүрлі әрекеттер
  • Интерфейсте жұмыс істеу кезіндегі шектеулер
    Пайдаланушыға пішіндегі өріске 1С белгілі бір түрлерінің мәндерін енгізуге тыйым салу немесе рұқсат.
  • Функцияның/процедураның нақты параметрін анықтау
    Егер функция/процедура параметрі кез келген 1С типті болуы мүмкін болса, онда мәнді дұрыс алу үшін оны анықтау керек.

1С түрін алуға болады:

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

1С түрлерін үш түрге бөлуге болады:

  • Негізгі түрлері 1С
  • 1С деректер қорының түрлері (анықтама, объектілер)
  • 1С түрлері.

1С типіне анықтама беру және 1С түрлерін салыстыру

TypeZnch (Айнымалы) функциясы арқылы 1С мәнінің түрін білуге ​​болады.

Бұл функция 1С қай түрін қайтарғанын түсіну үшін бізге қажет Түрді («Түрдің аты») көрсету керек.

Мысалы, 1С типті айнымалының анықтамасы (салыстыру):
TypeValue(Variable) = Type("TypeName") болса, онда

TypeName ретінде қандай түрлерді жазу керек?

Негізгі түрлері

1С негізгі түрлері – сан, жол, күн, логикалық.

Мысалға:
Мән = 12;
TypeZnch(Znch) = Type("Number") болса, онда
ElseIf Мәні = Түр («Жол») Содан кейін
ElseIf Мәні = Түр («Күн») Содан кейін
ElseIf Мәні = Түр («Логикалық») Содан кейін
EndIf;

Мәліметтер қорының түрлері

1С деректер базасында деректерді сақтайды, бірақ жеке жазбалар түрінде емес, объектілер түрінде.

Сақталған объектілердің көпшілігі (соның ішінде: анықтамалықтар, құжаттар, тізімдер, бизнес-процестер, тапсырмалар) Нысан ретінде (өңдеу және жазу үшін) және Сілтеме (оқу үшін) ретінде қол жетімді. Мәліметтер алу үшін Сілтемелер мен нысандар бөлімін қараңыз.

Мысалға:
Мән = Directories.Organizations.EmptyReference();
Егер TypeZnch(Znch) = Type("ReferenceReference.Organization") Содан кейін
ElseIf Мәні = Түр("CatalogObject.Organization") Содан кейін
ElseIf TypeZnch(Znch) = Түр("Құжат анықтамасы.Тауарлардың түбіртегі") Содан кейін
ElseIf Мәні = Түр("DocumentObject.Тауарларды қабылдау") Содан кейін
EndIf;

Регистрлер әртүрлі типтермен ұсынылуы мүмкін. Регистр түрінің атауы күрделі:
RegisterRegisterTypeAccessType.RegisterName

1С регистрлерінің түрлері:

  • ақпарат
  • Үнемдеу
  • Бухгалтерлер
  • Есептеу.

Регистрге кірудің бірнеше түрі бар. Ең жиі қолданылатындар:

  • Жазбалар жинағы
  • Тізім
  • Үлгі
  • Жазу
  • Жазба кілті.

Жалпы мысал:
TypeZnch(Znch) = Type("RegisterInformationList.RegisterName") болса, онда
ElseIf Мәні = Түр («AccumulationRegisterRecordSet.RegisterName») Содан кейін
EndIf;

1С тілі бағдарламада динамикалық түрде жасалған әртүрлі нысандармен жұмыс істеуге мүмкіндік береді, мысалы, массив, мәндер тізімі, мәндер кестесі, құрылым ...

1С-тің мұндай түрлері олардың атымен (бір сөзбен айтқанда, бос орындарсыз) көрсетіледі. Мысалға:
TypeZnch(Znch) = Type("Массив") болса
ElseIf Мәні = Түр («Мәндер тізімі») Содан кейін
EndIf;

1С типті анықтамалық мәнін анықтау

Мәліметтер қорының барлық объектілерімен (каталогтар, құжаттар...) жұмыс сілтемелер арқылы жүзеге асырылады. Мысалы, құжатта тірек – каталог жасағымыз келсе, онда оның 1С түрі «Анықтамалық сілтеме.КаталогАты» болады.

Мысалға:
Мән = Directories.Organizations.EmptyReference();
Егер Directories.TypeAllReferences().Құрамында(TypeValue(Value)) болса, онда
//бұл каталог
ElseIf Documents.TypeAllLinks().Contains(TypeValue(Value)) Содан кейін
//бұл құжат
EndIf;

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

Біріншісі сипатталғанға ұқсас, бірақ 1С түрінің атауында «Сілтеме» немесе «Объект» көрсетілмейді, яғни «DirectoryLink.Organizations» орнына «Дирectory.Organizations» деп жазамыз.

Мысалға:

Түбіртек қолжетімді түрлері

Нысандар жиынында 1С түрлерінің тізімі бар ValueType қасиеті бар:

  • Майлы клиент пішініндегі өріс
    FormElements.FieldName.ValueType
  • Пішіндегі өріс жұқа клиент(ерекшелік: AvailableTypes деп аталады)
    Elements.FieldName.AvailableTypes
  • Мәндер кестесінің бағаны, мәндер ағашы
  • Форма реквизиттері
  • Таңдау элементі

Өрістегі 1С түрлерінің осы тізімімен қалай жұмыс істеу керек. ValueType - «1С тілі» бөліміндегі «Түрлердің сипаттамасын» қараңыз.

Конфигурация метадеректерінде 1С атрибут түрлерімен жұмыс істеу

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

Негізгі әдістер:

  • Белгілі бір нысанның метадеректерін қайтаратын, содан кейін мәліметтер тізімімен (және кестелік бөліктің мәліметтерімен) жұмыс істейтін 1С нысанының метадеректер () әдісіне қоңырау шалыңыз.
    Құжаттар.Тауар түбіртегі.Бос анықтама().Метадеректер().Толығырақ
  • Барлық конфигурация метадеректерін қайтаратын «Метадеректер» жаһандық айнымалысын пайдаланыңыз, содан кейін белгілі бір нысанның мәліметтеріне өтіңіз
    Метадеректер.Құжаттар.Тауарларды қабылдау.Деректер

Атрибуттың осы атрибут үшін конфигураторда орнатылған 1С түрлерінің тізімін қамтитын қасиеті бар.

1С түрлерінің осы тізімімен қалай жұмыс істеу керек - «1С тілі» бөліміндегі «Түрлердің сипаттамасын» қараңыз.

1С сүзгінің түрін көрсетіңіз

Көптеген нысандар үшін пайдалануға болатын 1С мән түрлерінің сүзгісін көрсетуге болады, мысалы:

  • Мәндер тізімі (.AvailableValues)
  • Басқарылатын клиент пішінінің өрісі (.AvailableTypes)

Сүзгіні өңдеу мүмкін болмаған жағдайда, сүзгіні нысан әдісінде көрсетуге болады. Мысалы, кесте (ағаш) бағанында мәндер бар. ValueType және біз оны өзгерте алмаймыз, бірақ.Add() әдісі арқылы бағанды ​​қосқанда, екінші параметр ретінде қол жетімді 1С түрлерінің тізімін көрсетуге болады.

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

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

1С түрлерімен жұмыс істеу жиі қолданылады:

  • Бағдарламадағы шарттар
  • «Егер ... Онда ...» құрылысындағы 1С мәнінің түріне байланысты әртүрлі әрекеттер
  • Интерфейсте жұмыс істеу кезіндегі шектеулер
  • Пайдаланушыға пішіндегі өріске 1С белгілі бір түрлерінің мәндерін енгізуге тыйым салу немесе рұқсат.
  • Функцияның/процедураның нақты параметрін анықтау
  • Егер функция/процедура параметрі кез келген 1С типті болуы мүмкін болса, онда мәнді дұрыс алу үшін оны анықтау керек.

1С түрін алуға болады:

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

1С түрлерін үш түрге бөлуге болады:

  • Негізгі түрлері 1С
  • 1С деректер қорының түрлері (анықтама, объектілер)
  • 1С түрлері.

1С типіне анықтама беру және 1С түрлерін салыстыру

TypeZnch (Айнымалы) функциясы арқылы 1С мәнінің түрін білуге ​​болады.

Бұл функция 1С қай түрін қайтарғанын түсіну үшін бізге қажет Түрді («Түрдің аты») көрсету керек.

Мысалы, 1С типті айнымалының анықтамасы (салыстыру):
TypeValue(Variable) = Type("TypeName") болса, онда

TypeName ретінде қандай түрлерді жазу керек?

Негізгі түрлері

1С негізгі түрлері – сан, жол, күн, логикалық.

Мысалға:

Мән = 12; TypeValue(Мән) = Type("Number" "String") болса, ElseIf Value = Type("Date") болса, ElseIf Value = Type("Loolean") Содан кейін EndIf;

Мәліметтер қорының түрлері

1С деректер базасында деректерді сақтайды, бірақ жеке жазбалар түрінде емес, объектілер түрінде.

Сақталған объектілердің көпшілігі (соның ішінде: анықтамалықтар, құжаттар, тізімдер, бизнес-процестер, тапсырмалар) Нысан ретінде (өңдеу және жазу үшін) және Сілтеме (оқу үшін) ретінде қол жетімді. Мәліметтер алу үшін Сілтемелер мен нысандар бөлімін қараңыз.

Мысалға:

Znch = Каталогтар. Ұйымдар. EmptyReference(); Егер TypeZnch(Znch) = Type( "DirectoryLink. Ұйымдар") Содан кейін ElseIf мәні = Түр( "DirectoryObject.Organization") Содан кейін ElseIf TypeZnch(Znch) = Түр( "Құжат анықтамасы. Тауарларды қабылдау") Содан кейін ElseIf мәні = Түр( "DocumentObject. Тауарларды қабылдау") Содан кейін EndIf;

Регистрлер әртүрлі типтермен ұсынылуы мүмкін. Регистр түрінің атауы күрделі:
RegisterRegisterTypeAccessType.RegisterName

1С регистрлерінің түрлері:

  • ақпарат
  • Үнемдеу
  • Бухгалтерлер
  • Есептеу.

Регистрге кірудің бірнеше түрі бар. Ең жиі қолданылатындар:

  • Жазбалар жинағы
  • Тізім
  • Үлгі
  • Жазу
  • Жазба кілті.

Мысалы:
TypeZnch(Znch) = Type("RegisterInformationList.RegisterName") болса, онда
ElseIf Мәні = Түр («AccumulationRegisterRecordSet.RegisterName») Содан кейін
EndIf;

1С түрлері

1С тілі бағдарламада динамикалық түрде жасалған әртүрлі нысандармен жұмыс істеуге мүмкіндік береді, мысалы, массив, мәндер тізімі, мәндер кестесі, құрылым ...

1С-тің мұндай түрлері олардың атымен (бір сөзбен айтқанда, бос орындарсыз) көрсетіледі. Мысалға:
TypeZnch(Znch) = Type("Массив") болса
ElseIf Мәні = Түр («Мәндер тізімі») Содан кейін
EndIf;

1С типті анықтамалық мәнін анықтау

Мәліметтер қорының барлық объектілерімен (каталогтар, құжаттар...) жұмыс сілтемелер арқылы жүзеге асырылады. Мысалы, құжатта тірек – каталог жасағымыз келсе, онда оның 1С түрі «Анықтамалық сілтеме.КаталогАты» болады.

Мысалға:

Мән = Анықтамалар. Ұйымдар. EmptyReference(); Егер каталогтар. TypeAllReferences() . Құрамында( TypeValue(Value) ) //бұл ElseIf анықтамалық құжаттары. TypeAllReferences() . Құрамында( TypeValue(Value) ) Содан кейін //бұл құжат EndIf;

Сұраныстағы 1С түрлерімен жұмыс

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

1С 8.3 сұранысындағы өріс түрін тексеру үшін VALUE TYPE (VALUE TYPE) сұрау тілінің функциясын пайдалануға болады.<Поле>).

МӘН ТҮРІ(Кесте.Қосынды) = ТҮР(САН)

Функция TYPE(<Имя типа>) түрін аты бойынша алады. Қарапайым тип атаулары: Сан, Жол, Логикалық, Күн. Анықтамалық түрлердің атаулары келесі принцип бойынша құрастырылады: Құжат.Тауарларды/қызметтерді өткізу немесе Каталог.Номенклатура.

Өзін-өзі қамтамасыз ететін айналымдарды ТАҢДАҢЫЗ. Subconto1, өзін-өзі қолдайтын айналымдар. Subconto2, өзін-өзі қолдайтын айналымдар. Subconto3, өзін-өзі қолдайтын айналымдар. SumTurnover, ҚАУЫН ТҮРІН ТАҢДАҢЫЗ(Өзін-өзі қолдайтын айналымдар. Қосымша 3) = ТҮРІ(Құжат. Тауарларды/қызметтерді сату) СОДАН ҚАУЫН ТҮРІН (Өзін-өзі қолдайтын айналымдар. Субконто3) "Сату" = ТИП (Құжат. Кіріс тапсырысы)" " ҚҰН ТҮРІ = Құжат3 . Шығыс кассалық ордер КЕЗЕ) ОДАН СОҢ "РКО" БАСҚА «Басқа құжат»Бухгалтерлік есеп тізілімінен есеп айырысулардың құжат түрі РЕТІНДЕ АЯҚТАУ. Өзін-өзі қамтамасыз ету. Айналым(& Бастау кезеңі, & Аяқталу кезеңі, Тіркеуші, Есептік жазба = & Account6201 , , , , ) тексеру әдісі REF операторын пайдалану.

ТАҢДАУ КЕЗІНДЕ Өзін-өзі қамтамасыз ететін айналымдар. Subconto3 LINK құжаты. Тауарлар мен қызметтерді іске асыру СОДАН «Сату» КЕЗІНДЕ өзін-өзі қамтамасыз ететін айналымдар. Subconto3 LINK құжаты. Квитанция кассалық ордер СОДАН «ПКО» КЕЗІНДЕ өзін-өзі қамтамасыз ететін айналымдар. Subconto3 LINK құжаты. Шығын кассаОрдер ОДАН СОДАН «РКО» БАСҚА «Басқа құжат»СОҢЫ

1С қолжетімді түрлерін алу

Нысандар жиынында 1С түрлерінің тізімі бар ValueType қасиеті бар:

Майлы клиент пішініндегі өріс
FormElements.FieldName.ValueType
Жұқа клиент пішініндегі өріс (ерекшелік: AvailableTypes деп аталады)
Elements.FieldName.AvailableTypes
Мәндер кестесінің бағаны, мәндер ағашы
Форма реквизиттері
Таңдау элементі

Өрістегі 1С түрлерінің осы тізімімен қалай жұмыс істеу керек. ValueType - «1С тілі» бөліміндегі «Түрлердің сипаттамасын» қараңыз.

Конфигурация метадеректерінде 1С атрибут түрлерімен жұмыс істеу

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

Негізгі әдістер:

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

Барлық конфигурация метадеректерін қайтаратын «Метадеректер» жаһандық айнымалысын пайдаланыңыз, содан кейін белгілі бір нысанның мәліметтеріне өтіңіз

Метадеректер.Құжаттар.Тауарларды қабылдау.Деректер

Атрибуттың осы атрибут үшін конфигураторда орнатылған 1С түрлерінің тізімін қамтитын қасиеті бар.

1С түрлерінің осы тізімімен қалай жұмыс істеу керек - «1С тілі» бөліміндегі «Түрлердің сипаттамасын» қараңыз.

1С сүзгінің түрін көрсетіңіз

Көптеген нысандар үшін пайдалануға болатын 1С мән түрлерінің сүзгісін көрсетуге болады, мысалы:

Мәндер тізімі (.AvailableValues)
Басқарылатын клиент пішінінің өрісі (.AvailableTypes)
Сүзгіні өңдеу мүмкін болмаған жағдайда нысан әдісінде сүзгіні көрсетуге болады. Мысалы, кесте (ағаш) бағанында мәндер бар. ValueType және біз оны өзгерте алмаймыз, бірақ.Add() әдісі арқылы бағанды ​​қосқанда, екінші параметр ретінде қол жетімді 1С түрлерінің тізімін көрсетуге болады.

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

Назар аударыңыз! Мұнда материалдар толық болмауы мүмкін сабақтың сынақ нұсқасы берілген.

Студент ретінде кіріңіз

Мектеп мазмұнына қол жеткізу үшін студент ретінде жүйеге кіріңіз

Жаңадан бастаушыларға арналған 1С 8.3 сұрау тілі: типтермен жұмыс істеуге арналған функциялар мен операторлар (VALUE TYPE, TYPE, REFERENCE, IS NULL, EXPRESS)

Анықтамалық кітаптың, құжаттың немесе кез келген басқа қолданбалы нысанның әрбір атрибутының (қасиетінің, өрісінің) өз түрі бар екенін есте ұстайық. Және бұл түрді конфигураторда көре аламыз:

Сұрау тілінде атрибут түрлерімен жұмыс істеуге арналған функциялар мен операторлардың тұтас класы бар. Оларды қарастырайық.

VALUETYPE функциясы

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

Енді реквизиттерге назар аударайық. Айырмашылық қасиетікаталогта Қалалар:

Бұл тірек бірнеше түрдің бірі болуы мүмкін екенін көруге болады: Түзу, Анықтамалық Дәмі, Анықтама. Түстер. Детальдардың бұл түрі КОМПОЗИТ деп аталады.

Егер біз 1С: Кәсіпорын режимінде мұндай атрибуттың мәнін толтыруға тырыссақ, жүйе бізден кіріс мәні қандай болатынын сұрайды:

Біздің таңдауымыздан кейін ғана таңдалған түрдің мәнін енгізуге мүмкіндік береді.

Осылайша, бір типті каталог элементтері ( Каталог.Қалалар) бірдей атрибутта сақтай алады ( Айырмашылық қасиеті) құндылықтар әртүрлі түрлері(Жол, түстер немесе дәмдер).

Каталогтың элементтерін басу арқылы сіз мұны өзіңіз тексере аласыз Қалалар 1С: Кәсіпорын режимінде. Сіз сабақтың сынақ нұсқасын оқып жатырсыз, толық сабақтар орналасқан.

Мұнда мүмкіндік мәні сілтеме элементі болып табылады Дәмдері:

Мұнда сызық:

Ал мұнда, жалпы алғанда, каталогтың элементі Түстер:

Бұл біз үшін композиттік деректер түрін ашатын мүмкіндіктер!

Функция қалай әрекет ететіні қызықтырады VALUETYPEреквизиттерде DistinctiveElement, оның құрама деректер түрі бар:

Бұл қазірдің өзінде өте қызықты. Әр жолды бөлек қарастырайық.

Ресей элементі үшін мүмкіндік мәнінің түрі болып табылады NULL. Бұл түрімен бірінші рет кездесіп отырмыз. Құндылықтар осы түрдегідеректер қорымен жұмыс істеу кезінде жетіспейтін мәнді анықтау үшін ғана пайдаланылады.

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

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

Красноярск үшін мүмкіндік түрі тең Түстер, себебі дерекқорда таңдалған мән сөздік элементіне сілтеме болып табылады Түстер.

Воронеж үшін мүмкіндік түрі тең Түзу, себебі дерекқорға енгізілген мән қалыпты жол болып табылады.

Үндістан қайтадан топ, сондықтан мағынасы жоқ. Ал жетіспейтін мәннің түрі, біз есімізде NULL.

Міне, мәселе осында. Каталог элементіне өтсеңіз Қалаларатымен Сан-Паулу, сіз өрісті көресіз Айырмашылық қасиетітолығымен толтырылмаған. Ол бос. БІРАҚ құрама түрдегі барлық бос өрістер ерекше мағынаға иеБЕЛГІСІЗ .

FROM БЕЛГІСІЗбіз де бірінші рет кездесіп отырмыз. Мағынасы БЕЛГІСІЗпайдалану қажет болған жағдайда қолданылады бос мәнБасқа түрге жатпайтын A. Бұл тек біздің жағдай. Мән түрі БЕЛГІСІЗ, сіз ойлағандай, тең NULL.

TYPE функциясы

Ол тек бір параметрді алады - қарабайыр түрдің атауы ( ТҮЗУ, NUMBER, КҮН, БУЛИАН) немесе анықтама түрін алғыңыз келетін кестенің атауы.

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

Бұлыңғыр естіледі, солай емес пе?

Осы дизайнның қолданылуын қарастырайық және бәрі бірден орнына түседі.

Біз барлық каталог жазбаларын таңдағымыз келеді делік Қалалар, олардың құрамдас атрибуты бар Айырмашылық қасиетітүрінің мәні бар ТҮЗУ:

Енді атрибут мәндері бар барлық жазбаларды таңдайық Айырмашылық қасиетісілтеме элементтеріне сілтемелер болып табылады Түстер(кесте Анықтама. Түстер):

Шегіну

Естеріңізде болса, каталогтың кейбір элементтері Қалаларреквизиттері жоқ Айырмашылық қасиеті. Функция VALUETYPEмұндай элементтер үшін береді NULL.

Сұраныс бойынша мұндай элементтерді қалай таңдауға болады? Бұл үшін арнайы логикалық оператор бар. IS NULL(функциямен шатастырмау керек ISNULLбіз төменде талқылаймыз). Сіз сабақтың сынақ нұсқасын оқып жатырсыз, толық сабақтар орналасқан.

Міне, оны пайдаланудың мысалы:

Өте жақсы. Бірақ сіз мұнда Сан-Паулу элементі жоқ екенін байқадыңыз, деректемелердің мән түрі Айырмашылық қасиетіол да шығарылды NULL. Неліктен бұлай болды?

Мәселе мынада, топтар үшін жағдай (Ресей, Үндістан, Бразилия), олар үшін мәліметтер толтырылады Айырмашылық қасиетіНегізінде мүмкін емес, өйткені оларда бұл мүлде жоқ, атрибутты толтыруға болатын Сан-Паулу элементінің жағдайынан ерекшеленеді, бірақ ол жай толтырылмайды және біздің есімізде, ерекше құндылық БЕЛГІСІЗ.

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

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

Айтпақшы, логикалық оператор IS NULL терістеу формасы келесідей көрінеді:

Логикалық оператор REFERENCE

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

Естеріңізде болса, біз бірдей мәселені пайдалана аламыз VALUETYPEжәне ТҮРІ:

ISNULL функциясы

Функция мәнді ауыстыруға арналған NULLбасқа мәнге.

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

Резервуар сияқты Айырмашылық қасиетікаталог топтары үшін Қалалар:

Функция ISNULLбұл мән тең болса, басқа мәнді шығаруға көмектеседі NULL. Сіз сабақтың сынақ нұсқасын оқып жатырсыз, толық сабақтар орналасқан. Бұл жағдайда «Мұндай атрибут жоқ!» жолы болсын:

Функцияның бірінші параметрі болса екен ISNULLтең емес NULL, содан кейін ол қайтарылады. Егер ол NULL болса, екінші параметр қайтарылады.

EXPRESS функциясы

Бұл функция тек құрама түрі бар өрістерге арналған. тамаша үлгімұндай өріс меншік болып табылады Айырмашылық қасиетікаталог элементтері үшін Қалалар.

Біздің есімізде, құрама өрістер конфигураторда көрсетілген бірнеше түрдің бірі болуы мүмкін.

Өріс үшін Айырмашылық қасиетімұндай жарамды түрлері бар ТҮЗУ, Анықтама. Түстержәне Анықтамалық Дәмі.

Кейде құрама өрістің мәндерін белгілі бір түрге шығару қажет болады.

Барлық өріс мәндерін тізімдейміз Айырмашылық қасиетітеру Анықтама. Түстер:

Нәтижесінде түрі бар барлық элемент мәндері Анықтама. Түстер,толтырылған күйінде қалды және көрсетілген түрге қысқартылған болып шықты. Басқа түрлердің барлық мәндері ( ТҮЗУ, Анықтамалық Дәмі) енді тең NULL. Бұл функцияны пайдалана отырып, типті құюдың ерекшелігі ЭКСПРЕСС.

Түрді қарабайыр түрге шығаруға болады ( БУЛИАН, NUMBER, ТҮЗУ, КҮН) немесе сілтеме түріне. Сіз сабақтың сынақ нұсқасын оқып жатырсыз, толық сабақтар орналасқан. Бірақ құйма жасалған түрі осы құрама өріс үшін түрлер тізіміне қосылуы керек, әйтпесе жүйе қате жасайды.

Тест тапсырыңыз

Сынақты бастау

1. Ең дұрыс тұжырымды таңдаңыз

2. Бірнеше түрдің біреуінің мәндерін қабылдай алатын атрибуттар деп аталады

3. Атрибут мәнінің түрін анықтау үшін функция қолайлы

4. Толтырылмаған құрама түр атрибуттары маңызды

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

Түр түрлендіру – мәнді (деректерді) бір түрден екінші түрге, мысалы, жолдан санға немесе керісінше түрлендіру. Мәнді пішімдеудің неғұрлым тар тұжырымдамасы - бұл пайдаланушы оқуға ыңғайлы пішінге түрлендіру арқылы кез келген түрден жолға түрлендіру, соның ішінде локализация.

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

1С тілінде деректер түрлерімен қалай жұмыс істеуге болады және 1С түрлерін қалай түрлендіруге болады?

1С мәні Анықталмаған

Анықталмаған - 1С мәні, бұл мән жоқ дегенді білдіреді. Осы 1С мәнін пайдалана отырып, айнымалы мәндерді, соның ішінде деструкторды, мысалы, COM нысандарын жасырын шақыру үшін «нөлге» қоюға болады.
Айнымалы1 = Жаңа COMObject("Excel.Application");
Айнымалы1 = Анықталмаған;

Дерекқордан деректерді алу әрекеті кезінде сұрау қайтара алатын ұқсас 1C NULL мәні, егер деректерді алу мүмкін болмаса (дәлірек айтқанда, NULL өрісіндегі мән дерекқордағы өріс «толтырылмаған» дегенді білдіреді) .
Таңдау = Query.Execute().Select();
While Selection.Next() циклі
Егер Selection.Field1 = NULL болса
Жалғастыру;
EndIf;
EndCycle;

1С мәнінің түрлері

«Айнымалылар» ретінде мыналарды пайдалануға болады:

  • Бағдарлама мәтінінде жасалған айнымалылар (жоғарыда сипатталған тәсілдермен)
  • Метадеректер объектісі немесе пішіні туралы мәліметтер (1С нақты түрін көрсете отырып, конфигураторда жасалған).

Реквизитте 1С композиттік түрі болуы мүмкін, яғни бірнеше мүмкін. Бұл жағдайда пайдаланушының 1С мәнін тағайындауы екі кезеңді болуы мүмкін:

  • Қолда бардан 1С мәнінің түрін таңдау
  • 1С мәнін таңдау.

Әдепкі бойынша бұл атрибутта 1С Undefined мәні бар. 1С түрі таңдалған, бірақ 1С мәні әлі таңдалмаған кезде, осы 1С түрінің бос мәні (сан үшін 0, 1С анықтамалық түрлері үшін нөлдік сілтеме, төменде қараңыз). Соңында, содан кейін - 1С мәні. Тапсырма бағдарламасынан мән 1С типті аралық таңдаусыз тікелей жасалады.

1С шамасының түрін бірнеше жолмен анықтауға болады:
//1-әдіс – белгілі 1С түрлерімен салыстыру
Айнымалы1 = 12;
TypeValue(Variable1) = Type("Number") болса, онда
//…
ElseIf TypeValue(Variable1) = Type("CatalogReference.CatalogName") Содан кейін
//…
EndIf;

Түрлендіру 1С түрі

1С қарапайым типтерінің 1С мәнін оператордың көмегімен түрлендіруге болады - 1С түрінің атауы:
//санға
ValueNumber = Сан («22»); //егер 1С түрлерін түрлендіру мүмкін болмаса, қате көтеріледі, сондықтан қате өңдегішті қолданған дұрыс (төменде қараңыз)

//жолға
ValueString = Жол(22);
ValueString = AbbrLp(22);
ValueString = Пішім(22, "YY=0");

//күні бойынша
ValueDate = Күн («20120101120000»); //01.01.2012 12:00:00
ValueDate = Күн(2012, 01, 01, 12, 0, 0);
ValueDate = Күн(2012, 01, 01);

1С түрінің түрлендіруі - 1С күрделі типтерінің мәндері

1С мәндерін пішімдеу

Нақты пішімді көрсету үшін Format() функциясы пайдаланылады, оның көмегімен қажетті көріністі көрсетуге болады.
NumberString = Пішім(2400, «Параметрлер»)

«Параметрлер» жолы ретінде қажетті 1С пішімін көрсету керек. Мұндай баптаулар арнайы кодталған формада көрсетіледі. Ең жиі қолданылатын параметрлерді қарастырыңыз:

Әртүрлі елдердің ережелеріне сәйкес 1С күндері мен сандарын пішімдеңіз
Егер сізге күнді немесе нөмірді көрсету қажет болса және олардың қалаған елдің ережелеріне сәйкес ұсынылуын білуге ​​алаңдағыңыз келмесе, ең қарапайым орнатумұны істеуге мүмкіндік береді:
L = Қалаған елдің қысқаша атауы

Кейбір елдердің ережелеріне сәйкес күнді көрсету мысалы:
Пішім(CurrentDate(), "L=ru")
> 28.03.2012 14:21:32
Пішім(CurrentDate(), "L=en")
> 28.03.2012 14:21:24
Пішім(CurrentDate(), "L=fr")
> 28/03/2012 14:22:08

1С тілінде күн пішімі
Егер әдепкі параметр сізге жеткіліксіз болса және күн бөліктерінің ретін және оларды бөлу таңбаларын көрсеткіңіз келсе, параметрді пайдалануыңыз керек:
DF = "dmg hms"

Сәйкесінше, "dmg" - күн, ай және жыл, ал "hms" - сағат, минут және секунд. Осы бөліктердің кез келгенін өткізіп жіберуге болады. Тапсырыс кез келген. Бөліктер арасында көрсетілген таңбалар бөлгіш таңбалар ретінде пайдаланылады.

Күні Жартылай таңба M. b. қатарынан бірнеше рет көрсетілген, күннің осы бөлігінің көрінісі осыған байланысты, мысалы, «d» немесе «dd» немесе «dddd».

Күннің бөліктерін ашу:

  • d - күн
    o кішкентай «d»
    o 1-4 рет
  • М - ай
    o үлкен «М»
    o 1-4 рет
  • d - жыл
    o кішкентай «g»
    o 1 немесе 2 немесе 4 рет
  • сағ - сағат
    o шағын «h» - 12 сағаттық пішім
    o үлкен «H» - 24 сағаттық пішім
    o 1 немесе 2 рет
  • м - минут
    o кішкентай «м»
    o 1 немесе 2 рет
  • s - секунд
    o кішкентай «s»
    o 1 немесе 2 рет
  • bb - 12 сағаттық пішімге арналған AM/PM дисплейі
  • k - тоқсан.

Ережелері бар күнді көрсету мысалы:

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

Бірінші «мәселе» 3 санындағы сандарды әдепкі топтастыруға және топтарды бос орынмен бөлуге қатысты, мысалы:
StrNumber = Жол(22300500)
> 22 300 500

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

«NPV» ондық үтірінен кейін қажетті цифрлар санына шығару кезінде санды дөңгелектеуге мүмкіндік беретін параметр:
Пішім(3.535353, "NPV=""2""")
> 3,54

«BRD» бүтін және бөлшек бөліктері үшін бөлгіш таңбаны көрсетуге мүмкіндік беретін параметр:
Пішім(3.535353, "BRD="".""")
> 3.535353

Кейбір жағдайларда «0» санының орнына басқа нәрсені көрсету пайдалы болуы мүмкін: бос жол немесе «толтырылмаған». Бұл «CHN» параметрін жасауға мүмкіндік береді:
Пішім(0, "HN=""""")

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!