четверг, 29 октября 2015 г.

1С: Эксперт. Решение билета №11

Вопрос 11.1
В конфигурации определены следующие объекты метаданных:
Справочник «Контрагенты». Структура:
ДоговорСКонтрагентом (тип Документы.ДоговораСКонтрагентами.Ссылка)
ДоговорАннулирован (тип Булево)
ФотокопияДоговора (тип ХранилищеЗначений)
Регистр накопления «ВзаиморасчетыСКонтрагентом». Структура:
Сделка (составной тип из 28 видов документов). 
Проанализируйте  следующий код из вложенного файла и укажите на неоптимальные решения.
Предложите более оптимальный способ решить эту задачу.

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

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

КонецЦикла;

Ответ:
1) Так как поле «Сделка» составного типа, то нужно использовать  функцию «Выразить».
2) В запросе отбираются лишние данные, нужно отбирать  в запросе сразу задать условие где «ДоговорАнулирован = Истина».
3) В цикле идет обращение через точку, следовательно, получаются запросы в цикле. Необходимо получать наименование контрагента сразу в запросе.

Вопрос 11.2
Что такое блокировка и для чего она нужна? Кто и когда устанавливает блокировку? Кто и когда снимает блокировку? Что такое ожидание на блокировке и когда оно происходит.

Ответ:
1) Что такое блокировка и для чего она нужна? Блокировка это информация о том, что некоторый ресурс заблокирован.
2) Кто и когда устанавливает блокировку? Блокировка устанавливается явно и неявно.
Явно устанавливает разработчик с помощью конструктора встроенного  языка Новый БлокировкаДанных.
Неявно блокировка устанавливается платформой при записи(удалении) объектов, в обработке проведения и др.
3) Ожидание на блокировке это ситуация когда транзакция не может установить свою блокировку так как ресурс уже заблокирован другой транзакцией.


Вопрос 11.3
Конфигурация системы содержит документ, имеющий сложную функциональность. При проведении документа выполняется большое количество строк кода из различных модулей, выполняющихся как на клиенте так и на сервере 1С: Предприятия. По результатам тестирования производительность документа в однопользовательском режиме признана неудовлетворительной. Перед Вами поставлена задача повысить скорость проведения документа. Предложите план конкретных действий, направленных на решение этой задачи.

Ответ:
1)Если даже в однопользовательском режиме операция выполняется медленно значит есть неоптимальные запросы.
С помощью замера производительности в отладчике определить самые "тяжелые" запросы и их оптимизировать.
2) "Разгрузить" обработку проведения. Возможно некоторую  часть функционала  можно вынести из обработки проведения и вызывать их отдельными командами.

1 комментарий:

  1. Я СЕЙЧАС ВЫПОЛНЯЮ ФИНАНСОВУЮ ИЗ-ЗА КРЕДИТА, Я ПОЛУЧИЛ С ЛФДС. финансовое учреждение из-за моего кредитного рейтинга. Я не мог оплатить сборы моих детей. Я был позади на счетах, собирался быть выброшенным из дома из-за моей неспособности заплатить мою арендную плату. Это было в течение этого периода, мои дети были забраны у меня приёмной заботой. Затем я решил искать средства в Интернете, где я потерял 3670 долларов, которые я позаимствовал у друзей, которые были сорваны двумя онлайн-кредитными компаниями. Пока я не прочитал о: ссуде онлайн (lfdsloans@outlook.com) где-то в Интернете, я все еще не был убежден из-за того, через что мне пришлось пройти, пока мой родственник, священник, также не рассказал мне о действующей схеме ссуды в очень низкая процентная ставка в 1,9% и прекрасные условия погашения без штрафа за невыполнение платежа У меня нет выбора, кроме как связаться с ними, что я и сделал через текст + 1-989-394-3740, и мистер Бенджамин ответил мне. Этот день был для меня самым лучшим и самым великим днем ​​в моей жизни, который никогда не может быть забыт, когда я получить уведомление о кредите в размере 400 000,00 долларов США на сумму кредита, на которую я подал заявку. Я эффективно использовал кредит, чтобы погасить свои долги и начать бизнес, и сегодня я и мои дети так счастливы и полны удовлетворения. Вы также можете связаться с ними по электронной почте: (lfdsloans@outlook.com) WhatsApptext helpline: + 1-989-394-3740 Почему я это делаю? Я делаю это, чтобы спасти как можно больше людей, которые нуждаются в кредите, чтобы не стать жертвой мошенничества в Интернете. Спасибо и да благословит вас всех Бог, я Александр Артем из Горизонта Парка до н.э., Украина.

    ОтветитьУдалить