|
Программное создание документа "ЗаказПоставщику" УФ УТ 3 | ☑ | ||
---|---|---|---|---|
0
Casper211
25.10.16
✎
09:53
|
Суть задачи просто создать ЗаказПоставщику в обработке и все.
Я программно создаю документ в своей обработке (вот код) &НаСервере Процедура СоздатьЗаказыСервер(Поставщики) ДатаЗаказов = ТекущаяДата(); Для Каждого ТекСтрока Из Поставщики Цикл Заказ = Документы.ЗаказПоставщику.СоздатьДокумент(); Заказ.Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Заказ.Организация); Заказ.Дата = ДатаЗаказов; Заказ.Менеджер = Пользователи.ТекущийПользователь(); Заказ.Валюта = ДоходыИРасходыСервер.ПолучитьВалютуУправленческогоУчета(Заказ.Валюта); Заказ.БанковскийСчет = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию( Заказ.Организация, Заказ.ФормаОплаты, Заказ.БанковскийСчет); Заказ.Касса = ЗначениеНастроекПовтИсп.ПолучитьКассуОрганизацииПоУмолчанию( Заказ.Организация, Заказ.ФормаОплаты, Заказ.Касса); Заказ.Склад = ЗначениеНастроекПовтИсп.ПолучитьСкладПоУмолчанию( Заказ.Склад, ПолучитьФункциональнуюОпцию("ИспользоватьСкладыВТабличнойЧастиДокументовЗакупки")); Заказ.Приоритет = Справочники.Приоритеты.ПолучитьПриоритетПоУмолчанию(Заказ.Приоритет); Заказ.Статус = Перечисления.СтатусыЗаказовПоставщикам.Согласован; НалогообложениеНДСПоУмолчаниюИзменено = Истина; ДоступностьНалогообложенияНДСПоУмолчанию = Истина; ЗаполнитьСтавкиНДС = Истина; НалогообложениеНДСПоУмолчанию = НДСОбщегоНазначенияСервер.ПолучитьНалогообложениеНДСПоУмолчанию(Заказ.Организация, Заказ.Контрагент, Заказ.Соглашение, Заказ.Дата, Ложь, Неопределено); Отбор = Новый Структура; Отбор.Вставить("Поставщик", ТекСтрока.Поставщик); Отбор.Вставить("Выбран", Истина); Если Поставщики.Колонки.Количество()=2 Тогда Отбор.Вставить("Склад", ТекСтрока.Склад); КонецЕсли; СтрокиТовары = Товары.НайтиСтроки(Отбор); Для Каждого СтрокаТовар Из СтрокиТовары Цикл ЗаполнитьЗначенияСвойств(Заказ.Товары.Добавить(), СтрокаТовар); КонецЦикла; Заказ.Партнер = ТекСтрока.Поставщик; ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(ТекСтрока.Поставщик, Заказ.Контрагент); Если Поставщики.Колонки.Количество() = 2 Тогда Заказ.Склад = ТекСтрока.Склад; КонецЕсли; ЗакупкиСервер.ЗаполнитьНоменклатуруПоставщикаВТаблице(Заказ.Товары,ТекСтрока.Поставщик); Заказ.Записать(РежимЗаписиДокумента.Запись); КонецПроцедуры и при проведении выводит Поле "Налогообложение" не заполнено хотя оно заполнено.не знаете в чем проблема? |
|||
1
Mankubus
25.10.16
✎
09:55
|
(0) в какой строке заполняется Налогообложение?
|
|||
2
Casper211
25.10.16
✎
10:00
|
(1) НалогообложениеНДСПоУмолчанию = НДСОбщегоНазначенияСервер.ПолучитьНалогообложениеНДСПоУмолчанию(Заказ.Организация, Заказ.Контрагент, Заказ.Соглашение, Заказ.Дата, Ложь, Неопределено);
|
|||
3
Defender aka LINN
25.10.16
✎
10:01
|
(2) Ничего, что это переменная формы?
|
|||
4
Мимохожий Однако
25.10.16
✎
10:03
|
Встань отладчиком перед записью объекта и убедись, что заполнены нужные реквизиты.
|
|||
5
Casper211
25.10.16
✎
10:07
|
(3) это переменная формы. (4) такого реквизита нет.
я наверное лоханулся и не понимаю что и где это |
|||
6
Casper211
25.10.16
✎
10:09
|
||||
7
Мимохожий Однако
25.10.16
✎
10:11
|
(6) обрати внимание на (3)
|
|||
8
Casper211
25.10.16
✎
10:11
|
(6) плохо получилось
|
|||
9
Casper211
25.10.16
✎
10:12
|
(7) как выйти из этой ситуации ?? Получить форму и записать ее значение?
|
|||
10
Мимохожий Однако
25.10.16
✎
10:12
|
(9) Надо получить объект и работать только с ним
|
|||
11
novichok79
25.10.16
✎
10:14
|
(9) посмотреть отладчиком как заполняется поле "Налогообложение" в модулях и написать соответствующий код в модуле процедуры создания?
|
|||
12
Casper211
25.10.16
✎
10:20
|
(11) &НаСервере
Процедура УстановитьНалогообложениеНДСПоУмолчанию(ПриОткрытииФормы = Ложь) НалогообложениеНДСПоУмолчаниюИзменено = Ложь; ДоступностьНалогообложенияНДСПоУмолчанию = Истина; ЗаполнитьСтавкиНДС = Ложь; // Импорт обработаем отдельно - для импорта налогообложение всегда ПродажаНеОблагаетсяНДС и не изменяется ЭтоИмпорт = (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаКомиссиюИмпорт); Если ЭтоИмпорт Тогда ДоступностьНалогообложенияНДСПоУмолчанию = Ложь; Если НалогообложениеНДСПоУмолчанию <> Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС Тогда НалогообложениеНДСПоУмолчанию = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС; ЗаполнитьСтавкиНДС = Истина; НалогообложениеНДСПоУмолчаниюИзменено = Истина; КонецЕсли; Объект.ВернутьМногооборотнуюТару = Ложь; Объект.ТребуетсяЗалогЗаТару = Ложь; ВернутьМногооборотнуюТаруПриИзмененииСервер(); Иначе НовоеНалогообложениеНДСПоУмолчанию = НДСОбщегоНазначенияСервер.ПолучитьНалогообложениеНДСПоУмолчанию(Объект.Организация, Объект.Контрагент, Объект.Соглашение, Объект.Дата, Ложь, Неопределено); ДоступностьНалогообложенияНДСПоУмолчанию = НДСОбщегоНазначенияСервер.КонтрагентПлательщикНДС(Объект.Контрагент); Если НалогообложениеНДСПоУмолчанию <> НовоеНалогообложениеНДСПоУмолчанию Тогда ЗаполнитьСтавкиНДС = НДСОбщегоНазначенияСервер.НужноОбработатьНовоеНалогообложениеНДС(НалогообложениеНДСПоУмолчанию, НовоеНалогообложениеНДСПоУмолчанию); НалогообложениеНДСПоУмолчанию = НовоеНалогообложениеНДСПоУмолчанию; НалогообложениеНДСПоУмолчаниюИзменено = Истина; КонецЕсли; КонецЕсли; Если НалогообложениеНДСПоУмолчаниюИзменено И ЗаполнитьСтавкиНДС И НЕ ПриОткрытииФормы Тогда КэшированныеЗначения = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения(); НалогообложениеНДСПоУмолчаниюПриИзмененииСервер(КэшированныеЗначения); КонецЕсли; ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "НалогообложениеНДСПоУмолчанию", "Доступность", ДоступностьНалогообложенияНДСПоУмолчанию); КонецПроцедуры |
|||
13
Casper211
25.10.16
✎
10:22
|
в модуле "ФормаДокумента" дока ЗаказПоставщику
|
|||
14
Casper211
25.10.16
✎
10:23
|
(10) а как получить объект на сервере?
|
|||
15
Casper211
25.10.16
✎
10:25
|
(10) то есть получить объект ? добавлять какие-то данные? и тогда записать?
|
|||
16
Casper211
25.10.16
✎
10:29
|
это нужно сделать на клиенте?
|
|||
17
Мимохожий Однако
25.10.16
✎
10:30
|
(15) (14) Ты его уже имеешь в переменной Объект.
|
|||
18
Casper211
25.10.16
✎
10:31
|
но если потом зайти в документ поменять поставщика, Налогообложение автоматически себе изменится стандартными методами. И все равно пишет не заполнена
|
|||
19
Casper211
25.10.16
✎
10:32
|
(17) (17) там у меня табличная часть, которая находится в моей обработке
|
|||
20
Мимохожий Однако
25.10.16
✎
10:35
|
(18) Сообщение дословно в студию. Зачем ты вцепился с модуль формы?
|
|||
21
Casper211
25.10.16
✎
10:35
|
||||
22
novichok79
25.10.16
✎
10:35
|
(12) так напиши свой (!!!) код заполнения, исходя из кода, которым заполняется в форме. разве это так сложно?
|
|||
23
Casper211
25.10.16
✎
10:36
|
(20) (20) Поле "Налогообложение" не заполнено
|
|||
24
Мимохожий Однако
25.10.16
✎
10:38
|
У тебя в (0) есть переменная Заказ. В эту переменную и пихай данные. А на форме посмотри, какой реквизит или алгоритм спрятался в поле "Налогообложение". Это поле в реквизит объект Заказ и запиши. А форма Заказа тебе не нужна СОВСЕМ.
|
|||
25
Casper211
25.10.16
✎
10:47
|
(22) так я все заполнил то что надо было, кроме этого налога. (24) я так и делал пихал в Заказ.
на форме документа поле "Налогообложение", как я понял, это не реквизит документа и найти его в объекте "Заказ"(то есть мой новый созданный документ) не могу http://s46.radikal.ru/i111/1610/60/00056836377b.png |
|||
26
Casper211
25.10.16
✎
10:50
|
а если программно провести, проводится.
Заказ.Записать(РежимЗаписиДокумента.Проведение); но потом руками - нет |
|||
27
Casper211
25.10.16
✎
11:00
|
УДАЛИТЬНалогообложениеНДС - дал значения этому реквизита и работает. Хотя это не он был в поле
|
|||
28
Casper211
25.10.16
✎
11:00
|
Всем спаксибо, критика всегда идет мне на пользу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |