Ошибка в программе или может как-то по другому надо делать?

Новая тема
"Конфигурация Бухгалтерия предприятия, редакция 2.0 (2.0.22.1)

Ошибка состоит в том, что после корректировки долга надо выписывать счет-фактур на аванс, а это неправильно.

Получили денежные средства документом Платежка вх №1 от 01.02.11.
Перед формирование книги продаж, запускаем обработку Регистрация счетов фактур на аванс, и регистрируем счет фактуру.
Сформировали книгу продаж и книгу покупок за 1ый квартал.

01.04.11 делаем документ Корректировка долга и переносим аванс с одного договора на другой.
Запускаем обработку Регистрация счетов фактур на аванс и он опять мне говорит о том, что надо зарегистрировать счет фактур на аванс по документу Платежка вх №1 от 01.02.11, хотя на него уже было все зарегистрировано.

Мало того, корректировка долга, не исправляет регистр НДС с авансов. Поэтому, если даже убирать из регистрации строку неправильную, то в регистре по остаткам получится "минус".

Такая ошибка повторяется в связи с поиском счет-фактуры по контрагенту и договору, но т.к. мы договор поменяли, то естественно в выписанных уже не находит.

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

Или я что-то неправильно делаю?)"
Читают тему
(гостей: 1)

Быстрый переход