Имя: Пароль:
1C
1С v8
Количество наименований (строк, позиций).
,
0 Godunov
 
31.05.16
16:21
Приветствую знатоки 1С, вот тут скрин печатной формы, в нём указано три позиции, надо вместо 0(подчёркнуто красным) отобразить 3 (три позиции и т.д.)
http://savepic.ru/9926452.png

Есть запрос такой и сам код:

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

ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований " + Выборка.Количество()
        + ", на сумму " + СуммаИтого + " рублей.";
    ОбластьМакета.Параметры.СуммаПрописью = ЧислоПрописью(СуммаИтого, "Л=ru_RU;ДП=Истина", "рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2");
    ТабДокумент.Вывести(ОбластьМакета);
1 Godunov
 
31.05.16
16:22
Затык тут: Выборка.Количество()

ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований " + Выборка.Количество()
        + ", на сумму " + СуммаИтого + " рублей.";

Есть у кого какие мысли, что не так делаю?
2 samozvanec
 
31.05.16
16:25
(0) с параметрами - это чтоб наверняка?
3 Godunov
 
31.05.16
16:29
(2) В смысле?
Я новичок в 1С.
4 Мимохожий Однако
 
31.05.16
16:32
(3)Начни с запуска в режиме отладки и остановке на ошибке. Потом долго думать.
5 Nuobu
 
31.05.16
16:34
РеализацияТоваровУслугТовары.Ссылка = &Наименование
                   |    И РеализацияТоваровУслугТовары.Ссылка = &НомерСтроки
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Количество
                   |    И РеализацияТоваровУслугТовары.Ссылка = &ЕдиницаИзмерения
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Цена
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Сумма
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Вес
6 Godunov
 
31.05.16
16:35
(4) Отладчик никаких ошибок не нашёл.
7 Nuobu
 
31.05.16
16:35
(6) Выборка.Количество()

поменяй на Выборка.НомерСтроки.
8 Godunov
 
31.05.16
16:38
(7) Делал уже так, вот результат.
http://savepic.ru/9953096.png

Много тем в инете прочитал по своему вопросу - результата нет, в голове каша, поэтому решил сюда за помощью обратиться.
9 Nuobu
 
31.05.16
16:39
(8) А ты весь код скинул?
10 Godunov
 
31.05.16
16:42
(9)
Функция ПечатьДокумента(СуммыВРублях = Ложь)
        
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ";

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

    
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ТабДокумент.Вывести(ОбластьМакета);
    
    //////////////////////////////////////////////////////////////    
    Запрос = Новый Запрос;            
    Запрос.УстановитьПараметр("Наименование", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("НомерСтроки", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("Количество", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("ЕдиницаИзмерения", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("Цена", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("Сумма", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("Вес", СсылкаНаОбъект);
    Запрос.Текст = "ВЫБРАТЬ
                   |    РеализацияТоваровУслугТовары.Номенклатура.Наименование КАК Наименование,
                   |    РеализацияТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
                   |    РеализацияТоваровУслугТовары.Количество КАК Количество,
                   |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
                   |    РеализацияТоваровУслугТовары.Цена,
                   |    РеализацияТоваровУслугТовары.Сумма КАК Сумма,
                   |    РеализацияТоваровУслугТовары.Количество * РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаХраненияОстатков.Вес КАК Вес
                   |ИЗ
                   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
                   |ГДЕ
                   |    РеализацияТоваровУслугТовары.Ссылка = &Наименование
                   |    И РеализацияТоваровУслугТовары.Ссылка = &НомерСтроки
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Количество
                   |    И РеализацияТоваровУслугТовары.Ссылка = &ЕдиницаИзмерения
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Цена
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Сумма
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Вес
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    РеализацияТоваровУслугТовары.Номенклатура.Наименование,
                   |    РеализацияТоваровУслугТовары.НомерСтроки,
                   |    РеализацияТоваровУслугТовары.Количество,
                   |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
                   |    РеализацияТоваровУслугТовары.Цена,
                   |    РеализацияТоваровУслугТовары.Сумма,
                   |    РеализацияТоваровУслугТовары.Количество * РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаХраненияОстатков.Вес";
    Выборка = Запрос.Выполнить().Выбрать();    
        
    Макет = ПолучитьМакет("СчетЗаказ");    
    СуммаИтого = 0;  
    ВесИтого = 0;  
    ВсегоНДС = 0;
    Пока Выборка.Следующий() Цикл    
        ОбластьМакета = Макет.ПолучитьОбласть("Строка");
        ОбластьМакета.Параметры.Товар = Выборка.Наименование;
        ОбластьМакета.Параметры.НомерСтроки = Выборка.НомерСтроки;
        ОбластьМакета.Параметры.Количество = Выборка.Количество;    
        ОбластьМакета.Параметры.ЕдиницаЦены = Выборка.ЕдиницаИзмерения;
        ОбластьМакета.Параметры.Цена = Выборка.Цена;
        ОбластьМакета.Параметры.Сумма = Выборка.Сумма;
        ОбластьМакета.Параметры.Вес = Выборка.Вес;
        ТабДокумент.Вывести(ОбластьМакета);
        СуммаИтого = СуммаИтого + Выборка.Сумма;
        ВесИтого = ВесИтого + Выборка.Вес;
        ВсегоНДС = ВсегоНДС + Выборка.Сумма / 118 * 18;
    КонецЦикла;            
//////////////////////////////////////////////////////////////
    
    ОбластьМакета = Макет.ПолучитьОбласть("Итого");
    ОбластьМакета.Параметры.Всего = СуммаИтого;
    ОбластьМакета.Параметры.ВесВсего = ВесИтого;
    ТабДокумент.Вывести(ОбластьМакета);
         
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
    ОбластьМакета.Параметры.ВсегоНДС = ВсегоНДС;
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований " + Выборка.НомерСтроки
        + ", на сумму " + СуммаИтого + " рублей.";
    ОбластьМакета.Параметры.СуммаПрописью = ЧислоПрописью(СуммаИтого, "Л=ru_RU;ДП=Истина", "рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2");
    ТабДокумент.Вывести(ОбластьМакета);
                
    ОбластьМакета = Макет.ПолучитьОбласть("Расчет");
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Подпись");
    ОбластьМакета.Параметры.Организация = СсылкаНаОбъект.Организация;  
    ОбластьМакета.Параметры.Контрагент = СсылкаНаОбъект.Контрагент;
    ОбластьМакета.Параметры.ГенДирКонтрагент = СсылкаНаОбъект.Контрагент.ОсновноеКонтактноеЛицо;
    Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(СсылкаНаОбъект.Организация,СсылкаНаОбъект.Дата);
    ОбластьМакета.Параметры.ФИОРуководителя = Руководители.Руководитель;    
    ТабДокумент.Вывести(ОбластьМакета);

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

КонецФункции // ПечатьДокумента()

// Процедура осуществляет печать документа. Можно направить печать на
// экран или принтер, а также распечатать необходмое количество копий.
//
//  Название макета печати передается в качестве параметра,
// по переданному названию находим имя макета в соответствии.
//
// Параметры:
//  НазваниеМакета - строка, название макета.
//
Функция Печать() Экспорт
11 FIXXXL
 
31.05.16
16:45
|ГДЕ
                   |    РеализацияТоваровУслугТовары.Ссылка = &Наименование
                   |    И РеализацияТоваровУслугТовары.Ссылка = &НомерСтроки
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Количество
                   |    И РеализацияТоваровУслугТовары.Ссылка = &ЕдиницаИзмерения
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Цена
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Сумма
                   |    И РеализацияТоваровУслугТовары.Ссылка = &Вес


с одного раза конфигуратор не понимает?
12 Godunov
 
31.05.16
16:47
(11) что именно с одного раза конфигуратор не понимает?
13 Shrek_yar
 
31.05.16
16:49
(0) е мое, в какрой школе Вас обучали.
Сделай в цикле счетчик, складываешь его и получаешь количество строк.
сч = сч + 1;
В чем сложность.
Выборка - это не таблица значений, это выборка результатов запроса,
надо
Выборка = Запрос.Выполнить().Выбрать();    
Количество = Выборка.Количество();
14 alle68
 
31.05.16
16:50
(12) Народ интересуется, семь идентичных условий надёжней одного?
15 bootini
 
31.05.16
16:51
(12) ты один и тот же параметр СсылкаНаОбъект ВОСЕМЬ РАЗ устанавливаешь
16 Nuobu
 
31.05.16
16:51
(15) Ты что, слепой? Параметры разные.
17 Godunov
 
31.05.16
16:52
(13) (14) Ребят, в 1С я полный нуб, изучаю с нуля абсолютно, то что для вас просто и вызывает смех, для меня вызывает кучу вопросов. Думаю в любом деле новичок и профессионал - будет аналогичная ситуация.
Я учусь...
18 bootini
 
31.05.16
16:52
(16) юмор понял :)
19 Nuobu
 
31.05.16
16:58
(17) Сделай счетчик, как советуют в (13)
20 Godunov
 
31.05.16
16:59
(13) (19) вопрос, как его сделать?
21 silent person
 
31.05.16
17:01
(20) судя по этому вопросу, ты вообще программирование решил по 1С учить.
22 bootini
 
31.05.16
17:01
(20)

  СуммаИтого = 0;  
    ВесИтого = 0;  
    ВсегоНДС = 0;


   Сч = 0; //////////


    Пока Выборка.Следующий() Цикл    
        ОбластьМакета = Макет.ПолучитьОбласть("Строка");
        ОбластьМакета.Параметры.Товар = Выборка.Наименование;
        ОбластьМакета.Параметры.НомерСтроки = Выборка.НомерСтроки;
        ОбластьМакета.Параметры.Количество = Выборка.Количество;    
        ОбластьМакета.Параметры.ЕдиницаЦены = Выборка.ЕдиницаИзмерения;
        ОбластьМакета.Параметры.Цена = Выборка.Цена;
        ОбластьМакета.Параметры.Сумма = Выборка.Сумма;
        ОбластьМакета.Параметры.Вес = Выборка.Вес;
        ТабДокумент.Вывести(ОбластьМакета);
        СуммаИтого = СуммаИтого + Выборка.Сумма;
        ВесИтого = ВесИтого + Выборка.Вес;
        ВсегоНДС = ВсегоНДС + Выборка.Сумма / 118 * 18;
        /////////
      
        Сч = Сч+1;

        /////////
КонецЦикла;

    ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований " + Сч
        + ", на сумму " + СуммаИтого + " рублей.";
23 Godunov
 
31.05.16
17:03
(22) Благодарю, вот теперь буду знать про счётчик.
24 bootini
 
31.05.16
17:03
(21) админу бух сказал: Какого х.. количество не выводится?

и админ решил учить 1С :)
25 bootini
 
31.05.16
17:04
А вот почему Выборка.Количество() не срабатывает, все таки непонятно...
26 Godunov
 
31.05.16
17:06
Всё получилось - благодарю.
27 Godunov
 
31.05.16
17:08
(24) Не совсем, но суть такая. СисАдмин начал учить 1С...