Имя: Пароль:
1C
1C 7.7
v7: Подкажите по 7.7 (сортировка остатков регистра) ...
0 MatrosoV AleXXXand_R
 
22.11.13
07:57
Всем добрый день. Хочу спросить по 7.7 (сам я можно сказать по большей части 8-рочник). Вопрос простой - ТиС, есть регистр там "ОстаткиТМЦ". Мне нужно получить остатки по данному регистру с отбором по фирме, складу, номенклатуре и с сортировкой по ЦенаПрод (причем, там где указано - в выборке должны идти в первую очередь, а где нет - в последнюю).

Как вариант вижу что-то следующее:

ВремРегистры = СоздатьОбъект("Регистры");
ВремОстаткиТМЦ = ВремРегистры.ОстаткиТМЦ;

ВремОстаткиТМЦ.УстановитьЗначениеФильтра("Фирма", Склад, 1);
ВремОстаткиТМЦ.УстановитьЗначениеФильтра("Склад", Склад, 1);
ВремОстаткиТМЦ.УстановитьЗначениеФильтра("Номенклатура", Номенклатура, 1);
ВремОстаткиТМЦ.ВыгрузитьИтоги(ТаблОстатков, 1, 1);

ТаблОстатков.НоваяКолонка("ЕстьЦенаПрод");

ТаблОстатков.ВыбратьСтроки();
Пока ТаблОстатков.ПолучитьСтроку() = 1 Цикл
     ТаблОстатков.ЕстьЦенаПрод = ?(ПустоеЗначение(ТаблОстатков.ЦенаПрод) = 1, 0, 1);
КонецЦикла;

ТаблОстатков.Сортировать("ЕстьЦенаПрод-, ЦенаПрод+");


Вопрос - правильный ли я подход выбрал, или есть другие более разумные способы (по быстродействию)?

P. S. Этот блок будет выполняться в цикле - по табличной части документа, и потом в этом же блоке с ТаблОстатков будет идти распределение до нужного количества
1 MatrosoV AleXXXand_R
 
22.11.13
07:58
вернее вот так

ТаблОстатков.Сортировать("ЕстьЦенаПрод+, ЦенаПрод+");
2 Рэйв
 
22.11.13
07:59
да отсортируй цену поубыванию и не надо колонку городить
3 1dvd
 
22.11.13
08:00
Нормальный способ. Можно было бы запросом, но не факт, что черный запрос получится быстрее
4 MatrosoV AleXXXand_R
 
22.11.13
08:01
(2) не совсем так ...

1) где есть цена продажи - списывается в первую очередь
2) списывается ЦенаПрод по возрастанию, то есть как-то так

Цена прод (пример) - 1, 1, 2, 2, 3, 0, 0, 0
5 MatrosoV AleXXXand_R
 
22.11.13
08:02
(3) спасибо :)
6 Рэйв
 
22.11.13
08:06
(4)Поставь там где нет цены -сто мильенов один рубль и отсортируй повозрастанию:-)
Как дойдешь до стомильенов один, будешь знать что тут нет цены
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший