bdd2

Резервы по сомнительным долгам

Опубликовал Sergey Boltach (ser6702) в раздел Обработки - Обработка документов

Обновлен файл, убрана найденная ошибка по запросу (остатки дебетовые). Исправлена работа индикаторов.
Документ проверенный и работоспособный с открытым кодом и описаниями по тексту программы.
Напрямую может не работать только потому, что далеко не из типовой конфигурации, но после несложных грамотных поправок может работать в типовой конфигурации без проблем или в УПП.
Для типовой выложу отдельно, когда будет время.

Вставьте в конфигурацию как "ДОКУМЕНТ"
На второй закладке документа настройки, так как везде может быть свой план счетов 
Закладка снизу

Счета долгов, которые ваша организация считает нерискованным включать в СД, и если там субсчета входят те, кто исключаются.
Счета резервов (и долги кот к ним относятся), если их не более трех (в типовой один).

По тексту есть комментарии - на оптимальность не претендую, но на точность - все верно.
Что в БУ, что в НУ - главное чтоб были в наличие субконто "РасчетыДокументовСКонтрагентами" на счетах долгов. В НУ учтено, что, например, по опред. счету надо учитывать из этих доков только Реализацию и т.д.
Документ заполняется автоматически и соответственно рассчитываются максимальные суммы РСД по контрагентам и документам и с учетом выручка превысила или нет 10% и т.д. Руками док править можно - без проблем. Но тогда сами сверяйтесь с законодательством :)
И еще, Песочный цвет - это безнадежные долги, а синий - это где создаются резервы в БУ. Остальное не выделял.

Документ предназначен для отражения в учете операций формирования резервов по сомнительным долгам контрагентов для целей бухгалтерского и налогового учета, постоянных разниц.

Дата документа автоматически устанавливается на конец квартала (месяца).

При вводе документа в шапке необходимо указать следующие реквизиты:

  • Подразделение организации. Производственное подразделение организации. Значение реквизита выбирается из справочника "Подразделения организаций". Реквизит является обязательным для заполнения, при  заполнении следует выбирать основное подразделение организации. При этом задолженность будет выводиться по всей организации без учета указанного подразделения.
  • Прочие доходы, Прочие расходы. Аналитика на соответствующих счетах бухгалтерского и налогового учетов. Элемент справочника "Прочие доходы и расходы".

Поле «Сумма выручки» заполняется автоматически, при нажатии кнопки заполнить, по следующей формуле:

Кредитовый оборот по счету 90.01.

 – Дебетовый оборот по счету 90.03.

+ Оборот по кредиту  счета 91.01 Объекты со значением реквизита «Вид прочих доходов и расходов» - «Доходы (расходы), связанный с реализацией прочего имущества».

 – Оборот по дебету счета 91.02 Объекты со значением реквизита «Вид прочих доходов и расходов» - «Доходы (расходы), связанный с реализацией прочего имущества» в корреспонденции со счетом 68.02.

+ Оборот по кредиту  счета 91.01 Объекты со значением реквизита «Вид прочих доходов и расходов» - «Доходы (расходы), связанные с реализацией нематериальных активов».

 -  Оборот по дебету счета 91.02 Объекты со значением реквизита «Вид прочих доходов и расходов» - «Доходы (расходы), связанные с реализацией нематериальных активов» в корреспонденции со счетом 68.02.

+  Оборот по кредиту счета 91.01 Объекты со значением реквизита «Вид прочих доходов и расходов» - «Доходы (расходы), связанные с реализацией основных средств».

 -  Оборот по дебету счета 91.02 Объекты со значением реквизита «Вид прочих доходов и расходов» - «Доходы (расходы), связанные с реализацией основных средств» в корреспонденции со счетом 68.02.

            + Оборот по кредиту счета 91.01 Объекты со значением реквизита «Вид прочих доходов и расходов»:

- Доходы (расходы), связанные с реализацией ценных бумаг.

- Доходы (расходы), связанные с реализацией права требования до наступления срока платежа.

- Доходы (расходы), связанные с реализацией права требования после наступления срока платежа.

- Доходы (расходы), связанные с реализацией права требования как оказания финансовых услуг.

- Доходы (расходы), связанные с реализацией имущественных прав, кроме права требования.

В табличной части заполняются следующие реквизиты:

  • Счет. Счет взаиморасчетов с контрагентом за товары (работы, услуги).
  • Контрагент. Контрагент - покупатель.
  • Договор. Договор контрагента. При изменении контрагента (и автоматическом заполнении для счетов, для которых не предусмотрена аналитика по договорам контрагентов) заполняется основным договором контрагента.
  • Расчетный документ. Долгообразующий документ.
  • Сумма задолженности. Сумма просроченной задолженности. При автоматическом заполнении это соответствует дебетовому сальдо по счетам из списка (см. выше) на границу времени документа. Просроченной является задолженность, если дата долгообразующего документа+значение реквизита «КоличествоДнейНаОплатуОбязательств» из договора менее даты документа.
  • Доля задолженности. Доля задолженности, относимая в резерв по сомнительным долгам.
  • Новый резерв БУ. Сумма резерва на следующий квартал для целей бухгалтерского учета, определяется как сумма задолженности *доля задолженности.
  • Более 90 дней, От 45 до 90 дней, Менее 45 дней. Градация суммы задолженности в зависимости от количества дней просрочки для расчета резерва для НУ.
  • Новый резерв НУ. Сумма резерва на следующий квартал для целей налогового учета.

Заполнение табличной части остатками по счетам из списка (см. выше) и счету 63 бухгалтерского учета с помощью кнопки "Заполнить".

В соответствии с требованиями, создание резерва на счете 63 для бухгалтерского учета формируется в разрезе "Контрагентов" и "Договоров".

Так же документом рассчитываются постоянные разницы возникающие при разном порядке формирования резерва по сомнительным долгам в бухгалтерском и налоговом учете.

Рассчитываем сумму задолженности, используемую для расчета БУ и сумму задолженности, используемую для расчета НУ
из расчета, что все по 10% и заполняем документ тем, что получили в этом запросе.

Рассчитываем вес, исходя из суммы долга:
ДоляЗадолженностиБУ=СуммаВыручкиБУ/СуммаДолгаДляБУ*0.1;
ДоляЗадолженностиНУ=СуммаВыручкиНУ/СуммаДолгаДляНУ*0.1;
далее:
НовыйРезервБУ=СуммаЗадолженности*ДоляЗадолженностиБУ;
НовыйРезервНУ=(Стр.Более90+Стр.От45до90/2)*ДоляЗадолженностиНУ;
и
КорректировкаРезерваБУ=НовыйРезервБУ-ОстатокРезерваПредыдущегоПериодаБУ+СписаноБезнадежнойЗадолженностиБУ; 
КорректировкаРезерваНУ=НовыйРезервНУ-ОстатокРезерваПредыдущегоПериодаНУ+СписаноБезнадежнойЗадолженностиНУ;

Скачать файлы

Наименование Файл Версия Размер
002.JPG
.JPG 135,15Kb
18.04.12
103
.JPG 135,15Kb 103 Скачать
КС_СозданиеРезервовПоСомнительнымДолгам.epf
.epf 77,22Kb
26.04.13
22
.epf 77,22Kb 22 Скачать

См. также

Добавить вознаграждение
Комментарии
0. Sergey Boltach (ser6702) 37 07.12.11 06:22 Сейчас в теме
Обновлен файл, убрана найденная ошибка по запросу (остатки дебетовые). Исправлена работа индикаторов.
Документ проверенный и работоспособный с открытым кодом и описаниями по тексту программы.
Напрямую может не работать только потому, что далеко не из типовой конфигурации, но после несложных грамотных поправок может работать в типовой конфигурации без проблем или в УПП.
Для типовой выложу отдельно, когда будет время.


Перейти к публикации

1. Елена Пищенюк (Formika) 07.12.11 06:22 Сейчас в теме
Приветствую любые обработки помогающие создавать и отслеживать резервы по сомнительным долгам!
2. Олеся Пронина (olesechka) 4 08.12.11 16:13 Сейчас в теме
!!Вставьте в конфигурацию как "ДОКУМЕНТ"!! - объясните пожалуйста, как это сделать. Спасибо
3. Sergey Boltach (ser6702) 37 10.12.11 16:43 Сейчас в теме
Откройте свою базу в режиме конфигуратора
Найдите обработки, добавьте туда эту обработку
Потом перенесите ее в раздел документы
4. Кирилл Зайцев (korida) 24.12.11 20:57 Сейчас в теме
Я не ас, а потому вопрос, обновление потом уже самостоятельно не сделаешь без потерь? Если документ новый добавить...Или я ошибаюсь?
5. Sergey Boltach (ser6702) 37 26.01.12 00:09 Сейчас в теме
(4) korida,
На самом деле при обновлении этот документ всегда будет оставаться неизменным, так как в типовой ему нет альтернативы. И с другими объектами он вобщем то не пересекается. Но конечно используемы в нем объекты должны присутствовать в конфигурации. При желании Ваш программист может взять за основу алгоритм заполнения документа и проводок. Убрать лишнее или добавить что то.
Формирование проводок не я выдумывал - это мне указывали как должно быть - если что не так - текст открыт.
Если кто то видит проблемы или ошибки в чем то - буду благодарен за подробные их описания.
6. amorhis (iotkin) 01.03.12 10:06 Сейчас в теме
Хотелось бы потестить обработку. Можно скинуть на tdv-mbx собака yandex.ru Заранее спасибо. Плюсую авансом
7. Наталья Кондрашова (natalika1601) 137 06.07.12 09:07 Сейчас в теме
Выходит ошибка Таблица не найдена "Документ.КСП_ПриложениеКДоговору"
ЛЕВОЕ СОЕДИНЕНИЕ <<?>>Документ.КСП_ПриложениеКДоговору КАК КСП_ПриложениеКДоговору
Я правильно поняла, что не находится документ КСП_ПриложениеКДоговору? Если да, то где его взять?
8. Александр Куклин (deathExpectation) 75 30.07.12 08:22 Сейчас в теме
Да очень хотелось бы знать что это за документ такой "КСП_ПриложениеКДоговору" и как обойтись его отсутствием в типовой конфигурации ?, заранее спасибо.
9. Sergey Boltach (ser6702) 37 26.04.13 21:16 Сейчас в теме
Очень просто - этот документ по сути мне только мешал. Но у нас сложная система договоров. В запросе надо оставить обращение только к справочнику договоров контрагентов, когда определяется дата расчетов с контрагентом. Я постараюсь сейчас привести текст здесь измененного запроса
10. Sergey Boltach (ser6702) 37 26.04.13 21:27 Сейчас в теме
Процедура КоманднаяПанель1Заполнить(Кнопка)

Перем лкЗапрос,лкРезультат;
Перем лкСтрТаб,лкСтрТЧ;

Если Резервы.Количество() > 0 Тогда
Ответ = Вопрос("В документе уже присутствуют строки!
|При заполнении табличная часть будет очищена
|Продолжить?", РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Нет);
Если Не Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Резервы.Очистить();
КонецЕсли;
Состояние("Формируем выручку по БУ и НУ",,,);
//Формируем выручку по БУ и НУ
ФормированиеВыручки(СуммаВыручкиНУ,СуммаВыручкиБУ);

СчетаДолгов = Новый Массив; //добавляемые счета
СчетаИскл = Новый Массив; //исключенные счета

//
ФормированиеСчетовДолговПараметровЗапроса(СчетаДолгов,СчетаИскл);

Состояние("Формируем задолженности на конец периода",,,);

лкЗапрос=Новый Запрос;
лкЗапрос.УстановитьПараметр("Организация",Организация);
лкЗапрос.УстановитьПараметр("НачПериода", новый граница(НачалоМесяца(Дата),ВидГраницы.Включая));//обГраница(МоментВремени()));
лкЗапрос.УстановитьПараметр("КонПериода", новый граница(КонецМесяца(Дата)+1,ВидГраницы.Исключая));//обГраница(МоментВремени()));
лкЗапрос.УстановитьПараметр("СчетаДолгов",СчетаДолгов);
лкЗапрос.УстановитьПараметр("СчетаИскл",СчетаИскл);

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


лкРезультат=лкЗапрос.Выполнить().Выгрузить();


СуммаДолгаДляБУ=0;
СуммаДолгаДляНУ=0;

//==========================================================­======
//Это расчитываем сумму задолженности, используемую для расчета БУ и сумму задолженности, используемую для расчета НУ
//пока из расчета что все по 10% и заполняем документ тем что получили в этом запросе
//Сколько - это для прогрессбара

Прогресс = ЭлементыФормы.Индикатор1;

ЭлементыФормы.Индикатор1.Видимость=Истина;
Прогресс.МинимальноеЗначение = 0;
Прогресс.МаксимальноеЗначение = лкРезультат.Количество();
Индикатор1=0;

Для Каждого лкСтрТаб Из лкРезультат Цикл
Состояние("расчитываем сумму задолженности, используемую для расчета БУ
|и сумму задолженности, используемую для расчета НУ
|из расчета все по 10% и заполняем документ",,,);
Индикатор1=Индикатор1+1;
Если ТипЗнч(лкСтрТаб.Договор)=Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
лкДоговор=лкСтрТаб.Договор;
КонецЕсли;
лкДокумент=лкСтрТаб.Документ;

Если ОбщегоНазначения.ЗначениеНеЗаполнено(лкДокумент) Тогда
лкДата=лкСтрТаб.ДатаОкончанияДоговора;
Иначе
лкДата=лкСтрТаб.ДатаДокумента;
КонецЕсли;

Если ОбщегоНазначения.ЗначениеНеЗаполнено(лкДата) Тогда
Продолжить; //1
//лкДата=Дата( "200001010000");// рассмотреть получение даты из договора
КонецЕсли;

Если лкСтрТаб.СуммаОстатокДт<=0 Тогда
Продолжить; //2 отрицательные суммы не берутся
КонецЕсли;

Если ОбщегоНазначения.ЗначениеНеЗаполнено(лкДоговор) Тогда
лкКоличествоДнейНаОплатуОбязательств=0;
Иначе
лкКоличествоДнейНаОплатуОбязательств=лкСтрТаб.КоличествоДнейНаОплатуОбязательств;
КонецЕсли;

лкКоличествоДней=(НачалоДня(КонецДня(Дата)+1)-(КонецДня(лкДата)+лкКоличествоДнейНаОплатуОбязательств*60*60*24))/(60*60*24);
лкДнейДляСравнения=(НачалоДня(КонецДня(Дата)+1)-(КонецДня(лкДата)))/(60*60*24);

//не настала дата платежа
Если лкКоличествоДней<=0 Тогда
Продолжить;//3
КонецЕсли;

лкСтрТЧ=Резервы.Добавить();
лкСтрТЧ.КоличествоДнейНаОплатуОбязательств=лкСтрТаб.КоличествоДнейНаОплатуОбязательств;
лкСтрТЧ.Счет=лкСтрТаб.Счет;
лкСтрТЧ.Контрагент=лкСтрТаб.Контрагент;
лкСтрТЧ.Договор=лкДоговор;
лкСтрТЧ.РасчетныйДокумент=лкДокумент;
лкСтрТЧ.ДнейПросрочено = лкДнейДляСравнения-лкКоличествоДнейНаОплатуОбязательств;
лкСтрТЧ.СуммаЗадолженности=лкСтрТаб.СуммаОстатокДт;
лкСтрТЧ.ДатаРасчетногоДокумента=лкДата;
//Для БУ
Если лкСтрТЧ.ДнейПросрочено >= 366 и лкСтрТЧ.ДнейПросрочено <= 365*3 Тогда //Больше года и меньше трех лет для БУ
лкСтрТЧ.ДоляЗадолженности = 0.1;
лкСтрТЧ.ВключитьВРезервБУ=Истина;
Иначе //Меньше года или больше трех лет для БУ
лкСтрТЧ.ДоляЗадолженности=0;
лкСтрТЧ.ВключитьВРезервБУ=Ложь;
КонецЕсли;
//Для НУ

Если лкСтрТЧ.ДнейПросрочено <= 365*3 Тогда //Меньше трех лет для НУ
//В резерв по НУ включаем только счета 62 и 76.06 - то есть Расчеты по работам,услугам,товарам
//==========================================================­====
//по 62 всегда только документ РеализацияТоваровИУслуг
Если лкСтрТЧ.Счет.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками) или
лкСтрТЧ.Счет=ПланыСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками Тогда
лкСтрТЧ.ДоляЗадолженностиНУ=0.1;
лкСтрТЧ.ВключитьВРезервНУ=Истина;
//Конец определения когда и что мы включим в резерв СД по НУ
//==========================================================­====
КонецЕсли;
//по 76 не всегда только документ РеализацияТоваровИУслуг
//поэтому надо бы чтоб ненужное не попадало в НУ
Если лкСтрТЧ.Счет.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПокупателямиИЗаказчиками)
или лкСтрТЧ.Счет=ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПокупателямиИЗаказчиками Тогда
Если ТипЗнч(лкСтрТЧ.РасчетныйДокумент)=Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
лкСтрТЧ.ДоляЗадолженностиНУ=0.1;
лкСтрТЧ.ВключитьВРезервНУ=Истина;
КонецЕсли;
//Конец определения когда и что мы включим в резерв СД по НУ
//==========================================================­====
КонецЕсли;

Иначе
лкСтрТЧ.ДоляЗадолженностиНУ=0;
лкСтрТЧ.ВключитьВРезервНУ=Ложь;
КонецЕсли;

лкСтрТЧ.МаксимальныйРезервБУ=Окр(лкСтрТЧ.СуммаЗадолженности*лкСтрТЧ.ДоляЗадолженности,2,1);


//Расписываем задолженности в столбики
Если лкСтрТЧ.ДнейПросрочено>90 Тогда
лкСтрТЧ.Более90=лкСтрТЧ.СуммаЗадолженности;
//лкСтрТЧ.Более90=лкСтрТЧ.СуммаЗадолженности*?(лкСтрТЧ.ВключитьВРезервНУ=Истина,1,0);
ИначеЕсли лкСтрТЧ.ДнейПросрочено>=45 И лкСтрТЧ.ДнейПросрочено<=90 Тогда
лкСтрТЧ.От45до90=лкСтрТЧ.СуммаЗадолженности;
//лкСтрТЧ.От45до90=лкСтрТЧ.СуммаЗадолженности*?(лкСтрТЧ.ВключитьВРезервНУ=Истина,1,0);
Иначе
лкСтрТЧ.Менее45=лкСтрТЧ.СуммаЗадолженности;
//лкСтрТЧ.Менее45=лкСтрТЧ.СуммаЗадолженности*?(лкСтрТЧ.ВключитьВРезервНУ=Истина,1,0);
КонецЕсли;

//Новый резерв пока используем для хранения временных данных

лкСтрТЧ.НовыйРезервНУ= лкСтрТЧ.Более90*лкСтрТЧ.ДоляЗадолженностиНУ + лкСтрТЧ.От45до90/2*лкСтрТЧ.ДоляЗадолженностиНУ;

Если лкСтрТЧ.ВключитьВРезервНУ Тогда
лкСтрТЧ.МаксимальныйРезервНУ= лкСтрТЧ.Более90 + лкСтрТЧ.От45до90/2;
КонецЕсли;
Если лкСтрТЧ.ДоляЗадолженности>0 Тогда
СуммаДолгаДляБУ=СуммаДолгаДляБУ+лкСтрТЧ.СуммаЗадолженности;
КонецЕсли;

Если лкСтрТЧ.ДоляЗадолженностиНУ>0 Тогда
СуммаДолгаДляНУ=СуммаДолгаДляНУ+лкСтрТЧ.НовыйРезервНУ/лкСтрТЧ.ДоляЗадолженностиНУ;
КонецЕсли;
КонецЦикла;

ЭлементыФормы.Индикатор1.Видимость=Ложь;



//расчитываем вес
Если СуммаДолгаДляБУ<>0 Тогда
ДоляЗадолженностиБУ = СуммаВыручкиБУ/СуммаДолгаДляБУ*0.1;
Иначе
ДоляЗадолженностиБУ = 0;
КОнецЕсли;
Если СуммаДолгаДляНУ<>0 Тогда
ДоляЗадолженностиНУ = СуммаВыручкиНУ/СуммаДолгаДляНУ*0.1;
Иначе
ДоляЗадолженностиНУ = 0;
КОнецЕсли;

Для Каждого Стр Из Резервы Цикл

Если Стр.ВключитьВРезервБУ и Стр.ДоляЗадолженности>0 Тогда
Стр.НовыйРезервБУ= Стр.СуммаЗадолженности*ДоляЗадолженностиБУ;
Если Стр.НовыйРезервБУ>Стр.МаксимальныйРезервБУ Тогда
Стр.НовыйРезервБУ=Стр.МаксимальныйРезервБУ;
КонецЕсли;
КонецЕсли;

Если Стр.ВключитьВРезервНУ и Стр.ДоляЗадолженностиНУ>0 Тогда
Стр.НовыйРезервНУ= (Стр.Более90 + Стр.От45до90/2)*ДоляЗадолженностиНУ;
Если Стр.НовыйРезервНУ>Стр.МаксимальныйРезервНУ Тогда
Стр.НовыйРезервНУ=Стр.МаксимальныйРезервНУ;
КонецЕсли;
КонецЕсли;
КонецЦикла;


СчетРезерва = Новый Массив; //добавляемые счета
СчетРезерва.Добавить(ПланыСчетов.Хозрасчетный.РезервыПоСомнительнымДолгам); //счет 63
Состояние("Расчитываем входящие резервы",,,);

вхРезерв=Новый Запрос;
вхРезерв.Текст="ВЫБРАТЬ РАЗРЕШЕННЫЕ
| РезервыНачПериода.Субконто1 КАК Контрагент,
| РезервыНачПериода.Субконто2 КАК Договор,
| РезервыНачПериода.Субконто3 КАК Документ,
| РезервыНачПериода.Счет КАК СчетРезерва,
| РезервыНачПериода.СуммаОстатокКт КАК вхРезервБУ,
| РезервыНачПериода.СуммаНУОстатокКт КАК вхРезервНУ,
| ВложенныйЗапрос.Счет
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&вхПериод, Счет В ИЕРАРХИИ (&СчетРезерва), , Организация = &Организация) КАК РезервыНачПериода
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ХозрасчетныйОстатки.Счет КАК Счет,
| ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
| ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
| ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
| ХозрасчетныйОстатки.Организация КАК Организация
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| &НачПериода,
| Счет В ИЕРАРХИИ (&СчетаДолгов)
| И НЕ Счет В ИЕРАРХИИ (&СчетаИскл),
| ,
| ) КАК ХозрасчетныйОстатки) КАК ВложенныйЗапрос
| ПО РезервыНачПериода.Субконто1 = ВложенныйЗапрос.Субконто1
| И РезервыНачПериода.Субконто2 = ВложенныйЗапрос.Субконто2
| И РезервыНачПериода.Субконто3 = ВложенныйЗапрос.Субконто3
| И РезервыНачПериода.Организация = ВложенныйЗапрос.Организация
|
|УПОРЯДОЧИТЬ ПО
| Контрагент,
| СчетРезерва";

вхРезерв.УстановитьПараметр("Организация",Организация);
вхРезерв.УстановитьПараметр("вхПериод", новый граница(НачалоМесяца(Дата),ВидГраницы.Включая));//
вхРезерв.УстановитьПараметр("СчетРезерва",СчетРезерва);
вхРезерв.УстановитьПараметр("НачПериода", новый граница(НачалоМесяца(Дата),ВидГраницы.Исключая));//обГраница(МоментВремени()));
вхРезерв.УстановитьПараметр("СчетаДолгов",СчетаДолгов);
вхРезерв.УстановитьПараметр("СчетаИскл",СчетаИскл);
вхРезерв=вхРезерв.Выполнить().Выгрузить();

Прогресс.МинимальноеЗначение = 0;
Прогресс.МаксимальноеЗначение = вхРезерв.Количество();
Индикатор1=0;
ЭлементыФормы.Индикатор1.Видимость=Истина;

Для Каждого Стр Из вхРезерв Цикл
Состояние("Заполняем входящие резервы",,,);
отбор = новый структура;
//отбор.Вставить("Организация",стр.Организация);
отбор.Вставить("Контрагент",стр.Контрагент);
отбор.Вставить("Договор",стр.Договор);
отбор.Вставить("РасчетныйДокумент",стр.Документ);
стрТЧ = Резервы.НайтиСтроки(отбор);
если стрТЧ.Количество() = 0 тогда

новая = резервы.Добавить();
//Ну нет во вх остатках счета... заполним как бы чем то
//А уточнить придется руками тогда
Если НЕ ЗначениеЗаполнено(стр.счет) Тогда
новая.Счет = ПланыСчетов.Хозрасчетный.РасчетыСПокупателями;
Иначе
новая.Счет = стр.счет;
КонецЕсли;
новая.Контрагент = Стр.Контрагент;
новая.Договор=Стр.Договор;
новая.РасчетныйДокумент=Стр.Документ;
новая.ОстатокРезерваПредыдущегоПериодаБУ = стр.вхРезервБУ;
новая.ОстатокРезерваПредыдущегоПериодаНУ = стр.вхРезервНУ;
новая.ВключитьВРезервБУ = Истина;
новая.ВключитьВРезервНУ = истина;

иначе

стрТЧ[0].ОстатокРезерваПредыдущегоПериодаБУ=стр.вхРезервБУ;
стрТЧ[0].ОстатокРезерваПредыдущегоПериодаНУ=стр.вхРезервНУ;
стрТЧ[0].СчетРезерва=стр.СчетРезерва;
Попытка
ДатСравнение=((НачалоДня(Дата)-НачалоДня(Стр.РасчетныйДокумент.Дата))/60/60/24-стрТЧ[0].КоличествоДнейНаОплатуОбязательств);
Если ДатСравнение>365*3 Тогда
стрТЧ[0].СписаноБезнадежнойЗадолженностиБУ=стрТЧ[0].ОстатокРезерваПредыдущегоПериодаБУ;
стрТЧ[0].СписаноБезнадежнойЗадолженностиНУ=стрТЧ[0].ОстатокРезерваПредыдущегоПериодаНУ;
КонецЕсли;
Исключение;
КонецПопытки;

конецЕсли;
Индикатор1=Индикатор1+1;
КонецЦикла;
ЭлементыФормы.Индикатор1.Видимость=Ложь;



Для Каждого Стр Из Резервы Цикл
стр.КорректировкаРезерваБУ = стр.НовыйРезервБУ-стр.ОстатокРезерваПредыдущегоПериодаБУ+стр.СписаноБезнадежнойЗадолженностиБУ;
стр.КорректировкаРезерваНУ = стр.НовыйРезервНУ-стр.ОстатокРезерваПредыдущегоПериодаНУ+стр.СписаноБезнадежнойЗадолженностиНУ;
стр.ВключитьВРезервБУ = (стр.КорректировкаРезерваБУ <> 0);
стр.ВключитьВРезервНУ = (стр.КорректировкаРезерваНУ <> 0);
конецЦикла;
#Если Клиент Тогда
Предупреждение("Документ заполнен");
#КонецЕсли
КонецПроцедуры //КоманднаяПанель1Заполнить
11. Sergey Boltach (ser6702) 37 26.04.13 21:29 Сейчас в теме
(8) deathExpectation, вот текст самого запроса в процедуре заполнения
лкЗапрос.Текст="ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Контрагент,
| Остатки.Субконто2 КАК Договор,
| Остатки.Субконто3 КАК Документ,
| Остатки.Субконто3.Дата КАК ДатаДокумента,
| ЕСТЬNULL(Остатки.СуммаОстатокДт, 0) КАК СуммаОстатокДт,
| ВЫБОР
| КОГДА Остатки.Субконто2.УстановленСрокОплаты = ИСТИНА
| ТОГДА ЕСТЬNULL(Остатки.Субконто2.СрокОплаты, 0)
| КОГДА Остатки.Субконто2.УстановленСрокОплаты = ЛОЖЬ
| ТОГДА ЕСТЬNULL(Константы.СрокОплатыПокупателей, 0)
| КОНЕЦ КАК КоличествоДнейНаОплатуОбязательств,
| Остатки.Субконто2.ДатаОкончанияДоговора КАК ДатаОкончанияДоговора
|ИЗ
| (ВЫБРАТЬ
| ВложенныйЗапрос.Субконто1 КАК Субконто1,
| ВложенныйЗапрос.Субконто2 КАК Субконто2,
| ВложенныйЗапрос.Субконто3 КАК Субконто3,
| СУММА(ВложенныйЗапрос.СуммаОстатокДт) КАК СуммаОстатокДт,
| ВложенныйЗапрос.Счет КАК Счет
| ИЗ
| (ВЫБРАТЬ
| ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1,
| ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто2,
| ХозрасчетныйОстаткиИОбороты.Субконто3 КАК Субконто3,
| ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
| ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаОстатокДт
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
| &НачПериода,
| &КонПериода,
| ,
| ДвиженияИГраницыПериода,
| Счет В ИЕРАРХИИ (&СчетаДолгов)
| И НЕ Счет В ИЕРАРХИИ (&СчетаИскл),
| ,
| Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Счет,
| ВложенныйЗапрос.Субконто1,
| ВложенныйЗапрос.Субконто2,
| ВложенныйЗапрос.Субконто3) КАК Остатки,
| Константы КАК Константы
|ГДЕ
| Остатки.СуммаОстатокДт > 0
|
|УПОРЯДОЧИТЬ ПО
| Счет,
| Контрагент,
| ДатаДокумента
|АВТОУПОРЯДОЧИВАНИЕ";
12. борян петров (TODD22) 15 20.07.13 10:35 Сейчас в теме
(8)Скажите пожалуйста чем данный документ отличается от стандартного механизма в 1С?

С меня бух просит ей внешний отчёт сделать(или обработку) для расчёта резерва. Но ей нужен резерв в БУ.

В 1С есть механизм расчёта резервов. Но я так и не понял чем он её не устраивает. Может подскажите если уже разбирались в данной теме?
13. Sergey Boltach (ser6702) 37 20.07.13 14:26 Сейчас в теме
В 1С это справка? Или этот механизм делает проводки?
Он позволяет автоматически выполнять данную процедуру?
Он позволяет настраивать под себя план счетов? Если тот не типовой?
Если ответите что да - значит не нужен этот документ, а появился он еще до того как 1С внесла свой
14. Ольга Алексеева (Luchik17-87) 26.02.14 01:02 Сейчас в теме
А как это добавляется как документ?
15. Sergey Boltach (ser6702) 37 26.02.14 11:37 Сейчас в теме
(14) Luchik17-87,

Откройте свою базу в режиме конфигуратора
Найдите обработки, добавьте туда эту обработку
Потом перенесите ее в раздел документы


16. Sergey Boltach (ser6702) 37 26.02.14 11:40 Сейчас в теме
(14) Luchik17-87,

и еще

8. deathExpectation 30.07.2012 08:22
Да очень хотелось бы знать что это за документ такой "КСП_ПриложениеКДоговору" и как обойтись его отсутствием в типовой конфигурации ?, заранее спасибо.
Ответили: (11)
9. ser6702 26.04.2013 21:16
Очень просто - этот документ по сути мне только мешал. Но у нас сложная система договоров. В запросе надо оставить обращение только к справочнику договоров контрагентов, когда определяется дата расчетов с контрагентом. Я постараюсь сейчас привести текст здесь измененного запроса