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

В чем ошибка заполнения?

Автор Nail2010, 21 мар 2011, 08:13

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

Nail2010

Доброго времени суток!


Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
             | ИнвентаризацияТоваровНаСкладеТовары.Ссылка КАК Ссылка,
             | ИнвентаризацияТоваровНаСкладеТовары.НомерСтроки
             |ИЗ
             | Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары,
             | Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе";
Выборка=Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл;
СтрокаТЧ=ИзмДок.Добавить();
СтрокаТч.Док=Выборка.Ссылка;
ОбъектИзм=СтрокаТЧ.Док.ПолучитьОбъект();
ВыборкаПоДоку=Выборка.Выбрать();
Пока ВыборкаПоДоку.Следующий() Цикл
Строка=ОбъектИзм.Товары.Получить(ЭтотОбъект[ВыборкаПоДоку.НомерСтроки]);
Строка.СчетУчетаБУ=ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;
КонецЦикла;
ОбъектИзм.Записать();
СтрокаТч.Док=Выборка.Ссылка;
КонецЦикла;
КонецПроцедуры


Задача- заполнение колонки "СчетДоходовБУ" значениями. Но колонка почему-то остается пустой. В чем ошибка?

Nail2010

Вернее колонка "СчетУчетаБУ"- как и написано в коде

Myti

Поставь точку останова на строке "Выборка=Запрос.Выполнить().Выбрать();" и в табло вставь строчку "Запрос.Выполнить().Выгрузить().Количество()" - запрос не пустой вообще

Nail2010

Табло: Значение=1001. В табличной части все колонки заполнены, кроме нужной.

Myti

СтрокаТЧ и Строка разные,,,,Строка не доступна для записи...

Myti

Вот тут "Строка.СчетУчетаБУ=ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;" попробуй поменять на "СтрокаТЧ.СчетУчетаБУ=ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;"

***Vjacheslav***

Как я понял нужно во всех документах инвентеризации проставить это поле. То может сделать так:

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

Nail2010

СтрокаТЧ - выыводит ссылку на док. "Инвентаризация" - в окно обработки.
Причем было :
ОбъектИзм=СтрокаТЧ.Док.ПолучитьОбъект();
Но
ОбъектИзм.Товары - получает только табличную часть. А нужен РЕКВИЗИТ табЧасти "Товары".

***Vjacheslav***

А вывод окно обработки: добавь после строки
ОбъектИзм=Выборка.Ссылка.ПолучитьОбъект();
СтрокаТЧ=ИзмДок.Добавить();
СтрокаТч.Док=Выборка.Ссылка;

Nail2010

***Vjacheslav***, спасибо! Теперь все работает.

Теги:

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

Рейтинг@Mail.ru

Поиск