![]() |
|
| ||
hawk1 03.10.20 - 15:33 | При проведении ПКО создаю заказ поставщику
Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда Если ТипЗнч(ТекущийОбъект.ДокументОснование) = Тип("ДокументСсылка.ЗаказКлиента") Тогда Отбор = Новый Структура; Отбор.Вставить("ВариантОплаты", Перечисления.ВариантыОплатыКлиентом.АвансДоОбеспечения); СтрокаАванса = ТекущийОбъект.ДокументОснование.ЭтапыГрафикаОплаты.НайтиСтроки(Отбор); Если ТекущийОбъект.СуммаДокумента >= СтрокаАванса[0].СуммаПлатежа Тогда ЗаказПоставщику = Документы.ЗаказПоставщику.СоздатьДокумент(); ЗаказПоставщику.Дата = ТекущаяДата(); ЗаказПоставщику.Валюта = Константы.ВалютаРегламентированногоУчета.Получить(); ЗаказПоставщику.Организация = Объект.ДокументОснование.Организация; ЗаказПоставщику.Склад = ЗначениеНастроекПовтИсп.ПолучитьСкладПоУмолчанию(ЗаказПоставщику.Склад, ПолучитьФункциональнуюОпцию("ИспользоватьСкладыВТабличнойЧастиДокументовЗакупки")); ЗаказПоставщику.Приоритет = Справочники.Приоритеты.ПолучитьПриоритетПоУмолчанию(ЗаказПоставщику.Приоритет); ЗаказПоставщику.Партнер = Справочники.Партнеры.НайтиПоНаименованию(ТекущийОбъект.ДокументОснование.Товары[0].Номенклатура.Производитель.Наименование); ЗаказПоставщику.Статус = Перечисления.СтатусыЗаказовПоставщикам.Согласован; Для Каждого СтрокаЗаказа Из ТекущийОбъект.ДокументОснование.Товары Цикл Если Справочники.Партнеры.НайтиПоНаименованию(СтрокаЗаказа.Номенклатура.Производитель.Наименование) <> ЗаказПоставщику.Партнер Тогда ЗаказПоставщику.СуммаДокумента = ЗаказПоставщику.Товары.Итог("Сумма"); ЗаказПоставщику.Записать(РежимЗаписиДокумента.Проведение); ЗаказПоставщику = Документы.ЗаказПоставщику.СоздатьДокумент(); ЗаказПоставщику.Дата = ТекущаяДата(); ЗаказПоставщику.Валюта = Константы.ВалютаРегламентированногоУчета.Получить(); ЗаказПоставщику.Организация = Объект.ДокументОснование.Организация; ЗаказПоставщику.Склад = ЗначениеНастроекПовтИсп.ПолучитьСкладПоУмолчанию(ЗаказПоставщику.Склад, ПолучитьФункциональнуюОпцию("ИспользоватьСкладыВТабличнойЧастиДокументовЗакупки")); ЗаказПоставщику.Приоритет = Справочники.Приоритеты.ПолучитьПриоритетПоУмолчанию(ЗаказПоставщику.Приоритет); ЗаказПоставщику.Партнер = Справочники.Партнеры.НайтиПоНаименованию(СтрокаЗаказа.Номенклатура.Производитель.Наименование); ЗаказПоставщику.Статус = Перечисления.СтатусыЗаказовПоставщикам.Согласован; КонецЕсли; СтрокаТЧ = ЗаказПоставщику.Товары.Добавить(); СтрокаТЧ.Номенклатура = СтрокаЗаказа.Номенклатура; СтрокаТЧ.Характеристика = СтрокаЗаказа.Характеристика; СтрокаТЧ.Количество = СтрокаЗаказа.Количество; СтрокаТЧ.СтавкаНДС = СтрокаЗаказа.СтавкаНДС; СтрокаТЧ.ВидЦеныПоставщика = Справочники.ВидыЦенПоставщиков.НайтиПоНаименованию("Закупочная"); Отбор = Новый Структура; Отбор.Вставить("Номенклатура", СтрокаТЧ.Номенклатура); Отбор.Вставить("Партнер", ЗаказПоставщику.Партнер); Отбор.Вставить("ВидЦеныПоставщика", Справочники.ВидыЦенПоставщиков.НайтиПоНаименованию("Закупочная")); ВыборкаЦены = РегистрыСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(ТекущаяДата(), Отбор); Если ВыборкаЦены.Количество() > 0 Тогда Цена = ВыборкаЦены[0].Цена; Иначе Цена = 0; КонецЕсли; СтрокаТЧ.Цена = Цена; СтрокаТЧ.Сумма = СтрокаТЧ.Цена * СтрокаТЧ.Количество; СтрокаТЧ.СуммаСНДС = СтрокаТЧ.Сумма; КонецЦикла; ЗаказПоставщику.СуммаДокумента = ЗаказПоставщику.Товары.Итог("Сумма"); ЗаказПоставщику.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; КонецЕсли; КонецЕсли; Но при попытке проведения выдается сообщение о том что склад не заполнен. Если же не заполнять склад и приоритет, документ проводится, но поле количество в табличной части Товары остается пустым. Что не так? | ||
hhhh 1 - 03.10.20 - 16:05 | (0) а где
СтрокаТЧ.КоличествоУпаковок = ??? это же поле Количество. Забыли? И строкаТЧ.Склад тоже нет. | ||
breezee 2 - 03.10.20 - 17:42 | Почему нельзя сделать процедуру в которой сначала сделать проверки типо Если ТипЗнч(ТекущийОбъект.ДокументОснование) <> Тип("ДокументСсылка.ЗаказКлиента") Тогда возврат; КонецЕсли; Если ТекущийОбъект.СуммаДокумента < СтрокаАванса[0].СуммаПлатежа Тогда возврат; КонецЕсли; А не писать 10 вложенных если? Почему обраащение к СтрокаАванса[0] без контрля что есть строки? | ||
PuhUfa 3 - 03.10.20 - 18:02 | (0) >>Если ТипЗнч(ТекущийОбъект.ДокументОснование) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
Я правильно понимаю что заказ поставщику вводится на основании ЗаказКлиента?
Тогда зачем вообще это все если в МО документа ЗаказПоставщику есть типовой: ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказКлиента") Тогда ЗаполнитьДокументНаОснованииЗаказа(ДанныеЗаполнения); |
|
Список тем форума
|