|
Как присвоить значение реквизиту документа Субконто1? | ☑ | ||
---|---|---|---|---|
0
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 соответствует или нет выбранному счету затрат?
|
|||
2
Cyberhawk
31.07.18
✎
09:03
|
Что-то ты ввод на основании совсем не по технологии БСП делаешь
|
|||
3
vit48
31.07.18
✎
09:20
|
да. на 44 счете первое субконто СтатьиЗатрат. так что должно вроде бы все нормально быть. смущает тип поля. может с ним как-то по другому надо?
|
|||
4
vit48
31.07.18
✎
09:25
|
(2) а где можно посмотреть как правильно по версии создателей БСП? вроде бы как по инструкциям
Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); ПараметрыРегистрации.Вставить("Вид", "СозданиеСвязанныхОбъектов"); ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", """Требование-накладная"" на основании документа ""Реализация услуг"""); ПараметрыРегистрации.Вставить("Версия", "1.0"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); ПараметрыРегистрации.Вставить("Информация", "Дополнительная обработка к документу Реализация товаров и услуг"); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, "Требование-накладная (доп)", "Требование-накладная (доп)", "ВызовКлиентскогоМетода", Истина); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции |
|||
5
vit48
31.07.18
✎
09:26
|
в форме
&НаКлиенте Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) Экспорт //Переберем все выбранные документы на основании, которых будет созданы другие новые документы //В нашем случае это всего один документ "уатДоверенность" Для каждого Элемент из ОбъектыНазначенияМассив Цикл //Получая форму объекта создаваемого документа, мы уже создаем этот объект ФормаДок = ПолучитьФорму("Документ.ТребованиеНакладная.ФормаОбъекта"); //Далее мы получаем объект только, что созданной формы и помещаем её в переменную //В объекте содержатся все реквизиты (элементы) формы ДанныеФормы = ФормаДок.Объект; //Мы помещаем объект формы в переменную, //так как должны передать её в процедуру на сервере, //где нельзя изменять объект формы, зато можно править переменную содержащую его СоздатьНовыйДокумент(Элемент, ДанныеФормы); //После выполнения процедуры на сервере мы получаем изменную переменную ДанныеФормы, //которую необходимо передать в уже созданную нами форму КопироватьДанныеФормы(ДанныеФормы, ФормаДок.Объект); //ОписаниеТипа = Новый ОписаниеТипов("СправочникСсылка.СтатьиЗатрат"); // вместо СправочникСсылка.Контрагенты ваше значение //ФормаДок.Субконто1.ОграничениеТипа = ОписаниеТипа; //вместо ПолучательПСТретьеЛицо ваш реквизит //ФормаДок.Субконто1.Значение = ОписаниеТипа.ПривестиЗначение(ДанныеФормы.Субконто1); //Открываем результат выполнения обработки ФормаДок.Открыть(); КонецЦикла; КонецПроцедуры |
|||
6
vit48
31.07.18
✎
09:28
|
Но такое ощущение что при открытии формы не отрабатывают обработчик ПриОткрытии (доступность элементов не пропадает например). А при повторном открытии все уже как должно быть. Но на проведении документа это не сказывается.
|
|||
7
Радим1987
31.07.18
✎
09:34
|
Если не ошибаюсь у реквизита Субконто1 тип Характеристика.ВидыСубконтоХозрасчетные, если так значит Субконто1[ПланыВидовХарактеристрик.ВидыСубконто.Чтотто] разве не так?
|
|||
8
Cyberhawk
31.07.18
✎
09:35
|
(4) На ИТС документация по подсистеме БСП "Дополнительные отчеты и обработки"
|
|||
9
vit48
31.07.18
✎
09:40
|
(7) пробовал
//ДокументОбъект.Субконто1[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат] = Справочники.СтатьиЗатрат.ПрочиеЗатраты; но почему-то не получилось |
|||
10
Радим1987
31.07.18
✎
09:43
|
у ПланыСчетов.Хозрасчетный.ИздержкиОбращения есть такое субконто?
|
|||
11
vit48
31.07.18
✎
09:45
|
да
|
|||
12
Мимохожий Однако
31.07.18
✎
09:53
|
(9) Как-то ты загнул в одну строчку.
Проверь тип реквизита Субконто1 перед присвоением значения. Почему делаешь заполнение из процедуры на клиенте, а не на сервере? |
|||
13
vit48
31.07.18
✎
09:59
|
процедура на сервере. на клиенте просто получение и открытие формы.
|
|||
14
vit48
31.07.18
✎
10:31
|
Справочник.СтатьиЗатрат.ПрочиеЗатраты Предопределенный элемент отсутствует в данных
ерунда какая-то, почему-то этот элемент не видится как предопределенный. Но он есть. и сам подбирается после точки. с любым другим все заработало. Спасибо за помощь. |
|||
15
vit48
31.07.18
✎
10:32
|
(8) Спасибо. ИТСку почитаю сегодня.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |