7.7 Проводка

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем fader, 30 авг 2008.

  1. TopicStarter Overlay
    fader
    Offline

    fader

    Регистрация:
    30 авг 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Есть платформа: 1С Предприятие 7.7

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

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

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

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

    Код не привожу, т.к. он остался на работе, а пишу из дома.
  2. TopicStarter Overlay
    fader
    Offline

    fader

    Регистрация:
    30 авг 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Настал понедельник и я могу привести код. Он должен немного прояснить ситуацию:

    Код:
    Процедура Сформировать()
    
    Опер = СоздатьОбъект ("Операция");
    Опер.Новая();
    
    Опер.Содержание="Вх.лизинг.платеж за месяц по договору";
    Опер.НоваяПроводка();
    
    
    Опер.Дебет.Счет = СчетПоКоду("98.1"); 
    
    Спр = СоздатьОбъект ("Справочник.ДоходыБудущихПериодов");
    
    Спр.НайтиПоКоду("1");
    
    Опер.Дебет.Субконто (1,Спр.Наименование);
    Сообщить ("Справочник.ДоходыБудущихПериодов: "+ Спр.Наименование);
    
    Спр = СоздатьОбъект ("Справочник.Контрагенты");
    Спр.НайтиПоКоду("370");                                           
    
    Опер.Дебет.Субконто (2,Спр.Наименование);
    Сообщить ("Справочник.Контрагенты: "+ Спр.Наименование);
    
    СпрДог = СоздатьОбъект ("Справочник.Договора");
    СпрДог.ИспользоватьВладельца(Спр);
    СпрДог.НайтиПоКоду(2);
    Опер.Дебет.Субконто (3,СпрДог.Наименование);
    Сообщить ("Справочник.Договора: "+ СпрДог.Наименование);
    
    Опер.Кредит.Счет = СчетПоКоду("90.1"); 
    
    СпрК = СоздатьОбъект ("Справочник.ВидыДеятельности");
    СпрК.НайтиПоКоду("1");
    Опер.Кредит.Субконто (1,СпрК.Наименование);
    Опер.Сумма=666;
    Опер.СодержаниеПроводки="Вх.лизинг.платеж за месяц по договору";
    Опер.Записать();       
    
    Если Опер.ПроверитьПроводку()=0 Тогда
    Сообщить ("Проводка неверна");
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/конецесли')">	КонецЕсли   ;</span>
    
    Сообщить("ГОТОВО");     
    
    КонецПроцедуры
    
    
    Вывод

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


    а поля "Субконто**" пустые и проводка не верна:-(
    ЧТО Я УПУСТИЛ?
  3. Snake-84
    Offline

    Snake-84 Опытный в 1С

    Регистрация:
    28 янв 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    "Спр.Наименование" - неверно: это просто строка, а тебе нужен элемент справочника. Используй "Спр.ТекущийЭлемент()".
  4. TopicStarter Overlay
    fader
    Offline

    fader

    Регистрация:
    30 авг 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Опять почувствовал себя чайником :) Спс за ответ!

    Сразу вопрос №2: по каким критериям 1Ска проверяет проводку на корректность? (Опер.ПроверитьПроводку)?
  5. TopicStarter Overlay
    fader
    Offline

    fader

    Регистрация:
    30 авг 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Создаю в одной операции несколько проводок

    Код:
    Опер = СоздатьОбъект ("Операция");
    Опер.Новая();
    
    Опер.Содержание="Вх.лизинг.платеж за месяц по договору";
    Опер.НоваяПроводка();
    ...
    \\заполняю ее
    Опер.Сумма = 10;
    \\Добавляю еще одну
    Опер.НоваяПроводка();
    ...
    \\заполняю ее
    Опер.Сумма = 20;
    \\записываю
    Опер.Записать();
    
    
    В результате имею сумму в каждой проводке. А как записать общую сумму на всю операцию? У меня пустое поле.
    Что-то не нашел в руководстве упоминания, как сделать это.
  6. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    Опер.СуммаОперации
  7. TopicStarter Overlay
    fader
    Offline

    fader

    Регистрация:
    30 авг 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Большое спасибо. Работает.

    PS руководство была возможность только
    на коленках полистать - видимо не заметил.

Поделиться этой страницей