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