Есть платформа: 1С Предприятие 7.7
Есть контрагенты в соотвествующем справочнике.
Есть договора с этими контрагентами тоже в справочнике.
Раз в месяц надо по этим договорам делать проводки (выплаты).
Полистав руководство по встроенному языку (я новичек в 1с ;-( ) я навоял ф-цию, к-я:
- находит контрагента
- находит договор
- создает проводку
- находит счета нужные и записывает их в Деб и Кр.
- находит субконто (вывожу в окно сообщений - вроде бы все ок) и записывает их в проводку
- записывает в проводку суммму
- записывает проводку
Но проверку на корректность она не проходит(!), а
при просмотре ее в списке проводок - кроме суммы и номеров счетов в ней ничего нет.
Субконто, к-е я задавал - тоже нет.
Я был бы очень признателен, если бы кто нить мне привел пример кода, как говорится, "КАК НАДО ДЕЛАТЬ ПРАВИЛЬНО"...
Код не привожу, т.к. он остался на работе, а пишу из дома.
Настал понедельник и я могу привести код. Он должен немного прояснить ситуацию:
Код
Процедура Сформировать()
Опер = СоздатьОбъект ("Операция");
Опер.Новая();
Опер.Содержание="Вх.лизинг.платеж за месяц по договору";
Опер.НоваяПроводка();
Опер.Дебет.Счет = СчетПоКоду("98.1");
Спр = СоздатьОбъект ("Справочник.ДоходыБудущихПериодов");
Спр.НайтиПоКоду("1");
Опер.Дебет.Субконто (1,Спр.Наименование);
Сообщить ("Справочник.ДоходыБудущихПериодов: "+ Спр.Наименование);
Спр = СоздатьОбъект ("Справочник.Контрагенты");
Спр.НайтиПоКоду("370");
Опер.Дебет.Субконто (2,Спр.Наименование);
Сообщить ("Справочник.Контрагенты: "+ Спр.Наименование);
СпрДог = СоздатьОбъект ("Справочник.Договора");
СпрДог.ИспользоватьВладельца(Спр);
СпрДог.НайтиПоКоду(2);
Опер.Дебет.Субконто (3,СпрДог.Наименование);
Сообщить ("Справочник.Договора: "+ СпрДог.Наименование);
Опер.Кредит.Счет = СчетПоКоду("90.1");
СпрК = СоздатьОбъект ("Справочник.ВидыДеятельности");
СпрК.НайтиПоКоду("1");
Опер.Кредит.Субконто (1,СпрК.Наименование);
Опер.Сумма=666;
Опер.СодержаниеПроводки="Вх.лизинг.платеж за месяц по договору";
Опер.Записать();
Если Опер.ПроверитьПроводку()=0 Тогда
Сообщить ("Проводка неверна");
КонецЕсли ;
Сообщить("ГОТОВО");
КонецПроцедуры
Вывод
-----------------------------------------------------------
Справочник.ДоходыБудущихПериодов: доходы причит.по дог лиз.
Справочник.Контрагенты: Амикс Мебель
Справочник.Договора: Дог.лизинга №148
Проводка неверна
ГОТОВО
-----------------------------------------------------------
а поля "Субконто**" пустые и проводка не верна:-(
ЧТО Я УПУСТИЛ?
"Спр.Наименование" - неверно: это просто строка, а тебе нужен элемент справочника. Используй "Спр.ТекущийЭлемент()".
Опять почувствовал себя чайником :) Спс за ответ!
Сразу вопрос №2: по каким критериям 1Ска проверяет проводку на корректность? (Опер.ПроверитьПроводку)?
Создаю в одной операции несколько проводок
Код
Опер = СоздатьОбъект ("Операция");
Опер.Новая();
Опер.Содержание="Вх.лизинг.платеж за месяц по договору";
Опер.НоваяПроводка();
...
\\заполняю ее
Опер.Сумма = 10;
\\Добавляю еще одну
Опер.НоваяПроводка();
...
\\заполняю ее
Опер.Сумма = 20;
\\записываю
Опер.Записать();
В результате имею сумму в каждой проводке. А как записать общую сумму на всю операцию? У меня пустое поле.
Что-то не нашел в руководстве упоминания, как сделать это.
Большое спасибо. Работает.
PS руководство была возможность только
на коленках полистать - видимо не заметил.