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

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

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

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

***Vjacheslav***

И вообще запись документа желательно делать через попытку
Попытка
      Документ.Записать()
Исключение
      Сообщить("Документ не записан!!! " + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
КонецПопытки;

Myti

И комментировать код строчками //*** Процедура бла-бла

***Vjacheslav***

Ошибка то осталась? А то мы сделали лирическое отступление...

Nail2010

Ценные замечание, спасибо! Цикл убрал, сделал просто-
Строка2=НовТаб.МПЗОтгруженные.Добавить();
Но.. все равно таб часть остается пустой, не могу уловить почему..

Nail2010

Итак конечный код, который сделал:

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


Не могу понять, с чего таб часть хоть и создает нужные колонки, но не заполняется?

***Vjacheslav***

Предлогаю сделать точку останова на строке  Строка2=НовТаб.МПЗОтгруженные.Добавить(); и смотреть пошагово изменение НовТаб.МПЗОтгруженные. И тогда понятно станет может.

Nail2010

Как вариант - то, что в форме документа прописана не одна табличная часть, а 12, имеет значение? Кстати документ из типовой конфигурации Бухгалтерия 1.16, Ввод начальных остатков. Кто работал, может знакомо....

***Vjacheslav***

Заполнение табличной части не зависит от количество табличных частей.
И еще а если у тебя будет несколько документов инвентеризации, то шапка документа НовТаб у тебя будет заполнена данными последнего документа инвентеризации. И вообще заполнение шапки из цикла лучше убрать.

Nail2010

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

*****{Форма.Форма(47)}: Итератор для значения не определен
   Для Каждого Строка2 Из Объект.МПЗПриобретенные Цикл******

Вот этот фрагмент кода:


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

   КонецЦикла;
И в чем же здесь косяк???

***Vjacheslav***

Переменную Объект Обзови как- нибудь подругому типа ОбъектДок. Т.к. Переменная с именем Объект уже занята системой.

Теги:

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

Рейтинг@Mail.ru

Поиск