Как корректировать проводки операции

 

 

 

 

 

//*******************************************
Процедура ПереписатьКонтрагентаВОперации(мОпер)
 
 Опер = СоздатьОбъект("Операция");
 Опер.НайтиОперацию(мОпер);
 Опер.ВыбратьПроводки();
 
 Пока Опер.ПолучитьПроводку() = 1 Цикл
  Опер.Дебет.Контрагенты = НовыйКонтрагент;
 КонецЦикла; 
 
 Попытка 
  Опер.Записать(); 
  Сообщить("Скорректирована операция №"+Строка(Опер.Документ.НомерДок) + " от " + Строка(Опер.Документ.ДатаДок), "i");
 Исключение  
  Сообщить("Не могу скорректировать операцию"+Строка(Опер.Документ.НомерДок) + " от " + Строка(Опер.Документ.ДатаДок), "!");
 КонецПопытки
 

 
КонецПроцедуры
//*******************************************
Процедура Сформировать()
 
 Если Вопрос("Подтвердите корректировку", "Да+Нет") = "Нет" Тогда
  Возврат;
 Конецесли;
 
 
 Если Контрагент.Выбран() = 0 Тогда
  Возврат;
 КонецЕсли;
 
 Если НовыйКонтрагент.Выбран() = 0 Тогда
  Возврат;
 КонецЕсли;
  
 Если ПустоеЗначение(Дата1) = 1 Тогда
  Сообщить("Заполните период", "!");
  Возврат;  
 КонецЕсли; 
 
 Если ПустоеЗначение(Дата2) = 1 Тогда
  Сообщить("Заполните период", "!");
  Возврат;
 КонецЕсли;  
 
 Опер = СоздатьОбъект("Операция");
 
 Опер.ИспользоватьСубконто(ВидыСубконто.Контрагенты, Контрагент);
 
 Опер.ВыбратьОперацииСПроводками(Дата1, Дата2, "62.1, 90.1.1; ""1СТ77""");
   
 тзОпер = СоздатьОбъект("ТаблицаЗначений");
 тзОпер.НоваяКолонка("Опер"); 

 Пока Опер.ПолучитьПроводку() = 1 Цикл 
   
  мДокумент = Опер.Документ;
  
  Если мДокумент.Вид() <> "Операция" Тогда
  Продолжить; 
  КонецЕсли;
   
  тзОпер.НоваяСтрока();
  тзОпер.Опер = мДокумент.ТекущийДокумент();
  
 КонецЦикла;  
 
 тзОпер.Свернуть("Опер","");
 
 тзОпер.ВыбратьСтроки();
 
 Пока тзОпер.ПолучитьСтроку() = 1 Цикл
  
  ПереписатьКонтрагентаВОперации(тзОпер.Опер);
   
 КонецЦикла;
 

КонецПроцедуры  

//*******************************************
Процедура ПриОткрытии()
 
 спрКонтрагенты = СоздатьОбъект("Справочник.Контрагенты");
 спрКонтрагенты.НайтиПоКоду("Н0000446");
 Если спрКонтрагенты.Выбран() = 1 Тогда
  Контрагент = спрКонтрагенты.ТекущийЭлемент();
 Иначе
  Сообщить("Не найден контрагент с кодом 'Н0000446' Аптека №115.Обработка не может скорректировать операции по заданному контрагенту","!");
 КонецЕсли;
 
 
 спрКонтрагенты.НайтиПоКоду("Ц0000074");
 Если спрКонтрагенты.Выбран() = 1 Тогда
  НовыйКонтрагент = спрКонтрагенты.ТекущийЭлемент();
  
 Иначе  
  Сообщить("Не найден контрагент 'НЕВИС ООО' Обработка не может отнести операции на заданного контрагента.","!");
 КонецЕсли;
   
 
КонецПроцедуры