Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> обращение к элементам РасшифровкаПлатежа ПлатежноеПоручениеИсходящее УПП 8.2          
svetas_l Подменю пользователя
сообщение 06.01.19, 22:37
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день!
Кто-то обращался к элементам РасшифровкаПлатежа из ПлатежноеПоручениеИсходящее.
Делаю платежное поручение исходящее, на основании счета оплаты поставщику,
1. в структуру подчинённости документа, платежное поручение заносится после счета.
Пытаюсь в конец процедуры проведения платежного поручения добавить движения по доп. регистру.
Само проведение отрабатывает, все нормально, ничто не ругается, все проводится.
Но, захожу в отладчике проверить свой код, и вижу:
1. в отладчике реквизит табличной части "расшифровка платежа" "сделка", почему-то не определён (хотя в структуру подчинённости документа, платежное поручение заносится после счета)
2. в отладчике со строки "если РасшифровкаПлатежа.Количество()>0 тогда" уходит в бесконечный цикл - виснет и не отвечает , хотя показывает в "Табло" что "РасшифровкаПлатежа.Количество()" =1 и сделка почему-то не определён.
В результате после точки останова на "если РасшифровкаПлатежа.Количество()>0 тогда" виснет полностью в процессе отладки , но без процесса отладки никаких ошибок не выдает и все проводится без ошибок.

Задача "достать свойство "сделка" документа ПлатежноеПоручениеИсходящее, через данную ссылку обратится к "счету поставщика", и вернуть из табличной части Счета Поставщика поле Номенклатура, в движение данного регистра" Но вылетает в процессе отладки, при этом ошибок без процесса отладки не даёт.
Прошу помощи, что неправильно в приведенном коде, чтобы не вылетало:

Структура = Новый Структура("Сделка", NULL);
    
Движения.Маржа_Объектов.Очистить();
если РасшифровкаПлатежа.Количество()>0 тогда
   Для Каждого ТекСтрокапроводки Из РасшифровкаПлатежа Цикл
        если        (ПустаяСтрока(ЭтотОбъект.Объект)=ложь) тогда    
                          
              
                ЗаполнитьЗначенияСвойств(Структура, Объект);
              
                   Если Структура.Сделка <> NULL тогда
                   Объект =  ТекСтрокапроводки.Сделка.ПолучитьОбъект();

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

                                 конецесли;    
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.ДДС)=ложь) тогда  
                                          Движение.ДДС_расхода=ТекСтрокапроводки.ДДС;
                                  иначе   Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Объект)=ложь) тогда  
                                         Движение.Объект=ТекСтрокапроводки.Объект;
                                  иначе  Движение.Объект=ЭтотОбъект.Объект;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Участок)=ложь) тогда  
                                         Движение.Участок=ТекСтрокапроводки.Участок;
                                  иначе  Движение.Участок=ЭтотОбъект.Участок;
                                    конецесли;  
              
                                  Движение.Номенклатура=ТекСтрокапроводки2.Номенклатура;
                                  Движение.НоменклатурныеГруппы= Справочники.Номенклатура.НайтиПоНаименованию(ТекСтрокапроводки2.Номенклатура).Родитель;
              
              
                                  Движение.Организация= Организация;
                                  Движение.Контрагент_док=    ЭтотОбъект.Контрагент;
                                  Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;

                                ////
                            конеццикла;
                        конецесли;
                        если ((Объект.Услуги.Количество()>0) и ((ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) или (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги))) тогда
                            Для Каждого ТекСтрокапроводки2 Из Объект.Услуги Цикл
                                        /////
                                  Движение = Движения.Маржа_Объектов.Добавить();
                                  Движение.Период=Этотобъект.Дата;
                                  Движение.Регистратор = Ссылка;
                                  Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
                                  Движение.Вид_документа=Справочники.Вид_документа.НайтиПоНаименованию("ПлатежноеПоручениеИсходящее");
              
              
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.Тип_номенклатуры)=ложь) тогда
                  
                                    если (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                    иначеесли (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                    конецесли;    
                  
                                 иначе
                                    если (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                   иначеесли (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                   конецесли;    

                                 конецесли;    
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.ДДС)=ложь) тогда  
                                          Движение.ДДС_расхода=ТекСтрокапроводки.ДДС;
                                  иначе   Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Объект)=ложь) тогда  
                                         Движение.Объект=ТекСтрокапроводки.Объект;
                                  иначе  Движение.Объект=ЭтотОбъект.Объект;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Участок)=ложь) тогда  
                                         Движение.Участок=ТекСтрокапроводки.Участок;
                                  иначе  Движение.Участок=ЭтотОбъект.Участок;
                                    конецесли;  
              
                                 Движение.Номенклатура=ТекСтрокапроводки2.Номенклатура;
                                 Движение.НоменклатурныеГруппы= Справочники.Номенклатура.НайтиПоНаименованию(ТекСтрокапроводки2.Номенклатура).Родитель;
              
              
                                  Движение.Организация= Организация;
                                  Движение.Контрагент_док=    ЭтотОбъект.Контрагент;
                                  Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;

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

                                 конецесли;    
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.ДДС)=ложь) тогда  
                                          Движение.ДДС_расхода=ТекСтрокапроводки.ДДС;
                                  иначе   Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Объект)=ложь) тогда  
                                         Движение.Объект=ТекСтрокапроводки.Объект;
                                  иначе  Движение.Объект=ЭтотОбъект.Объект;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Участок)=ложь) тогда  
                                         Движение.Участок=ТекСтрокапроводки.Участок;
                                  иначе  Движение.Участок=ЭтотОбъект.Участок;
                                    конецесли;  
              
                                               
              
                                  Движение.Организация= Организация;
                                  Движение.Контрагент_док=    ЭтотОбъект.Контрагент;
                                  Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;

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

                                 конецесли;    
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.ДДС)=ложь) тогда  
                                          Движение.ДДС_расхода=ТекСтрокапроводки.ДДС;
                                  иначе   Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Объект)=ложь) тогда  
                                         Движение.Объект=ТекСтрокапроводки.Объект;
                                  иначе  Движение.Объект=ЭтотОбъект.Объект;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Участок)=ложь) тогда  
                                         Движение.Участок=ТекСтрокапроводки.Участок;
                                  иначе  Движение.Участок=ЭтотОбъект.Участок;
                                    конецесли;  
              
                                               
              
                                  Движение.Организация= Организация;
                                  Движение.Контрагент_док=    ЭтотОбъект.Контрагент;
                                  Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;

               конецесли;
           конецесли;    
    КонецЦикла;
Иначе
       если        (ПустаяСтрока(ЭтотОбъект.Объект)=ложь) тогда    
          
          
               Движение = Движения.Маржа_Объектов.Добавить();
              
              
          
               Движение.Период=Этотобъект.Дата;
               Движение.Регистратор = Ссылка;
               Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
               Движение.Вид_документа=Справочники.Вид_документа.НайтиПоНаименованию("ПлатежноеПоручениеИсходящее");
              
               если (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                  
                  Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                  Движение.Сумма= ЭтотОбъект.СуммаДокумента;
                  Движение.Сумма_опл= ЭтотОбъект.СуммаДокумента;

               иначеесли (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                  Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                  Движение.Сумма_опл= ЭтотОбъект.СуммаДокумента;
              конецесли;    
              
               Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                                                                          
               Движение.Контрагент_док=    ЭтотОбъект.Контрагент;                                                                      
               Движение.Объект=ЭтотОбъект.Объект;
          
               Движение.Участок=ЭтотОбъект.Участок;
                
                Движение.Организация= Организация;
               Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;
            
        конецесли;    

конецесли;    
Движения.Маржа_Объектов.Записать();


Прошу помощи, что неправильно в приведенном коде, чтобы не вылетало.
Заранее спасибо.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 15:48
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!