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

Автор Тема: Сократить код  (Прочитано 130 раз)

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

Оффлайн skillful

  • ***
  • Сообщений: 102
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2010-05-07
  • Сайт: 
Добрый! С новым годом.

&НаСервере
Процедура ПрайсПриИзмененииНаСервере()

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

Запрос.УстановитьПараметр("Поставщик", ЭтотОбъект.Объект.Поставщик.Ссылка);
Запрос.УстановитьПараметр("Наименование", ЭтотОбъект.Объект.Прайс.Наименование);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ТЧНайстройкиПрайса = Объект.ТЧНайстройкиПрайса.Добавить();
ТЧНайстройкиПрайса.Наименование = "НомерПервойСтроки";
ТЧНайстройкиПрайса.Параметр = ВыборкаДетальныеЗаписи.НомерПервойСтроки;

ТЧНайстройкиПрайса = Объект.ТЧНайстройкиПрайса.Добавить();
ТЧНайстройкиПрайса.Наименование = "КодПоставщика";
ТЧНайстройкиПрайса.Параметр = ВыборкаДетальныеЗаписи.КодПоставщика;

ТЧНайстройкиПрайса = Объект.ТЧНайстройкиПрайса.Добавить();
ТЧНайстройкиПрайса.Наименование = "НоменклатураПоставщика";
ТЧНайстройкиПрайса.Параметр = ВыборкаДетальныеЗаписи.НоменклатураПоставщика;

ТЧНайстройкиПрайса = Объект.ТЧНайстройкиПрайса.Добавить();
ТЧНайстройкиПрайса.Наименование = "Количество";
ТЧНайстройкиПрайса.Параметр = ВыборкаДетальныеЗаписи.Количество;

ТЧНайстройкиПрайса = Объект.ТЧНайстройкиПрайса.Добавить();
ТЧНайстройкиПрайса.Наименование = "Цена";
ТЧНайстройкиПрайса.Параметр = ВыборкаДетальныеЗаписи.Цена;

КонецЦикла;
КонецПроцедуры

Как можно сократить код внутри цикла ВыборкаДетальныеЗаписи.Следующий()


Оффлайн LexaK

  • *****
  • Сообщений: 2369
  • РЕПУТАЦИЯ: 706
  • КПД: 30%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Re: Сократить код
« Ответ #1: 05 Янв 2021, 11:21 »
вообще загрузка данных из запроса делаются одной строкой,
нужно только сделать чтобы имена колонок ТЧ и имена полей результата запроса совпадали, тогда можно использовать такую команду
    ...
    Объект.ТЧНайстройкиПрайса.Загрузить(Запрос.Выполнить().Выгрузить());
без всяких циклов
(правда сам запрос и его параметры вызывают кучу вопросов, но это уже другая задача)
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

LexaK
49 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
28 Сообщений
Алексей_1985_06
25 Сообщений
prolog
25 Сообщений
antoneus antoneus
24 Сообщений
vadim10121995
23 Сообщений
DmitriyF DmitriyF
16 Сообщений
alexandr_ll
16 Сообщений
altair2019
6 Сообщений
Сергей Поляков Сергей Поляков
6 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal