Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 авг 2021, 15:06

Число строк табличной части через запрос

Автор Ann_, 15 июл 2021, 14:14

0 Пользователей и 1 гость просматривают эту тему.

Ann_

Нужно получить число строк табличной части. Запрос вроде бы рабочий, но на печать так ничего и не выходит. Помогите пожалуйста)


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

Ивашка

@Ann_, может областьмакета называется по-другому или параметр

Ann_

нет, и область и параметр называются правильно

Ивашка

Цитата: Ann_ от 15 июл 2021, 14:41нет, и область и параметр называются правильно
выложи полностью код

LexaK

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

Ann_

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

   //   
   //   рез = запрос.выполнить();
   //   выборка= рез.выбрать();
   //   Пока выборка.Следующий() Цикл
   //   
   //   //рез.следующий();
   //      
   //   областьмакета.параметры.число = выборка.номерстроки;
   //   КонецЦикла;
   ////   
   //
      
      
      
      /////////                    ////////
      
            

   ПараметрыШапки = Новый Структура;
   
   ПараметрыШапки.Вставить("Номер", НомерСчетаФактурыНаПечать(ДанныеПечати.Номер, ДанныеПечати.ИндексПодразделения));
   ПараметрыШапки.Вставить("Дата", Формат(ДанныеПечати.Дата, "ДЛФ=ДД"));
   ПараметрыШапки.Вставить("НомерИсправления", ?(ДанныеПечати.Исправление, ДанныеПечати.НомерИсправления, "--"));
   ПараметрыШапки.Вставить("ДатаИсправления",
      ?(ДанныеПечати.Исправление, Формат(ДанныеПечати.ДатаИсправления, "ДЛФ=ДД"), "--"));

Ann_


LexaK

ну правильно, что не правильно!

объект.Ссылка - это чё?

(скорее всего данные надо брать из параметра ДанныеПечати!!!)
ответ Понравился? (в смысле пригодился?)

Ann_

Цитата: LexaK от 15 июл 2021, 15:04ну правильно, что не правильно!

объект.Ссылка - это чё?

(скорее всего данные надо брать из параметра ДанныеПечати!!!)
объект.ссылка - это документ реализация товаров и услуг

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

исправила, не работает

LexaK

Цитироватьисправила, не работает
понятно,
а что пишет-то, в окне сообщений?
ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

75647

Ответов: 1
Просмотров: 260

62920

Ответов: 2
Просмотров: 837

5129

Ответов: 7
Просмотров: 4110

64433

Ответов: 4
Просмотров: 1999

68492

Ответов: 5
Просмотров: 956

Рейтинг@Mail.ru Rambler's Top100

Поиск