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