7.7 Сортировка ТЗ без сортировки многострочной части. Как сделать?

Новая тема
Показывать по 10 20 40 сообщений
"Док=ТекущийДокумент();
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Товар", "Справочник.Номенклатура");
ТЗ.НоваяКолонка("МОЛ", "Справочник.МОЛ");
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл  
ТЗ.НоваяСтрока();
  ТЗ.Товар = Док.Товар;
ТЗ.Мол=Док.Товар.МОЛ;
КонецЦикла;
ТЗ.Сортировать("МОЛ");
ТЗ.ВыбратьСтроки();
МОЛ="""";
Пока ТЗ.ПолучитьСтроку()=1 Цикл  
Если ТЗ.МОЛ=МОЛ Тогда
Товар=ТЗ.Товар;
Таб.ВывестиСекцию("Строка");
Иначе
МОЛ=ТЗ.Товар.МОЛ;
Таб.ВывестиСекцию("МОЛ");
Товар=ТЗ.Товар;
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;

После выполнения кода вместе с ТЗ сортируется многострочная часть докумета
Как исправить эту ошибку?"
Я здесь ошибок не углядел - не должна сортировка сработать для табличной части документа.
Попробуйте поискать "Сортировать" в модуле - возможно сортировка табличной части выполняется, но в другом месте.
"Товар=ТЗ.Товар; //нельзя так... у вас Товар - это идентификатор реквизита табличной части. Надо другой идентификатор использовать, например ТоварНаПечать. Возможно, что визуально вам поэтому и кажется, что табличная часть пересортировывается
"
Поменял Товар на Товарр, ничего не поменялось
и еще
если открыть документ для просмотра то вся печатная форма заполняется товаром который находится в списке первым
сбросьте мне полный текст модуля документа на mirtovv@mail.ru
"Сортировать" больше нигде нету
"Процедура СчётВходящийБезРеквизитов()


Таб = СоздатьОбъект("Таблица");  

ВП = Валюта;  
КурсПечати = Курс;                    
ДатаКурса = Дата_Курса;

Если ПустоеЗначение(Контрагент) = 0 Тогда
Если Контрагент.ВидКонтрагента <> Перечисление.ВидыКонтрагентов.Нерезидент Тогда
Если ТипУчета > 0 Тогда
ВП = Гривня;  
КурсПечати = глКурсДляВалюты(ВП,ДатаДок);                    
ДатаКурса = ДатаДок;
КонецЕсли;
КонецЕсли;
КонецЕсли;

ПечФорма = "СчётВходящийБезРеквизитов";
Язык = глЯзык(ПечФорма);
Таб.ИсходнаяТаблица(ПечФорма);
глУстПропись(Валюта,Язык);

Фирма.ИспользоватьДату(ДатаДок,1);
Таб.ВывестиСекцию("Шапка");

Док=ТекущийДокумент();


ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Товар", "Справочник.Номенклатура");
ТЗ.НоваяКолонка("МОЛ", "Справочник.МОЛ");
ТЗ.НоваяКолонка("КОЛ");  
ТЗ.НоваяКолонка("КОД");
ТЗ.НоваяКолонка("АРТ");
ТЗ.НоваяКолонка("ЕД");
ТЗ.НоваяКолонка("Цена");
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл  
ТЗ.НоваяСтрока();
   ТЗ.Товар = Док.Товар;
ТЗ.Мол=Док.Товар.МОЛ;
ТЗ.КОЛ=Формат(Док.Количество,"Ч12.2");
ТЗ.АРТ=Док.Товар.Артикул;
ТЗ.КОД=Док.Товар.Код;
ТЗ.ЕД=Док.Единица;
ТЗ.Цена=Формат(Док.ЦенаСНДС,"Ч12.2");
КонецЦикла;

ТЗ.Сортировать("МОЛ");
ТЗ.ВыбратьСтроки();
МОЛ="""";
Пока ТЗ.ПолучитьСтроку()=1 Цикл  
Если ТЗ.МОЛ=МОЛ Тогда
Товар=ТЗ.Товар;
Код=Товар.Код;
   Кол=ТЗ.КОЛ;
Арт=ТЗ.АРТ;
Код=ТЗ.Код;
Ед=ТЗ.ЕД;
   Цена=ТЗ.Цена;
ИмяФайла=(Товар.Код);
 ИмяКаталога = ("E:\1с\Склад\foto\small\");
Если ФС.СуществуетФайл(ИмяКаталога + ИмяФайла + ".jpg")=0 Тогда
  Фото="""";
Иначе;
Фото="+";
КонецЕсли;
Таб.ВывестиСекцию("Строка");

Иначе
МОЛ=ТЗ.Товар.МОЛ;
Таб.ВывестиСекцию("МОЛ");
Товар=ТЗ.Товар;  
Код=Товар.Код;
Кол=ТЗ.КОЛ;
Арт=ТЗ.АРТ;
Код=ТЗ.Код;
Ед=ТЗ.ЕД;
Цена=ТЗ.Цена;
ИмяФайла=(Товар.Код);
 ИмяКаталога = ("E:\1с\Склад\foto\small\");
Если ФС.СуществуетФайл(ИмяКаталога + ИмяФайла + ".jpg")=0 Тогда
  Фото="""";
Иначе;
Фото="+";
КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;




Таб.ТолькоПросмотр(1);
Таб.Защита(Константа.ФлагЗащитыТаблиц);
Таб.Опции(0,0,,);
Таб.Показать("ПЕЧАТЬ: Счёт входящий","""");

КонецПроцедуры
"
Сори не там исправил, теперь заработало!
Всем спасибо!
"1. Док=ТекущийДокумент(); // - убрать

2.
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл  
  ТЗ.НоваяСтрока();
  ТЗ.Товар = Док.Товар;
  ТЗ.Мол=Док.Товар.МОЛ;
  ТЗ.КОЛ=Формат(Док.Количество,"Ч12.2");
  ТЗ.АРТ=Док.Товар.Артикул;
  ТЗ.КОД=Док.Товар.Код;
  ТЗ.ЕД=Док.Единица;
  ТЗ.Цена=Формат(Док.ЦенаСНДС,"Ч12.2");
КонецЦикла;

поменять на
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл  
  ТЗ.НоваяСтрока();
  ТЗ.Товар = Товар;
  ТЗ.Мол=Товар.МОЛ;
  ТЗ.КОЛ=Формат(Количество,"Ч12.2");
  ТЗ.АРТ=Товар.Артикул;
  ТЗ.КОД=Товар.Код;
  ТЗ.ЕД=Единица;
  ТЗ.Цена=Формат(ЦенаСНДС,"Ч12.2");
КонецЦикла;

3.
...
Если ТЗ.МОЛ=МОЛ Тогда
Товар=ТЗ.Товар;
Код=Товар.Код;

НЕ ИСПОЛЬЗОВАТЬ в качестве идентификаторов переменных идентификаторы реквизитов!! Что за "Товар" тут снова?"
а как сделать что бы печатать по конкретному МОЛ?
что бы МОЛ выбирать перед печатью
Читают тему
(гостей: 1)

Быстрый переход