Регистр сведений

1. Tikle 02.04.19 11:48 Сейчас в теме
Здравствуйте! Пытаюсь выполнить запись в два разных регистра, в зависимости от условия, и вот в первый регистр все успешно записывается, а во второй нет((( Может быть кто-нибудь сможет подсказать почему? Спасибо!

Процедура ОбработкаПроведения(Отказ, Режим)
	
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	Движения.ОстаткиАванса.Записывать = Истина;
	Движения.ОстаткиАванса.Записать();
	Движения.ОстаткиДолга.Записывать = Истина;
	Движения.ОстаткиДолга.Записать();
	
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ПриходнаяНакладная.Соглашение КАК Соглашение,
		|	ПриходнаяНакладная.ИтогоПоДокументу КАК ИтогоПоДокументу
		|ПОМЕСТИТЬ ДокТЧ
		|ИЗ
		|	Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
		|ГДЕ
		|	ПриходнаяНакладная.Ссылка = &Ссылка
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ДокТЧ.Соглашение КАК Соглашение,
		|	ДокТЧ.ИтогоПоДокументу КАК ИтогоПоДокументу,
		|	ЕСТЬNULL(ОстаткиАвансаОстатки.СуммаОстаток, 0) КАК ОстаткиАванса,
		|	ЕСТЬNULL(ОстаткиДолгаОстатки.СуммаОстаток, 0) КАК ОстаткиДолга
		|ИЗ
		|	ДокТЧ КАК ДокТЧ
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиДолга.Остатки КАК ОстаткиДолгаОстатки
		|		ПО ДокТЧ.Соглашение = ОстаткиДолгаОстатки.Соглашение
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиАванса.Остатки КАК ОстаткиАвансаОстатки
		|		ПО ДокТЧ.Соглашение.Контрагент = ОстаткиАвансаОстатки.Контрагент
		|ИТОГИ
		|	СУММА(ИтогоПоДокументу),
		|	СУММА(ОстаткиАванса),
		|	СУММА(ОстаткиДолга)
		|ПО
		|	Соглашение";
	
	
	Запрос.УстановитьПараметр("Ссылка",Ссылка);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	Пока Выборка.Следующий() Цикл
		Если  Выборка.ОстаткиАванса >= Выборка.ИтогоПоДокументу Тогда
			Движение = Движения.ОстаткиАванса.Добавить();
			Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
			Движение.Период=Дата;
			Движение.Контрагент=Выборка.Соглашение.Контрагент;
			Движение.Сумма=Выборка.ИтогоПоДокументу;
		Иначе 
			Движение = Движения.ОстаткиАванса.Добавить();
			Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
			Движение.Период=Дата;
			Движение.Контрагент=Выборка.Соглашение.Контрагент;
			Движение.Сумма=Выборка.ОстаткиАванса;
			
			Движение = Движения.ОстаткиДолга.Добавить();
			Движение.ВидДвижения=ВидДвиженияНакопления.Приход;
			Движение.Период=Дата;
			Движение.Соглашение=Выборка.Соглашение;
			Долг = Выборка.ИтогоПоДокументу - Выборка.ОстаткиАванса;
			Движение.Сумма=Долг;


		КонецЕсли
	КонецЦикла;
	
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА


	
	
	
	
	
	
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
2. Boneman 301 02.04.19 11:58 Сейчас в теме
(1) так может условие для второго случая не создается ?

И не сведений, а похоже что накопления
5. Tikle 02.04.19 12:06 Сейчас в теме
(4)
т если это условие Если Выборка.ОстаткиАванса >= Выборка.ИтогоПоДокументу Тогда пишем в регистр ОстаткиАванса иначе ОстаткиАванса и ОстаткиДолга одновременно? так это?


Да, после иначе в два регистра должен записывать. Не записывает совсем, ошибок нет никаких.
7. starjevschik 02.04.19 12:09 Сейчас в теме
Отладчиком надо воспользоваться, проверить, что условие бывает Иначе. И к (6) +1.
8. SedovSU@mail.ru 298 02.04.19 12:23 Сейчас в теме
(7) Да да тоже верно - это самое первое нужно сделать, нужно проверить заходит ли вообще туда программа
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 301 02.04.19 11:58 Сейчас в теме
(1) так может условие для второго случая не создается ?

И не сведений, а похоже что накопления
3. Tikle 02.04.19 12:02 Сейчас в теме
(2)ой, да, регистр накопления. А про условие разве Иначе не подразумевает под собой уже условие?
4. SedovSU@mail.ru 298 02.04.19 12:03 Сейчас в теме
а как не записывает ?? ошибка какая? или просто не записывает???

Вот если это условие Если Выборка.ОстаткиАванса >= Выборка.ИтогоПоДокументу Тогда пишем в регистр ОстаткиАванса иначе ОстаткиАванса и ОстаткиДолга одновременно? так это?
5. Tikle 02.04.19 12:06 Сейчас в теме
(4)
т если это условие Если Выборка.ОстаткиАванса >= Выборка.ИтогоПоДокументу Тогда пишем в регистр ОстаткиАванса иначе ОстаткиАванса и ОстаткиДолга одновременно? так это?


Да, после иначе в два регистра должен записывать. Не записывает совсем, ошибок нет никаких.
6. SedovSU@mail.ru 298 02.04.19 12:08 Сейчас в теме
(5) перенесите эти методы

 Движения.ОстаткиАванса.Записать();
 Движения.ОстаткиДолга.Записать();


в самый конец, после всего как вы обошли запрос и добавили записи
7. starjevschik 02.04.19 12:09 Сейчас в теме
Отладчиком надо воспользоваться, проверить, что условие бывает Иначе. И к (6) +1.
8. SedovSU@mail.ru 298 02.04.19 12:23 Сейчас в теме
(7) Да да тоже верно - это самое первое нужно сделать, нужно проверить заходит ли вообще туда программа
9. Tikle 02.04.19 12:32 Сейчас в теме
(8)Да, действительно, в первое условие попадаю, а во второе нет....
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот