8.х Печать по алфавиту

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Mr.Smoke27, 9 апр 2012.

  1. TopicStarter Overlay
    Mr.Smoke27
    Offline

    Mr.Smoke27 Опытный в 1С

    Регистрация:
    22 сен 2010
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    1С 8.2 (8.2.13.205)
    УТ 10.3 (10.3.15.9)

    1) Мне необходимо сделать печать по алфавиту в след. документах:
    - Списание;
    - Оприходование;
    - Отчет о розничных продажах;

    Просто в обычных формах, не по розничным ценам, я нашел запрос и сделал упорядочивание,
    а вот запрос который формирует по розничным ценам "приход или расход с розничных складов",
    никак не могу найти.

    2) Я не совсем уверен, что правильно, то что от меня хотят, но все же
    В Перемещении товаров, в печатной форме "ТОРГ-13", если склад оптовый и по закупочным ценам учет,
    то он и в перемещении указывает закупочные цены, но хотят чтобы выводил розничные, хотя даже переоценок нет по розничным ценам.
    Стоит ли менять алгоритм и выводить цены по складу получателя в розничных ценах и если да, то как сделать самым безболезненным способом?
  2. sagitt
    Offline

    sagitt Опытный в 1С

    Регистрация:
    13 сен 2008
    Сообщения:
    115
    Симпатии:
    0
    Баллы:
    26
    Для документов я бы сделал внешние печатные формы(чтобы не ломать встроенные).
    Для начала выгрузил бы соотв табличную часть документа в таблицу значений, затем добавил бы туда колонку "розничнаяЦена", заполнил бы ее, отсортировал по номенклатуре, дальнейший вывод формы - дело техники.
  3. Nikoloz
    Offline

    Nikoloz Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    Доброе утро! Что нужно прописать чтоб в модуле чтоб печаталось номенклатура в алфавитном порядке?
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Сортировку по наименованию. Либо в табличной части документа сортируете, либо лезете в код, смотрите где у вас выполняется выборка из табличной части, сортируете ее, и выводите в макет.
  5. Nikoloz
    Offline

    Nikoloz Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26

    ОбластьСтрока.Параметры.ТоварНаименование = спПолучитьНаименование(СтрокаТовар.Номенклатура);

    Что тут можно дописать?
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Ничего. В этом коде заполняется параметр ТоварНаименование области ОбластьСтрока.
  7. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    не тут..а в запросе (которым выбирается табличная часть)
  8. Nikoloz
    Offline

    Nikoloz Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    Функция Печать (ДокументОбъект,ТабДокумент) Экспорт

    // Зададим параметры макета
    ТабДокумент.ПолеСверху = 0;
    ТабДокумент.ПолеСлева = 15;
    ТабДокумент.ПолеСнизу = 0;
    ТабДокумент.ПолеСправа = 0;
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;


    Макет = ПолучитьМакет("ИНВ19");

    // Выводим шапку накладной
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ОбластьМакета.Параметры.Заполнить(ДокументОбъект);
    ОбластьМакета.Параметры.ПредставлениеОрганизации = спПолучитьПредставление(ДокументОбъект.Организация);
    ОбластьМакета.Параметры.Организация = ДокументОбъект.Организация;

    ОбластьМакета.Параметры.ДатаНачалаИнвентаризации = ДокументОбъект.Дата;
    ОбластьМакета.Параметры.ОрганизацияПоОКПО = ДокументОбъект.Организация.КодПоОКПО;
    ОбластьМакета.Параметры.ВидДеятельностиПоОКДП = ДокументОбъект.Организация.КодПоОКДП;

    // Материально ответственное лицо
    Если НЕ ДокументОбъект.СкладКомпании.Пустая() Тогда
    ОбластьМакета.Параметры.ДолжностьМОЛ1 = ДокументОбъект.СкладКомпании.МОЛ.Должность;
    ОбластьМакета.Параметры.ФИОМОЛ1 = ДокументОбъект.СкладКомпании.МОЛ;
    КонецЕсли;

    ТабДокумент.Вывести(ОбластьМакета);
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();

    СтрокНаСтранице = 340;
    СтрокШапки = 5;
    СтрокПодвала = 5;
    НомерСтраницы = 1;
    ПереноситьПоследнююСтроку = 0;
    // Выводим заголовок таблицы
    ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
    //ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
    ТабДокумент.Вывести(ЗаголовокТаблицы);

    КоличествоСтрок = 0;
    Если КоличествоСтрок = 1 Тогда
    ПереноситьПоследнююСтроку = 0;
    Иначе
    ЦелыхСтраницСПодвалом = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице);
    ЦелыхСтраницБезПодвала = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице);
    ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала;
    КонецЕсли;


    НомерСтраницыПред = НомерСтраницы;

    СтруктураИтоговПоСтранице = Новый Структура("ИтогоРезультатИзлишекКолво,
    | ИтогоРезультатИзлишекСумма,ИтогоРезультатНедостачаКолво,ИтогоРезультатНедостачаСумма",0,0,0,0,"ИтогоСписаниеНедостачКолонка1Колво,ИтогоСписаниеНедостачКолонка1Сумма,
    | ИтогоПриходИзлишковКолво, ИтогоПриходИзлишковСумма");

    ИтогоРезультатИзлишекКолво = 0;
    ИтогоРезультатИзлишекСумма = 0;
    ИтогоРезультатНедостачаКолво = 0;
    ИтогоРезультатНедостачаСумма = 0;
    ИтогоСписаниеНедостачКолонка1Колво = 0;
    ИтогоСписаниеНедостачКолонка1Сумма = 0;
    ИтогоПриходИзлишковКолво = 0;
    ИтогоПриходИзлишковСумма = 0;

    // инициализация итогов по странице
    ИтогоПоСтраницеРезультатИзлишекКолво = 0;
    ИтогоПоСтраницеРезультатИзлишекСумма = 0;
    ИтогоПоСтраницеРезультатНедостачаКолво = 0;
    ИтогоПоСтраницеРезультатНедостачаСумма = 0;

    Ном = 0;


    Если ДокументОбъект.ХозОперация = Справочники.ХозОперации.ИнвентаризацияТоваров Тогда
    ВыборкаСтрокТовары = РегистрыНакопления.ПартииТоваровКомпании.СоздатьНаборЗаписей();
    ПростоеСписание = ИСТИНА;
    ИначеЕсли ДокументОбъект.ХозОперация = Справочники.ХозОперации.ИнвентаризацияТоваровОтданныхНаКомиссию Тогда
    ВыборкаСтрокТовары = РегистрыНакопления.ПартииТоваровОтданные.СоздатьНаборЗаписей();
    ПростоеСписание = ЛОЖЬ;
    Иначе
    Сообщить("Для хоз операции "+ДокументОбъект.ХозОперация.Наименование+" формирование ИНВ-19 не описано!");
    Возврат Неопределено;
    КонецЕсли;
    ВыборкаСтрокТовары.Отбор.Регистратор.Значение = ДокументОбъект.Ссылка;
    ВыборкаСтрокТовары.Прочитать();

    //определимся откуда будем брать многострочную часть документа
    //если движения есть, то из регистра иначе из табличной части документа
    ЕстьДвиженияПоРегистру = Ложь;
    Если ВыборкаСтрокТовары.Количество() > 0 Тогда
    ЕстьДвиженияПоРегистру = Истина;
    Иначе
    ВыборкаСтрокТовары = ДокументОбъект.Товары;
    КонецЕсли;


    // Определим, что показывать в колонке кода - код или артикул
    ИмяКодаСправочника = Строка(обПраво("РежимВыводаКодаВДокументах",Права));
    Если НЕ ДокументОбъект.СкладКомпании.Розничный Тогда
    Запрос=Новый Запрос("ВЫБРАТЬ
    | ПартииТоваровКомпании.СкладКомпании КАК СкладКомпании,
    | ПартииТоваровКомпании.Номенклатура,
    | ПартииТоваровКомпании.ВидДвижения КАК ВидДвижения,
    | СУММА(ПартииТоваровКомпании.Количество) КАК Количество,
    | СУММА(ПартииТоваровКомпании.СуммаУпр) КАК Сумма
    |ИЗ
    | РегистрНакопления.ПартииТоваровКомпании КАК ПартииТоваровКомпании
    |ГДЕ
    | ПартииТоваровКомпании.Регистратор = &ТекДокумент
    | И ПартииТоваровКомпании.ХозОперация = &ХозОперация
    |
    |СГРУППИРОВАТЬ ПО
    | ПартииТоваровКомпании.Номенклатура,
    | ПартииТоваровКомпании.СкладКомпании,
    | ПартииТоваровКомпании.ВидДвижения");
    Запрос.УстановитьПараметр("ТекДокумент",ДокументОбъект.Ссылка);
    Запрос.УстановитьПараметр("ХозОперация",ДокументОбъект.ХозОперация);
    СтрокаТовар=Запрос.Выполнить().Выбрать();
    Иначе
    Запрос=Новый Запрос("ВЫБРАТЬ
    | ОстаткиТоваровКомпании.СкладКомпании КАК СкладКомпании,
    | ОстаткиТоваровКомпании.Номенклатура,
    | ОстаткиТоваровКомпании.ВидДвижения КАК ВидДвижения,
    | СУММА(ОстаткиТоваровКомпании.Количество) КАК Количество,
    | СУММА(ОстаткиТоваровКомпании.СуммаРозн) КАК Сумма
    |ИЗ
    | РегистрНакопления.ОстаткиТоваровКомпании КАК ОстаткиТоваровКомпании
    |ГДЕ
    | ОстаткиТоваровКомпании.Регистратор = &ТекДокумент
    | И ОстаткиТоваровКомпании.ХозОперация = &ХозОперация
    |
    |СГРУППИРОВАТЬ ПО
    | ОстаткиТоваровКомпании.Номенклатура,
    | ОстаткиТоваровКомпании.СкладКомпании,
    | ОстаткиТоваровКомпании.ВидДвижения");
    Запрос.УстановитьПараметр("ТекДокумент",ДокументОбъект.Ссылка);
    Запрос.УстановитьПараметр("ХозОперация",ДокументОбъект.ХозОперация);
    СтрокаТовар=Запрос.Выполнить().Выбрать();
    КонецЕсли;
    ПечНомерСтроки=0;

    ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТаблицы");
    ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоТаблицыИтогиПоСтранице");
    ОбластьИтогов = Макет.ПолучитьОбласть("ИтогоТаблицы");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

    // Выводим многострочную часть докмента

    //Для каждого СтрокаТовар Из ВыборкаСтрокТовары Цикл

    Пока СтрокаТовар.Следующий() Цикл

    ПечНомерСтроки = ПечНомерСтроки + 1;
    ОбластьСтрока.Параметры.Заполнить(СтрокаТовар);
    ОбластьСтрока.Параметры.ТоварНаименование = спПолучитьНаименование(СтрокаТовар.Номенклатура);// + ?(Характеристика = "", "",", " + Характеристика);
    ОбластьСтрока.Параметры.Код = СтрокаТовар.Номенклатура[ИмяКодаСправочника];
    ОбластьСтрока.Параметры.ЕдиницаИзмеренияНаименование = СтрокаТовар.Номенклатура.БазоваяЕдиницаИзмерения;
    ОбластьСтрока.Параметры.ЕдиницаИзмеренияКодПоОКЕИ = СтрокаТовар.Номенклатура.БазоваяЕдиницаИзмерения.Код;
    ОбластьСтрока.Параметры.Номер = ПечНомерСтроки;

    //ОбластьСтрока.Параметры.ТоварНаименование = спПолучитьНаименование(ДокументОбъект.Номенклатура) + ?(ДокументОбъект.Характеристика = "", "",", " + ДокументОбъект.Характеристика);

    РазницаСумм = СтрокаТовар.Сумма;
    Разница = СтрокаТовар.Количество;
    Если СтрокаТовар.ВидДвижения = ВидДвиженияНакопления.Расход Тогда
    Разница = -Разница;
    РазницаСумм = -РазницаСумм;
    КонецЕсли;

    Если Разница = 0 Тогда
    Продолжить;
    КонецЕсли;

    СтруктураСтрокиИтогов = Новый Структура("ИтогоРезультатИзлишекКолво,
    | ИтогоРезультатИзлишекСумма,ИтогоРезультатНедостачаКолво,ИтогоРезультатНедостачаСумма, ИтогоСписаниеНедостачКолонка1Колво,ИтогоСписаниеНедостачКолонка1Сумма,
    | ИтогоПриходИзлишковКолво, ИтогоПриходИзлишковСумма, ИтогоПоСтраницеРезультатИзлишекКолво, ИтогоПоСтраницеРезультатИзлишекСумма,ИтогоПоСтраницеРезультатНедостачаКолво,ИтогоПоСтраницеРезультатНедостачаСумма,
    | ИтогоПоСтраницеПриходИзлишковКолво, ИтогоПоСтраницеПриходИзлишковСумма");




    Если Разница < 0 Тогда




    ОбластьСтрока.Параметры.РезультатНедостачаКолво = -Разница;
    ОбластьСтрока.Параметры.РезультатНедостачаСумма = -РазницаСумм;
    ОбластьСтрока.Параметры.РезультатИзлишекКолво = 0;
    ОбластьСтрока.Параметры.РезультатИзлишекСумма = 0;

    ИтогоРезультатНедостачаКолво = ИтогоРезультатНедостачаКолво - Разница;
    ИтогоРезультатНедостачаСумма = ИтогоРезультатНедостачаСумма - РазницаСумм;

    СтруктураСтрокиИтогов.ИтогоРезультатНедостачаКолво = -Разница;
    СтруктураСтрокиИтогов.ИтогоРезультатНедостачаСумма = -РазницаСумм;
    СтруктураСтрокиИтогов.ИтогоРезультатИзлишекКолво = 0;
    СтруктураСтрокиИтогов.ИтогоРезультатИзлишекСумма = 0;




    //НИКОЛОЗ

    ОбластьСтрока.Параметры.РезультатНедостачаКолво = -Разница;
    ОбластьСтрока.Параметры.РезультатНедостачаСумма = -РазницаСумм;
    ОбластьСтрока.Параметры.РезультатИзлишекКолво = 0;
    ОбластьСтрока.Параметры.РезультатИзлишекСумма = 0;

    ИтогоПоСтраницеРезультатНедостачаКолво = ИтогоПоСтраницеРезультатНедостачаКолво - Разница;
    ИтогоПоСтраницеРезультатНедостачаСумма = ИтогоПоСтраницеРезультатНедостачаСумма - РазницаСумм;

    СтруктураСтрокиИтогов.ИтогоПоСтраницеРезультатНедостачаКолво = -Разница;
    СтруктураСтрокиИтогов.ИтогоПоСтраницеРезультатНедостачаСумма = -РазницаСумм;
    СтруктураСтрокиИтогов.ИтогоПоСтраницеРезультатИзлишекКолво = 0;
    СтруктураСтрокиИтогов.ИтогоПоСтраницеРезультатИзлишекСумма = 0;







    Иначе




    ОбластьСтрока.Параметры.РезультатНедостачаКолво = 0;
    ОбластьСтрока.Параметры.РезультатНедостачаСумма = 0;
    ОбластьСтрока.Параметры.РезультатИзлишекКолво = Разница;
    ОбластьСтрока.Параметры.РезультатИзлишекСумма = РазницаСумм;

    ИтогоРезультатИзлишекКолво = ИтогоРезультатИзлишекКолво + Разница;
    ИтогоРезультатИзлишекСумма = ИтогоРезультатИзлишекСумма + РазницаСумм;

    СтруктураСтрокиИтогов.ИтогоРезультатНедостачаКолво = 0;
    СтруктураСтрокиИтогов.ИтогоРезультатНедостачаСумма = 0;
    СтруктураСтрокиИтогов.ИтогоРезультатИзлишекКолво = + Разница;
    СтруктураСтрокиИтогов.ИтогоРезультатИзлишекСумма = + РазницаСумм;





    //НИКОЛОЗ

    ОбластьСтрока.Параметры.РезультатНедостачаКолво = 0;
    ОбластьСтрока.Параметры.РезультатНедостачаСумма = 0;
    ОбластьСтрока.Параметры.РезультатИзлишекКолво = Разница;
    ОбластьСтрока.Параметры.РезультатИзлишекСумма = РазницаСумм;

    ИтогоПоСтраницеРезультатИзлишекКолво = ИтогоПоСтраницеРезультатИзлишекКолво + Разница;
    ИтогоПоСтраницеРезультатИзлишекСумма = ИтогоПоСтраницеРезультатИзлишекСумма + РазницаСумм;

    СтруктураСтрокиИтогов.ИтогоПоСтраницеРезультатНедостачаКолво = 0;
    СтруктураСтрокиИтогов.ИтогоПоСтраницеРезультатНедостачаСумма = 0;
    СтруктураСтрокиИтогов.ИтогоПоСтраницеРезультатИзлишекКолво = + Разница;
    СтруктураСтрокиИтогов.ИтогоПоСтраницеРезультатИзлишекСумма = + РазницаСумм;





    КонецЕсли;



    мсвДопОбластиПодвала = Неопределено;
    //Если ПечНомерСтроки = ВыборкаСтрокТовары.Количество()-1 Тогда
    // мсвДопОбластиПодвала = Новый Массив;
    // мсвДопОбластиПодвала.Добавить(ОбластьИтогов);
    // мсвДопОбластиПодвала.Добавить(ОбластьПодвал);
    //КонецЕсли;

    НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьСтрока, ЗаголовокТаблицы, ОбластьИтоговПоСтранице,
    НомерСтраницы, СтруктураИтоговПоСтранице, Права, мсвДопОбластиПодвала);

    Если НомерСтраницы <> НомерСтраницыПред Тогда
    СтруктураИтоговПоСтранице = Новый Структура("ИтогоРезультатИзлишекКолво,
    | ИтогоРезультатИзлишекСумма,ИтогоРезультатНедостачаКолво,ИтогоРезультатНедостачаСумма",0,0,0,0,"ИтогоСписаниеНедостачКолонка1Колво,ИтогоСписаниеНедостачКолонка1Сумма,
    | ИтогоПриходИзлишковКолво, ИтогоПриходИзлишковСумма");


    КонецЕсли;
    //добавляем итоги
    дкДобавитьИтогиПоСтранице(СтруктураСтрокиИтогов,СтруктураИтоговПоСтранице);
    Для Каждого ТекСтрока Из СтруктураСтрокиИтогов Цикл
    Ном = Ном + 1;
    ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице;

    Если (ЦелаяСтраница = Цел(ЦелаяСтраница))
    или ((ПереноситьПоследнююСтроку = 0) и (Ном = КоличествоСтрок)) Тогда

    ОбластьИтоговПоСтранице.Параметры.ИтогоПоСтраницеРезультатИзлишекКолво = ИтогоПоСтраницеРезультатИзлишекКолво;
    ОбластьИтоговПоСтранице.Параметры.ИтогоПоСтраницеРезультатИзлишекСумма = ИтогоПоСтраницеРезультатИзлишекСумма;
    ОбластьИтоговПоСтранице.Параметры.ИтогоПоСтраницеРезультатНедостачаКолво = ИтогоПоСтраницеРезультатНедостачаКолво;
    ОбластьИтоговПоСтранице.Параметры.ИтогоПоСтраницеРезультатНедостачаСумма = ИтогоПоСтраницеРезультатНедостачаСумма;
    ТабДокумент.Вывести(ОбластьИтоговПоСтранице);

    //
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();



    ТабДокумент.Вывести(ЗаголовокТаблицы);
    // инициализация итогов по странице
    ИтогоПоСтраницеРезультатНедостачаКолво = 0;
    ИтогоПоСтраницеРезультатНедостачаСумма = 0;

    ИтогоПоСтраницеРезультатИзлишекКолво = 0;
    ИтогоПоСтраницеРезультатИзлишекСумма = 0;



    КонецЕсли;
    КонецЦикла;


    КонецЦикла;


    Если НомерСтраницы > 2 Тогда
    дкВывестиИтогиПоСтранице(ТабДокумент,ОбластьИтоговПоСтранице,СтруктураИтоговПоСтранице,Права);
    КонецЕсли;
    ОбластьИтоговПоСтранице.Параметры.ИтогоПоСтраницеРезультатИзлишекКолво = ИтогоПоСтраницеРезультатИзлишекКолво;
    ОбластьИтоговПоСтранице.Параметры.ИтогоПоСтраницеРезультатИзлишекСумма = ИтогоПоСтраницеРезультатИзлишекСумма;
    ОбластьИтоговПоСтранице.Параметры.ИтогоПоСтраницеРезультатНедостачаКолво = ИтогоПоСтраницеРезультатНедостачаКолво;
    ОбластьИтоговПоСтранице.Параметры.ИтогоПоСтраницеРезультатНедостачаСумма = ИтогоПоСтраницеРезультатНедостачаСумма;
    //////

    НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьИтоговПоСтранице, , ,Права);

    ОбластьИтогов.Параметры.ИтогоРезультатИзлишекКолво = ИтогоРезультатИзлишекКолво;
    ОбластьИтогов.Параметры.ИтогоРезультатИзлишекСумма = ИтогоРезультатИзлишекСумма;
    ОбластьИтогов.Параметры.ИтогоРезультатНедостачаКолво = ИтогоРезультатНедостачаКолво;
    ОбластьИтогов.Параметры.ИтогоРезультатНедостачаСумма = ИтогоРезультатНедостачаСумма;
    ////

    НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьИтогов, , , НомерСтраницы,,Права);

    ОбластьПодвал.Параметры.Заполнить(ДокументОбъект);

    СтруктураОтбора = Новый Структура("Организация,Объект",ДокументОбъект.Организация,Перечисления.ВидыОбъектовСведений.ГлавныйБухгалтер);
    СтруктураСведений = РегистрыСведений.СведенияКомпании.ПолучитьПоследнее(ДокументОбъект.Дата, СтруктураОтбора);
    ОбластьПодвал.Параметры.ФИОБухгалтера = СтруктураСведений.Значение;

    // Материально ответственное лицо
    Если НЕ ДокументОбъект.СкладКомпании.Пустая() Тогда
    ОбластьПодвал.Параметры.ДолжностьМОЛ1 = ДокументОбъект.СкладКомпании.МОЛ.Должность;
    ОбластьПодвал.Параметры.ФИОМОЛ1 = ДокументОбъект.СкладКомпании.МОЛ;
    КонецЕсли;
    НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьПодвал, , , НомерСтраницы,,Права);






    Возврат ТабДокумент;
    КонецФункции

    Вот где мне тут что прописать? Всё нормально работает тока не по алфавиту:) Если тут что-то сложного то обойдусь
  9. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Курите ВыборкаСтрокТовары, не могу помогать пользователям, когда это за них нужно делать.

    И кстати, оформляйте код тегами
    Код:
     !!!!!!
  10. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    В тексте запросов добавьте конструкцию
    [CODE1C]
    |УПОРЯДОЧИТЬ ПО
    | Номенклатура
    [/CODE1C]
  11. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Это в каком таком запросе, я быстренько по коду пробежался и посмотрел, что запроса из табличной части нет (хотя мог и ошибиться), номенклатура берется сразу из регистров, и причем не запросом, а сразу выборкой.
  12. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Сильно в код не вчитывался, но данные выбираются и выборкой и запросом, а в выводе данных используется результат запроса:

  13. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Ну вы же грамотный человек, видите же что один цикл закомментирован :)))
  14. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    вот тже тот искомый запрос :

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

    в них и надо сортировку ...
  15. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Так обрабатывается и выводится не результат запроса :)
  16. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    А что?
  17. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    В СтрокаТовар у вас уже "готовая таблица данных", как ее отсортировать ? Я что-то затрудняюсь ответить прямо так сразу, в лоб:)))). Если использовать какой-нибудь метод СтрокаТовар.Порядок(), тогда да, спору нет:).
  18. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    alexburn


    так СтрокаТовар выборка результата запроса

    СтрокаТовар=Запрос.Выполнить().Выбрать();
  19. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Выборку не отсортировать, а вот если результат выгрузить в ТЗ, то тогда можно сортировать ТЗ. А так самое оптимальное - это сортировать сразу в запросе (это уже вроде предложили)
  20. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Я, я, я не предлагал :))))))))))))

Поделиться этой страницей