8.х ОперацияБух [РЕШЕНО]

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Sorkin, 18 июл 2014.

  1. TopicStarter Overlay
    Sorkin
    Offline

    Sorkin Опытный в 1С

    Регистрация:
    30 май 2014
    Сообщения:
    106
    Симпатии:
    4
    Баллы:
    29
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
         
     
        Операция = Документы.ОперацияБух.СоздатьДокумент();
        Операция.Дата = КонецДня(КонПериода);
        Операция.Организация = глЗначениеПеременной("ОсновнаяОрганизация");
        Операция.Записать(РежимЗаписиДокумента.Запись);
        ОперацияСсылка = Операция.Ссылка;
     
        Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        //Проводки.Отбор.Регистратор.Установить(Операция.Ссылка);
        Проводки.Отбор.Регистратор.Значение = ОперацияСсылка;
        Проводки.Очистить();
        Операция.СпособЗаполнения = "Вручную";
        Проводки.Записать(Истина);
        Проводки.Записывать = Истина;
     
        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |    ХозрасчетныйОбороты.Субконто2,
            |    ХозрасчетныйОбороты.КоличествоОборот,
            |    ХозрасчетныйОбороты.СуммаОборотДт,
            |    ХозрасчетныйОбороты.Организация.Наименование,
            |    ХозрасчетныйОбороты.Подразделение,
            |    ХозрасчетныйОбороты.Субконто1
            |ИЗ
            |    РегистрБухгалтерии.Хозрасчетный.Обороты(&С, &По, Месяц, Счет = &Счет, , , , ) КАК ХозрасчетныйОбороты";
        Запрос.УстановитьПараметр("По", КонецДня(КонПериода));
        Запрос.УстановитьПараметр("С", НачПериода);
        Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.НайтиПоКоду("20.01"));
        РезультатЗапроса = Запрос.Выполнить();
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
            ОбщаяСумма = 0;
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            //Сообщить(ВыборкаДетальныеЗаписи.Субконто2.Наименование + " " + Строка(ВыборкаДетальныеЗаписи.СуммаОборот));
            ОбщаяСумма = ОбщаяСумма + ВыборкаДетальныеЗаписи.СуммаОборотДт;
            Проводка = Проводки.Добавить();
            Проводка.СчетДт =  ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1");
           Проводка.СчетКт =  ПланыСчетов.Хозрасчетный.НайтиПоКоду("20.01");
         
            //Проводка.СубконтоДт = ВыборкаДетальныеЗаписи.Субконто2;
            Проводка.Сумма = ВыборкаДетальныеЗаписи.СуммаОборотДт;
            Проводка.Период          =  КонецДня(КонПериода);
            Проводка.ПодразделениеКт =  ВыборкаДетальныеЗаписи.Подразделение;
            //Проводка.СубконтоДт = ВыборкаДетальныеЗаписи.Субконто2;
            Проводка.СубконтоКт.СтатьиЗатрат         =  ВыборкаДетальныеЗаписи.Субконто2;
            Проводка.СубконтоДт.НоменклатурныеГруппы =  ВыборкаДетальныеЗаписи.Субконто1;
            Проводка.СубконтоКт.НоменклатурныеГруппы =  ВыборкаДетальныеЗаписи.Субконто1; 
        КонецЦикла;
     
        Операция.СуммаОперации = ОбщаяСумма;
        Проводки.Записать(Истина);
        Операция.Записать(РежимЗаписиДокумента.Запись);
        Операция.Проведен = Истина;
    КонецПроцедуры
    Люди добрый, подскажите пожалуйста, почему у меня документ, который я создаю, сам не проводится.
    Только когда я захожу в него нажимаю записать, только тогда он создает проводку.
    Последнее редактирование модератором: 18 июл 2014
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Потому что у вас так сделано:
    Код:
    Операция.Записать(РежимЗаписиДокумента.Запись);
    а нужно
    Код:
    Операция.Записать(РежимЗаписиДокумента.Проведение);
  3. TopicStarter Overlay
    Sorkin
    Offline

    Sorkin Опытный в 1С

    Регистрация:
    30 май 2014
    Сообщения:
    106
    Симпатии:
    4
    Баллы:
    29
    Операция.Записать();
    Так надо?
    я просто так пробовал уже.
    --- Объединение сообщений, 18 июл 2014 ---
    у данного документа, отключено же свойсвто "проведения",

    он ругается и говорит:
    {Форма.Форма.Форма(65)}: Ошибка при вызове метода контекста (Записать)
    Операция.Записать(РежимЗаписиДокумента.Проведение);
    по причине:
    Для данного документа возможность проведения отключена.
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Ну а что вы тогда хотите????
  5. TopicStarter Overlay
    Sorkin
    Offline

    Sorkin Опытный в 1С

    Регистрация:
    30 май 2014
    Сообщения:
    106
    Симпатии:
    4
    Баллы:
    29
    Проведение этого документа задать программно, что бы не заходить в него повторно потом и не перезаписывать.
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Если свойство разрешать проведение отключено, то вы никоим образом не сможете его провести.
  7. TopicStarter Overlay
    Sorkin
    Offline

    Sorkin Опытный в 1С

    Регистрация:
    30 май 2014
    Сообщения:
    106
    Симпатии:
    4
    Баллы:
    29
    Я это понимаю, но как то же этот документ создает проводки, когда его записываешь вручную.
    Неужели никто не сталкивался с этим?
  8. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    А кто вам мешает создать проводки ? Кто мешает писать в регистр данные ?
  9. TopicStarter Overlay
    Sorkin
    Offline

    Sorkin Опытный в 1С

    Регистрация:
    30 май 2014
    Сообщения:
    106
    Симпатии:
    4
    Баллы:
    29
    Я не знаю как это сделать :)
  10. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Ну вы же создаете запись в регистре:
    Код:
    Проводки.Записать(Истина);
    Только это нужно делать один раз, там где после цикла идет.
    Отладчиком пользоваться умеете ?
  11. TopicStarter Overlay
    Sorkin
    Offline

    Sorkin Опытный в 1С

    Регистрация:
    30 май 2014
    Сообщения:
    106
    Симпатии:
    4
    Баллы:
    29
    На троечку.
  12. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    345
    Баллы:
    104
    Не надо проводить документ операция.

    Sorkin вы код из поста #1 сами писали я так понимаю? Погуглите про программное создание документов операция, в вашем коде много бреда ненужного.

    Особо не всматривался, но думаю движений нет потому, что забыли заполнить Организацию (именно в проводках).
  13. TopicStarter Overlay
    Sorkin
    Offline

    Sorkin Опытный в 1С

    Регистрация:
    30 май 2014
    Сообщения:
    106
    Симпатии:
    4
    Баллы:
    29
    Сам писал :)
    Сейчас попробую)
    --- Объединение сообщений, 18 июл 2014 ---
    Спасибо тебе, ты был прав. Все получилось!!!
    Я очень рад.
    Последнее редактирование: 18 июл 2014