7.7 Создание операций

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Hamster, 29 мар 2007.

  1. TopicStarter Overlay
    Hamster
    Offline

    Hamster Опытный в 1С

    Регистрация:
    26 янв 2007
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26
    Народ подскажите пожайлуста, как создать операцию, и проводки в ней через Документ.Операция?
  2. Lucifer
    Offline

    Lucifer Опытный в 1С

    Регистрация:
    27 фев 2007
    Сообщения:
    91
    Симпатии:
    0
    Баллы:
    26
    А в чём сложность?
  3. TopicStarter Overlay
    Hamster
    Offline

    Hamster Опытный в 1С

    Регистрация:
    26 янв 2007
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26
    Ну имеется в виду

    Код:
    Док = СоздатьОбъект("Документ.Операция");
    Оп = СоздатьОбъект("Операция");
    
    Док.Новый();
    ... //Заполнение шапки
    Док.Записать();
    
    
    как потом спозиционироваться на операцию? и какие методы по созданию проводок?
  4. Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    Д=СоздатьОбъект("Операция");
    Д.Новая();
    Д.ДатаОперации=Дата("28.02.06");
    Д.НоваяПроводка();
    Д.Дебет.Счет=СчетПоКоду("60.1");
    Д.Дебет.Контрагенты=Контрагент;
    Д.Дебет.Договоры=Договор;
    Д.Кредит.Счет=СчетПоКоду("00");
    Д.Сумма=МногоДенег;
    Д.Записать();
  5. idle
    Offline

    idle

    Регистрация:
    1 мар 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    А если используется разделитель учета?
    У меня скажем есть общий реквизит "РазделитУчета" типа справочник Фирмы.
    В обработке есть такой код:

    Код:
    Процедура Сформировать()
    
    Операция = СоздатьОбъект("Операция");
    Операция.Новая();
    Операция.ДатаОперации = ВтораяЧастьРЕПО.ДатаДок;
    Операция.РазделитУчета = ВтораяЧастьРЕПО.РазделитУчета;
    
    Операция.НоваяПроводка();
    Операция.СодержаниеПроводки = "Списание ЦБ";
    Операция.РазделительУчета = ВтораяЧастьРЕПО.РазделитУчета;
    Операция.НомерЖурнала = "ЦБ";
    Операция.Дебет.Счет = СчетПоКоду("91.2.2");
    Операция.Дебет.ЦенныеБумаги = ЦБ;
    Операция.Кредит.Счет = СчетПоКоду("58.2.1");
    Операция.Кредит.ЦенныеБумаги = ЦБ;
    Операция.Кредит.АктПриемаЦБ = ТЗ.ПерваяЧастьРЕПО;
    Операция.Количество = ТЗ.КолВо;
    Операция.Сумма = ТЗ.Сумма;
    
    //                .... еще несколько проводок...
    
    Операция.СуммаОперации = СуммаПродажи+СуммаПродажиНКД;
    Операция.Записать();
    КонецПроцедуры  
    
    
    Получаю ругательство:
    Операция.РазделитУчета = ВтораяЧастьРЕПО.РазделитУчета;
    {\\ABAC\1C\1CDATA\DOVUPR\EXTFORMS\ФОРМИРОВАНИЕ ВТОРОЙ ЧАСТИ РЕПО.ERT(55)}: Поле агрегатного объекта не обнаружено (РазделитУчета)

    Если написать так:
    Код:
    Операция = СоздатьОбъект("Документ.Операция");
    Операция.Новый();
    Операция.ДатаДок = ВтораяЧастьРЕПО.ДатаДок;
    Операция.РазделитУчета = ВтораяЧастьРЕПО.РазделитУчета;
    
    
    То все распрекрасно, но как проводки добавить?
  6. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Читаем справку:
    Из этого можно сделать вывод, что разделитель учета - это реквизит проводки.
    Поэтому сначала надо создать проводку, а потом присваивать значение реквизиту.
    т.е.
    Код:
    Операция.НоваяПроводка();
    Операция.РазделитУчета = ВтораяЧастьРЕПО.РазделитУчета;
    
    
  7. idle
    Offline

    idle

    Регистрация:
    1 мар 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Разделитель учета это реквизит проводки и общий реквизит документов!
    [​IMG]
    Если делаем новую операцию, то этот общий реквизит заполнить невозможно, если делаем новый документ типа Операция, то заполиняется все на ура, но проводки в этом случае не формируются...
  8. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    У вас два разных реквизита вообще-то.. "Разделит" и "Разделитель"..
    Код:
    Д=СоздатьОбъект("Документ.Операция");
    Д.Новый();
    Д.РазделитУчета=...;
    Д.НоваяСтрока();
    Д.РазделительУчета=...;
    
    
    
  9. umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Чтобы провести операцию через Документ.Операция, надо сначала создать и записать Сам документ, а потом цеплять к нему проводку.

    Код:
    ДокОпер=СоздатьОбъект("Документ.Операция");
    ДокОпер.Новый();
    ДокОпер.ДатаДок=...;
    ДокОпер.ЮрЛицо=...;
    Номер=...;
    ДокОпер.УстановитьНовыйНомер(Номер);
    ДокОпер.Записать();
    
    Опер=СоздатьОбъект("Операция");
    Опер.НайтиОперацию(ДокОпер.ТекущийДокумент());
    Опер.НоваяПроводка();
    
    Далее реквизиты проводки...
    Если в операции проводка не одна, (не уверен, но я делаю) нужно сделать
    Код:
    Опер.ЗаписатьПроводки();
    
    А в конце сохраняем операцию
    Код:
    Опер.Записать();
    
  10. alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Код:
    Док = СоздатьОбъект("Документ.Операция");
    //операция
    Операция = Док.Операция;
    
    

    Код:
    Операция = СоздатьОбъект("Операция");
    //документ
    Док = Операция.Документ;
    
    

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