Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=43989)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Создание документа Поступление товаров и услуг

Автор: SPBatyus 07.02.18, 16:32

Колеги, вітаю.

Конфігурація: Бухгалтерія для України, редакція 1.2. (1.2.43.1)

Намагаюсь програмно створити документ "Надходження товарів і послуг".
Заповнюю всі необхідні реквізити, проводжу документ.
Заходжу в документ через графічний інтерфейс користувача.
В табличній частині "Товари" не бачу ряд реквізитів, які я програмно заповнював. Відповідно немає необхідних проводок.
А саме, немає суми ПДВ і проводки по ПДВ.

Хоча при створенні даного документа через графічний інтерфейс користувача всі поля присутні, їх можна заповнити і при проведенні документа проводка по ПДВ формується.

Прошу Вашої допомоги.


Автор: podcast 07.02.18, 16:39

SPBatyus @ Сегодня, 16:32 * ,
Реквизит УчитыватьНДС заполняете?

Автор: logist 07.02.18, 16:49

При программном создании документа используйте те же процедуры которые выполняются при интерактивном создании (напр.: ЗаполнениеДокументов.ЗаполнитьОбязательныеРеквизитыШапкиНовогоДокумента и т.д.), т.е. всё что описано в форме ПриОткрытии и условии ЭтоНовый()

Автор: SPBatyus 07.02.18, 16:59

Додав. Не допомогло.

Але звернув увагу, що в проводці з ПДВ Зміст - Оприходование ТМЦ

А в мене - Зачет аванса поставщику

Автор: logist 07.02.18, 17:02

Когда программно добавляете номенклатуру в ТЧ так же выполняйте то что происходит интерактивно, в ТоварыНоменклатураПриИзменени, ТоварыКоличествоПриИзменении и т.п.

Автор: Petre 07.02.18, 17:12

SPBatyus @ Сегодня, 16:32 * ,
Щоб знайти помилку у коді, потрібно бачити код.

Автор: SPBatyus 08.02.18, 9:45

Код скорочено, але смисл має бути зрозумілим:

Для Каждого СтрТЗСпискаПриходныхНакладных из ТЗСписокПриходныхНакладных Цикл

НовыйДокумент = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();

НовыйДокумент.Дата = СтрТЗСпискаПриходныхНакладных.Дата;
НовыйДокумент.Организация = выбОрганизация;
НовыйДокумент.Контрагент = КонтрагентОбъектСсылка.Ссылка;
НовыйДокумент.Склад = СкладОбъектСсылка.ПолучитьОбъект().Ссылка;
НовыйДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия;
НовыйДокумент.ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("грн");
НовыйДокумент.УчитыватьНДС = Истина;
НовыйДокумент.СчетУчетаНДС = ПланыСчетов.Хозрасчетный.НайтиПоКоду("6442");
НовыйДокумент.СчетУчетаНДСПодтвержденный = ПланыСчетов.Хозрасчетный.НайтиПоКоду("6441");
НовыйДокумент.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("3711");
НовыйДокумент.НомерВходящегоДокумента = СтрТЗСпискаПриходныхНакладных.НомерВход;
НовыйДокумент.ДатаВходящегоДокумента = СтрТЗСпискаПриходныхНакладных.ДатаВход;
НовыйДокумент.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("631");
НовыйДокумент.ДоговорКонтрагента = ДоговорОбъектСсылка;

НоваяСтрокаТЧТОвары = НовыйДокумент.Товары.Добавить();
НоваяСтрокаТЧТОвары.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000083");
НоваяСтрокаТЧТОвары.Количество = 1;
НоваяСтрокаТЧТОвары.Коэффициент = 1;
НоваяСтрокаТЧТОвары.Цена = СтрТЗСпискаПриходныхНакладных.СуммаБезНДС;
НоваяСтрокаТЧТОвары.ЕдиницаИзмерения =  Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
НоваяСтрокаТЧТОвары.Сумма = СтрТЗСпискаПриходныхНакладных.СуммаБезНДС;
НоваяСтрокаТЧТОвары.СуммаНДС = СтрТЗСпискаПриходныхНакладных.СуммаНДС;
НоваяСтрокаТЧТОвары.СтавкаНДС = Перечисления.СтавкиНДС.НДС7;
НоваяСтрокаТЧТОвары.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.НайтиПоКоду("2821");
НоваяСтрокаТЧТОвары.НалоговоеНазначение = Справочники.НалоговыеНазначенияАктивовИЗатрат.НДС_Облагаемая;

НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);

ТЗСписокПриходныхНакладных.Очистить();

КонецЦикла;

Автор: Petre 08.02.18, 10:21

SPBatyus @ Сегодня, 9:45 * ,
Щоб зрозуміти що не так, порівняйте дані документу (використовуючи консоль запиту) щойно створеного та ще не відкритого із самим собою після відкриття та перепроведення.
Ну а так за кодом не побачив присвоєння "КратностьВзаиморасчетов", "КурсВзаиморасчетов"...

Автор: SPBatyus 08.02.18, 11:50

Petre @ Сегодня, 10:21 * ,

Дякую.

Добавив:

НовыйДокумент.КурсВзаиморасчетов = 1;
НовыйДокумент.КратностьВзаиморасчетов = 1;

і питання вирішилося.

Автор: Vofka 08.02.18, 12:58

SPBatyus, для спасибо у нас есть специальная кнопочка.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua