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

Сум-ие значений эл. столбца документа и вывод рез. в другое поле

Автор Шамиль 2210, 10 авг 2021, 09:20

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

Шамиль 2210

Здравствуйте!
Зашел в тупик, не могу вывести сумму значений из столбца "Сумма" в поле "Итоговая сумма".


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

LexaK

всего одну команду надо добавить


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

Шамиль 2210


LexaK

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

КонецПроцедуры

ответ Понравился? (в смысле пригодился?)

antoneus

А что, в итоговом поле надо вывести итоговую сумму из всех документов (зачем)? Или только из текущего? Если только из текущего, тогда

ИтоговаяСумма = Объект.ТабЧасть.Итог("Сумма");
Но возможно, ИтоговаяСумма - это реквизит документа? Тогда

ТекущийОбъект.ИтоговаяСумма = Объект.ТабЧасть.Итог("Сумма")

Теги:

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

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

Поиск