Как корректировать проводки операции |
//******************************************* Процедура ПереписатьКонтрагентаВОперации(мОпер) Опер = СоздатьОбъект("Операция"); Опер.НайтиОперацию(мОпер); Опер.ВыбратьПроводки(); Пока Опер.ПолучитьПроводку() = 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 Тогда НовыйКонтрагент = спрКонтрагенты.ТекущийЭлемент(); Иначе Сообщить("Не найден контрагент 'НЕВИС ООО' Обработка не может отнести операции на заданного контрагента.","!"); КонецЕсли; КонецПроцедуры |