Новый элемент справочника в обработке и операция

RZX

Active Member
03.11.2009
42
0
Брест
#1
Здравствуйте!

Подскажите по небольшой проблеме. Думаю, яйца выеденного не стоит, но все же бьюсь уже несколько часов.

Переношу данные - номенклатуру из 1С 6 в обработке сразу с записью остатков.
Проблема не в самом переносе, а в выделенной строке:

Код:
Процедура Выполнить()
DBF = СоздатьОбъект("XBase");

DBF.ОткрытьФайл("E:\export.DBF");
СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
Операция = СоздатьОбъект("Операция");

Операция.Новая();

Операция.ДатаОперации = НачДата;
Операция.Содержание = "Перенос остатков по товарам";

Операция.СуммаОперации = 0;

Если DBF.Открыта() = 0 Тогда
Сообщить("Ошибка открытия!");
СтатусВозврата(0);
КонецЕсли;

DBF.Первая();

Пока DBF.Следующая() <> 0 Цикл
СпрНоменклатура.Новый();
СпрНоменклатура.Наименование = DBF.NAME;
СпрНоменклатура.Цена = DBF.PRICE;
СпрНоменклатура.ЦенаИзготовителя = DBF.PRICE;
СпрНоменклатура.Себестоимость = DBF.PRICE;

Операция.НоваяПроводка();

Операция.СодержаниеПроводки = "Ввод остатков по товарам Дт 41.1 Кт 00";
Операция.Количество = DBF.QUANTITY;
Операция.Сумма = DBF.PRICE * DBF.QUANTITY;

Операция.Д*цензура*.Счет = СчетПоКоду("41.1");

Операция.Д*цензура*.Субконто(1, СпрНоменклатура); ///////////////////////////////////////////////// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Операция.Д*цензура*.Субконто(2, ВыбМестаХранения);
Операция.Д*цензура*.Субконто(3, ВыбМОЛ);

Операция.Кредит.Счет = СчетПоКоду("00");

СпрНоменклатура.Записать();
Операция.Записать();

КонецЦикла;

DBF.ЗакрытьФайл();
КонецПроцедуры
И в общем-то все работает замечательно за исключением выделенной строки.

ВыбМестаХранения и ВыбМОЛ - элементы формы обработки
При окончании работы обработки в проводках по первому субконто должен быть элемент справочника, а выдает <...>
С местом хранения и МОЛ вопросов нет.

Так: Операция.Д*цензура*.Субконто(1, СпрНоменклатура.ТекущийЭлемент());

тоже не работает. А как правильно? Что не так?
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#2
СпрНоменклатура.Записать();

перед Операция.НоваяПроводка(); просто элемент справочника создается, но не записывается.
 

RZX

Active Member
03.11.2009
42
0
Брест
#3
Да, спасибо!
Все нормально!

Работает, если разместить эапись справочника перед созданием операции и
если

Операция.Д*цензура*.Субконто(1, СпрНоменклатура.ТекущийЭлемент());
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#4
Так: Операция.Д*цензура*.Субконто(1, СпрНоменклатура.ТекущийЭлемент());

тоже не работает. А как правильно? Что не так?
Работает, если разместить эапись справочника перед созданием операции и
если

Операция.Д*цензура*.Субконто(1, СпрНоменклатура.ТекущийЭлемент());
Где логика?! B)