Управляемые формы: создание документа, запись в табличнуб часть

Новая тема
Показывать по 10 20 40 сообщений
"Подскажите, кто знает.
Задача: загрузить из внешнегго файла проводки в бух.операцию.
не могу записать проводки - не пишет, так как в Операции Бух нет табличной части.
усложняется еще и управляемой формой.
Создала внешнюю обработку, на ней кнопку с командой Загрузить
Ниже укороченный ( убрала про обрашение к файлу его чтение и прочее).
Интересует только Запись проводок.
//для теста использую счет 51 и текущюю дату
&НаСервере
Функция   СоздатьНовыйДокумент(дата,таблицаЗнач)
   НовыйДокумент = Документы.ОперацияБух.СоздатьДокумент();
   НовыйДокумент.Организация = Справочники.Организации.НайтиПоКоду("00000001");
   НовыйДокумент.Дата = Дата;
   НовыйДокумент.Записать();
//тут идет запись в таб часть, но не получается.
   Строчка = НовыйДокумент.Движения.Хозрасчетный.Добавить();
   Строчка.Период = дата;
   Строчка.Активность = Истина;
   Строчка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(строка("51"));
   Строчка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(Строка("51"));//тупо на 51
//НЕ пишет , документ создает, а табличные части пустые//
 Возврат НовыйДокумент.Ссылка;

КонецФункции

&НаКлиенте
Процедура Загрузить(Команда)
       ДатаПр= ТекущаяДата();
       дебет = "51";
       ДанныеЗаполнения=Новый массив(0);
       ДанныеЗаполнения.Вставить(0,Дебет);
       СсылкаНаДокумент = СоздатьНовыйДокумент(ДатаПр,ДанныеЗаполнения);
КонецПроцедуры"
"С первого взгляда без тестирования - создаются строки, а потом возврат ссылки идет без записи.
зы. Но мне почему то кажется что обращение "Строчка = НовыйДокумент.Движения.Хозрасчетный.Добавить();" не верно. (если это обращение к движениям, а не к табличной части)"
Выдается какая-то ошибка? Если да, на каком этапе и текст.
А вы просто создаете движение, и не привязываете его к документу. Нет?
Добавление верное, но записи движений я не вижу.
Обращение к свойству документа "Движения" в модуле объекта документа само по себе создает набор записей с установленным отбором по регистратору равному ссылке на этот документ. Собственно, в этом и заложено удобство.
Удобно, действительно.
Работать с ним приходится редко, так что забываются нюансы.
т.е. не хватает записи регистратора?
а как тогда?
"Как то так

&НаКлиенте
Процедура СоздатьОперацию(Команда)
// Вставить содержимое обработчика.
создатьдок();
КонецПроцедуры

&НаСервере
Процедура создатьдок()
док=Документы.ОперацияБух.СоздатьДокумент();
док.Дата=Текущаядата();
док.Организация=Справочники.Организации.НайтиПоКоду("00-000001");
док.ТиповаяОперация = Неопределено;
док.ЗаполнениеДвижений.Очистить();
док.СторнируемыйДокумент = Неопределено;
   док.СуммаОперации=60000;
Док.ОбменДанными.Загрузка = Истина;
Док.Движения.Хозрасчетный.Записывать = Истина;
стр=док.Движения.Хозрасчетный.Добавить();
стр.СчетДт=ПланыСчетов.Хозрасчетный.РасчетныеСчета;
стр.СчетКт=ПланыСчетов.Хозрасчетный.Вспомогательный;
стр.Период=Текущаядата();
стр.Организация=Справочники.Организации.НайтиПоКоду("00-000001");
стр.Активность=истина;
стр.Сумма=10000;
стр=док.Движения.Хозрасчетный.Добавить();
стр.СчетДт=ПланыСчетов.Хозрасчетный.РасчетныеСчета;
стр.СчетКт=ПланыСчетов.Хозрасчетный.Вспомогательный;
стр.Период=Текущаядата();
стр.Организация=Справочники.Организации.НайтиПоКоду("00-000001");
стр.Активность=истина;
стр.Сумма=50000;
док.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры"
Читают тему
(гостей: 1)

Быстрый переход