|
УТ 11 программное заполнение заказа клиента | ☑ | ||
---|---|---|---|---|
0
mxs089
28.02.17
✎
12:07
|
подскажите, как нужно заполнять табличную часть документа?
сейчас использую метод ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ НО, в некоторых действиях используется метод Свойство() Интерфейс (управляемый)/Данные формы/ДанныеФормыЭлементКоллекции/Методы/Свойство у меня нет формы, и поэтому строку превращаю в структуру... следующий момент, я вываливаюсь с ошибками типа попытка установки значения в несуществующее поле, т.е. на форме документа определены какие то вспомогательные поля, которых нет в метаданных, я могу конечно наловить ошибок и добавить вручную недостающие поля, или переписать их с формы, но может есть какой то другой, типовой способ? |
|||
1
polosov
28.02.17
✎
12:42
|
(0) Ты создаешь док пакетно или форму используешь?
|
|||
2
mxs089
28.02.17
✎
13:06
|
(1) программно, на сервере
|
|||
3
Defender aka LINN
28.02.17
✎
13:10
|
(0) Это в каких же действиях используется "Свойство()"?
|
|||
4
polosov
28.02.17
✎
13:15
|
(2)
Для Каждого СтрокаТЧ ИЗ ПодготовленныеДанные.МассивСтрокТоваров Цикл НоваяСтрока = НовыйДок.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЧ); //Заполняется Номенклатура, Количество, КоличествоУпаковок КонецЦикла; УсловияПродажПоУмолчанию = ПродажиСервер.ПолучитьУсловияПродажПоУмолчанию( ПодготовленныеДанные.Шапка.Партнер, Новый Структура("УчитыватьГруппыСкладов, ВыбранноеСоглашение, ПустаяСсылкаДокумента", Истина, НовыйДок.Соглашение, Документы.ЗаказКлиента.ПустаяСсылка())); НовыйДок.НалогообложениеНДС = ЗначениеНастроекПовтИсп.ПолучитьНалогообложениеНДС(НовыйДок.Организация, НовыйДок.Склад, НовыйДок.Дата); Если УсловияПродажПоУмолчанию <> Неопределено Тогда Если НЕ ИспользоватьСоглашенияСКлиентами ИЛИ (НовыйДок.Соглашение <> УсловияПродажПоУмолчанию.Соглашение И ЗначениеЗаполнено(УсловияПродажПоУмолчанию.Соглашение)) Тогда НовыйДок.Соглашение = УсловияПродажПоУмолчанию.Соглашение; НовыйДок.ЗаполнитьУсловияПродаж(УсловияПродажПоУмолчанию); Если ИспользоватьСоглашенияСКлиентами Тогда СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(НовыйДок); ПродажиСервер.ЗаполнитьЦены( НовыйДок.Товары, , // Массив строк или структура отбора Новый Структура( // Параметры заполнения "Дата, Валюта, Соглашение, РасчитыватьНаборы, ПоляЗаполнения", НовыйДок.Дата, НовыйДок.Валюта, НовыйДок.Соглашение, Истина, "Цена, СтавкаНДС, ВидЦены, СрокПоставки" ), Новый Структура( // Структура действий с измененными строками "ПересчитатьСумму, ПересчитатьСуммуСНДС, ПересчитатьСуммуНДС, ПересчитатьСуммуРучнойСкидки, ОчиститьАвтоматическуюСкидку, ПересчитатьСуммуСУчетомРучнойСкидки", "КоличествоУпаковок", СтруктураПересчетаСуммы, СтруктураПересчетаСуммы, "КоличествоУпаковок", Неопределено, Новый Структура("Очищать", Ложь))); КонецЕсли; Иначе НовыйДок.Соглашение = УсловияПродажПоУмолчанию.Соглашение; Если ИспользоватьСоглашенияСКлиентами Тогда СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(НовыйДок); ПродажиСервер.ЗаполнитьЦены( НовыйДок.Товары, , // Массив строк или структура отбора Новый Структура( // Параметры заполнения "Дата, Валюта, Соглашение, РасчитыватьНаборы, ПоляЗаполнения", НовыйДок.Дата, НовыйДок.Валюта, НовыйДок.Соглашение, Истина, "Цена, СтавкаНДС, ВидЦены, СрокПоставки" ), Новый Структура( // Структура действий с измененными строками "ПересчитатьСумму, ПересчитатьСуммуСНДС, ПересчитатьСуммуНДС, ПересчитатьСуммуРучнойСкидки, ОчиститьАвтоматическуюСкидку, ПересчитатьСуммуСУчетомРучнойСкидки", "КоличествоУпаковок", СтруктураПересчетаСуммы, СтруктураПересчетаСуммы, "КоличествоУпаковок", Неопределено, Новый Структура("Очищать", Ложь))); КонецЕсли; КонецЕсли; УстановитьСпецЦены(НовыйДок); СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(НовыйДок); СтруктураДействий = Новый Структура; СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", НовыйДок.НалогообложениеНДС); СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", НовыйДок.ВернутьМногооборотнуюТару); СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСумму"); КешированныеЗначения = Неопределено; ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(НовыйДок.Товары, СтруктураДействий, КешированныеЗначения); Иначе ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(НовыйДок.Партнер, НовыйДок.Контрагент); Соглашение = Неопределено; КонецЕсли; НовыйДок.БанковскийСчетКонтрагента = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетКонтрагентаПоУмолчанию(НовыйДок.Контрагент, , НовыйДок.БанковскийСчетКонтрагента); ПартнерыИКонтрагенты.ЗаполнитьКонтактноеЛицоПартнераПоУмолчанию(НовыйДок.Партнер,НовыйДок.КонтактноеЛицо); //Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьУправлениеДоставкой") Тогда // НовыйДок.АдресДоставки = ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации(НовыйДок.Партнер); //КонецЕсли; НовыйДок.НалогообложениеНДС = ЗначениеНастроекПовтИсп.ПолучитьНалогообложениеНДС(НовыйДок.Организация, НовыйДок.Склад, НовыйДок.Дата); НовыйДок.Комментарий = "#Загружен с сайта" + " #" + НеПодготовленныеДанные.Комментарий; |
|||
5
Defender aka LINN
28.02.17
✎
13:32
|
(4) Ни единого "Свойство()" не найдено.
|
|||
6
polosov
28.02.17
✎
13:33
|
(5) Ну я тоже не знаю зачем ему Свойство.
Это рабочий код загрузки заказов с сайта. |
|||
7
Defender aka LINN
28.02.17
✎
13:39
|
(6) В (0) русским по белому написано:
"сейчас использую метод ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ НО, в некоторых действиях используется метод Свойство() " В (4) никаких таких "некоторых действий" нет. В (6) вообще говорится "Это рабочий код". Тебе чего надо-то, вообще, поговорить? |
|||
8
polosov
28.02.17
✎
13:43
|
(7) Если ты внимательно посмотришь в (4), то ты увидишь некоторые действия.
Таки юный падаван скорее всего имеет в виду, что в обработчиках действий идет обращение к методу структур "Свойство", а он не правильно заполняет параметры действий и получает исключение из-за отсутствия метода. |
|||
9
Defender aka LINN
28.02.17
✎
13:46
|
(8) Некоторые действия я вижу. Обращений к методу "Свойство" - нет.
Я для загрузки как раз-таки заказов использую как раз-таки этот метод. И все работает. Без некоторых действий. |
|||
10
polosov
28.02.17
✎
13:50
|
(9) Не могу представить как тут тебе помогает
Интерфейс (управляемый)/Данные формы/ДанныеФормыЭлементКоллекции/Методы/Свойство |
|||
11
polosov
28.02.17
✎
13:50
|
+(10) И зачем тебе форма тоже не понимаю.
|
|||
12
Defender aka LINN
28.02.17
✎
13:55
|
(10) Мне?!
|
|||
13
polosov
28.02.17
✎
13:56
|
(12) >Я для загрузки как раз-таки заказов использую как раз-таки этот метод
|
|||
14
Defender aka LINN
28.02.17
✎
14:29
|
(13) У *меня* все работает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |