Имя: Пароль:
1C
1С v8
v8: Ввод на основании
0 Начинающий_13
 
29.08.13
10:47
Здарвствуйте
Не типовая
Что не так? Где надо подправить?
При создании документа на соновании, некоторые параметры заполняются из настроек пользователя по умолчанию (спр.ползователи) из процедуры  ПриОткрытии
Допустим в документе Поступление ТМЦ Склад стоит №3, и когда далаем на его основание документ возврата поставщику, то ставится склад №1 как в спр. пользователи по умолчанию
  Если ЭтоНовый()Тогда
          
  УправлениеДокументами.ЗаполнитьШапкуДокумента(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"),ПараметрОбъектКопирования);
          
КонецЕсли;

В Процедура ЗаполнитьШапкуДокумента есть параметр ПараметрОснование = неопределено как с ним работать.


// Процедура - обработчик события "ОбработкаЗаполнения".
// Поступление от поставщика --> Возврат поставщику
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ТМЦ_Поступление") Тогда
        
        // Заполнение шапки
        //ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения,
        //"МХ, Контрагент, Договор, РасчетныеСчета, Валюта, РасчетНалогов, СчетВзаиморасчетов");
        
        // Заполнение шапки
         УправлениеДокументами.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, ДанныеЗаполнения);
          Сообщить("Не ставится МХ и ставка ");    
КонецПроцедуры
1 Тролль главный
 
29.08.13
10:50
проверять на заполненность жеж
2 Начинающий_13
 
29.08.13
10:50
Что такое жеж
3 Тролль главный
 
29.08.13
10:57
(2) жеж, это частица речи
4 mikecool
 
29.08.13
11:00
переделать все на ОбработкаЗаполнения
5 Начинающий_13
 
29.08.13
11:01
(4) Что там надо переделать?
6 mikecool
 
29.08.13
11:07
(5) убрать заполнение документа в ПриОткрытии, перенеся код в ОбработкаЗаполнения
7 Начинающий_13
 
29.08.13
11:08
Вот Процедуры общего модуля

Процедура ЗаполнитьШапкуДокумента(ДокументОбъект, ТекПользователь, ПараметрОбъектКопирования = неопределено, ПараметрОснование = неопределено) Экспорт
    
    МетаданныеДокумента = ДокументОбъект.Метаданные();

    Если ОбщегоНазначения.ЕстьРеквизитДокумента("МХ", МетаданныеДокумента) Тогда
        ДокументОбъект.МХ = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ОсновноеМХ");
    КонецЕсли;

КонецПроцедуры


Процедура ЗаполнитьШапкуДокументаПоОснованию(ДокументОбъект, ДокументОснование) Экспорт
    
    МетаданныеДокумента          = ДокументОбъект.Метаданные();
    МетаданныеДокументаОснования = ДокументОснование.Метаданные();
    
    // Дата
    Если НЕ ЗначениеЗаполнено(ДокументОбъект.Дата) Тогда
        ДокументОбъект.Дата = ОбщегоНазначения.ПолучитьРабочуюДату();
    КонецЕсли;

    Если ОбщегоНазначения.ЕстьРеквизитДокумента("МХ", МетаданныеДокумента)
        И ОбщегоНазначения.ЕстьРеквизитДокумента("МХ", МетаданныеДокументаОснования) Тогда
        ДокументОбъект.МХ = ДокументОснование.МХ;
    КонецЕсли;

КонецПроцедуры
8 Начинающий_13
 
29.08.13
11:12
(6) А как тогда быть если документ новый, как они будут заполняться
9 hhhh
 
29.08.13
11:28
(8) в ПриОткрытии проверяете, если склад не пустой, не трогаете его тогда.
10 Начинающий_13
 
29.08.13
11:31
(9) 5555++++++++
СПАСИБО