7.7 Сортировка ТЗ без сортировки многострочной части. Как сделать?
Показывать по
10
20
40
сообщений
- 1
- 2
01.07.2009
17:18
#1
"Док=ТекущийДокумент();
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Товар", "Справочник.Номенклатура");
ТЗ.НоваяКолонка("МОЛ", "Справочник.МОЛ");
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Товар = Док.Товар;
ТЗ.Мол=Док.Товар.МОЛ;
КонецЦикла;
ТЗ.Сортировать("МОЛ");
ТЗ.ВыбратьСтроки();
МОЛ="""";
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Если ТЗ.МОЛ=МОЛ Тогда
Товар=ТЗ.Товар;
Таб.ВывестиСекцию("Строка");
Иначе
МОЛ=ТЗ.Товар.МОЛ;
Таб.ВывестиСекцию("МОЛ");
Товар=ТЗ.Товар;
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;
После выполнения кода вместе с ТЗ сортируется многострочная часть докумета
Как исправить эту ошибку?"
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Товар", "Справочник.Номенклатура");
ТЗ.НоваяКолонка("МОЛ", "Справочник.МОЛ");
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Товар = Док.Товар;
ТЗ.Мол=Док.Товар.МОЛ;
КонецЦикла;
ТЗ.Сортировать("МОЛ");
ТЗ.ВыбратьСтроки();
МОЛ="""";
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Если ТЗ.МОЛ=МОЛ Тогда
Товар=ТЗ.Товар;
Таб.ВывестиСекцию("Строка");
Иначе
МОЛ=ТЗ.Товар.МОЛ;
Таб.ВывестиСекцию("МОЛ");
Товар=ТЗ.Товар;
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;
После выполнения кода вместе с ТЗ сортируется многострочная часть докумета
Как исправить эту ошибку?"
01.07.2009
17:28
#2
Я здесь ошибок не углядел - не должна сортировка сработать для табличной части документа.
Попробуйте поискать "Сортировать" в модуле - возможно сортировка табличной части выполняется, но в другом месте.
Попробуйте поискать "Сортировать" в модуле - возможно сортировка табличной части выполняется, но в другом месте.
01.07.2009
17:31
#3
"Товар=ТЗ.Товар; //нельзя так... у вас Товар - это идентификатор реквизита табличной части. Надо другой идентификатор использовать, например ТоварНаПечать. Возможно, что визуально вам поэтому и кажется, что табличная часть пересортировывается
"
"
01.07.2009
17:53
#4
Поменял Товар на Товарр, ничего не поменялось
и еще
если открыть документ для просмотра то вся печатная форма заполняется товаром который находится в списке первым
и еще
если открыть документ для просмотра то вся печатная форма заполняется товаром который находится в списке первым
01.07.2009
18:00
#7
"Процедура СчётВходящийБезРеквизитов()
Таб = СоздатьОбъект("Таблица");
ВП = Валюта;
КурсПечати = Курс;
ДатаКурса = Дата_Курса;
Если ПустоеЗначение(Контрагент) = 0 Тогда
Если Контрагент.ВидКонтрагента <> Перечисление.ВидыКонтрагентов.Нерезидент Тогда
Если ТипУчета > 0 Тогда
ВП = Гривня;
КурсПечати = глКурсДляВалюты(ВП,ДатаДок);
ДатаКурса = ДатаДок;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ПечФорма = "СчётВходящийБезРеквизитов";
Язык = глЯзык(ПечФорма);
Таб.ИсходнаяТаблица(ПечФорма);
глУстПропись(Валюта,Язык);
Фирма.ИспользоватьДату(ДатаДок,1);
Таб.ВывестиСекцию("Шапка");
Док=ТекущийДокумент();
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Товар", "Справочник.Номенклатура");
ТЗ.НоваяКолонка("МОЛ", "Справочник.МОЛ");
ТЗ.НоваяКолонка("КОЛ");
ТЗ.НоваяКолонка("КОД");
ТЗ.НоваяКолонка("АРТ");
ТЗ.НоваяКолонка("ЕД");
ТЗ.НоваяКолонка("Цена");
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Товар = Док.Товар;
ТЗ.Мол=Док.Товар.МОЛ;
ТЗ.КОЛ=Формат(Док.Количество,"Ч12.2");
ТЗ.АРТ=Док.Товар.Артикул;
ТЗ.КОД=Док.Товар.Код;
ТЗ.ЕД=Док.Единица;
ТЗ.Цена=Формат(Док.ЦенаСНДС,"Ч12.2");
КонецЦикла;
ТЗ.Сортировать("МОЛ");
ТЗ.ВыбратьСтроки();
МОЛ="""";
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Если ТЗ.МОЛ=МОЛ Тогда
Товар=ТЗ.Товар;
Код=Товар.Код;
Кол=ТЗ.КОЛ;
Арт=ТЗ.АРТ;
Код=ТЗ.Код;
Ед=ТЗ.ЕД;
Цена=ТЗ.Цена;
ИмяФайла=(Товар.Код);
ИмяКаталога = ("E:\1с\Склад\foto\small\");
Если ФС.СуществуетФайл(ИмяКаталога + ИмяФайла + ".jpg")=0 Тогда
Фото="""";
Иначе;
Фото="+";
КонецЕсли;
Таб.ВывестиСекцию("Строка");
Иначе
МОЛ=ТЗ.Товар.МОЛ;
Таб.ВывестиСекцию("МОЛ");
Товар=ТЗ.Товар;
Код=Товар.Код;
Кол=ТЗ.КОЛ;
Арт=ТЗ.АРТ;
Код=ТЗ.Код;
Ед=ТЗ.ЕД;
Цена=ТЗ.Цена;
ИмяФайла=(Товар.Код);
ИмяКаталога = ("E:\1с\Склад\foto\small\");
Если ФС.СуществуетФайл(ИмяКаталога + ИмяФайла + ".jpg")=0 Тогда
Фото="""";
Иначе;
Фото="+";
КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Защита(Константа.ФлагЗащитыТаблиц);
Таб.Опции(0,0,,);
Таб.Показать("ПЕЧАТЬ: Счёт входящий","""");
КонецПроцедуры
"
Таб = СоздатьОбъект("Таблица");
ВП = Валюта;
КурсПечати = Курс;
ДатаКурса = Дата_Курса;
Если ПустоеЗначение(Контрагент) = 0 Тогда
Если Контрагент.ВидКонтрагента <> Перечисление.ВидыКонтрагентов.Нерезидент Тогда
Если ТипУчета > 0 Тогда
ВП = Гривня;
КурсПечати = глКурсДляВалюты(ВП,ДатаДок);
ДатаКурса = ДатаДок;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ПечФорма = "СчётВходящийБезРеквизитов";
Язык = глЯзык(ПечФорма);
Таб.ИсходнаяТаблица(ПечФорма);
глУстПропись(Валюта,Язык);
Фирма.ИспользоватьДату(ДатаДок,1);
Таб.ВывестиСекцию("Шапка");
Док=ТекущийДокумент();
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Товар", "Справочник.Номенклатура");
ТЗ.НоваяКолонка("МОЛ", "Справочник.МОЛ");
ТЗ.НоваяКолонка("КОЛ");
ТЗ.НоваяКолонка("КОД");
ТЗ.НоваяКолонка("АРТ");
ТЗ.НоваяКолонка("ЕД");
ТЗ.НоваяКолонка("Цена");
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Товар = Док.Товар;
ТЗ.Мол=Док.Товар.МОЛ;
ТЗ.КОЛ=Формат(Док.Количество,"Ч12.2");
ТЗ.АРТ=Док.Товар.Артикул;
ТЗ.КОД=Док.Товар.Код;
ТЗ.ЕД=Док.Единица;
ТЗ.Цена=Формат(Док.ЦенаСНДС,"Ч12.2");
КонецЦикла;
ТЗ.Сортировать("МОЛ");
ТЗ.ВыбратьСтроки();
МОЛ="""";
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Если ТЗ.МОЛ=МОЛ Тогда
Товар=ТЗ.Товар;
Код=Товар.Код;
Кол=ТЗ.КОЛ;
Арт=ТЗ.АРТ;
Код=ТЗ.Код;
Ед=ТЗ.ЕД;
Цена=ТЗ.Цена;
ИмяФайла=(Товар.Код);
ИмяКаталога = ("E:\1с\Склад\foto\small\");
Если ФС.СуществуетФайл(ИмяКаталога + ИмяФайла + ".jpg")=0 Тогда
Фото="""";
Иначе;
Фото="+";
КонецЕсли;
Таб.ВывестиСекцию("Строка");
Иначе
МОЛ=ТЗ.Товар.МОЛ;
Таб.ВывестиСекцию("МОЛ");
Товар=ТЗ.Товар;
Код=Товар.Код;
Кол=ТЗ.КОЛ;
Арт=ТЗ.АРТ;
Код=ТЗ.Код;
Ед=ТЗ.ЕД;
Цена=ТЗ.Цена;
ИмяФайла=(Товар.Код);
ИмяКаталога = ("E:\1с\Склад\foto\small\");
Если ФС.СуществуетФайл(ИмяКаталога + ИмяФайла + ".jpg")=0 Тогда
Фото="""";
Иначе;
Фото="+";
КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Защита(Константа.ФлагЗащитыТаблиц);
Таб.Опции(0,0,,);
Таб.Показать("ПЕЧАТЬ: Счёт входящий","""");
КонецПроцедуры
"
01.07.2009
18:06
#9
"1. Док=ТекущийДокумент(); // - убрать
2.
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Товар = Док.Товар;
ТЗ.Мол=Док.Товар.МОЛ;
ТЗ.КОЛ=Формат(Док.Количество,"Ч12.2");
ТЗ.АРТ=Док.Товар.Артикул;
ТЗ.КОД=Док.Товар.Код;
ТЗ.ЕД=Док.Единица;
ТЗ.Цена=Формат(Док.ЦенаСНДС,"Ч12.2");
КонецЦикла;
поменять на
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Товар = Товар;
ТЗ.Мол=Товар.МОЛ;
ТЗ.КОЛ=Формат(Количество,"Ч12.2");
ТЗ.АРТ=Товар.Артикул;
ТЗ.КОД=Товар.Код;
ТЗ.ЕД=Единица;
ТЗ.Цена=Формат(ЦенаСНДС,"Ч12.2");
КонецЦикла;
3.
...
Если ТЗ.МОЛ=МОЛ Тогда
Товар=ТЗ.Товар;
Код=Товар.Код;
НЕ ИСПОЛЬЗОВАТЬ в качестве идентификаторов переменных идентификаторы реквизитов!! Что за "Товар" тут снова?"
2.
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Товар = Док.Товар;
ТЗ.Мол=Док.Товар.МОЛ;
ТЗ.КОЛ=Формат(Док.Количество,"Ч12.2");
ТЗ.АРТ=Док.Товар.Артикул;
ТЗ.КОД=Док.Товар.Код;
ТЗ.ЕД=Док.Единица;
ТЗ.Цена=Формат(Док.ЦенаСНДС,"Ч12.2");
КонецЦикла;
поменять на
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Товар = Товар;
ТЗ.Мол=Товар.МОЛ;
ТЗ.КОЛ=Формат(Количество,"Ч12.2");
ТЗ.АРТ=Товар.Артикул;
ТЗ.КОД=Товар.Код;
ТЗ.ЕД=Единица;
ТЗ.Цена=Формат(ЦенаСНДС,"Ч12.2");
КонецЦикла;
3.
...
Если ТЗ.МОЛ=МОЛ Тогда
Товар=ТЗ.Товар;
Код=Товар.Код;
НЕ ИСПОЛЬЗОВАТЬ в качестве идентификаторов переменных идентификаторы реквизитов!! Что за "Товар" тут снова?"
- 1
- 2
Почему при обновлении не дает обновлять отдельные докумменты? 1C7.7 Sql Бухучет4.5 507Проблема с количеством пользователей
Читают тему
(гостей: 1)