Примеры решений по заданиям.

 

 

1

 

1с 8.2. Практическое пособие разработчика.

Задание – пример.

2

 

 

 

3

ВОПРОСЫ.

ЗАДАНИЕ.

ОТВЕТ.

71

29.3. Константы. Примерны использования объектов.

Пример01. Установить значение константы.

 

Пример02. Прочитать значение константы

 

Пример03. Очистить значения констант

 

 

Пример01. Установить значение коснтанты.

Константыухгалтер.Установить(“Сидоров И И”);

Константы[“ПрефикНумерации”].Установить(“ЦБ”);

 

Пример02. Прочитать значение константы

Рез = Константы.ПрефиксНумерации.Получить();

Сообщить(“Зн.кон=”, + Рез;

 

Пример03. Очистить значения констант

Для Каждого   ОчерКонстанта         Из   Константы          Цикл

        ОчерКонстанта.Установить(Неопределено);

КонецЦикла;

 

Пример04

Константы.ПолучитьФорму().ОткрытьМодально();

Пример05

Сообщить("Директор у нас: " + Константы.Директор.Получить());

Пример06

// чтение и запись константы
СтавкаНДС = Константы.СтавкаНДС.СоздатьМенеджерЗначения();
СтавкаНДС.Прочитать();
Если СтавкаНДС.Значение = 20 Тогда
СтавкаНДС.Значение = 18;
СтавкаНДС.Записать();
КонецЕсли;

Пример07

НаборКонстант = Константы.СоздатьНабор("Директор,Бухгалтер");
НаборКонстант.Прочитать();
Если ПустаяСтрока(НаборКонстант.Директор) Тогда
НаборКонстант.Директор = "Иванов Сидор Петрович";
КонецЕсли;
Если ПустаяСтрока(НаборКонстант.Бухгалтер) Тогда
НаборКонстант.Бухгалтер = "Сидоров Петр Иванович";
КонецЕсли;
НаборКонстант.Записать();

 

72

29.4. Справочники. Примеры использования объектов.

Пример1. Вывести все типы ссылок на элементы справочника

 

Пример2 . Создать новую группу.

 

Пример3 . Получить ссылку на спр Ном

 

Пример 4. Проверить помечени  ли на удаление

 

Пример 5 . Есть ли нужная валюта.

 

 

Пример 6  . Явл-ся ли элемент Номенклатура  с именем Услуга   - группой.

 

Пример 7 .Проверить для элементов задан вид номенклатуры

 

Пример  8-4.Вывести список элементов из корня справочника

 

Пример 9 . Удалить элементы иерархического спр-ка.

 

Пример 10  . Заполнить табл часть трудовая деятельность

 

Пример 11 .Запретить изменения подчиненных элементов – если у владельца свойство .

 

Пример 12    . Изменить наименование элемента справочника.

 

Пример 13  . Заполнить табл часть док элементами из группы Номен

 

Пример14  . Пометить все элементы иерарх справочника на удаление.

 

Пример 15  .

// Пример1 создания нового элемента


Пример 16 .

// Пример2 обработки выборки справочника

 

Пример 17  . В информационной базе есть " +
"заполненные справочники ?

 

Пример 18 . Номенклатура.ВыбратьИерархически

 

 

 

 

 

Пример1. Вывести все типы ссылок на элементы справочника

Массив= Справочники.ТипВсеСсылки().Типы();

Для Каждго ОчереднойТип  Из Массив  Цикл

        Сообщить(ОчереднойТип);

КонецЦикла;

 

Пример2 . Создать новую группу.

НовГру=Справочники.Номенклатура.СоздатьГруппу();

НовГру.Наименование=”Моя нов гру”;

Нов.Гру.Записать();

 

Пример3 . Получить ссылку на спр Ном

Спрвочники.Номнеклатура.ПолучитьСсылку;

 

Пример 4. Проверить помечени  ли на удаление

Если Справочники.Номенклатура.НайтиПоКоду(13).ПометкаУдаления Тогда

    Сообщить(“помеч на удал с код 13”);

КонецЕсли;

//  НайтиПоНаименованию()    НайтиПоРеквизиту()   

//  ПустаяСсылка()   ПолучитьСсылку()

 

Пример 5 . Есть ли нужная валюта.

 СтрокаНаименования = "USD";
 Валюты = Справочники.Валюты;
 НайденнаяСсылка = Валюты.НайтиПоНаименованию(СтрокаНаименования);
Если НайденнаяСсылка = Валюты.ПустаяСсылка() Тогда
  Сообщить("Валюты """ + СтрокаНаименования + """ еще нет");
КонецЕсли;

 

Пример 6  . Явл-ся ли элемент Номенклатура  с именем Услуга   - группой.

Если  Справочники.Номенклатура.НайтиПоНаименованию(“Услуги”,Истина).ЭтоГруппа  

                        Тогда

       Сообщить(“Эл. Услуга является грыппой);

КонецЕсли;

 

Пример 7 .Проверить для элементов задан вид номенклатуры

ПустаяСсылкаПеречисления=Перечисления.ВидыНоменклатуры.ПустаяСсылка();

Если  Не Справчоники.Номенклатура.НайтиПоРеквизиту(“ВидНоменклатуры”,  

      ПустаяСсылкаПеречисления), Пустая()        Тогда

    Сообщить (“Есть эл-ты не задан задан вид номенклатуры );

КонецЕсли;

 

Пример  8-4.Вывести список элементов из корня справочника

// пустая ссылка в парметр метода передать

Выборка=Справочники.Номенклатура.Выбрать(Справочники,Номенклатура.ПустаяСсылка();

 Пока Выборка.Следующий() Цикл

    Если Не Выборка.ЭтоГруппа   Тогда  Сообщить(Выборка);

      КонецЕсли;      

 КонецЦикла;

 

Пример 9 . Удалить элементы иерархического спр-ка.

Выборка=Справочники.Номенклатура.ВыбратьИерархически();

Пока   Выборка,Следующий         Цикл

        Выборка.Удалить();

КонецЦикла;

 

Пример 10  . Заполнить табл часть трудовая деятельность

НоваяСтрокаТабличнойЧасти = Новый Элемент.ТрудоваяДеятельность.Добавить();

НоваяСтрокаТабличнойЧасти.Организация =”Тоц”;

 

Пример 11 .Запретить изменения подчиненных элементов – если у владельца свойство .

Процедура ПередЗаписью(Отказ)

  Если Владелец.ИзмененияЗапрещены Тогда Отказ=Истина;

  Конецесли;

КонецПроцедуры

 

Пример 12    . Изменить наименование элемента справочника.

Элемент=Справочники.Номенклатура.НайтиПоКоду(10).ПолучитьОбъект();

Элемент.Наименвание=”Новое”;

Элемент.Записать;

 

Пример 13  . Заполнить табл часть док элементами из группы Номен

Выборка=Справочники.Номенклатура.ВыбратьИерархически(ПолеВвода);

Пока Выборка.Следующий() Цикл

  СсылкаНаНоменклатуру = Выборка.Ссылка;

  Если  СсылкаНаНоменклатуру.ЭтоГруппа Тогда Продолжить;

  КонецЕсли;

НоваяСтрока= Материалы.Добавить();

НоваяСтрокаМатериал=СсылкаНаНоменклатуру;

КонецЦикла;       

 

Пример14  . Пометить все элементы иерарх справочника на удаление.

Выборка=Справочники.Клиенты.Выбрать();

Пока Выборка.Следующий(()  Цикл

    Выборка.ПолучитьОбъект().УстановитьПометкуУдаления(Истина);

КонецЦикла;

 

Пример 15  .

// Пример1 создания нового элемента
НовыйОбъект = Справочникиалюты.СоздатьЭлемент();
НовыйОбъект.Код = "840";
НовыйОбъект.Наименование = "USD";
НовыйОбъект.ПолноеНаименование = "Доллары США";
НовыйОбъект.Записать();


Пример 16 .

// Пример2 обработки выборки справочника
Номенклатура = Справочникиоменклатура;
Отбор = Новый Структура();
Пусто = Перечисления.ТипыНоменклатуры.ПустаяСсылка();
Отбор.Вставить("ТипНоменклатуры",Пусто);
Выборка = Номенклатура.Выбрать(,,Отбор, "Наименование Убыв");
НачатьТранзакцию();
Пока Выборка.Следующий() Цикл
Объект = Выборка.ПолучитьОбъект();
Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
Объект.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();

 

Пример 17  . В информационной базе есть " + "заполненные справочники ?

Пример:3

Для каждого Справочник из Метаданные.Справочники Цикл
ИмяСправочника = Справочник.Имя;
МенеджерСправочника = Справочники[ИмяСправочника];
ВыборкаСправочника = МенеджерСправочника.Выбрать();
Если ВыборкаСправочника.Следующий() Тогда
Предупреждение("В информационной базе есть " +
"заполненные справочники!");
Возврат;
КонецЕсли;
КонецЦикла;

 

Пример 18 . Номенклатура.ВыбратьИерархически

Пример:4

Номенклатура = Справочники.Номенклатура;
Выборка = Номенклатура.ВыбратьИерархически(ВыбГруппа,,);
Пока Выборка.Следующий() Цикл
Сообщить("В выборке " + Выборка.Ссылка + "Уровень "+
Выборка.УровеньВВыборке());
Сообщить("В справочнике " + Выборка.Ссылка + "Уровень "+
Выборка.Ссылка.Уровень());
КонецЦикла;

 

 

 

 

 

73

29.4.. Документы. Примеры использования объектов.

Пример 21  . Вывести все типы ссылок на элемнты справочника по документам

 

Пример 22 . Получить макет для печати док ОказУслу

 

Пример 23 . Получить ссылку на каждый из док-в

 

Пример  24.  Проверить проведение документа

 

Пример 25  .  Проверить что во всех документах заполнен рекв склад.

 

Пример  26. Выбрать все док за тек месяц

 

Пример 27 .Создать нов док

 

Пример 28 . Проверка заполнения реквизита документа.

 

Пример 29  . Пометить документ на удаление.

 

Пример 30 .  Удалить все док ПрихНакл

 

Пример 21  . Вывести все типы ссылок на элемнты справочника по документам

Массив=Документы.ТипВсеСсылки().Типы();

 Для Каждого ОчереднойТип      из  Массив     Цикл

    Сообщить(ОчереднойТип);

 КонецЦикла;

 

Пример 22 . Получить макет для печати док ОказУслу

Макет=Докуметы[“ОказаниеУслуги”].ПолучитьМакет(«Печать»);

 

Пример 23 . Получить ссылку на каждый из док-в

Для Каждого   ОчереднойДокумент         Из  Документы      Цикл

   Ссылка=ОчереднойДокумент.Получитьссылку();

КонецЦикла;

 

Пример  24.  Проверить проведение документа

Если Документы.ПриходнаяНакладная.НайтиПоНомеру(3).Проведен Тогда

   Сообщить(«проведен 3»);

КонецЕсли;

 

Пример 25  .  Проверить что во всех документах заполнен рекв склад.

ПустаяСсылкаСклада= Справочник.Склады.ПустаяСсылка();

Если    Не Документы.ПриходнаяНакладная.НайтиПоРеквизиту(«Склад», 

       ПустаяСсылкаСклада).Пустая()     Тогда

    Сообщить («есть с пуст ссылками склад»);

КонецЕсли;

 

Пример  26. Выбрать все док за тек месяц

Выборка=Документы.ПриходнаяНакладная.Выбрать(НачалоМесяца(ТекущаДата)),

  КонецМесяца(ТекущаяДата));

Пока Выборка.Следующий() Цикл

   Сообщить(Выборка);

КонецЦикла;

 

Пример 27 .Создать нов док

НовыйДокумент= Документы.ПриходнаяНакладная.СоздатьДокумент();

НовыйДокумент.Дата=ТекущаяДата();

НоваяСтрокатабличнойЧасти= НовыйДокумент.Добавить();

НоваяСтрокатабличнойЧасти.Материал=Справочники.номенклатура.НайтиПоКоду(3);

 

Пример 28 . Проверка заполнения реквизита документа.

Если  Не ПроверитьЗаполнениРеквизитов(ЭтотОбъект.Ссылка)       Тогда

   Сообщить  рекв не заполнен»);

КонецЕсли;

 

Пример 29  . Пометить документ на удаление.

НенужныйДокумент=Документы.ОказаниеУслуги.НайтиПоНомеру(13).ПолучитьОбъект();

НенужныйДокумент.УстановитьПометкуУдаления(Истина);

 

Пример 30 .  Удалить все док ПрихНакл

Выбока=Документы.ПриходнаяНакладная.Выбрать();

   Пока Выборка.Следующий() Цикл

   Выборка.ПолучитьОбъект.Удалить();

КонецЦикла;

 

74

29.5.. Перечисления. Примеры использования объектов.

Пример 41 . Получить значение перечсиления по индексу.

 

Пример 42  . Получить количество значений перечсилений

 

Пример 43 .  Получить пустую ссылку на  значение перечсилений

 

Пример 41 . Получить значение перечсиления по индексу.

Перечисления.ВидыПеречислений.Получить();

 

Пример 42  . Получить количество значений перечсилений

Перечисления.ВидыНоменклатуры.Количество;

 

Пример 43 .  Получить пустую ссылку на  значение перечсилений

Пустаяссылкаперечисления=Перечисления.ВидыНоменклатуры.ПустаяСсылка();

Если ТекущаяНоменклатура.ВидНоменклатуры = ПустаяСсылкаПеречисления Тогда

   Сообщение(«надо заполнить»);

КонецЕсли;

 

75

29.6.. Регистры сведений. Примеры использования объектов.

Пример 51  . Получить тек цену

 

Пример 52 . Показать номенклатуру, цена которой в заданное время и дату

 

Пример 53 . Добавить новое значение цены в Ре Цены

 

Пример 54  . Удалить все записи Ре Све за тек месяц.

 

Пример 55 . Показать изменение цен на элемент номенклатуры в течение года

 

Пример 55а. Текущий курс доллара

Доллары = Справочники.Валюты.НайтиПоНаименованию("USD");
Отбор = Новый Структура;
Отбор.Вставить("Валюта", Доллары);
Курсы = РегистрыСведений.КурсыВалют;
ТекКурс = Курсы.ПолучитьПоследнее(ТекущаяДата(), Отбор);
Сообщить("Текущий курс доллара: " + ТекКурс.Курс + " руб.");

 

 

 

Пример 51  . Получить тек цену

Элемент=Справочник.Номенклатура.НайтиПоКоду(4);

Отбор= Новый Структура («Номенклатура»,Элемент);

ЗначениеРесурсов=РегистрыСведений.Цены.ПолучитьПоследнее(ТекущаяДата(),Отбор);

Цена=ЗначениеРесурсов.Цена;

 

Пример 52 . Показать номенклатуру, цена которой в заданное время и дату

Набор=РегистрСведений.Цены.СоздатьНаборЗаписей();

Набор.Отбор.Период.Установить(ЗаданнаяДата,Истина);

НаборПрочитать();

Для Каждого ОчереднаяЗапись Из Набор Цикл

  Сообщить(ОчереднаяЗапись.Номенклатура, ОчереднаяЗапись.Цена);

КонецЦикла;

 

Пример 53 . Добавить новое значение цены в Ре Цены

Запись=РегистрСведений.Цены.СоздатьМенеджерЗаписи();

Запись.Период=ТекущаяДата();

Запись.Номенклатура= Справочник.Номенклатура.НайтиПоКоду(«0000000»);

Запсиь.Цена=568;

Запись.Записать();

 

Пример 54  . Удалить все записи Ре Све за тек месяц.

Выборка = РегистрыСведений.Цены.Выбрать(НачалоМесяца(ТекущаяДата()),
                                   КонецМесяца(ТекущаяДата()));

   Пока Выборка.Следующий() Цикл  Выборка

   ПолучитьМенеджерЗаписи().Удалить();

   КонецЦикла;

 

Пример 55 . Показать изменение цен на элемент номенклатуры в течение года

Отбор= Новый Структура(«Номенклатура»,Справочники.Номенклатура.НайтиПоКоду(«00002»));

Выборка= РегистрыСведений,Цены.Выбрать(НачалоГода(ТекущаяДата(),КонецГода(ТекущаДата(), Отбор);

 

Пока Выборка.Следующий() Цикл

Сообщить(«Дата = » + Выборка.Период + Выборка.Цена);

КонецЦикла;

 

Пример 55а Текущий курс доллара

Доллары = Справочники.Валюты.НайтиПоНаименованию("USD");
Отбор = Новый Структура;
Отбор.Вставить("Валюта", Доллары);
Курсы = РегистрыСведений.КурсыВалют;
ТекКурс = Курсы.ПолучитьПоследнее(ТекущаяДата(), Отбор);
Сообщить("Текущий курс доллара: " + ТекКурс.Курс + " руб.");

 

 

 

76

29.7.. Регистры накопления. Примеры использования объектов.

Пример 56  . Полный пересчет итогов рег ОстаткиМатериалов.

 

Пример 57 . Рассчитать итоги Ре ОстаткиМатериалов на указанную дату.

 

Пример 58  . Активизировать требуемую строку списка Ре

 

Пример  59. Получить движения документа

 

Пример 60 . Выбрать все записи регистра ОстаткиМатериалов за тек. Месяц

 

 

Пример 56  . Полный пересчет итогов рег ОстаткиМатериалов.

РегистрыНакопления.ОстаткиМатериалов.ПересчитатьИтоги();

 

Пример 57 . Рассчитать итоги Ре ОстаткиМатериалов на указанную дату.

ИмяРегистра=ОстаткиМатериалов;

РегистрыНакопления[ИмяРегистра].УстановитьПериодРассчитанныхИтогов(УказаннаяДата);

 

Пример 58  . Активизировать требуемую строку списка Ре

СтруктураКлючевыхПолей= Новый Структура;

СтруктураКлючевыхПолей.Вставить(«Регистратор».Документы.ПриходнаяНакладная.НайтиПоНомеру(«00002»));

СтруктураКлючевыхПолей.ВставитьНомерСтроки»,2);

Элементы.Материалы.ТекущаяСтрока = РегистрыНакопления.ОстаткиМатериалов.СоздатьКлючЗаписи(СтруктураКлючевыхПолей);

 

Пример  59. Получить движения документа

НужныйДокумент= Документы.ПриходнаяНакладнаяНайтиПоНомеру(4);

Движения=РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();

Движения.Отбор.Регистратор.Значение=НужныйДокумент;

Движения.Прочитать();

 

Пример 60 . Выбрать все записи регистра ОстаткиМатериалов за тек. Месяц

Выборка= РегистрНакопления.ОстаткиМатериалов.Выбрать(НачалоМесяца(ТекущаяДата()),
                                   КонецМесяца(ТекущаяДата()));

 

 

 

Free Web Hosting