Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 мая 2024, 11:59

Затирание записей в регистре накопления

Автор Sasha1C, 10 окт 2023, 10:01

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

Sasha1C

Доброе утро, при записывании данных в регистр накопления "Резервы номенклатуры" столкнулся с проблемой затирания данных, при комментрировании последней строки все работает исправно. Регистр накопления имеет следующие измерения:
Основание-Документссылка.Счет, Склад - справочникссылка.Склады, Номенклатура -Справочникссылка.Номенклатура.
Для избежания затирания данных я использовал набор записей для обьявления, а для записи изменения в регистр я использовал наборЗаписей1.для форума.png
 
Движение = НаборЗаписейПоложительноеДвижение1.Добавить();
Движение.Регистратор = ЭтотОбъект.Ссылка;
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = ЭтотОбъект.Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Склад = Выборка.Склад;
Движение.Резерв =Выборка.РезервОстаток;
//Движение.Основание = Выборка.Счет;
Фото 2 происходит при отмене комментирования в последней строке движения.
для форума 2.png   
Подскажите пожалуйста с чем это может быть связано ?

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

Заранее благодарен!!

GetNight

1. Когда ты заполняешь Основание, то туда попадает скорее всего пустая ссылка документа Счет
2. Когда НЕ заполняешь, там, возможно, там остаётся значение Неопределено (например, если несколько типов)
3. В запросе у тебя фильтр по основаниям, которые соответствуют явным образом условию:
 Основание В (ВЫБРАТЬ ТЧСчет.Счет КАК Счет ИЗ ТЧСчет КАК ТЧСчет)
4. Вывод - это условие не выполняется из-за пункта 2: нужно либо менять условие, либо заполнять (чтобы не было Неопределено) конкретно Документы.Счет.ПустаяСсылка()
5. Либо в запросе меняем условие отбора:
 Основание=Неопределено ИЛИ Основание В (ВЫБРАТЬ ТЧСчет.Счет КАК Счет ИЗ ТЧСчет КАК ТЧСчет)
или
 Основание В (ВЫБРАТЬ ТЧСчет.Счет КАК Счет ИЗ ТЧСчет КАК ТЧСчет ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Неопределено)
или
 Основание В (ВЫБРАТЬ Неопределено КАК Счет ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТЧСчет.Счет ИЗ ТЧСчет)
(может не совсем точно передал синтаксис, но, думаю, ты поправишь, как нужно)

как-то так ;)

Sasha1C


Теги:

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

Рейтинг@Mail.ru

Поиск