8.х Создание проводки

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем iLona90, 5 май 2016.

  1. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    Доброго дня, используем 1С:Предприятие 8.3 (8.3.7.2008), Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.43.137). поставили задачу: в накладных на реализацию, добавить кнопочку при нажатии на которую будет формироваться проводка. кнопку добавила, закинула минимальный код, но проводка не создаётся.

    Код:
    ДокОбъект = Документы.ОперацияБух.СоздатьДокумент();
        КонтрагентШ = Справочники.Контрагенты.НайтиПоНаименованию("ЧУП", Истина);
        Если Объект.Контрагент = КонтрагентШ тогда
        Проводка = ДокОбъект.Движения.Хозрасчетный.Добавить();
        Проводка.СчетДт = ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.НДСПоТоварамРеализованнымПоСтавке0");
        Проводка.СчетКт = ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.НДСУплачиваемыйПриИмпортеИзТаможенногоСоюза");
        КонецЕсли;
        ДокОбъект.Движения.Записать();   
    
    может подскажете, что я не учла, или не правильно сделала) спасибо)
  2. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Перед формированием проводок сначала запишите сам документ (ОперацияБух).
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Документ "ОперацияБух" не умеет проводится от слова совсем.
  4. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    Это нужно дополнительную процедуру делать? или что-то на подобие ОперацияБух = Новый Структура ?
  5. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Код:
    ДокОбъект.Записать();
  6. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    вроде бы так написала... всё ровно не хочет работать

    Код:
    &НаСервере
    Процедура СозданиеПроводки()
       
           ДокОбъект = Документы.ОперацияБух.СоздатьДокумент();
        ДокОбъект.Дата = ТекущаяДатаДокумента;
        ДокОбъект.Записать();
        КонтрагентШ = Справочники.Контрагенты.НайтиПоНаименованию("ЧУП", Истина);
            Если Объект.Контрагент = КонтрагентШ тогда
             Проводка = ДокОбъект.Движения.Хозрасчетный.Добавить();
             Проводка.СчетДт = ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.НДСПоТоварамРеализованнымПоСтавке0");
             Проводка.СчетКт = ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.НДСУплачиваемыйПриИмпортеИзТаможенногоСоюза");
       
            КонецЕсли;
       
        ДокОбъект.Движения.Записать();   
    КонецПроцедуры
    
  7. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Вместо
    Код:
    ДокОбъект.Движения.Записать();
    напишите
    Код:
    ДокОбъект.Движения.Хозрасчетный.Записать();
    P.S. Создание документа тоже надо, наверное, заключить в условие. А то если контрагент не подходит, то документ "Операция" будет создан, а проводки не сформированы. Зачем нужен пустой документ?...
  8. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    Спасибо большое) работает) и да, создание документа закинула в условие) думаю вы правы)
  9. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    Пустая проводка создаётся всё как нужно Дебет/Кредит ставятся без проблем. пробую заполнить остальную информацию, не очень получается) застопорилась на записи организации...
    когда использую "простое заполнение"
    Код:
     проводка.Организация.Наименование = Объект.Контрагент.Наименование;
    ругается, что "Поле объекта не доступно для записи(Наименование)"...

    Попробовала через получение объекта:

    Код:
             ОрганизацияПроводки = Проводка.Организация.ПолучитьОбъект();
             ОрганизацияПроводки.Наименование = Объект.Контрагент.Наименование;
             ОрганизацияПроводки.Записать();
    
    ругается,
    Код:
    {Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаТовары.Форма(1719)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
             ОрганизацияПроводки = Проводка.Организация.ПолучитьОбъект();
    по причине:
    Элемент не выбран!
    подскажите пожалуйста, что не так делаю(
    весь код такой получился:

    Код:
    Процедура СозданиеПроводки()
       
           ДокОбъект = Документы.ОперацияБух.СоздатьДокумент();
        ДокОбъект.Дата = ТекущаяДатаДокумента;
        ДокОбъект.Записать();
        КонтрагентШ = Справочники.Контрагенты.НайтиПоНаименованию("ЧУП", Истина);
            //Если Объект.Контрагент = КонтрагентШ тогда
             Сообщить("Проводка готова");
             Проводка = ДокОбъект.Движения.Хозрасчетный.Добавить();
             Проводка.Период = ТекущаяДатаДокумента;
             Проводка.СчетДт = ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.НДСПоТоварамРеализованнымПоСтавке0");
             Проводка.СчетКт = ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.НДСУплачиваемыйПриИмпортеИзТаможенногоСоюза");
             //проводка.Организация.Наименование = Объект.Контрагент.Наименование;
             ОрганизацияПроводки = Проводка.Организация.ПолучитьОбъект();
             ОрганизацияПроводки.Наименование = Объект.Контрагент.Наименование;
             ОрганизацияПроводки.Записать();
            
        //    КонецЕсли;
       
        ДокОбъект.Движения.Хозрасчетный.Записать();   
    КонецПроцедуры
    
  10. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Ну, организация в проводке - это ж ссылка на справочник "Организации". Почему Вы из контрагента пытаетесь ее получить?
    Я, конечно, не знаю логики Вашей обработки, но полагаю, что туда надо подставить организацию из документа.
    Код:
    Проводка.Организация = Объект.Организация;
  11. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    спасибо) оно организацию подхватывает... но почему-то не отображает в проводке её... создаётся проводка Дебит Кредит записываются а Организация нет... я пересмотрела все реквизиты, там больше ничего похожего...
  12. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    А где Вы смотрите проводку?
    В документе "Операция" колонка с организацией, вроде, не отображается. Организация в проводках соответствует организации, указанной в документе.
    (кстати, при программном создании документа организацию надо заполнять)

    Чтобы проверить, подставилась ли организация в проводку, зайдите через "Все функции" в регистр бухгалтерии "Журнал проводок".
  13. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    Дада, я и смотрю в Журнале проводок.
    [​IMG]
    такая у меня создаётся. Дата Документа становится правильно, Дебит Кредит тоже. а в выделенной ячейке должна быть организация. поле так и называется "Контрагенты"
  14. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Аа... ну так это субконто "Контрагенты".
    Код:
    БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Контрагенты", Объект.Контрагент);
  15. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    Спасибо больше) всё работает как нужно) попробовала по вашему примеру заполнить оставшиеся субконто "Документы реализации", но у меня ругается "Поле объекта не обнаружено (Документы реализации)". может нужно сделать дополнительные действия?)
  16. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Надо, скорее всего, правильно прописать имя вида субконто, как оно задано в конфигураторе (ПланВидовХарактеристик - ВидыСубконтоХозрасчетные - Предопределенные).
    Кажется, он называется "ДокументРасчетовСКонтрагентом". Посмотрите на 19 счете.

    А вообще, можно просто номер субконто указывать.
    Т.е. к примеру, контрагента можно установить так:
    Код:
    БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 1, Объект.Контрагент);
    или даже так (но не уверен):
    Код:
    БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты, Объект.Контрагент);
  17. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    я поняла, спасибо. я видела эти номера когда выводила список проводок в 1Ске
    СубконтоДт 1,2,3. просто не придала этому значение) с Контрагентами получилось, сейчас попробую с другими полями.-Cat-
  18. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    столкнулась с небольшой проблемкой:
    записываю Субконто3
    Код:
    БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 3, "Реализация (акт, накладная)"+Объект.Номер+"от"+Объект.Дата);
    но у меня проблема с заполнением данных
    Код:
    "Реализация (акт, накладная)"+Объект.Номер+"от"+Объект.Дата);
    там в выпадающем списке нужно выбрать Реализация(акт, накладная) и после открытия списка реализаций, выбрать ту, из которой мы создаём проводку... не получается(
  19. TopicStarter Overlay
    iLona90
    Offline

    iLona90 Опытный в 1С

    Регистрация:
    9 ноя 2015
    Сообщения:
    131
    Симпатии:
    2
    Баллы:
    29
    Разобралась) Объект.Ссылка помогло решить проблему)

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