Имя: Пароль:
1C
1С v8
Сортировка в табличной части при печати Документа ЗаказПокупателя
,
0 Ly_Alena
 
22.10.14
08:41
ВЫБРАТЬ
                  |    ЗаказПокупателя.Ссылка,
                  |    ЗаказПокупателя.Дата,
                  |    ЗаказПокупателя.Контрагент,
                  |    ЗаказПокупателя.Ответственный,
                  |    ЗаказПокупателя.Комментарий,
                  |    ЗаказПокупателя.ПроцентНакладные,
                  |    ЗаказПокупателя.Номер КАК Номер,
                  |    ЗаказПокупателя.ДопРасходыОтСуммыБезНДС,
                  |    ЗаказПокупателя.УсловияОплаты,
                  |    ЗаказПокупателя.МестоИСрокПоставки,
                  |    ЗаказПокупателя.Товары.(
                  |        НомерСтроки КАК НомерСтроки,
                  |        Номенклатура КАК Номенклатура
                  |    )
                  |ИЗ
                  |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
                  |ГДЕ
                  |    ЗаказПокупателя.Ссылка = &ТекущийДокумент
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    НомерСтроки";

В печатную форму выдается в алфавитном порядке, а нужно чтобы точно так же как в документе.
1 Рэйв
 
22.10.14
08:41
значит позже гдето сортирруется.Как вариант - после выгрузки в ТЗ.
2 Ly_Alena
 
22.10.14
08:46
(1) Да точно - нашла! Спасибо!
3 НафНаф
 
22.10.14
08:52
(0) не пиши запросов с вложенными таблицами
4 Ly_Alena
 
22.10.14
09:09
(3) Почему?
Писала не я. Я вношу изменения в рабочую базу, поэтому ничего лишнего не трогаю.
5 Ly_Alena
 
24.10.14
12:50
Добрый день, у меня такой вопрос: При печати выходят поля с одинаковым текстом, например номер лота, как мне объеденить чтобы не было много строк с №1 например, а было было одна строка №1, а в ней все строки? Не знаю на сколько понятно объяснила... Текст такой:

Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
    Запрос.УстановитьПараметр("НомерЛота",НомерЛота);
    Запрос.Текст ="ВЫБРАТЬ
                  |    ЗаказПокупателяТовары.ЗапрашиваемоеНаименование,
                  |    ЗаказПокупателяТовары.Номенклатура,
                  |    ЗаказПокупателяТовары.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдИзм,
                  |    СУММА(ЗаказПокупателяТовары.Количество) КАК Количество,
                  |    СРЕДНЕЕ(ЗаказПокупателяТовары.ПлановаяСебестоимость) КАК ПлановаяСебестоимость,
                  |    СРЕДНЕЕ(ЗаказПокупателяТовары.ЦенаБезНДС) КАК ЦенаБезНДС,
                  |    СУММА(ЗаказПокупателяТовары.СуммаБезНДС) КАК СуммаБезНДС,
                  |    СРЕДНЕЕ(ЗаказПокупателяТовары.Цена) КАК Цена,
                  |    СУММА(ЗаказПокупателяТовары.Сумма) КАК Сумма,
                  |    СУММА(ЗаказПокупателяТовары.Транспортные) КАК Транспортные,
                  |    СУММА(ЗаказПокупателяТовары.Накладные) КАК Накладные,
                  |    СУММА(ЗаказПокупателяТовары.УслПостоянные) КАК УслПостоянные,
                  |    СУММА(ЗаказПокупателяТовары.Прибыль) КАК Прибыль,
                  |    СРЕДНЕЕ(ЗаказПокупателяТовары.Рентабельность) КАК Рентабельность,
                  |    ЗаказПокупателяТовары.НовоеНаименование,
                  |    СУММА(ЗаказПокупателяТовары.СуммаПлановойСебестоимости) КАК СуммаСебестоимости,
                  |    ЗаказПокупателяТовары.НомерЛота КАК НомерЛота,
                  |    ЗаказПокупателяТовары.КоличествоВПроизводство
                  |ИЗ
                  |    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
                  |ГДЕ
                  |    ЗаказПокупателяТовары.Ссылка = &ТекущийДокумент
                  |    И ЗаказПокупателяТовары.НомерЛота = &НомерЛота
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ЗаказПокупателяТовары.ЗапрашиваемоеНаименование,
                  |    ЗаказПокупателяТовары.Номенклатура,
                  |    ЗаказПокупателяТовары.НовоеНаименование,
                  |    ЗаказПокупателяТовары.Номенклатура.БазоваяЕдиницаИзмерения,
                  |    ЗаказПокупателяТовары.НомерЛота,
                  |    ЗаказПокупателяТовары.КоличествоВПроизводство
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    НомерЛота";

    РезультатЗапросаТовары = Запрос.Выполнить();
        
    Если НЕ РезультатЗапросаТовары.Пустой() Тогда
    
        Индекс = 0;
        Область = Макет.ПолучитьОбласть("Товары");
        Обход = РезультатЗапросаТовары.Выбрать();
        ОбходТовары = РезультатЗапросаТовары.Выбрать();
        Пока Обход.Следующий() Цикл
        
            Если Обход.Количество = 0 Тогда
                Продолжить;
            КонецЕсли;
                
            Если Не ЗначениеЗаполнено(Обход.Номенклатура) Тогда
                Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
                Продолжить;
            КонецЕсли;
                
                
            Индекс = Индекс + 1;
            Область.Параметры.НомерСтроки = Индекс;
            
            Область.Параметры.НомерЛота = Обход.НомерЛота;
            Область.Параметры.ЗапрашиваемоеНаименование = Обход.ЗапрашиваемоеНаименование;
            Если ЗначениеЗаполнено(Обход.НовоеНаименование) Тогда
            Область.Параметры.НовоеНаименование = Обход.НовоеНаименование;
            Иначе Область.Параметры.НовоеНаименование = Обход.Номенклатура;
            КонецЕсли;
            Область.Параметры.Номенклатура = Обход.Номенклатура;
            Область.Параметры.ЕдИзм = Обход.ЕдИзм;
            Область.Параметры.Количество = Обход.Количество;
            Область.Параметры.Себестоимость = Обход.ПлановаяСебестоимость;
            Область.Параметры.СуммаСебестоимости = Обход.СуммаСебестоимости;
            Область.Параметры.ЦенаБезНДС = Обход.ЦенаБезНДС;
            Область.Параметры.СуммаБезНДС = Обход.СуммаБезНДС;
            Область.Параметры.Цена = Обход.Цена;
            Область.Параметры.Сумма = Обход.Сумма;
            Область.Параметры.Транспортные = Обход.Транспортные;
            Область.Параметры.Накладные = Обход.Накладные;
            Область.Параметры.УслПостоянные = Обход.УслПостоянные;
            Область.Параметры.Прибыль = Обход.Прибыль;
            Область.Параметры.Рентабельность = Обход.Рентабельность;
            
            ТабДокумент.Вывести(Область);
            
        КонецЦикла;
    КонецЕсли;
6 Михаил Козлов
 
24.10.14
13:37
Не заполняйте область с номером лота, если он совпадает с предыдущим. Можно еще объединять ячейки.
7 Ly_Alena
 
24.10.14
13:59
(6) Мне нужно объединить ячейки - как это сделать?
8 mzelensky
 
24.10.14
14:03
(7) Мне кажется тебе просто нужна группировка :)
9 mzelensky
 
24.10.14
14:04
Ну и традиционны здесь совет - может все-таки лучше позвать программиста?
10 Михаил Козлов
 
24.10.14
14:06
(7) ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
Объединить (Merge)
Синтаксис:
Объединить()
Описание:
Объединяет ячейки области.
Пример:
Область = ТабДок.Область(2,2,3,3);
Область.Объединить();
См. также:
ОбластьЯчеекТабличногоДокумента, метод Разъединить
11 Chameleon1980
 
24.10.14
14:09
(9) ну человек сам, наверное, хочет осилить.
12 Ly_Alena
 
24.10.14
14:15
(8) Группировка итак есть. (9) Давайте позовем вместе! :Р
13 Ly_Alena
 
24.10.14
14:19
(10) Объединить подходит, если я знаю какие поля объединять, а я не знаю что,сколько и как будет вводить пользователь.
14 Михаил Козлов
 
24.10.14
14:23
(13) Как же не знаете: начало области - когда первый раз в выборке появился номер лота. Конец - когда последний.
15 mzelensky
 
24.10.14
14:35
(12) Где у вас в (5) Группировка? Покажите плиз!
16 Ly_Alena
 
24.10.14
14:43
(15)      |СГРУППИРОВАТЬ ПО
                  |    ЗаказПокупателяТовары.ЗапрашиваемоеНаименование,
                  |    ЗаказПокупателяТовары.Номенклатура,
                  |    ЗаказПокупателяТовары.НовоеНаименование,
                  |    ЗаказПокупателяТовары.Номенклатура.БазоваяЕдиницаИзмерения,
                  |    ЗаказПокупателяТовары.НомерЛота,
                  |    ЗаказПокупателяТовары.КоличествоВПроизводство
17 Ly_Alena
 
24.10.14
14:50
Все равно не понимаю как у себя использовать ОБЪЕДИНИТЬ
18 Ly_Alena
 
24.10.14
14:54
(10) Разве это не объединить запросы?
19 mzelensky
 
24.10.14
15:01
(16) Мда, печалька :( может все-таки позвать программиста?

Вообще я говорил про итоги в запросе, соответствующую выборку данных запроса и группировку области табличного документа.
20 mzelensky
 
24.10.14
15:03
(17)(18) "... Извините, Леночка, а у Вас есть WI-FI ?"

"Я вношу изменения в рабочую базу, поэтому ничего лишнего не трогаю." - закройте рабочую базу и отойдите от нее подальше.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс