Программное создание документа ОперацияБух
Бухгалтерия государственного учреждения, редакция 1.0 (1.0.62.3)
Добрый день, подскажите пожалуйста, пишу обработку, которая должна создавать документ ОперацияБух (Ручная), данные берутся из excel и полей формы обработки, как программно заполнить субконтоДТ и СубконтоКт
Добрый день, подскажите пожалуйста, пишу обработку, которая должна создавать документ ОперацияБух (Ручная), данные берутся из excel и полей формы обработки, как программно заполнить субконтоДТ и СубконтоКт
Попытка
ПолучитьНоменклатуру = Справочники.Номенклатура.НайтиПоНаименованию(стр.Номенклатура);
НовыйДокумент = Документы.ОперацияБух.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Учреждение = ЭлементыФормы.Учреждение.Значение;
НовыйДокумент.Баланс = Справочники.Баланс.НайтиПоНаименованию(ЭлементыФормы.ИФО.Значение);
СтрокаДвижения = НовыйДокумент.Движения.ЕПСБУ;
НомерСубконто = 0;
Для каждого Строка из ТаблицаДокумента2 цикл
Проводка = СтрокаДвижения.Добавить();
Проводка.Период = ТекущаяДата();
БухгалтерскийУчет.
Проводка.СчетДт = ПланыСчетов.ЕПСБУ.НайтиПоКоду(ПолучитьНоменклатуру.СчетУчета);
Если Проводка.СчетДт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("105.36") тогда
Проводка.СубконтоДт(Проводка.СчетДт.ВидыСубконто.Получить(0), Справочники.КОСГУ.НайтиПоКоду("346"));
КонецЕсли;
Проводка.СубконтоДт(Проводка.СчетДт.ВидыСубконто.Получить(1),ПолучитьНоменклатуру);
Проводка.СубконтоДт(Проводка.СчетДт.ВидыСубконто.Получить(2),ЭлементыФормы.МОЛ.Значение);
проводка.СчетКт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("109.61");
проводка.СубконтоКт(Проводка.СчетКт.ВидыСубконто.Получить(0),
проводка.СубконтоКт(Проводка.СчетКт.ВидыСубконто.Получить(1),
проводка.СубконтоКт(Проводка.СчетКт.ВидыСубконто.Получить(2), Справочники.ВидыЗатрат.НайтиПоНаименованию("Все затраты");
Проводка.КоличествоДт = Строка.Количество;
КонецЦикла;
НовыйДокумент.Записать();
Исключение
Сообщить("НЕ УДАЛОСЬ создать окумент по договору ");
КонецПопытки;
ПоказатьПо теме из базы знаний
- Всякие полезности
- REGTool Полезные операции с регистрами накопления
- Запрет проведения документа "Корректировка записей регистров"
- Загрузка из Excel книги покупок и книги продаж в 1С:Бухгалтерия 3.0, 1С:Бухгалтерия 2.0 для последующего формирования декларации НДС
- Программное создание документа Операция Бух
Найденные решения
(6)Замените Сообщить("НЕ УДАЛОСЬ создать окумент по договору ");
на Сообщить(ОписаниеОшибки());
Так будет видно в чем проблема.
Вообще проводку можно записать и без субконто. Следовательно, проблема скорее всего в другом.
Почему у вас не заполняется счет кредита, но заполняются субконто по нему? Скорее всего проблема именно в том, что не указан СчетКт
на Сообщить(ОписаниеОшибки());
Так будет видно в чем проблема.
Вообще проводку можно записать и без субконто. Следовательно, проблема скорее всего в другом.
Почему у вас не заполняется счет кредита, но заполняются субконто по нему? Скорее всего проблема именно в том, что не указан СчетКт
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
не могу конять как именно субконто заполняется
Попытка
ПолучитьНоменклатуру = Справочники.Номенклатура.НайтиПоНаименованию(стр.Номенклатура);
НовыйДокумент = Документы.ОперацияБух.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Учреждение = ЭлементыФормы.Учреждение.Значение;
НовыйДокумент.Баланс = Справочники.Баланс.НайтиПоНаименованию(ЭлементыФормы.ИФО.Значение);
СтрокаДвижения = НовыйДокумент.Движения.ЕПСБУ;
НомерСубконто = 0;
Для каждого Строка из ТаблицаДокумента2 цикл
Проводка = СтрокаДвижения.Добавить();
Проводка.Период = ТекущаяДата();
Проводка.СчетДт = ПланыСчетов.ЕПСБУ.НайтиПоКоду(ПолучитьНоменклатуру.СчетУчета);
//Если Проводка.СчетДт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("105.36") тогда
// Проводка.СубконтоДт(Проводка.СчетДт.ВидыСубконто.Получить(0), Справочники.КОСГУ.НайтиПоКоду("346"));
//КонецЕсли;
НалоговыйУчетСервер.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"КЭК",Справочники.КОСГУ.НайтиПоКоду("346"));
НалоговыйУчетСервер.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Номенклатура", ПолучитьНоменклатуру);
НалоговыйУчетСервер.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Центры материальной ответственности",ЭлементыФормы.МОЛ.Значение);
//Проводка.СубконтоДт(Проводка.СчетДт.ВидыСубконто.Получить(1),ПолучитьНоменклатуру);
//Проводка.СубконтоДт(Проводка.СчетДт.ВидыСубконто.Получить(2),ЭлементыФормы.МОЛ.Значение);
//проводка.СчетКт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("109.61");
//проводка.СубконтоКт(Проводка.СчетКт.ВидыСубконто.Получить(0),
//проводка.СубконтоКт(Проводка.СчетКт.ВидыСубконто.Получить(1),
//проводка.СубконтоКт(Проводка.СчетКт.ВидыСубконто.Получить(2), Справочники.ВидыЗатрат.НайтиПоНаименованию("Все затраты");
//
Проводка.КоличествоДт = Строка.Количество;
КонецЦикла;
НовыйДокумент.Записать();
Исключение
Сообщить("НЕ УДАЛОСЬ создать окумент по договору ");
Показатьне могу конять как именно субконто заполняется
(3) насколько я помню - документ операция бух создается без строк. Данные хранятся в регистрах и читаются оттуда по регистратору. тоесть необходимо создать документ ОперацияБух, заполнить список необходимых регистров, потом записать документ и заполнять регистры напрямую указывая записанный документ как регистратор.
(4)
вот что в итоге получилось, заполнение субконто проходит но все равно после записи документа, вызывается исключение
Попытка
ПолучитьНоменклатуру = Справочники.Номенклатура.НайтиПоНаименованию(стр.Номенклатура);
НовыйДокумент = Документы.ОперацияБух.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Учреждение = ЭлементыФормы.Учреждение.Значение;
НовыйДокумент.Баланс = Справочники.Баланс.НайтиПоНаименованию(ЭлементыФормы.ИФО.Значение);
СтрокаДвижения = НовыйДокумент.Движения.ЕПСБУ;
Для каждого Строка из ТаблицаДокумента2 цикл
Проводка = СтрокаДвижения.Добавить();
Проводка.Период = ТекущаяДата();
Проводка.СчетДт = ПланыСчетов.ЕПСБУ.НайтиПоКоду(ПолучитьНоменклатуру.СчетУчета);
///Заполняем СчетДБ
НалоговыйУчетСервер.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"КОСГУ",Справочники.КОСГУ.НайтиПоКоду("346"));
НалоговыйУчетСервер.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Номенклатура", ПолучитьНоменклатуру);
НалоговыйУчетСервер.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"ЦМО",ЭлементыФормы.МОЛ.Значение);
///Заполняем СчетКД
НалоговыйУчетСервер.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"КОСГУ",Справочники.КОСГУ.НайтиПоКоду("200"));
НалоговыйУчетСервер.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Номенклатура", ПолучитьНоменклатуру);
НалоговыйУчетСервер.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"ВидыЗатрат",Справочники.ВидыЗатрат.НайтиПоНаименованию("%Все затраты%"));
Проводка.КоличествоДт = Строка.Количество;
Проводка.Сумма = Стр.Себестоимость;
КонецЦикла;
НовыйДокумент.Записать();
Исключение
Сообщить("НЕ УДАЛОСЬ создать окумент по договору ");
Показатьвот что в итоге получилось, заполнение субконто проходит но все равно после записи документа, вызывается исключение
(6)Замените Сообщить("НЕ УДАЛОСЬ создать окумент по договору ");
на Сообщить(ОписаниеОшибки());
Так будет видно в чем проблема.
Вообще проводку можно записать и без субконто. Следовательно, проблема скорее всего в другом.
Почему у вас не заполняется счет кредита, но заполняются субконто по нему? Скорее всего проблема именно в том, что не указан СчетКт
на Сообщить(ОписаниеОшибки());
Так будет видно в чем проблема.
Вообще проводку можно записать и без субконто. Следовательно, проблема скорее всего в другом.
Почему у вас не заполняется счет кредита, но заполняются субконто по нему? Скорее всего проблема именно в том, что не указан СчетКт
(8)
Операция (бухгалтерская) 00000035 от 28.05.2020 12:05:16
Проводка № 1 <>: не заполнен счет кредита.
Проводка № 2 <>: не заполнен счет кредита.
{ВнешняяОбработка.ЗагрузкаМедикаментов.Форма.Форма.Форма(117)}: Ошибка при вызове метода контекста (Записать): Не удалось записать: "Журнал проводок"!
(10)спасибо за подсказку, если не сложно посмотрите еще почему выходит ошибка: {ВнешняяОбработка.ЗагрузкаМедикаментов.Форма.Форма.Форма(117)}: Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля "Учреждение" не может быть пустым! (Регистр бухгалтерии: Журнал проводок; Номер строки: 1)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот