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

1С:Предприятие ::

Метки: 

Как присвоить значение реквизиту документа Субконто1?

Я
   vit48
 
31.07.18 - 08:46
Бухгалтерия предприятия, редакция 3.0 (3.0.63.15) 
1С:Предприятие 8.3 (8.3.10.2580)
 

Подскажите пожалуйста по сути вопроса. С БП редко приходится иметь дело.
Делаю стандартную внешнюю обработку для ввода на основании.
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) Экспорт
       ......
        СоздатьНовыйДокумент(Элемент, ДанныеФормы);
        КопироватьДанныеФормы(ДанныеФормы, ФормаДок.Объект);
        ФормаДок.Открыть();
        
    КонецЦикла;

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

&НаСервере
Процедура СоздатьНовыйДокумент(Элемент, НовыйОбъект)
    
    ДокументОбъект = ДанныеФормыВЗначение(НовыйОбъект, Тип("ДокументОбъект.ТребованиеНакладная"));
    
    ЗаполнитьПоЗаказу(Элемент.Ссылка, ДокументОбъект);
    
    ДокОснование = Элемент.Ссылка;

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


    ДокументОбъект.Субконто1 = Справочники.СтатьиЗатрат.ПрочиеЗатраты;
    .......

все работает как всегда, кроме субконто1 (тип Характеристика.ВидыСубконтоХозрасчетные)
 
 
   МимохожийОднако
 
1 - 31.07.18 - 08:52
Отладчик что показывает в реквизите после присвоения? Это субконто1 соответствует или нет выбранному счету затрат?
   Cyberhawk
 
2 - 31.07.18 - 09:03
Что-то ты ввод на основании совсем не по технологии БСП делаешь
   vit48
 
3 - 31.07.18 - 09:20
да. на 44 счете первое субконто СтатьиЗатрат. так что должно вроде бы все нормально быть. смущает тип поля. может с ним как-то по другому надо?
   vit48
 
4 - 31.07.18 - 09:25
(2) а где можно посмотреть как правильно по версии создателей БСП? вроде бы как по инструкциям
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
    
    ПараметрыРегистрации.Вставить("Вид", "СозданиеСвязанныхОбъектов");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", """Требование-накладная"" на основании документа ""Реализация услуг""");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация", "Дополнительная обработка к документу Реализация товаров и услуг");
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
    ДобавитьКоманду(ТаблицаКоманд, "Требование-накладная (доп)", "Требование-накладная (доп)", "ВызовКлиентскогоМетода", Истина);
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
КонецФункции
   vit48
 
5 - 31.07.18 - 09:26
в форме 

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) Экспорт

    //Переберем все выбранные документы на основании, которых будет созданы другие новые документы

    //В нашем случае это всего один документ "уатДоверенность"

    Для каждого Элемент из ОбъектыНазначенияМассив Цикл

        //Получая форму объекта создаваемого документа, мы уже создаем этот объект

        ФормаДок = ПолучитьФорму("Документ.ТребованиеНакладная.ФормаОбъекта");

        //Далее мы получаем объект только, что созданной формы и помещаем её в переменную

        //В объекте содержатся все реквизиты (элементы) формы

        ДанныеФормы = ФормаДок.Объект;

        //Мы помещаем объект формы в переменную,

        //так как должны передать её в процедуру на сервере,

        //где нельзя изменять объект формы, зато можно править переменную содержащую его

        СоздатьНовыйДокумент(Элемент, ДанныеФормы);

        //После выполнения процедуры на сервере мы получаем изменную переменную ДанныеФормы,

        //которую необходимо передать в уже созданную нами форму

        КопироватьДанныеФормы(ДанныеФормы, ФормаДок.Объект);

    //ОписаниеТипа = Новый ОписаниеТипов("СправочникСсылка.СтатьиЗатрат"); // вместо СправочникСсылка.Контрагенты ваше значение 

    //ФормаДок.Субконто1.ОграничениеТипа = ОписаниеТипа; //вместо ПолучательПСТретьеЛицо ваш реквизит

    //ФормаДок.Субконто1.Значение = ОписаниеТипа.ПривестиЗначение(ДанныеФормы.Субконто1);

    
        //Открываем результат выполнения обработки

        ФормаДок.Открыть();
        
    КонецЦикла;

КонецПроцедуры
   vit48
 
6 - 31.07.18 - 09:28
Но такое ощущение что при открытии формы не отрабатывают обработчик ПриОткрытии (доступность элементов не пропадает например). А при повторном открытии все уже как должно быть. Но на проведении документа это не сказывается.
   Радим1987
 
7 - 31.07.18 - 09:34
Если не ошибаюсь у реквизита Субконто1 тип Характеристика.ВидыСубконтоХозрасчетные, если так значит Субконто1[ПланыВидовХарактеристрик.ВидыСубконто.Чтотто] разве не так?
   Cyberhawk
 
8 - 31.07.18 - 09:35
(4) На ИТС документация по подсистеме БСП "Дополнительные отчеты и обработки"
   vit48
 
9 - 31.07.18 - 09:40
(7) пробовал
    //ДокументОбъект.Субконто1[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат] = Справочники.СтатьиЗатрат.ПрочиеЗатраты;    


но почему-то не получилось
   Радим1987
 
10 - 31.07.18 - 09:43
у ПланыСчетов.Хозрасчетный.ИздержкиОбращения есть такое субконто?
 
 
   vit48
 
11 - 31.07.18 - 09:45
да
   МимохожийОднако
 
12 - 31.07.18 - 09:53
(9) Как-то ты загнул в одну строчку.
Проверь тип реквизита Субконто1 перед присвоением значения.
Почему делаешь заполнение из процедуры на клиенте, а не на сервере?
   vit48
 
13 - 31.07.18 - 09:59
процедура на сервере. на клиенте просто получение и открытие формы.
   vit48
 
14 - 31.07.18 - 10:31
Справочник.СтатьиЗатрат.ПрочиеЗатраты  Предопределенный элемент отсутствует в данных

ерунда какая-то, почему-то этот элемент не видится как предопределенный. Но он есть. и сам подбирается после точки. с любым другим все заработало. Спасибо за помощь.
   vit48
 
15 - 31.07.18 - 10:32
(8) Спасибо. ИТСку почитаю сегодня.


Список тем форума
Рекламное место пустует   Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует