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

Ошибка в управляемой форме

Автор Salmishskay2516, 07 ноя 2012, 11:12

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

cska-fanat-kz

Выборка из результата запроса - только для чтения.
Но если выбрать ссылку на элемент справочника, то потом при обходе выборки можно с помощью ПолучитьОбъект() получить объект (простите за каламбур) этого элемента и менять его сколько угодно.

Запрос применяется например тогда когда вас интересуют не все элементы, а по какому-либо условию.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Есть еще много нюансов почему запрос лучше.
Чисто технологически.
Рекомендуется принять сей факт на веру ;)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Salmishskay2516


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

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

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

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

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

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

      
КонецПроцедуры // Ильдар()



&НаКлиенте
Процедура Команда1(Команда)
   
Ильдар();   

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

Ошибка
{Обработка.Обработка1.Форма.Форма.Форма(22)}: Преобразование значения к типу Число не может быть выполнено
      Количес = Количес + ВыборкаДетальныеЗаписи.Реквизит


cska-fanat-kz

Чего хотите добиться?

*спросил я и пошел домой... ;)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Dethmontt

На момент выполнения вот этой строки кода:
Количес = Количес + ВыборкаДетальныеЗаписи.Реквизит1;

Переменная: Количес имеет значение НЕОПРЕДЕЛЕНО т.к. она не объявлена РАНЕЕ
А разве можно сложить НЕОПРЕДЕЛЕНО + 10??? - сколько будет? Не знаете?
И Платформа 1С Этого не знает!!!

Вывод: Переменные нужно объявлять до операций над ними...
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

cska-fanat-kz

Цитата: Dethmontt от 07 ноя 2012, 23:31
На момент выполнения вот этой строки кода:
Количес = Количес + ВыборкаДетальныеЗаписи.Реквизит1;

Переменная: Количес имеет значение НЕОПРЕДЕЛЕНО т.к. она не объявлена РАНЕЕ
А разве можно сложить НЕОПРЕДЕЛЕНО + 10??? - сколько будет? Не знаете?
И Платформа 1С Этого не знает!!!

Вывод: Переменные нужно объявлять до операций над ними...


Да и Реквизит1 - еще неизвестно какого типа...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Salmishskay2516

В начале процедуры написал.
Перем Количес;
Количес = 0;

Реквизит1 типа число.

Ура всё посчитало.

Теги:

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

Рейтинг@Mail.ru

Поиск