Имя: Пароль:
1C
 
Печатная форма документа
0 Marry04
 
11.07.16
06:42
как  вывести в ТЧ печатной формы документа значение поля "Ячейка" по возрастанию кода ячейки. Все строчки печатаются в перемешку, а хочется по возрастаниюю.
код ячейки выглядит след.образом: 01 23 45 76
Спасибо заранее!
1 Marry04
 
11.07.16
06:43
через раз печатаются по возрастанию
2 Это_mike
 
11.07.16
06:47
Отсортировать перед выводом
3 Marry04
 
11.07.16
07:14
(2) перед печатью в документе?
так все равно в печатной форме они как попало выдаются
4 assasu
 
11.07.16
07:19
(3) понедельник, надо быть уже трезвой
5 DrZombi
 
гуру
11.07.16
07:21
(3) Перед печатью В Запросе.
6 Marry04
 
11.07.16
10:27
(5) сделала в запросе ,во время печати , УПОРЯДОЧИТЬ ПО   ВнЗп.Ячейка ВОЗР " , но не помогло
7 _stay true_
 
11.07.16
10:33
(6) Тогда смотри сам цикл, в котором заполняется и выводится область печати. При необходимости можно попробовать перегнать результат запроса в таблицу значений и отсортировать программно перед выводом области строки.
8 Никулин Леонид
 
11.07.16
10:40
Тебе надо отсортировать свой РезультатЗапроса, а уже после выводить в ТабличныйДокумент
9 Mankubus
 
11.07.16
10:42
(6) код показывай, не стесняйся
10 Marry04
 
11.07.16
11:03
(9) // Процедура выводит печатную форму документа "Отбор"
//
// Параметры:
//  текИсполнитель - текущий исполнитель.
//
Процедура ПечатьДокумента(Статус = Неопределено, текИсполнитель="") Экспорт
    
    Если Статус = Неопределено Тогда
        Метка = "";
    Иначе
        Метка  = ?(Статус = Перечисления.усСтатусыДокументов.Создано, "", "Дубликат");
    КонецЕсли;
    
    дрзСтроки = Новый ДеревоЗначений;
    СтрокиДокументаПолучить("усСтрокиОтбора", Ссылка, дрзСтроки, Истина);
    
    текТД = Новый ТабличныйДокумент;
    текТД.ИмяПараметровПечати = "Документ_Отбор_Отбор";
    текШаблон        = ПолучитьМакет("МакетОтбор");
    текШапка        = текШаблон.ПолучитьОбласть("Шапка");
    текПодвал        = текШаблон.ПолучитьОбласть("Подвал");
    
    тбзЗаказы = Новый ТаблицаЗначений;
    тбзЗаказы.Колонки.Добавить("ЗаказНаОтгрузку");
    тбзКонтрагенты = Новый ТаблицаЗначений;
    тбзКонтрагенты.Колонки.Добавить("Контрагент");
    Для каждого текПакет из дрзСтроки.Строки цикл
        Для каждого текСтрока из текПакет.Строки цикл
            текСтрокаЗаказ = тбзЗаказы.Добавить();
            текСтрокаЗаказ.ЗаказНаОтгрузку = текСтрока.ЗаказНаОтгрузку;
            текСтрокаКонтрагент = тбзКонтрагенты.Добавить();
            текСтрокаКонтрагент.Контрагент = текСтрока.ЗаказНаОтгрузку.Контрагент;
        КонецЦикла;    
    КонецЦикла;    
    тбзЗаказы.Свернуть("ЗаказНаОтгрузку");
    текНомера = "";
    текНомераНомерСтроки = 0;
    Для Каждого текСтрока Из тбзЗаказы Цикл
        текНомераНомерСтроки = текНомераНомерСтроки + 1;
        текНомера = текНомера + " № " + текСтрока.ЗаказНаОтгрузку.НомерЗаявкиКИС + " от " + Формат(текСтрока.ЗаказНаОтгрузку.ДатаЗаявкиКИС, "ДЛФ = Д")
                              + ?(текНомераНомерСтроки = тбзЗаказы.Количество(), "", ", " + Символы.ПС);
    КонецЦикла;

    тбзКонтрагенты.Свернуть("Контрагент");
    текКонтрагенты = "";
    текКонтрагентыНомерСтроки = 0;
    Для Каждого текКонтрагент Из тбзКонтрагенты Цикл
        текКонтрагентыНомерСтроки = текКонтрагентыНомерСтроки + 1;
        текКонтрагенты = текКонтрагенты + текКонтрагент.Контрагент  + ?(текКонтрагентыНомерСтроки = тбзКонтрагенты.Количество(), "", ", " + Символы.ПС);
    КонецЦикла;
    
    текШапка.Параметры.Номер    = Номер;
    текШапка.Параметры.Дата        = Дата;
    текШапка.Параметры.Склад    = Склад;
    //текШапка.Параметры.Оператор = Автор;
    текШапка.Параметры.Заявка = текНомера;
    текШапка.Параметры.Контрагент = текКонтрагенты;
    //печать штрих-кода
    Попытка
        КомпонентШК = Новый COMОбъект("V8.Barcod.1");
        текШапка.Области["Barcode1C"].Объект.ТипКода     = 4;
        ШтрихКод = ОбъектПолучитьШтрихКод(ЭтотОбъект);
        текШапка.Области["Barcode1C"].Объект.Сообщение     = СтрЗаменить(ШтрихКод, символы.НПП, "");
    Исключение
        Сообщить("Компонента 1С:Печать штрихкодов не установлена на данном компьютере!", СтатусСообщения.Важное);
        текШапка.Области["Barcode1C"].ВыводитьНаПечать = Ложь;
    КонецПопытки;
    
    текТД.Вывести(текШапка);
    
    
    //++AXELOT Линева 22.04.2014 инц. 13740
    //НаименованиеВыведено = Ложь;
    //Для каждого текПакет из дрзСтроки.Строки цикл
    //    Для каждого текСтрока из текПакет.Строки цикл
    //        Если текСтрока.ТипОперации = Перечисления.усТипыОпераций.Взять тогда
    //            СтрокаМакета    = текШаблон.ПолучитьОбласть("Строка");
    //            СтрокаМакета.Параметры.Заполнить(текСтрока);
    //            текТД.Вывести(СтрокаМакета);
    //        КонецЕсли;
    //    КонецЦикла;
    //КонецЦикла;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВнЗп.Ячейка,
    |    ВнЗп.Номенклатура,
    |    ВнЗп.ТранспортнаяЕдиница,
    |    ВнЗп.ЕдиницаХранения,
    |    ВнЗп.Количество,
    |    МАКСИМУМ(ВнЗп.ШтрихКод) КАК ШтрихКод,
    |    ВнЗп.СерийныйНомер
    |ИЗ
    |    (ВЫБРАТЬ
    |        усСтрокиОтбора.Ячейка КАК Ячейка,
    |        усСтрокиОтбора.Номенклатура КАК Номенклатура,
    |        усСтрокиОтбора.ТранспортнаяЕдиница КАК ТранспортнаяЕдиница,
    |        усСтрокиОтбора.ЕдиницаХранения КАК ЕдиницаХранения,
    |        СУММА(усСтрокиОтбора.Количество) КАК Количество,
    |        усШтрихКодыТоваров.ШтрихКод КАК ШтрихКод,
    |        усСтрокиОтбора.СерийныйНомер КАК СерийныйНомер
    |    ИЗ
    |        РегистрСведений.усСтрокиОтбора КАК усСтрокиОтбора
    |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.усШтрихКодыТоваров КАК усШтрихКодыТоваров
    |            ПО усСтрокиОтбора.Номенклатура = усШтрихКодыТоваров.Номенклатура
    |                И усСтрокиОтбора.ЕдиницаХранения = усШтрихКодыТоваров.ЕдиницаХранения
    |    ГДЕ
    |        усСтрокиОтбора.Владелец = &Владелец
    |        И усСтрокиОтбора.СтатусОтменено = ДАТАВРЕМЯ(1, 1, 1)
    |        И усСтрокиОтбора.ТипОперации = ЗНАЧЕНИЕ(Перечисление.усТипыОпераций.Взять)
    |    
    |    СГРУППИРОВАТЬ ПО
    |        усСтрокиОтбора.Ячейка,
    |        усСтрокиОтбора.ТранспортнаяЕдиница,
    |        усСтрокиОтбора.Номенклатура,
    |        усСтрокиОтбора.ЕдиницаХранения,
    |        усСтрокиОтбора.СерийныйНомер,
    |        усШтрихКодыТоваров.ШтрихКод) КАК ВнЗп
    |  
    |СГРУППИРОВАТЬ ПО
    |    ВнЗп.Ячейка,
    |    ВнЗп.Номенклатура,
    |    ВнЗп.ТранспортнаяЕдиница,
    |    ВнЗп.ЕдиницаХранения,
    |    ВнЗп.СерийныйНомер,
    |    ВнЗп.Количество
    |  УПОРЯДОЧИТЬ ПО   ВнЗп.Ячейка ВОЗР ";
    Запрос.УстановитьПараметр("Владелец", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    сч = 1;
    Пока Выборка.Следующий() цикл
         СтрокаМакета    = текШаблон.ПолучитьОбласть("Строка");
          СтрокаМакета.Параметры.Заполнить(Выборка);
//         СтрокаМакета.Параметры.Артикул = Выборка.Номенклатура.Артикул;
         Попытка
             КомпонентШК = Новый COMОбъект("V8.Barcod.1");
             СтрокаМакета.Области["Barcode"].Объект.ТипКода   = 4;
             СтрокаМакета.Области["Barcode"].Объект.Сообщение = СтрЗаменить(Выборка.ШтрихКод, символы.НПП, "");
         Исключение
             Сообщить("Компонента 1С:Печать штрихкодов не установлена на данном компьютере!", СтатусСообщения.Важное);
             текШапка.Области["Barcode"].ВыводитьНаПечать = Ложь;
         КонецПопытки;
         СтрокаМакета.Параметры.СтрокаНомер = сч;
         сч = сч + 1;
         текТД.Вывести(СтрокаМакета);
    КонецЦикла;        
    //--AXELOT Линева 22.04.2014 инц. 13740
    
    текПодвал.Параметры.Исполнитель = текИсполнитель;
    текТД.Вывести(текПодвал);
    
    текТД.ТолькоПросмотр        = Истина;
    текТД.ОтображатьСетку        = Ложь;
    текТД.ОтображатьЗаголовки    = Ложь;
    текТД.ВерхнийКолонтитул.Выводить     = Истина;
    текТД.ВерхнийКолонтитул.ТекстВЦентре = Метка;
    текТД.ВерхнийКолонтитул.Шрифт        = Новый Шрифт(текТД.ВерхнийКолонтитул.Шрифт,,14,Истина);
    
    текТД.НижнийКолонтитул.Выводить        =    Истина;
    текТД.НижнийКолонтитул.ТекстВЦентре = "Страница [&НомерСтраницы] из [&СтраницВсего]";
    текТД.Показать(Метаданные().Синоним);
11 Mankubus
 
11.07.16
11:13
(10) Еще покажи картинку как сейчас выводится
12 _stay true_
 
11.07.16
11:29
(10) Выгрузи результат запроса в ТЗ (Выборка = Запрос.Выполнить().Выгрузить() и посмотри, что там.
Запрос вроде не кривой,должно сортироваться корректно. Ещё да, скрин как выводится в студию.
13 Marry04
 
11.07.16
12:08
(11) (12)
https://drive.google.com/drive/my-drive
Ячейка- код, состоящий из набора цифр. нужно сделать сортировку по двум первым
14 Marry04
 
11.07.16
12:09
15 _stay true_
 
11.07.16
12:47
(13) (14)
Так выгрузи результат запроса в ТЗ, добавь колонку, заполни её первыми двумя символами кода(без пробелов) и отсортируй программно встроенным методом. Должно сработать.
16 Marry04
 
14.07.16
10:18
(15) а просто в запросе ссылаться на значение ячейки и отсортировать не получится?
17 Marry04
 
14.07.16
10:41
ВЫБРАТЬ
    ВнЗп.Ячейка,
    ВнЗп.Номенклатура,
    ВнЗп.ТранспортнаяЕдиница,
    ВнЗп.ЕдиницаХранения,
    ВнЗп.Количество,
    МАКСИМУМ(ВнЗп.ШтрихКод) КАК ШтрихКод,
    ВнЗп.СерийныйНомер
ИЗ
    (ВЫБРАТЬ
        усСтрокиОтбора.Ячейка КАК Ячейка,
        усСтрокиОтбора.Номенклатура КАК Номенклатура,
        усСтрокиОтбора.ТранспортнаяЕдиница КАК ТранспортнаяЕдиница,
        усСтрокиОтбора.ЕдиницаХранения КАК ЕдиницаХранения,
        СУММА(усСтрокиОтбора.Количество) КАК Количество,
        усШтрихКодыТоваров.ШтрихКод КАК ШтрихКод,
        усСтрокиОтбора.СерийныйНомер КАК СерийныйНомер
    ИЗ
        РегистрСведений.усСтрокиОтбора КАК усСтрокиОтбора
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.усШтрихКодыТоваров КАК усШтрихКодыТоваров
            ПО усСтрокиОтбора.Номенклатура = усШтрихКодыТоваров.Номенклатура
                И усСтрокиОтбора.ЕдиницаХранения = усШтрихКодыТоваров.ЕдиницаХранения
    ГДЕ
        усСтрокиОтбора.Владелец = &Владелец
        И усСтрокиОтбора.СтатусОтменено = ДАТАВРЕМЯ(1, 1, 1)
        И усСтрокиОтбора.ТипОперации = ЗНАЧЕНИЕ(Перечисление.усТипыОпераций.Взять)
    
    СГРУППИРОВАТЬ ПО
        усСтрокиОтбора.Ячейка,
        усСтрокиОтбора.ТранспортнаяЕдиница,
        усСтрокиОтбора.Номенклатура,
        усСтрокиОтбора.ЕдиницаХранения,
        усСтрокиОтбора.СерийныйНомер,
        усШтрихКодыТоваров.ШтрихКод) КАК ВнЗп

СГРУППИРОВАТЬ ПО
    ВнЗп.Ячейка,
    ВнЗп.Номенклатура,
    ВнЗп.ТранспортнаяЕдиница,
    ВнЗп.ЕдиницаХранения,
    ВнЗп.СерийныйНомер,
    ВнЗп.Количество
УПОРЯДОЧИТЬ ПО
    ВнЗп.Ячейка = значение (ВнЗп.Ячейка) ВОЗР

КАК-ТО ТАК ХОТЕЛА..
18 dimaldinho
 
14.07.16
11:11
(14) You need permission

Want in? Ask the owner for access, or switch to an account with permission
19 Ёпрст
 
14.07.16
11:17
Это че ?

УПОРЯДОЧИТЬ ПО
    ВнЗп.Ячейка = значение (ВнЗп.Ячейка) ВОЗР
20 Ёпрст
 
14.07.16
11:20
Ячейка - какой тип ?
21 Marry04
 
14.07.16
11:20
(19) я пыталась как-то отсортировать по возрастанию значения в ячейках..
22 Ёпрст
 
14.07.16
11:20
+То что в 19 выкинь и не позорься
23 Marry04
 
14.07.16
11:21
Сделала так..но ошибку выдает

УПОРЯДОЧИТЬ ПО
    ВнЗп.Ячейка = значение (СправочникСсылка.усЯчейки.Ссылка) ВОЗР
24 Marry04
 
14.07.16
11:21
(20) СправочникСсылка.усЯчейки
25 Mankubus
 
14.07.16
11:23
(24) Какой смысл по ссылке сортировать?
26 Mankubus
 
14.07.16
11:23
(24) как определить какая ссылка больше, а какая меньше?
27 Ёпрст
 
14.07.16
11:24
ну так, что ле пробуй

УПОРЯДОЧИТЬ ПО  ВнЗп.Ячейка.Код Возр
28 Marry04
 
14.07.16
11:26
(27) да, точно. спасибо огромное. с типами все путаюсь..