| ВводНаОсновании |
| 1 | Процедура Сформировать() АктЕГАИС = Форма.Параметр; ТТНИсх = АктЕГАИС.ДокументОснование; Расх = ТТНИсх.ДокументОснование; Док = СоздатьОбъект("Документ.АктОРасхождении"); Док.Новый(); Док.Записать(); глЗаполнитьШапкуНаОсн(Док, Расх); Если ПустоеЗначение(Док.Клиент) = 0 Тогда Док.Менеджер = Док.Клиент.Менеджер; КонецЕсли; Если Док.ВидСФ = 0 Тогда Док.ВидСФ = 1; КонецЕсли; Док.Валюта = Расх.Валюта; Док.Курс = Расх.Курс; Док.Дата_Курса = Расх.Дата_Курса; Док.УчитыватьНП = Расх.УчитыватьНП; Док.Цех = Расх.Цех; ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Товар"); ТЗ.НоваяКолонка("Себестоимость", "Число", 15, 2); ТЗ.НоваяКолонка("Стоимость", "Число", 15, 2); ТЗ.НоваяКолонка("Количество", "Число"); Рег = СоздатьОбъект("Регистр.ПартииТоваров"); Осн = Расх; Пока ПустоеЗначение(Осн) = 0 Цикл Рег.ВыбратьДвиженияДокумента(Осн); Пока Рег.ПолучитьДвижение() = 1 Цикл Знак = Рег.Расход - Рег.Приход; ТЗ.НоваяСтрока(); ТЗ.Товар = Рег.Товар; ТЗ.Себестоимость = Знак * Рег.ПродСтоимость; ТЗ.Стоимость = Знак * Рег.Стоимость; ТЗ.Количество = Знак * Рег.ОстатокТовара; КонецЦикла; ВидОсн = Осн.Вид(); Если (ВидОсн = "РасходнаяНакладная") или (ВидОсн = "РасходнаяНакладнаяОпт") Тогда Прервать; КонецЕсли; Осн = Осн.ДокументОснование; КонецЦикла; ТЗ.Свернуть("Товар", "Себестоимость,Стоимость,Количество"); Док.УдалитьСтроки(); Расх.ВыбратьСтроки(); Пока Расх.ПолучитьСтроку() = 1 Цикл Док.НоваяСтрока(); Док.Товар = Расх.Товар; Док.КоличествоДо = Расх.Количество; Док.Количество = Расх.Количество; Док.Единица = Расх.Единица; Док.ЦенаДо = Расх.Цена; Док.Цена = Расх.Цена; Док.Коэффициент = Расх.Коэффициент; Док.СуммаДо = Расх.Сумма; Док.Сумма = Расх.Сумма; Док.СтавкаНДС = Расх.СтавкаНДС; Док.НДС_До = Расх.НДС; Док.НДС = Расх.НДС; Док.СтавкаНП = Расх.СтавкаНП; Док.СуммаНП_До = Расх.СуммаНП; Док.СуммаНП = Расх.СуммаНП; Поз = 0; Если ТЗ.НайтиЗначение(Док.Товар, Поз, "Товар") = 1 Тогда ТЗ.ПолучитьСтрокуПоНомеру(Поз); Коэфф = Док.Количество ?(ТЗ.Количество = 0, 1, ТЗ.Количество); Док.СебестоимостьСумма = Коэфф * ТЗ.Себестоимость; Док.СебестоимостьСуммаДо = Док.СебестоимостьСумма; Док.СебестоимостьЦена = Док.СебестоимостьСумма ?(Док.Количество = 0, 1, Док.Количество); Док.СебестоимостьЦенаДо = Док.СебестоимостьЦена; Док.Стоимость = Коэфф * ТЗ.Стоимость; КонецЕсли; КонецЦикла; Док.Записать(); Форма.Закрыть(); КонецПроцедуры Процедура ПриОткрытии() Сформировать(); КонецПроцедуры |
Комментарии