Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 19:15

Данные в справочник

Автор Ваня, 22 мар 2018, 16:50

0 Пользователей и 1 гость просматривают эту тему.

Ваня

Как добавить Элемент в Документ с табличной частью.
Есть код для добавления в справочник, но не знаю как добавить в табличную часть.
часть кода именно с добавлением. в Табличной части следующие атрибуты: Товар и количество. Товар берется из справочника Номенклатура.


Если Документы.СчетаПоставщикам.НайтиПоРеквизиту("КодСч",Doc.SNAME).Пустая()И Doc.ID_ORG="1183" Тогда
Если Doc.INN = Contr.INN Тогда
        НовыйДокумент = Документы.СчетаПоставщикам.СоздатьДокумент();
НовыйДокумент.КодСч = КодСч;
НовыйДокумент.Дата= "21.03.2018  0:00:00";

СтрПоставщик = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Doc.INN);
СтрПоставщик = Поставщик.Ссылка;
   НовыйДокумент.Поставщик = стрПоставщик.Ссылка;
   Если СтрПоставщик.Пустая()Тогда
   НовыйДокумент.Удалить();
   Иначе
 
НовыйДокумент.Записать();
КонецЕсли;
КонецЕсли;



Kerbert

Цитата: Ваня от 22 мар 2018, 16:50
Как добавить Элемент в Документ с табличной частью.
Есть код для добавления в справочник, но не знаю как добавить в табличную часть.
часть кода именно с добавлением. в Табличной части следующие атрибуты: Товар и количество. Товар берется из справочника Номенклатура.


Если Документы.СчетаПоставщикам.НайтиПоРеквизиту("КодСч",Doc.SNAME).Пустая()И Doc.ID_ORG="1183" Тогда
Если Doc.INN = Contr.INN Тогда
        НовыйДокумент = Документы.СчетаПоставщикам.СоздатьДокумент();
НовыйДокумент.КодСч = КодСч;
НовыйДокумент.Дата= "21.03.2018  0:00:00";

СтрПоставщик = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Doc.INN);
СтрПоставщик = Поставщик.Ссылка;
   НовыйДокумент.Поставщик = стрПоставщик.Ссылка;
   Если СтрПоставщик.Пустая()Тогда
   НовыйДокумент.Удалить();
   Иначе
 
НовыйДокумент.Записать();
КонецЕсли;
КонецЕсли;




Для Каждого Строка из ТабилцаВКоторойДанные Цикл
    Таб = НовыйДокумент.ИмяТаблицы.Добавить();
    Таб.Товар  = Товар ;
    Таб.количество = количество;
КонецЦикла;

Ваня

Цитата: Kerbert от 22 мар 2018, 17:47
Цитата: Ваня от 22 мар 2018, 16:50
Как добавить Элемент в Документ с табличной частью.
Есть код для добавления в справочник, но не знаю как добавить в табличную часть.
часть кода именно с добавлением. в Табличной части следующие атрибуты: Товар и количество. Товар берется из справочника Номенклатура.


Если Документы.СчетаПоставщикам.НайтиПоРеквизиту("КодСч",Doc.SNAME).Пустая()И Doc.ID_ORG="1183" Тогда
Если Doc.INN = Contr.INN Тогда
        НовыйДокумент = Документы.СчетаПоставщикам.СоздатьДокумент();
НовыйДокумент.КодСч = КодСч;
НовыйДокумент.Дата= "21.03.2018  0:00:00";

СтрПоставщик = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Doc.INN);
СтрПоставщик = Поставщик.Ссылка;
   НовыйДокумент.Поставщик = стрПоставщик.Ссылка;
   Если СтрПоставщик.Пустая()Тогда
   НовыйДокумент.Удалить();
   Иначе
 
НовыйДокумент.Записать();
КонецЕсли;
КонецЕсли;




Для Каждого Строка из ТабилцаВКоторойДанные Цикл
    Таб = НовыйДокумент.ИмяТаблицы.Добавить();
    Таб.Товар  = Товар ;
    Таб.количество = количество;
КонецЦикла;


Спасибо, помогло, но если не сложно, можете пожалуйста просмотреть мой код, добавляются услуги, но почему-то по ограничению не получается.


Если Документы.СчетаПоставщикам.НайтиПоРеквизиту("КодСч",Doc.SNAME).Пустая()И Doc.ID_ORG="1183" Тогда
Если Doc.INN = Contr.INN Тогда
        НовыйДокумент = Документы.СчетаПоставщикам.СоздатьДокумент();
Для каждого String Из ОбъектXDTO.RegString.String Цикл
Если Doc.ID_ORG="1183" И String.ID_DOC = DOC.ID И Good.IS_SERVICE="0" Тогда
Таб = НовыйДокумент.Товары.Добавить();
СтрТовар1 = Справочники.Номенклатура.НайтиПоРеквизиту("КодЭлемента", String.ID_EL);
СтрТовар2 = СтрТовар1.Ссылка;
    Таб.Номенклатура  = СтрТовар2.Ссылка ;
    Таб.количество = String.QU;
КонецЕсли;
КонецЦикла;
НовыйДокумент.КодСч = КодСч;
НовыйДокумент.Дата= "21.03.2018  0:00:00";
СтрПоставщик = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Doc.INN);
СтрПоставщик = Поставщик.Ссылка;
    НовыйДокумент.Поставщик = стрПоставщик.Ссылка;
    Если СтрПоставщик.Пустая()Тогда
    НовыйДокумент.Удалить();
          Иначе
НовыйДокумент.Записать();
  КонецЕсли;
КонецЕсли;
КонецЕсли;



Есть строка Если Doc.ID_ORG="1183" И String.ID_DOC = DOC.ID И Good.IS_SERVICE="0" Тогда идет запись в таблицу, вот строка из XML:
      <Good ID_EL="17136" NAME="Резонатор2" ID_CLASS1="747" NAME_CLASS1="Кварцевые резонаторы" ID_CLASS2="650" NAME_CLASS2="Р – радиодетали" ID_CLASS3="263" NAME_CLASS3="Комплектующие" IS_SERVICE="0"/>
      <Good ID_EL="23040" NAME="Резонатор1" ID_CLASS1="747" NAME_CLASS1="Кварцевые резонаторы" ID_CLASS2="650" NAME_CLASS2="Р – радиодетали" ID_CLASS3="263" NAME_CLASS3="Комплектующие" IS_SERVICE="1"/>
Но все равно добавляет 2 строки.

Kerbert

Ты проверяешь 2 раза 1 условие Doc.ID_ORG="1183" и только это условие у тебя кажись задействовано
тк поля ID_DOC  и Good.IS_SERVICE у тебя не пойми откуда
Good.IS_SERVICE у тебя должно быть String.Good.IS_SERVICE 

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск