Помощь - Поиск - Пользователи - Календарь
Полная версия: Проводка
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 7.7" > (7.7) Форум по общим вопросам "1С:Предприятие 7.7"
fader
Есть платформа: 1С Предприятие 7.7

Есть контрагенты в соотвествующем справочнике.
Есть договора с этими контрагентами тоже в справочнике.
Раз в месяц надо по этим договорам делать проводки (выплаты).

Полистав руководство по встроенному языку (я новичек в 1с ;-( ) я навоял ф-цию, к-я:
- находит контрагента
- находит договор
- создает проводку
- находит счета нужные и записывает их в Деб и Кр.
- находит субконто (вывожу в окно сообщений - вроде бы все ок) и записывает их в проводку
- записывает в проводку суммму
- записывает проводку

Но проверку на корректность она не проходит(!), а
при просмотре ее в списке проводок - кроме суммы и номеров счетов в ней ничего нет.
Субконто, к-е я задавал - тоже нет.

Я был бы очень признателен, если бы кто нить мне привел пример кода, как говорится, "КАК НАДО ДЕЛАТЬ ПРАВИЛЬНО"...

Код не привожу, т.к. он остался на работе, а пишу из дома.
fader
Настал понедельник и я могу привести код. Он должен немного прояснить ситуацию:

Код
Процедура Сформировать()

Опер = СоздатьОбъект ("Операция");
Опер.Новая();

Опер.Содержание="Вх.лизинг.платеж за месяц по договору";
Опер.НоваяПроводка();


Опер.Дебет.Счет = СчетПоКоду("98.1");

Спр = СоздатьОбъект ("Справочник.ДоходыБудущихПериодов");

Спр.НайтиПоКоду("1");

Опер.Дебет.Субконто (1,Спр.Наименование);
Сообщить ("Справочник.ДоходыБудущихПериодов: "+ Спр.Наименование);

Спр = СоздатьОбъект ("Справочник.Контрагенты");
Спр.НайтиПоКоду("370");

Опер.Дебет.Субконто (2,Спр.Наименование);
Сообщить ("Справочник.Контрагенты: "+ Спр.Наименование);

СпрДог = СоздатьОбъект ("Справочник.Договора");
СпрДог.ИспользоватьВладельца(Спр);
СпрДог.НайтиПоКоду(2);
Опер.Дебет.Субконто (3,СпрДог.Наименование);
Сообщить ("Справочник.Договора: "+ СпрДог.Наименование);

Опер.Кредит.Счет = СчетПоКоду("90.1");

СпрК = СоздатьОбъект ("Справочник.ВидыДеятельности");
СпрК.НайтиПоКоду("1");
Опер.Кредит.Субконто (1,СпрК.Наименование);
Опер.Сумма=666;
Опер.СодержаниеПроводки="Вх.лизинг.платеж за месяц по договору";
Опер.Записать();

Если Опер.ПроверитьПроводку()=0 Тогда
Сообщить ("Проводка неверна");
КонецЕсли ;

Сообщить("ГОТОВО");

КонецПроцедуры



Вывод

-----------------------------------------------------------
Справочник.ДоходыБудущихПериодов: доходы причит.по дог лиз.
Справочник.Контрагенты: Амикс Мебель
Справочник.Договора: Дог.лизинга №148
Проводка неверна
ГОТОВО
-----------------------------------------------------------


а поля "Субконто**" пустые и проводка не верна:-(
ЧТО Я УПУСТИЛ?
Snake-84
"Спр.Наименование" - неверно: это просто строка, а тебе нужен элемент справочника. Используй "Спр.ТекущийЭлемент()".
fader
Опять почувствовал себя чайником :) Спс за ответ!

Сразу вопрос №2: по каким критериям 1Ска проверяет проводку на корректность? (Опер.ПроверитьПроводку)?
fader
Создаю в одной операции несколько проводок

Код

Опер = СоздатьОбъект ("Операция");
Опер.Новая();

Опер.Содержание="Вх.лизинг.платеж за месяц по договору";
Опер.НоваяПроводка();
...
\\заполняю ее
Опер.Сумма = 10;
\\Добавляю еще одну
Опер.НоваяПроводка();
...
\\заполняю ее
Опер.Сумма = 20;
\\записываю
Опер.Записать();



В результате имею сумму в каждой проводке. А как записать общую сумму на всю операцию? У меня пустое поле.
Что-то не нашел в руководстве упоминания, как сделать это.
Хряк
Опер.СуммаОперации
fader
Большое спасибо. Работает.

PS руководство была возможность только
на коленках полистать - видимо не заметил.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.