Есть 2 регистра в них записываются данные с 2х документов, Бюджет и заявка. Стоит задача сравнивать регистры,есть бюджет там есть статья и суммы и нужно при создании заявки чтобы она лезла в бюджет и смотрела можно ли провести сумму по статье. Иными словами проверка на расход.
Сделал так, но почему то сравнивается только одна статья а не по каждой, сейчас только админ работает.Что не так?
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|ФинЗаявкаОстатки.СуммаОстаток КАК СуммаФинЗаявка,
|ФинЗаявкаОстатки.Статья КАК Статья,
|БюджетРасходовИПриходовОстатки.СуммаОстаток КАК СуммаФинПлана
|ИЗ
|РегистрНакопления.ФинЗаявка.Остатки КАК ФинЗаявкаОстатки
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.БюджетРасходовИПриходов.Остатки КАК БюджетРасходовИПриходовОстатки
|ПО ФинЗаявкаОстатки.Подразделение = БюджетРасходовИПриходовОстатки.Подразделение
|И ФинЗаявкаОстатки.Статья = БюджетРасходовИПриходовОстатки.СтатьяРасхода
|ГДЕ
|ФинЗаявкаОстатки.Подразделение = &Подразделение";
Запрос.УстановитьПараметр("Подразделение", Объект.Подразделения);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Выборка.Следующий();
Для Каждого Строка Из Объект.ФинЗаявка Цикл
Если Выборка.СуммаФинПлана < Выборка.СуммаФинЗаявка Тогда
Отказ = Истина;
Сообщить("Сумма больше чем ФинПлан на " + (Выборка.СуммаФинЗаявка - Выборка.СуммаФинПлана)+ " по статье " + Выборка.Статья )
КонецЕсли;
КонецЦикла;
burza @ Today, 8:53
,
Во-первых, сгруппируйте запрос по статьям.
Во-вторых, переделайте обработку результата. Сейчас у вас в цикле происходит обход по ТЧ объекта, но внутри каждый раз обрабатываются данные первой записи результата запроса.
burza @ Today, 9:48
,
По первому, вот вам пример группировки:
ВЫБРАТЬ
СчетНаОплату.Контрагент КАК Контрагент,
СУММА(СчетНаОплату.СуммаДокумента) КАК СуммаДокумента
ИЗ
Документ.СчетНаОплату КАК СчетНаОплату
СГРУППИРОВАТЬ ПО
СчетНаОплату.Контрагент
ВНУТРЕННЕЕ СОЕДИНЕНИЕ получает совпадения в двух таблицах, вам вероятно надо использовать ЛЕВОЕ, иначе расход будет разрешен по статьям которых нет в бюджете
burza @ Сегодня, 9:53
,
Вам следует ознакомится с кодом контроля остатков номенклатуры при продажах. В интернете примеров данного кода хватает. И использовать его как основу в вашем коде.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua