| 1 |
Функция ЗаполнениеПоДокументуОснованию() |
| 2 |
Перем ЗарезервированниеТовары, ТекСтрокаИтогов; |
| 3 |
Если ДокОснование.Выбран()=0 Тогда |
| 4 |
Возврат "Документ - основание не выбран!"; |
| 5 |
КонецЕсли; |
| 6 |
ВидОсн = ДокОснование.Вид(); |
| 7 |
Если (ВидОсн БЮ "ЗаявкаПокупателя") Тогда |
| 8 |
Возврат "Неверный вид документа - основания!"; |
| 9 |
КонецЕсли; // вид ДокОснования |
| 10 |
РегОбщ = СоздатьОбъект("Регистры"); |
| 11 |
РегЗаявки = РегОбщ.Заявки; |
| 12 |
// заполняем недополученными по заявке товарами |
| 13 |
РегЗаявки.УстановитьЗначениеФильтра("ЗаявкаПокупателя", ДокОснование, 1); |
| 14 |
// если нужно, то выполним временный расчет регистра |
| 15 |
Если Выбран() = 0 Тогда //Новый документ |
| 16 |
Если ДатаДок Б ПолучитьДатуТА() Тогда // выписываемый задним числом |
| 17 |
РегЗаявки.ВременныйРасчет(); |
| 18 |
РегОбщ.РассчитатьРегистрыПо(ДатаДок); |
| 19 |
КонецЕсли; |
| 20 |
Иначе // Сохраненный документ |
| 21 |
Если СравнитьТА() Б 1 Тогда // Позиция не больше ТА |
| 22 |
РегЗаявки.ВременныйРасчет(); |
| 23 |
РегОбщ.РассчитатьРегистрыНа(ТекущийДокумент()); |
| 24 |
КонецЕсли; |
| 25 |
КонецЕсли; |
| 26 |
РегЗаявки.ВыгрузитьИтоги(ЗарезервированниеТовары, 1, 1); |
| 27 |
ЗарезервированниеТовары.Свернуть("Номенклатура", "КоличествоРасход,СтоимостьРасход"); |
| 28 |
ВалОстатков = Договор.ВалютаВзаиморасчетов; |
| 29 |
// При заполнении на основании Заявки цены, суммы и скидки надо брать из основания |
| 30 |
ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений"); |
| 31 |
ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента); |
| 32 |
ТаблицаДокумента.ВыбратьСтроки(); |
| 33 |
Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл |
| 34 |
// Есть остатки по этой строке? |
| 35 |
ТекСтрокаИтогов = 0; |
| 36 |
Если ЗарезервированниеТовары.НайтиЗначение(ТаблицаДокумента.Номенклатура, ТекСтрокаИтогов, "Номенклатура") = 0 Тогда // нет остатков |
Комментарии