При формировании отчета необходимо,чтобы контрагенты выводились в алфавитном порядке, но почему то не выводятся, что может быт не так,подскажите:
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Заголовок");
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|ОбрабатыватьДокументы Проведенные;
|Док = Документ.ПриходнаяНакладнаяГТД.ТекущийДокумент, Документ.ПриходнаяНакладнаяЗапасы.ТекущийДокумент, Документ.ПриходнаяНакладнаяПрочие.ТекущийДокумент, Документ.УслугиСтороннихОрганизаций.ТекущийДокумент;
|Группировка Док;";
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Табл = СоздатьОбъект("ТаблицаЗначений");
Табл.НоваяКолонка("Контрагент");
Док = "";
Пока Запрос.Группировка(1) = 1 Цикл
Док = Запрос.Док;
Если (Док.Вид() = "УслугиСтороннихОрганизаций") ИЛИ
(Док.Вид() = "ПриходнаяНакладнаяЗапасы") ИЛИ
(Док.Вид() = "ПриходнаяНакладнаяПрочие") ИЛИ
(Док.Вид() = "ПриходнаяНакладнаяГТД") Тогда
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
Если ПустоеЗначение(Док.Контрагент) = 1 Тогда
Продолжить;
КонецЕсли;
Табл.НоваяСтрока();
Табл.Контрагент = Док.Контрагент;
Табл.Свернуть("Контрагент", "Контрагент");
Если ПустоеЗначение(Табл.Контрагент) = 1 Тогда
Продолжить;
КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецЕсли;
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
1. Нельзя ли еще в Запросе добавить поле Контрагент и сортировать по нему (Контрагент.Наименование)
2. МожеТЕ результаті Запроса вігрузить В ТЗ, добавить поле котрагент уже туда, отсортировать по колонке ТЗ
и віводить в цикле последовательно
i | У нас принято на Вы |
вот эта фраза лишняя
Если (Док.Вид() = "УслугиСтороннихОрганизаций") ИЛИ
(Док.Вид() = "ПриходнаяНакладнаяЗапасы") ИЛИ
(Док.Вид() = "ПриходнаяНакладнаяПрочие") ИЛИ
(Док.Вид() = "ПриходнаяНакладнаяГТД") Тогда
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|ОбрабатыватьДокументы Проведенные;
|Док = Документ.ПриходнаяНакладнаяГТД.ТекущийДокумент, Документ.ПриходнаяНакладнаяЗапасы.ТекущийДокумент, Документ.ПриходнаяНакладнаяПрочие.ТекущийДокумент, Документ.УслугиСтороннихОрганизаций.ТекущийДокумент;
|Контрагент= Документ.ПриходнаяНакладнаяГТД.Контрагент, Документ.ПриходнаяНакладнаяЗапасы.Контрагент, Документ.ПриходнаяНакладнаяПрочие.Контрагент, Документ.УслугиСтороннихОрганизаций.Контрагент;
|Группировка Контрагент упорядочить по ТМЦ.Наименование без групп;
|Группировка Док;";
Пока Запрос.Группировка(1) = 1 Цикл
Контрагент = Запрос.Контрагент;
Если ПустоеЗначение(Контрагент) = 1 Тогда
Продолжить;
КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Пока Запрос.Группировка(1) = 1 Цикл
Контрагент = Запрос.Контрагент;
Если ПустоеЗначение(Контрагент) = 1 Тогда
Продолжить;
КонецЕсли;
Пока Запрос.Группировка(2) = 1 Цикл
Док = Запрос.Док;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецЦикла;
спасибо nysysimara, все получилось, только вот как без ТЗ заменить все повторяющиеся контрагенты на одну строку? или только с помощью ТаблицыЗначений?
уже сообразила, не грпуппировать по Группировка(2)
Здравствуйте, мне нужна помощь!!!
может кто то подсказать, как сделать в отчете, чтоб продукцию сортировало в алфавитном порядке.
За раннЕе спасибо
! | Правила, п.2 |
опечатка, тут
|Группировка Контрагент упорядочить по ТМЦ.Наименование без групп;
|Группировка Контрагент упорядочить по Контрагент.Наименование без групп;
Якщо я зроблю так
|Группировка ТМЦ упорядочить по ТМЦ.Наименование без групп все ВошедшиеВЗапрос;
покажіть код в новій темі, так як тут щось про ТМЦ не згадувалось - отже, у вас інший звіт ніж тут
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua