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

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

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

Оффлайн СерьезныйЧеловек

  • ***
  • Сообщений: 165
  • РЕПУТАЦИЯ: 12
  • КПД: 7%
  • Регистрация: 2010-08-13
  • Сайт: 
Добрый день!
Делаю сортировку товаров по артикулу.
  Процедура КнопкаВыполнитьНажатие(Кнопка)
    
   Запрос=Новый Запрос;
   Запрос.Текст=
   "ВЫБРАТЬ
   |   РеализацияТоваровУслуг.Ссылка
   |ИЗ
   |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг";
   
   Выборка=Запрос.Выполнить().Выгрузить();
   
   Для каждого Строка из Выборка Цикл
      Документ=Строка.Ссылка.ПолучитьОбъект();   
      ТабЧасть=Документ.Товары.Выгрузить();
      ТабЧасть.Сортировать("Артикул УБЫВ");
      Документ.Товары.Загрузить(ТабЧасть);
      Документ.Записать();
   КонецЦикла;
   
      

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

Ошибка: неправильное имя колонки. Хотя по любой другой колонке сортирует(цена, номенклатура....). Когда отлаживал в ТЗ колонки артикул не было, хотя видимость колонки включил. Где проблема?


Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
А в таб.части Товары разве есть колонка Артикул? Сортировать можно только по существующей колонке в ТЗ. Если хотите сортировать по артикулу, то придется делать так:

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

И по мелочи: лучше использовать конструкцию
Выборка=Запрос.Выполнить.Выбрать() ;
Пока Выборка.Следующий() цикл
...
КонецЦикла;
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн СерьезныйЧеловек

  • ***
  • Сообщений: 165
  • РЕПУТАЦИЯ: 12
  • КПД: 7%
  • Регистрация: 2010-08-13
  • Сайт: 
таким обходом быстрее работает?

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Если речь про цикл
Пока Выборка.Следующий() - то быстрее. Потому как в твоем случае, ты в начале выгружаешь результат запроса в таблицу значений (Выгрузить()), а потом все-равно обходишь каждый элемент подряд, а в моем варианте - мы сразу обходим результат запроса, никуда его не выгружая
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн СерьезныйЧеловек

  • ***
  • Сообщений: 165
  • РЕПУТАЦИЯ: 12
  • КПД: 7%
  • Регистрация: 2010-08-13
  • Сайт: 
Тут очептка не большая
Для каждого Стр из ТабЧасть цикл
            Стр.Артикул=Строка.Номенклатура.Артикул;(Надо Строка исправить на Стр)
      КонецЦикла;

Оффлайн СерьезныйЧеловек

  • ***
  • Сообщений: 165
  • РЕПУТАЦИЯ: 12
  • КПД: 7%
  • Регистрация: 2010-08-13
  • Сайт: 
Спасибо большое :zebzdr: :zebzdr: :zebzdr:

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
хех, а это, так сказать, проверка на вшивость ;) (как говаривали у нас преподы, когда делали ошибки на доске)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
142 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
50 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal