Имя: Пароль:
1C
1С v8
1С УТ 10.3 пустое поле "Ответственный" в реализации.
,
0 maxxximka
 
05.05.17
07:47
Здравствуйте, возник внезапный вопрос: при вводе реализации на основании заказа покупателя поле "ответственный" не заполняется, хотя в самом заказе покупателя всё заполнено. Куда можно копнуть?
УТ 10.3 (10.3.39.1), платформа 8.3.9.2033.
1 Гипервизор
 
05.05.17
07:51
Ответственный в этом случае заполняется не из документа-основания, а из настроек пользователя:
Сервис-Настройки пользователя-Основные значения для подстановки в документы и справочники-Прочие значения
2 maxxximka
 
05.05.17
22:14
(1) Понял, спасибо, тогда переформулирую вопрос: пишу в функции заполнения код Ответственный = Справочники.Пользователи.НайтиПоНаименованию(Основание.Ответственный) - в отладчике вижу, что реквизит заполняется, но когда возвращаюсь на форму документа, там пусто. Что я делаю не так?
3 Сияющий Асинхраль
 
05.05.17
22:24
А нафиг искать по наименованию? Так и пиши:
Ответственный = Основание.Ответственный;
4 maxxximka
 
05.05.17
22:48
(3) и так не работает :) Сложную конструкцию выдумал в попытках решить проблему.
5 AlvlSpb
 
05.05.17
23:19
(4) Объект.Ответственный = Основание.Ответственный;
6 maxxximka
 
06.05.17
23:45
(5) Пробовал, не помогло. Взял процедуру ОбработкаЗаполнения в документе Реализации, написал так, как предложили, в отладчике вижу, что реквизит заполняется, но возвращаясь на форму - он пустой. По ходу движения по коду не вижу места, чтобы он обратно где-то обнулялся. Куда еще можно посмотреть?
7 maxxximka
 
07.05.17
00:01
ЗаполнениеДокументов.ЗаполнитьДанныеДоставкиПоОснованию(ЭтотОбъект, Основание);

        
        ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;
        ВидПередачи = Перечисления.ВидыПередачиТоваров.СоСклада;
        ЭтотОбъект.Ответственный = Основание.Ответственный;
8 Сияющий Асинхраль
 
07.05.17
21:33
(7) В обработке заполнения "ЭтотОбъект" не нужен, здесь достаточно:

Ответственный = Основание.Ответственный;

Также как строчкой выше у тебя в (7) написано:

ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;

Тут может быть одно из двух: либо где-то в дальнейшем "Ответственный" очищается (это уж тебе карты в руки, не видя конфу издали никто тебе это не скажет), либо таки на форме ты видишь другой реквизит...
9 Сияющий Асинхраль
 
07.05.17
21:38
+(8) Да, кстати, очень велика вероятность, что Ответственный очищается в процедурке формы "ПриОткрытии", например, в документе Реализация товаров и услуг, есть такой код:

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

Он же отрабатывает и при вводе на основании
10 maxxximka
 
07.05.17
23:39
(9) огромное спасибо, вот как раз там и была собака зарыта :)
11 maxxximka
 
08.05.17
21:49
Апнем немножечко: добавил предложенный код в процедуру ПриОткрытии, теперь при попытке создать реализацию не на основании заказа покупателя, а просто так, получаю ошибку об отсутствии реквизита Основание.Ответственный.

Я понимаю, в чем тут ошибка, вопрос в том, как правильнее ее обойти? Не могу понять, как правильно проверить этот реквизит на существование.
12 AlvlSpb
 
08.05.17
22:40
(11) Если ЗначениеЗаполнено(ДокументОснование)
13 maxxximka
 
10.05.17
10:18
(12) благодарю, все оказалось просто