Есть Документ связанный с регистром накопления. В документе есть поле номер договора, как мне при создании нового документа он лез в накопление и выводил мне информацию в поле(СуммаОплачено)сумму всех предыдущих документов по полю сравнения номера договора.
Можно хотя бы пример какой-то)
! | http://pro1c.org.ua/index.php?act=announce&id=2: 4,5 |
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РегистрСчетов.Период,
| РегистрСчетов.Регистратор,
| РегистрСчетов.НомерСтроки,
| РегистрСчетов.Активность,
| РегистрСчетов.Контрагент,
| РегистрСчетов.Организация,
| РегистрСчетов.НомерДоговора,
| РегистрСчетов.НомерСчета,
| РегистрСчетов.Санаторий,
| РегистрСчетов.СуммаПоСчету КАК СуммаПоСчету
|ИЗ
| РегистрНакопления.РегистрСчетов КАК РегистрСчетов
|ГДЕ
| РегистрСчетов.Организация = &ВыбОрганизация
| ";
Запрос.УстановитьПараметр("ВыбОрганизация",
Справочники.Организации.НайтиПоНаименованию("Накра"));
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Объект.ДолгКлиента = Выборка.СуммаПоСчету;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РегистрСчетов.Период,
| РегистрСчетов.Регистратор,
| РегистрСчетов.НомерСтроки,
| РегистрСчетов.Активность,
| РегистрСчетов.Контрагент,
| РегистрСчетов.Организация,
| РегистрСчетов.НомерДоговора,
| РегистрСчетов.НомерСчета,
| РегистрСчетов.Санаторий,
| РегистрСчетов.СуммаПоСчету КАК СуммаПоСчету
|ИЗ
| РегистрНакопления.РегистрСчетов КАК РегистрСчетов
|ГДЕ
| РегистрСчетов.Организация = &ВыбОрганизация И
| РегистрСчетов.Регистратор.НомерДоговора = &НомерДоговора
| ";
Запрос.УстановитьПараметр("ВыбОрганизация",
Справочники.Организации.НайтиПоНаименованию("Накра"));
Запрос.УстановитьПараметр("НомерДоговора ",НомерДоговора ); //Указать нужный номер договора.
Выборка = Запрос.Выполнить().Выбрать();
СуммаПоСчету = 0;
Пока Выборка.Следующий() Цикл
СуммаПоСчету = СуммаПоСчету + Выборка.СуммаПоСчету;
КонецЦикла
Возврат СуммаПоСчету;
ВЫБРАТЬ
СУММА(ЕСТЬNULL(Расчеты.СуммаПоСчету , 0)) КАК СуммаПоСчету
ИЗ
РегистрНакопления.РегистрСчетов.Обороты(, , , НомерДоговора = &НомерДоговора И Организация = &Организация) КАК Расчеты
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РегистрСчетов.Период,
| РегистрСчетов.Регистратор,
| РегистрСчетов.НомерСтроки,
| РегистрСчетов.Активность,
| РегистрСчетов.Контрагент,
| РегистрСчетов.Организация,
| РегистрСчетов.НомерДоговора,
| РегистрСчетов.НомерСчета,
| РегистрСчетов.Санаторий,
| РегистрСчетов.СуммаПоСчету КАК СуммаПоСчету
|ИЗ
| РегистрНакопления.РегистрСчетов КАК РегистрСчетов
|ГДЕ
| РегистрСчетов.Организация = &ВыбОрганизация И
| РегистрСчетов.Регистратор.НомерДоговора = &НомерДоговора
| ";
Запрос.УстановитьПараметр("ВыбОрганизация",
Справочники.Организации.НайтиПоНаименованию("Накра"));
Запрос.УстановитьПараметр("НомерДоговора ",НомерДоговора ); //Указать нужный номер договора.
Выборка = Запрос.Выполнить().Выгрузить();
СуммаПоСчету = Выборка.Итог("СуммаПоСчету");
Возврат СуммаПоСчету;
podcast @ Сегодня, 12:00
,
А как сравнивать если не указать номер договора чтобы он сам сравнивал если несколько документов с одинаковым номером договора выводил сумму
burza @ Сегодня, 13:47
,
То есть у меня есть заявки и у них свой номер при формировании счета нужно сравнивать предыдущие по номеру(номер заполняется с заявки) он один для всех документов одной заявки.
Здела так, вроде работает)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РегистрСчетов.Период,
| РегистрСчетов.Регистратор,
| РегистрСчетов.НомерСтроки,
| РегистрСчетов.Активность,
| РегистрСчетов.Контрагент,
| РегистрСчетов.Организация,
| РегистрСчетов.НомерДоговора КАК НомерДоговора,
| РегистрСчетов.НомерСчета КАК НомерСчета,
| РегистрСчетов.Санаторий,
| РегистрСчетов.СуммаПоСчету КАК СуммаПоСчету
|ИЗ
| РегистрНакопления.РегистрСчетов КАК РегистрСчетов
|ГДЕ
//| РегистрСчетов.Организация = &ВыбОрганизация
| РегистрСчетов.Регистратор.НомерСчета = &НомерСчета
| ";
Запрос.УстановитьПараметр("НомерСчета",Объект.НомерСчета);
//Запрос.УстановитьПараметр("ВыбОрганизация",Справочники.Организации.НайтиПоНаименованию("Накра"));
//Запрос.УстановитьПараметр("НомерДоговора ",НомерДоговора ); //Указать нужный номер договора.
Выборка = Запрос.Выполнить().Выгрузить();
Объект.ДолгКлиента = Выборка.Итог("СуммаПоСчету");
Подскажите еще как вот это впихнуть в цикл чтобы проверило всю табличную часть документа и проставило
Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20;
Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
Элементы.ОписаниеПутевки.ТекущиеДанные.ЦенаПутевки = Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету / Элементы.ОписаниеПутевки.ТекущиеДанные.Количество;
burza @ Сегодня, 15:25
,
В Событии ПриИзменении реквизита который вы водите вручную, либо сделать команду и пройти циклом всю таблицу.
podcast @ Сегодня, 15:32
,
Я не ввожу вручную при изменение не подходит, документ делается на основании и втягивает данные с родителя.
Ну команда есть а что то дописать?)у меня с цыклами проблемы)
&НаКлиенте
Процедура ЗаполнитьПоетапам(Команда)
//Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20;
//Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
// Элементы.ОписаниеПутевки.ТекущиеДанные.ЦенаПутевки = Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету / Элементы.ОписаниеПутевки.ТекущиеДанные.Количество;
КонецПроцедуры
logist @ Сегодня, 15:47
,
Или вы меня не так поняли или я вас, мне нужно чтобы вот эта формула
Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20;
Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
Элементы.ОписаниеПутевки.ТекущиеДанные.ЦенаПутевки = Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету / Элементы.ОписаниеПутевки.ТекущиеДанные.Количество;
заполнялась по нажатию кнопки для всего табличного документа а не для на которого навели мышкой как сейчас.
чуть не в тему - кто помнит приоритетность математ. операций ?
Как его правильно дописать Подскажите
Для каждого СтрКоличество Из Документы.РегистрСчетов.ОписаниеПутевки Цикл
Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20
КонецЦикла;
&НаСервере
//
Для каждого СтрКоличество Из Объект.ОписаниеПутевки Цикл
СтрКоличество.Количество = СтрКоличество.Количество / 100 * 20
КонецЦикла;
logist @ Сегодня, 16:06
,
Неа не то
Как с этого сделать цикл
&НаКлиенте
Процедура ЗаполнитьПоетапам(Команда)
Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20;
Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
Элементы.ОписаниеПутевки.ТекущиеДанные.ЦенаПутевки = Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету / Элементы.ОписаниеПутевки.ТекущиеДанные.Количество;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоетапам(Команда)
Для Каждого Строка Из Объект.ОписаниеПутевки Цикл
Строка.Количество = Строка.Количество / 100 * 20;
Строка.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
Строка.ЦенаПутевки = Строка.СуммаПоСчету / Строка.Количество;
КонецЦикла;
КонецПроцедуры
logist @ Вчера, 17:04
,
Спасибо оно)
Теперь наткнулся на другое. В табличной части например 5 полей а СуммаПоСчету ставит на каждое поле (20 процентов), как эту сумму разбить на количество полей и добавить в СуммаПоСчету уже посредственно для самой строки.
Тоесть сейчас
burza @ Сегодня, 9:37
,
А надо
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua