Замена основного договора для БП 3.0
Обработка подменяет договор документа на основной договор контрагента.
Подключается стандартно, через дополнительные отчеты и обработки.
Тестировалось на:
1С:Предприятие 8.3 (8.3.20.1789)
Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.113.17)
- Описание
- Подробнее
Описание
Простенькая обработка для замены договоров.
Поможет, если Вам нужно поменять договор в большом количестве документов, или с обменом в бухгалтерию прилетают документы с разными договорами, а БП ведется учет по одному основному договору.
На форме можно отобрать период за который отбираются документы, организацию, контрагента (если не выбран, тогда работает по всем контрагентам) и виды документов.
Отбирает 6 видов документов:
- Списание с расчетного счета;
- Поступление на расчетный счет;
- Реализация товаров и услуг;
- Счета — фактуры;
- Возвраты товаров от покупателя;
- Корректировка реализации.
По кнопке "Проверить" заполняется таблица с документами.
По кнопке "Исправить" меняется договор в документе. Отрабатывает только по тем строкам, где стоит галка в колонке "Пометка".
В таблицу попадают только документы, у которых договор шапки не равен договору выбранному основным у контрагента. Дополнительно проверяется вид договора — работает только по договорам с покупателями.
Пример запроса:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИСТИНА КАК Пометка,
| КорректировкаРеализации.Проведен КАК Проведен,
| КорректировкаРеализации.Контрагент КАК Контрагент,
| КорректировкаРеализации.Ссылка КАК Документ,
| КорректировкаРеализации.ДоговорКонтрагента КАК ДоговорВДокументе,
| ОсновныеДоговорыКонтрагента.Договор КАК ОсновнойДоговор,
| ЛОЖЬ КАК Выполнено
|ИЗ
| Документ.КорректировкаРеализации КАК КорректировкаРеализации
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеДоговорыКонтрагента КАК ОсновныеДоговорыКонтрагента
| ПО КорректировкаРеализации.Организация = ОсновныеДоговорыКонтрагента.Организация
| И КорректировкаРеализации.Контрагент = ОсновныеДоговорыКонтрагента.Контрагент
| И (ОсновныеДоговорыКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем))
|ГДЕ
| &КорректировкаРеализации
| И КорректировкаРеализации.ДоговорКонтрагента <> ОсновныеДоговорыКонтрагента.Договор
| И КорректировкаРеализации.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И КорректировкаРеализации.Организация = &Организация
| И (КорректировкаРеализации.Контрагент В (&Контрагент)
| ИЛИ &ВсеКлиенты)
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ИСТИНА,
| РеализацияТоваровУслуг.Проведен,
| РеализацияТоваровУслуг.Контрагент,
| РеализацияТоваровУслуг.Ссылка,
| РеализацияТоваровУслуг.ДоговорКонтрагента,
| ОсновныеДоговорыКонтрагента.Договор,
| ЛОЖЬ
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеДоговорыКонтрагента КАК ОсновныеДоговорыКонтрагента
| ПО РеализацияТоваровУслуг.Организация = ОсновныеДоговорыКонтрагента.Организация
| И РеализацияТоваровУслуг.Контрагент = ОсновныеДоговорыКонтрагента.Контрагент
| И (ОсновныеДоговорыКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем))
|ГДЕ
| &Реализация
| И РеализацияТоваровУслуг.ДоговорКонтрагента <> ОсновныеДоговорыКонтрагента.Договор
| И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И РеализацияТоваровУслуг.Организация = &Организация
| И (РеализацияТоваровУслуг.Контрагент В (&Контрагент)
| ИЛИ &ВсеКлиенты)
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ИСТИНА,
| СчетФактураВыданный.Проведен,
| СчетФактураВыданный.Контрагент,
| СчетФактураВыданный.Ссылка,
| СчетФактураВыданный.ДоговорКонтрагента,
| ОсновныеДоговорыКонтрагента.Договор,
| ЛОЖЬ
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеДоговорыКонтрагента КАК ОсновныеДоговорыКонтрагента
| ПО СчетФактураВыданный.Организация = ОсновныеДоговорыКонтрагента.Организация
| И СчетФактураВыданный.Контрагент = ОсновныеДоговорыКонтрагента.Контрагент
| И (ОсновныеДоговорыКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем))
|ГДЕ
| &СчетФактура
| И СчетФактураВыданный.ДоговорКонтрагента <> ОсновныеДоговорыКонтрагента.Договор
| И СчетФактураВыданный.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И СчетФактураВыданный.Организация = &Организация
| И (СчетФактураВыданный.Контрагент В (&Контрагент)
| ИЛИ &ВсеКлиенты)
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ИСТИНА,
| ВозвратТоваровОтПокупателя.Проведен,
| ВозвратТоваровОтПокупателя.Контрагент,
| ВозвратТоваровОтПокупателя.Ссылка,
| ВозвратТоваровОтПокупателя.ДоговорКонтрагента,
| ОсновныеДоговорыКонтрагента.Договор,
| ЛОЖЬ
|ИЗ
| Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеДоговорыКонтрагента КАК ОсновныеДоговорыКонтрагента
| ПО ВозвратТоваровОтПокупателя.Организация = ОсновныеДоговорыКонтрагента.Организация
| И ВозвратТоваровОтПокупателя.Контрагент = ОсновныеДоговорыКонтрагента.Контрагент
| И (ОсновныеДоговорыКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем))
|ГДЕ
| &ВозвратТоваровОтПокупателя
| И ВозвратТоваровОтПокупателя.ДоговорКонтрагента <> ОсновныеДоговорыКонтрагента.Договор
| И ВозвратТоваровОтПокупателя.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И ВозвратТоваровОтПокупателя.Организация = &Организация
| И (ВозвратТоваровОтПокупателя.Контрагент В (&Контрагент)
| ИЛИ &ВсеКлиенты)
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ИСТИНА,
| СписаниеСРасчетногоСчета.Проведен,
| СписаниеСРасчетногоСчета.Контрагент,
| СписаниеСРасчетногоСчета.Ссылка,
| СписаниеСРасчетногоСчета.ДоговорКонтрагента,
| ОсновныеДоговорыКонтрагента.Договор,
| ЛОЖЬ
|ИЗ
| Документ.СписаниеСРасчетногоСчета КАК СписаниеСРасчетногоСчета
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеДоговорыКонтрагента КАК ОсновныеДоговорыКонтрагента
| ПО СписаниеСРасчетногоСчета.Организация = ОсновныеДоговорыКонтрагента.Организация
| И СписаниеСРасчетногоСчета.Контрагент = ОсновныеДоговорыКонтрагента.Контрагент
| И (ОсновныеДоговорыКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем))
|ГДЕ
| &СписаниеСРасчетногоСчета
| И СписаниеСРасчетногоСчета.ДоговорКонтрагента <> ОсновныеДоговорыКонтрагента.Договор
| И СписаниеСРасчетногоСчета.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И СписаниеСРасчетногоСчета.Организация = &Организация
| И (СписаниеСРасчетногоСчета.Контрагент В (&Контрагент)
| ИЛИ &ВсеКлиенты)
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ИСТИНА,
| ПоступлениеНаРасчетныйСчет.Проведен,
| ПоступлениеНаРасчетныйСчет.Контрагент,
| ПоступлениеНаРасчетныйСчет.Ссылка,
| ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента,
| ОсновныеДоговорыКонтрагента.Договор,
| ЛОЖЬ
|ИЗ
| Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеДоговорыКонтрагента КАК ОсновныеДоговорыКонтрагента
| ПО ПоступлениеНаРасчетныйСчет.Организация = ОсновныеДоговорыКонтрагента.Организация
| И ПоступлениеНаРасчетныйСчет.Контрагент = ОсновныеДоговорыКонтрагента.Контрагент
| И (ОсновныеДоговорыКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем))
|ГДЕ
| &ПоступлениеНаРасчетныйСчет
| И ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента <> ОсновныеДоговорыКонтрагента.Договор
| И ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И ПоступлениеНаРасчетныйСчет.Организация = &Организация
| И (ПоступлениеНаРасчетныйСчет.Контрагент В (&Контрагент)
| ИЛИ &ВсеКлиенты)";
Запрос.УстановитьПараметр("ДатаНач", Период.ДатаНачала);
Запрос.УстановитьПараметр("ДатаКон", Период.ДатаОкончания);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("СписаниеСРасчетногоСчета", СписаниеСРасчетногоСчета);
Запрос.УстановитьПараметр("ПоступлениеНаРасчетныйСчет", ПоступлениеНаРасчетныйСчет);
Запрос.УстановитьПараметр("Реализация", Реализация);
Запрос.УстановитьПараметр("СчетФактура", СчетФактура);
Запрос.УстановитьПараметр("ВозвратТоваровОтПокупателя", ВозвратТоваровОтПокупателя);
Запрос.УстановитьПараметр("КорректировкаРеализации", КорректировкаРеализации);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Если ЗначениеЗаполнено(Контрагент) Тогда
Запрос.УстановитьПараметр("ВсеКлиенты", Ложь);
Иначе
Запрос.УстановитьПараметр("ВсеКлиенты", Истина);
КонецЕсли;
Выборка = Запрос.Выполнить();
ТабЗап = Выборка.Выгрузить();
ВывестиТаблицуНаФорму(ЭтаФорма, "СписокДокументов", ТабЗап);
Исправление договора производится только в шапке документа. По договорам в табличных частях (например в поступлении БДС) договор НЕ ПОМЕНЯЕТ.
Если договор изменен, тогда строка с документом подкрасится зеленым, если записать документ с новым договором не удалось, тогда строка останется не окрашенной.