Имя: Пароль:
1C
1С v8
v8: УТ 10.3. Помоги настроить перенос Ответственного из документа основания.
,
0 kifar
 
31.01.13
12:08
Здравствуйте!
Задача: при вводе ПлатежкиВХ на основании Реализации надо из документа основания(Реализация) перетащить Ответственного в ПлатежкуВх.


БЫЛО=========================
Процедура ОбработкаЗаполнения(Основание)
   ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, Основание);
   УправлениеДенежнымиСредствами.ЗаполнитьПриходПоОснованию(ЭтотОбъект, Основание, УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойОтветственный"));
   

СДЕЛАЛ===================================
Процедура ОбработкаЗаполнения(Основание)
   ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, Основание);
   УправлениеДенежнымиСредствами.ЗаполнитьПриходПоОснованию(ЭтотОбъект, Основание, ЭтотОбъект.Ответственный);

в результате ничего не изменилось.
Что я сделал не правильно? Что сделать для решения задачи?
1 krakazybra
 
31.01.13
12:40
ЭтотОбъект.Ответственный заменить на Основание.Ответственный :)
2 kifar
 
31.01.13
15:22
(1)
//сделал так================
УправлениеДенежнымиСредствами.ЗаполнитьПриходПоОснованию(ЭтотОбъект, Основание, Основание.Ответственный);
=========================

ничего не изменилось :(((
что не так?
3 Ayvengo
 
31.01.13
15:24
Неправильно же, как виноватых ловить будете :)
А вообще (1) злой ты :)))
Заходит в процедуру ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, Основание);
и добавляй там заполнение ответственного
4 kifar
 
31.01.13
15:36
(3) - я не злой... это для учета зарплаты менеджера..

я могу скриншот скинуть.... грустно очень :(
в том плане, что делаю отладку и после исполнения "Процедуры ОбработкаЗаполнения(Основание)"
в отладке смотрю значение параметров:
==================
Основание.Ответственный=Копасова
ДокументОснование.Ответственный=Копасова
Основание=Реализация товаров и услуг 00000000007 от 04.01.2013 15:33:45
ЭтотОбъект.Ответственный=Копасова
========================
т.е. все правильно... а вот в открывшейся форме Платежки стоит ответственный из настроек пользователя....

где еще надо смотреть...
приотладке после этой процедуры ничего нет... сразу форма открывается :(((
5 Ayvengo
 
31.01.13
15:38
(4) злой это не к тебе :)
Возможно при открытии для новых объектов выполняется заполнение по умолчанию. Посмотри там. В модуле формы, при открытии.
А вообще отладку и отлавливай когда у тебя меняется ответственный с нужного на "по умолчанию"
6 Ayvengo
 
31.01.13
15:41
А может и перед открытием ;)
7 kifar
 
31.01.13
15:42
(5) в том-то и дело, что отладка не показывает ниаких действий после этой функции...
где искать "В модуле формы, при открытии" и "перед открытием"
я чайник... в 1С.
8 Анатолий Никитин
 
31.01.13
15:45
ПриОткрытии, там смотри, по условию Если ЭтоНовый
9 kifar
 
31.01.13
15:45
нашел

Процелура ПриОткрытии()

.........[cut]...........
УправлениеДенежнымиСредствами.ЗаполнитьРеквизитыРасчетногоДокумента(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"), мВалютаРегламентированногоУчета,РасшифровкаПлатежа,ПараметрОбъектКопирования);

сейчас отредактирую и отпишусь
10 kifar
 
31.01.13
15:50
(8) нашел

//-*/проверяем факт вода на основании и наследуем Ответсвенного
Если ДокументОснование.Ответственный<>"" Тогда
ЭтотОбъект.Ответственный = ДокументОснование.Ответственный;
КонецЕсли;
//-*/

ЗАРАБЬОТАЛО!!!!!!!

ЗЫ. простите, что капсом, Спасибо Всем!
11 Ayvengo
 
31.01.13
16:19
Исправь срочно
Если ДокументОснование.Ответственный<>"" Тогда
ЭтотОбъект.Ответственный = ДокументОснование.Ответственный;
КонецЕсли;


Убери условие, оно всегда будет срабатывать. Т.к. строке никогда равно не будет -

Сделай так

Если ЗначениеЗаполнено(ДокументОснование.Ответственный) Тогда
  ЭтотОбъект.Ответственный = ДокументОснование.Ответственный
КонецЕсли;