Доброго дня!
Конфигурация БП 2.0. Можно ли как-то реализовать заполнение документа "Оказание услуг", используя документ "Счет на оплату", по умолчанию эти два вида никак не пересекаются ?
---
Короче жуткие извращения :

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

    Для Каждого ТекСтрокаТабличногоПоля Из ДанныеЗаполнения.Услуги Цикл
    Номенклатура = ТекСтрокаТабличногоПоля.Номенклатура;
    ЦенаИзТЧСчета = ТекСтрокаТабличногоПоля.Цена;
    КолИзТЧСчета = ТекСтрокаТабличногоПоля.Количество;
    СуммаизТЧСчета = ТекСтрокаТабличногоПоля.Сумма;
    СтавкаизТЧСчета = ТекСтрокаТабличногоПоля.СтавкаНДС;
    СуммаНДСизТЧСчета = ТекСтрокаТабличногоПоля.СуммаНДС;
    КонецЦикла;
    СтавкаНДС = СтавкаизТЧСчета;

    СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("91.01");
    СчетУчетаНДСПоРеализации = ПланыСчетов.Хозрасчетный.НайтиПоКоду("91.02");
    СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("91.02");
    Субконто = Справочники.ПрочиеДоходыИРасходы.НайтиПоКоду("00013");
    // создадим одну строку в табличной части и возьмем реквизиты из шапки счета на оплату
    СтрокаСостава = Контрагенты.Добавить();
    СтрокаСостава.Контрагент = ДанныеЗаполнения.Контрагент;
    СтрокаСостава.ДоговорКонтрагента = ДанныеЗаполнения.ДоговорКонтрагента;
    СтрокаСостава.Количество = КолИзТЧСчета;
    СтрокаСостава.Цена = ЦенаИзТЧСчета;
    СтрокаСостава.Сумма = СуммаизТЧСчета;
    СтрокаСостава.СуммаНДС = СуммаНДСизТЧСчета;
    СтрокаСостава.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01");
    СтрокаСостава.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");
    КонецЕсли;

    //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    КонецПроцедуры
```
---
стандартными средствами нет, надо дописывать конфигурацию
---
а много там курочить придется ?
---
не особо пару строчек чтобы можно было создать на основание документа "Счет на оплату" и в модуле объекта прописать реквизиты какие и как заполняются
---
делали уже такое ?
---
да
---
а вы делали именно в этих документах ? сел смотреть в Счете контаргент в шапке в документе Оказзание услуг - в табличной части, сама услуга в счете в табличной части в Оказание услуг в шапке...
---
+(4) в модуле объекта прописать реквизиты какие и как заполняются И еще отфильтровать по виду номенклатуры - в счете могут оказаться не только услуги.
---
А я бы через расширение предложила. Жалко конфигурацию снимать из-за такой ерунды
---
так вроде на 8.2 не работают расширения
---
Короче жуткие извращения :

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

    Для Каждого ТекСтрокаТабличногоПоля Из ДанныеЗаполнения.Услуги Цикл
    Номенклатура = ТекСтрокаТабличногоПоля.Номенклатура;
    ЦенаИзТЧСчета = ТекСтрокаТабличногоПоля.Цена;
    КолИзТЧСчета = ТекСтрокаТабличногоПоля.Количество;
    СуммаизТЧСчета = ТекСтрокаТабличногоПоля.Сумма;
    СтавкаизТЧСчета = ТекСтрокаТабличногоПоля.СтавкаНДС;
    СуммаНДСизТЧСчета = ТекСтрокаТабличногоПоля.СуммаНДС;
    КонецЦикла;
    СтавкаНДС = СтавкаизТЧСчета;

    СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("91.01");
    СчетУчетаНДСПоРеализации = ПланыСчетов.Хозрасчетный.НайтиПоКоду("91.02");
    СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("91.02");
    Субконто = Справочники.ПрочиеДоходыИРасходы.НайтиПоКоду("00013");
    // создадим одну строку в табличной части и возьмем реквизиты из шапки счета на оплату
    СтрокаСостава = Контрагенты.Добавить();
    СтрокаСостава.Контрагент = ДанныеЗаполнения.Контрагент;
    СтрокаСостава.ДоговорКонтрагента = ДанныеЗаполнения.ДоговорКонтрагента;
    СтрокаСостава.Количество = КолИзТЧСчета;
    СтрокаСостава.Цена = ЦенаИзТЧСчета;
    СтрокаСостава.Сумма = СуммаизТЧСчета;
    СтрокаСостава.СуммаНДС = СуммаНДСизТЧСчета;
    СтрокаСостава.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01");
    СтрокаСостава.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");
    КонецЕсли;

    //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    КонецПроцедуры
```
---
а про внешние обработки заполнения табличных частей никто не слышал, да?)