8.х Как вывести в сообщении удаляемые реквизиты ТЧ, что не так !?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем proofet, 20 фев 2011.

  1. TopicStarter Overlay
    proofet
    Offline

    proofet

    Регистрация:
    20 фев 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте. У меня следующая проблема возникла: :angry:

    - Обработка должна при получении значения из поля выбора "Контрагенты" очистить табличную его часть ТорговыеТочки ( В которой существует единственный рекцизит ТорговыеТочки) и вывести сообщение в поле Надпись1 какие именно были удалены ТорговыеТочки...Ошибка в запросе повидимому, не могу до конца понять что не так ...,Помогите разобраться

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

    proofet

    Регистрация:
    20 фев 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Пожалуйста помогите исправить ошибку..,Как должен выглядить правильно в таком случае ?
  3. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Не понятно для чего вам нужен запрос, если вы обрабатываете всего одно значение, которое и так выбираете.
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не понятно для чего выводить список удаляемых торговых точек. Просто выведите вопрос пользователю: "Список торговых точек будет отчищен. Продолжить?". Да - Нет, при согласии отчищайте табличную часть и все.
  5. TopicStarter Overlay
    proofet
    Offline

    proofet

    Регистрация:
    20 фев 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    с запросом я ошибся повидимому, т.к. учусь только..И в данный момент выполняю определенное задание. По этому собственно и нужно выводить именно название Торговых Точек...

    Отредактировал немного код...может так будет более понятно что я хочу сделать ......

    ообщем все у Вас совсем не правильно.

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

    [warn=Внимание!]
    Не забываем про теги!
    [/warn]

    Вложения:

    • 1Cv8.rar
      Размер файла:
      36,4 КБ
      Просмотров:
      19
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    proofet - да не нужен тут запрос вообще.
    У вас ведь есть элемент справочника контрагенты. Пробегитесь по табличной части этого справочника, выведите список торговых точек, потом отчистите.
  7. TopicStarter Overlay
    proofet
    Offline

    proofet

    Регистрация:
    20 фев 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    пробовал без запроса ранее, тоже ничего толкового не вышло к сожалению.. У меня еще нет никакого опыта в программировании 1с, и каждая задача дается с трудом...очень был бы вам признателен если бы вы конкретно показали как должен выглядеть код без запроса
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Если НЕ ЗначениеЗаполнено(Контрагенты) Тогда
    Возврат;
    КонецЕсли;
    
    КонтрагентТТ=Контрагенты.ПолучитьОбъект();
    
    Для каждого ТТ из КонтрагентТТ.ТорговыеТочки Цикл
    Сообщить("Будут удалены следующие ТТ: " + Строка(ТТ));
    КонецЦикла;
    Если Вопрос("Вы действительно хотите очистить список торговых точек?", РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда
    КонтрагентТТ.ТорговыеТочки.Очистить();
    КонтрагентТТ.Записать();
    КонецЕсли;
    
    КонецПроцедуры
    
    

Поделиться этой страницей