Управляемые формы: создание документа, запись в табличнуб часть
28.11.2013
13:34
#1
"Подскажите, кто знает.<br> Задача: загрузить из внешнегго файла проводки в бух.операцию.<br>не могу записать проводки - не пишет, так как в Операции Бух нет табличной части.<br>усложняется еще и управляемой формой.<br>Создала внешнюю обработку, на ней кнопку с командой Загрузить<br>Ниже укороченный ( убрала про обрашение к файлу его чтение и прочее).<br>Интересует только Запись проводок.<br>//для теста использую счет 51 и текущюю дату<br>&НаСервере<br>Функция СоздатьНовыйДокумент(дата,таблицаЗнач)<br> НовыйДокумент = Документы.ОперацияБух.СоздатьДокумент();<br> НовыйДокумент.Организация = Справочники.Организации.НайтиПоКоду("00000001");<br> НовыйДокумент.Дата = Дата;<br> НовыйДокумент.Записать();<br>//тут идет запись в таб часть, но не получается.<br> Строчка = НовыйДокумент.Движения.Хозрасчетный.Добавить();<br> Строчка.Период = дата;<br> Строчка.Активность = Истина;<br> Строчка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(строка("51"));<br> Строчка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(Строка("51"));//тупо на 51<br>//НЕ пишет , документ создает, а табличные части пустые//<br> Возврат НовыйДокумент.Ссылка;<br><br>КонецФункции<br> <br>&НаКлиенте<br>Процедура Загрузить(Команда)<br> ДатаПр= ТекущаяДата();<br> дебет = "51";<br> ДанныеЗаполнения=Новый массив(0);<br> ДанныеЗаполнения.Вставить(0,Дебет);<br> СсылкаНаДокумент = СоздатьНовыйДокумент(ДатаПр,ДанныеЗаполнения);<br>КонецПроцедуры"
28.11.2013
13:57
#2
"С первого взгляда без тестирования - создаются строки, а потом возврат ссылки идет без записи.<br>зы. Но мне почему то кажется что обращение "Строчка = НовыйДокумент.Движения.Хозрасчетный.Добавить();" не верно. (если это обращение к движениям, а не к табличной части)"
28.11.2013
14:07
#6
Обращение к свойству документа "Движения" в модуле объекта документа само по себе создает набор записей с установленным отбором по регистратору равному ссылке на этот документ. Собственно, в этом и заложено удобство.
28.11.2013
14:09
#7
Удобно, действительно.<br>Работать с ним приходится редко, так что забываются нюансы.
28.11.2013
14:57
#10
"Как то так<br> <br>&НаКлиенте<br>Процедура СоздатьОперацию(Команда)<br> // Вставить содержимое обработчика.<br> создатьдок();<br>КонецПроцедуры<br><br>&НаСервере<br>Процедура создатьдок()<br> док=Документы.ОперацияБух.СоздатьДокумент();<br> док.Дата=Текущаядата();<br> док.Организация=Справочники.Организации.НайтиПоКоду("00-000001");<br> док.ТиповаяОперация = Неопределено;<br> док.ЗаполнениеДвижений.Очистить();<br> док.СторнируемыйДокумент = Неопределено;<br> док.СуммаОперации=60000;<br> Док.ОбменДанными.Загрузка = Истина;<br> Док.Движения.Хозрасчетный.Записывать = Истина;<br> стр=док.Движения.Хозрасчетный.Добавить();<br> стр.СчетДт=ПланыСчетов.Хозрасчетный.РасчетныеСчета;<br> стр.СчетКт=ПланыСчетов.Хозрасчетный.Вспомогательный;<br> стр.Период=Текущаядата();<br> стр.Организация=Справочники.Организации.НайтиПоКоду("00-000001");<br> стр.Активность=истина;<br> стр.Сумма=10000;<br> стр=док.Движения.Хозрасчетный.Добавить();<br> стр.СчетДт=ПланыСчетов.Хозрасчетный.РасчетныеСчета;<br> стр.СчетКт=ПланыСчетов.Хозрасчетный.Вспомогательный;<br> стр.Период=Текущаядата();<br> стр.Организация=Справочники.Организации.НайтиПоКоду("00-000001");<br> стр.Активность=истина;<br> стр.Сумма=50000;<br> док.Записать(РежимЗаписиДокумента.Запись);<br> КонецПроцедуры"
Читают тему
(гостей: 1)