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

С какой радости не является значением объектного типа???

Автор Nail2010, 09 мар 2011, 06:03

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

Nail2010

Иначе
          ТабЧасть=ОбъектПоиск.Товары.Добавить();
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиНеЕНВД;
КонецЕсли;

Вы это имели ввиду? Я это исправил в коде, все стало работать, НО!

Номенклатура             Кол-во        СчеттДоходовБУ
   Сталь Б-Г                    5                 90.01.1

вот так нужно

а в результате исполнения моего кода выходит вот что:

  Номенклатура         кол-во          СчетДоходовБУ
   Сталь Б-Г                 5                ...................
   ..............             ..........            90.01.1

Как спозиционировать?

progmikon

Они у вас все идут такими группами, в такой последовательности? Как я понял, для приходного ордера - первая строка?

Nail2010


Nail2010

еще добавочная инфа: имеет значение, каким образом были сконвертированы перед этим данные? обсуждаемая конфигурация - объект-приемник.

Nail2010

Может быть, я вас совсем запутал, но.... скорректирую еще вопрос: В табличной части нужно смотреть, заполнено значение или нет. если заполнено правильным значением -(90.01.1 например), то ничего не подставляется, а если ячейка пустая или значение другое, тогда в колонку "СчетДоходовБУ" ставиться нужное значение.

Что нужно изменить в моем коде?



   Выборка=Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
      СтрокаТабличнойЧасти=Замена.Добавить();
      СтрокаТабличнойЧасти.ИзмененныеДокументы=Выборка.Ссылка;
      ОбъектПоиск=СтрокаТабличнойЧасти.ИзмененныеДокументы.ПолучитьОбъект();
      Если ОбъектПоиск.Комментарий="Приходный кассовый ордер" Тогда
         ТабЧасть=ОбъектПоиск.Товары.Добавить();
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиЕНВД;
      Иначе
          ТабЧасть=ОбъектПоиск.Товары.Добавить();
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиНеЕНВД;
      КонецЕсли;
      ОбъектПоиск.Записать();
   КонецЦикла;

progmikon

Цитата: Nail2010 от 09 мар 2011, 11:02
Может быть, я вас совсем запутал, но.... скорректирую еще вопрос: В табличной части нужно смотреть, заполнено значение или нет. если заполнено правильным значением -(90.01.1 например), то ничего не подставляется, а если ячейка пустая или значение другое, тогда в колонку "СчетДоходовБУ" ставиться нужное значение.

Что нужно изменить в моем коде?



   Выборка=Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
      СтрокаТабличнойЧасти=Замена.Добавить();
      СтрокаТабличнойЧасти.ИзмененныеДокументы=Выборка.Ссылка;
      ОбъектПоиск=СтрокаТабличнойЧасти.ИзмененныеДокументы.ПолучитьОбъект();
      Если ОбъектПоиск.Комментарий="Приходный кассовый ордер" Тогда
         ТабЧасть=ОбъектПоиск.Товары.Добавить();
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиЕНВД;
      Иначе
          ТабЧасть=ОбъектПоиск.Товары.Добавить();
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиНеЕНВД;
      КонецЕсли;
      ОбъектПоиск.Записать();
   КонецЦикла;

Да уж ))) ясности не так много))).
"В табличной части нужно смотреть, заполнено значение или нет. если заполнено правильным значением -(90.01.1 например), то ничего не подставляется, а если ячейка пустая или значение другое, тогда в колонку "СчетДоходовБУ" ставиться нужное значение."
Это в какой момент нужно делать?

Nail2010

Хорошо. Вот еще конкретнее: (кое-что сам додумал, но все равно малость не то что нужно). Код:

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

Вот эта строка кода: ТабЧасть=ОбъектПоиск.Товары.Добавить();
         табЧасть2=ОбъектПоиск.Услуги.Добавить();
метод Добавить() добавляет лишнюю строку в табличную часть, так?
Мне же нужно просто подставить значение. какой метод кроме Добавить() правильный?
   

progmikon

А в какую табличную часть добавляется "лишняя" строка?

Nail2010

Согласно коду,  как запрашиваю обе табЧасти - Товары и услуги, (потому что нужно подставлять значения в обоих таблицах), так она соответственно и добавляет. Может быть
                      табЧасть2=ОбъектПоиск.Услуги.Заменить(Колонка(счетДоходовБУ),строка(если не пустая)) на (нужное значение).
  Нужен такой код.

progmikon

Я бы и рад помочь, но я вас не понимаю.... Вам сначала нужно добавить строку, а затем в следующем обходе (следующей итерацией) ее дозаполнить?



Теги:

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

Рейтинг@Mail.ru

Поиск