Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
19 Дек 2017, 01:25
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите решить Тест  (Прочитано 3175 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ok_istina

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-07-07
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте!
Помогите пожалуйста решить тест по 1с.

1. Есть ли в приведенном ниже куске из текста программы какие либо ошибки, присутствуют ли неэффективные решения? Если есть, то исправьте ошибки, повысьте эффективность.

Для Каждого Товар Из ТабличнойЧасти Цикл
   ЕстьХотьОдноЯблоко = ложь;
   Если Товар.Наименование = "Яблоко" Тогда
      ЕстьХотьОдноЯблоко = Истина;
   КонецЕсли;
КонецЦикла;   
Если НЕ ЕстьХотьОдноЯблоко Тогда
   Предупреждение("Яблок нет в этом документе!");   
КонецЕсли;


2. Данная функция вызывается без последнего аргумента. Какое значение возвращает нижеприведенная функция? Можете объяснить, как работает функция?

Функция НС (Строка,Пока,ППВ=0)
   Ном = Найти(Строка,Пока);
   Возврат ?(Ном = 0, ППВ, НС (Сред(Строка,Ном+1),Пока,ППВ+Ном));
КонецФункции

3. Какое значение возвращает нижеприведенная функция? Можете объяснить, как работает функция?

Функция НП(Строка,Вие)
     ДлинаВх = СтрДлина(Вие);     
     Позиция = СтрДлина(Строка);
     Позиция = Позиция - ДлинаВх;
     Пока Позиция >= ДлинаВх Цикл
          Если Сред(Строка, Позиция + 1, ДлинаВх) = Вие Тогда
               Возврат Позиция + 1;
          КонецЕсли;
          Позиция = Позиция - 1;
     КонецЦикла;
     Возврат 0;
 КонецФункции
 
4. Какое значение возвращает нижеприведенная функция? Можете объяснить, как работает функция?

Функция НР(Строка, ПП)
   НС = СтрЧислоВхождений(Строка, ПП);
   Строка2 = Строка;   ПВ = 0;
   Пока НС>1 Цикл
      НомерС = найти(Строка2,ПП);
      ПВ = ПВ + НомерС+СтрДлина(ПП);
      Строка2 = Сред(Строка2, НомерС+СтрДлина(ПП), СтрДлина(Строка2)-НомерС);
      НС = НС-1;   
   КонецЦикла;
   ПВ = ПВ + найти(Строка2,ПП);
   Возврат ПВ;
КонецФункции

5. Чем отличаются вышеприведенные три функции? Эффективно ли работают функции? В каких ситуациях какая из функций работает быстрее? Можно ли повысить эффективность?

6. Есть ли в приведенном ниже куске из текста программы какие либо ошибки, присутствуют ли неэффективные решения? Если то исправьте ошибки, повысьте эффективность.

Зап = Новый Запрос;
Зап.Текст=
"ВЫБРАТЬ
|   ЦеныСрезПоследних.Период,
|   ЦеныСрезПоследних.Номенклатура,
|   ЦеныСрезПоследних.Цена
|ИЗ
|   РегистрСведений.Цены.СрезПоследних КАК ЦеныСрезПоследних
|ГДЕ
|   ЦеныСрезПоследних.Период = &Период";

Зап.УстановитьПараметр("Период",Дата('20070101010101'));
Рез = Зап.Выполнить().Выбрать();
Рез.Следующий();
Если Рез.Период = '20070101010101' Тогда
   НовогодняяЦена = Рез.Цена;   
КонецЕсли;


7. Есть ли в приведенном ниже куске из текста программы какие либо ошибки, присутствуют ли неэффективные решения? Если то исправьте ошибки, повысьте эффективность.

Запрос = новый запрос("ВЫБРАТЬ ПЕРВЫЕ 1
|   ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо.Ссылка КАК ФизическоеЛицо
|ИЗ
|   РегистрСведений.ОтветственныеЛицаОрганизации.СрезПоследних КАК ОтветственныеЛицаОрганизацииСрезПоследних
|ГДЕ
|   ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница = &Организация
|   И ОтветственныеЛицаОрганизацииСрезПоследних.Должность = &Должность");
   
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.УстановитьПараметр("Должность",
Справочники.ДолжностиОрганизаций.НайтиПоНаименованию("Главный технолог"));
Результат=Запрос.Выполнить();
Если не Результат.Пустой() тогда
   ГлавныйТехнолог=Результат.Выгрузить()[0].ФизическоеЛицо;
   ОбластьМакета.Параметры.ГлавныйТехнолог = ГлавныйТехнолог.Наименование;
КонецЕсли;



Заранее Большое всем спасибо!!!


Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
ЕстьХотьОдноЯблоко = ложь;
Для Каждого Товар Из ТабличнойЧасти Цикл
   Если Товар.Наименование = "Яблоко" Тогда
      ЕстьХотьОдноЯблоко = Истина;
      прервать;
   КонецЕсли;
КонецЦикла;   
Если НЕ ЕстьХотьОдноЯблоко Тогда
   Предупреждение("Яблок нет в этом документе!");   
КонецЕсли;
Кнопочка Спасибо - слева!

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Цитировать
2. Данная функция вызывается без последнего аргумента. Какое значение возвращает нижеприведенная функция? Можете объяснить, как работает функция?

Функция НС (Строка,Пока,ППВ=0)
   Ном = Найти(Строка,Пока);
   Возврат ?(Ном = 0, ППВ, НС (Сред(Строка,Ном+1),Пока,ППВ+Ном));
КонецФункции
Вообще-то функция не рабочая (использовано зарезервированное слово Пока). А должна возвращать либо 0, либо последнюю позицию вхождения подстроки Пока в Строка (за счет рекурсии)
Кнопочка Спасибо - слева!


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
AIFrame
73 Сообщений
alex0402
52 Сообщений
ilyay ilyay
51 Сообщений
andron81_81
44 Сообщений
oleg-x
35 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 201
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal