Лабораториялық жұмыс № 14 (1 сағат)
Тақырып: Белгілер
Жұмыс мақсаты: белгілер жұмыс жасау.
Тапсырма:
Белгілерді орнату
Белгілердің параметрлері мен қасиеттері
Әдістемелік нұсқаулар
Бағдарламалау тәсілдері. «1C: Предприятие»-нің кіріктірілген тілінің көмегімен анықтамалықпен бегілерді құру әртүрлі операцияларды орындауға болады: құру, элементтерді өзгерту және жою, керекті элементті іздеу және т.б.
«1C: Предприятие» мәліметтер моделі тұрғысынан мәліметтер базасында көптеген негіздер үшін («Справочники», «Документы», «ПланВидовХарактеристик», «ПланСчетов» және «ПланВидовРасчета») объектілер сақталынады. Әрбір объектінің өз тағайындауы, өзінің қасиеттері мен әдістері бар.
«СправочникиМенеджер» объектісі – конфигурацияның барлық анықтамалықтарына қолжеткізуді қамтамасыз етеді. Бұл объектінің қасиеті анықтамалықтардың аттарына сәйкес келеді және онда «СправочникМенеджер» типті объектілер болады.
«СправочникиМенеджер» анықтамалықтарына да элементтер жиынтығына да операциялар жасауға мүмкіндік береді. Бұл объектінің әдістері арқылы іздеуге, іріктеме алуға, жаңа элементтер мен топтар құруға, анықтамалықтың формалары мен макеттеріне қатынауға болады.
«СправочникСсылка» - бұл объект анықтамалықтың элементін (тобын) идентификациялайды және оған «только чтение» режимінде қатынауға мүмкіндік береді. Бұл объектінің қасиеттері мен әдістері арқылы элементтің (топтың) реквизиттерін оқуға, оның кестелік бөліміне қатынауға болады. Бұл типтің мәні реквизиттерде сақталынады: «Ссылка», «Код», «Наименование», «Цена», «Количество».
«СправочникОбъект»- элементке жазу мүмкіндігімен қол жеткізеді. Бұл объектте «Записать» және «Удалить» әдістері бар.
«СправочникВыборка»- анықтамалықтың элменттерін тексеріп (іріктеу) шығу мүмкіндігін береді. Іріктеу тура несесе иерархиялық болуы мүмкін (егер анықтамалық көпдеңгейлі болса).
«СправочникСписок»- объект кестелік өрісте элементтер тізімін басқаруға арналған. Бағаналарды, тізімді іріктеу және сұрыптауға мүмкіндік береді.
Анықтамалықтармен жұмыс жасаудағы әдеттегі (типтік) операцияларды орындау тәсілдері.анықтамалық менеджеріне жүгіну.
СпрСотр = Справочники.Сотрудники;
СпрТовары = Справочники["Номенклатура"];
1. бірінші нұсқа анықтамалықтың аты бағдарламалаушыға белгілі және ол тұрақты болғанда қолданылады.
2. Екінші нұсқада анықтамалық аты жолмен беріледі. Бұл құрылым анықтамалықтың аты белгісіз болғанда қолданылады.
Анықтамалық элементтерін іріктеу. Анықтамалықтың элементтерін таңдау «СправочникВыборка» объектісі арқылы жүргізіледі, ол «СправочникМенеджер» объектісінің «Выбрать» және «ВыбратьИерархически» әдістерін шақырғанда кері келеді:
СпрВыборка = Справочники.Номенклатура.Выбрать();
Пока СпрВыборка.Следующий() Цикл
Сообщить(СпрВыборка.Код + " " + СпрВыборка.Наименование);
//перебор строк табличной части
Для Каждого стр Из СпрВыборка.ЕдиницыИзмерения Цикл
Сообщить(" " + стр.ЕдиницаИзмерения);
КонецЦикла;
КонецЦикла;
«ВыбратьИерархически» әдісінің «Выбрать» әдісінен айырмашылығы іріктеме иерархия бойынша жүргізіледі, яғни іріктеме басында 1-ші деңгейлі аталық элемент кейін оның бағынышты элементтері кетеді, одан кейін келесі 1-ші деңгейлі аталық элемент соңынан бағынышты элементтері кетеді және тс.с.
«Выбрать» және «ВыбратьИерархически» әдістері тек қажетті элменттерді ғана таңдап алуға мүмкіндік береді, мысалы иерархиялық анықтамалықтың белгілі бір тобына жататын элементтер немесе қандай да бір иеге тиесілі элементтер.
«Выбрать» және «ВыбратьИерархически» әдістерінің синтакситік диаграммасы төмендегідей («Выбрать» мысалға келтірілген):
Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>);
мұнда:
«Родитель» - аталық элементке немесе топқа сілтеме. Іріктемеге тек берілген элементке (топқа) тиесілі элементтер ғана түседі. Бұл параметрдің тек иерархиялық анықтамалыққа ғана мағынасы бар.
«Владелец» - ие-анықтамалыққа элементіне сілтеме. Іріктемеге тек берілген ие-анықтамалыққа тиесілі элементтер ғана түседі. Бұл параметрдің тек бағыныңқы анықтамалықтарға ғана мағынасы бар.
«Отбор» - қандайда бір реквизитке берілген мән бойынша анықтамалықтың элементтерін таңдап алуға мүмкіндік береді. Құрылымның кілті реквизит атында, ал құрылым мәнісі ірітеу мәнінде болады. Құрылымда тек индексациялау белгісі қойылған «Код», «Наименование» және реквизиттер ғана қолданылады. Құрылымда тек қана бір элемент болады. Бірнеше белгі бойынша элементтерді іріктеу үшін сұратуларды («запрос») қолдануға болады.
«Порядок» – «код», «наименование» және конфигураторда "Индексирование" белгісі қойылып, мәніне "Индексировать" немесе "Индексировать с доп. упорядоч." берілген реквизиттер бойынша ретке келтіруді беретін жол. Реквизит атынан кейін сұрыптау реті беріледі («Убыв» - кему бойынша, «Возр» - өсу реті бойынша).
Мысалы. «Номенклатура» анықтамалығынан тек мониторларды алып, оларды бағаларының кему реті бойынша сұрыптайық:
СпрНоменклатура = Справочники.Номенклатура;
ГруппаМониторы =
СпрНоменклатура.НайтиПоНаименованию("Мониторы");
СпрВыборка = СпрНоменклатура.Выбрать(ГруппаМониторы,,,"Цена Убыв");
Пока СпрВыборка.Следующий() Цикл
КонецЦикла;
Келесі мысалда «Семья» «Сотрудники» анықтамалығына бағыныңқы анықтамалығынан бір қызметкердің ұлдарын іріктеп алады. Бұл жерде иесі бойынша және «ТипРодства» реквизиті бойынша бір мезетте іріктеу жүргізіліп жатыр.
Отбор = Новый Структура ("ТипРодства");
Отбор.ТипРодства = Перечисления.ТипРодства.Сын;
Спр=Справочники. Сотрудники.Выбрать();
Пока Спр.Следующий() Цикл
Текущий=Спр.Ссылка;
Выборка =
Справочники.Семья.Выбрать(,Текущий,Отбор,);
Пока Выборка.Следующий() Цикл
Сообщить("Сын "+Строка(Текущий));
КонецЦикла;
КонецЦикла;
Жаңа элементті немесе топты құру тек арнайы объект «СправочникОбъект» арқылы ғана жүргізіледі.
Мысалы, «Сотрудники» анықтамалығында «Прочее» тобын құру және бұл топта элемент құру:
НоваяГруппа = Справочники.Сотрудники.СоздатьГруппу();
НоваяГруппа.Код = 1;
НоваяГруппа.Наименование = "Прочие";
НоваяГруппа.Записать();
НовыйСотрудник = Справочники.Сотрудники.СоздатьЭлемент();
НовыйСотрудник.Код = 100;
НовыйСотрудник.Наименование = "Иванов Иван Иванович";
НовыйСотрудник.Родитель = НоваяГруппа.Ссылка;
НовыйСотрудник.Записать();
Элементті немесе топты іздеу «НайтиПоКоду», «НайтиПоНаименованию» және «НайтиПоРеквизиту» әдістерімен жүргізіледі. Бұл әдістер таблыған элементтерге сілтемелер немесе элемент табылмаса, бос сілтемелерді қайтарады. Бос сілтемелерге тексеру «Пустая» әдісінің көмегімен жүргізіледі, ол егер сілтеме шынында да бос болса, «Исттина» мәнін қайтарады.
Мысалдар:
СотрСсылка = Справочники.Сотрудники.НайтиПоКоду(100);
Если НЕ СотрСсылка.Пустая() Тогда
Сообщить("Найден сотрудник с кодом 100: " +
СотрСсылка.Наименование);
КонецЕсли;
//2-й вариант проверки на пустую ссылку
Если СотрСсылка = Справочники.Сотрудники.ПустаяСсылка() Тогда
КонецЕсли;
Анықтамалықтың элементін жою «СправочникОбъект» объектісі арқылы жүргізіледі және тек осылай ғана жүргізуге болады. Анықтамалықтың элементін басқа тәсілмен жоюға болмайды.
Жоюға қойылған белгі мен жоюды айыра білу керек. Жоюға қойылатын белгіні тағайындаған кезде элемент (топ) анықтамалықта қалады, тек ерекше белгімен белгіленеді. Ол дағы іріктемеге қатыса алады, жалпы жағдайда пайдаланушыға көрініп тұрады.
Ал жою кезінде анықтамалық элементі мәліметтер базасынан алынып тасталынады. Бұл жағдайда оған мәліметтер базасының басқа объектілерінде сілтемелер болмауы керек, олай болған жағдайда мәліметтер базасының сілтемелік біртұтастығы жоғалады. Бұл сияқты жағдайды болдырмас үшін жоюға алдын ала белгілеп, мәзірден «Операции -> Удаление помеченных объектов» командасын таңдаймыз. Бұл сияқты жағдайда жүйе мәліметтер базасының сілтемелік біртұтастығын тексеріп, объектіні жоюдың дұрыс-бұрыстығын тексереді.
Мысалы коды қандайда бір мәнге тең элементті тауып, оны жоюға белгі қою және нақты жою әдістері.
СотрСсылка = Справочники.Сотрудники.НайтиПоКоду(100);
Если Не СотрСсылка.Пустая () Тогда
СотрОбъект = Сотр.ПолучитьОбъект();
//жоюға белгі қоюдың 1-ші нұсқасы
СотрОбъект.ПометкаУдапения = Истина;
СотрОбъект.Записать();
// жоюға белгі қоюдың 2-ші нұсқасы
СотрОбъект.УстановитьПометкуУдаления(Истина);
// 3-ші нұсқа: объектінінақты жою
СотрОбъект.Удалить();
КонецЕсли;
№14 лабораториялық жұмысқа тапсырмалар
1. Анықтамалық элементтерін іріктеу.
2. Элементті немесе топты іздеу «НайтиПоКоду», «НайтиПоНаименованию» және «НайтиПоРеквизиту» әдістерін үйрену.
3. «Сотрудники» анықтамалығында «Прочее» тобын құру.
4. Анықтамалықтың элементін жою «СправочникОбъект».
Достарыңызбен бөлісу: |