Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мая 2024, 09:53

Помогите разобраться,что тут не так.

Автор asentio, 28 сен 2021, 09:27

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

asentio

Всем здрасте,
Я только учусь,сильно не ругайтесь.НЕ могу понять,что тут не так

ТекстЗапроса =
   "ВЫБРАТЬ
   |   Контрагенты.Ссылка КАК Ссылка,
   |ИЗ
   |   Справочник.Контрагенты КАК Контрагенты";
   
   Запрос = Новый Запрос(ТекстЗапроса);
   Запрос.УстановитьПараметр("Организация", Справочники.Организации.ПустаяСсылка());
   
   Выборка = Запрос.Выполнить().Выбрать();   
   Сообщить(Запрос.Количество);
   
   Пока Выборка.Следующий() Цикл
      
      Объект = Выборка.Ссылка;
      Объект.Префикс = "КД";
      Объект.Записать(РежимЗаписиДокумента.Запись);
      
   КонецЦикла;

nvj84

  1. Параметр "Организация" в запрос передается, но не используется.
  2. Если хотите получить количество записей то у выборки используйте метод Количество().
  3. Для получения объекта из ссылки нужно использовать ПолучитьОбъект().
  4. Записываете вы элемент справочника поэтому нет режима записи.
  5. Имя Объект может быть занято основным реквизитом так что его лучше от греха подальше не использовать.

asentio


asentio

nvj84, Спасибо.А если не трудно можете исправить,так чтобы было правильно.Чтобы наглядно с орентироваться.Пожалуйста.

Ивашка

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

nvj84

Пользуйтесь конструктором запроса с обработкой результата (выбирать соответствующий пункт в контекстном меню). В результате получите код.
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты";

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

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

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

//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

И далее редактируйте полученный код под свой задачи. В вашем случае код мог быть таким.

    Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты";
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Сообщить(СтрШаблон("Количество элементов в выборке: %1.",ВыборкаДетальныеЗаписи.Количество()));
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КонтрагентОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
КонтрагентОбъект.Префикс = "Префикс";
КонтрагентОбъект.Записать();
КонецЦикла;
КонецЕсли;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск