Имя: Пароль:
1C
 
При переносе через кд 2.1 в БП 3 создаются лишние доки
0 program345
 
02.07.19
08:55
Из базы источника переношу документ Отчет комиссионера о продажах, и счет фактура для него, в бп при этом счет фактура помечена на удаление и создается еще одна счет фактура (171 номер на скрине)
https://yadi.sk/i/dMf6_gOGsOVlCg
1 program345
 
02.07.19
08:56
в еще одной счет -фактуре создался комментарий "Создан автоматически на основании документа отчет комиссионера о продажах"
2 program345
 
02.07.19
08:57
как отключить создание счет-фактур автоматом при обмене?
3 program345
 
02.07.19
08:58
естественно в источнике счет-фактура проведена
4 Exxter
 
02.07.19
09:01
(3) СФ создаётся при проведении ОКОПа
5 Exxter
 
02.07.19
09:04
+(4) ВыставленСФ смотри
6 program345
 
02.07.19
09:07
(4) что такое ОКОП?
7 program345
 
02.07.19
09:07
может ОКОПФ?
8 Exxter
 
02.07.19
09:09
(7) Отчёт комиссионера о продажах = ОКОП
9 program345
 
02.07.19
09:11
(8) ок спасибо,

по глобальному поиску нашел процедуру где создается комментарий (создано автоматически)

Процедура НайтиСоздатьПодчиненныеСчетаФактуры(ДокументСсылка, ДанныеСчетовФактур, ПодчиненныеСчетаФактуры, ИмяТаблицы)

    ЕстьСоглашениеЭД = НаличиеСоглашенияЭДСКомиссионером();
    
    Для каждого СтрокаТаблицы Из ДанныеСчетовФактур Цикл
        
        ВерсияКодовВидовОпераций = УчетНДСКлиентСервер.ВерсияКодовВидовОпераций(СтрокаТаблицы.ДатаСФ);
        
        СтрокаСФ = НайтиСтрокуСчетаФактуры(ПодчиненныеСчетаФактуры, СтрокаТаблицы);
        
        Если СтрокаСФ <> Неопределено Тогда
            
            Если День(СтрокаСФ.ДатаСФ) <> День(СтрокаТаблицы.ДатаСФ)
                ИЛИ СтрокаСФ.СводныйСФ <> СтрокаТаблицы.СводныйСФ Тогда
                
                ДокументСФ        =  СтрокаСФ.Ссылка.ПолучитьОбъект();
                Если День(СтрокаСФ.ДатаСФ) <> День(СтрокаТаблицы.ДатаСФ) Тогда
                    Если ТипЗнч(ДокументСФ) = Тип("ДокументОбъект.СчетФактураВыданный") Тогда
                        ДокументСФ.Дата = СтрокаТаблицы.ДатаСФ;
                    Иначе
                        ДокументСФ.ДатаВходящегоДокумента = СтрокаТаблицы.ДатаСФ;
                    КонецЕсли;
                КонецЕсли;
                
                ДокументСФ.СводныйКомиссионный = СтрокаТаблицы.СводныйСФ;
                ДокументСФ.ДополнительныеСвойства.Вставить("ОбновлятьРеквизитыПриЗаписи", Ложь);
                ДокументСФ.ДополнительныеСвойства.Вставить("ГрупповоеПерепроведение", ПроведениеСервер.ГрупповоеПерепроведение(ЭтотОбъект));
                Если ДополнительныеСвойства.Свойство("РегистрыТребующиеОчисткиПоДокументам") Тогда
                    ДокументСФ.ДополнительныеСвойства.Вставить("РегистрыТребующиеОчисткиПоДокументам",
                        ДополнительныеСвойства.РегистрыТребующиеОчисткиПоДокументам);
                КонецЕсли;
                ДокументСФ.Записать();
                // Обновить значение строки таблицы с счетами-фактурами
                ЗаполнитьЗначенияСвойств(СтрокаСФ, СтрокаТаблицы);
                ЗаполнитьЗначенияСвойств(СтрокаСФ, ДокументСФ);
            КонецЕсли;
            
            СтрокаТЧ = ЭтотОбъект[ИмяТаблицы].Найти(СтрокаТаблицы.КлючСтроки, "КлючСтроки");
            Если СтрокаТЧ <> Неопределено Тогда
                СтрокаТЧ.СчетФактура = СтрокаСФ.Ссылка;
                СтрокаСФ.Использован = Истина;
            КонецЕсли;
            Продолжить;
            
        ИначеЕсли ИмяТаблицы = "Покупатели" Тогда    
            
            Если НЕ УчетНДС.ФорматныйКонтрольИННиКППКонтрагентаПройден(СтрокаТаблицы.Покупатель, "Выданный", Ложь) Тогда
                Продолжить;
            КонецЕсли;
            
            ДокументСФ = Документы.СчетФактураВыданный.СоздатьДокумент();
            
            ДокументСФ.Дата            = СтрокаТаблицы.ДатаСФ;
            ДокументСФ.Организация     = Организация;
            ДокументСФ.Ответственный   = Пользователи.ТекущийПользователь();
            ДокументСФ.Контрагент      = СтрокаТаблицы.Покупатель;
            ДокументСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию;
            ДокументСФ.Комментарий     = НСтр("ru = 'Создан автоматически на основании документа отчет комиссионера о продажах'");
            
            ДокументСФ.СводныйКомиссионный = СтрокаТаблицы.СводныйСФ;
            
            Если ДокументСФ.СводныйКомиссионный Тогда
                ДокументСФ.КодВидаОперации = "27";
            Иначе
                ДокументСФ.КодВидаОперации = ?(ВерсияКодовВидовОпераций < 3, "04", "01");
            КонецЕсли;
            
            Если ЕстьСоглашениеЭД Тогда
                
                ДокументСФ.КодСпособаВыставления = 2;
                ДокументСФ.Выставлен = Ложь;
                ДокументСФ.ДатаВыставления = '00010101';
                ДокументСФ.ДополнительныеСвойства.Вставить("ЕстьСоглашение", Истина);
                
            Иначе
                
                ДокументСФ.КодСпособаВыставления    = 1;
                ДокументСФ.Выставлен                = Истина;
                ДокументСФ.ДатаВыставления            = ЭтотОбъект.Дата;
                
            КонецЕсли;
            
            ОтветственныеЛицаБП.УстановитьОтветственныхЛиц(ДокументСФ);
            
            ДокументСФ.ДокументыОснования.Добавить().ДокументОснование = ДокументСсылка;
        
            // Счет-фактура только что сформирован, заполним данные платежно-расчетных документов
            Если ЗначениеЗаполнено(ДокументСсылка) Тогда
                МассивОснований = Новый Массив;
                МассивОснований.Добавить(ДокументСсылка);
                
                ДокументСФ.ПлатежноРасчетныеДокументы.Очистить();
                ДокументСФ.ПлатежноРасчетныеДокументы.Загрузить(
                    Документы.СчетФактураВыданный.ДатыНомераПлатежноРасчетныхДокументов(МассивОснований));
            КонецЕсли;
                
        ИначеЕсли ИмяТаблицы = "Возвраты" Тогда
            
            ПараметрыСчетаФактуры = Новый Структура("Организация, Контрагент", Организация, Контрагент);
            ПараметрыСчетаФактуры.Вставить("НомерСчетаФактурыПолученного", СтрокаТаблицы.НомерСФ);
            ПараметрыСчетаФактуры.Вставить("ДатаСчетаФактурыПолученного", СтрокаТаблицы.ДатаСФ);
            ПараметрыСчетаФактуры.Вставить("Продавец", СтрокаТаблицы.Покупатель);
            
            ДокументСФ = УчетНДСПереопределяемый.НайтиСчетФактуруПолученный(ПараметрыСчетаФактуры);
            
            Если ДокументСФ = Неопределено Тогда
                
                Если НЕ УчетНДС.ФорматныйКонтрольИННиКППКонтрагентаПройден(СтрокаТаблицы.Покупатель, "Полученный", Ложь) Тогда
                    Продолжить;
                КонецЕсли;
                
                ДокументСФ = Документы.СчетФактураПолученный.СоздатьДокумент();
                
                ДокументСФ.Дата                        = Дата;
                ДокументСФ.ДатаВходящегоДокумента      = СтрокаТаблицы.ДатаСФ;
                ДокументСФ.НомерВходящегоДокумента     = СтрокаТаблицы.НомерСФ;
                ДокументСФ.Организация                = Организация;
                ДокументСФ.Ответственный            = Пользователи.ТекущийПользователь();
                ДокументСФ.Продавец                    = СтрокаТаблицы.Покупатель;
                ДокументСФ.Контрагент                = Контрагент;
                ДокументСФ.ВидСчетаФактуры            = Перечисления.ВидСчетаФактурыПолученного.НаПоступление;
                ДокументСФ.Комментарий                = НСтр("ru = 'Создан автоматически на основании документа отчет комиссионера о продажах'");
                
                ДокументСФ.ВозвратЧерезКомиссионера = Истина;
                ДокументСФ.КодВидаОперации          = ?(ВерсияКодовВидовОпераций < 3, "03", "01");
                ДокументСФ.КодСпособаПолучения      = 1;
            Иначе
                ДокументСФ = ДокументСФ.ПолучитьОбъект();
            КонецЕсли;
            
            Если Дата >= '20150101'
                И ДокументСф.Продавцы.Найти(СтрокаТаблицы.Покупатель, "Продавец") = Неопределено Тогда
                ДокументСф.Продавцы.Очистить();
                ДокументСФ.Продавцы.Добавить().Продавец = СтрокаТаблицы.Покупатель;
            КонецЕсли;
            
            Если ДокументСф.ДокументыОснования.Найти(ДокументСсылка, "ДокументОснование") = Неопределено Тогда
                ДокументСФ.ДокументыОснования.Добавить().ДокументОснование = ДокументСсылка;
            КонецЕсли;
            
        КонецЕсли;
        
        ДокументСФ.ДополнительныеСвойства.Вставить("ОбновлятьРеквизитыПриЗаписи", Ложь);
        ДокументСФ.ДополнительныеСвойства.Вставить("ГрупповоеПерепроведение", ПроведениеСервер.ГрупповоеПерепроведение(ЭтотОбъект));
        Если ДополнительныеСвойства.Свойство("РегистрыТребующиеОчисткиПоДокументам") Тогда
            ДокументСФ.ДополнительныеСвойства.Вставить("РегистрыТребующиеОчисткиПоДокументам",
                ДополнительныеСвойства.РегистрыТребующиеОчисткиПоДокументам);
        КонецЕсли;
        ДокументСФ.Записать();
        
        // Этот новый счет-фактуру нужно зафиксировать в таблице счетов-фактур
        СтрокаСФ = ПодчиненныеСчетаФактуры.Добавить();
        ЗаполнитьЗначенияСвойств(СтрокаСФ, СтрокаТаблицы);
        ЗаполнитьЗначенияСвойств(СтрокаСФ, ДокументСФ);
        
        СтрокаТЧ = ЭтотОбъект[ИмяТаблицы].Найти(СтрокаТаблицы.КлючСтроки, "КлючСтроки");
        Если СтрокаТЧ <> Неопределено Тогда
            СтрокаТЧ.СчетФактура = СтрокаСФ.Ссылка;
            СтрокаСФ.Использован = Истина;
        КонецЕсли;
        
    КонецЦикла;

КонецПроцедуры
10 Exxter
 
02.07.19
09:16
(9) Убери галку в ТЧ как написано в (5)
11 program345
 
05.07.19
08:57
(10) спасибо, проблема была с контрагентом в переносимой счет-фактуре.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.