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