Вход | Регистрация
 

При переносе через кд 2.1 в БП 3 создаются лишние доки

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

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

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

    ЕстьСоглашениеЭД = НаличиеСоглашенияЭДСКомиссионером();
    
    Для каждого СтрокаТаблицы Из ДанныеСчетовФактур Цикл
        
        ВерсияКодовВидовОпераций = УчетНДСКлиентСервер.ВерсияКодовВидовОпераций(СтрокаТаблицы.ДатаСФ);
        
        СтрокаСФ = НайтиСтрокуСчетаФактуры(ПодчиненныеСчетаФактуры, СтрокаТаблицы);
        
        Если СтрокаСФ <> Неопределено Тогда
            
            Если День(СтрокаСФ.ДатаСФ) <> День(СтрокаТаблицы.ДатаСФ) 
                ИЛИ СтрокаСФ.СводныйСФ <> СтрокаТаблицы.СводныйСФ Тогда 
                
                ДокументСФ        =  СтрокаСФ.Ссылка.ПолучитьОбъект();
                Если День(СтрокаСФ.ДатаСФ) <> День(СтрокаТаблицы.ДатаСФ) Тогда
                    Если ТипЗнч(ДокументСФ) = Тип("ДокументОбъект.СчетФактураВыданный") Тогда
                        ДокументСФ.Дата = СтрокаТаблицы.ДатаСФ;
                    Иначе
                        ДокументСФ.ДатаВходящегоДокумента = СтрокаТаблицы.ДатаСФ;
                    КонецЕсли;
                КонецЕсли;
                
                ДокументСФ.СводныйКомиссионный = СтрокаТаблицы.СводныйСФ;
                ДокументСФ.ДополнительныеСвойства.Вставить("ОбновлятьРеквизитыПриЗаписи", Ложь);
                ДокументСФ.ДополнительныеСвойства.Вставить("ГрупповоеПерепроведение", ПроведениеСервер.ГрупповоеПерепроведение(ЭтотОбъект));
                Если ДополнительныеСвойства.Свойство("РегистрыТребующиеОчисткиПоДокументам") Тогда
                    ДокументСФ.ДополнительныеСвойства.Вставить("РегистрыТребующиеОчисткиПоДокументам",
                        ДополнительныеСвойства.РегистрыТребующиеОчисткиПоДокументам);
                КонецЕсли;
                ДокументСФ.Записать();
                // Обновить значение строки таблицы с счетами-фактурами

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

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

        СтрокаСФ = ПодчиненныеСчетаФактуры.Добавить();
        ЗаполнитьЗначенияСвойств(СтрокаСФ, СтрокаТаблицы);
        ЗаполнитьЗначенияСвойств(СтрокаСФ, ДокументСФ);
        
        СтрокаТЧ = ЭтотОбъект[ИмяТаблицы].Найти(СтрокаТаблицы.КлючСтроки, "КлючСтроки");
        Если СтрокаТЧ <> Неопределено Тогда 
            СтрокаТЧ.СчетФактура = СтрокаСФ.Ссылка;
            СтрокаСФ.Использован = Истина;
        КонецЕсли;
        
    КонецЦикла;

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.