Получить тип ДанныеФормыСтруктура из Объекта Документ Реализация
Доброго времени суток. Внешняя обработка, делаю программное создание документов Реализация товаров, загружаю из xml фала. Заполняю таб.часть Товары, нужно обработать заполнение счетов учета, есть общий модуль
Только вот Объект это тип "ДанныеФормыСтруктура", как то можно преобразовать Объект Документ Реализация?
ПараметрыЗаполненияСчетовУчета = РеализацияТоваровУслугФормыКлиентСервер.НачатьЗаполнениеСчетовУчета(
"Товары.Номенклатура",
Объект,
Элементы.Товары.ТекущиеДанные,
ДанныеОбъекта,
ДанныеСтрокиТаблицы);
По теме из базы знаний
Найденные решения
Хотя, если нужны ДанныеФормыСтруктура именно Форма.Объект, тогда можно просто так в обработке:
&НаКлиенте
Процедура ПолучитьДанныеФормыСтруктура(Команда)
Ключ = Новый Структура("Ключ", СсылкаНаДокумент);
Форма = ПолучитьФорму("Документ.ИмяДокумента.ФормаОбъекта", Ключ);
ФормаОбъект = Форма.Объект;
ТестОбъект(ФормаОбъект);
КонецПроцедуры
&НаСервере
Процедура ТестОбъект(ДанныеФормыОбъект)
Сообщить(ТипЗнч(ДанныеФормыОбъект));
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5)никак. ее можно передать на сервер, но получить нужно обязательно на клиенте.
Вы можете на клиенте один раз получить форму документа, передать ее на сервер и на сервере уже делать
Вы можете на клиенте один раз получить форму документа, передать ее на сервер и на сервере уже делать
ДокОбъект = Документы.<МойДокумент>.СоздатьДокумент();
ДокОбъект.Заполнить();
Форма.ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
ДанныеФормыСтруктура = Форма.Объект;
...............
ДокОбъект = Документы.<МойДокумент>.СоздатьДокумент();
ДокОбъект.Заполнить();
Форма.ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
ДанныеФормыСтруктура = Форма.Объект;
......
Показать
(7)ээээ.....ну так контекст в данном случае будет либо форма внешней обработки, либо фоновое задание, так понимаю.
Если форма внешней обработки, то получаем форму на клиенте, дальше передаем ее хоть контекстно, хоть без......или это так не работает?
Если изначально контекст - это фоновое задание, то так понимаю, задача в лоб не решается и придется взять код, выполняемый на сервере в рамках РеализацияТоваровУслугФормыКлиентСервер.НачатьЗаполнениеСчетовУчета() и адаптировать его под текущие реалии выполнения.
Если форма внешней обработки, то получаем форму на клиенте, дальше передаем ее хоть контекстно, хоть без......или это так не работает?
Если изначально контекст - это фоновое задание, то так понимаю, задача в лоб не решается и придется взять код, выполняемый на сервере в рамках РеализацияТоваровУслугФормыКлиентСервер.НачатьЗаполнениеСчетовУчета() и адаптировать его под текущие реалии выполнения.
(13) нет, так тоже не получится. Чтобы вызвать серверную функцию формы, нужно ее уже иметь. Только если добавлять клиентскую процедуру, через которую вызывать серверный метод, в котором и вызывать заполнение. Т.е. доступ возможет только через клиентскую форму.
Т.е. сначала заполняем форму документа, доступом через клиентские функции, затем можем вызвать клиентскую процедуру, которая запускает серверную процедуру, которая уже вызывает нужное заполнение.
Т.е. сначала заполняем форму документа, доступом через клиентские функции, затем можем вызвать клиентскую процедуру, которая запускает серверную процедуру, которая уже вызывает нужное заполнение.
ну очень тормознутый подход,
оптимальнее конечно работать с документом.объект
но вот пример для вашей задачи
как раз с работой с ДанныеФормыСтруктура
оптимальнее конечно работать с документом.объект
но вот пример для вашей задачи
как раз с работой с ДанныеФормыСтруктура
Прикрепленные файлы:
СозданиеДокументаЧерезФорму.epf
Вот что получилось:
Добавляем в расширение форму документа. В ней создаем пару функций:
В форме обработке так же пару методов:
СсылкаНаДокумент и ИмяДокумента подставить свои значения.
Добавляем в расширение форму документа. В ней создаем пару функций:
&НаКлиенте
Функция ПоместитьВоВременноеХранилищеФорму(УИН) Экспорт
Возврат ПоместитьВоВременноеХранилищеФормуСервер(УИН);
КонецФункции
&НаСервере
Функция ПоместитьВоВременноеХранилищеФормуСервер(УИН) Экспорт
СервернаяФорма = Объект;
Возврат ПоместитьВоВременноеХранилище(Новый Структура("Форма",СервернаяФорма), УИН);
КонецФункции
ПоказатьВ форме обработке так же пару методов:
&НаКлиенте
Процедура ПолучитьСервернуюФормуДокумента(Команда)
Ключ = Новый Структура("Ключ", СсылкаНаДокумент);
Форма = ПолучитьФорму("Документ.ИмяДокумента.ФормаОбъекта", Ключ);
Адрес = Форма.ПоместитьВоВременноеХранилищеФорму(УникальныйИдентификатор);
ТестПолученияСервернойФормы(Адрес);
КонецПроцедуры
&НаСервере
Процедура ТестПолученияСервернойФормы(Адрес)
Перем СервернаяФорма;
Данные = ПолучитьИзВременногоХранилища(Адрес);
Данные.Свойство("Форма", СервернаяФорма); // тут получаем ДанныеФормыСтруктура
Сообщить(ТипЗнч(СервернаяФорма));
КонецПроцедуры
ПоказатьСсылкаНаДокумент и ИмяДокумента подставить свои значения.
Хотя, если нужны ДанныеФормыСтруктура именно Форма.Объект, тогда можно просто так в обработке:
&НаКлиенте
Процедура ПолучитьДанныеФормыСтруктура(Команда)
Ключ = Новый Структура("Ключ", СсылкаНаДокумент);
Форма = ПолучитьФорму("Документ.ИмяДокумента.ФормаОбъекта", Ключ);
ФормаОбъект = Форма.Объект;
ТестОбъект(ФормаОбъект);
КонецПроцедуры
&НаСервере
Процедура ТестОбъект(ДанныеФормыОбъект)
Сообщить(ТипЗнч(ДанныеФормыОбъект));
КонецПроцедуры
Показать
(19) Вот так сделал, как теперь Записать?
&НаКлиенте
Процедура ЗаполнитьДанныеВТабЧасти()
Для Каждого СтрокаДок Из РеализацииТоваров Цикл
Ключ = Новый Структура("Ключ", СтрокаДок.Документ);
Форма = ПолучитьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта", Ключ);
ФормаОбъект = Форма.Объект;
ЗаполнитьСтрокуТаб(ФормаОбъект);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтрокуТаб(ФормаОбъект)
Для Каждого СтрокаТовара Из ФормаОбъект.Товары Цикл
ТоварыНоменклатураПриИзменении(ФормаОбъект, СтрокаТовара);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ТоварыНоменклатураПриИзменении(ФормаОбъект, СтрокаТовара)
ДанныеСтрокиТаблицы = Новый Структура(
"Номенклатура, ЕдиницаИзмерения, Коэффициент, Количество, Цена, Сумма,
|СтавкаНДС, СуммаНДС, СчетУчетаНДСПоРеализации, НДСВидОперацииРеализации, СчетУчетаБУ, СчетУчетаНУ,
|СтавкаАкциза, СуммаАкциза, АкцизВидОперацииРеализации, СчетУчетаАкцизаПоРеализации, КоэффициентАкциза,
|СчетДоходовБУ, СубконтоДоходовБУ1, СубконтоДоходовБУ2, СубконтоДоходовБУ3,
|СчетДоходовНУ, СубконтоДоходовНУ1, СубконтоДоходовНУ2, СубконтоДоходовНУ3,
|ВидСубконтоДоходовБУ1, ВидСубконтоДоходовБУ2, ВидСубконтоДоходовБУ3,
|ВидСубконтоДоходовНУ1, ВидСубконтоДоходовНУ2, ВидСубконтоДоходовНУ3,
|СубконтоДоходовБУ1Доступность, СубконтоДоходовБУ2Доступность, СубконтоДоходовБУ3Доступность,
|СубконтоДоходовНУ1Доступность, СубконтоДоходовНУ2Доступность, СубконтоДоходовНУ3Доступность,
|СчетСписанияСебестоимостиБУ, СубконтоСписанияСебестоимостиБУ1, СубконтоСписанияСебестоимостиБУ2, СубконтоСписанияСебестоимостиБУ3,
|СчетСписанияСебестоимостиНУ, СубконтоСписанияСебестоимостиНУ1, СубконтоСписанияСебестоимостиНУ2, СубконтоСписанияСебестоимостиНУ3,
|ВидСубконтоСписанияСебестоимостиБУ1, ВидСубконтоСписанияСебестоимостиБУ2, ВидСубконтоСписанияСебестоимостиБУ3,
|ВидСубконтоСписанияСебестоимостиНУ1, ВидСубконтоСписанияСебестоимостиНУ2, ВидСубконтоСписанияСебестоимостиНУ3,
|СубконтоСписанияСебестоимостиБУ1Доступность, СубконтоСписанияСебестоимостиБУ2Доступность, СубконтоСписанияСебестоимостиБУ3Доступность,
|СубконтоСписанияСебестоимостиНУ1Доступность, СубконтоСписанияСебестоимостиНУ2Доступность, СубконтоСписанияСебестоимостиНУ3Доступность"
);
ЗаполнитьЗначенияСвойств(ДанныеСтрокиТаблицы, СтрокаТовара);
ДанныеОбъекта = Новый Структура(
"Организация, СтруктурноеПодразделение, ВидОперации, Дата, Ссылка, ВидУчетаНУ, ТипЦен,
|УчитыватьКПН, УчитыватьНДС, УчитыватьАкциз, СуммаВключаетНДС, СуммаВключаетАкциз,
|ВалютаДокумента, КурсВзаиморасчетов, КратностьВзаиморасчетов, Склад, ДоговорКонтрагента");
ЗаполнитьЗначенияСвойств(ДанныеОбъекта, ФормаОбъект);
ПараметрыЗаполненияСчетовУчета = РеализацияТоваровУслугФормыКлиентСервер.НачатьЗаполнениеСчетовУчета(
"Товары.Номенклатура",
ФормаОбъект,
СтрокаТовара,
ДанныеОбъекта,
ДанныеСтрокиТаблицы);
ТоварыНоменклатураПриИзмененииНаСервере(ДанныеСтрокиТаблицы, ДанныеОбъекта, ПараметрыЗаполненияСчетовУчета.КЗаполнению);
ЗаполнитьЗначенияСвойств(СтрокаТовара, ДанныеСтрокиТаблицы);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот