Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Программное создание документа "ЗаказПоставщику" УФ УТ 3

Программное создание документа "ЗаказПоставщику" УФ УТ 3
Я
   Casper211
 
25.10.16 - 09:53
Суть задачи просто создать ЗаказПоставщику в обработке и все.
Я программно создаю документ в своей обработке (вот код)


&НаСервере
Процедура СоздатьЗаказыСервер(Поставщики)

ДатаЗаказов = ТекущаяДата();
    Для Каждого ТекСтрока Из Поставщики Цикл

        Заказ = Документы.ЗаказПоставщику.СоздатьДокумент();
        Заказ.Организация           = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Заказ.Организация);
        
        Заказ.Дата = ДатаЗаказов;
        Заказ.Менеджер              = Пользователи.ТекущийПользователь();
        Заказ.Валюта                = ДоходыИРасходыСервер.ПолучитьВалютуУправленческогоУчета(Заказ.Валюта);
        
        Заказ.БанковскийСчет        = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(
            Заказ.Организация,
            Заказ.ФормаОплаты,
            Заказ.БанковскийСчет);
        Заказ.Касса                 = ЗначениеНастроекПовтИсп.ПолучитьКассуОрганизацииПоУмолчанию(
            Заказ.Организация,
            Заказ.ФормаОплаты,
            Заказ.Касса);
        Заказ.Склад                 = ЗначениеНастроекПовтИсп.ПолучитьСкладПоУмолчанию(
            Заказ.Склад, 
            ПолучитьФункциональнуюОпцию("ИспользоватьСкладыВТабличнойЧастиДокументовЗакупки"));
        Заказ.Приоритет             = Справочники.Приоритеты.ПолучитьПриоритетПоУмолчанию(Заказ.Приоритет);
        Заказ.Статус = Перечисления.СтатусыЗаказовПоставщикам.Согласован;
        НалогообложениеНДСПоУмолчаниюИзменено = Истина;
        ДоступностьНалогообложенияНДСПоУмолчанию = Истина;
        ЗаполнитьСтавкиНДС = Истина;
        НалогообложениеНДСПоУмолчанию = НДСОбщегоНазначенияСервер.ПолучитьНалогообложениеНДСПоУмолчанию(Заказ.Организация, Заказ.Контрагент, Заказ.Соглашение, Заказ.Дата, Ложь, Неопределено);
        Отбор = Новый Структура;
        Отбор.Вставить("Поставщик", ТекСтрока.Поставщик);
        Отбор.Вставить("Выбран",    Истина);
        Если Поставщики.Колонки.Количество()=2 Тогда
            Отбор.Вставить("Склад", ТекСтрока.Склад);
        КонецЕсли;
        
        СтрокиТовары = Товары.НайтиСтроки(Отбор);
        Для Каждого СтрокаТовар Из СтрокиТовары Цикл

            ЗаполнитьЗначенияСвойств(Заказ.Товары.Добавить(), СтрокаТовар);

        КонецЦикла;
        
        Заказ.Партнер = ТекСтрока.Поставщик;
        ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(ТекСтрока.Поставщик, Заказ.Контрагент);

        Если Поставщики.Колонки.Количество() = 2 Тогда
            Заказ.Склад = ТекСтрока.Склад;
        КонецЕсли;
        
        ЗакупкиСервер.ЗаполнитьНоменклатуруПоставщикаВТаблице(Заказ.Товары,ТекСтрока.Поставщик);
        Заказ.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры


и при проведении выводит Поле "Налогообложение" не заполнено хотя оно заполнено.не знаете в чем проблема?
 
 
   Mankubus
 
1 - 25.10.16 - 09:55
(0) в какой строке заполняется Налогообложение?
   Casper211
 
2 - 25.10.16 - 10:00
(1) НалогообложениеНДСПоУмолчанию = НДСОбщегоНазначенияСервер.ПолучитьНалогообложениеНДСПоУмолчанию(Заказ.Организация, Заказ.Контрагент, Заказ.Соглашение, Заказ.Дата, Ложь, Неопределено);
   Defender aka LINN
 
3 - 25.10.16 - 10:01
(2) Ничего, что это переменная формы?
   МимохожийОднако
 
4 - 25.10.16 - 10:03
Встань отладчиком перед записью объекта и убедись, что заполнены нужные реквизиты.
   Casper211
 
5 - 25.10.16 - 10:07
(3) это переменная формы. (4) такого реквизита нет.
я наверное лоханулся и не понимаю что и где это
   Casper211
 
6 - 25.10.16 - 10:09
   МимохожийОднако
 
7 - 25.10.16 - 10:11
(6) обрати внимание на (3)
   Casper211
 
8 - 25.10.16 - 10:11
(6) плохо получилось
   Casper211
 
9 - 25.10.16 - 10:12
(7) как выйти из этой ситуации ?? Получить форму и записать ее значение?
   МимохожийОднако
 
10 - 25.10.16 - 10:12
(9) Надо получить объект и работать только с ним
 
 Рекламное место пустует
   novichok79
 
11 - 25.10.16 - 10:14
(9) посмотреть отладчиком как заполняется поле "Налогообложение" в модулях и написать соответствующий код в модуле процедуры создания?
   Casper211
 
12 - 25.10.16 - 10:20
(11) &НаСервере
Процедура УстановитьНалогообложениеНДСПоУмолчанию(ПриОткрытииФормы = Ложь)
    
    НалогообложениеНДСПоУмолчаниюИзменено = Ложь;
    ДоступностьНалогообложенияНДСПоУмолчанию = Истина;
    ЗаполнитьСтавкиНДС = Ложь;
    
    // Импорт обработаем отдельно - для импорта налогообложение всегда ПродажаНеОблагаетсяНДС и не изменяется

    ЭтоИмпорт = (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту ИЛИ
                 Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаКомиссиюИмпорт);
                 
    Если ЭтоИмпорт Тогда
        ДоступностьНалогообложенияНДСПоУмолчанию = Ложь;
        Если НалогообложениеНДСПоУмолчанию <> Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС Тогда
            НалогообложениеНДСПоУмолчанию = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;
            ЗаполнитьСтавкиНДС = Истина;
            НалогообложениеНДСПоУмолчаниюИзменено = Истина;
        КонецЕсли;
        Объект.ВернутьМногооборотнуюТару = Ложь;
        Объект.ТребуетсяЗалогЗаТару = Ложь;
        ВернутьМногооборотнуюТаруПриИзмененииСервер();
    Иначе
        НовоеНалогообложениеНДСПоУмолчанию       = НДСОбщегоНазначенияСервер.ПолучитьНалогообложениеНДСПоУмолчанию(Объект.Организация, Объект.Контрагент, Объект.Соглашение, Объект.Дата, Ложь, Неопределено);
        ДоступностьНалогообложенияНДСПоУмолчанию = НДСОбщегоНазначенияСервер.КонтрагентПлательщикНДС(Объект.Контрагент);
        Если НалогообложениеНДСПоУмолчанию <> НовоеНалогообложениеНДСПоУмолчанию Тогда
            ЗаполнитьСтавкиНДС = НДСОбщегоНазначенияСервер.НужноОбработатьНовоеНалогообложениеНДС(НалогообложениеНДСПоУмолчанию, НовоеНалогообложениеНДСПоУмолчанию);
            НалогообложениеНДСПоУмолчанию = НовоеНалогообложениеНДСПоУмолчанию;
            НалогообложениеНДСПоУмолчаниюИзменено = Истина;
        КонецЕсли;
    КонецЕсли;              
    
    Если НалогообложениеНДСПоУмолчаниюИзменено И ЗаполнитьСтавкиНДС И НЕ ПриОткрытииФормы Тогда
        КэшированныеЗначения = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
        НалогообложениеНДСПоУмолчаниюПриИзмененииСервер(КэшированныеЗначения);
    КонецЕсли; 
    
    ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "НалогообложениеНДСПоУмолчанию", "Доступность", ДоступностьНалогообложенияНДСПоУмолчанию);
    
КонецПроцедуры
   Casper211
 
13 - 25.10.16 - 10:22
в модуле "ФормаДокумента" дока ЗаказПоставщику
   Casper211
 
14 - 25.10.16 - 10:23
(10) а как получить объект  на сервере?
   Casper211
 
15 - 25.10.16 - 10:25
(10) то есть получить объект  ? добавлять какие-то данные? и тогда записать?
   Casper211
 
16 - 25.10.16 - 10:29
это нужно сделать на клиенте?
   МимохожийОднако
 
17 - 25.10.16 - 10:30
(15) (14) Ты его уже имеешь в переменной Объект.
   Casper211
 
18 - 25.10.16 - 10:31
но если потом зайти в документ поменять поставщика, Налогообложение автоматически себе изменится стандартными методами. И все равно пишет не заполнена
   Casper211
 
19 - 25.10.16 - 10:32
(17) (17) там у меня табличная часть, которая находится в моей обработке
   МимохожийОднако
 
20 - 25.10.16 - 10:35
(18) Сообщение дословно в студию. Зачем ты вцепился с модуль формы?
   Casper211
 
21 - 25.10.16 - 10:35
   novichok79
 
22 - 25.10.16 - 10:35
(12) так напиши свой (!!!) код заполнения, исходя из кода, которым заполняется в форме. разве это так сложно?
   Casper211
 
23 - 25.10.16 - 10:36
(20) (20) Поле "Налогообложение" не заполнено
   МимохожийОднако
 
24 - 25.10.16 - 10:38
У тебя в (0) есть переменная Заказ. В эту переменную и пихай данные. А на форме посмотри, какой реквизит или алгоритм спрятался в поле "Налогообложение". Это поле в реквизит объект Заказ и запиши. А форма Заказа тебе не нужна СОВСЕМ.
   Casper211
 
25 - 25.10.16 - 10:47
(22) так я все заполнил то что надо было, кроме этого налога. (24) я так и делал пихал в Заказ.

на форме документа поле "Налогообложение", как я понял, это не реквизит документа и найти его в объекте "Заказ"(то есть мой новый созданный документ) не могу
http://s46.radikal.ru/i111/1610/60/00056836377b.png
   Casper211
 
26 - 25.10.16 - 10:50
а если программно провести, проводится.

Заказ.Записать(РежимЗаписиДокумента.Проведение);

но потом руками - нет
   Casper211
 
27 - 25.10.16 - 11:00
УДАЛИТЬНалогообложениеНДС - дал значения этому реквизита и работает. Хотя это не он был в поле
   Casper211
 
28 - 25.10.16 - 11:00
Всем спаксибо, критика всегда идет мне на пользу


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует