|
Как сделать сортировку как в док. основание?
| ☑ |
0
Natalika
18.04.13
✎
14:00
|
Если на основании "Заказа покупателя" ввести документ "Реализация", то сортировка строк "Товары" и "Услуги" меняется. А мне нужно оставить такую же сортировку, как в заказе. Как это сделать? При этом документ "Заказ покупателя" не отсортирован и его нельзя сортировать.
|
|
1
butterbean
18.04.13
✎
14:02
|
проще доказать, что это не надо делать, чем сделать
|
|
2
zak555
18.04.13
✎
14:02
|
разве ?
|
|
3
kosts
18.04.13
✎
14:02
|
(0)
Табличная часть.Сдвинуть (Tabular section.Move)
Табличная часть (Tabular section)
Сдвинуть (Move)
Синтаксис:
Сдвинуть(<Строка>, <Смещение>)
Параметры:
<Строка> (обязательный)
Тип: Число; Строка табличной части.
Индекс строки, которую нужно сдвинуть, либо сама сдвигаемая строка.
<Смещение> (обязательный)
Тип: Число.
Количество строк, на которое необходимо переместить строку. Положительное значение означает, что строка будет передвинута ближе к концу табличной части (вниз), отрицательное - ближе к началу (вверх).
Описание:
Сдвигает указанную строку табличной части на указанное смещение.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Примечание:
Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения.
Пример:
// сдвиг 2-й строки на предыдущую позицию
Состав.Сдвинуть(1, -1);
// сдвиг 2-й строки на следующую позицию
Состав.Сдвинуть(1, 1);
|
|
4
Fedot200
18.04.13
✎
14:08
|
(0) Во-первых - зачем, а во-вторых - почему меняется?
|
|
5
Natalika
18.04.13
✎
14:14
|
все, я сделала.
|
|
6
mooo
18.04.13
✎
14:21
|
// Сортирует строки табличной части в том же порядке, как у документа основания
//
// Параметры
// <ТабЧасть> - <ТабличнаяЧасть> - Табличная часть, которую необходимо упорядочить
//
// <ДокументОснование> - <ДокументСсылка> - Ссылка на документ основание
//
//
Процедура УпорядочитьСтрокиПоДокументуОснованию(ТабЧасть, ДокументОснование, ИмяТабЧасти = "Товары") Экспорт
МетаданныеДокументаОснования = ДокументОснование.Метаданные();
ИмяДокументаОснования = МетаданныеДокументаОснования.Имя;
Если НЕ ОбщегоНазначения.ЕстьТабЧастьДокумента(ИмяТабЧасти, МетаданныеДокументаОснования) Тогда
Возврат;
КонецЕсли;
Если НЕ ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("Номенклатура", МетаданныеДокументаОснования, ИмяТабЧасти) Тогда
Возврат;
КонецЕсли;
Если НЕ ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ХарактеристикаНоменклатуры", МетаданныеДокументаОснования, ИмяТабЧасти) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| ТабЧастьДокумента.Номенклатура,
| ТабЧастьДокумента.ХарактеристикаНоменклатуры,
| МИНИМУМ(ТабЧастьДокумента.НомерСтроки) КАК Порядок
|ИЗ
| Документ." + ИмяДокументаОснования + "." + ИмяТабЧасти + " КАК ТабЧастьДокумента
|ГДЕ
| ТабЧастьДокумента.Ссылка = &ДокументОснование
|
|СГРУППИРОВАТЬ ПО
| ТабЧастьДокумента.Номенклатура,
| ТабЧастьДокумента.ХарактеристикаНоменклатуры
|
|УПОРЯДОЧИТЬ ПО
| Порядок";
Запрос.УстановитьПараметр("ДокументОснование", ДокументОснование);
ТаблицаУпорядоченныхСтрок = Запрос.Выполнить().Выгрузить();
ТаблицаДокумента = ТабЧасть.Выгрузить();
ТаблицаДокумента.Колонки.Добавить("ПорядокСтрокиОснования", Новый ОписаниеТипов("Число"));
СтруктураПоиска = Новый Структура("Номенклатура, ХарактеристикаНоменклатуры");
Для каждого СтрокаТаблицы Из ТаблицаДокумента Цикл
СтруктураПоиска.Номенклатура = СтрокаТаблицы.Номенклатура;
СтруктураПоиска.ХарактеристикаНоменклатуры = СтрокаТаблицы.ХарактеристикаНоменклатуры;
НайденныеСтроки = ТаблицаУпорядоченныхСтрок.НайтиСтроки(СтруктураПоиска);
Если НайденныеСтроки.Количество() > 0 Тогда
СтрокаТаблицы.ПорядокСтрокиОснования = НайденныеСтроки[0].Порядок;
Иначе
СтрокаТаблицы.ПорядокСтрокиОснования = 9999;
КонецЕсли;
КонецЦикла;
ТаблицаДокумента.Сортировать("ПорядокСтрокиОснования");
ТабЧасть.Загрузить(ТаблицаДокумента);
КонецПроцедуры
|
|